Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing: ==> cardData [in template "20099#20135#10700480" at line 1451, column 69] ---- 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: ${cardData.media.videoYotubeID} [in template "20099#20135#10700480" in macro "renderNewsFeaturedMedia" at line 1451, column 67] - Reached through: @renderNewsFeaturedMedia newsInfo [in template "20099#20135#10700480" at line 471, column 21] ----
1<#-- Conteúdo Web -> Templates: Site de Crise - Include de templates-->
2<#-- include "${templatesPath}/1975602" -->
3
4<#-- Conteúdo Web -> Templates: Site de Crise - Funções gerais-->
5<#include "${templatesPath}/1975398" />
6
7<#-- Conteúdo Web -> Templates: Busca pelas imagens do tipo de noticia -->
8<#include "${templatesPath}/18598756" />
9
10<#assign POST_TYPES_CATEGORIES = getPostTypeImages()!default([]) />
11
12<#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Extrair dados de Notícias -->
13<#--include "${templatesPath}/7762031" -->
14
15<#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Título -->
16<#-- include "${templatesPath}/7761976" -->
17
18<#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Redes sociais e data de publicação -->
19<#--include "${templatesPath}/7762069" -->
20
21<#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Áudios do conteúdo da notícia -->
22<#-- include "${templatesPath}/7761972" -->
23<#function getNodesByLabel fieldList parentNode label>
24 <#assign result = []/>
25 <#attempt>
26 <#assign groupId = getIdFromFieldName(fieldList, label) />
27 <#assign xSeletorCaminho = saxReaderUtil.createXPath("dynamic-element[@name='${groupId}' ]") />
28 <#assign result = xSeletorCaminho.selectNodes(parentNode) />
29 <#return result />
30 <#recover>
31 <#return result />
32 </#attempt>
33</#function>
34
35<#function findVocabulary vocabularyName vocabularies>
36 <#assign vocabularyNameLowerCase = vocabularyName?lower_case>
37 <#list vocabularies as vocabulary>
38 <#if vocabulary.name?lower_case == vocabularyNameLowerCase>
39 <#return vocabulary>
40 </#if>
41 </#list>
42 <#return {}>
43</#function>
44
45<#-- ############# Conteúdo Web -> Templates: Site de Crise - Include de templates #################################### -->
46<#function getSiteUrl>
47 <#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"]>
48 <#if layout?? && layout?has_content>
49 <#return portalUtil.getLayoutFriendlyURL(layout, themeDisplay)?replace(layout.getFriendlyURL(), "")>
50 </#if>
51 <#return portalUtil.getLayoutFriendlyURL(layout, themeDisplay)>
52</#function>
53
54<#function getSiteName>
55 <#return layout.getGroup().getDescriptiveName(locale)>
56</#function>
57
58<#function mountUrlToPage targetPage>
59 <#assign baseUrl = getSiteUrl()>
60 <#assign trimmedUrl = baseUrl?replace("/w/", "/")>
61 <#assign trimmedUrl = trimmedUrl?substring(0, trimmedUrl?last_index_of("/"))>
62 <#return trimmedUrl + "/" + targetPage>
63</#function>
64<#-- ################################################################################################################## -->
65
66
67<#assign
68 journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
69 assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
70 assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
71 vocabularies = assetVocabularyService.getGroupVocabularies(groupId)
72 tagsLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")
73 tagVocabulary = findVocabulary("Tag", vocabularies)
74 flagVocabulary = findVocabulary("Flag", vocabularies)
75 tagCategoryTitles = extractVocabularyTitles(tagVocabulary)
76 flagCategoryTitles = extractVocabularyTitles(flagVocabulary)
77 assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")
78 fileEntryService = staticUtil["com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"]
79 layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")
80 PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"]
81 AssetEntryQueryService = objectUtil("com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil").getService()
82 AssetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')
83/>
84
85<#-- Nome das midias adaptativas de imagem para desktop e mobile -->
86<#assign adaptativeMediaDesktopResolutionName = "Preview-1000x0" />
87<#assign adaptativeMediaMobileResolutionName = "Thumbnail-300x300" />
88
89<#assign typeOfNewsVocabulary = findVocabulary("Tipo de Notícia", vocabularies)/>
90<#assign ourEnergyVocabulary = findVocabulary("Nossa Energia", vocabularies)/>
91
92<#assign newsJournalArticle = "">
93<#assign assetEntry = getAssetEntryFromRequest(assetEntryLocalService)>
94<#if assetEntry?? && assetEntry?has_content>
95 <#assign newsJournalArticle = journalArticleLocalService.fetchLatestArticle(assetEntry.classPK)/>
96</#if>
97
98<#function getSingleNode name root>
99 <#attempt>
100 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${name}']/dynamic-content[@language-id='${locale}']") />
101 <#return xPathSelector.selectSingleNode( root ) />
102 <#recover>
103 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${name}']") />
104 <#return xPathSelector.selectSingleNode( root ) />
105 </#attempt>
106</#function>
107
108<#-- Função para obter a primeira categoria associonada a um Vocabulário o qual está associado a um Jornal Article -->
109<#function getFirstCategoryOfVocabulary journalArticle vocabulary >
110 <#attempt>
111 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) />
112 <#list categories as category>
113 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
114 <#return category.getName()>
115 </#if>
116 </#list>
117 <#return "">
118
119 <#recover>
120 <#return "" />
121 </#attempt>
122</#function>
123
124<#function getFirstCategoryObjectOfVocabulary journalArticle vocabulary >
125 <#attempt>
126 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) />
127 <#list categories as category>
128 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
129 <#return category>
130 </#if>
131 </#list>
132 <#return "">
133
134 <#recover>
135 <#return "" />
136 </#attempt>
137</#function>
138
139<#-- Função para obter todas os ids das categorias associonadas a um Vocabulário o qual está associado a um Jornal Article -->
140<#function getAllCategoryIdOfVocabulary journalArticle vocabulary >
141 <#attempt>
142 <#assign categoriesIds = [] />
143 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) />
144 <#list categories as category>
145 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
146 <#assign categoriesIds = categoriesIds + [category.getCategoryId()] />
147 </#if>
148 </#list>
149 <#return categoriesIds>
150
151 <#recover>
152 <#return [] />
153 </#attempt>
154</#function>
155
156<#if newsJournalArticle?? && newsJournalArticle?has_content>
157
158 <div class="breadcrumb-breakpoint breakpoint">
159 <div class="breadcrumb-col col-2-11 md-col-1-8 sm-col-1-4">
160 <#assign homeURL = "/" />
161
162 <#if currentURL?contains('webserver')>
163 <#assign homeURL = "/web/nossa-energia" />
164 </#if>
165
166 <a href="${homeURL}" class="breadcrumb-page text previous-page paragraph-micro-regular" tabindex="0">
167 <span class="breadcrumb-text-truncate" original-text="Home">Home</span>
168 <div class="icon"></div>
169 </a>
170
171 <#assign currentUrl = getSiteUrl()>
172
173 <#assign lastIndex = currentUrl?last_index_of("/")>
174 <#assign urlWithoutLastSegment = currentUrl?substring(0, lastIndex+1)>
175 <#assign urlWithoutW = urlWithoutLastSegment?replace("/w/", "/")>
176
177 <#assign breadcrumbOurEnergyCategory = getFirstCategoryObjectOfVocabulary(assetEntry, ourEnergyVocabulary) />
178 <#assign categoryURL = urlWithoutW/>
179 <a href="${categoryURL}" class="breadcrumb-page text previous-page paragraph-micro-regular" tabindex="0">
180 <span class="breadcrumb-text-truncate" original-text="${breadcrumbOurEnergyCategory.getTitle(locale)}">${breadcrumbOurEnergyCategory.getTitle(locale)}</span>
181 <div class="icon"></div>
182 </a>
183
184 <span original-text="${newsJournalArticle.getTitle(locale)}" class="breadcrumb-page text active-page active paragraph-micro-bold">${newsJournalArticle.getTitle(locale)}</span>
185 </div>
186 </div>
187
188 <div class="ptb-news__read-news">
189 <div class="ptb-news__read-news-post ">
190 <div class="ptb-news__read-content">
191
192 <#assign
193 ddmStructure = newsJournalArticle.getDDMStructure()
194 fieldList = getFieldListByStructure(ddmStructure)
195 xmlArticle = newsJournalArticle.getDocument().getRootElement()
196 >
197
198 <#assign
199 <#-- Título principal da notícia -->
200 mainHeadlineOfTheNews = newsJournalArticle.getTitle(locale, true)
201 <#-- Título de destaque da notícia -->
202 featuredNewsHeadline = extractFeaturedNewsHeadline(fieldList, xmlArticle)
203 <#-- Sumário da notícia -->
204 newsSummary = extractNewsSummary(fieldList, xmlArticle)
205 <#-- Data de publicação da notícia -->
206 lastPublishDate = extractPublishDate(newsJournalArticle)
207 <#-- Data de criação da notícia -->
208 createDate = newsJournalArticle.getCreateDate()
209 >
210
211 <#-- Flag da notícia ---------------------------------------------------------------------------------->
212 <#assign flag = getFirstCategoryTitle(newsJournalArticle, flagCategoryTitles, assetCategoryLocalService)>
213
214 <#-- Url amigável da notícia para visualização em DisplayPage ----------------------------------------->
215 <#assign newsJournalArticleFriendlyUrl = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + newsJournalArticle.getUrlTitle()>
216
217 <#-- Conteúdo da notícia ------------------------------------------------------------------------------>
218 <#assign newsContent = getFieldValue(fieldList, xmlArticle, "Corpo da notícia")>
219
220 <#assign WEB_STORIES_FIELD_SET_FIELD_REF = "Fieldset91054335" />
221 <#assign WEB_STORIES_IDENTIFICATION_FIELD_LABEL = "Identificador do Carousel" />
222 <#assign WEB_STORIES_TITLE_FIELD_LABEL = "Título do carrossel" />
223
224 <#assign webStoriesCarouselsIds = [] />
225 <#assign webStoriesCarouselsTitles = [] />
226 <#assign webStoriesCarouselsIdsFieldSetList = getNodes(WEB_STORIES_FIELD_SET_FIELD_REF, xmlArticle) />
227
228 <#list webStoriesCarouselsIdsFieldSetList as webStoriesFieldSet>
229 <#assign webStoriesCarouselsIds = webStoriesCarouselsIds + [ getFieldValue(fieldList, webStoriesFieldSet, WEB_STORIES_IDENTIFICATION_FIELD_LABEL) ] />
230 <#assign webStoriesCarouselsTitles = webStoriesCarouselsTitles + [ getFieldValue(fieldList, webStoriesFieldSet, WEB_STORIES_TITLE_FIELD_LABEL) ] />
231 </#list>
232
233 <#assign wsCarouselContent = '
234 <div id="[CAROUSEL_ID]" class="ws-carousel">
235 <div class="ws-carousel-header">
236 <h1 class="h2">
237 [CAROUSEL_TITLE]
238 </h1>
239 <div class="nav-buttons">
240 <svg class="nav-arrow left-arrow inactive" width="33" height="33" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg">
241 <path d="M1 16C1 7.16344 8.16344 0 17 0C25.8366 0 33 7.16344 33 16C33 24.8366 25.8366 32 17 32C8.16344 32 1 24.8366 1 16Z" stroke="#bababa"/>
242 <path d="M11.5 16H22.5M22.5 16L18 11.5M22.5 16L18 20.5" stroke="#bababa" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
243 </svg>
244 <svg class="nav-arrow right-arrow active" width="33" height="33" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg">
245 <path d="M1 16C1 7.16344 8.16344 0 17 0C25.8366 0 33 7.16344 33 16C33 24.8366 25.8366 32 17 32C8.16344 32 1 24.8366 1 16Z" stroke="#008542"/>
246 <path d="M11.5 16H22.5M22.5 16L18 11.5M22.5 16L18 20.5" stroke="#008542" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
247 </svg>
248 </div>
249 </div>
250 <div class="ws-carousel-body">
251 <div class="ws-container">
252 </div>
253 </div>
254 </div>' />
255
256 <#list webStoriesCarouselsIds as item >
257 <#assign carouselDiv = wsCarouselContent?replace("[CAROUSEL_ID]", item)?replace("[CAROUSEL_TITLE]", webStoriesCarouselsTitles[item?index]) />
258 <#assign newsContent = newsContent?replace("<p>#[${item}]</p>", carouselDiv) />
259 </#list>
260
261
262 <#assign WEB_STORIES_FIELD_SET_FIELD_REF = "Fieldset91054335" />
263 <#assign WEB_STORIES_IDENTIFICATION_FIELD_LABEL = "Identificador do Carousel" />
264 <#assign WEB_STORIES_TITLE_FIELD_LABEL = "Título do carrossel" />
265
266 <#assign webStoriesCarouselsIds = [] />
267 <#assign webStoriesCarouselsTitles = [] />
268 <#assign webStoriesCarouselsIdsFieldSetList = getNodes(WEB_STORIES_FIELD_SET_FIELD_REF, xmlArticle) />
269
270 <#list webStoriesCarouselsIdsFieldSetList as webStoriesFieldSet>
271 <#assign webStoriesCarouselsIds = webStoriesCarouselsIds + [ getFieldValue(fieldList, webStoriesFieldSet, WEB_STORIES_IDENTIFICATION_FIELD_LABEL) ] />
272 <#assign webStoriesCarouselsTitles = webStoriesCarouselsTitles + [ getFieldValue(fieldList, webStoriesFieldSet, WEB_STORIES_TITLE_FIELD_LABEL) ] />
273 </#list>
274
275 <#assign wsCarouselContent = '
276 <div id="[CAROUSEL_ID]" class="ws-carousel">
277 <div class="ws-carousel-header">
278 <h1 class="h2">
279 [CAROUSEL_TITLE]
280 </h1>
281 <div class="nav-buttons">
282 <svg class="nav-arrow left-arrow inactive" width="33" height="33" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg">
283 <path d="M1 16C1 7.16344 8.16344 0 17 0C25.8366 0 33 7.16344 33 16C33 24.8366 25.8366 32 17 32C8.16344 32 1 24.8366 1 16Z" stroke="#bababa"/>
284 <path d="M11.5 16H22.5M22.5 16L18 11.5M22.5 16L18 20.5" stroke="#bababa" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
285 </svg>
286 <svg class="nav-arrow right-arrow active" width="33" height="33" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg">
287 <path d="M1 16C1 7.16344 8.16344 0 17 0C25.8366 0 33 7.16344 33 16C33 24.8366 25.8366 32 17 32C8.16344 32 1 24.8366 1 16Z" stroke="#008542"/>
288 <path d="M11.5 16H22.5M22.5 16L18 11.5M22.5 16L18 20.5" stroke="#008542" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
289 </svg>
290 </div>
291 </div>
292 <div class="ws-carousel-body">
293 <div class="ws-container">
294 </div>
295 </div>
296 </div>' />
297
298 <#list webStoriesCarouselsIds as item >
299 <#assign carouselDiv = wsCarouselContent?replace("[CAROUSEL_ID]", item)?replace("[CAROUSEL_TITLE]", webStoriesCarouselsTitles[item?index]) />
300 <#assign newsContent = newsContent?replace("<p>#[${item}]</p>", carouselDiv) />
301 </#list>
302
303
304 <#-- Seção do áudio para o conteúdo da notícia -------------------------------------------------------->
305 <#assign audios = []
306 audioIdentifierFieldSetList = getNodes("Fieldset65862311", xmlArticle)
307 >
308 <#list audioIdentifierFieldSetList as audioIdentifierFieldSet>
309 <#assign
310 <#-- Grupo com as informações de url e legenda do áudio -->
311 audioInfoFieldSet = getGroupNode("Fieldset24035689",audioIdentifierFieldSet)>
312 <#assign
313 externalAudioUrl = getFieldValue(fieldList, audioInfoFieldSet, "URL externa do áudio")
314 internalAudioUrl = getFileFromXML("DocumentLibrary24170668", audioInfoFieldSet, fileEntryService)
315 audioLegend = getFieldValue(fieldList, audioInfoFieldSet, "Legenda do áudio")>
316
317 <#if externalAudioUrl?has_content || internalAudioUrl.url?has_content >
318 <#assign audios += [{
319 "id": getFieldValue(fieldList, audioIdentifierFieldSet, "Identificador de Áudio"),
320 "externalUrl" : externalAudioUrl,
321 "internalUrl" : internalAudioUrl,
322 "legend" : audioLegend
323 }]>
324 </#if>
325 </#list>
326
327
328 <#-- Seção de vídeo para o conteúdo da notícia -------------------------------------------------------->
329 <#assign videos = []
330 videoIdentifierFieldSetList = getNodes("Fieldset24460782", xmlArticle)
331 >
332 <#list videoIdentifierFieldSetList as videoIdentifierFieldSet>
333 <#assign
334 <#-- Grupo com as informações de url e legenda do áudio -->
335 videoInfoFieldSet = getGroupNode("Fieldset51040010",videoIdentifierFieldSet)
336
337 videos += [{
338 "id": getFieldValue(fieldList,videoIdentifierFieldSet, "Identificador de Vídeo"),
339 "youtubeID" : getFieldValue(fieldList, videoInfoFieldSet, "ID do vídeo do YouTube"),
340 "internalUrl" : getFileFromXML("DocumentLibrary15265409", videoInfoFieldSet, fileEntryService),
341 "legend" : getFieldValue(fieldList, videoInfoFieldSet, "Legenda do vídeo")
342 }]
343 >
344 </#list>
345
346
347 <#-- Seção de links para o conteúdo da notícia -------------------------------------------------------->
348 <#assign
349 links = []
350 linksFieldSetList = getNodes("Fieldset37770113", xmlArticle)
351 >
352 <#list linksFieldSetList as linksFieldSet>
353 <#assign linkFieldSetList = getNodes("Fieldset10524367", linksFieldSet)>
354
355 <#list linkFieldSetList as linkFieldSet>
356 <#assign
357 linkId = getFieldValue(fieldList, linkFieldSet, "Identificador do link")
358
359 <#-- Grupo com as informações de url e legenda do áudio -->
360 linkInfoFieldSeet = getGroupNode("Fieldset86037074", linkFieldSet)
361
362 iconType = getFieldValue(fieldList, linkInfoFieldSeet, "Ícone do link")
363 links += [{
364 "id": linkId,
365 "externalLink" : getFieldValue(fieldList, linkInfoFieldSeet, "Link externo"),
366 "pageLink" : getPageLayoutLinkFromXML("LinkToLayout77941175", linkInfoFieldSeet, layoutLocalService),
367 "file" : getFileFromXML("DocumentLibrary34820760", linkInfoFieldSeet, fileEntryService),
368 "title" : getFieldValue(fieldList, linkInfoFieldSeet, "Título do link"),
369 "iconType" : iconType
370 }]
371 >
372 </#list>
373 </#list>
374
375
376
377 <#assign galleryItems = []/>
378
379 <#assign mediaGroupList = getNodes(getIdFromFieldName(fieldList, "Galeria de multimídia"), xmlArticle) />
380
381 <#list mediaGroupList as mediaGroup >
382 <#assign nodes = getNodes(getIdFromFieldName(fieldList, "Imagem da Galeria") , mediaGroup) />
383 <#list nodes as node>
384 <#assign image = getMediaInfo(fieldList, node, "Imagem", fileEntryService) />
385 <#if image?? && image?has_content && image.url?has_content>
386 <#assign galleryItems += [{"image": image}] />
387 </#if>
388 </#list>
389 </#list>
390
391 <#-- Seção de Quotes para o conteúdo da notícia -------------------------------------------------------->
392 <#-- Seção de Quotes para o conteúdo da notícia -------------------------------------------------------->
393 <#assign quotes = [] />
394 <#assign quotesRootFieldSetList = getNodes(getIdFromFieldName(fieldList, "Quotes da notícia"), xmlArticle) />
395 <#list quotesRootFieldSetList as quotesFieldSetList>
396 <#assign quoteFieldSetList = getNodes(getIdFromFieldName(fieldList, "Quote"), quotesFieldSetList) />
397 <#list quoteFieldSetList as quoteFieldSet>
398 <#assign imageJsonString = getSingleNodeString("Image94530628", quoteFieldSet) />
399 <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} />
400 <#attempt>
401 <#if imageJsonString ?? && imageJsonString?has_content>
402 <#assign imageJson = jsonFactoryUtil.createJSONObject(imageJsonString) />
403 </#if>
404
405 <#if !imageJson.url?? || !imageJson.url?has_content>
406 <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} />
407 </#if>
408 <#recover>
409 </#attempt>
410
411 <#if !imageJson.url?? || !imageJson.url?has_content>
412 <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} />
413 </#if>
414
415 <#assign quotes += [{
416 "id": getFieldValue(fieldList, quoteFieldSet, "Identificador do Quote"),
417 "content" : getFieldValue(fieldList, quoteFieldSet, "Texto do Quote"),
418 "author" : getFieldValue(fieldList, quoteFieldSet, "Nome do autor"),
419 "image" : {"url": imageJson.url, "alt": imageJson.alt, "fileEntryId" : imageJson.fileEntryId, "title" : imageJson.title}
420 }] />
421 </#list>
422 </#list>
423
424 <#assign newsInfo = {
425 "mainHeadlineOfTheNews": mainHeadlineOfTheNews,
426 "featuredNewsHeadline" : featuredNewsHeadline,
427 "displayDate" : formatDate(createDate),
428 "createDate": createDate,
429 "newsSummary" : newsSummary,
430 "newsMedia": extractNewsMedia(fieldList, xmlArticle, fileEntryService),
431 "lastPublishDate": lastPublishDate,
432 "flag": flag,
433 "url": newsJournalArticleFriendlyUrl,
434 "newsContent": newsContent,
435 "audios": audios,
436 "videos": videos,
437 "galleryItems": galleryItems,
438 "links": links,
439 "quotes": quotes
440 }/>
441
442 <#-- Renderizar o título principal da notícia -->
443 <#-- Conteúdo-> Conteúdo Web -> Templates: Site de Crise - Notícia - Título -->
444 <@renderHeadLine newsInfo/>
445
446 <#-- Renderizar o resumo da notícia -->
447 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Resumo -->
448 <@renderReview newsInfo/>
449
450 <#-- Renderizar a data de publicação/edição da notícia e redes sociais -->
451 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Redes sociais e data de publicação -->
452 <@renderPublishAndSocialMediasInfos newsJournalArticle newsInfo/>
453
454 <#-- Renderizar as tags da notícia -->
455 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render Tags -->
456 <#assign categoriesAsssetEntryResponse = restClient.get("/headless-delivery/v1.0/structured-contents/${assetEntry.getClassPK()}?nestedFields=embeddedTaxonomyCategory&fields=taxonomyCategoryBriefs") />
457
458 <#if categoriesAsssetEntryResponse?? && categoriesAsssetEntryResponse?has_content && categoriesAsssetEntryResponse.taxonomyCategoryBriefs??>
459 <#assign tagCategoryList = getCategoriesNamesAndIds("Tags", categoriesAsssetEntryResponse.taxonomyCategoryBriefs) />
460 <#assign removeStartParameterWhenTagIsClicked = true />
461 <#assign includeRequestParams = false />
462 <#assign NEWS_PAGE_NAME= "categorias"/>
463 </#if>
464
465
466 <#-- Renderizar a imagem de destaque da notícia -->
467 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Imagem de destaque -->
468 <#assign typeOfNews = getFirstCategoryOfVocabulary(assetEntry, typeOfNewsVocabulary) />
469
470 <#if !typeOfNews?? || !typeOfNews?has_content || typeOfNews != "Infográfico" >
471 <@renderNewsFeaturedMedia newsInfo />
472 </#if>
473
474 <#-- Renderizar o conteúdo da notícia -->
475 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia -->
476 <@renderNewsContent newsInfo/>
477
478 <#-- Renderizar o conteúdo da notícia-->
479 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia -->
480
481 <#-- Renderizar o conteúdo da notícia-->
482 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia -->
483
484 <#-- Renderiza botoes de compartilhamento na versao mobile -->
485 <div class="render-share-news-container publish_and_social_medias_infos_desk mobile">
486 <@renderShareAndCopyNews/>
487 </div>
488
489 <#-- Renderizar links da notícia -->
490 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Links do conteúdo da notícia -->
491 <@renderLinks newsInfo />
492
493 <@renderCite />
494
495 <#-- Renderizar áudios da notícia -->
496 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Áudios do conteúdo da notícia -->
497
498 <#-- Renderizar galeria de imagens notícia -->
499 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render galeria -->
500 <@renderGallery newsInfo />
501
502 <#-- Renderizar quotes da notícia -->
503 <@renderQuotes newsInfo />
504 </div>
505 </div>
506 </div>
507<#else >
508 <div class="ptb-news__read-news paragraph-sm-regular">
509 <p> <#if locale == "pt_BR"> Nenhuma notícia <#else> There are no news </#if></p>
510 </div>
511
512 <style>
513 .ptb-news__read-news p {
514 color: #515867;
515 }
516
517 body.high-contrast-active .ptb-news__read-news p {
518 color: var(--color-neutral-100);
519 }
520 </style>
521</#if>
522
523<style>
524 .breadcrumb-breakpoint {
525 padding-top: var(--space-xxl);
526 padding-bottom: var(--space-xl);
527 }
528
529 body.high-contrast-active .breadcrumb-breakpoint {
530 background: var(--background-surface-level-01, #010101);
531 }
532
533 .breadcrumb-breakpoint .breadcrumb-col {
534 display: flex;
535 width: max-content;
536 gap: var(--space-xxs);
537 height: fit-content;
538 overflow-x: hidden;
539 }
540
541 .breadcrumb-breakpoint #liferay-breadcrumb {
542 display: none;
543 }
544
545 .breadcrumb-breakpoint .breadcrumb-page {
546 display: flex;
547 gap: var(--space-micro);
548 height: var(--size-md);
549 size: var(--size-md);
550 border: 1px solid rgba(0, 0, 0, 0);
551 box-sizing: border-box;
552 border-radius: var(--border-radius-sm);
553 }
554
555 .breadcrumb-breakpoint a.breadcrumb-page.text span,
556 .breadcrumb-breakpoint span.breadcrumb-page.text {
557 white-space: nowrap;
558 }
559
560 .breadcrumb-breakpoint .breadcrumb-page a:focus {
561 outline: none;
562 }
563
564 .breadcrumb-breakpoint .breadcrumb-page.active-page {
565 color: var(--color-text-primary-default);
566 background-color: var(--color-background-default-level-02);
567 border-radius: var(--border-radius-sm);
568 }
569
570 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.active-page {
571 background: var(--background-surface-level-02, #373737);
572 color: var(--text-primary-default, #FFF);
573 }
574
575 .breadcrumb-breakpoint .breadcrumb-page.previous-page {
576 transition: 300ms ease-in-out;
577 }
578
579 .breadcrumb-breakpoint .breadcrumb-page.previous-page.text {
580 text-decoration: var(--text-decoration-none);
581 color: var(--color-text-primary-default);
582 text-transform: capitalize;
583 padding-left: var(--space-xxs);
584 padding-right: var(--space-xxs);
585 }
586
587 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text {
588 color: var(--text-primary-default, #FFF);
589 }
590
591 .breadcrumb-breakpoint .breadcrumb-page.active-page.text {
592 color: var(--color-text-primary-default);
593 text-decoration: var(--text-decoration-none);
594 background-color: var(--color-background-default-level-02);
595 text-transform: capitalize;
596 padding-left: var(--space-xxs);
597 padding-right: var(--space-xxs);
598 }
599
600 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text {
601 color: var(--text-primary-default, #FFF);
602 }
603
604 .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover {
605 background-color: var(--color-background-default-level-01);
606 border-color: var(--border-color-dark);
607 border-radius: var(--border-radius-sm);
608 border: 1px solid;
609 transition: all 300ms ease-in-out;
610 }
611
612 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover {
613 background-color: transparent;
614 }
615
616 .breadcrumb-breakpoint .breadcrumb-page:focus-visible {
617 margin: var(--space-micro);
618 border-radius: var(--space-micro);
619 outline: none;
620 border: 1px solid var(--color-primary-medium);
621 box-sizing: border-box;
622 transition: 300ms ease-in-out;
623 }
624
625 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page:focus-visible {
626 border: 1px solid rgba(228, 247, 232, 1);
627 }
628
629 .breadcrumb-breakpoint .breadcrumb-page .icon {
630 width: var(--size-xxs);
631 height: var(--size-xxs);
632 border-color: var(--border-color-darkest);
633 background-image: url('data:image/svg+xml,%3Csvg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M4.5 2.25L8.25 6L4.5 9.75" stroke="%23525252" stroke-linecap="round" stroke-linejoin="round"%3E%3C/path%3E%3C/svg%3E');
634 background-size: cover;
635 margin-top: auto;
636 margin-bottom: auto;
637 }
638
639 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page .icon {
640 background-image: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none"><path d="M4.5 2.25L8.25 6L4.5 9.75" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg>');
641 }
642
643 .ptb-news__read-news {
644 overflow: hidden;
645 }
646
647 body.high-contrast-active .ptb-news__read-news {
648 background: var(--background-surface-level-01, #010101);
649 }
650</style>
651
652
653<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### -->
654<#--
655Add elements from the sidebar to define your template. Type "${" to use the
656autocomplete feature.
657-->
658
659<#macro addSchemaMarkup newsInfo>
660 <#assign image = ""/>
661 <#assign datePublished = newsInfo.createDate?string('yyyy-MM-ddHH:mm:ss-03:00')/>
662 <#assign datePublishedISOFormat = datePublished?substring(0, 10) + "T" + datePublished?substring(10)/>
663 <#assign dateModified = newsInfo.lastPublishDate?string('yyyy-MM-ddHH:mm:ss-03:00')/>
664 <#assign dateModifiedISOFormat = dateModified?substring(0, 10) + "T" + dateModified?substring(10)/>
665
666 <#if newsInfo.newsMedia.imageSrc?? && newsInfo.newsMedia.imageSrc?has_content>
667 <#assign image = "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsMedia.fileEntryId}/Thumbnail-300x300/image"/>
668 <#else>
669 <#if newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content>
670 <#assign image = "https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg"/>
671 </#if>
672 </#if>
673
674 <#-- Busca informações do cadastro Organization do institucional do ambiente de produção-->
675 <#-- 35467409 é o id da estrutura de webcontent "Dados Estruturados - Organização" -->
676 <#assign organizationName = "" />
677 <#assign logoImgSrc = "" />
678
679 <#assign structuredContents = restClient.get("/headless-delivery/v1.0/content-structures/35467409/structured-contents")/>
680 <#if structuredContents?has_content && structuredContents.items?has_content>
681 <#assign structuredContentData = structuredContents.items[0]/>
682 <#if structuredContentData?has_content && structuredContentData.contentFields?has_content>
683 <#list structuredContentData.contentFields as item>
684 <#if item.label == "Nome legal da organização">
685 <#assign organizationName = item.contentFieldValue.data!"">
686 </#if>
687 <#if item.label == "Logotipo" && item.contentFieldValue?has_content && item.contentFieldValue.image??>
688 <#assign logoImgSrc = themeDisplay.getURLPortal() + item.contentFieldValue.image.contentUrl!"">
689 </#if>
690 </#list>
691 </#if>
692 </#if>
693
694
695 <#-- add to head -->
696 <@liferay_util["html-top"]>
697 <script type="application/ld+json">
698 {
699 "@context": "https://schema.org",
700 "@type": "BlogPosting",
701 "headline": "${newsInfo.mainHeadlineOfTheNews}",
702 "alternativeHeadline": "${newsInfo.featuredNewsHeadline}",
703 "image": "${image}",
704 "author": {
705 "@type": "Person",
706 "name": "Petrobras",
707 "url": "${themeDisplay.getPortalURL()}/autor"
708 },
709 "publisher": {
710 "@type": "Organization",
711 "name": "${organizationName}",
712 "logo": {
713 "@type": "ImageObject",
714 "url": "${logoImgSrc}"
715 }
716 },
717 "datePublished": "${datePublishedISOFormat}",
718 "dateModified": "${dateModifiedISOFormat}",
719 "mainEntityOfPage": "${newsInfo.url}",
720 "description": "${newsInfo.newsSummary}",
721 "keywords": [<#list tagCategoryList as tag>"${tag[0]}"<#sep>, </#list>],
722 "articleBody": "${
723 newsInfo.newsContent
724 ?replace('&[a-z]+;', ' ', 'r')
725 ?replace('<[^>]+>', '', 'r')
726 ?replace('[\n\r]+', ' ', 'r')
727 ?trim
728 ?json_string
729 }"
730 }
731 </script>
732 </@>
733</#macro>
734
735<@addSchemaMarkup newsInfo/>
736
737<#macro renderHeadLine newsInfo>
738
739 <div class="main-headline-container breakpoint">
740 <div class="main-headline-container-col col-2-11 md-col-1-8 sm-col-1-4">
741 <h1 class="main-headline display-sm">${newsInfo.featuredNewsHeadline}</h1>
742 <div class="bar"></div>
743 </div>
744 </div>
745
746 <style>
747 .ptb-news__read-news .main-headline-container .main-headline-container-col {
748 display: flex;
749 flex-direction: column;
750 gap: var(--space-sm);
751 padding-bottom: var(--space-lg);
752 }
753
754 .ptb-news__read-news .main-headline-container .main-headline-container-col * {
755 margin: 0;
756 padding: 0;
757 }
758
759 .ptb-news__read-news .main-headline-container .main-headline {
760 font-family: var(--font-family-base);
761 color: var(--color-neutral-800);
762 }
763
764 body.high-contrast-active .ptb-news__read-news .main-headline-container .main-headline {
765 color: var(--text-primary-default, var(--color-neutral-100));
766 }
767
768 .ptb-news__read-news .main-headline-container .bar {
769 width: 32px;
770 height: var(--size-micro);
771 background: var(--color-secondary-medium);
772 }
773
774 body.high-contrast-active .ptb-news__read-news .main-headline-container .bar{
775 background: var(--text-secondary-accent, #FFEEB3);
776 }
777
778 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
779 .ptb-news__read-news .main-headline-container .main-headline-container-col {
780 gap: var(--space-xs, 12px);
781 }
782 }
783 </style>
784</#macro>
785<#-- ################################################################################################################## -->
786
787<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### -->
788<#macro renderReview newsInfo>
789 <#assign summaryCssRoot = "summary-container" />
790
791 <div class="${summaryCssRoot}-breakpoint breakpoint">
792 <div class="${summaryCssRoot} col-2-11 md-col-1-8 sm-col-1-4">
793 <p class="summary paragraph-lg-regular">
794 ${newsInfo.newsSummary}
795 </p>
796 </div>
797
798 </div>
799
800 <style>
801 .${summaryCssRoot} .summary {
802 padding-bottom: var(--space-lg);
803 }
804
805 .${summaryCssRoot} .summary,
806 .${summaryCssRoot} .summary * {
807 color: var(--color-neutral-800, #373737);
808 font-family: var(--font-family-base);
809 font-style: var(--font-style-italic);
810 margin: var(--space-none);
811 }
812
813 body.high-contrast-active .summary,
814 body.high-contrast-active .summary * {
815 color: var(--text-secondary-default, #F8F8F8);
816 }
817 </style>
818</#macro>
819<#-- ################################################################################################################## -->
820
821<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### -->
822<#macro renderPublishAndSocialMediasInfos journalArticle newsInfo>
823
824 <div class="publish_and_social_medias_infos_desk-breakpoint breakpoint">
825 <div class="publish_and_social_medias_infos_desk col-2-11 md-col-1-8 sm-col-1-4">
826 <div class="publish_and_update_date">
827 <#assign lastPublishDate = journalArticle.getModifiedDate()>
828 <#assign createDate = journalArticle.getCreateDate()>
829 <#if journalArticle.getLastPublishDate()??>
830 <#assign lastPublishDate = journalArticle.getLastPublishDate()>
831 </#if>
832
833 <#if locale == "pt_BR">
834 <p class="updated">Atualizado em ${formatDate(lastPublishDate)}</p>
835 <p class="published">Postado em ${formatDate(createDate)}</p>
836 <#else >
837 <p class="updated">Updated on ${formatDate(lastPublishDate)}</p>
838 <p class="published">Posted on ${formatDate(createDate)}</p>
839 </#if>
840 </div>
841 <div class="render-share-news-container desktop">
842 <@renderShareAndCopyNews/>
843 </div>
844 </div>
845 </div>
846
847 <style>
848 .ptb-news__read-news .hidden {
849 display: none;
850 }
851 /*Data de publicação e redes sociais */
852
853 /* Desktop */
854 .ptb-news__read-news .publish_and_social_medias_infos_desk {
855 position: relative;
856 display: grid;
857 grid-template-columns: auto 1fr auto;
858 }
859
860 .ptb-news__read-news .render-share-news-container.mobile {
861 display: none;
862 }
863
864 .ptb-news__read-news .publish_and_social_medias_infos_desk * {
865 padding: var(--space-none, 0);
866 margin: var(--space-none, 0);
867 font-family: var(--font-family-base);
868 font-style: var(--font-style-normal, normal);
869 font-weight: var(--font-weight-regular, 400);
870 font-size: var(--font-size-xxs, 16px);
871 line-height: var(--line-height-xl, 160%);
872 color: var(--color-neutral-800, #373737);
873 }
874
875 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk * {
876 color: var(--text-secondary-default, #F8F8F8);
877 }
878
879 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg path,
880 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg path {
881 stroke: var(--color-neutral-500, #D7D7D7);
882 fill: rgba(255, 255, 255, 0.32);
883 }
884
885 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg circle,
886 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg circle {
887 fill: rgba(255, 255, 255, 0.32);
888 }
889
890 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date {
891 display: flex;
892 align-items: center;
893 gap: var(--space-sm, 16px);
894 }
895
896 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated {
897 font-weight: var(--font-weight-bold, 700);
898 font-size: var(--font-size-xxxs, 14px);
899 }
900
901 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated {
902 color: var(--text-primary-default, var(--color-neutral-100));
903 }
904
905 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published {
906 font-weight: var(--font-weight-normal, 400);
907 font-size: var(--font-size-xxxs, 14px);
908 }
909
910 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container {
911 display: flex;
912 width: 100%;
913 justify-content: flex-end;
914 align-items: center;
915 gap: var(--space-sm, 16px);
916 }
917
918 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .social-media-share {
919 position: relative;
920 }
921
922 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .social-media-share span {
923 position: absolute;
924 width: 100%;
925 height: 100%;
926 opacity: 0;
927 overflow: hidden;
928 pointer-events: none;
929 }
930
931 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share {
932 display: none;
933 }
934
935 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container {
936 background: var(--color-neutral-100);
937 border: var(--border-width-hairline, 1px) solid #CCCCCC;
938 border-radius: 32px;
939 display: flex;
940 align-items: center;
941 gap: var(--space-sm, 16px);
942 padding: 6px var(--space-xxs, 8px);
943 height: 36px;
944 margin: 0;
945 cursor: pointer;
946 }
947
948 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container {
949 background: rgba(255, 255, 255, 0.32);
950 border: var(--border-width-hairline, 1px) solid rgba(255, 255, 255, 0.32);
951 }
952
953 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container svg {
954 width: 18px;
955 }
956
957 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk svg path {
958 stroke: var(--color-neutral-500, #D7D7D7);
959 }
960
961 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text {
962 font-family: var(--font-family-base);
963 font-style: normal;
964 margin: 0;
965 height: 100%;
966 display: flex;
967 align-items: center;
968 color: var(--color-primary-medium, #008542);
969 font-size: var(--font-size-micro, 12px);
970 font-weight: var(--font-weight-bold, 700);
971 line-height: var(--line-height-lg, 144%);
972 pointer-events: none;
973 }
974
975 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text .copy-text-title-news {
976 position: absolute;
977 width: 100%;
978 height: 100%;
979 opacity: 0;
980 overflow: hidden;
981 }
982
983 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text {
984 color: var(--text-primary-accent, #E4F7E8);
985 }
986
987 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message {
988 display: none;
989 position: absolute;
990 bottom: -43px;
991 right: -15px;
992 padding: var(--space-xxxs, 4px) 15px;
993 margin: var(--space-micro, 2px) 10px;
994 width: 110px;
995 font-family: var(--font-family-base);
996 font-size: var(--font-size-micro, 12px);
997
998 color: #008542;
999 background: var(--color-neutral-100);
1000 border-radius: var(--border-radius-md, 8px);
1001
1002 filter: drop-shadow(0px 4px 16px rgba(0, 0, 0, 0.16));
1003
1004 cursor: pointer;
1005 }
1006
1007 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message {
1008 background: rgba(255, 255, 255, 0.32);
1009 color: var(--text-primary-accent, #E4F7E8);
1010 }
1011
1012 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message-active {
1013 display: block;
1014 }
1015
1016 /* Mobile */
1017
1018 .ptb-news__read-news .publish_and_social_medias_infos_mobile {
1019 display: flex;
1020 flex-direction: column;
1021 gap: 19px;
1022 }
1023
1024 .ptb-news__read-news .publish_and_social_medias_infos_mobile {
1025 display: none;
1026 }
1027
1028 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text {
1029 display: flex;
1030 justify-content: space-between;
1031 align-items: center;
1032 margin-bottom: var(--space-lg, 32px);
1033 }
1034
1035 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date * {
1036 padding: 0;
1037 margin: 0;
1038 font-family: var(--font-family-base);
1039 font-style: var(--font-style-normal, normal);
1040 font-size: var(--font-size-micro, 12px);
1041 line-height: 136%;
1042 color: var(--color-neutral-800, #373737);
1043 }
1044
1045 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date * {
1046 color: var(--text-primary-accent, #E4F7E8);
1047 }
1048
1049 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date {
1050 display: flex;
1051 flex-direction: column;
1052 gap: 0;
1053 }
1054
1055 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .updated {
1056 font-weight: var(--font-weight-bold, 700);
1057 }
1058
1059 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .published {
1060 font-weight: var(--font-weight-regular, 400);
1061 }
1062
1063 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container {
1064 background: var(--color-neutral-100);
1065 border: var(--border-width-hairline, 1px) solid #CCCCCC;
1066 border-radius: 32px;
1067 display: flex;
1068 align-items: center;
1069 gap: var(--space-sm, 16px);
1070 padding: 6px var(--space-xxs, 8px);
1071 width: 112px;
1072 height: 36px;
1073 }
1074
1075 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container {
1076 background: rgba(255, 255, 255, 0.32);
1077 color: var(--text-primary-accent, #E4F7E8);
1078 }
1079
1080 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container p.text {
1081 margin: 0;
1082 }
1083
1084 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container .text {
1085 font-family: var(--font-family-base);
1086 font-style: var(--font-style-normal, normal);
1087 font-weight: var(--font-weight-regular, 400);
1088 font-size: 13px;
1089 line-height: 14px;
1090 color: #008542;
1091 }
1092
1093 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container .text {
1094 background: rgba(255, 255, 255, 0.32);
1095 color: var(--text-primary-accent, #E4F7E8);
1096 }
1097
1098 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
1099
1100 .ptb-news__read-news .publish_and_social_medias_infos_desk .render-share-news-container.desktop {
1101 display: none;
1102 }
1103
1104 .ptb-news__read-news .render-share-news-container.mobile {
1105 display: block;
1106 margin: var(--space-xl) var(--space-lg) 0 var(--space-lg);
1107 }
1108
1109 .ptb-news__read-news .publish_and_social_medias_infos_desk * {
1110 font-size: var(--font-size-micro, 12px);
1111 }
1112
1113 .ptb-news__read-news .publish_and_social_medias_infos_desk {
1114 display: grid;
1115 grid-template-columns: 100%;
1116 grid-template-rows: 1fr 100%;
1117 }
1118
1119 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date {
1120 grid-column-start: 1;
1121 grid-column-end: 1;
1122 grid-row-start: 1;
1123 grid-row-end: 1;
1124 gap: var(--space-xxs, 8px);
1125 }
1126
1127 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * {
1128 padding: 0;
1129 margin: 0;
1130 font-family: var(--font-family-base);
1131 font-style: var(--font-style-normal);
1132 color: var(--color-neutral-800, #373737);
1133 font-weight: var(--font-weight-bold);
1134 font-size: var(--font-size-xxxs, 14px);
1135 line-height: var(--line-height-md, 132%);
1136 }
1137
1138 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * {
1139 color: var(--text-primary-accent, #E4F7E8);
1140 }
1141
1142 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published {
1143 font-weight: var(--font-weight-regular, 400);
1144 }
1145
1146 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container {
1147 grid-column-start: 1;
1148 grid-column-end: 2;
1149 grid-row-start: 2;
1150 grid-row-end: 2;
1151 justify-content: center;
1152 gap: var(--space-xs, 12px);
1153 height: 36px;
1154 }
1155
1156 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container {
1157 grid-column-start: 1;
1158 grid-column-end: 2;
1159 grid-row-start: 2;
1160 grid-row-end: 2;
1161 max-width: 112px;
1162 place-self: end;
1163 }
1164
1165 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text {
1166 display: none;
1167 }
1168
1169 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message {
1170 bottom: 0;
1171 right: -9px;
1172 }
1173
1174 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share {
1175 display: initial;
1176 }
1177 }
1178
1179 @media screen and (min-width: ${MIN_TABLET_WIDTH}px) and (max-width: ${MAX_TABLET_WIDTH}px) {
1180 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container {
1181 padding-right: 0;
1182 }
1183 }
1184
1185
1186 </style>
1187
1188 <script>
1189 AUI().ready(function () {
1190
1191 function copyOnClick(text) {
1192
1193 const strWithoutHtmlTags = text.replace(/(<([^>]+)>)/gi, "");
1194 const strWithoutMarcationBrackets = strWithoutHtmlTags.replace(/ *#\[[^\]]*]/g, "");
1195 const strWithoutNextPrevious = strWithoutMarcationBrackets.replace(/Previous Next/g, "");
1196 const strWithoutBlankEnters = strWithoutNextPrevious.replace(/^\s*$(?:\r\n?|\n)/gm, "");
1197 const strWithoutBlankLines = strWithoutBlankEnters.replace(/ /g, '');
1198 const tempInput = document.createElement("textarea");
1199 tempInput.value = strWithoutBlankLines;
1200
1201 document.body.appendChild(tempInput);
1202 tempInput.select();
1203 document.execCommand("copy");
1204
1205 if (tempInput.value.length > 0) {
1206 copyMessages.forEach(copyMessage => copyMessage.classList.add('copy-message-active'));
1207
1208 timerToMessage()
1209 }
1210
1211 document.body.removeChild(tempInput);
1212 }
1213
1214 const copyTextContainers = document.querySelectorAll(".publish_and_social_medias_infos_desk .copy-text-container");
1215 copyTextContainers.forEach(copyTextContainer => {
1216 copyTextContainer.addEventListener("click", (event) => {
1217 event.preventDefault();
1218 const titleText = document.querySelector(".main-headline-container .main-headline").innerHTML;
1219 const publishSocialMediaText = document.querySelector(".publish_and_social_medias_infos_desk .publish_and_update_date").innerHTML;
1220 const tagsText = document.querySelector(".tags").innerHTML;
1221 const newsContentText = document.querySelector(".news-content").innerHTML;
1222 const text = titleText + publishSocialMediaText + tagsText + newsContentText;
1223 copyOnClick(text)
1224 });
1225 });
1226
1227 const mobileShare = async () => {
1228 try {
1229 const shareData = {
1230 title: '${newsInfo.mainHeadlineOfTheNews}',
1231 text: '',
1232 url: '${newsInfo.url}'
1233 };
1234 await navigator.share(shareData);
1235 } catch (err) {
1236
1237 }
1238 };
1239
1240 const mobileShareButtons = document.querySelectorAll(".publish_and_social_medias_infos_desk .mobile-share");
1241 mobileShareButtons.forEach(mobileShareButton => {
1242 mobileShareButton.addEventListener("click", (event) => {
1243 event.preventDefault();
1244 mobileShare();
1245 });
1246 });
1247
1248 const copyMessages = document.querySelectorAll('.copy-message');
1249 const timerToMessage = () => {
1250 setTimeout(() => {
1251 removeMessage();
1252 }, 2500);
1253
1254 }
1255
1256 const removeMessage = () => {
1257 copyMessages.forEach(copyMessage => copyMessage.classList.remove('copy-message-active'));
1258 }
1259
1260 });
1261 </script>
1262
1263</#macro>
1264
1265<#-- ################################################################################################################## -->
1266
1267<#-- ############# Site de Crise - Notícia - Render Tags ############################################################## -->
1268
1269<#function getCategoriesNamesAndIds vocabularyName categoriesList>
1270 <#assign tagCategoryList = [] />
1271
1272 <#assign tagsVocabulary = assetVocabularyService.fetchGroupVocabulary(groupId, vocabularyName) />
1273 <#list categoriesList as cat>
1274 <#if tagsVocabulary.getVocabularyId() == cat.embeddedTaxonomyCategory.taxonomyVocabularyId >
1275 <#assign tagCategoryList += [[cat.taxonomyCategoryName, cat.taxonomyCategoryId]] />
1276 </#if>
1277 </#list>
1278 <#return tagCategoryList>
1279</#function>
1280
1281<#assign
1282flagVocabulary = findVocabulary("Flag", vocabularies)
1283assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")
1284/>
1285
1286<#macro renderNewsTags categoryList targetPageWhenClickTag removeStartParameterWhenTagIsClicked updateTagParamsWhenClicked>
1287 <#assign tagPrefix = "tags-" + randomNumber(groupId?number)>
1288 <div class="${tagPrefix}-breakpoint breakpoint">
1289 <div class="${tagPrefix} col-2-11 md-col-1-8 sm-col-1-4">
1290
1291 <div class="tags">
1292 <#list categoryList as cat>
1293 <#assign tagLink = mountUrlToPage("") />
1294 <#assign urlWithoutTrailingSlash = tagLink?substring(0, tagLink?length - 1)>
1295 <#assign lastSlashIndex = urlWithoutTrailingSlash?last_index_of("/")>
1296 <#assign newUrl = urlWithoutTrailingSlash?substring(0, lastSlashIndex + 1)>
1297 <#assign tagLink = newUrl + "categorias?category=" + cat[1] />
1298 <a href="${tagLink}"
1299 class="category" cetegoryid="${cat[1]}"># ${cat[0]}</a>
1300 </#list>
1301 </div>
1302 </div>
1303 </div>
1304
1305 <style>
1306 .${tagPrefix} {
1307 display: flex;
1308 flex-direction: column;
1309 padding: 0;
1310 gap: var(--space-sm);
1311 }
1312
1313 .${tagPrefix} * {
1314 margin: 0;
1315 padding: 0;
1316 }
1317
1318 .${tagPrefix} .tags {
1319 display: flex;
1320 flex-wrap: wrap;
1321 gap: var(--space-xxs, 8px);
1322 padding: var(--space-lg) 0 0;
1323 }
1324
1325 .${tagPrefix} .tags .category {
1326 padding: var(--space-xxxs) var(--space-xxs);
1327 background: var(--color-neutral-100);
1328 border: var(--border-width-hairline, 1px) solid var(--color-neutral-500);
1329 border-radius: var(--border-radius-xl);
1330
1331 font-family: var(--font-family-base);
1332 font-style: var(--font-style-normal);
1333 font-weight: var(--font-weight-regular);
1334 font-size: var(--font-size-xxxs);
1335 line-height: var(--line-height-xl);
1336 color: var(--color-neutral-800, #373737);
1337 cursor: pointer;
1338 }
1339
1340 body.high-contrast-active .${tagPrefix} .tags .category {
1341 background: rgba(255, 255, 255, 0.32);
1342 border: 1px solid rgba(255, 255, 255, 0.32);
1343 color: var(--text-secondary-default, #F8F8F8);
1344 }
1345
1346 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
1347 .${tagPrefix} .tags {
1348 display: flex;
1349 flex-wrap: wrap;
1350 gap: 8px;
1351 padding: var(--space-sm) 0 var(--space-lg);
1352 }
1353
1354 .${tagPrefix} {
1355 margin-top: var(--space-sm);
1356 }
1357 }
1358 </style>
1359
1360 <script>
1361 AUI().ready(function () {
1362
1363 const urlParams = new URLSearchParams(window.location.search);
1364 const categories = urlParams.getAll("category").sort();
1365
1366 const root = document.querySelector(".${tagPrefix}");
1367 const tags = root.querySelectorAll(".category");
1368 tags.forEach((tag, index) => {
1369
1370 const categoryId = tag.getAttribute("cetegoryid");
1371 if (categories.indexOf(categoryId) != -1) {
1372 tag.classList.add("active");
1373 }
1374
1375 <#if updateTagParamsWhenClicked>
1376 tag.addEventListener("click", (e) => {
1377 e.preventDefault();
1378 const clickedTag = e.target;
1379 const urlParams = new URLSearchParams(window.location.search);
1380 urlParams.delete("tag");
1381 urlParams.delete("category");
1382
1383 const categoryId = clickedTag.getAttribute("cetegoryid");
1384 urlParams.append("category", categoryId);
1385
1386 <#if removeStartParameterWhenTagIsClicked>
1387 urlParams.delete("start");
1388 </#if>
1389
1390 const href = "${themeDisplay.getPortalURL() + mountUrlToPage(targetPageWhenClickTag)}?" + urlParams.toString();
1391 window.location.href = href;
1392 });
1393 </#if>
1394 });
1395 });
1396 </script>
1397
1398</#macro>
1399
1400<#-- ################################################################################################################## -->
1401
1402<#-- ############# Site de Crise - Notícia - Imagem de destaque ####################################################### -->
1403<#macro renderNewsFeaturedMedia newsInfo>
1404 <#if (newsInfo.newsMedia.imageSrc?? && newsInfo.newsMedia.imageSrc?has_content) || (newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content) || (newsInfo.newsMedia.internalVideo?? && newsInfo.newsMedia.internalVideo.url?has_content)>
1405 <div class="news-featured-media">
1406
1407 <div class="media-breakpoint breakpoint">
1408 <div class="media-col col-2-11 md-col-1-8 sm-col-1-4">
1409 <#if newsInfo.newsMedia.imageSrc?? && newsInfo.newsMedia.imageSrc?has_content>
1410 <#-- Midias adaptativas de imagem para desktop e mobile -->
1411 <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${newsInfo.newsMedia.fileEntryId}") />
1412 <#assign urlAdaptativeMediaMobile = newsInfo.newsMedia.imageSrc/>
1413 <#assign urlAdaptativeMediaDesktop = newsInfo.newsMedia.imageSrc/>
1414
1415 <#if fileDataRequest?? && fileDataRequest.adaptedImages?? >
1416 <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages />
1417 <#list dataAdaptativeMedia as data>
1418 <#if data.resolutionName == adaptativeMediaDesktopResolutionName>
1419 <#assign urlAdaptativeMediaDesktop = data.contentUrl/>
1420 </#if>
1421 <#if data.resolutionName == adaptativeMediaMobileResolutionName>
1422 <#assign urlAdaptativeMediaMobile = data.contentUrl/>
1423 </#if>
1424 </#list>
1425 </#if>
1426
1427 <picture >
1428 <source media="(max-width:767px)" srcset="${urlAdaptativeMediaMobile}">
1429 <img src="${urlAdaptativeMediaDesktop}" loading="lazy" alt="${newsInfo.newsMedia.imageAlt}"/>
1430 </picture>
1431 <@liferay_util["html-top"]>
1432 <meta name="title" content="${newsInfo.mainHeadlineOfTheNews}">
1433 <meta name="description" content="${newsInfo.newsSummary}">
1434
1435 <meta property="og:url" content="${currentURL}">
1436 <meta property="og:type" content="website">
1437 <meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}">
1438 <meta property="og:description" content="${newsInfo.newsSummary}" />
1439 <meta property="og:image" content="${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsMedia.fileEntryId}/Thumbnail-300x300/image">
1440 <meta property="og:image:alt" content="${newsInfo.newsMedia.imageAlt}">
1441
1442 <meta name="twitter:card" content="summary_large_image">
1443 <meta name="twitter:url" content="${currentURL}" />
1444 <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}">
1445 <meta name="twitter:description" content="${newsInfo.newsSummary}" />
1446 <meta name="twitter:image" content= "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsMedia.fileEntryId}/Thumbnail-300x300/image" >
1447 <meta name="twitter:image:alt" content="${newsInfo.newsMedia.imageAlt}">
1448 </@>
1449 <#else>
1450 <#if newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content>
1451 <iframe loading="lazy" data-video-id="${cardData.media.videoYotubeID}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
1452 <@liferay_util["html-top"]>
1453 <meta name="title" content="${newsInfo.mainHeadlineOfTheNews}">
1454 <meta name="description" content="${newsInfo.newsSummary}">
1455
1456 <meta property="og:url" content="${currentURL}">
1457 <meta property="og:type" content="website">
1458 <meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}">
1459 <meta property="og:description" content="${newsInfo.newsSummary}" />
1460 <meta property="og:image" content="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg">
1461 <meta property="og:image:alt" content="Youtube Video Thumbnail">
1462
1463 <meta name="twitter:card" content="summary_large_image">
1464 <meta name="twitter:url" content="${currentURL}" />
1465 <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}">
1466 <meta name="twitter:description" content="${newsInfo.newsSummary}" />
1467 <meta name="twitter:image" content= "https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg" >
1468 <meta name="twitter:image:alt" content="Youtube Video Thumbnail">
1469 </@>
1470 <#else>
1471 <video loading="lazy">
1472 <source src="${newsInfo.newsMedia.internalVideo.url}">
1473 Your browser does not support the video tag.
1474 </video>
1475 </#if>
1476
1477 <div class="banner-video-icons">
1478 <#if newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content>
1479 <picture >
1480 <source media="(max-width:767px)" srcset="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/mqdefault.jpg">
1481 <img class="banner-video-thumb-iframe" loading="lazy" src="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg" alt="YouTube Thumbnail"/>
1482 </picture>
1483 </#if>
1484 <svg class="banner-video-icon-play" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
1485 <path d="M0 16C0 7.16344 7.16344 0 16 0C24.8366 0 32 7.16344 32 16C32 24.8366 24.8366 32 16 32C7.16344 32 0 24.8366 0 16Z" fill="white" fill-opacity="0.8"/>
1486 <path d="M22.2563 15.5744L13.2625 10.0744C13.1868 10.0277 13.1 10.0021 13.0111 10.0001C12.9221 9.99816 12.8343 10.02 12.7566 10.0633C12.6789 10.1066 12.6141 10.1698 12.569 10.2465C12.5239 10.3232 12.5001 10.4105 12.5 10.4994V21.4994C12.5001 21.5884 12.5239 21.6757 12.569 21.7524C12.6141 21.8291 12.6789 21.8923 12.7566 21.9356C12.8343 21.9789 12.9221 22.0007 13.0111 21.9988C13.1 21.9968 13.1868 21.9712 13.2625 21.9244L22.2563 16.4244C22.3301 16.3808 22.3913 16.3186 22.4338 16.2441C22.4763 16.1696 22.4987 16.0852 22.4987 15.9994C22.4987 15.9137 22.4763 15.8293 22.4338 15.7548C22.3913 15.6803 22.3301 15.6181 22.2563 15.5744Z" fill="#008542"/>
1487 </svg>
1488 </div>
1489 </#if>
1490 </div>
1491 </div>
1492
1493 <div class="credit-legend breakpoint">
1494
1495 <div class="credit-legend-container col-2-11 md-col-1-8 sm-col-1-4">
1496 <#if newsInfo.newsMedia.legend != "">
1497 <div class="legend paragraph-micro-regular">
1498 <p>${newsInfo.newsMedia.legend}</p>
1499 </div>
1500 </#if>
1501 <#if newsInfo.newsMedia.credits != "">
1502 <p class="credits paragraph-micro-regular">
1503 ${newsInfo.newsMedia.credits}
1504 </p>
1505 </#if>
1506
1507 </div>
1508 </div>
1509 </div>
1510 </#if>
1511 <style>
1512 .ptb-news__read-news .news-featured-media {
1513 padding: var(--space-xl) 0 var(--space-xl) 0;
1514 }
1515
1516 .ptb-news__read-news .news-featured-media .media-col {
1517 position: relative;
1518 }
1519
1520 .ptb-news__read-news .news-featured-media img,
1521 .ptb-news__read-news .news-featured-media video,
1522 .ptb-news__read-news .news-featured-media iframe {
1523 width: 100%;
1524 max-height: 567px;
1525 aspect-ratio: 16/9;
1526 object-fit: cover;
1527 border-radius: var(--border-radius-lg, 16px);
1528 }
1529
1530 .ptb-news__read-news .news-featured-media .banner-video-icons {
1531 width: 100%;
1532 height: 100%;
1533 position: absolute;
1534 top: 50%;
1535 left: 50%;
1536 transform: translate(-50%,-50%);
1537 cursor: pointer;
1538 }
1539
1540 .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-thumb-iframe {
1541 position: absolute;
1542 width: 100%;
1543 height: 100%;
1544 object-fit: cover;
1545 }
1546
1547 .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play {
1548 position: absolute;
1549 top: 50%;
1550 left: 50%;
1551 transform: translate(-50%,-50%);
1552 }
1553
1554 body.high-contrast-active .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play path:nth-child(1) {
1555 fill: black;
1556 }
1557
1558 body.high-contrast-active .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play path:nth-child(2) {
1559 fill: white;
1560 }
1561
1562 .ptb-news__read-news .news-featured-media *:not(.breakpoint) {
1563 margin: 0;
1564 }
1565 .ptb-news__read-news .news-featured-media * {
1566 padding: 0;
1567 font-family: var(--font-family-base);
1568 line-height: var(--line-height-xl);
1569 }
1570
1571 .ptb-news__read-news .news-featured-media .credits {
1572 text-align: right;
1573 color: var(--collor-neutral-dark-to-bright-200, #525252);
1574 margin-bottom: var(--space-xxxs, 4px);
1575 font-style: var(--font-style-italic, italic);
1576 margin-top: var(--space-xxs, 8px);
1577 margin-bottom: 0;
1578 }
1579
1580 body.high-contrast-active .ptb-news__read-news .news-featured-media .credits {
1581 color: var(--text-secondary-default, #F8F8F8);
1582 }
1583
1584 .ptb-news__read-news .news-featured-media .legend {
1585 margin-top: var(--space-xxs, 8px);
1586 display: flex;
1587 justify-content: space-between;
1588 }
1589
1590 .ptb-news__read-news .news-featured-media .legend,
1591 .ptb-news__read-news .news-featured-media .legend * {
1592 font-style: var(--font-style-italic, italic);
1593 color: var(--collor-neutral-dark-to-bright-200, #525252);
1594 }
1595
1596 .ptb-news__read-news .credit-legend .credit-legend-container {
1597 display: flex;
1598 justify-content: space-between;
1599 flex-wrap: wrap;
1600 gap: 8px;
1601 }
1602
1603 body.high-contrast-active .ptb-news__read-news .news-featured-media .legend,
1604 body.high-contrast-active .ptb-news__read-news .news-featured-media .legend * {
1605 color: var(--text-secondary-default, #F8F8F8);
1606 }
1607
1608 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
1609 .ptb-news__read-news .news-featured-media .credits {
1610 text-align: left;
1611 }
1612 }
1613 </style>
1614
1615 <script>
1616 /* Manipulation video*/
1617 let videoIsPlaying = false;
1618
1619 const modalForClick = document.querySelector(".ptb-news__read-news .news-featured-media .banner-video-icons");
1620 const video = document.querySelector(".ptb-news__read-news .news-featured-media .media-col > :first-child");
1621
1622 const playIcon = modalForClick && modalForClick.querySelector(".banner-video-icon-play");
1623 modalForClick && modalForClick.addEventListener("click", ()=>{
1624 if(video.tagName === "VIDEO") {
1625 if(videoIsPlaying) {
1626 video.pause();
1627 playIcon.style.display = "";
1628 videoIsPlaying = false;
1629 }
1630 else {
1631 video.play();
1632 playIcon.style.display = "none";
1633 videoIsPlaying = true;
1634 }
1635 }
1636 else if(video.tagName === "IFRAME") {
1637 const thumbYoutube = modalForClick.querySelector(".banner-video-thumb-iframe");
1638 if(videoIsPlaying) {
1639 video.contentWindow.postMessage('{"event":"command","func":"pauseVideo"}', '*');
1640 playIcon.style.display = "";
1641 videoIsPlaying = false;
1642 }
1643 else {
1644 if (!video.getAttribute('src')) {
1645 const videoId = video.getAttribute('data-video-id');
1646 const youtubeIframeUrl = 'https://www.youtube-nocookie.com/embed/' + videoId + '?si=PDNu4EIwtCuSHC1S&controls=0&enablejsapi=1&rel=0';
1647 video.setAttribute('src', youtubeIframeUrl);
1648 video.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share');
1649
1650 video.onload = () => video.contentWindow.postMessage('{"event":"command","func":"playVideo"}', '*');
1651 }
1652 thumbYoutube && (thumbYoutube.style.display = "none");
1653 video.contentWindow.postMessage('{"event":"command","func":"playVideo"}', '*');
1654 playIcon.style.display = "none";
1655 videoIsPlaying = true;
1656 }
1657 }
1658 });
1659 </script>
1660<#--/#if -->
1661</#macro>
1662<#-- ################################################################################################################## -->
1663
1664<#-- ############# Site de Crise - Notícia - Conteúdo da notícia ###################################################### -->
1665
1666<#macro renderNewsContent newsInfo>
1667
1668 <#assign targetStr = "<div class='paragraph_separator'><span class='dot'></span><span class='dot'></span><span class='dot'></span><span class='dot'></span></div>">
1669 <#assign content = newsInfo.newsContent?replace("<p></p>", targetStr, 'r')>
1670 <#assign content = content?replace("<p> </p>", targetStr, 'r')>
1671 <#assign content = content?replace("<p></p>", targetStr, 'r')>
1672 <#assign content = content?replace("<p> </p>", targetStr, 'r')>
1673
1674
1675 <div class="news-content breakpoint">
1676 <div class="col-1-12 md-col-1-8 sm-col-1-4">
1677 ${content}
1678 </div>
1679 <div class="audio-template audio-pause audio-unmuted" style="display:none">
1680 <div class="audio-button-play">
1681 <svg class="audio-play-icon" width="100%" height="100%" viewBox="0 0 91 90" fill="#008542" xmlns="http://www.w3.org/2000/svg"><circle cx="45.2903" cy="45" r="44.5" stroke="#008542"></circle> <path d="M58.9759 43.2545C60.3409 44.0179 60.3409 45.9821 58.9759 46.7455L38.7505 58.0578C37.4173 58.8034 35.7742 57.8397 35.7742 56.3122L35.7742 33.6878C35.7742 32.1603 37.4173 31.1966 38.7505 31.9422L58.9759 43.2545Z" fill="white"></path>
1682 </svg>
1683
1684 <svg class="audio-pause-icon" width="100%" height="100%" viewBox="0 0 91 90" fill="#008542" xmlns="http://www.w3.org/2000/svg"><circle cx="45.2903" cy="45" r="44.5" stroke="#008542"></circle> <path d="M42.3736 30.4167H33.6236V59.5834H42.3736V30.4167Z" fill="white"></path> <path d="M48.2069 59.5834H56.9569V30.4167H48.2069V59.5834Z" fill="white"></path>
1685 </svg>
1686 </div>
1687 <div class="audio-sondwave">
1688 <svg class="audio-sondwave-desktop" width="100%" height="100%" viewBox="0 0 590 30" fill="none" xmlns="http://www.w3.org/2000/svg">
1689 <g clip-path="url(#clip0_2625_8152)">
1690 <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1691 <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1692 <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1693 <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1694 <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1695 <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1696 <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1697 <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1698 <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1699 <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1700 <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1701 <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1702 <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1703 <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1704 <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1705 <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1706 <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1707 <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1708 <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1709 <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1710 <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1711 <line x1="107.072" y1="8.75" x2="107.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1712 <line x1="112.234" y1="0.75" x2="112.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1713 <line x1="117.395" y1="7.75" x2="117.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1714 <line x1="122.557" y1="5.75" x2="122.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1715 <line x1="127.717" y1="11.75" x2="127.717" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1716 <line x1="132.879" y1="9.75" x2="132.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1717 <line x1="138.041" y1="9.75" x2="138.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1718 <line x1="142.17" y1="1.75" x2="142.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1719 <line x1="147.33" y1="12.75" x2="147.33" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1720 <line x1="151.75" y1="0.75" x2="151.75" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1721 <line x1="156.91" y1="7.75" x2="156.91" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1722 <line x1="162.072" y1="5.75" x2="162.072" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1723 <line x1="167.234" y1="11.75" x2="167.234" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1724 <line x1="172.395" y1="9.75" x2="172.395" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1725 <line x1="177.557" y1="9.75" x2="177.557" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1726 <line x1="181.686" y1="1.75" x2="181.686" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1727 <line x1="186.848" y1="12.75" x2="186.848" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1728 <line x1="192.008" y1="13.75" x2="192.008" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1729 <line x1="197.17" y1="10.75" x2="197.17" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1730 <line x1="202.33" y1="8.75" x2="202.33" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1731 <line x1="207.492" y1="0.75" x2="207.492" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1732 <line x1="212.652" y1="7.75" x2="212.652" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1733 <line x1="217.814" y1="5.75" x2="217.814" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1734 <line x1="222.977" y1="11.75" x2="222.977" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1735 <line x1="228.137" y1="9.75" x2="228.137" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1736 <line x1="233.299" y1="9.75" x2="233.299" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1737 <line x1="237.428" y1="1.75" x2="237.428" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1738 <line x1="242.588" y1="12.75" x2="242.588" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1739 <line x1="247.75" y1="13.75" x2="247.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1740 <line x1="252.91" y1="10.75" x2="252.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1741 <line x1="258.072" y1="8.75" x2="258.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1742 <line x1="263.234" y1="0.75" x2="263.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1743 <line x1="268.395" y1="7.75" x2="268.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1744 <line x1="273.557" y1="5.75" x2="273.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1745 <line x1="278.717" y1="11.75" x2="278.717" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1746 <line x1="283.879" y1="9.75" x2="283.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1747 <line x1="289.041" y1="9.75" x2="289.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1748 <line x1="293.17" y1="1.75" x2="293.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1749 <line x1="298.33" y1="12.75" x2="298.33" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1750 <line x1="302.75" y1="10.75" x2="302.75" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1751 <line x1="307.912" y1="8.75" x2="307.912" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1752 <line x1="313.072" y1="0.75" x2="313.072" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1753 <line x1="318.234" y1="7.75" x2="318.234" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1754 <line x1="323.395" y1="5.75" x2="323.395" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1755 <line x1="328.557" y1="11.75" x2="328.557" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1756 <line x1="333.719" y1="9.75" x2="333.719" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1757 <line x1="338.879" y1="9.75" x2="338.879" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1758 <line x1="343.008" y1="1.75" x2="343.008" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1759 <line x1="348.17" y1="12.75" x2="348.17" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1760 <line x1="353.33" y1="13.75" x2="353.33" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1761 <line x1="358.492" y1="10.75" x2="358.492" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1762 <line x1="363.652" y1="8.75" x2="363.652" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1763 <line x1="368.814" y1="0.75" x2="368.814" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1764 <line x1="373.977" y1="7.75" x2="373.977" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1765 <line x1="379.137" y1="5.75" x2="379.137" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1766 <line x1="384.299" y1="11.75" x2="384.299" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1767 <line x1="389.459" y1="9.75" x2="389.459" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1768 <line x1="394.621" y1="9.75" x2="394.621" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1769 <line x1="398.75" y1="1.75" x2="398.75" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1770 <line x1="403.912" y1="12.75" x2="403.912" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1771 <line x1="408.33" y1="10.75" x2="408.33" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1772 <line x1="413.492" y1="8.75" x2="413.492" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1773 <line x1="418.654" y1="0.75" x2="418.654" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1774 <line x1="423.814" y1="7.75" x2="423.814" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1775 <line x1="428.977" y1="5.75" x2="428.977" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1776 <line x1="434.137" y1="11.75" x2="434.137" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1777 <line x1="439.299" y1="9.75" x2="439.299" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1778 <line x1="444.461" y1="9.75" x2="444.461" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1779 <line x1="448.59" y1="1.75" x2="448.59" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1780 <line x1="453.75" y1="12.75" x2="453.75" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1781 <line x1="458.912" y1="13.75" x2="458.912" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1782 <line x1="464.072" y1="10.75" x2="464.072" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1783 <line x1="469.234" y1="8.75" x2="469.234" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1784 <line x1="474.395" y1="0.75" x2="474.395" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1785 <line x1="479.557" y1="7.75" x2="479.557" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1786 <line x1="484.719" y1="5.75" x2="484.719" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1787 <line x1="489.879" y1="11.75" x2="489.879" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1788 <line x1="495.041" y1="9.75" x2="495.041" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1789 <line x1="500.201" y1="9.75" x2="500.201" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1790 <line x1="504.33" y1="1.75" x2="504.33" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1791 <line x1="509.492" y1="12.75" x2="509.492" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1792 <line x1="513.912" y1="10.75" x2="513.912" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1793 <line x1="519.072" y1="8.75" x2="519.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1794 <line x1="524.234" y1="0.75" x2="524.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1795 <line x1="529.395" y1="7.75" x2="529.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1796 <line x1="534.557" y1="5.75" x2="534.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1797 <line x1="539.719" y1="11.75" x2="539.719" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1798 <line x1="544.879" y1="9.75" x2="544.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1799 <line x1="550.041" y1="9.75" x2="550.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1800 <line x1="554.17" y1="1.75" x2="554.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1801 <line x1="559.332" y1="12.75" x2="559.332" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1802 <line x1="564.492" y1="13.75" x2="564.492" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1803 <line x1="569.654" y1="10.75" x2="569.654" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1804 <line x1="574.814" y1="8.75" x2="574.814" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1805 <line x1="579.977" y1="0.75" x2="579.977" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1806 <line x1="585.137" y1="7.75" x2="585.137" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1807 <line x1="590.299" y1="5.75" x2="590.299" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1808 </g>
1809 <defs>
1810 <clipPath id="clip0_2625_8152">
1811 <rect width="590" height="30" fill="white"/>
1812 </clipPath>
1813 </defs>
1814 </svg>
1815 <svg class="audio-sondwave-mobile" width="100%" height="100%" viewBox="0 0 102 30" fill="none" xmlns="http://www.w3.org/2000/svg">
1816 <g clip-path="url(#clip0_2625_8922)">
1817 <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1818 <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1819 <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1820 <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1821 <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1822 <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1823 <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1824 <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1825 <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1826 <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1827 <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1828 <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1829 <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1830 <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1831 <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1832 <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1833 <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1834 <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1835 <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1836 <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1837 <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1838 </g>
1839 <defs>
1840 <clipPath id="clip0_2625_8922">
1841 <rect width="102" height="30" fill="white"/>
1842 </clipPath>
1843 </defs>
1844 </svg>
1845 </div>
1846 <div class="audio-time paragraph-micro-bold"> </div>
1847 <div class="audio-button-mute">
1848 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none">
1849 <path d="M27.3625 9.6375C28.1993 10.4723 28.8632 11.464 29.3161 12.5558C29.7691 13.6476 30.0023 14.818 30.0023 16C30.0023 17.182 29.7691 18.3524 29.3161 19.4442C28.8632 20.536 28.1993 21.5277 27.3625 22.3625M10 21H4C3.73478 21 3.48043 20.8946 3.29289 20.7071C3.10536 20.5196 3 20.2652 3 20V12C3 11.7348 3.10536 11.4804 3.29289 11.2929C3.48043 11.1054 3.73478 11 4 11H10M10 21L19 28V4L10 11M10 21V11M23.825 13.175C24.1969 13.5455 24.492 13.9857 24.6933 14.4705C24.8947 14.9553 24.9983 15.4751 24.9983 16C24.9983 16.5249 24.8947 17.0447 24.6933 17.5295C24.492 18.0143 24.1969 18.4545 23.825 18.825" stroke="#525252" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1850 </svg>
1851 </div>
1852 </div>
1853 </div>
1854
1855 <#if categoriesAsssetEntryResponse?? && categoriesAsssetEntryResponse?has_content && categoriesAsssetEntryResponse.taxonomyCategoryBriefs??>
1856 <@renderNewsTags tagCategoryList NEWS_PAGE_NAME removeStartParameterWhenTagIsClicked includeRequestParams />
1857 </#if>
1858 <style>
1859
1860 .ptb-news__read-news .news-content p {
1861 margin-bottom: var(--space-md, 24px);
1862 }
1863
1864 .ptb-news__read-news .news-content strong {
1865 font-weight: var(--font-weight-bold);
1866 }
1867
1868 .ptb-news__read-news .news-content em {
1869 font-style: var(--font-style-italic);
1870 }
1871
1872 .ptb-news__read-news .news-content a:not(.stories-container *) {
1873 font-family: var(--font-family-base);
1874 font-style: var(--font-style-normal, normal);
1875 font-weight: var(--font-weight-bold, 700);
1876 font-size: var(--font-size-xs, 18px);
1877 line-height: var(--line-height-xl, 160%);
1878
1879 color: #008542;
1880 }
1881
1882 body.high-contrast-active .ptb-news__read-news .news-content a {
1883 color: #E4F7E8;
1884 }
1885
1886 .ptb-news__read-news .news-content ul {
1887 padding-left: 27px;
1888 margin-top: -16px;
1889 }
1890
1891 .ptb-news__read-news .news-content ul li::marker {
1892 content: "■" !important;
1893 color: var(--color-secondary-medium) !important;
1894 font-size: var(--size-xxs);
1895 }
1896
1897 .ptb-news__read-news .news-content ul li {
1898 color: var(--color-text-primary-default);
1899 padding: 8px 0;
1900
1901 /*paragraph-sm-regular*/
1902 font-size: var(--font-size-xxs);
1903 line-height: var(--line-height-xl);
1904 font-weight: var(--font-weight-regular);
1905 font-style: var(--font-style-normal);
1906 text-decoration: var(--text-decoration-none);
1907
1908 margin-left: calc(-1* var(--space-sm));
1909 padding-left: var(--space-sm);
1910 }
1911
1912 .ptb-news__read-news .news-content ul li * {
1913 color: var(--color-text-primary-default);
1914 padding: 8px 0;
1915
1916 /*paragraph-sm-regular*/
1917 font-size: var(--font-size-xxs);
1918 line-height: var(--line-height-xl);
1919 font-weight: var(--font-weight-regular);
1920 font-style: var(--font-style-normal);
1921 text-decoration: var(--text-decoration-none);
1922 }
1923
1924 @media screen and (min-width: 1024px) {
1925 .ptb-news__read-news .news-content > * {
1926 grid-column-start: 3;
1927 grid-column-end: 11;
1928 }
1929
1930 <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" >
1931 .ptb-news__read-news .news-content > *:has(img) {
1932 grid-column-start: 2;
1933 grid-column-end: 12;
1934 }
1935 }
1936
1937 </#if>
1938 }
1939
1940 .ptb-news__read-news .news-content figure {
1941 margin-bottom: var(--space-sm, 16px);
1942 }
1943
1944 .ptb-news__read-news .news-content figure figcaption {
1945 display: flex;
1946 justify-content: space-between;
1947 align-items: flex-start;
1948 align-self: stretch;
1949 margin-top: var(--space-xxs, 8px);
1950 text-align: justify;
1951 }
1952
1953 .ptb-news__read-news .news-content figure figcaption,
1954 .ptb-news__read-news .news-content figure figcaption * {
1955 color: var(--color-neutral-700, #525252);
1956 font-family: var(--font-family-base);
1957 font-size: var(--font-size-xxxs, 14px);
1958 font-style: var(--font-style-italic, italic);
1959 font-weight: var(--font-weight-regular, 400);
1960 line-height: var(--line-height-xl, 160%);
1961 }
1962
1963 body.high-contrast-active .ptb-news__read-news .news-content figure figcaption,
1964 body.high-contrast-active .ptb-news__read-news .news-content figure figcaption * {
1965 color: var(--text-secondary-default, #F8F8F8);
1966 }
1967
1968 .ptb-news__read-news .news-content figure figcaption br {
1969 display: none;
1970 }
1971
1972 .ptb-news__read-news .news-content .embed-responsive {
1973 width: 100% !important;
1974 border-radius: var(--border-radius-md, 16px);
1975 margin-bottom: var(--space-md, 16px);
1976 aspect-ratio: 16/9;
1977 }
1978
1979 .ptb-news__read-news .news-content img {
1980 width: 100%;
1981 height: auto;
1982 object-fit: cover;
1983 border-radius: var(--border-radius-md, 16px);
1984 }
1985
1986 <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Artigo" >
1987 .ptb-news__read-news .news-content img {
1988 aspect-ratio: 16/9;
1989 }
1990 </#if>
1991
1992 .ptb-news__read-news .news-content .paragraph_separator {
1993 display: flex;
1994 width: 100%;
1995 height: fit-content;
1996 justify-content: center;
1997 gap: 6px;
1998 }
1999
2000 .ptb-news__read-news .news-content .paragraph_separator .dot {
2001 height: var(--size-micro, 4px);
2002 width: var(--size-micro, 4px);
2003 background-color: #959595;
2004 border-radius: 100%;
2005 display: inline-block;
2006 }
2007
2008 .ptb-news__read-news .news-content *:not(.stories-container *) {
2009 font-family: var(--font-family-base);
2010 font-style: var(--font-style-normal, normal);
2011 font-weight: var(--font-weight-regular, 400);
2012 font-size: var(--font-size-xs, 18px);
2013 line-height: var(--line-height-xl, 160%);
2014 color: var(--color-neutral-800, #373737);
2015 }
2016
2017 body.high-contrast-active .ptb-news__read-news .news-content * {
2018 color: var(--text-primary-default, var(--color-neutral-100));
2019 }
2020
2021 .ptb-news__read-news .news-content h1,
2022 .ptb-news__read-news .news-content h1 *,
2023 .ptb-news__read-news .news-content h2,
2024 .ptb-news__read-news .news-content h2 *,
2025 .ptb-news__read-news .news-content h3,
2026 .ptb-news__read-news .news-content h3 *,
2027 .ptb-news__read-news .news-content h4,
2028 .ptb-news__read-news .news-content h4 *,
2029 .ptb-news__read-news .news-content h5,
2030 .ptb-news__read-news .news-content h5 *,
2031 .ptb-news__read-news .news-content h6,
2032 .ptb-news__read-news .news-content h6 * {
2033 color: var(--color-neutral-800, #373737) !important;
2034 }
2035
2036 body.high-contrast-active .ptb-news__read-news .news-content h1,
2037 body.high-contrast-active .ptb-news__read-news .news-content h1 *,
2038 body.high-contrast-active .ptb-news__read-news .news-content h2,
2039 body.high-contrast-active .ptb-news__read-news .news-content h2 *,
2040 body.high-contrast-active .ptb-news__read-news .news-content h3,
2041 body.high-contrast-active .ptb-news__read-news .news-content h3 *,
2042 body.high-contrast-active .ptb-news__read-news .news-content h4,
2043 body.high-contrast-active .ptb-news__read-news .news-content h4 *,
2044 body.high-contrast-active .ptb-news__read-news .news-content h5,
2045 body.high-contrast-active .ptb-news__read-news .news-content h5 *,
2046 body.high-contrast-active .ptb-news__read-news .news-content h6,
2047 body.high-contrast-active .ptb-news__read-news .news-content h6 * {
2048 color: var(--text-primary-default, var(--color-neutral-100)) !important;
2049 }
2050
2051 .ptb-news__read-news .news-content h1:last-child,
2052 .ptb-news__read-news .news-content h2:last-child,
2053 .ptb-news__read-news .news-content h3:last-child,
2054 .ptb-news__read-news .news-content h4:last-child,
2055 .ptb-news__read-news .news-content h5:last-child,
2056 .ptb-news__read-news .news-content h5:last-child,
2057 .ptb-news__read-news .news-content h6:last-child,
2058 .ptb-news__read-news .news-content p:last-child {
2059 padding-bottom: 0 !important;
2060 }
2061
2062 .ptb-news__read-news .news-content h1,
2063 .ptb-news__read-news .news-content h1 * {
2064 font-size: var(--font-size-xxl) !important;
2065 line-height: var(--line-height-sm) !important;
2066 font-weight: var(--font-weight-bold) !important;
2067 font-style: var(--font-style-normal) !important;
2068 text-decoration: var(--text-decoration-none) !important;
2069 }
2070
2071 .ptb-news__read-news .news-content h2,
2072 .ptb-news__read-news .news-content h2 * {
2073
2074 font-size: var(--font-size-xl) !important;
2075 line-height: var(--line-height-sm) !important;
2076 font-weight: var(--font-weight-bold) !important;
2077 font-style: var(--font-style-normal) !important;
2078 text-decoration: var(--text-decoration-none) !important;
2079
2080 }
2081
2082 .ptb-news__read-news .news-content h2 {
2083 margin-top: 48px !important;
2084 margin-bottom: var(--space-xl, 40px) !important;
2085
2086 }
2087
2088 .ptb-news__read-news .news-content h3,
2089 .ptb-news__read-news .news-content h3 * {
2090 font-size: var(--font-size-lg) !important;
2091 line-height: var(--line-height-sm) !important;
2092 font-weight: var(--font-weight-bold) !important;
2093 font-style: var(--font-style-normal) !important;
2094 text-decoration: var(--text-decoration-none) !important;
2095 }
2096
2097 .ptb-news__read-news .news-content h3 {
2098 margin-bottom: var(--space-sm, 16px) !important;
2099 margin-top: 48px !important;
2100 }
2101
2102 .ptb-news__read-news .news-content h4,
2103 .ptb-news__read-news .news-content h4 * {
2104 font-size: var(--font-size-md) !important;
2105 line-height: var(--line-height-md) !important;
2106 font-weight: var(--font-weight-bold) !important;
2107 font-style: var(--font-style-normal) !important;
2108 text-decoration: var(--text-decoration-none) !important;
2109 }
2110
2111 .ptb-news__read-news .news-content h4 {
2112 margin-top: 48px !important;
2113 margin-bottom: var(--space-sm, 16px) !important;
2114 }
2115
2116 .ptb-news__read-news .news-content h5,
2117 .ptb-news__read-news .news-content h5 * {
2118 font-size: var(--font-size-sm) !important;
2119 line-height: var(--line-height-md) !important;
2120 font-weight: var(--font-weight-bold) !important;
2121 font-style: var(--font-style-normal) !important;
2122 text-decoration: var(--text-decoration-none) !important;
2123 }
2124
2125 .ptb-news__read-news .news-content h5 {
2126 margin-top: 48px !important;
2127 margin-bottom: var(--space-sm, 16px) !important;
2128 }
2129
2130 .ptb-news__read-news .news-content table {
2131 border-collapse: collapse;
2132 border: none;
2133 width: 100% !important;
2134 margin: var(--space-md, 24px) 0;
2135 }
2136
2137 .ptb-news__read-news .news-content table * {
2138 font-size: var(--font-size-xxs, 16px);
2139 font-style: var(--font-style-normal, normal);
2140 font-weight: var(--font-weight-regular, 400);
2141 line-height: var(--line-height-xl, 160%);
2142 color: var(--color-neutral-800, #373737);
2143 border: 0;
2144 }
2145
2146 body.high-contrast-active .ptb-news__read-news .news-content table * {
2147 color: var(--text-primary-default, var(--color-neutral-100));
2148 }
2149
2150 .ptb-news__read-news .news-content table tbody > :first-child,
2151 .ptb-news__read-news .news-content table tbody > :first-child * {
2152 font-weight: var(--font-weight-bold, 700);
2153 flex: 1 0 0;
2154 background: var(--background-Surface-level-02, #F8F8F8);
2155 }
2156
2157 body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child,
2158 body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child * {
2159 background: #373737;
2160 }
2161
2162 .ptb-news__read-news .news-content table tbody {
2163 display: flex;
2164 flex-direction: column;
2165 }
2166
2167 .ptb-news__read-news .news-content table tbody * {
2168 display: flex;
2169 height: 100%;
2170 align-items: center;
2171 flex: 1 0 0;
2172 }
2173
2174 .ptb-news__read-news .news-content table tbody tr * {
2175 padding: 23px var(--space-lg, 32px);
2176 }
2177
2178
2179 .ptb-news__read-news .news-content table tbody tr {
2180 border-radius: var(--border-radius-md);
2181 border: var(--border-width-hairline, 1px) solid #EEEEEE;
2182 }
2183
2184 body.high-contrast-active .ptb-news__read-news .news-content table tbody tr {
2185 border: var(--border-width-hairline, 1px) solid #525252;
2186 }
2187
2188 .ptb-news__read-news .news-content table tbody tr:not(:last-child) {
2189 border-bottom-left-radius: 0;
2190 border-bottom-right-radius: 0;
2191 }
2192
2193 .ptb-news__read-news .news-content table tbody tr:not(:first-child) {
2194 border-top-left-radius: 0;
2195 border-top-right-radius: 0;
2196 border-top: none;
2197 }
2198
2199 .ptb-news__read-news .news-content table tbody tr td:not(:last-child) {
2200 border-right: var(--border-width-hairline, 1px) solid #EEEEEE;
2201 }
2202
2203 body.high-contrast-active .ptb-news__read-news .news-content table tbody tr td:not(:last-child) {
2204 border-right: var(--border-width-hairline, 1px) solid #525252;
2205 }
2206
2207 .ptb-news__read-news .news-content table tbody tr:first-child td {
2208 border-top: var(--border-width-hairline, 1px) solid #EEEEEE;
2209 border-bottom: var(--border-width-hairline, 1px) solid #EEEEEE;
2210 }
2211
2212 body.high-contrast-active .ptb-news__read-news .news-content table tbody tr:first-child td {
2213 border-top: var(--border-width-hairline, 1px) solid #525252;
2214 border-bottom: var(--border-width-hairline, 1px) solid #525252;
2215 }
2216
2217 .ptb-news__read-news .news-content table tbody tr td:first-child {
2218 padding-left: 0;
2219 }
2220
2221 .ptb-news__read-news .news-content table tbody tr td:last-child{
2222 padding-right: 0;
2223 }
2224
2225 .ptb-news__read-news .news-content audio {
2226 display: none;
2227 }
2228
2229 .ptb-news__read-news .news-content .audio-template {
2230 display: flex;
2231 padding: var(--space-sm, 16px);
2232 align-items: center;
2233 gap: var(--space-md, 24px);
2234 align-self: stretch;
2235 border-radius: var(--border-radius-lg, 16px);
2236 border: var(--border-width-hairline, 1px) solid var(--border-color-mid);
2237 background: var(--background-card-default, #FFF);
2238 max-height: var(--size-giant, 72px);
2239 margin: 48px 0;
2240 }
2241
2242 body.high-contrast-active .ptb-news__read-news .news-content .audio-template {
2243 background: var(--background-card-default, #010101);
2244 border: var(--border-width-hairline, 1px) solid #525252;
2245 }
2246
2247 .ptb-news__read-news .news-content .audio-template .audio-button-play {
2248 display: flex;
2249 width: var(--size-xl, 40px);
2250 height: var(--size-xl, 40px);
2251 justify-content: center;
2252 align-items: center;
2253 flex-grow: 0;
2254 flex-shrink: 0;
2255 cursor: pointer;
2256 }
2257
2258 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon,
2259 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon {
2260 fill: #FFFFFF;
2261 }
2262
2263 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon path,
2264 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon path {
2265 fill: #010101;
2266 }
2267
2268 .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-play-icon {
2269 display: block;
2270 }
2271
2272 .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-pause-icon {
2273 display: none;
2274 }
2275
2276 .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-play-icon {
2277 display: none;
2278 }
2279
2280 .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-pause-icon {
2281 display: block;
2282 }
2283
2284 .ptb-news__read-news .news-content .audio-template .audio-sondwave {
2285 display: flex;
2286 flex-direction: column;
2287 align-items: flex-start;
2288 gap: var(--space-xxs, 8px);
2289 flex: 1 0 0;
2290 height: 100%;
2291 flex-grow: 1;
2292 flex-shrink: 1;
2293 }
2294
2295 .ptb-news__read-news .news-content .audio-template .audio-sondwave line {
2296 stroke: #008542;
2297 }
2298
2299 .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active {
2300 stroke: #90EE90;
2301 }
2302
2303 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line {
2304 stroke: #E4F7E8;
2305 }
2306
2307 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active {
2308 stroke: #666666;
2309 }
2310
2311 .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile {
2312 display: none;
2313 }
2314
2315 .ptb-news__read-news .news-content .audio-template .audio-time {
2316 display: flex;
2317 flex-direction: column;
2318 align-items: flex-start;
2319 gap: var(--space-xxs, 8px);
2320 flex: 1 0 0;
2321 color: var(--text-primary-accent, #008542);
2322 text-align: center;
2323 font-family: var(--font-family-base);
2324 line-height: 124% !important;
2325 flex-grow: 0;
2326 flex-shrink: 0;
2327 }
2328
2329 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-time {
2330 color: var(--text-primary-accent, #E4F7E8);
2331 }
2332
2333 .ptb-news__read-news .news-content .audio-template .audio-button-mute {
2334 width: var(--size-lg, 32px);
2335 height: var(--size-lg, 32px);
2336 flex-grow: 0;
2337 flex-shrink: 0;
2338 cursor: pointer;
2339 }
2340
2341 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-mute svg path {
2342 stroke: white;
2343 fill: none;
2344 }
2345
2346 .ptb-news__read-news .news-content .audio-template.audio-muted .audio-button-mute {
2347 opacity: 0.6;
2348 }
2349
2350
2351 @media screen and (max-width: 1023px) and (min-width: ${MAX_MOBILE_WIDTH}px) {
2352 .ptb-news__read-news .news-content > * {
2353 grid-column-start: 1;
2354 grid-column-end: 9;
2355 }
2356 }
2357
2358
2359 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
2360
2361 .ptb-news__read-news .news-content * {
2362 font-size: var(--font-size-xxs, 16px);
2363 }
2364
2365
2366 .ptb-news__read-news .news-content > * {
2367 grid-column-start: 1;
2368 grid-column-end: 5;
2369 }
2370
2371
2372 .ptb-news__read-news .news-content h1,
2373 .ptb-news__read-news .news-content h1 * {
2374 font-size: var(--font-size-xl) !important;
2375 line-height: var(--line-height-sm) !important;
2376 font-weight: var(--font-weight-bold) !important;
2377 font-style: var(--font-style-normal) !important;
2378 text-decoration: var(--text-decoration-none) !important;
2379
2380 }
2381
2382 .ptb-news__read-news .news-content h2,
2383 .ptb-news__read-news .news-content h2 * {
2384 font-size: var(--font-size-lg) !important;
2385 line-height: var(--line-height-sm) !important;
2386 font-weight: var(--font-weight-bold) !important;
2387 font-style: var(--font-style-normal) !important;
2388 text-decoration: var(--text-decoration-none) !important;
2389 }
2390
2391 .ptb-news__read-news .news-content h2 {
2392 margin-bottom: var(--space-md, 24px) !important;
2393 }
2394
2395 .ptb-news__read-news .news-content h3,
2396 .ptb-news__read-news .news-content h3 * {
2397 font-size: var(--font-size-md) !important;
2398 line-height: var(--line-height-sm) !important;
2399 font-weight: var(--font-weight-bold) !important;
2400 font-style: var(--font-style-normal) !important;
2401 text-decoration: var(--text-decoration-none) !important;
2402 }
2403
2404 .ptb-news__read-news .news-content h3 {
2405 margin-top: var(--space-xxs, 8px) !important;
2406 }
2407
2408 .ptb-news__read-news .news-content h4,
2409 .ptb-news__read-news .news-content h4 * {
2410 font-size: var(--font-size-sm) !important;
2411 line-height: var(--line-height-md) !important;
2412 font-weight: var(--font-weight-bold) !important;
2413 font-style: var(--font-style-normal) !important;
2414 text-decoration: var(--text-decoration-none) !important;
2415 }
2416
2417 .ptb-news__read-news .news-content h5,
2418 .ptb-news__read-news .news-content h5 * {
2419 font-size: var(--font-size-xs) !important;
2420 line-height: var(--line-height-md) !important;
2421 font-weight: var(--font-weight-bold) !important;
2422 font-style: var(--font-style-normal) !important;
2423 text-decoration: var(--text-decoration-none) !important;
2424 }
2425
2426 .ptb-news__read-news .news-content figure figcaption {
2427 flex-direction: column;
2428 gap: var(--space-xxs, 8px);
2429 }
2430
2431 .ptb-news__read-news .news-content figure figcaption,
2432 .ptb-news__read-news .news-content figure figcaption * {
2433 font-size: var(--font-size-micro, 12px);
2434 }
2435
2436 .ptb-news__read-news .news-content table {
2437 margin-top: var(--space-xxs, 8px);
2438 margin-bottom: var(--space-lg, 32px);
2439 }
2440
2441 .ptb-news__read-news .news-content table * {
2442 font-size: var(--font-size-micro, 12px);
2443 line-height: 19.2%;
2444 }
2445
2446 .ptb-news__read-news .news-content table tbody * {
2447 height: 43px;
2448 padding: var(--space-xs, 12px);
2449 }
2450
2451 .ptb-news__read-news .news-content .audio-template {
2452 margin-top: var(--space-xxs, 8px);
2453 margin-bottom: var(--space-lg, 32px);
2454 }
2455 }
2456
2457 @media screen and (max-width: 500px) {
2458 .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-desktop {
2459 display: none;
2460 }
2461
2462 .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile {
2463 display: block;
2464 }
2465 }
2466 </style>
2467
2468 <style>
2469.ws-carousel p {
2470 margin: var(--space-none, 0) !important;
2471}
2472
2473.ws-carousel {
2474 display: flex;
2475 flex-direction: column;
2476 gap: var(--space-lg, 32px);
2477 margin: var(--space-big, 72px) auto;
2478}
2479
2480.ws-carousel .ws-carousel-header {
2481 display: flex;
2482 justify-content: space-between;
2483}
2484
2485.ws-carousel .ws-carousel-header .h2,
2486.ws-carousel .ws-carousel-header h2 {
2487 color: var(--color-neutral-800, #373737) !important;
2488 font-family: var(--font-family-base), "Petrobras Sans" !important;
2489 line-height: 100% !important;
2490 margin: var(--space-none, 0) ! important;
2491}
2492
2493.ws-carousel .ws-carousel-header .nav-buttons {
2494 display: flex;
2495 justify-content: space-between;
2496 gap: var(--space-xxs, 8px);
2497}
2498
2499.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.left-arrow {
2500 transform: scaleX(-1);
2501}
2502
2503.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow {
2504 cursor: pointer;
2505}
2506
2507.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.inactive {
2508 cursor: not-allowed;
2509}
2510
2511
2512.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow path {
2513 transition: stroke 0.3s ease;
2514}
2515
2516.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.inactive path {
2517 stroke: #bababa;
2518}
2519
2520.ws-carousel .ws-carousel-header .nav-buttons .nav-arrow.active path {
2521 stroke: #008542;
2522}
2523
2524
2525.ws-carousel .ws-carousel-body {
2526 overflow-x: scroll;
2527 -ms-overflow-style: none;
2528 -scrollbar-width: none;
2529}
2530
2531.ws-carousel .ws-carousel-body::-webkit-scrollbar {
2532 display: none;
2533}
2534
2535.ws-carousel .ws-carousel-body .ws-container {
2536 display: flex;
2537 gap: var(--space-lg, 32px);
2538}
2539
2540.ws-carousel .ws-carousel-body .ws-container .ws-item {
2541 min-width: 300px;
2542 max-width: 300px;
2543 min-height: 400px;
2544 max-height: 400px;
2545 position: relative;
2546 overflow: hidden;
2547 border-radius: var(--border-radius-lg);
2548 box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12);
2549}
2550
2551.ws-carousel .ws-carousel-body .ws-container .ws-item:hover {
2552 cursor: pointer;
2553}
2554
2555.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-image {
2556 position: absolute;
2557 top: 50%;
2558 left: 50%;
2559 transform: translate(-50%, -50%);
2560 height: 100%;
2561}
2562
2563.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-overlay {
2564 position: absolute;
2565 background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 100%);
2566 width: 100%;
2567 height: 100%;
2568}
2569
2570.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-label {
2571 position: absolute;
2572 margin: var(--space-md, 24px) 0 0 var(--space-md, 24px);
2573 border-radius: var(--border-radius-pill, 100%);
2574 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);
2575 box-shadow: 0px 2px 6px 0px rgba(0, 178, 169, 0.10);
2576 padding: var(--space-micro, 2px) var(--space-xs, 12px);
2577
2578 color: var(--Default-sup-green-water, #006B65);
2579 font-family: var(--font-family-base), "Petrobras Sans";
2580 font-size: var(--font-size-xxxs, 12px);
2581 font-style: normal;
2582 font-weight: var(--font-weight-regular, 400);
2583 line-height: var(--line-height-sm, 120%);
2584 color: #006B65;
2585}
2586
2587.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-content {
2588 position: relative;
2589 z-index: 1;
2590 height: 100%;
2591
2592 display: flex;
2593 padding: var(--space-lg, 32px) var(--space-md, 24px) var(--space-md, 24px) var(--space-md, 24px);
2594 flex-direction: column;
2595 justify-content: flex-end;
2596 align-items: flex-start;
2597 gap: var(--space-md, 24px);
2598}
2599
2600.ws-carousel .ws-carousel-body .ws-container .ws-item .ws-content .h5 {
2601 overflow: hidden;
2602 color: #FFF !important;
2603 text-overflow: ellipsis;
2604 margin: 0 !important;
2605 font-family: var(--font-family-base), "Petrobras Sans" !important;
2606}
2607
2608@media (max-width: 768px) {
2609
2610 .ws-carousel .ws-carousel-header .nav-buttons {
2611 gap: var(--space-micro, 12px);
2612 }
2613
2614 .ws-carousel .ws-carousel-header .nav-buttons .nav-arrow {
2615 width: 44px;
2616 height: 44px;
2617 }
2618
2619 .ws-carousel .ws-carousel-header {
2620 flex-direction: column;
2621 align-items: flex-start;
2622 gap: var(--space-lg, 32px);
2623 }
2624
2625 .ws-carousel .ws-carousel-header .h2 {
2626 font-size: var(--font-size-lg, 24px) !important;
2627 }
2628
2629 .ws-carousel .ws-carousel-body .ws-container {
2630 gap: var(--space-lg, 32px);
2631 }
2632
2633 .ws-carousel .ws-carousel-body .ws-container .ws-item {
2634 min-width: 225px;
2635 max-width: 225px;
2636 background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, rgba(0, 0, 0, 0.80) 100%), url(<path-to-image>) lightgray 50% / cover no-repeat;
2637 box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12);
2638 }
2639}
2640 </style>
2641
2642<#-- Exibição de um único story com naveação direto no conteúdo -->
2643<style>
2644 .stories-container * {
2645 margin: 0;
2646 padding: 0;
2647 box-sizing: border-box;
2648 }
2649
2650 .stories-container {
2651 position: relative;
2652 /*
2653 Largura das duas setas com position absolute: 64px
2654 Largura das somas margens das setas: 48px
2655
2656 */
2657 width: calc(100vw - 64px - 48px);
2658 max-width: 400px;
2659 height: auto;
2660 aspect-ratio: 59/105;
2661 border-radius: 8px;
2662 }
2663
2664 .header-container {
2665 position: absolute;
2666 top: 0;
2667 left: 0;
2668 right: 0;
2669 z-index: 3;
2670 padding: 16px 16px 0 16px;
2671 display: flex;
2672 flex-direction: column;
2673 gap: 24px;
2674 }
2675
2676 .story-header {
2677 display: flex;
2678 flex-direction: column;
2679 gap: 8px;
2680 }
2681
2682 .progress-bars {
2683 display: flex;
2684 gap: 5px;
2685 width: 100%;
2686 }
2687
2688 .progress-bar {
2689 height: 3px;
2690 background-color: rgba(255, 255, 255, 0.3);
2691 flex-grow: 1;
2692 border-radius: 3px;
2693 overflow: hidden;
2694 }
2695
2696 .story-progress {
2697 height: 100%;
2698 background-color: white;
2699 width: 0%;
2700 transition: width 0.2s linear;
2701 }
2702
2703 .story-progress.completed {
2704 width: 100% !important;
2705 }
2706
2707 .story-progress.active {
2708 animation: progress 8s linear forwards;
2709 }
2710
2711 @keyframes progress {
2712 from {
2713 width: 0%;
2714 }
2715
2716 to {
2717 width: 100%;
2718 }
2719 }
2720
2721 .story-slide {
2722 position: absolute;
2723 width: 100%;
2724 height: 100%;
2725 display: none;
2726 flex-direction: column;
2727 justify-content: center;
2728 align-items: center;
2729 color: white;
2730 overflow: hidden;
2731 border-radius: 8px;
2732 }
2733
2734 .story-slide::before {
2735 position: absolute;
2736 z-index: 2;
2737 content: '';
2738 width: 100%;
2739 height: 100%;
2740 background: linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%);
2741 }
2742
2743 .story-slide.active {
2744 display: flex;
2745 }
2746
2747 .story-image {
2748 width: 100%;
2749 height: 100% !important;
2750 object-fit: cover;
2751 position: absolute;
2752 top: 0;
2753 left: 0;
2754 z-index: 1;
2755 aspect-ratio: auto !important;
2756 }
2757
2758 .story-content {
2759 position: relative;
2760 z-index: 2;
2761 color: white;
2762 width: 100%;
2763 display: flex;
2764 flex-direction: column;
2765 justify-content: flex-end;
2766 height: 100%;
2767 padding: 16px 24px 64px 24px;
2768 }
2769
2770 .story-content .content-wrapper {
2771 display: flex;
2772 flex-direction: column;
2773 align-items: flex-start;
2774 gap: 24px;
2775 align-self: stretch;
2776 padding: 0 16px;
2777 }
2778
2779 .story-content .content-wrapper.no-padding {
2780 padding: 0;
2781 }
2782
2783 .story-title {
2784 display: flex;
2785 padding: 8px;
2786 flex-direction: column;
2787 align-items: flex-start;
2788 align-self: stretch;
2789 backdrop-filter: blur(3px);
2790 }
2791
2792 .story-title.button {
2793 display: none;
2794 }
2795
2796 .story-title.dark-theme,
2797 .story-description.dark-theme {
2798 background: rgba(13, 19, 16, 0.80);
2799 color: #FFF;
2800 }
2801
2802 .story-description.dark-theme p {
2803 color: #FFF !important;
2804 }
2805
2806 .story-title.light-theme,
2807 .story-description.light-theme {
2808 background: rgba(255, 255, 255, 0.90);
2809 color: #373737;
2810 }
2811
2812 .story-title.green-theme,
2813 .story-description.green-theme {
2814 background: rgba(0, 133, 66, 0.80);
2815 color: #FFF;
2816 }
2817
2818 .story-title .title-text {
2819 align-self: stretch;
2820 font-size: 24px;
2821 font-style: normal;
2822 font-weight: 700;
2823 line-height: 100%;
2824 }
2825
2826 .story-title .mischievous {
2827 color: #FDC82F;
2828 font-size: 24px;
2829 font-style: normal;
2830 font-weight: 700;
2831 line-height: 100%;
2832 width: 24px;
2833 }
2834
2835 .description-and-link {
2836 width: 100%;
2837 display: flex;
2838 flex-direction: column;
2839 gap: 8px;
2840 }
2841
2842 .story-description {
2843 padding: 8px;
2844 width: 100%;
2845 }
2846
2847 .story-description p {
2848 font-size: 16px;
2849 font-weight: 400;
2850 line-height: 120%;
2851 margin-bottom: 0;
2852 }
2853
2854 .story-description.button {
2855 padding: 0;
2856 display: flex;
2857 justify-content: center;
2858 }
2859
2860 .story-description.button p a {
2861 text-decoration: underline;
2862 font-weight: bold;
2863 }
2864
2865 .story-description.button p a {
2866 background: #FFF;
2867 width: fit-content;
2868 height: 48px;
2869 display: flex;
2870 justify-content: center;
2871 align-items: center;
2872 gap: 16px;
2873 text-decoration: none;
2874 color: #008542;
2875 border-radius: 100px;
2876 padding: 0 24px;
2877 box-shadow: 0px 4px 16px 0px #00000029;
2878 font-family: 'Petrobras Sans';
2879 font-weight: 700;
2880 font-size: 16px;
2881 line-height: 144%;
2882 letter-spacing: 0%;
2883 }
2884
2885 .story-description.button p a::after {
2886 content: '';
2887 display: inline-block;
2888 flex-shrink: 0;
2889 width: 20px;
2890 height: 20px;
2891 vertical-align: middle;
2892 background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMSAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjQ2OTUgMTIuMzU5MkMxMC4zMDk4IDEyLjUxODkgMTAuMzA5OCAxMi43Nzc5IDEwLjQ2OTUgMTIuOTM3N0MxMC42MjkzIDEzLjA5NzUgMTAuODg4MyAxMy4wOTc1IDExLjA0ODEgMTIuOTM3N0wxMC40Njk1IDEyLjM1OTJaTTEzLjQwNzIgMTBMMTMuNjk2NSAxMC4yODkzQzEzLjg1NjMgMTAuMTI5NSAxMy44NTYzIDkuODcwNDkgMTMuNjk2NSA5LjcxMDczTDEzLjQwNzIgMTBaTTExLjA0ODEgNy4wNjIyOUMxMC44ODgzIDYuOTAyNTMgMTAuNjI5MyA2LjkwMjUzIDEwLjQ2OTUgNy4wNjIyOUMxMC4zMDk4IDcuMjIyMDUgMTAuMzA5OCA3LjQ4MTA3IDEwLjQ2OTUgNy42NDA4M0wxMS4wNDgxIDcuMDYyMjlaTTcuMTU3MjMgOS41OTA5MUM2LjkzMTI5IDkuNTkwOTEgNi43NDgxNCA5Ljc3NDA3IDYuNzQ4MTQgMTBDNi43NDgxNCAxMC4yMjU5IDYuOTMxMjkgMTAuNDA5MSA3LjE1NzIzIDEwLjQwOTFWOS41OTA5MVpNMTcuMzczMSAxMEMxNy4zNzMxIDEzLjkxNjIgMTQuMTk4NCAxNy4wOTA5IDEwLjI4MjIgMTcuMDkwOVYxNy45MDkxQzE0LjY1MDMgMTcuOTA5MSAxOC4xOTEzIDE0LjM2ODEgMTguMTkxMyAxMEgxNy4zNzMxWk0xMC4yODIyIDE3LjA5MDlDNi4zNjYwMyAxNy4wOTA5IDMuMTkxMzIgMTMuOTE2MiAzLjE5MTMyIDEwSDIuMzczMTRDMi4zNzMxNCAxNC4zNjgxIDUuOTE0MTYgMTcuOTA5MSAxMC4yODIyIDE3LjkwOTFWMTcuMDkwOVpNMy4xOTEzMiAxMEMzLjE5MTMyIDYuMDgzOCA2LjM2NjAzIDIuOTA5MDkgMTAuMjgyMiAyLjkwOTA5VjIuMDkwOTFDNS45MTQxNiAyLjA5MDkxIDIuMzczMTQgNS42MzE5MyAyLjM3MzE0IDEwSDMuMTkxMzJaTTEwLjI4MjIgMi45MDkwOUMxNC4xOTg0IDIuOTA5MDkgMTcuMzczMSA2LjA4MzggMTcuMzczMSAxMEgxOC4xOTEzQzE4LjE5MTMgNS42MzE5MyAxNC42NTAzIDIuMDkwOTEgMTAuMjgyMiAyLjA5MDkxVjIuOTA5MDlaTTExLjA0ODEgMTIuOTM3N0wxMy42OTY1IDEwLjI4OTNMMTMuMTE4IDkuNzEwNzNMMTAuNDY5NSAxMi4zNTkyTDExLjA0ODEgMTIuOTM3N1pNMTMuNjk2NSA5LjcxMDczTDExLjA0ODEgNy4wNjIyOUwxMC40Njk1IDcuNjQwODNMMTMuMTE4IDEwLjI4OTNMMTMuNjk2NSA5LjcxMDczWk03LjE1NzIzIDEwLjQwOTFIMTMuNDA3MlY5LjU5MDkxSDcuMTU3MjNWMTAuNDA5MVoiIGZpbGw9IiMwMDg1NDIiLz4KPC9zdmc+Cg==");
2893 background-size: contain;
2894 background-repeat: no-repeat;
2895 background-position: center;
2896 }
2897
2898 .story-description a {
2899 position: relative;
2900 z-index: 3;
2901 color: #FFF;
2902 text-decoration: underline;
2903 }
2904
2905 .nav-area-container {
2906 position: absolute;
2907 top: 0;
2908 left: 0;
2909 right: 0;
2910 bottom: 0;
2911 display: flex;
2912 justify-content: space-between;
2913 align-items: center;
2914 z-index: 1;
2915 /* pointer-events: none; */
2916 }
2917
2918 .nav-area {
2919 height: 100%;
2920 width: 50%;
2921 display: flex;
2922 align-items: center;
2923 }
2924
2925 .nav-area .arrow,
2926 .nav-area .restart-icon {
2927 position: absolute;
2928 }
2929
2930 .nav-area .arrow:hover,
2931 .nav-area.next .restart-icon {
2932 cursor: pointer;
2933 }
2934
2935 .nav-area.prev .arrow {
2936 left: calc(-32px - 24px);
2937 }
2938
2939 .nav-area.next .arrow,
2940 .nav-area.next .restart-icon {
2941 right: calc(-32px - 24px);
2942 }
2943
2944 .nav-area .arrow.disabled {
2945 opacity: 0.4;
2946 }
2947
2948 .nav-area .arrow.disabled:hover {
2949 cursor: not-allowed;
2950 }
2951
2952 .nav-area .hidden {
2953 display: none;
2954 }
2955
2956 .action-buttons {
2957 display: flex;
2958 gap: 24px;
2959 justify-content: flex-end;
2960 }
2961
2962 .action-btn {
2963 background: transparent;
2964 border-radius: 50%;
2965 border: none;
2966 display: flex;
2967 align-items: center;
2968 justify-content: center;
2969 cursor: pointer;
2970 font-size: 14px;
2971 }
2972
2973 .action-btn.pause::before {
2974 content: '';
2975 display: inline-block;
2976 width: 15px;
2977 height: 18px;
2978 vertical-align: middle;
2979 background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxNiAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuMjY4NTU1IDE4LjI3NzNINS4zNTE0N1YwLjI3NzM0NEgwLjI2ODU1NVYxOC4yNzczWk0xMC40MzQ0IDAuMjc3MzQ0VjE4LjI3NzNIMTUuNTE3M1YwLjI3NzM0NEgxMC40MzQ0WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==");
2980 background-size: contain;
2981 background-repeat: no-repeat;
2982 background-position: center;
2983 }
2984
2985 .action-btn.play::before {
2986 content: '';
2987 display: inline-block;
2988 width: 18px;
2989 height: 18px;
2990 vertical-align: middle;
2991 background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyMiAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIwLjUxMjUgMTIuMTQ5OUwyLjUyNSAxLjE0OTg4QzIuMzczNTggMS4wNTY0NyAyLjE5OTk4IDEuMDA1MTYgMi4wMjIxMSAxLjAwMTIyQzEuODQ0MjQgMC45OTcyODcgMS42Njg1NCAxLjA0MDg4IDEuNTEzMTQgMS4xMjc1QzEuMzU3NzQgMS4yMTQxMSAxLjIyODI2IDEuMzQwNjIgMS4xMzgwNSAxLjQ5Mzk3QzEuMDQ3ODUgMS42NDczMiAxLjAwMDIgMS44MjE5NiAxIDEuOTk5ODhWMjMuOTk5OUMxLjAwMDIgMjQuMTc3OCAxLjA0Nzg1IDI0LjM1MjQgMS4xMzgwNSAyNC41MDU4QzEuMjI4MjYgMjQuNjU5MSAxLjM1Nzc0IDI0Ljc4NTYgMS41MTMxNCAyNC44NzIzQzEuNjY4NTQgMjQuOTU4OSAxLjg0NDI0IDI1LjAwMjUgMi4wMjIxMSAyNC45OTg1QzIuMTk5OTggMjQuOTk0NiAyLjM3MzU4IDI0Ljk0MzMgMi41MjUgMjQuODQ5OUwyMC41MTI1IDEzLjg0OTlDMjAuNjYwMiAxMy43NjI1IDIwLjc4MjYgMTMuNjM4MiAyMC44Njc2IDEzLjQ4OTJDMjAuOTUyNiAxMy4zNDAxIDIwLjk5NzQgMTMuMTcxNSAyMC45OTc0IDEyLjk5OTlDMjAuOTk3NCAxMi44MjgzIDIwLjk1MjYgMTIuNjU5NiAyMC44Njc2IDEyLjUxMDZDMjAuNzgyNiAxMi4zNjE1IDIwLjY2MDIgMTIuMjM3MiAyMC41MTI1IDEyLjE0OTlWMTIuMTQ5OVoiIHN0cm9rZT0iI0ZGRiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==");
2992 background-size: contain;
2993 background-repeat: no-repeat;
2994 background-position: center;
2995 }
2996
2997 .action-btn.share::before {
2998 content: '';
2999 display: inline-block;
3000 width: 18px;
3001 height: 18px;
3002 vertical-align: middle;
3003 background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOSAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuOTA3MDMgMTAuNjYxMkwxNi43NzcgMS4wNjU3MkwxOC4xOTcgMi40NDc2Mkw4LjMzNzAzIDEyLjA1MjlMNi45MDcwMyAxMC42NjEyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi43MzQxIDIuNDg4NzdMMTMuMTA3OCAxNS45NTU0QzEzLjA3NDYgMTYuMDc5MyAxMy4wMDM2IDE2LjE5MDQgMTIuOTA0MSAxNi4yNzQyQzEyLjgwNDYgMTYuMzU3OSAxMi42ODEzIDE2LjQxMDMgMTIuNTUwNiAxNi40MjQ0QzEyLjQxOTkgMTYuNDM4NiAxMi4yODc4IDE2LjQxMzggMTIuMTcxOSAxNi4zNTMzQzEyLjA1NjMgMTYuMjkzMSAxMS45NjIyIDE2LjIwMDIgMTEuOTAxOCAxNi4wODdMMTEuOTAxMiAxNi4wODU5TDguODMwNjkgMTAuMjQyMUwyLjc4MTI5IDcuMzAzNjZMMi43Nzg5MiA3LjMwMjUxQzIuNjYwNDcgNy4yNDUzNyAyLjU2Mjc0IDcuMTU0NDUgMi40OTg3NiA3LjA0MTg3QzIuNDM0NzkgNi45MjkyOCAyLjQwNzYxIDYuODAwMzkgMi40MjA4NSA2LjY3MjM4QzIuNDM0MDkgNi41NDQzOCAyLjQ4NzEyIDYuNDIzMzQgMi41NzI4OCA2LjMyNTQzQzIuNjU4NjMgNi4yMjc1MSAyLjc3MzAyIDYuMTU3MzcgMi45MDA3OSA2LjEyNDM2TDE2LjczNDEgMi40ODg3N1pNMTguOTYyMyAxLjUwODUyQzE5LjA3NzIgMS4xMTQ0MyAxOC45MTE2IDAuNzY0OTExIDE4LjcwNzUgMC41NjYzNjFDMTguNTAzNCAwLjM2NzczNyAxOC4yMzc0IDAuMjc3MzQ0IDE3Ljk4NyAwLjI3NzM0NEgxNy44NjFMMi40MTMyNyA0LjMzNzI0TDIuNDExMTEgNC4zMzc3OUMxLjkxMDcxIDQuNDY3NTMgMS40NjI3NSA0Ljc0MjQ3IDEuMTI2ODIgNS4xMjYwNUMwLjc5MDQxIDUuNTEwMTcgMC41ODIzNTMgNS45ODUgMC41MzA0MDUgNi40ODcxN0MwLjQ3ODQ1NiA2Ljk4OTM1IDAuNTg1MDg2IDcuNDk1MDEgMC44MzYwNzEgNy45MzY2OEMxLjA4NjggOC4zNzc5MiAxLjQ2OTY5IDguNzM0MzUgMS45MzM3NCA4Ljk1ODUzTDEuOTM1MTQgOC45NTkyTDcuNDIzMzcgMTEuNjI1MUwxMC4yMTEyIDE2LjkzMDhMMTAuMjEyOCAxNi45MzM5QzEwLjQ0OTUgMTcuMzgwMiAxMC44MTk3IDE3Ljc0NiAxMS4yNzQ2IDE3Ljk4MzJDMTEuNzI5NSAxOC4yMjAzIDEyLjI0NzYgMTguMzE3NiAxMi43NjA0IDE4LjI2MjJDMTMuMjczMyAxOC4yMDY3IDEzLjc1NjggMTguMDAxMSAxNC4xNDcxIDE3LjY3MjZDMTQuNTM3MyAxNy4zNDQxIDE0LjgxNTkgMTYuOTA4MiAxNC45NDYyIDE2LjQyMjRMMTguOTYyMyAxLjUwODUyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==");
3004 background-size: contain;
3005 background-repeat: no-repeat;
3006 background-position: center;
3007 }
3008
3009 @media (max-width: 768px) {
3010 .ws-carousel {
3011 margin: var(--space-lg, 32px) 0;
3012 }
3013
3014 .stories-container {
3015 /*
3016 Largura das duas setas com position absolute: 64px
3017 Largura das somas margens das setas mobile: 16px
3018 Soma das margens laterais: 48px
3019 */
3020 width: calc(100vw - 64px - 16px - 48px);
3021 }
3022
3023 .header-container {
3024 padding: 6px;
3025 }
3026
3027 .story-progress {
3028 height: 2px;
3029 }
3030
3031 .header-container,
3032 .action-buttons {
3033 gap: 12px;
3034 }
3035
3036 .action-btn.play::before,
3037 .action-btn.pause::before,
3038 .action-btn.share::before {
3039 width: 10px;
3040 height: 10px;
3041 }
3042
3043 .nav-area.prev .arrow {
3044 left: calc(-32px - 8px);
3045 }
3046
3047 .nav-area.next .arrow,
3048 .nav-area.next .restart-icon {
3049 right: calc(-32px - 8px);
3050 }
3051
3052 .story-content {
3053 padding: 16px 16px 32px 16px;
3054 }
3055
3056 .story-content .content-wrapper {
3057 padding: 0;
3058 }
3059
3060 .story-title .title-text {
3061 font-size: 16px;
3062 }
3063
3064 .story-description p,
3065 .story-description p a {
3066 font-size: 14px !important;
3067 }
3068 }
3069</style>
3070
3071<!-- Google tag (gtag.js) -->
3072<script async src="https://www.googletagmanager.com/gtag/js?id=G-9TG5WL85H3"></script>
3073<script>
3074 window.dataLayer = window.dataLayer || [];
3075 function gtag() { dataLayer.push(arguments); }
3076 gtag('js', new Date());
3077
3078 // Configuração do Google Analytics 4
3079 gtag('config', 'G-9TG5WL85H3');
3080</script>
3081
3082 <script>
3083/* CONSTANTS */
3084const PUBLISHER_LOGO_INDEX = 0;
3085const POSTER_PORTRAIT_INDEX = 1;
3086const PUBLISHER_INDEX = 2;
3087const COVER_INDEX = 3;
3088const STORIES_INDEX = 4;
3089
3090const COVER_HAS_COVER_INDEX = 0;
3091const COVER_TITLE_INDEX = 1;
3092const COVER_TEXT_INDEX = 2;
3093const COVER_IMAGE_INDEX = 3;
3094
3095const STORY_TITLE_INDEX = 0;
3096const STORY_TEXT_INDEX = 1;
3097const STORY_COLOR_THEME_INDEX = 2;
3098const STORY_IMAGE_INDEX = 3;
3099
3100const DETAILS_SVG = `<svg width="91" height="21" viewBox="0 0 91 21" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12.5 3.625H7.5C7.15482 3.625 6.875 3.90482 6.875 4.25V16.75C6.875 17.0952 7.15482 17.375 7.5 17.375H12.5C12.8452 17.375 13.125 17.0952 13.125 16.75V4.25C13.125 3.90482 12.8452 3.625 12.5 3.625Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> <path d="M17.5 14.25V6.75C17.5 6.40482 17.2202 6.125 16.875 6.125H13.75C13.4048 6.125 13.125 6.40482 13.125 6.75V14.25C13.125 14.5952 13.4048 14.875 13.75 14.875H16.875C17.2202 14.875 17.5 14.5952 17.5 14.25Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> <path d="M6.875 14.25L6.875 6.75C6.875 6.40482 6.59518 6.125 6.25 6.125H3.125C2.77982 6.125 2.5 6.40482 2.5 6.75L2.5 14.25C2.5 14.5952 2.77982 14.875 3.125 14.875H6.25C6.59518 14.875 6.875 14.5952 6.875 14.25Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> <path d="M30.376 15.5L28.36 6.74H29.56L31.06 14.132L32.704 7.196H33.784L35.428 14.132L36.928 6.74H38.08L36.064 15.5H34.828L33.208 8.672L31.588 15.5H30.376ZM39.6543 12.836C39.6783 13.252 39.7343 13.588 39.8223 13.844C39.9183 14.092 40.0503 14.284 40.2183 14.42C40.3863 14.548 40.5863 14.636 40.8183 14.684C41.0583 14.724 41.3303 14.744 41.6343 14.744C41.9143 14.744 42.1743 14.732 42.4143 14.708C42.6543 14.684 42.8863 14.656 43.1103 14.624V15.344C42.8703 15.44 42.5943 15.512 42.2823 15.56C41.9783 15.616 41.6623 15.644 41.3343 15.644C40.3343 15.644 39.6183 15.388 39.1863 14.876C38.7623 14.356 38.5503 13.584 38.5503 12.56C38.5503 11.456 38.7663 10.652 39.1983 10.148C39.6383 9.636 40.2703 9.38 41.0943 9.38C41.5183 9.38 41.8783 9.448 42.1743 9.584C42.4703 9.712 42.7103 9.908 42.8943 10.172C43.0783 10.428 43.2103 10.744 43.2903 11.12C43.3703 11.496 43.4103 11.928 43.4103 12.416V12.836H39.6543ZM42.3543 12.056C42.3543 11.424 42.2583 10.968 42.0663 10.688C41.8823 10.4 41.5543 10.256 41.0823 10.256C40.5703 10.256 40.2103 10.412 40.0023 10.724C39.7943 11.028 39.6743 11.472 39.6423 12.056H42.3543ZM44.9427 15.5V6.74H46.0467V10.1C46.2147 9.916 46.4347 9.752 46.7067 9.608C46.9867 9.456 47.3667 9.38 47.8467 9.38C48.6467 9.38 49.2387 9.652 49.6227 10.196C50.0067 10.74 50.1987 11.496 50.1987 12.464C50.1987 13.512 49.9827 14.304 49.5507 14.84C49.1267 15.376 48.5067 15.644 47.6907 15.644C47.2347 15.644 46.8707 15.572 46.5987 15.428C46.3347 15.284 46.1107 15.096 45.9267 14.864L45.8427 15.5H44.9427ZM46.0227 12.944C46.0227 13.28 46.0627 13.56 46.1427 13.784C46.2227 14.008 46.3307 14.192 46.4667 14.336C46.6107 14.472 46.7747 14.572 46.9587 14.636C47.1507 14.692 47.3547 14.72 47.5707 14.72C48.0587 14.72 48.4267 14.556 48.6747 14.228C48.9307 13.9 49.0587 13.332 49.0587 12.524C49.0587 12.092 49.0227 11.736 48.9507 11.456C48.8867 11.168 48.7907 10.94 48.6627 10.772C48.5347 10.604 48.3747 10.484 48.1827 10.412C47.9987 10.34 47.7907 10.304 47.5587 10.304C47.3347 10.304 47.1267 10.332 46.9347 10.388C46.7507 10.444 46.5907 10.54 46.4547 10.676C46.3187 10.804 46.2107 10.98 46.1307 11.204C46.0587 11.42 46.0227 11.692 46.0227 12.02V12.944ZM54.1271 14.36C54.4711 14.424 54.8431 14.48 55.2431 14.528C55.6431 14.576 56.0231 14.6 56.3831 14.6C56.6791 14.6 56.9431 14.584 57.1751 14.552C57.4071 14.512 57.6031 14.436 57.7631 14.324C57.9231 14.212 58.0431 14.056 58.1231 13.856C58.2111 13.648 58.2551 13.38 58.2551 13.052C58.2551 12.796 58.2271 12.588 58.1711 12.428C58.1151 12.26 58.0191 12.124 57.8831 12.02C57.7551 11.916 57.5831 11.832 57.3671 11.768C57.1511 11.696 56.8871 11.624 56.5751 11.552L56.2151 11.468C55.8951 11.396 55.5991 11.308 55.3271 11.204C55.0631 11.092 54.8351 10.948 54.6431 10.772C54.4511 10.588 54.2991 10.364 54.1871 10.1C54.0831 9.836 54.0311 9.508 54.0311 9.116C54.0311 8.292 54.2711 7.668 54.7511 7.244C55.2391 6.82 55.9551 6.608 56.8991 6.608C57.3391 6.608 57.7471 6.648 58.1231 6.728C58.5071 6.808 58.8431 6.904 59.1311 7.016V7.82C58.8351 7.78 58.4951 7.736 58.1111 7.688C57.7351 7.64 57.3671 7.616 57.0071 7.616C56.7351 7.616 56.4871 7.632 56.2631 7.664C56.0391 7.696 55.8431 7.764 55.6751 7.868C55.5151 7.964 55.3911 8.104 55.3031 8.288C55.2151 8.472 55.1711 8.712 55.1711 9.008C55.1711 9.264 55.2031 9.476 55.2671 9.644C55.3391 9.804 55.4431 9.936 55.5791 10.04C55.7231 10.144 55.8951 10.232 56.0951 10.304C56.3031 10.368 56.5471 10.428 56.8271 10.484L57.2111 10.568C57.5791 10.648 57.8991 10.748 58.1711 10.868C58.4511 10.98 58.6831 11.128 58.8671 11.312C59.0511 11.496 59.1871 11.724 59.2751 11.996C59.3711 12.268 59.4191 12.6 59.4191 12.992C59.4191 13.464 59.3511 13.868 59.2151 14.204C59.0871 14.54 58.8991 14.816 58.6511 15.032C58.4031 15.24 58.0991 15.392 57.7391 15.488C57.3791 15.584 56.9711 15.632 56.5151 15.632C56.0031 15.632 55.5471 15.584 55.1471 15.488C54.7471 15.384 54.4071 15.276 54.1271 15.164V14.36ZM62.3096 13.52C62.3096 14.016 62.4056 14.348 62.5976 14.516C62.7896 14.676 63.0776 14.756 63.4616 14.756C63.7496 14.756 64.0096 14.744 64.2416 14.72V15.44C64.0736 15.488 63.8896 15.528 63.6896 15.56C63.4896 15.6 63.2776 15.62 63.0536 15.62C62.4056 15.62 61.9336 15.46 61.6376 15.14C61.3496 14.82 61.2056 14.296 61.2056 13.568V10.376H60.1376V9.74L61.2056 9.536V7.7H62.3096V9.524H64.1336V10.376H62.3096V13.52ZM66.6991 14.24C66.8351 14.416 66.9951 14.54 67.1791 14.612C67.3711 14.684 67.5951 14.72 67.8511 14.72C68.0991 14.72 68.3151 14.684 68.4991 14.612C68.6911 14.54 68.8471 14.42 68.9671 14.252C69.0951 14.076 69.1911 13.848 69.2551 13.568C69.3191 13.288 69.3511 12.936 69.3511 12.512C69.3511 12.096 69.3191 11.748 69.2551 11.468C69.1911 11.18 69.0911 10.952 68.9551 10.784C68.8271 10.608 68.6671 10.484 68.4751 10.412C68.2831 10.34 68.0631 10.304 67.8151 10.304C67.5671 10.304 67.3471 10.34 67.1551 10.412C66.9711 10.484 66.8151 10.604 66.6871 10.772C66.5671 10.94 66.4751 11.168 66.4111 11.456C66.3471 11.736 66.3151 12.084 66.3151 12.5C66.3151 12.924 66.3471 13.276 66.4111 13.556C66.4751 13.836 66.5711 14.064 66.6991 14.24ZM67.8271 15.644C66.9311 15.644 66.2671 15.384 65.8351 14.864C65.4031 14.344 65.1871 13.564 65.1871 12.524C65.1871 11.476 65.4031 10.692 65.8351 10.172C66.2751 9.644 66.9471 9.38 67.8511 9.38C68.7471 9.38 69.4111 9.64 69.8431 10.16C70.2751 10.68 70.4911 11.46 70.4911 12.5C70.4911 13.548 70.2711 14.336 69.8311 14.864C69.3991 15.384 68.7311 15.644 67.8271 15.644ZM72.0247 15.5V9.524H72.9127L73.0327 10.28C73.4407 9.712 74.0447 9.428 74.8447 9.428C74.9727 9.428 75.1047 9.44 75.2407 9.464V10.376C75.1767 10.368 75.1167 10.364 75.0607 10.364C75.0047 10.364 74.9487 10.364 74.8927 10.364C74.3007 10.364 73.8567 10.504 73.5607 10.784C73.2727 11.064 73.1287 11.516 73.1287 12.14V15.5H72.0247ZM76.431 15.5V9.524H77.535V15.5H76.431ZM76.995 8.3C76.763 8.3 76.591 8.24 76.479 8.12C76.367 8 76.311 7.832 76.311 7.616C76.311 7.144 76.539 6.908 76.995 6.908C77.227 6.908 77.395 6.968 77.499 7.088C77.611 7.208 77.667 7.376 77.667 7.592C77.667 8.064 77.443 8.3 76.995 8.3ZM80.1778 12.836C80.2018 13.252 80.2578 13.588 80.3458 13.844C80.4418 14.092 80.5738 14.284 80.7418 14.42C80.9098 14.548 81.1098 14.636 81.3418 14.684C81.5818 14.724 81.8538 14.744 82.1578 14.744C82.4378 14.744 82.6978 14.732 82.9378 14.708C83.1778 14.684 83.4098 14.656 83.6338 14.624V15.344C83.3938 15.44 83.1178 15.512 82.8058 15.56C82.5018 15.616 82.1858 15.644 81.8578 15.644C80.8578 15.644 80.1418 15.388 79.7098 14.876C79.2858 14.356 79.0738 13.584 79.0738 12.56C79.0738 11.456 79.2898 10.652 79.7218 10.148C80.1618 9.636 80.7938 9.38 81.6178 9.38C82.0418 9.38 82.4018 9.448 82.6978 9.584C82.9938 9.712 83.2338 9.908 83.4178 10.172C83.6018 10.428 83.7338 10.744 83.8138 11.12C83.8938 11.496 83.9338 11.928 83.9338 12.416V12.836H80.1778ZM82.8778 12.056C82.8778 11.424 82.7818 10.968 82.5898 10.688C82.4058 10.4 82.0778 10.256 81.6058 10.256C81.0938 10.256 80.7338 10.412 80.5258 10.724C80.3178 11.028 80.1978 11.472 80.1658 12.056H82.8778ZM85.2741 14.612C85.5141 14.644 85.7901 14.672 86.1021 14.696C86.4221 14.72 86.7341 14.732 87.0381 14.732C87.2781 14.732 87.4861 14.724 87.6621 14.708C87.8461 14.684 87.9941 14.64 88.1061 14.576C88.2181 14.504 88.3021 14.408 88.3581 14.288C88.4141 14.168 88.4421 14.012 88.4421 13.82C88.4421 13.66 88.4221 13.532 88.3821 13.436C88.3421 13.332 88.2741 13.248 88.1781 13.184C88.0901 13.12 87.9661 13.072 87.8061 13.04C87.6541 13 87.4621 12.964 87.2301 12.932L86.8341 12.872C86.6181 12.84 86.4101 12.792 86.2101 12.728C86.0101 12.656 85.8341 12.56 85.6821 12.44C85.5381 12.312 85.4181 12.148 85.3221 11.948C85.2341 11.74 85.1901 11.48 85.1901 11.168C85.1901 10.848 85.2421 10.576 85.3461 10.352C85.4501 10.128 85.5981 9.944 85.7901 9.8C85.9821 9.656 86.2101 9.552 86.4741 9.488C86.7461 9.424 87.0461 9.392 87.3741 9.392C87.7341 9.392 88.0621 9.42 88.3581 9.476C88.6621 9.524 88.9501 9.592 89.2221 9.68V10.388C88.9901 10.364 88.7301 10.34 88.4421 10.316C88.1621 10.292 87.8701 10.28 87.5661 10.28C87.3581 10.28 87.1701 10.288 87.0021 10.304C86.8341 10.32 86.6901 10.36 86.5701 10.424C86.4501 10.48 86.3541 10.564 86.2821 10.676C86.2181 10.78 86.1861 10.928 86.1861 11.12C86.1861 11.272 86.2061 11.396 86.2461 11.492C86.2941 11.58 86.3621 11.656 86.4501 11.72C86.5461 11.776 86.6661 11.82 86.8101 11.852C86.9541 11.884 87.1301 11.916 87.3381 11.948L87.6621 11.996C87.9421 12.036 88.1941 12.092 88.4181 12.164C88.6421 12.236 88.8301 12.34 88.9821 12.476C89.1421 12.604 89.2621 12.772 89.3421 12.98C89.4301 13.188 89.4741 13.452 89.4741 13.772C89.4741 14.436 89.2861 14.912 88.9101 15.2C88.5341 15.488 88.0141 15.632 87.3501 15.632C87.1501 15.632 86.9501 15.62 86.7501 15.596C86.5501 15.58 86.3581 15.556 86.1741 15.524C85.9901 15.492 85.8181 15.46 85.6581 15.428C85.5061 15.388 85.3781 15.352 85.2741 15.32V14.612Z" fill="white"/> </svg`;
3101
3102/* Função para criar formatar object*/
3103const createStoryObject = (objectContent) => {
3104 const hasCover = Boolean(
3105 objectContent.contentFields[COVER_INDEX].nestedContentFields[
3106 COVER_HAS_COVER_INDEX
3107 ].contentFieldValue.data
3108 );
3109 return {
3110 category: objectContent.taxonomyCategoryBriefs[0].taxonomyCategoryName,
3111 publisherLogoSrc:
3112 objectContent.contentFields[PUBLISHER_LOGO_INDEX].contentFieldValue.data,
3113 posterPortraitSrc:
3114 objectContent.contentFields[POSTER_PORTRAIT_INDEX].contentFieldValue.data,
3115 publisher:
3116 objectContent.contentFields[PUBLISHER_INDEX].contentFieldValue.data,
3117 friendlyUrlPath: objectContent.friendlyUrlPath,
3118 cover: {
3119 image: Boolean(
3120 objectContent.contentFields[COVER_INDEX].nestedContentFields[
3121 COVER_HAS_COVER_INDEX
3122 ].contentFieldValue.data
3123 ),
3124 title:
3125 objectContent.contentFields[COVER_INDEX].nestedContentFields[
3126 COVER_TITLE_INDEX
3127 ].contentFieldValue.data,
3128 description:
3129 objectContent.contentFields[COVER_INDEX].nestedContentFields[
3130 COVER_TEXT_INDEX
3131 ].contentFieldValue.data,
3132 imageUrl:
3133 objectContent.contentFields[COVER_INDEX].nestedContentFields[
3134 COVER_IMAGE_INDEX
3135 ].contentFieldValue.image?.contentUrl || null,
3136 imageAlt:
3137 objectContent.contentFields[COVER_INDEX].nestedContentFields[
3138 COVER_IMAGE_INDEX
3139 ].contentFieldValue.image?.description || null,
3140 },
3141 stories: objectContent.contentFields
3142 .slice(STORIES_INDEX)
3143 .map((contentField) => {
3144 return {
3145 title:
3146 contentField.nestedContentFields[STORY_TITLE_INDEX]
3147 ?.contentFieldValue?.data ?? null,
3148 description:
3149 contentField.nestedContentFields[STORY_TEXT_INDEX]?.contentFieldValue
3150 .data ?? null,
3151 colorTheme:
3152 contentField.nestedContentFields[STORY_COLOR_THEME_INDEX]
3153 ?.contentFieldValue?.value ?? null,
3154 imageUrl:
3155 contentField.nestedContentFields[STORY_IMAGE_INDEX]
3156 ?.contentFieldValue?.image?.contentUrl ?? null,
3157 imageAlt:
3158 contentField.nestedContentFields[STORY_IMAGE_INDEX]
3159 ?.contentFieldValue?.image?.description ?? null,
3160 };
3161 }),
3162 };
3163};
3164
3165/* Renderiza os cards */
3166const storyCardFrom = (storyData) => {
3167 const storyCard = document.createElement("div");
3168 storyCard.classList.add("ws-item");
3169
3170 let displayPageUrl;
3171 if (`${themeDisplay.getURLPortal()}`.includes('webserver')) {
3172 displayPageUrl = `${themeDisplay.getURLPortal()}/web/nossa-energia/w/` + storyData.friendlyUrlPath;
3173 } else {
3174 displayPageUrl = `${themeDisplay.getURLPortal()}/w/` + storyData.friendlyUrlPath;
3175 }
3176
3177 storyCard.addEventListener("click", (e) => {
3178 window.location.href = displayPageUrl;
3179 });
3180
3181 const image = document.createElement("img");
3182 image.classList.add("ws-image");
3183 image.src = storyData.cover.imageUrl
3184 ? storyData.cover.imageUrl
3185 : storyData.stories[0].imageUrl;
3186 image.alt = storyData.cover.imageAlt
3187 ? storyData.cover.imageAlt
3188 : storyData.stories[0].imageAlt;
3189
3190 storyCard.appendChild(image);
3191
3192 const overlay = document.createElement("div");
3193 overlay.classList.add("ws-overlay");
3194 storyCard.appendChild(overlay);
3195
3196 const label = document.createElement("span");
3197 label.classList.add("ws-label");
3198 label.dataset.category = storyData.category;
3199 label.classList.add((storyData.category || "Categoria").toLowerCase().replace(" ", '-'));
3200 label.textContent = storyData.category || "Categoria";
3201 storyCard.appendChild(label);
3202
3203 const content = document.createElement("div");
3204 content.classList.add("ws-content");
3205
3206 const title = document.createElement("h5");
3207 title.classList.add("h5")
3208 title.textContent = storyData.cover.title || "Título do Card";
3209 content.appendChild(title);
3210
3211 const details = document.createElement("div");
3212 details.classList.add("ws-details");
3213
3214 details.innerHTML = DETAILS_SVG || `<svg>...</svg>`;
3215 content.appendChild(details);
3216
3217 storyCard.appendChild(content);
3218
3219 return storyCard;
3220};
3221
3222/* Renderiza cores */
3223
3224const getCategoriesColorsStyles = async () => {
3225 //
3226 const urlToFetchToGetWebStoriesCategoriesColor = `/o/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/31841266/taxonomy-categories?fields=name%2CtaxonomyCategoryProperties`;
3227
3228 return fetch(urlToFetchToGetWebStoriesCategoriesColor, {
3229 method: "GET",
3230 headers: {
3231 accept: "application/json",
3232 "x-csrf-token": Liferay.authToken,
3233 },
3234 })
3235 .then((response) => {
3236 if (response.status === 200) {
3237 return response.json();
3238 } else {
3239 throw new Error("Erro interno. Por favor tente mais tarde.");
3240 }
3241 })
3242 .then((data) => {
3243 const styleTag = document.createElement('style');
3244 styleTag.id= 'webstories-carousel-labels';
3245
3246 let styleContent = ``;
3247
3248 data.items.forEach(item => {
3249 let textColor = item.taxonomyCategoryProperties.find(taxonomtProp => taxonomtProp.key === "Cor do Texto")?.value;
3250 let textHighContrastColor = item.taxonomyCategoryProperties.find(taxonomtProp => taxonomtProp.key === "Cor do Texto em Alto Contraste")?.value;
3251
3252 if (textColor != undefined) {
3253 styleContent = styleContent + `
3254 .ws-carousel .ws-carousel-body .ws-container .ws-item .ws-label[data-category="` + item.name + `"] {
3255 color: #` + textColor + `;
3256 }
3257 `
3258 }
3259
3260 if (textHighContrastColor != undefined) {
3261 styleContent = styleContent + `
3262 body.high-contrast .ws-carousel .ws-carousel-body .ws-container .ws-item .ws-label[data-category="` + item.name + `"] {
3263 color: #` + textHighContrastColor + `;
3264 }
3265 `
3266 }
3267 });
3268
3269 styleTag.textContent = styleContent;
3270
3271 document.head.appendChild(styleTag);
3272 });
3273};
3274
3275getCategoriesColorsStyles();
3276
3277/* Renderiza os itens */
3278const renderItems = (carouselId, webStoriesObjects) => {
3279 const carouselElement = document.querySelector(`#` + carouselId);
3280 const carouselContainer = carouselElement.querySelector(`.ws-container`);
3281 const carouselBody = carouselElement.querySelector(".ws-carousel-body");
3282 const navButtons = carouselElement.querySelector(".nav-buttons");
3283 const leftArrow = navButtons.querySelector(".left-arrow");
3284 const rightArrow = navButtons.querySelector(".right-arrow");
3285
3286 // Adiciona Cards
3287 webStoriesObjects.forEach((storyObject, index) => {
3288 const storyCard = storyCardFrom(storyObject);
3289 storyCard.dataset.index = index;
3290 carouselContainer.appendChild(storyCard);
3291 });
3292
3293 // Altera o Layout
3294 function updateLayout() {
3295 if (webStoriesObjects.length < 3) {
3296 if (window.matchMedia("(min-width: 769px)").matches) {
3297 carouselContainer.style.justifyContent = "center";
3298 navButtons.style.display = "none";
3299 } else {
3300 carouselContainer.style.justifyContent = "flex-start";
3301 navButtons.style.display = "flex";
3302 }
3303 } else {
3304 carouselContainer.style.justifyContent = "";
3305 carouselContainer.style.gap = window.matchMedia("(max-width: 768px)")
3306 .matches
3307 ? "32px"
3308 : "16px";
3309 navButtons.style.display = "";
3310 }
3311 }
3312 updateLayout();
3313 window.addEventListener("resize", updateLayout);
3314
3315 // Configura Scroll das setas
3316 leftArrow.addEventListener("click", () => {
3317 const items = carouselBody.querySelectorAll(".ws-item");
3318 const gap = window.matchMedia("(max-width: 768px)").matches ? 32 : 16;
3319 const pageSize = items[0].offsetWidth + gap;
3320 const currentScroll = carouselBody.scrollLeft;
3321 const currentPageReal = carouselBody.scrollLeft / pageSize;
3322 const currentPage = parseInt(currentPageReal);
3323 const rest = currentPage - currentPageReal;
3324 const nextPage = rest !== 0 ? currentPage : currentPage - 1;
3325 carouselBody.scrollLeft = nextPage * pageSize;
3326 });
3327
3328 rightArrow.addEventListener("click", () => {
3329 const gap = window.matchMedia("(max-width: 768px)").matches ? 32 : 16;
3330 const items = carouselBody.querySelectorAll(".ws-item");
3331 carouselBody.scrollLeft += items[0].offsetWidth + gap;
3332 });
3333
3334 const updateArrows = () => {
3335 const scrollLeft = carouselBody.scrollLeft;
3336 const maxScrollLeft = carouselBody.scrollWidth - carouselBody.clientWidth;
3337
3338 // Regra 1: A seta esquerda fica cinza se scrollLeft for 0
3339 if (scrollLeft === 0) {
3340 leftArrow.classList.remove("active");
3341 leftArrow.classList.add("inactive");
3342 } else {
3343 leftArrow.classList.remove("inactive");
3344 leftArrow.classList.add("active");
3345 }
3346
3347 // Regra 2: A seta direita fica cinza se o scroll for máximo
3348 if (scrollLeft >= maxScrollLeft) {
3349 rightArrow.classList.remove("active");
3350 rightArrow.classList.add("inactive");
3351 } else {
3352 rightArrow.classList.remove("inactive");
3353 rightArrow.classList.add("active");
3354 }
3355 };
3356
3357 carouselBody.addEventListener("scroll", updateArrows);
3358};
3359
3360/* Fetch Things */
3361async function getWebStoriesDataSectionFromNews(webContentId) {
3362 const ID_INDEX = 0;
3363 const WEB_STORIES_STRUCTURED_CONTENT_INDEX_START_AT = 2;
3364 const urlToFetchToGetWebStoriesGroup =
3365 `/o/headless-delivery/v1.0/structured-contents/` +
3366 webContentId +
3367 `?fields=contentFields`;
3368
3369 return fetch(urlToFetchToGetWebStoriesGroup, {
3370 method: "GET",
3371 headers: {
3372 accept: "application/json",
3373 "x-csrf-token": Liferay.authToken,
3374 },
3375 })
3376 .then((response) => {
3377 if (response.status === 200) {
3378 return response.json();
3379 } else {
3380 throw new Error("Erro interno. Por favor tente mais tarde.");
3381 }
3382 })
3383 .then((data) => {
3384 const webStoriesGroups = Array.from(data.contentFields).filter(
3385 (contentField) => contentField.label === "Web Stories"
3386 );
3387
3388 const webStoriesDataMapped = webStoriesGroups.map((webStoryGroup) => {
3389 const webStoryGroupId =
3390 webStoryGroup.nestedContentFields[ID_INDEX].contentFieldValue.data;
3391 const webStoriesStrucutredContentNodes =
3392 webStoryGroup.nestedContentFields.slice(
3393 WEB_STORIES_STRUCTURED_CONTENT_INDEX_START_AT
3394 );
3395 const webStoriesIds = Array.from(webStoriesStrucutredContentNodes).map(
3396 (webStoryNode) => {
3397 const webStoryId =
3398 webStoryNode.contentFieldValue.structuredContentLink.id;
3399 return {
3400 webStoryId: webStoryId,
3401 };
3402 }
3403 );
3404 return {
3405 webStoryGroupId: webStoryGroupId,
3406 webStoriesIds: webStoriesIds,
3407 };
3408 });
3409
3410 return webStoriesDataMapped;
3411 })
3412 .then((webStoriesDataMapped) => {
3413 // Mapeia os dados recebidos
3414 return Promise.all(
3415 webStoriesDataMapped.map(async (group) => {
3416 const updatedWebStoriesIds = await Promise.all(
3417 group.webStoriesIds.map(async (story) => {
3418 // Faz o fetch para obter os dados do webStoryId
3419 const response = await fetch(
3420 `/o/headless-delivery/v1.0/structured-contents/` +
3421 story.webStoryId,
3422 {
3423 method: "GET",
3424 headers: {
3425 accept: "application/json",
3426 "x-csrf-token": Liferay.authToken,
3427 },
3428 }
3429 );
3430 if (!response.ok) {
3431 throw new Error(
3432 `Erro ao buscar dados para webStoryId` + story.webStoryId
3433 );
3434 }
3435 const webStoryData = await response.json();
3436 return { webStoryData: webStoryData };
3437 })
3438 );
3439
3440 // Retorna o objeto transformado
3441 return {
3442 webStoryGroupId: group.webStoryGroupId,
3443 webStoriesData: updatedWebStoriesIds,
3444 };
3445 })
3446 );
3447 })
3448 .then((webStoriesDataFetched) => {
3449 return webStoriesDataFetched.map((data) => {
3450 return {
3451 webStoryGroupId: data.webStoryGroupId,
3452 webStoryObjects: data.webStoriesData.map((data) =>
3453 createStoryObject(data.webStoryData)
3454 ),
3455 };
3456 });
3457 })
3458 .catch((error) => {
3459 console.error("Erro ao buscar coleção: ", error);
3460 });
3461}
3462
3463async function getWebStoriesData(webStoriesIds) {
3464 // Mapeia os IDs para criar um array de promessas
3465 const fetchPromises = webStoriesIds.map((webStoryId) => {
3466 //const urlToFetch = `/o/headless-delivery/v1.0/structured-contents/` + webStoryId + `?fields=contentFields`;
3467 const urlToFetch =
3468 `/o/headless-delivery/v1.0/structured-contents/` +
3469 webStoryId +
3470 `?fields=contentFields%2CtaxonomyCategoryBriefs`;
3471 return fetch(urlToFetch, {
3472 method: "GET",
3473 headers: {
3474 accept: "application/json",
3475 "x-csrf-token": Liferay.authToken,
3476 },
3477 }).then((response) => {
3478 if (!response.ok) {
3479 throw new Error(`Erro ao buscar ID`);
3480 }
3481 return response.json(); // Transforma a resposta em JSON
3482 });
3483 });
3484
3485 // Aguarda todas as promessas e preserva a ordem
3486 try {
3487 const results = await Promise.all(fetchPromises);
3488 return results; // Retorna os resultados em ordem
3489 } catch (error) {
3490 console.error("Erro ao buscar Web Stories:", error);
3491 throw error; // Relança o erro para tratamento posterior
3492 }
3493}
3494
3495<#noparse>
3496const scriptForStoryInNews = (storyData, containerId) => {
3497
3498 storyData.stories = storyData.stories.filter(story => story.imageUrl !== null)
3499
3500 const storiesContainer = document.getElementById(`stories-container-${containerId}`);
3501 const prevArrow = storiesContainer.querySelector('.nav-area.prev svg.arrow');
3502 const nextArrow = storiesContainer.querySelector('.nav-area.next svg.arrow');
3503 const restartIcon = storiesContainer.querySelector('.nav-area.next svg.restart-icon');
3504 const progressBars = storiesContainer.querySelector('.progress-bars');
3505 const pauseBtn = storiesContainer.querySelector('.pause-btn');
3506 const shareBtn = storiesContainer.querySelector('.share-btn');
3507
3508 let currentStoryIndex = 0;
3509 let progressTimeout;
3510 let touchStartX = 0;
3511 let touchEndX = 0;
3512 let isPaused = false;
3513 let viewedStories = new Set();
3514 let progressStartTime = 0;
3515 let remainingTime = 8000;
3516
3517 // Tagueamento com Google Analytics
3518 const trackStoryPageView = (pageId) => {
3519 gtag("event", `web_story_page_view_${pageId}`, {
3520 story_title: document.title,
3521 canonical_url: window.location.href,
3522 source_url: document.referrer
3523 });
3524 }
3525
3526 // Cria slides dos stories
3527 function createStorySlides() {
3528 // Cria barras de progresso
3529 storyData.stories.forEach((story, index) => {
3530 const progressContainer = document.createElement('div');
3531 progressContainer.className = 'progress-bar';
3532 progressContainer.dataset.index = index;
3533
3534 const progress = document.createElement('div');
3535 progress.className = 'story-progress';
3536 progressContainer.appendChild(progress);
3537
3538 progressBars.appendChild(progressContainer);
3539 });
3540
3541 // Cria slides
3542 storyData.stories.forEach((story, index) => {
3543 const slide = document.createElement('div');
3544 slide.className = `story-slide ${index === 0 ? 'active' : ''}`;
3545 slide.dataset.index = index;
3546
3547 let imageHtml = '';
3548 if (story.imageUrl) {
3549 imageHtml = `<img src="${story.imageUrl}" alt="${story.imageAlt || ''}" class="story-image" loading="lazy">`;
3550 }
3551
3552 slide.innerHTML = `
3553 ${imageHtml}
3554 <div class="story-content">
3555 <div class="content-wrapper">
3556 ${story.title && (
3557 `<div class="story-title ${story.colorTheme}">
3558 <p class="title-text">${story.title}</p>
3559 <div class="mischievous">—</div>
3560 </div>`
3561 )}
3562 ${story.description && `<div class="story-description description-text ${story.colorTheme}">${story.description}</div>`}
3563 </div>
3564 </div>
3565 `;
3566 storiesContainer.insertBefore(slide, storiesContainer.querySelector('.nav-area-container'));
3567 });
3568
3569 updateArrows();
3570 updateProgressBars();
3571 startProgressBar();
3572 }
3573
3574 // Atualiza o estado das setas de navegação
3575 function updateArrows() {
3576 // Seta anterior
3577 if (currentStoryIndex === 0) {
3578 prevArrow.classList.add('disabled');
3579 } else {
3580 prevArrow.classList.remove('disabled');
3581 }
3582
3583 // Próxima seta
3584 if (currentStoryIndex === storyData.stories.length - 1) {
3585 nextArrow.classList.add('hidden');
3586 restartIcon.classList.remove('hidden');
3587 } else {
3588 nextArrow.classList.remove('hidden');
3589 restartIcon.classList.add('hidden');
3590 }
3591 }
3592
3593 // Atualiza as barras de progresso conforme navegação
3594 function updateProgressBars() {
3595 const allProgressBars = storiesContainer.querySelectorAll('.progress-bar .story-progress');
3596
3597 allProgressBars.forEach((bar, index) => {
3598 bar.classList.remove('completed', 'active');
3599 bar.style.width = '0%';
3600 bar.style.animation = 'none';
3601
3602 if (index < currentStoryIndex) {
3603 // Stories já vistos - barra completa
3604 bar.classList.add('completed');
3605 bar.style.width = '100%';
3606 } else if (index === currentStoryIndex) {
3607 // Story atual - barra em progresso
3608 bar.classList.add('active');
3609 } else {
3610 // Stories não vistos - barra vazia
3611 bar.style.width = '0%';
3612 }
3613 });
3614 }
3615
3616 function nextStory() {
3617 if (currentStoryIndex < storyData.stories.length - 1) {
3618 viewedStories.add(currentStoryIndex);
3619 goToStory(currentStoryIndex + 1);
3620 }
3621 }
3622
3623 function prevStory() {
3624 if (currentStoryIndex > 0) {
3625 viewedStories.delete(currentStoryIndex);
3626 goToStory(currentStoryIndex - 1);
3627 }
3628 }
3629
3630 function goToStory(index) {
3631 // Pausa a animação atual
3632 clearTimeout(progressTimeout);
3633
3634 storiesContainer.querySelector('.story-slide.active').classList.remove('active');
3635 currentStoryIndex = index;
3636 storiesContainer.querySelector(`.story-slide[data-index="${index}"]`).classList.add('active');
3637
3638 updateArrows();
3639 updateProgressBars();
3640
3641 isPaused = false;
3642 pauseBtn.classList.replace('play', 'pause');
3643 startProgressBar();
3644 }
3645
3646 function startProgressBar() {
3647 const currentProgressBar = storiesContainer.querySelector(`.progress-bar[data-index="${currentStoryIndex}"] .story-progress`);
3648
3649 // Resetar e iniciar animação
3650 currentProgressBar.style.animation = 'none';
3651 currentProgressBar.offsetHeight; // Trigger reflow
3652 currentProgressBar.style.animation = 'progress 8s linear forwards';
3653
3654 progressStartTime = Date.now();
3655
3656 progressTimeout = setTimeout(() => {
3657 nextStory();
3658 }, remainingTime);
3659 }
3660
3661 // Pausar/continuar story
3662 function togglePause() {
3663 isPaused = !isPaused;
3664
3665 const currentProgressBar = storiesContainer.querySelector(`.progress-bar[data-index="${currentStoryIndex}"] .story-progress`);
3666
3667 if (isPaused) {
3668 // Pausar
3669 currentProgressBar.style.animationPlayState = 'paused';
3670 clearTimeout(progressTimeout);
3671
3672 // Calcular tempo restante
3673 const elapsed = Date.now() - progressStartTime;
3674 remainingTime = Math.max(0, 8000 - elapsed);
3675
3676 pauseBtn.classList.remove('pause');
3677 pauseBtn.classList.add('play');
3678 } else {
3679 // Retomar
3680 currentProgressBar.style.animationPlayState = 'running';
3681 pauseBtn.classList.remove('play');
3682 pauseBtn.classList.add('pause');
3683
3684 // Reiniciar com tempo restante
3685 progressStartTime = Date.now();
3686 progressTimeout = setTimeout(() => {
3687 nextStory();
3688 }, remainingTime);
3689 }
3690 }
3691
3692 function shareStory() {
3693 const currentStory = storyData.stories[currentStoryIndex];
3694 const baseUrl = window.location.origin;
3695 let displayPageUrl;
3696 if (baseUrl.includes('webserver')) {
3697 displayPageUrl = `${baseUrl}/web/nossa-energia/w/${storyData.friendlyUrlPath}`;
3698 } else {
3699 displayPageUrl = `${baseUrl}/w/${storyData.friendlyUrlPath}`;
3700 }
3701
3702 const shareData = {
3703 title: currentStory.title || 'Story',
3704 text: currentStory.description ? currentStory.description.replace(/<[^>]*>/g, '') : '',
3705 url: displayPageUrl
3706 };
3707
3708 if (navigator.share) {
3709 navigator.share(shareData)
3710 .then(() => console.log('Compartilhado com sucesso'))
3711 .catch((error) => console.log('Erro ao compartilhar:', error));
3712 } else {
3713 // Fallback para navegadores que não suportam a API de compartilhamento
3714 alert('Compartilhar: ' + shareData.title + '\n' + shareData.text + '\n' + shareData.url);
3715 }
3716 }
3717
3718 // Event Listeners
3719 prevArrow.addEventListener('click', (e) => {
3720 e.stopPropagation();
3721 prevStory();
3722 });
3723
3724 nextArrow.addEventListener('click', (e) => {
3725 e.stopPropagation();
3726 nextStory();
3727 });
3728
3729 restartIcon.addEventListener('click', (e) => {
3730 e.stopPropagation();
3731 goToStory(0);
3732 });
3733
3734 pauseBtn.addEventListener('click', e => {
3735 e.stopPropagation();
3736 togglePause();
3737 });
3738
3739 shareBtn.addEventListener('click', e => {
3740 e.stopPropagation();
3741 shareStory();
3742 });
3743
3744 // Navegação por clique na tela
3745 storiesContainer.addEventListener('click', (e) => {
3746 const containerWidth = storiesContainer.offsetWidth;
3747 const clickX = e.clientX - storiesContainer.getBoundingClientRect().left;
3748
3749 // Se clicou na metade esquerda
3750 if (clickX < containerWidth / 2) {
3751 prevStory();
3752 }
3753 // Se clicou na metade direita
3754 else if (clickX > containerWidth / 2) {
3755 nextStory();
3756 }
3757 });
3758
3759 // Inicializar
3760 createStorySlides();
3761
3762 // Envia evento de click em links
3763 storiesContainer.addEventListener('click', e => {
3764 if (e.target.classList.contains('a')) {
3765 gtag("event", `web_story_link_click_${storyData.friendlyUrlPath}`);
3766 }
3767 });
3768
3769 const lastPage = storiesContainer.querySelector(".story-slide:last-of-type");
3770
3771 // Observa a mudança das páginas do story
3772 const observer = new MutationObserver((mutationsList) => {
3773 mutationsList.forEach((mutation) => {
3774 if (mutation.type === "attributes" && mutation.attributeName === "active") {
3775 const target = mutation.target;
3776 if (target.tagName.toLowerCase() === "story-slide" && target.hasAttribute("active")) {
3777 trackStoryPageView(target.getAttribute('data-index'));
3778 target === lastPage && gtag("event", 'web_story_complete');
3779 }
3780 }
3781 });
3782 });
3783
3784 const activePage = storiesContainer.querySelector('.story-slide.active');
3785 if (activePage && activePage.getAttribute('data-index') === '0') {
3786 trackStoryPageView(0);
3787 }
3788
3789 const pages = storiesContainer.querySelectorAll(".story-slide");
3790 pages.forEach(page => {
3791 observer.observe(page, { attributes: true, attributeFilter: ["active"] });
3792 });
3793}
3794</#noparse>
3795
3796async function fetchAndLogWebStories() {
3797 const webStoriesCarouselDataList = await getWebStoriesDataSectionFromNews(
3798 "${newsJournalArticle.getResourcePrimKey()}"
3799 );
3800
3801 webStoriesCarouselDataList.forEach((webStoriesCarouselData) => {
3802 const onlyOneWebstory = webStoriesCarouselData.webStoryObjects.length === 1;
3803
3804 if (onlyOneWebstory) {
3805 // renderiza um único story com navegação dentro da notícia
3806 const carouselElement = document.querySelector(`#` + webStoriesCarouselData.webStoryGroupId);
3807 carouselElement.style.alignItems = 'center';
3808 <#noparse>
3809 carouselElement.innerHTML =
3810 ` <div class="stories-container" id="stories-container-${webStoriesCarouselData.webStoryGroupId}">
3811 <div class="header-container">
3812 <div class="story-header">
3813 <div class="progress-bars"></div>
3814 </div>
3815 <div class="action-buttons">
3816 <button class="action-btn pause pause-btn"></button>
3817 <button class="action-btn share share-btn"></button>
3818 </div>
3819 </div>
3820
3821 <!-- Os stories serão inseridas aqui via JavaScript -->
3822
3823 <div class="nav-area-container">
3824 <div class="nav-area prev">
3825 <svg class="arrow disabled" width="32" height="32" viewBox="0 0 34 33" fill="none"
3826 xmlns="http://www.w3.org/2000/svg">
3827 <g>
3828 <path
3829 d="M1 16.5C1 7.66344 8.16344 0.5 17 0.5C25.8366 0.5 33 7.66344 33 16.5C33 25.3366 25.8366 32.5 17 32.5C8.16344 32.5 1 25.3366 1 16.5Z"
3830 stroke="#959595" />
3831 <path d="M19 21.5L14 16.5L19 11.5" stroke="#525252" stroke-width="1.5" stroke-linecap="round"
3832 stroke-linejoin="round" />
3833 </g>
3834 </svg>
3835 </div>
3836 <div class="nav-area next">
3837 <svg class="arrow" width="32" height="32" viewBox="0 0 34 33" fill="none" xmlns="http://www.w3.org/2000/svg">
3838 <path
3839 d="M1 16.5C1 7.66344 8.16344 0.5 17 0.5C25.8366 0.5 33 7.66344 33 16.5C33 25.3366 25.8366 32.5 17 32.5C8.16344 32.5 1 25.3366 1 16.5Z"
3840 stroke="#008542" />
3841 <path d="M15 11.5L20 16.5L15 21.5" stroke="#008542" stroke-width="1.5" stroke-linecap="round"
3842 stroke-linejoin="round" />
3843 </svg>
3844 <svg class="restart-icon hidden" width="32" height="32" viewBox="0 0 34 33" fill="none" xmlns="http://www.w3.org/2000/svg">
3845 <path
3846 d="M1 16.5C1 7.66344 8.16344 0.5 17 0.5C25.8366 0.5 33 7.66344 33 16.5C33 25.3366 25.8366 32.5 17 32.5C8.16344 32.5 1 25.3366 1 16.5Z"
3847 stroke="#008542" />
3848 <path
3849 d="M13.9875 14.7313H10.9875M10.9875 14.7313V11.7313M10.9875 14.7313L13.1125 12.6125C13.8816 11.8429 14.8616 11.3186 15.9286 11.106C16.9956 10.8934 18.1017 11.0021 19.1069 11.4182C20.1122 11.8344 20.9714 12.5393 21.576 13.4439C22.1805 14.3485 22.5032 15.412 22.5032 16.5C22.5032 17.588 22.1805 18.6515 21.576 19.5561C20.9714 20.4607 20.1122 21.1656 19.1069 21.5818C18.1017 21.9979 16.9956 22.1066 15.9286 21.894C14.8616 21.6814 13.8816 21.1571 13.1125 20.3875"
3850 stroke="#008542" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
3851 </svg>
3852 </div>
3853 </div>
3854 </div>
3855 `;
3856 </#noparse>
3857 const singleWebstoryData = webStoriesCarouselData.webStoryObjects[0];
3858 scriptForStoryInNews(singleWebstoryData, webStoriesCarouselData.webStoryGroupId);
3859 } else {
3860 // Carrossel
3861 renderItems(
3862 webStoriesCarouselData.webStoryGroupId,
3863 webStoriesCarouselData.webStoryObjects
3864 );
3865 }
3866 });
3867}
3868
3869fetchAndLogWebStories();
3870
3871</script>
3872
3873 <script>
3874 <#assign configureLinkTab = "configureLinkTab_" + randomNumber(5)>
3875
3876 function ${configureLinkTab}() {
3877 const root = document.querySelector(".ptb-news__read-news");
3878 const newsContentElement = root.querySelector(".news-content div:first-child");
3879 const pList = newsContentElement.querySelectorAll("p");
3880 pList.forEach((pElement) => {
3881 const cont = pElement.innerHTML.trim();
3882 if (cont == "" || cont == " ") {
3883 newsContentElement?.removeChild(pElement);
3884 }
3885 });
3886 }
3887
3888 ${configureLinkTab}();
3889
3890 <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" >
3891
3892 function resizeMediaInfographic() {
3893 if (window.innerWidth > 1024) {
3894 const contents = document.querySelectorAll(".ptb-news__read-news .news-content p");
3895 contents.forEach((content) => {
3896 content.querySelector("img") && (content.style.gridColumn = "2 / 12");
3897 });
3898 }
3899 else {
3900 const contents = document.querySelectorAll(".ptb-news__read-news .news-content p");
3901 contents.forEach((content) => {
3902 content.querySelector("img") && (content.style.gridColumn = "");
3903 });
3904
3905 }
3906 }
3907 resizeMediaInfographic();
3908 </#if>
3909
3910
3911
3912 document.addEventListener("DOMContentLoaded", () => {
3913 const headers = document.querySelectorAll(".ptb-news__read-news .news-content h1, .ptb-news__read-news .news-content h2, .ptb-news__read-news .news-content h3, .ptb-news__read-news .news-content h4");
3914
3915 headers.forEach((header) => {
3916
3917 const currentLevel = parseInt(header.tagName.charAt(1));
3918
3919 if (currentLevel >= 1 && currentLevel <= 5) {
3920
3921 const newLevel = currentLevel + 1;
3922 const newTagName = "h" + newLevel;
3923
3924 // Criar a nova tag e transferir o conteúdo
3925 const newHeader = document.createElement(newTagName);
3926 newHeader.innerHTML = header.innerHTML;
3927
3928 // Substituir a tag antiga pela nova
3929 header.parentNode.replaceChild(newHeader, header);
3930 }
3931 });
3932
3933 <#assign typeOfNews = getFirstCategoryOfVocabulary(assetEntry, typeOfNewsVocabulary) />
3934
3935 <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" >
3936 resizeMediaInfographic();
3937 window.addEventListener("resize", resizeMediaInfographic);
3938 </#if>
3939 });
3940
3941 AUI().ready(()=>{
3942 const audiosContainer = document.querySelectorAll(".ptb-news__read-news .news-content .audio-content");
3943 const audioTemplate = document.querySelector(".ptb-news__read-news .news-content .audio-template");
3944
3945 audiosContainer.forEach((audioContainer)=>{
3946
3947 const audio = audioContainer.querySelector("audio");
3948 const audioInterface = audioTemplate.cloneNode(true);
3949
3950 const sondwave = audioInterface.querySelector(".audio-sondwave");
3951 const linesDesktop = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-desktop line");
3952 const linesMobile = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-mobile line");
3953
3954 const playPauseButtonAudioInterface = audioInterface.querySelector(".audio-button-play");
3955
3956 playPauseButtonAudioInterface.addEventListener("click", ()=>{
3957 if(audioInterface.classList.contains("audio-play")) {
3958 audioInterface.classList.replace("audio-play", "audio-pause");
3959 audio.pause();
3960 }
3961 else {
3962
3963 audiosContainer.forEach((audioContainer)=>{
3964 const otherAudio = audioContainer.querySelector("audio");
3965 const otherAudioInterface = audioContainer.querySelector(".audio-button-play");
3966 !otherAudio.paused && otherAudioInterface.click();
3967 });
3968
3969 audioInterface.classList.replace("audio-pause", "audio-play");
3970 audio.play();
3971 }
3972 });
3973
3974 const audioMuteButton = audioInterface.querySelector(".audio-button-mute");
3975
3976 audioMuteButton.addEventListener("click", ()=>{
3977 if(audioInterface.classList.contains("audio-unmuted")) {
3978 audioInterface.classList.replace("audio-unmuted", "audio-muted");
3979 audio.muted = true;
3980 }
3981 else {
3982 audioInterface.classList.replace("audio-muted", "audio-unmuted");
3983 audio.muted = false;
3984 }
3985 });
3986
3987 const audioTime = audioInterface.querySelector(".audio-time");
3988 audioTime.textContent = Math.floor(audio.duration / 60) + ":" + Math.floor(audio.duration % 60);
3989
3990
3991 audio.addEventListener("timeupdate", ()=>{
3992 let minutes = Math.floor((audio.duration - audio.currentTime) / 60);
3993 let seconds = Math.floor((audio.duration - audio.currentTime) % 60);
3994
3995 minutes = minutes < 10? "0" + minutes : minutes;
3996 seconds = seconds < 10? "0" + seconds : seconds;
3997
3998 audioTime.textContent = minutes + ":" + seconds;
3999
4000 const progress = (audio.currentTime / audio.duration) * 100;
4001
4002 linesDesktop.forEach(function(line, index) {
4003 const lineProgress = (index / linesDesktop.length) * 100;
4004 if (progress >= lineProgress) {
4005 !line.classList.contains("line-active") && line.classList.add("line-active");
4006 } else {
4007 line.classList.contains("line-active") && line.classList.remove("line-active");
4008 }
4009 });
4010
4011 linesMobile.forEach(function(line, index) {
4012 const lineProgress = (index / linesMobile.length) * 100;
4013 if (progress >= lineProgress) {
4014 !line.classList.contains("line-active") && line.classList.add("line-active");
4015 } else {
4016 line.classList.contains("line-active") && line.classList.remove("line-active");
4017 }
4018 });
4019 });
4020
4021
4022 sondwave.addEventListener("click", (event)=>{
4023 const distanceLeft = (event.clientX - sondwave.getBoundingClientRect().left)/sondwave.offsetWidth;
4024 audio.currentTime = audio.duration * distanceLeft;
4025 });
4026
4027 audioInterface.style.display = "";
4028 audioContainer.appendChild(audioInterface);
4029 });
4030
4031 });
4032 </script>
4033</#macro>
4034
4035<#macro renderShareAndCopyNews>
4036 <#-- <div class="share_news_container">-->
4037 <div class="social-media-container">
4038
4039 <#assign emailMsg = "Veja o conteúdo do post no link ">
4040 <#if locale == "en_US">
4041 <#assign emailMsg = "See the content of the post in the link ">
4042 </#if>
4043 <a class="social-media-share" href="mailto:?subject=${newsInfo.mainHeadlineOfTheNews}&body=${emailMsg}${newsInfo.url}"
4044 target="_blank">
4045 <svg class="email" width="37" height="36" viewBox="0 0 37 36" fill="none"
4046 xmlns="http://www.w3.org/2000/svg">
4047 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
4048 <path d="M24.9231 12H11.0769C10.9239 12 10.7772 12.0579 10.669 12.1611C10.5608 12.2642 10.5 12.4041 10.5 12.55V21.9C10.5 22.1917 10.6216 22.4715 10.838 22.6778C11.0543 22.8841 11.3478 23 11.6538 23H24.3462C24.6522 23 24.9457 22.8841 25.162 22.6778C25.3784 22.4715 25.5 22.1917 25.5 21.9V12.55C25.5 12.4041 25.4392 12.2642 25.331 12.1611C25.2228 12.0579 25.0761 12 24.9231 12ZM24.3462 21.9H11.6538V13.8012L17.6106 19.0056C17.7169 19.0984 17.8559 19.1498 18 19.1498C18.1441 19.1498 18.2831 19.0984 18.3894 19.0056L24.3462 13.8012V21.9Z"
4049 fill="#008542"/>
4050 </svg>
4051 <span >send e-mail</span>
4052 </a>
4053
4054 <a class="social-media-share" href="https://www.facebook.com/sharer/sharer.php?u=${newsInfo.url}" target="_blank">
4055 <svg class="facebook" width="37" height="36" viewBox="0 0 37 36" fill="none"
4056 xmlns="http://www.w3.org/2000/svg">
4057 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
4058 <path d="M17.5417 24H20.0341V18.1855H21.9697L22.2879 15.875H20.0341V14.2754C20.0341 13.9199 20.0871 13.6406 20.2462 13.4629C20.4053 13.2598 20.75 13.1582 21.2273 13.1582H22.5V11.1016C22.0227 11.0508 21.3864 11 20.6439 11C19.6894 11 18.947 11.2793 18.3902 11.8125C17.8068 12.3457 17.5417 13.082 17.5417 14.0469V15.875H15.5V18.1855H17.5417V24Z"
4059 fill="#008542"/>
4060 </svg>
4061 <span >Facebook</span>
4062 </a>
4063
4064 <#assign mobileShareButtonId = "mobile-share-" + randomNumber(5)>
4065 <div class="mobile-share" id="${mobileShareButtonId}">
4066 <svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg">
4067 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
4068 <path d="M13.8923 20.5914C15.2136 20.5914 16.2847 19.5151 16.2847 18.1875C16.2847 16.8599 15.2136 15.7837 13.8923 15.7837C12.5711 15.7837 11.5 16.8599 11.5 18.1875C11.5 19.5151 12.5711 20.5914 13.8923 20.5914Z"
4069 fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/>
4070 <path d="M22.2654 26.0001C23.5866 26.0001 24.6577 24.9238 24.6577 23.5962C24.6577 22.2686 23.5866 21.1924 22.2654 21.1924C20.9441 21.1924 19.873 22.2686 19.873 23.5962C19.873 24.9238 20.9441 26.0001 22.2654 26.0001Z"
4071 fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/>
4072 <path d="M22.2654 15.1827C23.5866 15.1827 24.6577 14.1064 24.6577 12.7788C24.6577 11.4512 23.5866 10.375 22.2654 10.375C20.9441 10.375 19.873 11.4512 19.873 12.7788C19.873 14.1064 20.9441 15.1827 22.2654 15.1827Z"
4073 fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/>
4074 <path d="M20.2546 14.0784L15.9036 16.8879" stroke="#008542" stroke-linecap="round"
4075 stroke-linejoin="round"/>
4076 <path d="M15.9036 19.4871L20.2546 22.2966" stroke="#008542" stroke-linecap="round"
4077 stroke-linejoin="round"/>
4078 </svg>
4079 </div>
4080
4081 <a class="social-media-share" href="https://twitter.com/intent/tweet?url=${newsInfo.url}" target="_blank" data-size="large">
4082 <svg class="twitter" width="37" height="36" viewBox="0 0 37 36" fill="none"
4083 xmlns="http://www.w3.org/2000/svg">
4084 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
4085 <path d="M22.7542 12H24.7809L20.3542 17.0933 25.5809 24H21.4742L18.2741 19.8133 14.5941 24H12.5674L17.3141 18.56 12.3008 12H16.5141L19.4208 15.84 22.7542 12ZM22.0342 22.7733H23.1542L15.9008 13.1467H14.6741L22.0342 22.7733Z" fill="#008542"/>
4086 </svg>
4087 <span >twitter</span>
4088 </a>
4089
4090 <a class="social-media-share" href="https://api.whatsapp.com/send?text=${newsInfo.url}" data-action="share/whatsapp/share"
4091 target="_blank">
4092 <svg class="whatsapp" width="37" height="36" viewBox="0 0 37 36" fill="none"
4093 xmlns="http://www.w3.org/2000/svg">
4094 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
4095 <path d="M12.5482 21.3241C11.6166 19.7525 11.2908 17.8949 11.6318 16.1C11.9729 14.3052 12.9573 12.6965 14.4003 11.5761C15.8434 10.4556 17.6457 9.90042 19.4691 10.0147C21.2925 10.129 23.0114 10.9049 24.3033 12.1967C25.5951 13.4886 26.371 15.2075 26.4853 17.0309C26.5996 18.8543 26.0444 20.6566 24.9239 22.0997C23.8035 23.5427 22.1948 24.5271 20.4 24.8682C18.6051 25.2092 16.7475 24.8834 15.1759 23.9518L12.5795 24.687C12.4731 24.7181 12.3603 24.72 12.2529 24.6925C12.1455 24.6651 12.0475 24.6092 11.9692 24.5308C11.8908 24.4525 11.8349 24.3545 11.8075 24.2471C11.78 24.1397 11.7819 24.0269 11.813 23.9205L12.5482 21.3241Z"
4096 fill="#008542"/>
4097 <path d="M20.6917 21C20.0094 21.0017 19.3335 20.8686 18.7029 20.6083C18.0722 20.348 17.4992 19.9656 17.0168 19.4832C16.5344 19.0008 16.152 18.4278 15.8917 17.7971C15.6314 17.1665 15.4983 16.4906 15.5 15.8083C15.5017 15.3281 15.6937 14.8682 16.0338 14.5293C16.374 14.1903 16.8346 14 17.3148 14C17.394 13.9994 17.472 14.0201 17.5404 14.06C17.6089 14.1 17.6653 14.1576 17.7037 14.2269L18.462 15.5491C18.5071 15.6295 18.5303 15.7203 18.5291 15.8124C18.528 15.9046 18.5026 15.9948 18.4556 16.0741L17.8463 17.0917C18.1584 17.7859 18.7141 18.3416 19.4083 18.6537L20.4259 18.0444C20.5052 17.9974 20.5954 17.972 20.6876 17.9709C20.7797 17.9697 20.8705 17.9929 20.9509 18.038L22.2731 18.7963C22.3424 18.8347 22.4 18.8911 22.44 18.9596C22.4799 19.028 22.5006 19.106 22.5 19.1852C22.4983 19.6649 22.3074 20.1245 21.9689 20.4643C21.6303 20.8041 21.1713 20.9966 20.6917 21Z"
4098 fill="white"/>
4099 </svg>
4100 <span >Share to WhatsApp </span>
4101 </a>
4102
4103 <div class="copy-text-container">
4104 <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
4105 <path d="M10.5 10.5H13.5V2.5H5.5V5.5" stroke="#008542" stroke-linecap="round"
4106 stroke-linejoin="round"/>
4107 <path d="M10.5 5.5H2.5V13.5H10.5V5.5Z" stroke="#008542" stroke-linecap="round"
4108 stroke-linejoin="round"/>
4109 </svg>
4110
4111 <#if locale == "pt_BR">
4112 <p class="text">Copiar texto <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> </p>
4113 <#else >
4114 <p class="text">Copy text <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> </p>
4115 </#if>
4116 </div>
4117
4118 </div>
4119
4120 <#if locale == "pt_BR">
4121 <span class="copy-message">Texto copiado!</span>
4122 <#else >
4123 <span class="copy-message">Text copied!</span>
4124 </#if>
4125 <#-- </div>-->
4126</#macro>
4127
4128<#-- ################################################################################################################## -->
4129
4130<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# -->
4131<#macro renderLinks newsInfo>
4132 <#if newsInfo.links?size != 0>
4133 <#--videos "escondidos" que serão unidos a .ptb-news__read-content -->
4134
4135 <div class="ptb-news__links-container d-none ">
4136 <div id="ptb-news__links-identifiers">
4137 <#assign separator = "">
4138 <#list newsInfo.links as link>
4139 ${link.id};
4140 <#assign separator = ";">
4141 </#list>
4142 </div>
4143 <#list newsInfo.links as link>
4144 <#assign link_index = link?index>
4145 <#assign linkUrl = "#">
4146 <#assign target = "_blank">
4147 <#assign linkClass = "">
4148
4149 <div id="ptb-news__link-container-${link_index}">
4150 <#if link.externalLink?has_content>
4151 <#assign linkUrl = link.externalLink>
4152 <#assign target = "_blank">
4153 <#assign linkClass = "external-link">
4154 <#elseif link.pageLink?has_content>
4155 <#assign linkUrl = link.pageLink>
4156 <#assign target = "_self">
4157 <#assign linkClass = "internal-page-link">
4158 <#elseif link.file.mimeType?has_content>
4159 <#assign linkUrl = link.file.url>
4160 <#assign target = "_blank">
4161 <#assign linkClass = "file-link">
4162 </#if>
4163
4164 <#-- PDF icon -->
4165 <#if link.iconType == "Opção78730408" >
4166 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
4167 xmlns="http://www.w3.org/2000/svg">
4168 <path d="M3.752 15.974H4.664C4.912 15.974 5.124 15.954 5.3 15.914C5.476 15.874 5.62 15.806 5.732 15.71C5.852 15.606 5.94 15.466 5.996 15.29C6.052 15.114 6.08 14.894 6.08 14.63C6.08 14.11 5.968 13.758 5.744 13.574C5.528 13.39 5.168 13.298 4.664 13.298H3.752V15.974ZM2 20.654V11.894H4.784C5.856 11.894 6.632 12.122 7.112 12.578C7.6 13.026 7.844 13.698 7.844 14.594C7.844 15.474 7.604 16.158 7.124 16.646C6.652 17.134 5.872 17.378 4.784 17.378H3.752V20.654H2Z"
4169 fill="#008542"/>
4170 <path d="M10.8402 19.142H11.9442C12.2962 19.142 12.6042 19.102 12.8682 19.022C13.1322 18.942 13.3482 18.798 13.5162 18.59C13.6922 18.374 13.8242 18.082 13.9122 17.714C14.0002 17.338 14.0442 16.854 14.0442 16.262C14.0442 15.678 14.0002 15.202 13.9122 14.834C13.8322 14.458 13.7042 14.166 13.5282 13.958C13.3602 13.75 13.1442 13.606 12.8802 13.526C12.6242 13.446 12.3202 13.406 11.9682 13.406H10.8402V19.142ZM9.16016 20.654V11.894H12.1002C12.7642 11.894 13.3322 11.982 13.8042 12.158C14.2762 12.326 14.6602 12.59 14.9562 12.95C15.2602 13.302 15.4802 13.75 15.6162 14.294C15.7602 14.83 15.8322 15.47 15.8322 16.214C15.8322 17.726 15.5362 18.846 14.9442 19.574C14.3522 20.294 13.3882 20.654 12.0522 20.654H9.16016Z"
4171 fill="#008542"/>
4172 <path d="M17.2695 20.654V11.894H22.2735V13.358H18.9735V15.59H21.9015V17.054H18.9735V20.654H17.2695Z"
4173 fill="#008542"/>
4174 <path d="M6.08984 8.24516V1.60376C6.08984 1.44364 6.15211 1.29007 6.26294 1.17684C6.37377 1.06361 6.52408 1 6.68082 1H13.7725M13.7725 1L17.9094 5.22634M13.7725 1L13.7725 5.22634H17.9094M17.9094 5.22634V8.24516"
4175 stroke="#008542" stroke-width="1.5" stroke-linecap="round"
4176 stroke-linejoin="round"/>
4177 </svg>
4178
4179 <#-- JPG icon -->
4180 <#elseif link.iconType == "Opção89889679" >
4181 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
4182 xmlns="http://www.w3.org/2000/svg">
4183 <path d="M2 19.1657C2.248 19.1977 2.504 19.2257 2.768 19.2497C3.032 19.2657 3.284 19.2737 3.524 19.2737C3.844 19.2737 4.112 19.2497 4.328 19.2017C4.544 19.1537 4.72 19.0657 4.856 18.9377C4.992 18.8017 5.088 18.6257 5.144 18.4097C5.208 18.1857 5.24 17.8977 5.24 17.5457V11.8937H6.992V17.5457C6.992 18.6817 6.756 19.5057 6.284 20.0177C5.82 20.5297 5.128 20.7857 4.208 20.7857C3.984 20.7857 3.764 20.7737 3.548 20.7497C3.34 20.7257 3.14 20.6937 2.948 20.6537C2.756 20.6137 2.58 20.5697 2.42 20.5217C2.26 20.4737 2.12 20.4257 2 20.3777V19.1657Z"
4184 fill="#008542"/>
4185 <path d="M10.4203 15.9737H11.3323C11.5803 15.9737 11.7923 15.9537 11.9683 15.9137C12.1443 15.8737 12.2883 15.8057 12.4003 15.7097C12.5203 15.6057 12.6083 15.4657 12.6643 15.2897C12.7203 15.1137 12.7483 14.8937 12.7483 14.6297C12.7483 14.1097 12.6363 13.7577 12.4123 13.5737C12.1963 13.3897 11.8363 13.2977 11.3323 13.2977H10.4203V15.9737ZM8.66834 20.6537V11.8937H11.4523C12.5243 11.8937 13.3003 12.1217 13.7803 12.5777C14.2683 13.0257 14.5123 13.6977 14.5123 14.5937C14.5123 15.4737 14.2723 16.1577 13.7923 16.6457C13.3203 17.1337 12.5403 17.3777 11.4523 17.3777H10.4203V20.6537H8.66834Z"
4186 fill="#008542"/>
4187 <path d="M22.0085 20.2697C21.6405 20.4057 21.2085 20.5257 20.7125 20.6297C20.2245 20.7337 19.7165 20.7857 19.1885 20.7857C18.5005 20.7857 17.9245 20.6897 17.4605 20.4977C17.0045 20.2977 16.6365 20.0097 16.3565 19.6337C16.0845 19.2577 15.8885 18.7977 15.7685 18.2537C15.6485 17.7017 15.5885 17.0777 15.5885 16.3817C15.5885 15.6217 15.6565 14.9537 15.7925 14.3777C15.9285 13.8017 16.1445 13.3217 16.4405 12.9377C16.7365 12.5457 17.1205 12.2537 17.5925 12.0617C18.0645 11.8617 18.6405 11.7617 19.3205 11.7617C19.7845 11.7617 20.2125 11.8017 20.6045 11.8817C21.0045 11.9617 21.3605 12.0577 21.6725 12.1697V13.3937C21.5525 13.3857 21.4125 13.3737 21.2525 13.3577C21.0925 13.3337 20.9205 13.3137 20.7365 13.2977C20.5605 13.2817 20.3765 13.2697 20.1845 13.2617C20.0005 13.2457 19.8205 13.2377 19.6445 13.2377C19.2205 13.2377 18.8605 13.2857 18.5645 13.3817C18.2765 13.4697 18.0405 13.6297 17.8565 13.8617C17.6805 14.0857 17.5485 14.3937 17.4605 14.7857C17.3805 15.1777 17.3405 15.6737 17.3405 16.2737C17.3405 16.8417 17.3765 17.3217 17.4485 17.7137C17.5285 18.0977 17.6485 18.4097 17.8085 18.6497C17.9685 18.8897 18.1765 19.0617 18.4325 19.1657C18.6965 19.2697 19.0125 19.3217 19.3805 19.3217C19.6765 19.3217 20.0245 19.2857 20.4245 19.2137V17.1977H19.1045V15.8897H22.0085V20.2697Z"
4188 fill="#008542"/>
4189 <path d="M6.08984 8.24516V1.60376C6.08984 1.44364 6.15211 1.29007 6.26294 1.17684C6.37377 1.06361 6.52408 1 6.68082 1H13.7725M13.7725 1L17.9094 5.22634M13.7725 1L13.7725 5.22634H17.9094M17.9094 5.22634V8.24516"
4190 stroke="#008542" stroke-width="1.5" stroke-linecap="round"
4191 stroke-linejoin="round"/>
4192 </svg>
4193 <#-- DOC icon -->
4194 <#elseif link.iconType == "Opção15480314" >
4195 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
4196 xmlns="http://www.w3.org/2000/svg">
4197 <path d="M2.68 19.1417H3.784C4.136 19.1417 4.444 19.1017 4.708 19.0217C4.972 18.9417 5.188 18.7977 5.356 18.5897C5.532 18.3737 5.664 18.0817 5.752 17.7137C5.84 17.3377 5.884 16.8537 5.884 16.2617C5.884 15.6777 5.84 15.2017 5.752 14.8337C5.672 14.4577 5.544 14.1657 5.368 13.9577C5.2 13.7497 4.984 13.6057 4.72 13.5257C4.464 13.4457 4.16 13.4057 3.808 13.4057H2.68V19.1417ZM1 20.6537V11.8937H3.94C4.604 11.8937 5.172 11.9817 5.644 12.1577C6.116 12.3257 6.5 12.5897 6.796 12.9497C7.1 13.3017 7.32 13.7497 7.456 14.2937C7.6 14.8297 7.672 15.4697 7.672 16.2137C7.672 17.7257 7.376 18.8457 6.784 19.5737C6.192 20.2937 5.228 20.6537 3.892 20.6537H1Z"
4198 fill="#008542"/>
4199 <path d="M10.7894 20.4977C10.3334 20.3057 9.96138 20.0217 9.67338 19.6457C9.39338 19.2697 9.18937 18.8057 9.06137 18.2537C8.93337 17.6937 8.86938 17.0457 8.86938 16.3097C8.86938 15.5657 8.93337 14.9097 9.06137 14.3417C9.19737 13.7737 9.40938 13.2977 9.69738 12.9137C9.99338 12.5297 10.3694 12.2417 10.8254 12.0497C11.2894 11.8577 11.8494 11.7617 12.5054 11.7617C13.1694 11.7617 13.7294 11.8577 14.1854 12.0497C14.6414 12.2417 15.0094 12.5257 15.2894 12.9017C15.5774 13.2777 15.7854 13.7457 15.9134 14.3057C16.0414 14.8577 16.1054 15.5017 16.1054 16.2377C16.1054 16.9817 16.0374 17.6377 15.9014 18.2057C15.7734 18.7737 15.5614 19.2497 15.2654 19.6337C14.9774 20.0177 14.6014 20.3057 14.1374 20.4977C13.6814 20.6897 13.1254 20.7857 12.4694 20.7857C11.8054 20.7857 11.2454 20.6897 10.7894 20.4977ZM11.0894 18.6737C11.2414 18.9057 11.4334 19.0737 11.6654 19.1777C11.8974 19.2737 12.1694 19.3217 12.4814 19.3217C12.7934 19.3217 13.0654 19.2737 13.2974 19.1777C13.5294 19.0737 13.7214 18.9057 13.8734 18.6737C14.0254 18.4337 14.1374 18.1217 14.2094 17.7377C14.2814 17.3457 14.3174 16.8577 14.3174 16.2737C14.3174 15.6897 14.2814 15.2057 14.2094 14.8217C14.1374 14.4297 14.0254 14.1177 13.8734 13.8857C13.7294 13.6457 13.5414 13.4777 13.3094 13.3817C13.0774 13.2777 12.8054 13.2257 12.4934 13.2257C12.1814 13.2257 11.9094 13.2777 11.6774 13.3817C11.4454 13.4777 11.2534 13.6457 11.1014 13.8857C10.9494 14.1177 10.8374 14.4297 10.7654 14.8217C10.6934 15.2057 10.6574 15.6897 10.6574 16.2737C10.6574 16.8577 10.6934 17.3457 10.7654 17.7377C10.8374 18.1217 10.9454 18.4337 11.0894 18.6737Z"
4200 fill="#008542"/>
4201 <path d="M23.1389 20.3897C22.8349 20.5017 22.4989 20.5937 22.1309 20.6657C21.7709 20.7457 21.3629 20.7857 20.9069 20.7857C20.2189 20.7857 19.6429 20.6897 19.1789 20.4977C18.7229 20.3057 18.3549 20.0257 18.0749 19.6577C17.7949 19.2817 17.5949 18.8177 17.4749 18.2657C17.3629 17.7137 17.3069 17.0777 17.3069 16.3577C17.3069 15.5977 17.3709 14.9297 17.4989 14.3537C17.6269 13.7777 17.8309 13.2977 18.1109 12.9137C18.3909 12.5297 18.7589 12.2417 19.2149 12.0497C19.6709 11.8577 20.2229 11.7617 20.8709 11.7617C21.3029 11.7617 21.6989 11.8017 22.0589 11.8817C22.4269 11.9537 22.7629 12.0457 23.0669 12.1577V13.3817C22.8029 13.3497 22.4949 13.3177 22.1429 13.2857C21.7989 13.2537 21.4829 13.2377 21.1949 13.2377C20.8029 13.2377 20.4709 13.2857 20.1989 13.3817C19.9349 13.4697 19.7189 13.6297 19.5509 13.8617C19.3829 14.0857 19.2629 14.3937 19.1909 14.7857C19.1189 15.1697 19.0829 15.6617 19.0829 16.2617C19.0829 16.8617 19.1189 17.3617 19.1909 17.7617C19.2709 18.1537 19.3949 18.4657 19.5629 18.6977C19.7389 18.9217 19.9669 19.0817 20.2469 19.1777C20.5269 19.2657 20.8709 19.3097 21.2789 19.3097C21.5989 19.3097 21.9309 19.2937 22.2749 19.2617C22.6189 19.2217 22.9069 19.1897 23.1389 19.1657V20.3897Z"
4202 fill="#008542"/>
4203 <path d="M6.08984 8.24516V1.60376C6.08984 1.44364 6.15211 1.29007 6.26294 1.17684C6.37377 1.06361 6.52408 1 6.68082 1H13.7725M13.7725 1L17.9094 5.22634M13.7725 1L13.7725 5.22634H17.9094M17.9094 5.22634V8.24516"
4204 stroke="#008542" stroke-width="1.5" stroke-linecap="round"
4205 stroke-linejoin="round"/>
4206 </svg>
4207 <#-- External link icon -->
4208 <#elseif link.iconType == "Opção43823553" >
4209 <svg width="24" height="24" viewBox="0 0 32 32" fill="none"
4210 xmlns="http://www.w3.org/2000/svg">
4211 <path opacity="0.98"
4212 d="M25.5 15.5001V26.5001C25.5 26.7653 25.3946 27.0197 25.2071 27.2072C25.0196 27.3947 24.7652 27.5001 24.5 27.5001L5.5 27.5001C5.23479 27.5001 4.98043 27.3947 4.79289 27.2072C4.60536 27.0197 4.5 26.7653 4.5 26.5001L4.5 7.50009C4.5 7.23488 4.60536 6.98052 4.79289 6.79299C4.98043 6.60545 5.23478 6.50009 5.5 6.50009L17 6.50009M20.4742 4.7124H27.8988M27.8988 4.7124V12.137M27.8988 4.7124L14.5 18.0001"
4213 stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4214 </svg>
4215 <#-- Internal page link icon -->
4216 <#elseif link.iconType == "Opção64212757" >
4217 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#008542" viewBox="0 0 256 256">
4218 <path d="M137.54,186.36a8,8,0,0,1,0,11.31l-9.94,10A56,56,0,0,1,48.38,128.4L72.5,104.28A56,56,0,0,1,149.31,102a8,8,0,1,1-10.64,12,40,40,0,0,0-54.85,1.63L59.7,139.72a40,40,0,0,0,56.58,56.58l9.94-9.94A8,8,0,0,1,137.54,186.36Zm70.08-138a56.08,56.08,0,0,0-79.22,0l-9.94,9.95a8,8,0,0,0,11.32,11.31l9.94-9.94a40,40,0,0,1,56.58,56.58L172.18,140.4A40,40,0,0,1,117.33,142,8,8,0,1,0,106.69,154a56,56,0,0,0,76.81-2.26l24.12-24.12A56.08,56.08,0,0,0,207.62,48.38Z">
4219 </path>
4220 </svg>
4221 <#-- Download link icon -->
4222 <#elseif link.iconType == "Opção20766606" >
4223 <svg width="24" height="24" viewBox="0 0 32 32" fill="none"
4224 xmlns="http://www.w3.org/2000/svg">
4225 <path d="M10.75 13.75L16 19M16 19L21.25 13.75M16 19V5M27 19V26C27 26.2652 26.8946 26.5196 26.7071 26.7071C26.5196 26.8946 26.2652 27 26 27H6C5.73478 27 5.48043 26.8946 5.29289 26.7071C5.10536 26.5196 5 26.2652 5 26V19"
4226 stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4227 </svg>
4228 </#if>
4229<#if link.title?? && link.title?has_content>
4230 <a href="${linkUrl}" class="link ${linkClass}" target="${target}">${link.title}</a>
4231 </#if>
4232 </div>
4233 </#list>
4234 </div>
4235
4236 <script>
4237 var newsContent_code = document.querySelector(".news-content").innerHTML;
4238
4239 var linksIdentifiers = document.querySelector("#ptb-news__links-identifiers").innerHTML.trim().split(";");
4240 linksIdentifiers.forEach((linkIdentifier, index) => {
4241 const linkIdentifierContent = document.querySelector("#ptb-news__link-container-" + index);
4242 if (linkIdentifierContent) {
4243 const tag = "#[" + linkIdentifier.trim() + "]";
4244 const splitContent = newsContent_code.split(tag);
4245 newsContent_code = splitContent.join(linkIdentifierContent.innerHTML);
4246 //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent);
4247 }
4248 });
4249
4250
4251 var ptb_news__read_content = document.querySelector(".news-content");
4252 ptb_news__read_content.innerHTML = newsContent_code;
4253
4254 const links_ptb_news = document.querySelectorAll(".news-content a");
4255 links_ptb_news.forEach((link) => {
4256 link.classList.add("link-ptb-news");
4257 });
4258
4259 </script>
4260
4261 <style>
4262 .ptb-news__read-news .ptb-news__link a {
4263 font-family: var(--font-family-base);
4264 font-style: var(--font-style-normal, normal);
4265 font-weight: var(--font-weight-bold, 700);
4266 font-size: var(--font-size-xxs, 16px);
4267 line-height: var(--line-height-xl, 160%);
4268 text-decoration-line: var(--text-decoration-underline, underline);
4269 color: #008542;
4270 }
4271
4272 body.high-contrast-active .ptb-news__read-news .ptb-news__link a {
4273 color: #E4F7E8;
4274 }
4275
4276 .ptb-news__read-news .news-content .link {
4277 font-family: var(--font-family-base);
4278 font-style: var(--font-style-normal, normal);
4279 font-weight: var(--font-weight-bold, 700);
4280 font-size: var(--font-size-xs, 18px);
4281 line-height: var(--line-height-xl, 160%);
4282
4283 text-decoration-line: var(--text-decoration-underline, underline);
4284 color: #008542;
4285 }
4286
4287 body.high-contrast-active .ptb-news__read-news .news-content .link {
4288 color: #E4F7E8;
4289 }
4290
4291 body.high-contrast-active .ptb-news__read-news .news-content svg path {
4292 stroke: var(--color-neutral-500, #D7D7D7);
4293 fill: rgba(255, 255, 255, 0.32);
4294 }
4295
4296 .ptb-news__read-news .news-content .ptb-link__wrapper {
4297 display: flex;
4298 flex-direction: column;
4299 gap: 0;
4300 margin-top: -24px;
4301 }
4302
4303 .ptb-news__read-news .news-content .ptb-link__wrapper svg {
4304 margin-right: var(--space-sm, 16px);
4305 }
4306
4307 .ptb-news__read-news .news-content .ptb-link__wrapper .first {
4308 gap: 0 !important;
4309 }
4310
4311 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
4312 .ptb-news__read-news .news-content .link {
4313 font-size: var(--font-size-xxs, 16px);
4314 }
4315 }
4316 </style>
4317 </#if>
4318</#macro>
4319
4320<#-- ################################################################################################################## -->
4321
4322<#-- ################################################################################################################## -->
4323
4324<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# -->
4325<#macro renderCite>
4326 <div class="ptb-news__cite-container">
4327 <div class="ptb-news__cite-container-breakpoint breakpoint">
4328 <div class="ptb-news__cite-container-col col-1-12 md-col-1-8 sm-col-1-4">
4329 <div class="ptb-news__cite-title">
4330 <#if locale?lower_case == "pt_br">
4331 Notas
4332 <#else>
4333 Notes
4334 </#if>
4335 </div>
4336
4337 <div class="ptb-news__cites-elements">
4338 </div>
4339 </div>
4340 </div>
4341 </div>
4342
4343 <script>
4344 function positionCitesText(parentNodeCitesText) {
4345
4346 parentNodeCitesText.forEach((parentNodeCiteText)=>{
4347 if(window.innerWidth > 1024) {
4348 parentNodeCiteText.style.display="";
4349 parentNodeCiteText.style.gridColumnStart = "11";
4350 parentNodeCiteText.style.gridColumnEnd = "13";
4351 }
4352 else {
4353 parentNodeCiteText.style.display="none";
4354 parentNodeCiteText.style.gridColumnStart = "";
4355 parentNodeCiteText.style.gridColumnEnd = "";
4356 }
4357 });
4358 }
4359
4360 function addCitesTextMobile(citesText) {
4361 const citesContainer = document.querySelector(".ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements");
4362
4363 if(citesContainer.children.length === 0) {
4364 citesContainer && citesText.forEach((citeText)=>{
4365 citesContainer.appendChild(citeText.cloneNode(true));
4366 });
4367 }
4368 }
4369
4370 const citesText = document.querySelectorAll(".news-content cite");
4371
4372 if (citesText.length > 0) {
4373 const parentNodeCitesText = [...citesText].map((citeText)=>citeText.parentNode);
4374 positionCitesText(parentNodeCitesText);
4375 addCitesTextMobile(citesText);
4376 }
4377 else {
4378 const citesContainer = document.querySelector(".ptb-news__cite-container");
4379 citesContainer && (citesContainer.style.display="none");
4380 }
4381
4382 document.addEventListener('DOMContentLoaded', ()=>{
4383
4384 const citesText = document.querySelectorAll(".news-content cite");
4385
4386 if (citesText.length > 0) {
4387 const parentNodeCitesText = [...citesText].map((citeText)=>citeText.parentNode);
4388
4389 positionCitesText(parentNodeCitesText);
4390 addCitesTextMobile(citesText);
4391
4392 window.addEventListener('resize', ()=>{positionCitesText(parentNodeCitesText)});
4393 }
4394 else {
4395 const citesContainer = document.querySelector(".ptb-news__cite-container");
4396 citesContainer && (citesContainer.style.display="none");
4397 }
4398 });
4399
4400 </script>
4401
4402 <style>
4403
4404 .ptb-news__read-news-post cite {
4405 color: var(--color-neutral-800, #373737);
4406 font-family: var(--font-family-base);
4407 font-size: var(--font-size-xxxs, 14px) !important;
4408 font-style: var(--font-style-normal, normal);
4409 font-weight: var(--font-weight-regular, 400);
4410 line-height: var(--line-height-xl, 160%);
4411 }
4412
4413 .ptb-news__read-news-post cite a{
4414 font-size: var(--font-size-xxxs, 14px) !important;
4415 }
4416
4417 body.high-contrast-active .ptb-news__read-news-post cite {
4418 color: var(--text-primary-default, var(--color-neutral-100));
4419 }
4420
4421 .ptb-news__read-news-post .news-content cite,
4422 .ptb-news__read-news-post .ptb-news__cite-container cite {
4423 display: block;
4424 padding-left: var(--space-md);
4425 border-left: var(--border-width-hairline, 1px) solid var(--color-neutral-500, #D7D7D7);
4426 }
4427
4428 @media screen and (min-width: 1025px) {
4429 .ptb-news__read-news-post .ptb-news__cite-container {
4430 display: none;
4431 }
4432 }
4433
4434 @media screen and (max-width: 1025px) {
4435 .ptb-news__read-news .ptb-news__cite-container .link {
4436 text-decoration-line: var(--text-decoration-underline, underline);
4437 color: #008542;
4438 }
4439
4440 body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container .link {
4441 color: #E4F7E8;
4442 }
4443
4444 body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container svg path {
4445 stroke: var(--color-neutral-500, #D7D7D7);
4446 fill: rgba(255, 255, 255, 0.32);
4447 }
4448
4449 .ptb-news__read-news-post .ptb-news__cite-container {
4450 display: grid;
4451 background: var(--background-surface-level-03, #EEE);
4452 }
4453
4454 body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container {
4455 background: var(--background-surface-level-03, #525252);
4456 }
4457
4458 .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col {
4459 padding: var(--space-xxl) 0;
4460 display: flex;
4461 flex-direction: column;
4462 gap: var(--space-lg, 32px);
4463 }
4464
4465 .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements {
4466 display: flex;
4467 flex-direction: column;
4468 gap: var(--space-lg, 32px);
4469 }
4470
4471 .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title {
4472 color: var(--color-neutral-800, #373737);
4473 font-size: var(--font-size-sm, 20px);
4474 font-style: var(--font-style-normal, normal);
4475 font-weight: var(--font-weight-bold, 700);
4476 line-height: var(--line-height-xl, 160%);
4477 }
4478
4479 body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title {
4480 color: var(--text-primary-default, var(--color-neutral-100));
4481 }
4482 }
4483 </style>
4484
4485</#macro>
4486
4487<#-- ################################################################################################################## -->
4488
4489
4490<#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### -->
4491<#macro renderGallery newsInfo>
4492 <#if newsInfo.galleryItems?size == 0>
4493 <#return />
4494 </#if>
4495
4496 <div class="gallery-breakpoint breakpoint">
4497 <div class="gallery col-3-11 md-col-1-8 sm-col-1-4">
4498
4499 <div class="title-container">
4500 <svg class="icon" viewBox="0 0 26 23" fill="none" xmlns="http://www.w3.org/2000/svg">
4501 <path d="M23 22H3C2.46957 22 1.96086 21.7893 1.58579 21.4142C1.21071 21.0391 1 20.5304 1 20V6C1 5.46957 1.21071 4.96086 1.58579 4.58579C1.96086 4.21071 2.46957 4 3 4H7L9 1H17L19 4H23C23.5304 4 24.0391 4.21071 24.4142 4.58579C24.7893 4.96086 25 5.46957 25 6V20C25 20.5304 24.7893 21.0391 24.4142 21.4142C24.0391 21.7893 23.5304 22 23 22Z"
4502 stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4503 <path d="M13 17C15.4853 17 17.5 14.9853 17.5 12.5C17.5 10.0147 15.4853 8 13 8C10.5147 8 8.5 10.0147 8.5 12.5C8.5 14.9853 10.5147 17 13 17Z"
4504 stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4505 </svg>
4506 <p class="title">
4507 <#if locale == "pt_BR"> Galeria de Imagens <#else > Image gallery </#if>
4508 </p>
4509 </div>
4510
4511 <div class="image-container">
4512 <#assign index = 0 />
4513 <#assign index = 0 />
4514 <#list newsInfo.galleryItems as gItem>
4515 <div class="modal-image-fragment" index="${index}">
4516 <div class="modal-image-container" index="${index}">
4517 <div class="modal-image-fragment" index="${index}">
4518 <div class="modal-image-container" index="${index}">
4519 <span class="click-image" ></span>
4520
4521 <div class="image-player-container">
4522 <span class="close-image">
4523 <svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
4524 <path d="M22 -9.61651e-07C34.1503 -4.30546e-07 44 9.84974 44 22C44 34.1503 34.1503 44 22 44C9.84973 44 -1.49276e-06 34.1503 -9.61651e-07 22C-4.30546e-07 9.84973 9.84974 -1.49276e-06 22 -9.61651e-07Z" fill="white"/>
4525 <path d="M26.5 26.5L17.5 17.5M17.5 26.5L26.5 17.5" stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4526 </svg>
4527 </span>
4528 <div class="image-player-session">
4529 <#-- Midias adaptativas de imagem para desktop e mobile -->
4530 <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${gItem.image.fileEntryId}") />
4531 <#assign urlAdaptativeMediaMobile = gItem.image.url/>
4532 <#assign urlAdaptativeMediaDesktop = gItem.image.url/>
4533
4534 <#if fileDataRequest?? && fileDataRequest.adaptedImages?? >
4535 <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages />
4536 <#list dataAdaptativeMedia as data>
4537 <#if data.resolutionName == adaptativeMediaDesktopResolutionName>
4538 <#assign urlAdaptativeMediaDesktop = data.contentUrl/>
4539 </#if>
4540 <#if data.resolutionName == adaptativeMediaMobileResolutionName>
4541 <#assign urlAdaptativeMediaMobile = data.contentUrl/>
4542 </#if>
4543 </#list>
4544 </#if>
4545
4546 <picture >
4547 <source media="(max-width:767px)" srcset="${urlAdaptativeMediaMobile}" >
4548 <img width="274px" height="152px" loading="lazy" src="${urlAdaptativeMediaDesktop}" alt="${gItem.image.alt}"/>
4549 </picture>
4550 </div>
4551 </div>
4552 </div>
4553 </div>
4554 <#assign index = index + 1 />
4555 <#assign index = index + 1 />
4556 </#list>
4557 <div class="control-arrow left-arrow">
4558 <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4559 <path d="M20 26L10 16L20 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4560 </svg>
4561 </div>
4562 <div class="control-arrow right-arrow">
4563 <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4564 <path d="M12 6L22 16L12 26" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4565 </svg>
4566 </div>
4567 <div class="image-bullets">
4568 <#list 0..(newsInfo.galleryItems?size-1) as index>
4569 <div index="${index}" class="bullet"></div>
4570 </#list>
4571 </div>
4572 </div>
4573 <div class="control-arrow left-arrow">
4574 <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4575 <path d="M20 26L10 16L20 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4576 </svg>
4577 </div>
4578 <div class="control-arrow right-arrow">
4579 <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4580 <path d="M12 6L22 16L12 26" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4581 </svg>
4582 </div>
4583 <div class="image-bullets">
4584 <#list 0..(newsInfo.galleryItems?size-1) as index>
4585 <div index="${index}" class="bullet"></div>
4586 </#list>
4587 </div>
4588 </div>
4589 </div>
4590 </div>
4591
4592 <style>
4593
4594 .ptb-news__read-news .gallery {
4595 padding-top: 42px;
4596 }
4597
4598 .ptb-news__read-news .gallery * {
4599 margin: 0;
4600 padding: 0;
4601 }
4602
4603 .ptb-news__read-news .gallery {
4604 display: flex;
4605 gap: var(--space-xl, 40px);
4606 flex-direction: column;
4607 }
4608
4609 .ptb-news__read-news .gallery .control-arrow {
4610 position: fixed;
4611 height: 100%;
4612 align-items: center;
4613 display: flex;
4614 justify-content: center;
4615 display: none;
4616 z-index: 9999;
4617 }
4618
4619 .ptb-news__read-news .gallery .left-arrow {
4620 top: 0;
4621 left: 5vw;
4622 }
4623
4624 .ptb-news__read-news .gallery .right-arrow {
4625 top: 0;
4626 right: 5vw;
4627 }
4628
4629 .ptb-news__read-news .gallery .lefg-arrow svg {
4630 margin-left: 16px !important;
4631 }
4632
4633 .ptb-news__read-news .gallery .right-arrow svg {
4634 margin-right: 16px !important;
4635 }
4636
4637 .ptb-news__read-news .gallery .image-bullets {
4638 display: none;
4639 gap: var(--space-sm, 16px);
4640 position: fixed;
4641 left: 0;
4642 bottom: calc(10vh + 24px);
4643 width: 100vw;
4644 z-index: 9999;
4645 justify-content: center;
4646 }
4647
4648 .ptb-news__read-news .gallery .image-bullets .bullet {
4649 width: var(--size-xs, 16px);
4650 height: var(--size-xs, 16px);
4651 border-radius: 50%;
4652 border: 1px solid var(--color-neutral-100, #FFFFFF);
4653 z-index: 9999;
4654 }
4655
4656 .ptb-news__read-news .gallery .image-bullets .bullet.current-item {
4657 background: var(--color-neutral-100, #FFFFFF);
4658 }
4659
4660 .ptb-news__read-news .gallery .control-arrow {
4661 position: fixed;
4662 height: 100%;
4663 align-items: center;
4664 display: flex;
4665 justify-content: center;
4666 display: none;
4667 z-index: 9999;
4668 }
4669
4670 .ptb-news__read-news .gallery .left-arrow {
4671 top: 0;
4672 left: 5vw;
4673 }
4674
4675 .ptb-news__read-news .gallery .right-arrow {
4676 top: 0;
4677 right: 5vw;
4678 }
4679
4680 .ptb-news__read-news .gallery .lefg-arrow svg {
4681 margin-left: 16px !important;
4682 }
4683
4684 .ptb-news__read-news .gallery .right-arrow svg {
4685 margin-right: 16px !important;
4686 }
4687
4688 .ptb-news__read-news .gallery .image-bullets {
4689 display: none;
4690 gap: var(--space-sm, 16px);
4691 position: fixed;
4692 left: 0;
4693 bottom: calc(10vh + 24px);
4694 width: 100vw;
4695 z-index: 9999;
4696 justify-content: center;
4697 }
4698
4699 .ptb-news__read-news .gallery .image-bullets .bullet {
4700 width: var(--size-xs, 16px);
4701 height: var(--size-xs, 16px);
4702 border-radius: 50%;
4703 border: 1px solid var(--color-neutral-100, #FFFFFF);
4704 z-index: 9999;
4705 }
4706
4707 .ptb-news__read-news .gallery .image-bullets .bullet.current-item {
4708 background: var(--color-neutral-100, #FFFFFF);
4709 }
4710
4711 .ptb-news__read-news .gallery .title-container {
4712 display: flex;
4713 align-items: center;
4714 gap: var(--space-sm, 16px);
4715 }
4716
4717 .ptb-news__read-news .gallery .title-container svg {
4718 width: var(--size-md, 24px);
4719 height: 21px;
4720 }
4721
4722 .ptb-news__read-news .gallery .title-container .title {
4723 color: var(--color-neutral-800, #373737);
4724 font-family: var(--font-family-base);
4725 font-size: var(--font-size-lg);
4726 font-style: var(--font-style-normal);
4727 font-weight: var(--font-weight-bold);
4728 line-height: var(--line-height-md);
4729 }
4730
4731 body.high-contrast-active .ptb-news__read-news .gallery .title-container .title {
4732 color: var(--color-neutral-100);
4733 }
4734
4735 .ptb-news__read-news .gallery .image-container {
4736 display: flex;
4737 gap: var(--space-sm, 16px);
4738 flex-wrap: wrap;
4739 }
4740
4741 .ptb-news__read-news .gallery .image-container .modal-image-fragment {
4742 width: inherit;
4743 height: inherit;
4744 max-height: calc(100vw/2);
4745 padding: 0;
4746 margin: 0;
4747 overflow: hidden;
4748 }
4749
4750 .ptb-news__read-news .gallery .image-container .modal-image-fragment * {
4751 box-sizing: border-box;
4752 margin: 0;
4753 padding: 0;
4754 }
4755
4756 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container {
4757 width: 100%;
4758 height: inherit;
4759 display: flex;
4760 justify-content: center;
4761 align-items: center;
4762 cursor: pointer;
4763 position: relative;
4764 }
4765
4766 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing {
4767 position: fixed;
4768 top: 0;
4769 left: 0;
4770 width: 100vw !important;
4771 height: 100vh !important;
4772 z-index: 9999 !important;
4773 background-color: rgba(0, 0, 0, 0.75);
4774 max-height: 100vh;
4775 }
4776
4777 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .click-image {
4778 height: 100%;
4779 width: 100%;
4780 position: absolute;
4781 z-index: 3;
4782 }
4783
4784 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container {
4785 width: 100%;
4786 height: 100%;
4787 }
4788
4789 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing {
4790 position: relative;
4791 width: 90vw !important;
4792 height: 80vh !important;
4793 z-index: 9999 !important;
4794 background-color: rgba(0, 0, 0, 0.75);
4795 border-radius: var(--border-radius-card);
4796 }
4797
4798 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image {
4799 display: none;
4800 position: absolute;
4801 top: 0;
4802 right: 0;
4803 transform: translate(100%, -100%);
4804 z-index: 99999;
4805 }
4806
4807 body.high-contrast-active .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image path:nth-child(1) {
4808 fill: var(--background-Surface-level-01, #010101);
4809 }
4810
4811 body.high-contrast-active .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image path:nth-child(2) {
4812 stroke: #E4F7E8;
4813 }
4814
4815 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image.image-active {
4816 display: block;
4817 }
4818
4819 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .image-player-session {
4820 width: 100%;
4821 height: 100%;
4822 }
4823
4824 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session {
4825 width: 90vw !important;
4826 height: 80vh !important;
4827 z-index: 9999 !important;
4828 background-color: rgba(0, 0, 0, 0.75);
4829 border-radius: var(--border-radius-card);
4830 overflow: hidden;
4831 }
4832
4833 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .image-player-session img {
4834 object-fit: cover;
4835 }
4836
4837 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session img {
4838 width: 100%;
4839 height: 100%;
4840 margin-left: 0 !important;
4841 max-height: 100vh;
4842 }
4843
4844 .ptb-news__read-news .gallery .image-container img {
4845 width: 274px;
4846 height: 152px;
4847 border-radius: var(--border-radius-md, 8px);
4848 cursor: pointer;
4849 }
4850
4851 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
4852
4853 .ptb-news__read-news .gallery {
4854 padding-top: var(--space-xl, 40px);
4855 }
4856
4857 .ptb-news__read-news .gallery .image-container {
4858 gap: var(--space-xxs, 8px);
4859 }
4860
4861 .ptb-news__read-news .gallery .image-container img {
4862 width: 296px;
4863 height: 180px;
4864 }
4865
4866 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing .image-player-container.image-playing {
4867 transform: rotate(90deg);
4868 transform-origin: center;
4869 width: 80vh !important;
4870 height: 90vw !important;
4871 }
4872
4873 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing .image-player-container.image-playing img{
4874 cursor: pointer;
4875 }
4876
4877 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session {
4878 width: 80vh !important;
4879 height: 90vw !important;
4880 }
4881
4882 .ptb-news__read-news .gallery .lefg-arrow svg {
4883 margin-left: 4px !important;
4884 }
4885
4886 .ptb-news__read-news .gallery .right-arrow svg {
4887 margin-right: 4px !important;
4888 }
4889
4890 .ptb-news__read-news .gallery .image-bullets {
4891 gap: 14px;
4892 }
4893
4894 .ptb-news__read-news .gallery .image-bullets .bullet {
4895 width: var(--size-xxs, 12px);
4896 height: var(--size-xxs, 12px);
4897 }
4898
4899 .ptb-news__read-news .gallery .lefg-arrow svg {
4900 margin-left: 4px !important;
4901 }
4902
4903 .ptb-news__read-news .gallery .right-arrow svg {
4904 margin-right: 4px !important;
4905 }
4906
4907 .ptb-news__read-news .gallery .image-bullets {
4908 gap: 14px;
4909 }
4910
4911 .ptb-news__read-news .gallery .image-bullets .bullet {
4912 width: var(--size-xxs, 12px);
4913 height: var(--size-xxs, 12px);
4914 }
4915 }
4916
4917 </style>
4918
4919 <script>
4920
4921
4922 const allModalImagesFragment = document.querySelectorAll(".ptb-news__read-news .gallery .modal-image-fragment");
4923 const totalItems = allModalImagesFragment.length;
4924 const bulletsContainer = document.querySelector(".ptb-news__read-news .gallery .image-bullets");
4925 const bullets = bulletsContainer.querySelectorAll(".bullet");
4926 let currentItem = 0;
4927 const nextImage = document.querySelector(".ptb-news__read-news .gallery .right-arrow");
4928 const previousImage = document.querySelector(".ptb-news__read-news .gallery .left-arrow");
4929
4930 const stopImage = (getImageClick, imagePlayerContainer, imageContainer, closeImage) => {
4931 getImageClick.classList.remove('image-playing');
4932 imagePlayerContainer.classList.remove('image-playing');
4933 imageContainer.classList.remove('image-playing');
4934
4935 const currentBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + currentItem + '"]')
4936 currentBullet && currentBullet.classList.remove('current-item');
4937
4938 closeImage.classList.remove('image-active');
4939
4940 document.querySelector("body").style.overflow = 'initial';
4941 [nextImage, previousImage].forEach(item => {
4942 item.style.display = "none";
4943 });
4944 bulletsContainer.style.display = "none";
4945 }
4946
4947 const playImage = (index, getImageClick, imagePlayerContainer, imageContainer, closeImage) => {
4948 getImageClick.classList.add('image-playing');
4949 imagePlayerContainer.classList.add('image-playing');
4950 imageContainer.classList.add('image-playing');
4951 closeImage.classList.add('image-active');
4952
4953
4954 document.querySelector("body").style.overflow = 'hidden';
4955 [nextImage, previousImage].forEach(item => {
4956 item.style.display = "flex";
4957 });
4958 bulletsContainer.style.display = "flex";
4959 bullets[index].classList.add('current-item');
4960 }
4961
4962 const changeImage = (next) => {
4963 if(next == currentItem || next < 0 || next >= totalItems) return;
4964
4965 const getImageClick = allModalImagesFragment[currentItem].querySelector('.click-image');
4966 const imageContainer = allModalImagesFragment[currentItem].querySelector('.modal-image-container');
4967 const imagePlayerContainer = allModalImagesFragment[currentItem].querySelector('.image-player-container');
4968 const image = imagePlayerContainer.querySelector('img');
4969 const closeImage = imagePlayerContainer.querySelector('.close-image');
4970
4971 const currentBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + currentItem + '"]')
4972 currentBullet.classList.remove('current-item');
4973
4974 stopImage(getImageClick, imagePlayerContainer, imageContainer, closeImage);
4975 allModalImagesFragment[next].querySelector('.click-image')?.click();
4976
4977 const nextBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + next + '"]')
4978 nextBullet.classList.add('current-item');
4979 currentItem = next;
4980 }
4981
4982 nextImage.addEventListener('click', () => {
4983 changeImage(currentItem + 1);
4984 });
4985
4986 previousImage.addEventListener('click', () => {
4987 changeImage(currentItem - 1);
4988 });
4989
4990 bullets.forEach((bullet, bulletIndex) => {
4991 bullet.addEventListener('click', (_) => changeImage(bulletIndex)) ;
4992 });
4993
4994 allModalImagesFragment.forEach((modalImageFragment, index)=>{
4995 const totalItems = allModalImagesFragment.length;
4996 const bulletsContainer = document.querySelector(".ptb-news__read-news .gallery .image-bullets");
4997 const bullets = bulletsContainer.querySelectorAll(".bullet");
4998 let currentItem = 0;
4999 const nextImage = document.querySelector(".ptb-news__read-news .gallery .right-arrow");
5000 const previousImage = document.querySelector(".ptb-news__read-news .gallery .left-arrow");
5001
5002 const stopImage = (getImageClick, imagePlayerContainer, imageContainer, closeImage) => {
5003 getImageClick.classList.remove('image-playing');
5004 imagePlayerContainer.classList.remove('image-playing');
5005 imageContainer.classList.remove('image-playing');
5006
5007 const currentBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + currentItem + '"]')
5008 currentBullet && currentBullet.classList.remove('current-item');
5009
5010 closeImage.classList.remove('image-active');
5011
5012 document.querySelector("body").style.overflow = 'initial';
5013 [nextImage, previousImage].forEach(item => {
5014 item.style.display = "none";
5015 });
5016 bulletsContainer.style.display = "none";
5017 }
5018
5019 const playImage = (index, getImageClick, imagePlayerContainer, imageContainer, closeImage) => {
5020 getImageClick.classList.add('image-playing');
5021 imagePlayerContainer.classList.add('image-playing');
5022 imageContainer.classList.add('image-playing');
5023 closeImage.classList.add('image-active');
5024
5025
5026 document.querySelector("body").style.overflow = 'hidden';
5027 [nextImage, previousImage].forEach(item => {
5028 item.style.display = "flex";
5029 });
5030 bulletsContainer.style.display = "flex";
5031 bullets[index].classList.add('current-item');
5032 }
5033
5034 const changeImage = (next) => {
5035 if(next == currentItem || next < 0 || next >= totalItems) return;
5036
5037 const getImageClick = allModalImagesFragment[currentItem].querySelector('.click-image');
5038 const imageContainer = allModalImagesFragment[currentItem].querySelector('.modal-image-container');
5039 const imagePlayerContainer = allModalImagesFragment[currentItem].querySelector('.image-player-container');
5040 const image = imagePlayerContainer.querySelector('img');
5041 const closeImage = imagePlayerContainer.querySelector('.close-image');
5042
5043 const currentBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + currentItem + '"]')
5044 currentBullet.classList.remove('current-item');
5045
5046 stopImage(getImageClick, imagePlayerContainer, imageContainer, closeImage);
5047 allModalImagesFragment[next].querySelector('.click-image')?.click();
5048
5049 const nextBullet = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + next + '"]')
5050 nextBullet.classList.add('current-item');
5051 currentItem = next;
5052 }
5053
5054 nextImage.addEventListener('click', () => {
5055 changeImage(currentItem + 1);
5056 });
5057
5058 previousImage.addEventListener('click', () => {
5059 changeImage(currentItem - 1);
5060 });
5061
5062 bullets.forEach((bullet, bulletIndex) => {
5063 bullet.addEventListener('click', (_) => changeImage(bulletIndex)) ;
5064 });
5065
5066 allModalImagesFragment.forEach((modalImageFragment, index)=>{
5067 const getImageClick = modalImageFragment.querySelector('.click-image');
5068 const imageContainer = modalImageFragment.querySelector('.modal-image-container');
5069 const imagePlayerContainer = modalImageFragment.querySelector('.image-player-container');
5070
5071 const image = imagePlayerContainer.querySelector('img');
5072 const closeImage = imagePlayerContainer.querySelector('.close-image');
5073 const body = document.body;
5074
5075 const toTopButton = document.querySelector(".fragment_88038 .petro-button");
5076
5077 getImageClick.addEventListener('click', () => {
5078 if (document.body.classList.contains('has-edit-mode-menu')) {
5079 return;
5080 }
5081 currentItem = index;
5082 currentItem = index;
5083 if (imagePlayerContainer.classList.contains('image-playing')) {
5084 toTopButton && (toTopButton.style.zIndex = "");
5085 stopImage(getImageClick, imagePlayerContainer, imageContainer, closeImagegetImageClick, imagePlayerContainer, imageContainer, closeImage);
5086 } else {
5087 playImage(index, getImageClick, imagePlayerContainer, imageContainer, closeImageindex, getImageClick, imagePlayerContainer, imageContainer, closeImage);
5088 toTopButton && (toTopButton.style.zIndex = "1");
5089 }
5090 })
5091
5092 closeImage.addEventListener('click', () => {
5093 if (imagePlayerContainer.classList.contains('image-playing')) {
5094 toTopButton && (toTopButton.style.zIndex = "");
5095 stopImage(getImageClick, imagePlayerContainer, imageContainer, closeImage);
5096 const bulletToClose = document.querySelector('.ptb-news__read-news .gallery .image-bullets .bullet[index="' + index + '"]')
5097 bulletToClose?.classList.remove('current-item');
5098 }
5099 })
5100 });
5101 </script>
5102
5103</#macro>
5104
5105
5106<#-- ################################################################################################################## -->
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120 <#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### -->
5121<#macro renderQuotes newsInfo>
5122 <#if newsInfo.quotes?size != 0>
5123 <#--quotes "escondidas" que serão unidas a .ptb-news__read-content -->
5124
5125 <div class="ptb-news__quotes-container d-none ">
5126 <div id="ptb-news__quotes-identifiers">
5127 <#assign separator = "">
5128 <#list newsInfo.quotes as quote>
5129 ${quote.id};
5130 <#assign separator = ";">
5131 </#list>
5132 </div>
5133 <#list newsInfo.quotes as quote>
5134 <#assign quotes_index = quote?index>
5135 <div id="ptb-news__quotes-container-${quote_index}">
5136 <#assign noAuthorWrapper = !((quote.image.url?? && quote.image.url?has_content) || (quote.author?has_content)) />
5137 <div class="quote <#if noAuthorWrapper>no-author-wrapper</#if>">
5138 <div class="text-wrapper">
5139 <blockquote class="text">${quote.content}</blockquote >
5140 </div>
5141 <#if !noAuthorWrapper>
5142 <div class="author-wrapper">
5143 <#if quote.image.url?? && quote.image.url?has_content>
5144 <#assign imageUrl = "/o/adaptive-media/image/" + quote.image.fileEntryId +"/Thumbnail-300x300/image"/>
5145 <img src="${imageUrl}" loading="lazy" alt="${quote.image.alt}">
5146 </#if>
5147 <#if quote.author?? && quote?has_content>
5148 <p class="author">${quote.author}</p>
5149 </#if>
5150 </div>
5151 </#if>
5152 </div>
5153 </div>
5154 </#list>
5155 </div>
5156
5157 <script>
5158 var newsContent_code = document.querySelector(".news-content").innerHTML;
5159
5160 var quotesIdentifiers = document.querySelector("#ptb-news__quotes-identifiers").innerHTML.trim().split(";");
5161 quotesIdentifiers.forEach((quoteIdentifier, index) => {
5162 const quoteIdentifierContent = document.querySelector("#ptb-news__quotes-container-" + index);
5163 if (quoteIdentifierContent) {
5164 const tag = "#[" + quoteIdentifier.trim() + "]";
5165 const splitContent = newsContent_code.split(tag);
5166 newsContent_code = splitContent.join(quoteIdentifierContent.innerHTML);
5167 //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent);
5168 }
5169 });
5170
5171
5172 var ptb_news__read_content = document.querySelector(".news-content");
5173 ptb_news__read_content.innerHTML = newsContent_code;
5174
5175 </script>
5176
5177 <style>
5178
5179 .ptb-news__read-news .quote {
5180 display: flex;
5181 flex-direction: column;
5182 gap: var(--space-md, 24px);
5183 }
5184
5185 .ptb-news__read-news .quote.no-author-wrapper{
5186 gap: 0;
5187 }
5188
5189 .ptb-news__read-news .quote .text-wrapper {
5190 padding-left: var(--space-xl, 40px);
5191 }
5192
5193 .ptb-news__read-news .quote .text-wrapper .text {
5194 font-style: var(--font-style-italic) !important;
5195 padding-left: var(--space-md, 24px);
5196 margin-bottom: 0;
5197 border-left: 1px solid var(--border-color-mid, #d7d7d7);
5198 font-size: var(--font-size-xxs, 16px);
5199 }
5200
5201 .ptb-news__read-news .quote .author-wrapper {
5202 display: flex;
5203 flex-direction: row;
5204 gap: var(--space-md, 24px);
5205 }
5206
5207 .ptb-news__read-news .news-content .quote .author-wrapper img {
5208 height: var(--size-xxxl, 56px);
5209 width: var(--size-xxxl, 56px);
5210 border-radius: 100px;
5211 border: var(--size-nano, 2px) solid var(--border-color-mid) !important;
5212 }
5213
5214 .ptb-news__read-news .news-content .quote .author-wrapper p {
5215 margin: 0;
5216 align-self: center;
5217 font-size: var(--font-size-xs, 18px);
5218 font-style: var(--font-style-normal, normal);
5219 font-weight: var(--font-weight-bold, 700);
5220 line-height: var(--line-height-xs, 100%);
5221 }
5222
5223 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
5224 .ptb-news__read-news .quote .text-wrapper {
5225 padding-left: 0;
5226 }
5227
5228 .ptb-news__read-news .quote .text-wrapper .text {
5229 font-size: var(--font-size-xxxs, 14px);
5230 }
5231
5232 .ptb-news__read-news .news-content .quote .author-wrapper p {
5233 font-size: var(--font-size-xxs, 16px);
5234 }
5235 }
5236 </style>
5237 </#if>
5238</#macro>
5239
5240
5241
5242
5243<#-- ################################################################################################################## -->
5244
5245
5246
5247
5248
5249
5250
5251
5252<#-- ############# Site de Crise - Notícia - Extrair dados de Notícias ################################################ -->
5253<#--
5254Add elements from the sidebar to define your template. Type "${" to use the
5255autocomplete feature.
5256-->
5257<#function extractFeaturedNewsHeadline fieldList xmlArticle>
5258 <#return getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia")>
5259</#function>
5260
5261<#function extractNewsSummary fieldList xmlArticle>
5262 <#return getFieldValue(fieldList, xmlArticle, "Resumo da notícia")>
5263</#function>
5264
5265<#function extractPublishDate journalArticle>
5266 <#assign lastPublishDate = journalArticle.getModifiedDate()>
5267 <#if journalArticle.getLastPublishDate()??>
5268 <#assign lastPublishDate = journalArticle.getLastPublishDate()>
5269 <#else>
5270 <#assign lastPublishDate = journalArticle.getModifiedDate()>
5271 </#if>
5272 <#return lastPublishDate />
5273</#function>
5274
5275<#-- Seção da imagem de destaque ---------------------------------------------------------------------->
5276<#function extractNewsMedia fieldList xmlArticle fileEntryService>
5277 <#-- Tentando pegar Imagem -->
5278 <#assign mediasGroup = getNodes(getIdFromFieldName(fieldList, "Mídia de destaque da notícia"), xmlArticle) />
5279 <#assign media = {} />
5280 <#list mediasGroup as mediaGroup >
5281 <#assign media = getMediaInfo(fieldList, mediaGroup, "Imagem Destaque", fileEntryService) />
5282 <#assign media = {"imageSrc": media.url, "imageAlt": media.alt, "fileEntryId" : media.fileEntryId} />
5283
5284 <#-- Se não tiver imagem, tentar pegar vídeo -->
5285 <#if !media.imageSrc?has_content>
5286 <#assign youtubeID = getFieldValue(fieldList, mediaGroup, "ID do vídeo do YouTube do vídeo de destaque") />
5287 <#if youtubeID?? && youtubeID?has_content>
5288 <#assign media = {"videoYotubeID": youtubeID} />
5289 <#else>
5290 <#-- Tentar pegar vídeo Interno -->
5291 <#assign internalVideo = getMediaInfo(fieldList, mediaGroup, "Fazer upload de um vídeo de destaque", fileEntryService) />
5292 <#if internalVideo?? && internalVideo?has_content>
5293 <#assign media = {"internalVideo": internalVideo} />
5294 </#if>
5295 </#if>
5296 </#if>
5297
5298 <#assign referenceMediasGroup = getNodes(getIdFromFieldName(fieldList, "Referências"), mediaGroup) />
5299 <#list referenceMediasGroup as referenciaMediaGroup >
5300 <#assign credits = getFieldValue(fieldList, referenceMediasGroup, "Crédito da mídia de destaque da notícia") />
5301 <#assign legend = getFieldValue(fieldList, referenceMediasGroup, "Legenda da mídia de destaque da notícia") />
5302 </#list>
5303
5304 <#assign media = media + {"credits": credits, "legend": legend} />
5305
5306 </#list>
5307
5308 <#return media>
5309</#function>
5310
5311
5312<#--------------------- Renderização de Lista de Cards ----------------------------------------------->
5313
5314<#-- Root Css -> Para poder instanciar dois elementos e não dar confusão no JS -->
5315<#assign rootCss = "card-news-list-container_" + randomNumber(4586) />
5316
5317<#attempt>
5318 <#assign ourEnergyStyles = [] />
5319 <#list ourEnergyVocabulary.getCategories() as ourEnergyCategory >
5320 <#assign shadowColorCategory = "" />
5321 <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor da Sombra")??)>
5322 <#assign categoryShadowColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor da Sombra") />
5323 <#assign shadowColorCategory = categoryShadowColorByService.value />
5324 </#if>
5325
5326 <#assign backgroundColorCategory = "" />
5327 <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor de Fundo")??)>
5328 <#assign categoryBackgroundColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor de Fundo") />
5329 <#assign backgroundColorCategory = categoryBackgroundColorByService.value />
5330 </#if>
5331
5332 <#assign textColorCategory = "" />
5333 <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto")??)>
5334 <#assign categoryTextColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto") />
5335 <#assign textColorCategory = categoryTextColorByService.value />
5336 </#if>
5337
5338 <#assign textColorHighContrastCategory = "" />
5339 <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto em Alto Contraste")??)>
5340 <#assign categoryTextColorHighContrastByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto em Alto Contraste") />
5341 <#assign textColorHighContrastCategory = categoryTextColorHighContrastByService.value />
5342 </#if>
5343
5344 <#assign ourEnergyStyles += [{"titleLocale": ourEnergyCategory.getTitle(locale),"shadowColor": shadowColorCategory, "backgroundColor": backgroundColorCategory, "textColor": textColorCategory, "textColorHighContrast": textColorHighContrastCategory}] />
5345 </#list>
5346
5347 <#recover>
5348 <#assign ourEnergyStyles = [] />
5349
5350</#attempt>
5351
5352<#-- Função para obter a primeira categoria associonada a um Vocabulário o qual está associado a um Jornal Article -->
5353<#function getFirstCategoryTitleLocaleOfVocabulary journalArticle vocabulary >
5354 <#attempt>
5355 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) />
5356
5357 <#list categories as category>
5358 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
5359 <#return category.getTitle(locale)>
5360 </#if>
5361 </#list>
5362
5363 <#return "">
5364
5365 <#recover>
5366 <#return "" />
5367
5368 </#attempt>
5369</#function>
5370
5371<#-- Função para obter os dados de um card no Web Content (Journal Article) -->
5372<#function getDataForCard entry >
5373 <#attempt>
5374 <#assign journalArticle = journalArticleLocalService.getLatestArticle(entry.getClassPK()) />
5375 <#assign ddmStructure = journalArticle.getDDMStructure() />
5376 <#assign fieldList = getFieldListByStructure(ddmStructure) />
5377 <#assign xmlArticle = journalArticle.getDocument().getRootElement() />
5378
5379 <#-- Tentando pegar Imagem -->
5380 <#assign mediasGroup = getNodes(getIdFromFieldName(fieldList, "Mídia de destaque da notícia"), xmlArticle) />
5381 <#assign media = "" />
5382 <#list mediasGroup as mediaGroup >
5383 <#assign media = getMediaInfo(fieldList, mediaGroup, "Imagem Destaque", fileEntryService) />
5384
5385 <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${media.fileEntryId}") />
5386
5387 <#assign urlAdaptativeMediaDesktop = ""/>
5388 <#assign urlAdaptativeMediaMobile = ""/>
5389 <#if media.url?? && media.url?has_content && fileDataRequest?? && fileDataRequest.adaptedImages?? >
5390 <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages />
5391 <#list dataAdaptativeMedia as data>
5392 <#if data.resolutionName == adaptativeMediaDesktopResolutionName>
5393 <#assign urlAdaptativeMediaDesktop = data.contentUrl/>
5394 </#if>
5395 <#if data.resolutionName == adaptativeMediaMobileResolutionName>
5396 <#assign urlAdaptativeMediaMobile = data.contentUrl/>
5397 </#if>
5398 </#list>
5399 </#if>
5400 <#assign media = {"imageSrc": media.url, "imageAlt": media.alt, "imageFileEntryId": media.fileEntryId, "urlAdaptativeMedia": {"mobile": urlAdaptativeMediaMobile, "desktop": urlAdaptativeMediaDesktop}} />
5401
5402 <#-- Se não tiver imagem, tentar pegar vídeo -->
5403 <#if !media.imageSrc?? || !media.imageSrc?has_content>
5404 <#assign youtubeID = getFieldValue(fieldList, mediaGroup, "ID do vídeo do YouTube do vídeo de destaque") />
5405 <#if youtubeID?? && youtubeID?has_content>
5406 <#assign media = {"videoYotubeID": youtubeID} />
5407 <#else>
5408 <#-- Tentar pegar vídeo Interno -->
5409 <#assign internalVideo = getMediaInfo(fieldList, mediaGroup, "Fazer upload de um vídeo de destaque", fileEntryService) />
5410 <#if internalVideo?? && internalVideo?has_content>
5411 <#assign media = {"internalVideo": internalVideo} />
5412 </#if>
5413 </#if>
5414 </#if>
5415 </#list>
5416
5417 <#assign title = getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia") />
5418
5419 <#assign timeRead = getFieldValue(fieldList, xmlArticle, "Tempo de Leitura") />
5420
5421 <#assign ourEnergyCategory = getFirstCategoryTitleLocaleOfVocabulary(entry, ourEnergyVocabulary) />
5422
5423 <#assign typeOfNews = getFirstCategoryTitleLocaleOfVocabulary(entry, typeOfNewsVocabulary) />
5424
5425 <#if themeDisplay.getPortalURL()?contains("webserver")>
5426 <#assign urlNews = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + journalArticle.getUrlTitle()>
5427 <#else>
5428 <#assign urlNews = themeDisplay.getPortalURL() + "/w/" + journalArticle.getUrlTitle()>
5429 </#if>
5430
5431 <#assign cardData = {"media": media, "title": title, "timeRead": timeRead, "ourEnergyCategory": ourEnergyCategory, "typeOfNews": typeOfNews, "urlNews": urlNews} />
5432
5433 <#return cardData>
5434
5435 <#recover>
5436 <#return {} />
5437 </#attempt>
5438
5439 <#-- cardData -> image: url, alt
5440 title
5441 timeRead
5442 ourEnergyCategory
5443 typeOfNews
5444 urlNews
5445 -->
5446</#function>
5447
5448
5449<#-- Macro para renderizar os arrows-->
5450<#macro renderArrows>
5451 <div class="card-news-list-arrows-breakpoint">
5452 <div class="card-news-list-arrows">
5453 <div class="card-news-arrow-left arrow-disable">
5454 <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
5455 <path d="M1 17C1 8.16344 8.16344 1 17 1C25.8366 1 33 8.16344 33 17C33 25.8366 25.8366 33 17 33C8.16344 33 1 25.8366 1 17Z" stroke="#959595"/>
5456 <path d="M22.5 17H11.5M11.5 17L16 12.5M11.5 17L16 21.5" stroke="#525252" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
5457 </svg>
5458 </div>
5459 <div class="card-news-arrow-right">
5460 <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
5461 <path d="M1 17C1 8.16344 8.16344 1 17 1C25.8366 1 33 8.16344 33 17C33 25.8366 25.8366 33 17 33C8.16344 33 1 25.8366 1 17Z" stroke="#008542"/>
5462 <path d="M11.5 17H22.5M22.5 17L18 12.5M22.5 17L18 21.5" stroke="#008542" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
5463 </svg>
5464
5465 </div>
5466 </div>
5467 </div>
5468
5469 <style>
5470
5471 .${rootCss} .card-news-list-arrows-breakpoint {
5472 position: relative;
5473 z-index: 1;
5474 width: 100%;
5475 }
5476
5477 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows {
5478 display: flex;
5479 align-items: flex-start;
5480 justify-self: flex-end;
5481 gap: var(--space-xxs, 8px);
5482 }
5483
5484 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left,
5485 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right {
5486 cursor: pointer;
5487 }
5488
5489 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(1),
5490 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(1) {
5491 fill: rgb(0, 133, 66);
5492 }
5493
5494 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(1),
5495 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(1) {
5496 fill: white;
5497 }
5498
5499 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(2),
5500 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(2) {
5501 stroke: #fff;
5502 }
5503
5504 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(2),
5505 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(2) {
5506 stroke: #010101;
5507 }
5508
5509 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable,
5510 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable {
5511 opacity: 0.4;
5512 cursor: auto;
5513 }
5514
5515 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left path,
5516 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right path {
5517 stroke: rgb(0, 133, 66);
5518 transition: all 300ms ease-in-out;
5519 }
5520
5521 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left path,
5522 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right path {
5523 stroke: rgba(228, 247, 232, 1);
5524 }
5525
5526 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(1),
5527 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(1) {
5528 stroke: rgb(149, 149, 149);
5529 }
5530
5531 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(1),
5532 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(1) {
5533 stroke: rgba(215, 215, 215, 1);
5534 }
5535
5536 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(2),
5537 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(2) {
5538 stroke: rgb(82, 82, 82);
5539 }
5540
5541 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(2),
5542 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(2) {
5543 stroke: rgba(149, 149, 149, 1);
5544 }
5545
5546 @media screen and (min-width: 1440px) {
5547 .${rootCss} .card-news-list-arrows-breakpoint {
5548 width: 100%;
5549 }
5550 }
5551
5552 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
5553
5554 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows {
5555 justify-self: flex-start;
5556 margin-top: var(--space-lg);
5557 }
5558 }
5559
5560 </style>
5561
5562</#macro>
5563
5564
5565<#-- Macro para renderizar um Card -->
5566<#macro renderCard cardData>
5567 <#-- cardData -> image: url, alt
5568 title
5569 timeRead
5570 ourEnergyCategory
5571 typeOfNews
5572 urlNews
5573 -->
5574
5575 <div class="card-news-container">
5576 <a class="news-page-see-more-link card-news-link" href="${cardData.urlNews}"> Link da Notícia ${cardData.title} </a>
5577 <div class="card-news-thumb">
5578 <#assign noImage = "" />
5579 <#if cardData.media.imageSrc?? && cardData.media.imageSrc?has_content>
5580 <#assign imageSrcDesktop = cardData.media.imageSrc />
5581 <#assign imageSrcMobile = cardData.media.imageSrc />
5582 <#if cardData.media.urlAdaptativeMedia?? && cardData.media.urlAdaptativeMedia?has_content>
5583 <#assign imageSrcDesktop = cardData.media.urlAdaptativeMedia.desktop />
5584 <#assign imageSrcMobile = cardData.media.urlAdaptativeMedia.mobile />
5585 </#if>
5586 <picture >
5587 <source media="(max-width:767px)" srcset="${imageSrcMobile}">
5588 <img class="card-news-image" loading="lazy" src="${imageSrcDesktop}" alt="${cardData.media.imageAlt}"/>
5589 </picture>
5590 <#else>
5591 <#if cardData.media.videoYotubeID?? && cardData.media.videoYotubeID?has_content>
5592 <picture >
5593 <source media="(max-width:767px)" srcset="https://img.youtube.com/vi/${cardData.media.videoYotubeID}/mqdefault.jpg">
5594 <img class="card-news-image" loading="lazy" src="https://img.youtube.com/vi/${cardData.media.videoYotubeID}/maxresdefault.jpg" alt="YouTube Thumbnail"/>
5595 </picture>
5596 <#else>
5597 <#if (cardData.media.internalVideo?? && cardData.media.internalVideo.url?has_content) >
5598 <video class="card-news-image" loading="lazy">
5599 <source src="${cardData.media.internalVideo.url}">
5600 Your browser does not support the video tag.
5601 </video>
5602 <#else>
5603 <#assign noImage = "no-image" />
5604 </#if>
5605 </#if>
5606 <svg class="thumb-play-icon" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
5607 <path d="M0 16C0 7.16344 7.16344 0 16 0C24.8366 0 32 7.16344 32 16C32 24.8366 24.8366 32 16 32C7.16344 32 0 24.8366 0 16Z" fill="white" fill-opacity="0.8"/>
5608 <path d="M22.2563 15.5744L13.2625 10.0744C13.1868 10.0277 13.1 10.0021 13.0111 10.0001C12.9221 9.99816 12.8343 10.02 12.7566 10.0633C12.6789 10.1066 12.6141 10.1698 12.569 10.2465C12.5239 10.3232 12.5001 10.4105 12.5 10.4994V21.4994C12.5001 21.5884 12.5239 21.6757 12.569 21.7524C12.6141 21.8291 12.6789 21.8923 12.7566 21.9356C12.8343 21.9789 12.9221 22.0007 13.0111 21.9988C13.1 21.9968 13.1868 21.9712 13.2625 21.9244L22.2563 16.4244C22.3301 16.3808 22.3913 16.3186 22.4338 16.2441C22.4763 16.1696 22.4987 16.0852 22.4987 15.9994C22.4987 15.9137 22.4763 15.8293 22.4338 15.7548C22.3913 15.6803 22.3301 15.6181 22.2563 15.5744Z" fill="#008542"/>
5609 </svg>
5610 </#if>
5611 </div>
5612
5613 <div class="card-news-category-container ${noImage}">
5614 <div data-category="${cardData.ourEnergyCategory}" class="card-news-category paragraph-micro-regular"> ${cardData.ourEnergyCategory} </div>
5615 </div>
5616
5617 <div class="card-news-text-content ${noImage}">
5618 <div class="card-news-title h5"> ${cardData.title} </div>
5619
5620 <div class="card-news-info">
5621 <div class="card-news-type">
5622 <#if getPostTypeImageUrl(POST_TYPES_CATEGORIES, (cardData.typeOfNews)!default(""))?? >
5623 <#assign postTypeIconUrl = getPostTypeImageUrl(POST_TYPES_CATEGORIES, (cardData.typeOfNews)!default("")) />
5624 <img src="${postTypeIconUrl}" loading="lazy" alt="post type icon" />
5625 <div class="card-news-type-text paragraph-micro-regular">${cardData.typeOfNews}</div>
5626 <#else/>
5627 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
5628 <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"/>
5629 </svg>
5630 <div class="card-news-type-text paragraph-micro-regular">Artigo</div>
5631 </#if>
5632 </div>
5633
5634 <#if cardData.timeRead?? && cardData.timeRead?has_content>
5635 <div class="card-news-time-read">
5636 <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">
5637 <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"/>
5638 </svg>
5639
5640 <div class="card-news-time-read-text paragraph-micro-regular">${cardData.timeRead} min</div>
5641 </div>
5642 </#if>
5643 </div>
5644 </div>
5645 </div>
5646</#macro>
5647
5648<style>
5649 .${rootCss} .card-news-container {
5650 width: 300px;
5651 height: 370px;
5652 display: flex;
5653 flex-direction: column;
5654 flex-shrink: 0;
5655 align-items: flex-start;
5656 border-radius: var(--border-radius-lg);
5657 border: var(--border-width-hairline) solid var(--border-card-default, #EEE);
5658 background: var(--background-surface-level-01, #FFF);
5659 box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12);
5660 overflow: hidden;
5661 scroll-snap-align: start;
5662 cursor: pointer;
5663 transition: border 300ms ease-in-out;
5664 text-decoration: none;
5665 position: relative;
5666 }
5667
5668 body.high-contrast-active .${rootCss} .card-news-container {
5669 border: var(--border-width-hairline) solid var(--border-card-default, #525252);
5670 background: var(--background-surface-level-01, #010101);
5671 }
5672
5673 .${rootCss} .card-news-container:hover {
5674 border: var(--border-width-hairline) solid rgb(0, 133, 66);
5675 }
5676
5677 body.high-contrast-active .${rootCss} .card-news-container:hover {
5678 border: var(--border-width-hairline) solid var(--border-card-default, #E4F7E8);
5679 }
5680
5681 .${rootCss} .card-news-container .card-news-link {
5682 position: absolute;
5683 top: 0;
5684 width: 100%;
5685 height: 100%;
5686 z-index: 1;
5687 opacity: 0;
5688 }
5689
5690 .${rootCss} .card-news-container .card-news-thumb {
5691 position: relative;
5692 }
5693
5694 .${rootCss} .card-news-container .card-news-image {
5695 width: 298px;
5696 height: 168px;
5697 object-fit: cover;
5698 }
5699
5700
5701 .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon {
5702 position: absolute;
5703 left: 50%;
5704 top: 50%;
5705 transform: translate(-50%, -50%);
5706 }
5707
5708 body.high-contrast-active .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon path:nth-child(1) {
5709 fill: black;
5710 }
5711
5712 body.high-contrast-active .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon path:nth-child(2) {
5713 fill: white;
5714 }
5715
5716 .${rootCss} .card-news-container .card-news-category-container {
5717 position: relative;
5718 }
5719
5720 .${rootCss} .card-news-container .card-news-category-container .card-news-category {
5721 display: flex;
5722 justify-content: center;
5723 align-items: center;
5724 padding: var(--space-micro) var(--space-xs);
5725 position: absolute;
5726 z-index: 2;
5727 left: var(--space-md);
5728 top: -13px;
5729 border-radius: var(--border-radius-pill);
5730 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);
5731 box-shadow: 0px 2px 6px 0px rgba(0, 178, 169, 0.10);
5732 line-height: var(--line-height-lg, 144%);
5733 color: var(--default-sup-green-water, #006B65);
5734 white-space: nowrap;
5735 }
5736
5737 body.high-contrast-active .${rootCss} .card-news-container .card-news-category-container .card-news-category {
5738 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);
5739 color: var(--default-sup-green-water, #99E0DD);
5740 }
5741
5742 .${rootCss} .card-news-container .card-news-category-container.no-image .card-news-category {
5743 position: relative;
5744 top: 0;
5745 left: 0;
5746 margin-left: var(--space-md);
5747 margin-top: var(--space-md);
5748 }
5749
5750 .${rootCss} .card-news-container .card-news-text-content {
5751 display: flex;
5752 padding: var(--space-lg, 32px) var(--space-md, 24px) var(--space-md, 24px) var(--space-md, 24px);
5753 flex-direction: column;
5754 justify-content: space-between;
5755 align-items: flex-start;
5756 flex: 1 0 0;
5757 align-self: stretch;
5758 }
5759
5760 .${rootCss} .card-news-container .card-news-text-content.no-image {
5761 padding-top: var(--space-sm);
5762 }
5763
5764 .${rootCss} .card-news-container .card-news-text-content .card-news-title {
5765 display: -webkit-box;
5766 -webkit-box-orient: vertical;
5767 -webkit-line-clamp: 4;
5768 align-self: stretch;
5769 overflow: hidden;
5770 color: var(--text-primary-default, #373737);
5771 text-overflow: ellipsis;
5772 margin: 0;
5773 }
5774
5775 body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-title {
5776 color: var(--text-primary-default, #FFF);
5777 }
5778
5779 .${rootCss} .card-news-container .card-news-text-content .card-news-info {
5780 display: flex;
5781 align-items: center;
5782 align-content: center;
5783 gap: var(--space-sm, 16px);
5784 align-self: stretch;
5785 flex-wrap: wrap;
5786 }
5787
5788 .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type,
5789 .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read {
5790 display: flex;
5791 align-items: center;
5792 gap: var(--space-xxs, 8px);
5793 }
5794
5795 body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type path {
5796 stroke: #D7D7D7;
5797 }
5798
5799 .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text,
5800 .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text {
5801 color: var(--text-tertiary-default, #959595);
5802 line-height: var(--line-height-lg, 144%);
5803 }
5804
5805 body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text,
5806 body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text {
5807 color: var(--text-tertiary-default, #EEE);
5808 }
5809
5810 .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-icon-time-read {
5811 transform: translateY(-0.5px);
5812 }
5813
5814 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 {
5815 fill: #D7D7D7;
5816 }
5817</style>
5818
5819<#assign maxNumberOfCards = 9/>
5820<#assign className = "com.liferay.journal.model.JournalArticle" />
5821<#assign classNameId = PortalUtil.getClassNameId(className) />
5822${AssetEntryQuery.setClassNameIds([classNameId]) }
5823${AssetEntryQuery.setEnd(maxNumberOfCards)}
5824
5825<#assign entries = []/>
5826<#assign ourEnergyCategoriesIds = getAllCategoryIdOfVocabulary(assetEntry, ourEnergyVocabulary) />
5827<#list ourEnergyCategoriesIds as ourEnergyCategoryId>
5828 ${AssetEntryQuery.setAllCategoryIds([ourEnergyCategoryId])}
5829 <#assign ents = AssetEntryQueryService.getEntries(AssetEntryQuery) />
5830 <#assign entries = entries + ents />
5831</#list>
5832
5833
5834<#-- Renderizar Lista de cards -->
5835<#if entries?has_content>
5836 <div class="${rootCss}">
5837 <div class="list-of-news-title breakpoint">
5838 <div class="list-of-news-title-col col-1-12 md-col-1-8 sm-col-1-4">
5839 <div class="list-title fragment_85017">
5840 <div class="petro-title">
5841 <h2 id="title" class="display-sm" style="color: var(--color-neutral-800)">
5842 <#if locale?lower_case == "pt_br"> Leia também <#else> Read also </#if>
5843 </h2>
5844 <div class="yellow-bar-container">
5845 <div class="yellow-bar bar-display-sm" style="background-color: var(--color-secondary-medium)"></div>
5846 <@renderArrows />
5847 </div>
5848 </div>
5849 </div>
5850 </div>
5851 </div>
5852
5853 <div class="card-news-list-breakpoint breakpoint">
5854 <div class="card-news-list col-1-12 md-col-1-8 sm-col-1-4">
5855 <#if entries?size gt maxNumberOfCards>
5856 <#assign entries = entries[0..maxNumberOfCards] />
5857 </#if>
5858 <#list entries as entry>
5859 <#if assetEntry.getClassPK() != entry.getClassPK() >
5860 <#assign cardData = getDataForCard(entry) />
5861 <@renderCard cardData/>
5862 </#if>
5863 </#list>
5864 </div>
5865 </div>
5866 </div>
5867</#if>
5868
5869
5870<style>
5871 .portlet {
5872 margin: 0;
5873 }
5874
5875 .${rootCss} {
5876 padding: var(--space-giant, 80px) 0;
5877 background: var(--background-surface-level-01, #FFF);
5878 width: 100%;
5879 position: relative;
5880 font-family: var(--font-family-base, "Petrobras Sans");
5881 display: flex;
5882 flex-direction: column;
5883 gap: var(--space-lg);
5884 }
5885
5886 body.high-contrast-active .${rootCss} {
5887 background: var(--background-surface-level-01, #010101);
5888 }
5889
5890 .${rootCss} .list-of-news-title {
5891 position: relative;
5892 z-index: 1;
5893 }
5894
5895 .${rootCss} body.high-contrast-active .fragment_614685 .petro-title .yellow-bar {
5896 background-color: #FFEEB3 !important;
5897 }
5898
5899 .${rootCss} .petro-title > div:has(> .yellow-bar, > .card-news-list-arrows-breakpoint) {
5900 display: flex;
5901 }
5902
5903 .${rootCss} .card-news-list {
5904 display: flex;
5905 gap: var(--space-lg);
5906 overflow: auto;
5907 position: relative;
5908 z-index: 1;
5909 scroll-snap-type: x mandatory;
5910 scrollbar-width: none;
5911 }
5912
5913 .${rootCss} .card-news-list::-webkit-scrollbar {
5914 display: none;
5915 }
5916
5917 @media screen and (min-width: 1441px) {
5918 .${rootCss} .card-news-list-breakpoint {
5919 width: 100%;
5920 }
5921
5922 .${rootCss} .list-of-news-title {
5923 width: 100%;
5924 }
5925 }
5926
5927 @media screen and (max-width: 1024px) {
5928 .${rootCss} .fragment_614685 {
5929 padding: var(--space-xxl, 56px) 0;
5930 }
5931 }
5932
5933 @media screen and (max-width: 768px) {
5934 .${rootCss} .petro-title > div:has(> .yellow-bar, > .card-news-list-arrows-breakpoint) {
5935 flex-direction: column;
5936 }
5937 }
5938
5939
5940</style>
5941
5942<#list ourEnergyStyles as ourEnergyStyle>
5943 <style>
5944 .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] {
5945 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;
5946 box-shadow: 0px 2px 6px 0px #${ourEnergyStyle.shadowColor} !important;
5947 color: #${ourEnergyStyle.textColor} !important;
5948 }
5949
5950 body.high-contrast-active .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] {
5951 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;
5952 color: #${ourEnergyStyle.textColorHighContrast} !important;
5953 }
5954
5955 </style>
5956</#list>
5957
5958<script>
5959
5960 function disableEnableArrow(arrow, scrollBar, maxDistance, direction)
5961 {
5962 if(direction === "left") {
5963 if (scrollBar.scrollLeft > 0) {
5964 arrow.classList.contains("arrow-disable") && arrow.classList.remove("arrow-disable");
5965 }
5966 else {
5967 !arrow.classList.contains("arrow-disable") && arrow.classList.add("arrow-disable");
5968 }
5969 }
5970 else if(direction === "right") {
5971 if (Math.ceil(scrollBar.scrollLeft + scrollBar.clientWidth) < maxDistance) {
5972 arrow.classList.contains("arrow-disable") && arrow.classList.remove("arrow-disable");
5973 }
5974 else {
5975 !arrow.classList.contains("arrow-disable") && arrow.classList.add("arrow-disable");
5976 }
5977 }
5978 }
5979
5980 function scrollCarousel()
5981 {
5982 const root = document.querySelector(".${rootCss}");
5983 if(root) {
5984 const scrollBar = root.querySelector(".${rootCss} .card-news-list");
5985 const gap = 32;// var(--space-lg);
5986 const stepLength = scrollBar.querySelector(".card-news-container").offsetWidth + gap;
5987 const arrowLeftBtn = root.querySelector(".card-news-arrow-left")
5988 const arrowRightBtn = root.querySelector(".card-news-arrow-right")
5989
5990 let maxDistance = scrollBar.scrollWidth;
5991
5992 arrowLeftBtn.addEventListener('click', () => {
5993 if (scrollBar.scrollLeft > 0) {
5994 scrollBar.scroll({
5995 left: scrollBar.scrollLeft - stepLength,
5996 behavior: "smooth",
5997 });
5998 }
5999 });
6000
6001 arrowRightBtn.addEventListener('click', () => {
6002 if (scrollBar.scrollLeft < maxDistance) {
6003 scrollBar.scroll({
6004 left: scrollBar.scrollLeft + stepLength,
6005 behavior: "smooth",
6006 });
6007 }
6008 });
6009
6010 scrollBar.addEventListener("scroll", ()=>{
6011 disableEnableArrow(arrowLeftBtn, scrollBar, maxDistance, "left");
6012 disableEnableArrow(arrowRightBtn, scrollBar, maxDistance, "right");
6013 });
6014
6015 disableEnableArrow(arrowLeftBtn, scrollBar, maxDistance, "left");
6016 disableEnableArrow(arrowRightBtn, scrollBar, maxDistance, "right");
6017
6018 }
6019 }
6020
6021 document.addEventListener('DOMContentLoaded', scrollCarousel);
6022
6023</script>
6024
6025<style>
6026
6027
6028.ptb-news__read-news .news-content .embed-responsive-youtube::before {
6029 padding-top: 0;
6030}
6031
6032.ptb-news__read-news .news-content .embed-responsive-liferay::before {
6033 padding-top: calc(9/16 *100% - 64px);
6034}
6035
6036.ptb-news__read-news .news-content .thumnail-play-button {
6037}
6038
6039.ptb-news__read-news .news-content .thumnail-play-button {
6040 position: relative;
6041 z-index: 100;
6042 height: 64px;
6043 width: 64px;
6044 background-repeat: no-repeat;
6045 top: calc(50%);
6046 left: calc(50% - 32px);
6047}
6048
6049
6050.ptb-news__read-news .news-content .thumnail-play-button-youtube {
6051 position: absolute;
6052 z-index: 100;
6053 height: 64px;
6054 width: 64px;
6055 background-repeat: no-repeat;
6056 top: calc(50% - 64px);
6057 left: calc(50% - 32px);
6058}
6059
6060.ptb-news__read-news .news-content .thumnail-play-button-liferay {
6061 position: relative;
6062 z-index: 100;
6063 height: 64px;
6064 width: 64px;
6065 top: calc(-50% + 32px);
6066 left: calc(50% - 32px);
6067 background-repeat: no-repeat;
6068}
6069
6070
6071 .ptb-news__read-news .news-content .embed-responsive-youtube img {
6072 width: 100%;
6073 height: 100%;
6074 }
6075
6076</style>
6077
6078 <script>
6079 <#assign createYoutubeThumbnails = "createYoutubeThumbnails_"+ randomNumber(5952) />
6080
6081 function ${createYoutubeThumbnails}(){
6082
6083 const newsContent = document.querySelector(".news-content");
6084
6085 const getYoutubeId = (youtubeUrl) => {
6086
6087 const url = new URL(youtubeUrl);
6088 const splittedPathName = url.pathname.split("/");
6089
6090 if (splittedPathName.length <= 0){
6091 return "";
6092 }
6093
6094 return splittedPathName[splittedPathName.length-1];
6095 };
6096
6097 window.addEventListener("resize", (event) => {
6098 const iframeList = newsContent.querySelectorAll('iframe');
6099 iframeList.forEach((iframe) => {
6100 const src = iframe.src;
6101 if (!src){
6102 return;
6103 }
6104
6105 const isYoutube = src.toLowerCase().includes("youtube");
6106 if (!isYoutube){
6107 return;
6108 }
6109
6110 const iframeParent = iframe.parentNode;
6111
6112 const thumbnail = iframeParent.querySelector("img");
6113 if (thumbnail){
6114 // thumbnail.style="width:" + iframe.width + "px; height: " + iframe.height + "px";
6115 }
6116 });
6117
6118 });
6119
6120 const iframeList = newsContent.querySelectorAll('iframe');
6121 iframeList.forEach((iframe) => {
6122 const src = iframe.src;
6123 if (!src){
6124 return;
6125 }
6126
6127 const isYoutube = src.toLowerCase().includes("youtube");
6128 if (!isYoutube){
6129 return;
6130 }
6131
6132 const iframeParent = iframe.parentNode;
6133
6134 const thumbnail = document.createElement("img");
6135 thumbnail.src = 'https://img.youtube.com/vi/' + getYoutubeId(src) +'/hqdefault.jpg';
6136 thumbnail.alt = "Youtube";
6137 thumbnail.loading = "lazy";
6138 //thumbnail.style="width:" + iframe.width + "px; height: " + iframe.height + "px";
6139
6140 const playButton = document.createElement("div");
6141 playButton.style = 'background-image: url("data:image/svg+xml,%3Csvg width=\'64\' height=\'64\' viewBox=\'0 0 64 64\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cg clip-path=\'url(%23clip0_4118_27800)\'%3E%3Crect width=\'64\' height=\'64\' rx=\'32\' fill=\'white\'/%3E%3Cpath d=\'M39.22 32.52C39.591 32.2726 39.591 31.7274 39.22 31.48L28.9717 24.6478C28.5563 24.3709 28 24.6686 28 25.1678V38.8322C28 39.3314 28.5563 39.6291 28.9717 39.3522L39.22 32.52Z\' fill=\'%23008542\' stroke=\'%23008542\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-linejoin=\'round\'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id=\'clip0_4118_27800\'%3E%3Crect width=\'64\' height=\'64\' rx=\'32\' fill=\'white\'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A")';
6142 playButton.classList.add("thumnail-play-button-youtube");
6143 const children = iframeParent.children;
6144
6145 if (children.length > 0) {
6146 iframeParent.insertBefore(thumbnail, children.firstChild);
6147 iframeParent.insertBefore(playButton, thumbnail);
6148 iframe.classList.add("hide");
6149 iframeParent.classList.add("embed-responsive-youtube");
6150 }
6151
6152 playButton.addEventListener("click", () => {
6153 thumbnail.click();
6154 });
6155
6156 thumbnail.addEventListener("click", () => {
6157 thumbnail.classList.add("hide");
6158 playButton.classList.add("hide");
6159 iframe.classList.remove("hide");
6160 iframeParent.classList.remove("embed-responsive-youtube");
6161 const url = new URL(src);
6162 const searchParams = url.searchParams;
6163 searchParams.set("rel", "0");
6164 //searchParams.set("modestbranding", "0");
6165 //searchParams.set("mute", "0");
6166 //searchParams.set("color", "white");
6167 searchParams.set("controls", "1");
6168 //searchParams.set("playsinline", "1");
6169 //searchParams.set("enablejsapi", "1");
6170 searchParams.set("autoplay", "1");
6171 //searchParams.set("logo", "0");
6172 iframeParent.setAttribute("data-embed-id", url.toString());
6173 iframe.setAttribute("src", url.toString());
6174 });
6175 });
6176
6177 }
6178
6179 ${createYoutubeThumbnails}();
6180
6181 <#assign createLRThumbnails = "createLRThumbnails"+ randomNumber(5952) />
6182
6183 function ${createLRThumbnails}(){
6184
6185 const newsContent = document.querySelector(".news-content");
6186 const iframeList = newsContent.querySelectorAll("iframe[data-video-liferay]");
6187
6188 iframeList.forEach(iframe => {
6189
6190 const playButton = document.createElement("div");
6191 playButton.style = 'background-image: url("data:image/svg+xml,%3Csvg width=\'64\' height=\'64\' viewBox=\'0 0 64 64\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cg clip-path=\'url(%23clip0_4118_27800)\'%3E%3Crect width=\'64\' height=\'64\' rx=\'32\' fill=\'white\'/%3E%3Cpath d=\'M39.22 32.52C39.591 32.2726 39.591 31.7274 39.22 31.48L28.9717 24.6478C28.5563 24.3709 28 24.6686 28 25.1678V38.8322C28 39.3314 28.5563 39.6291 28.9717 39.3522L39.22 32.52Z\' fill=\'%23008542\' stroke=\'%23008542\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-linejoin=\'round\'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id=\'clip0_4118_27800\'%3E%3Crect width=\'64\' height=\'64\' rx=\'32\' fill=\'white\'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A")';
6192 playButton.classList.add("thumnail-play-button-liferay");
6193 const children = iframe.parentNode.children;
6194 if (children.length > 0) {
6195 iframe.parentNode.insertBefore(playButton, children.firstChild);
6196 }
6197
6198 iframe.addEventListener("load", () => {
6199 if (iframe.contentDocument){
6200 const video = iframe.contentDocument.body.querySelector("video");
6201 video.removeAttribute("controls");
6202 }
6203 });
6204
6205 iframe.parentNode.classList.add("embed-responsive-liferay");
6206
6207
6208 playButton.addEventListener("click", () => {
6209 playButton.classList.add("hide");
6210 playButton.classList.remove("thumnail-play-button-liferay");
6211 iframe.parentNode.classList.remove("embed-responsive-liferay");
6212 if (iframe.contentDocument){
6213 const video = iframe.contentDocument.body.querySelector("video");
6214 video.setAttribute("controls", "");
6215 video.play();
6216 }
6217 });
6218 });
6219 }
6220
6221 ${createLRThumbnails}();
6222
6223 document.querySelectorAll(".news-content img").forEach(img => img.loading = "lazy");
6224
6225 </script>
Escolha um Canal:
Navegue nas Seções:
Acessibilidade
Idioma:
Selecione um idioma: