Título
Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing: ==> cardData.urlNews [in template "20099#20135#10700480" at line 3601, column 67] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${cardData.urlNews} [in template "20099#20135#10700480" in macro "renderCard" at line 3601, column 65] - Reached through: @renderCard cardData [in template "20099#20135#10700480" at line 3873, column 25] ----
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: Site de Crise - Notícia - Extrair dados de Notícias -->
8<#--include "${templatesPath}/7762031" -->
9
10<#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Título -->
11<#-- include "${templatesPath}/7761976" -->
12
13<#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Redes sociais e data de publicação -->
14<#--include "${templatesPath}/7762069" -->
15
16<#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Áudios do conteúdo da notícia -->
17<#-- include "${templatesPath}/7761972" -->
18<#function getNodesByLabel fieldList parentNode label>
19 <#assign result = []/>
20 <#attempt>
21 <#assign groupId = getIdFromFieldName(fieldList, label) />
22 <#assign xSeletorCaminho = saxReaderUtil.createXPath("dynamic-element[@name='${groupId}' ]") />
23 <#assign result = xSeletorCaminho.selectNodes(parentNode) />
24 <#return result />
25 <#recover>
26 <#return result />
27 </#attempt>
28</#function>
29
30<#function findVocabulary vocabularyName vocabularies>
31 <#assign vocabularyNameLowerCase = vocabularyName?lower_case>
32 <#list vocabularies as vocabulary>
33 <#if vocabulary.name?lower_case == vocabularyNameLowerCase>
34 <#return vocabulary>
35 </#if>
36 </#list>
37 <#return {}>
38</#function>
39
40<#-- ############# Conteúdo Web -> Templates: Site de Crise - Include de templates #################################### -->
41<#function getSiteUrl>
42 <#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"]>
43 <#if layout?? && layout?has_content>
44 <#return portalUtil.getLayoutFriendlyURL(layout, themeDisplay)?replace(layout.getFriendlyURL(), "")>
45 </#if>
46 <#return portalUtil.getLayoutFriendlyURL(layout, themeDisplay)>
47</#function>
48
49<#function getSiteName>
50 <#return layout.getGroup().getDescriptiveName(locale)>
51</#function>
52
53<#function mountUrlToPage targetPage>
54 <#assign baseUrl = getSiteUrl()>
55 <#assign trimmedUrl = baseUrl?replace("/w/", "/")>
56 <#assign trimmedUrl = trimmedUrl?substring(0, trimmedUrl?last_index_of("/"))>
57 <#return trimmedUrl + "/" + targetPage>
58</#function>
59<#-- ################################################################################################################## -->
60
61
62<#assign
63 journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
64 assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
65 assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
66 vocabularies = assetVocabularyService.getGroupVocabularies(groupId)
67 tagsLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")
68 tagVocabulary = findVocabulary("Tag", vocabularies)
69 flagVocabulary = findVocabulary("Flag", vocabularies)
70 tagCategoryTitles = extractVocabularyTitles(tagVocabulary)
71 flagCategoryTitles = extractVocabularyTitles(flagVocabulary)
72 assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")
73 fileEntryService = staticUtil["com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"]
74 layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")
75 PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"]
76 AssetEntryQueryService = objectUtil("com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil").getService()
77 AssetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')
78/>
79
80<#assign typeOfNewsVocabulary = findVocabulary("Tipo de Notícia", vocabularies)/>
81<#assign ourEnergyVocabulary = findVocabulary("Nossa Energia", vocabularies)/>
82
83<#assign newsJournalArticle = "">
84<#assign assetEntry = getAssetEntryFromRequest(assetEntryLocalService)>
85<#if assetEntry?? && assetEntry?has_content>
86 <#assign newsJournalArticle = journalArticleLocalService.fetchLatestArticle(assetEntry.classPK)/>
87</#if>
88
89<#function getSingleNode name root>
90 <#attempt>
91 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${name}']/dynamic-content[@language-id='${locale}']") />
92 <#return xPathSelector.selectSingleNode( root ) />
93 <#recover>
94 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${name}']") />
95 <#return xPathSelector.selectSingleNode( root ) />
96 </#attempt>
97</#function>
98
99<#-- Função para obter a primeira categoria associonada a um Vocabulário o qual está associado a um Jornal Article -->
100<#function getFirstCategoryOfVocabulary journalArticle vocabulary >
101 <#attempt>
102 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) />
103 <#list categories as category>
104 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
105 <#return category.getName()>
106 </#if>
107 </#list>
108 <#return "">
109
110 <#recover>
111 <#return "" />
112 </#attempt>
113</#function>
114
115<#function getFirstCategoryObjectOfVocabulary journalArticle vocabulary >
116 <#attempt>
117 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) />
118 <#list categories as category>
119 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
120 <#return category>
121 </#if>
122 </#list>
123 <#return "">
124
125 <#recover>
126 <#return "" />
127 </#attempt>
128</#function>
129
130<#-- Função para obter todas os ids das categorias associonadas a um Vocabulário o qual está associado a um Jornal Article -->
131<#function getAllCategoryIdOfVocabulary journalArticle vocabulary >
132 <#attempt>
133 <#assign categoriesIds = [] />
134 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) />
135 <#list categories as category>
136 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
137 <#assign categoriesIds = categoriesIds + [category.getCategoryId()] />
138 </#if>
139 </#list>
140 <#return categoriesIds>
141
142 <#recover>
143 <#return [] />
144 </#attempt>
145</#function>
146
147<#if newsJournalArticle?? && newsJournalArticle?has_content>
148
149 <div class="breadcrumb-breakpoint breakpoint">
150 <div class="breadcrumb-col col-2-11 md-col-1-8 sm-col-1-4">
151 <#assign homeURL = "/" />
152
153 <#if currentURL?contains('webserver')>
154 <#assign homeURL = "/web/nossa-energia" />
155 </#if>
156
157 <a href="${homeURL}" class="breadcrumb-page text previous-page paragraph-micro-regular" tabindex="0">
158 <span class="breadcrumb-text-truncate" original-text="Home">Home</span>
159 <div class="icon"></div>
160 </a>
161
162 <#assign currentUrl = getSiteUrl()>
163
164 <#assign lastIndex = currentUrl?last_index_of("/")>
165 <#assign urlWithoutLastSegment = currentUrl?substring(0, lastIndex+1)>
166 <#assign urlWithoutW = urlWithoutLastSegment?replace("/w/", "/")>
167
168 <#assign breadcrumbOurEnergyCategory = getFirstCategoryObjectOfVocabulary(assetEntry, ourEnergyVocabulary) />
169 <#assign categoryURL = urlWithoutW/>
170 <a href="${categoryURL}" class="breadcrumb-page text previous-page paragraph-micro-regular" tabindex="0">
171 <span class="breadcrumb-text-truncate" original-text="${breadcrumbOurEnergyCategory.getTitle(locale)}">${breadcrumbOurEnergyCategory.getTitle(locale)}</span>
172 <div class="icon"></div>
173 </a>
174
175 <span original-text="${newsJournalArticle.getTitle(locale)}" class="breadcrumb-page text active-page active paragraph-micro-bold">${newsJournalArticle.getTitle(locale)}</span>
176 </div>
177 </div>
178
179 <div class="ptb-news__read-news">
180 <div class="ptb-news__read-news-post ">
181 <div class="ptb-news__read-content">
182
183 <#assign
184 ddmStructure = newsJournalArticle.getDDMStructure()
185 fieldList = getFieldListByStructure(ddmStructure)
186 xmlArticle = newsJournalArticle.getDocument().getRootElement()
187 >
188
189 <#assign
190 <#-- Título principal da notícia -->
191 mainHeadlineOfTheNews = newsJournalArticle.getTitle(locale, true)
192 <#-- Título de destaque da notícia -->
193 featuredNewsHeadline = extractFeaturedNewsHeadline(fieldList, xmlArticle)
194 <#-- Sumário da notícia -->
195 newsSummary = extractNewsSummary(fieldList, xmlArticle)
196 <#-- Data de publicação da notícia -->
197 lastPublishDate = extractPublishDate(newsJournalArticle)
198 <#-- Data de criação da notícia -->
199 createDate = newsJournalArticle.getCreateDate()
200 >
201
202 <#-- Flag da notícia ---------------------------------------------------------------------------------->
203 <#assign flag = getFirstCategoryTitle(newsJournalArticle, flagCategoryTitles, assetCategoryLocalService)>
204
205 <#-- Url amigável da notícia para visualização em DisplayPage ----------------------------------------->
206 <#assign newsJournalArticleFriendlyUrl = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + newsJournalArticle.getUrlTitle()>
207
208 <#-- Conteúdo da notícia ------------------------------------------------------------------------------>
209 <#assign newsContent = getFieldValue(fieldList, xmlArticle, "Corpo da notícia")>
210
211 <#-- Seção do áudio para o conteúdo da notícia -------------------------------------------------------->
212 <#assign audios = []
213 audioIdentifierFieldSetList = getNodes("Fieldset65862311", xmlArticle)
214 >
215 <#list audioIdentifierFieldSetList as audioIdentifierFieldSet>
216 <#assign
217 <#-- Grupo com as informações de url e legenda do áudio -->
218 audioInfoFieldSet = getGroupNode("Fieldset24035689",audioIdentifierFieldSet)>
219 <#assign
220 externalAudioUrl = getFieldValue(fieldList, audioInfoFieldSet, "URL externa do áudio")
221 internalAudioUrl = getFileFromXML("DocumentLibrary24170668", audioInfoFieldSet, fileEntryService)
222 audioLegend = getFieldValue(fieldList, audioInfoFieldSet, "Legenda do áudio")>
223
224 <#if externalAudioUrl?has_content || internalAudioUrl.url?has_content >
225 <#assign audios += [{
226 "id": getFieldValue(fieldList, audioIdentifierFieldSet, "Identificador de Áudio"),
227 "externalUrl" : externalAudioUrl,
228 "internalUrl" : internalAudioUrl,
229 "legend" : audioLegend
230 }]>
231 </#if>
232 </#list>
233
234
235 <#-- Seção de vídeo para o conteúdo da notícia -------------------------------------------------------->
236 <#assign videos = []
237 videoIdentifierFieldSetList = getNodes("Fieldset24460782", xmlArticle)
238 >
239 <#list videoIdentifierFieldSetList as videoIdentifierFieldSet>
240 <#assign
241 <#-- Grupo com as informações de url e legenda do áudio -->
242 videoInfoFieldSet = getGroupNode("Fieldset51040010",videoIdentifierFieldSet)
243
244 videos += [{
245 "id": getFieldValue(fieldList,videoIdentifierFieldSet, "Identificador de Vídeo"),
246 "youtubeID" : getFieldValue(fieldList, videoInfoFieldSet, "ID do vídeo do YouTube"),
247 "internalUrl" : getFileFromXML("DocumentLibrary15265409", videoInfoFieldSet, fileEntryService),
248 "legend" : getFieldValue(fieldList, videoInfoFieldSet, "Legenda do vídeo")
249 }]
250 >
251 </#list>
252
253
254 <#-- Seção de links para o conteúdo da notícia -------------------------------------------------------->
255 <#assign
256 links = []
257 linksFieldSetList = getNodes("Fieldset37770113", xmlArticle)
258 >
259 <#list linksFieldSetList as linksFieldSet>
260 <#assign linkFieldSetList = getNodes("Fieldset10524367", linksFieldSet)>
261
262 <#list linkFieldSetList as linkFieldSet>
263 <#assign
264 linkId = getFieldValue(fieldList, linkFieldSet, "Identificador do link")
265
266 <#-- Grupo com as informações de url e legenda do áudio -->
267 linkInfoFieldSeet = getGroupNode("Fieldset86037074", linkFieldSet)
268
269 iconType = getFieldValue(fieldList, linkInfoFieldSeet, "Ícone do link")
270 links += [{
271 "id": linkId,
272 "externalLink" : getFieldValue(fieldList, linkInfoFieldSeet, "Link externo"),
273 "pageLink" : getPageLayoutLinkFromXML("LinkToLayout77941175", linkInfoFieldSeet, layoutLocalService),
274 "file" : getFileFromXML("DocumentLibrary34820760", linkInfoFieldSeet, fileEntryService),
275 "title" : getFieldValue(fieldList, linkInfoFieldSeet, "Título do link"),
276 "iconType" : iconType
277 }]
278 >
279 </#list>
280 </#list>
281
282
283
284 <#assign galleryItems = []/>
285
286 <#assign mediaGroupList = getNodes(getIdFromFieldName(fieldList, "Galeria de multimídia"), xmlArticle) />
287
288 <#list mediaGroupList as mediaGroup >
289 <#assign nodes = getNodes(getIdFromFieldName(fieldList, "Imagem da Galeria") , mediaGroup) />
290 <#list nodes as node>
291 <#assign image = getMediaInfo(fieldList, node, "Imagem", fileEntryService) />
292 <#if image?? && image?has_content && image.url?has_content>
293 <#assign galleryItems += [{"image": image}] />
294 </#if>
295 </#list>
296 </#list>
297
298
299 <#-- Seção de Quotes para o conteúdo da notícia -------------------------------------------------------->
300 <#assign quotes = [] />
301 <#assign quotesRootFieldSetList = getNodes(getIdFromFieldName(fieldList, "Quotes da notícia"), xmlArticle) />
302 <#list quotesRootFieldSetList as quotesFieldSetList>
303 <#assign quoteFieldSetList = getNodes(getIdFromFieldName(fieldList, "Quote"), quotesFieldSetList) />
304 <#list quoteFieldSetList as quoteFieldSet>
305 <#assign imageJsonString = getSingleNodeString("Image94530628", quoteFieldSet) />
306 <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} />
307 <#attempt>
308 <#if imageJsonString ?? && imageJsonString?has_content>
309 <#assign imageJson = jsonFactoryUtil.createJSONObject(imageJsonString) />
310 </#if>
311
312 <#if !imageJson.url?? || !imageJson.url?has_content>
313 <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} />
314 </#if>
315 <#recover>
316 </#attempt>
317
318 <#if !imageJson.url?? || !imageJson.url?has_content>
319 <#assign imageJson = {"url": "", "alt": "", "fileEntryId" : "", "title" : ""} />
320 </#if>
321
322 <#assign quotes += [{
323 "id": getFieldValue(fieldList, quoteFieldSet, "Identificador do Quote"),
324 "content" : getFieldValue(fieldList, quoteFieldSet, "Texto do Quote"),
325 "author" : getFieldValue(fieldList, quoteFieldSet, "Nome do autor"),
326 "image" : {"url": imageJson.url, "alt": imageJson.alt, "fileEntryId" : imageJson.fileEntryId, "title" : imageJson.title}
327 }] />
328 </#list>
329 </#list>
330
331 <#assign newsInfo = {
332 "mainHeadlineOfTheNews": mainHeadlineOfTheNews,
333 "featuredNewsHeadline" : featuredNewsHeadline,
334 "displayDate" : formatDate(createDate),
335 "createDate": createDate,
336 "newsSummary" : newsSummary,
337 "newsMedia": extractNewsMedia(fieldList, xmlArticle, fileEntryService),
338 "lastPublishDate": lastPublishDate,
339 "flag": flag,
340 "url": newsJournalArticleFriendlyUrl,
341 "newsContent": newsContent,
342 "audios": audios,
343 "videos": videos,
344 "galleryItems": galleryItems,
345 "links": links,
346 "quotes": quotes
347 }/>
348
349 <#-- Renderizar o título principal da notícia -->
350 <#-- Conteúdo-> Conteúdo Web -> Templates: Site de Crise - Notícia - Título -->
351 <@renderHeadLine newsInfo = newsInfo/>
352
353 <#-- Renderizar o resumo da notícia -->
354 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Resumo -->
355 <@renderReview newsInfo = newsInfo/>
356
357 <#-- Renderizar a data de publicação/edição da notícia e redes sociais -->
358 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Redes sociais e data de publicação -->
359 <@renderPublishAndSocialMediasInfos newsJournalArticle newsInfo/>
360
361 <#-- Renderizar as tags da notícia -->
362 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render Tags -->
363 <#assign categoriesAsssetEntryResponse = restClient.get("/headless-delivery/v1.0/structured-contents/${assetEntry.getClassPK()}?nestedFields=embeddedTaxonomyCategory&fields=taxonomyCategoryBriefs") />
364
365 <#if categoriesAsssetEntryResponse?? && categoriesAsssetEntryResponse?has_content && categoriesAsssetEntryResponse.taxonomyCategoryBriefs??>
366 <#assign tagCategoryList = getCategoriesNamesAndIds("Tags", categoriesAsssetEntryResponse.taxonomyCategoryBriefs) />
367 <#assign removeStartParameterWhenTagIsClicked = true />
368 <#assign includeRequestParams = false />
369 <#assign NEWS_PAGE_NAME= "categorias"/>
370 <@renderNewsTags tagCategoryList NEWS_PAGE_NAME removeStartParameterWhenTagIsClicked includeRequestParams />
371 </#if>
372
373
374 <#-- Renderizar a imagem de destaque da notícia -->
375 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Imagem de destaque -->
376 <#assign typeOfNews = getFirstCategoryOfVocabulary(assetEntry, typeOfNewsVocabulary) />
377
378 <#if !typeOfNews?? || !typeOfNews?has_content || typeOfNews != "Infográfico" >
379 <@renderNewsFeaturedMedia newsInfo = newsInfo/>
380 </#if>
381
382 <#-- Renderizar o conteúdo da notícia -->
383 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia -->
384 <@renderNewsContent newsInfo = newsInfo/>
385
386 <#-- Renderizar links da notícia -->
387 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Links do conteúdo da notícia -->
388 <@renderLinks newsInfo />
389
390 <@renderCite />
391
392 <#-- Renderizar áudios da notícia -->
393 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Áudios do conteúdo da notícia -->
394
395 <#-- Renderizar galeria de imagens notícia -->
396 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render galeria -->
397 <@renderGallery newsInfo />
398
399
400 <#-- Renderizar quotes da notícia -->
401 <@renderQuotes newsInfo />
402
403 </div>
404 </div>
405 </div>
406<#else >
407 <div class="ptb-news__read-news paragraph-sm-regular">
408 <p> <#if locale == "pt_BR"> Nenhuma notícia <#else> There are no news </#if></p>
409 </div>
410
411 <style>
412 .ptb-news__read-news p {
413 color: #515867;
414 }
415
416 body.high-contrast-active .ptb-news__read-news p {
417 color: var(--color-neutral-100);
418 }
419 </style>
420</#if>
421
422<style>
423 .breadcrumb-breakpoint {
424 padding-top: var(--space-xxl);
425 padding-bottom: var(--space-xl);
426 }
427
428 body.high-contrast-active .breadcrumb-breakpoint {
429 background: var(--background-surface-level-01, #010101);
430 }
431
432 .breadcrumb-breakpoint .breadcrumb-col {
433 display: flex;
434 width: max-content;
435 gap: var(--space-xxs);
436 height: fit-content;
437 overflow-x: hidden;
438 }
439
440 .breadcrumb-breakpoint #liferay-breadcrumb {
441 display: none;
442 }
443
444 .breadcrumb-breakpoint .breadcrumb-page {
445 display: flex;
446 gap: var(--space-micro);
447 height: var(--size-md);
448 size: var(--size-md);
449 border: 1px solid rgba(0, 0, 0, 0);
450 box-sizing: border-box;
451 border-radius: var(--border-radius-sm);
452 }
453
454 .breadcrumb-breakpoint a.breadcrumb-page.text span,
455 .breadcrumb-breakpoint span.breadcrumb-page.text {
456 white-space: nowrap;
457 }
458
459 .breadcrumb-breakpoint .breadcrumb-page a:focus {
460 outline: none;
461 }
462
463 .breadcrumb-breakpoint .breadcrumb-page.active-page {
464 color: var(--color-text-primary-default);
465 background-color: var(--color-background-default-level-02);
466 border-radius: var(--border-radius-sm);
467 }
468
469 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.active-page {
470 background: var(--background-surface-level-02, #373737);
471 color: var(--text-primary-default, #FFF);
472 }
473
474 .breadcrumb-breakpoint .breadcrumb-page.previous-page {
475 transition: 300ms ease-in-out;
476 }
477
478 .breadcrumb-breakpoint .breadcrumb-page.previous-page.text {
479 text-decoration: var(--text-decoration-none);
480 color: var(--color-text-primary-default);
481 text-transform: capitalize;
482 padding-left: var(--space-xxs);
483 padding-right: var(--space-xxs);
484 }
485
486 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text {
487 color: var(--text-primary-default, #FFF);
488 }
489
490 .breadcrumb-breakpoint .breadcrumb-page.active-page.text {
491 color: var(--color-text-primary-default);
492 text-decoration: var(--text-decoration-none);
493 background-color: var(--color-background-default-level-02);
494 text-transform: capitalize;
495 padding-left: var(--space-xxs);
496 padding-right: var(--space-xxs);
497 }
498
499 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text {
500 color: var(--text-primary-default, #FFF);
501 }
502
503 .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover {
504 background-color: var(--color-background-default-level-01);
505 border-color: var(--border-color-dark);
506 border-radius: var(--border-radius-sm);
507 border: 1px solid;
508 transition: all 300ms ease-in-out;
509 }
510
511 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover {
512 background-color: transparent;
513 }
514
515 .breadcrumb-breakpoint .breadcrumb-page:focus-visible {
516 margin: var(--space-micro);
517 border-radius: var(--space-micro);
518 outline: none;
519 border: 1px solid var(--color-primary-medium);
520 box-sizing: border-box;
521 transition: 300ms ease-in-out;
522 }
523
524 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page:focus-visible {
525 border: 1px solid rgba(228, 247, 232, 1);
526 }
527
528 .breadcrumb-breakpoint .breadcrumb-page .icon {
529 width: var(--size-xxs);
530 height: var(--size-xxs);
531 border-color: var(--border-color-darkest);
532 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');
533 background-size: cover;
534 margin-top: auto;
535 margin-bottom: auto;
536 }
537
538 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page .icon {
539 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>');
540 }
541
542 .ptb-news__read-news {
543 padding-bottom: var(--space-xl, 40px);
544 }
545
546 body.high-contrast-active .ptb-news__read-news {
547 background: var(--background-surface-level-01, #010101);
548 }
549</style>
550
551
552<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### -->
553<#--
554Add elements from the sidebar to define your template. Type "${" to use the
555autocomplete feature.
556-->
557
558<#macro renderHeadLine newsInfo>
559
560 <div class="main-headline-container breakpoint">
561 <div class="main-headline-container-col col-2-11 md-col-1-8 sm-col-1-4">
562 <h2 class="main-headline display-sm">${newsInfo.featuredNewsHeadline}</h2>
563 <div class="bar"></div>
564 </div>
565 </div>
566
567 <style>
568 .ptb-news__read-news .main-headline-container .main-headline-container-col {
569 display: flex;
570 flex-direction: column;
571 gap: var(--space-sm);
572 padding-bottom: var(--space-lg);
573 }
574
575 .ptb-news__read-news .main-headline-container .main-headline-container-col * {
576 margin: 0;
577 padding: 0;
578 }
579
580 .ptb-news__read-news .main-headline-container .main-headline {
581 font-family: var(--font-family-base);
582 color: var(--color-neutral-800);
583 }
584
585 body.high-contrast-active .ptb-news__read-news .main-headline-container .main-headline {
586 color: var(--text-primary-default, var(--color-neutral-100));
587 }
588
589 .ptb-news__read-news .main-headline-container .bar {
590 width: 32px;
591 height: var(--size-micro);
592 background: var(--color-secondary-medium);
593 }
594
595 body.high-contrast-active .ptb-news__read-news .main-headline-container .bar{
596 background: var(--text-secondary-accent, #FFEEB3);
597 }
598
599 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
600 .ptb-news__read-news .main-headline-container .main-headline-container-col {
601 gap: var(--space-xs, 12px);
602 }
603 }
604 </style>
605</#macro>
606<#-- ################################################################################################################## -->
607
608<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### -->
609<#macro renderReview newsInfo>
610 <#assign summaryCssRoot = "summary-container" />
611
612 <div class="${summaryCssRoot}-breakpoint breakpoint">
613 <div class="${summaryCssRoot} col-2-11 md-col-1-8 sm-col-1-4">
614 <p class="summary paragraph-lg-regular">
615 ${newsInfo.newsSummary}
616 </p>
617 </div>
618
619 </div>
620
621 <style>
622 .${summaryCssRoot} .summary {
623 padding-bottom: var(--space-lg);
624 }
625
626 .${summaryCssRoot} .summary,
627 .${summaryCssRoot} .summary * {
628 color: var(--color-neutral-800, #373737);
629 font-family: var(--font-family-base);
630 font-style: var(--font-style-italic);
631 margin: var(--space-none);
632 }
633
634 body.high-contrast-active .summary,
635 body.high-contrast-active .summary * {
636 color: var(--text-secondary-default, #F8F8F8);
637 }
638 </style>
639</#macro>
640<#-- ################################################################################################################## -->
641
642<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### -->
643<#macro renderPublishAndSocialMediasInfos journalArticle newsInfo>
644
645 <div class="publish_and_social_medias_infos_desk-breakpoint breakpoint">
646 <div class="publish_and_social_medias_infos_desk col-2-11 md-col-1-8 sm-col-1-4">
647 <div class="publish_and_update_date">
648 <#assign lastPublishDate = journalArticle.getModifiedDate()>
649 <#assign createDate = journalArticle.getCreateDate()>
650 <#if journalArticle.getLastPublishDate()??>
651 <#assign lastPublishDate = journalArticle.getLastPublishDate()>
652 </#if>
653
654 <#if locale == "pt_BR">
655 <p class="updated">Atualizado em ${formatDate(lastPublishDate)}</p>
656 <p class="published">Postado em ${formatDate(createDate)}</p>
657 <#else >
658 <p class="updated">Updated on ${formatDate(lastPublishDate)}</p>
659 <p class="published">Posted on ${formatDate(createDate)}</p>
660 </#if>
661 </div>
662
663 <#-- <div class="share_news_container">-->
664 <div class="social-media-container">
665
666 <#assign emailMsg = "Veja o conteúdo do post no link ">
667 <#if locale == "en_US">
668 <#assign emailMsg = "See the content of the post in the link ">
669 </#if>
670 <a class="social-media-share" href="mailto:?subject=${newsInfo.mainHeadlineOfTheNews}&body=${emailMsg}${newsInfo.url}"
671 target="_blank">
672 <svg class="email" width="37" height="36" viewBox="0 0 37 36" fill="none"
673 xmlns="http://www.w3.org/2000/svg">
674 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
675 <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"
676 fill="#008542"/>
677 </svg>
678 <span >send e-mail</span>
679 </a>
680
681 <a class="social-media-share" href="https://www.facebook.com/sharer/sharer.php?u=${newsInfo.url}" target="_blank">
682 <svg class="facebook" width="37" height="36" viewBox="0 0 37 36" fill="none"
683 xmlns="http://www.w3.org/2000/svg">
684 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
685 <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"
686 fill="#008542"/>
687 </svg>
688 <span >Facebook</span>
689 </a>
690
691 <#assign mobileShareButtonId = "mobile-share-" + randomNumber(5)>
692 <div class="mobile-share" id="${mobileShareButtonId}">
693 <svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg">
694 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
695 <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"
696 fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/>
697 <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"
698 fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/>
699 <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"
700 fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/>
701 <path d="M20.2546 14.0784L15.9036 16.8879" stroke="#008542" stroke-linecap="round"
702 stroke-linejoin="round"/>
703 <path d="M15.9036 19.4871L20.2546 22.2966" stroke="#008542" stroke-linecap="round"
704 stroke-linejoin="round"/>
705 </svg>
706 </div>
707
708 <a class="social-media-share" href="https://twitter.com/intent/tweet?url=${newsInfo.url}" target="_blank" data-size="large">
709 <svg class="twitter" width="37" height="36" viewBox="0 0 37 36" fill="none"
710 xmlns="http://www.w3.org/2000/svg">
711 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
712 <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"/>
713 </svg>
714 <span >twitter</span>
715 </a>
716
717 <a class="social-media-share" href="https://api.whatsapp.com/send?text=${newsInfo.url}" data-action="share/whatsapp/share"
718 target="_blank">
719 <svg class="whatsapp" width="37" height="36" viewBox="0 0 37 36" fill="none"
720 xmlns="http://www.w3.org/2000/svg">
721 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
722 <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"
723 fill="#008542"/>
724 <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"
725 fill="white"/>
726 </svg>
727 <span >Share to WhatsApp </span>
728 </a>
729
730 <div class="copy-text-container">
731 <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
732 <path d="M10.5 10.5H13.5V2.5H5.5V5.5" stroke="#008542" stroke-linecap="round"
733 stroke-linejoin="round"/>
734 <path d="M10.5 5.5H2.5V13.5H10.5V5.5Z" stroke="#008542" stroke-linecap="round"
735 stroke-linejoin="round"/>
736 </svg>
737
738 <#if locale == "pt_BR">
739 <p class="text">Copiar texto <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> </p>
740 <#else >
741 <p class="text">Copy text <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span> </p>
742 </#if>
743 </div>
744
745 </div>
746
747 <#if locale == "pt_BR">
748 <span class="copy-message">Texto copiado!</span>
749 <#else >
750 <span class="copy-message">Text copied!</span>
751 </#if>
752 <#-- </div>-->
753 </div>
754 </div>
755
756 <style>
757 .ptb-news__read-news .hidden {
758 display: none;
759 }
760 /*Data de publicação e redes sociais */
761
762 /* Desktop */
763 .ptb-news__read-news .publish_and_social_medias_infos_desk {
764 position: relative;
765 display: grid;
766 grid-template-columns: auto 1fr auto;
767 }
768
769 .ptb-news__read-news .publish_and_social_medias_infos_desk * {
770 padding: var(--space-none, 0);
771 margin: var(--space-none, 0);
772 font-family: var(--font-family-base);
773 font-style: var(--font-style-normal, normal);
774 font-weight: var(--font-weight-regular, 400);
775 font-size: var(--font-size-xxs, 16px);
776 line-height: var(--line-height-xl, 160%);
777 color: var(--color-neutral-800, #373737);
778 }
779
780 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk * {
781 color: var(--text-secondary-default, #F8F8F8);
782 }
783
784 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg path,
785 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg path {
786 stroke: var(--color-neutral-500, #D7D7D7);
787 fill: rgba(255, 255, 255, 0.32);
788 }
789
790 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg circle,
791 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg circle {
792 fill: rgba(255, 255, 255, 0.32);
793 }
794
795 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date {
796 display: flex;
797 align-items: center;
798 gap: var(--space-sm, 16px);
799 }
800
801 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated {
802 font-weight: var(--font-weight-bold, 700);
803 }
804
805 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated {
806 color: var(--text-primary-default, var(--color-neutral-100));
807 }
808
809 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published {
810 font-weight: var(--font-weight-normal, 400);
811 }
812
813 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container {
814 display: flex;
815 width: 100%;
816 justify-content: flex-end;
817 align-items: center;
818 gap: var(--space-sm, 16px);
819 }
820
821 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .social-media-share {
822 position: relative;
823 }
824
825 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .social-media-share span {
826 position: absolute;
827 width: 100%;
828 height: 100%;
829 opacity: 0;
830 overflow: hidden;
831 pointer-events: none;
832 }
833
834 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share {
835 display: none;
836 }
837
838 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container {
839 background: var(--color-neutral-100);
840 border: var(--border-width-hairline, 1px) solid #CCCCCC;
841 border-radius: 32px;
842 display: flex;
843 align-items: center;
844 gap: var(--space-sm, 16px);
845 padding: 6px var(--space-xxs, 8px);
846 height: 36px;
847 margin: 0;
848 cursor: pointer;
849 }
850
851 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container {
852 background: rgba(255, 255, 255, 0.32);
853 border: var(--border-width-hairline, 1px) solid rgba(255, 255, 255, 0.32);
854 }
855
856 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container svg {
857 width: 18px;
858 }
859
860 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk svg path {
861 stroke: var(--color-neutral-500, #D7D7D7);
862 }
863
864 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text {
865 font-family: var(--font-family-base);
866 font-style: normal;
867 margin: 0;
868 height: 100%;
869 display: flex;
870 align-items: center;
871 color: var(--color-primary-medium, #008542);
872 font-size: var(--font-size-micro, 12px);
873 font-weight: var(--font-weight-bold, 700);
874 line-height: var(--line-height-lg, 144%);
875 pointer-events: none;
876 }
877
878 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text .copy-text-title-news {
879 position: absolute;
880 width: 100%;
881 height: 100%;
882 opacity: 0;
883 overflow: hidden;
884 }
885
886 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text {
887 color: var(--text-primary-accent, #E4F7E8);
888 }
889
890 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message {
891 display: none;
892 position: absolute;
893 bottom: -43px;
894 right: -15px;
895 padding: var(--space-xxxs, 4px) 15px;
896 margin: var(--space-micro, 2px) 10px;
897 width: 110px;
898 font-family: var(--font-family-base);
899 font-size: var(--font-size-micro, 12px);
900
901 color: #008542;
902 background: var(--color-neutral-100);
903 border-radius: var(--border-radius-md, 8px);
904
905 filter: drop-shadow(0px 4px 16px rgba(0, 0, 0, 0.16));
906
907 cursor: pointer;
908 }
909
910 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message {
911 background: rgba(255, 255, 255, 0.32);
912 color: var(--text-primary-accent, #E4F7E8);
913 }
914
915 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message-active {
916 display: block;
917 }
918
919 /* Mobile */
920
921 .ptb-news__read-news .publish_and_social_medias_infos_mobile {
922 display: flex;
923 flex-direction: column;
924 gap: 19px;
925 }
926
927 .ptb-news__read-news .publish_and_social_medias_infos_mobile {
928 display: none;
929 }
930
931 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text {
932 display: flex;
933 justify-content: space-between;
934 align-items: center;
935 margin-bottom: var(--space-lg, 32px);
936 }
937
938 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date * {
939 padding: 0;
940 margin: 0;
941 font-family: var(--font-family-base);
942 font-style: var(--font-style-normal, normal);
943 font-size: var(--font-size-micro, 12px);
944 line-height: 136%;
945 color: var(--color-neutral-800, #373737);
946 }
947
948 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 * {
949 color: var(--text-primary-accent, #E4F7E8);
950 }
951
952 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date {
953 display: flex;
954 flex-direction: column;
955 gap: 0;
956 }
957
958 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .updated {
959 font-weight: var(--font-weight-bold, 700);
960 }
961
962 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .published {
963 font-weight: var(--font-weight-regular, 400);
964 }
965
966 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container {
967 background: var(--color-neutral-100);
968 border: var(--border-width-hairline, 1px) solid #CCCCCC;
969 border-radius: 32px;
970 display: flex;
971 align-items: center;
972 gap: var(--space-sm, 16px);
973 padding: 6px var(--space-xxs, 8px);
974 width: 112px;
975 height: 36px;
976 }
977
978 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container {
979 background: rgba(255, 255, 255, 0.32);
980 color: var(--text-primary-accent, #E4F7E8);
981 }
982
983 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container p.text {
984 margin: 0;
985 }
986
987 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container .text {
988 font-family: var(--font-family-base);
989 font-style: var(--font-style-normal, normal);
990 font-weight: var(--font-weight-regular, 400);
991 font-size: 13px;
992 line-height: 14px;
993 color: #008542;
994 }
995
996 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 {
997 background: rgba(255, 255, 255, 0.32);
998 color: var(--text-primary-accent, #E4F7E8);
999 }
1000
1001 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
1002
1003 .ptb-news__read-news .publish_and_social_medias_infos_desk * {
1004 font-size: var(--font-size-micro, 12px);
1005 }
1006
1007 .ptb-news__read-news .publish_and_social_medias_infos_desk {
1008 display: grid;
1009 grid-template-columns: 100%;
1010 grid-template-rows: 1fr 100%;
1011 gap: var(--space-md);
1012 }
1013
1014 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date {
1015 grid-column-start: 1;
1016 grid-column-end: 1;
1017 grid-row-start: 1;
1018 grid-row-end: 1;
1019 gap: var(--space-xxs, 8px);
1020 }
1021
1022 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * {
1023 padding: 0;
1024 margin: 0;
1025 font-family: var(--font-family-base);
1026 font-style: var(--font-style-normal);
1027 color: var(--color-neutral-800, #373737);
1028 font-weight: var(--font-weight-bold);
1029 font-size: var(--font-size-xxxs, 14px);
1030 line-height: var(--line-height-md, 132%);
1031 }
1032
1033 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * {
1034 color: var(--text-primary-accent, #E4F7E8);
1035 }
1036
1037 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published {
1038 font-weight: var(--font-weight-regular, 400);
1039 }
1040
1041 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container {
1042 grid-column-start: 1;
1043 grid-column-end: 2;
1044 grid-row-start: 2;
1045 grid-row-end: 2;
1046 justify-content: flex-end;
1047 height: 36px;
1048 }
1049
1050 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container {
1051 grid-column-start: 1;
1052 grid-column-end: 2;
1053 grid-row-start: 2;
1054 grid-row-end: 2;
1055 max-width: 112px;
1056 place-self: end;
1057 }
1058
1059 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text {
1060 display: none;
1061 }
1062
1063 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message {
1064 bottom: 0;
1065 right: -9px;
1066 }
1067
1068 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share {
1069 display: initial;
1070 }
1071 }
1072
1073 @media screen and (min-width: ${MIN_TABLET_WIDTH}px) and (max-width: ${MAX_TABLET_WIDTH}px) {
1074 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container {
1075 padding-right: 0;
1076 }
1077 }
1078
1079
1080 </style>
1081
1082 <script>
1083 AUI().ready(function () {
1084
1085 function copyOnClick(text) {
1086
1087 const strWithoutHtmlTags = text.replace(/(<([^>]+)>)/gi, "");
1088 const strWithoutMarcationBrackets = strWithoutHtmlTags.replace(/ *#\[[^\]]*]/g, "");
1089 const strWithoutNextPrevious = strWithoutMarcationBrackets.replace(/Previous Next/g, "");
1090 const strWithoutBlankEnters = strWithoutNextPrevious.replace(/^\s*$(?:\r\n?|\n)/gm, "");
1091 const tempInput = document.createElement("textarea");
1092 tempInput.value = strWithoutBlankEnters;
1093
1094 document.body.appendChild(tempInput);
1095 tempInput.select();
1096 document.execCommand("copy");
1097
1098 if (tempInput.value.length > 0) {
1099 copyMessage.classList.add('copy-message-active');
1100
1101 timerToMessage()
1102 }
1103
1104 document.body.removeChild(tempInput);
1105 }
1106
1107 const root = document.querySelector(".publish_and_social_medias_infos_desk");
1108 const copyTextContainer = root.querySelector(".copy-text-container");
1109 copyTextContainer.addEventListener("click", (event) => {
1110 event.preventDefault();
1111 const titleText = document.querySelector(".main-headline-container .main-headline").innerHTML;
1112 const publishSocialMediaText = document.querySelector(".publish_and_social_medias_infos_desk .publish_and_update_date").innerHTML;
1113 const tagsText = document.querySelector(".tags").innerHTML;
1114 const newsContentText = document.querySelector(".news-content").innerHTML;
1115 const text = titleText + publishSocialMediaText + tagsText + newsContentText;
1116 copyOnClick(text)
1117 });
1118
1119 const mobileShare = async () => {
1120 try {
1121 const shareData = {
1122 title: '${newsInfo.mainHeadlineOfTheNews}',
1123 text: '',
1124 url: '${newsInfo.url}'
1125 };
1126 await navigator.share(shareData);
1127 } catch (err) {
1128
1129 }
1130 };
1131
1132 const mobileShareButton = document.querySelector("#${mobileShareButtonId}");
1133 mobileShareButton.addEventListener("click", (event) => {
1134 event.preventDefault();
1135 mobileShare();
1136 });
1137
1138 const copyMessage = document.querySelector('.copy-message');
1139 const timerToMessage = () => {
1140 setTimeout(() => {
1141 removeMessage();
1142 }, 2500);
1143
1144 }
1145
1146 const removeMessage = () => {
1147 copyMessage.classList.remove('copy-message-active');
1148 }
1149
1150 });
1151 </script>
1152
1153</#macro>
1154
1155<#-- ################################################################################################################## -->
1156
1157<#-- ############# Site de Crise - Notícia - Render Tags ############################################################## -->
1158
1159<#function getCategoriesNamesAndIds vocabularyName categoriesList>
1160 <#assign tagCategoryList = [] />
1161
1162 <#assign tagsVocabulary = assetVocabularyService.fetchGroupVocabulary(groupId, vocabularyName) />
1163 <#list categoriesList as cat>
1164 <#if tagsVocabulary.getVocabularyId() == cat.embeddedTaxonomyCategory.taxonomyVocabularyId >
1165 <#assign tagCategoryList += [[cat.taxonomyCategoryName, cat.taxonomyCategoryId]] />
1166 </#if>
1167 </#list>
1168 <#return tagCategoryList>
1169</#function>
1170
1171<#assign
1172flagVocabulary = findVocabulary("Flag", vocabularies)
1173assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")
1174/>
1175
1176<#macro renderNewsTags categoryList targetPageWhenClickTag removeStartParameterWhenTagIsClicked updateTagParamsWhenClicked>
1177 <#assign tagPrefix = "tags-" + randomNumber(groupId?number)>
1178 <div class="${tagPrefix}-breakpoint breakpoint">
1179 <div class="${tagPrefix} col-2-11 md-col-1-8 sm-col-1-4">
1180
1181 <div class="tags">
1182 <#list categoryList as cat>
1183 <#assign tagLink = mountUrlToPage("") />
1184 <#assign urlWithoutTrailingSlash = tagLink?substring(0, tagLink?length - 1)>
1185 <#assign lastSlashIndex = urlWithoutTrailingSlash?last_index_of("/")>
1186 <#assign newUrl = urlWithoutTrailingSlash?substring(0, lastSlashIndex + 1)>
1187 <#assign tagLink = newUrl + "categorias?category=" + cat[1] />
1188 <a href="${tagLink}"
1189 class="category" cetegoryid="${cat[1]}"># ${cat[0]}</a>
1190 </#list>
1191 </div>
1192 </div>
1193 </div>
1194
1195 <style>
1196 .${tagPrefix} {
1197 display: flex;
1198 flex-direction: column;
1199 padding: 0;
1200 gap: var(--space-sm);
1201 }
1202
1203 .${tagPrefix} * {
1204 margin: 0;
1205 padding: 0;
1206 }
1207
1208 .${tagPrefix} .tags {
1209 display: flex;
1210 flex-wrap: wrap;
1211 gap: var(--space-xxs, 8px);
1212 padding: var(--space-lg) 0 var(--space-xl);
1213 }
1214
1215 .${tagPrefix} .tags .category {
1216 padding: var(--space-xxxs) var(--space-xxs);
1217 background: var(--color-neutral-100);
1218 border: var(--border-width-hairline, 1px) solid var(--color-neutral-500);
1219 border-radius: var(--border-radius-xl);
1220
1221 font-family: var(--font-family-base);
1222 font-style: var(--font-style-normal);
1223 font-weight: var(--font-weight-regular);
1224 font-size: var(--font-size-xxxs);
1225 line-height: var(--line-height-xl);
1226 color: var(--color-neutral-800, #373737);
1227 cursor: pointer;
1228 }
1229
1230 body.high-contrast-active .${tagPrefix} .tags .category {
1231 background: rgba(255, 255, 255, 0.32);
1232 border: 1px solid rgba(255, 255, 255, 0.32);
1233 color: var(--text-secondary-default, #F8F8F8);
1234 }
1235
1236 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
1237 .${tagPrefix} .tags {
1238 display: flex;
1239 flex-wrap: wrap;
1240 gap: 8px;
1241 padding: var(--space-sm) 0 var(--space-lg);
1242 }
1243
1244 .${tagPrefix} {
1245 margin-top: var(--space-sm);
1246 }
1247 }
1248 </style>
1249
1250 <script>
1251 AUI().ready(function () {
1252
1253 const urlParams = new URLSearchParams(window.location.search);
1254 const categories = urlParams.getAll("category").sort();
1255
1256 const root = document.querySelector(".${tagPrefix}");
1257 const tags = root.querySelectorAll(".category");
1258 tags.forEach((tag, index) => {
1259
1260 const categoryId = tag.getAttribute("cetegoryid");
1261 if (categories.indexOf(categoryId) != -1) {
1262 tag.classList.add("active");
1263 }
1264
1265 <#if updateTagParamsWhenClicked>
1266 tag.addEventListener("click", (e) => {
1267 e.preventDefault();
1268 const clickedTag = e.target;
1269 const urlParams = new URLSearchParams(window.location.search);
1270 urlParams.delete("tag");
1271 urlParams.delete("category");
1272
1273 const categoryId = clickedTag.getAttribute("cetegoryid");
1274 urlParams.append("category", categoryId);
1275
1276 <#if removeStartParameterWhenTagIsClicked>
1277 urlParams.delete("start");
1278 </#if>
1279
1280 const href = "${themeDisplay.getPortalURL() + mountUrlToPage(targetPageWhenClickTag)}?" + urlParams.toString();
1281 window.location.href = href;
1282 });
1283 </#if>
1284 });
1285 });
1286 </script>
1287
1288</#macro>
1289
1290<#-- ################################################################################################################## -->
1291
1292<#-- ############# Site de Crise - Notícia - Imagem de destaque ####################################################### -->
1293<#macro renderNewsFeaturedMedia newsInfo>
1294 <#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)>
1295 <div class="news-featured-media">
1296
1297 <div class="media-breakpoint breakpoint">
1298 <div class="media-col col-2-11 md-col-1-8 sm-col-1-4">
1299 <#if newsInfo.newsMedia.imageSrc?? && newsInfo.newsMedia.imageSrc?has_content>
1300 <img src="${newsInfo.newsMedia.imageSrc}" alt="${newsInfo.newsMedia.imageAlt}"/>
1301 <@liferay_util["html-top"]>
1302 <meta name="title" content="${newsInfo.mainHeadlineOfTheNews}">
1303 <meta name="description" content="${newsInfo.newsSummary}">
1304
1305 <meta property="og:url" content="${currentURL}">
1306 <meta property="og:type" content="website">
1307 <meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}">
1308 <meta property="og:description" content="${newsInfo.newsSummary}" />
1309 <meta property="og:image" content="${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsMedia.fileEntryId}/Thumbnail-300x300/image">
1310 <meta property="og:image:alt" content="${newsInfo.newsMedia.imageAlt}">
1311
1312 <meta name="twitter:card" content="summary_large_image">
1313 <meta name="twitter:url" content="${currentURL}" />
1314 <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}">
1315 <meta name="twitter:description" content="${newsInfo.newsSummary}" />
1316 <meta name="twitter:image" content= "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsMedia.fileEntryId}/Thumbnail-300x300/image" >
1317 <meta name="twitter:image:alt" content="${newsInfo.newsMedia.imageAlt}">
1318 </@>
1319 <#else>
1320 <#if newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content>
1321 <iframe src="https://www.youtube-nocookie.com/embed/${newsInfo.newsMedia.videoYotubeID}?si=PDNu4EIwtCuSHC1S&controls=0&enablejsapi=1&rel=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
1322 <@liferay_util["html-top"]>
1323 <meta name="title" content="${newsInfo.mainHeadlineOfTheNews}">
1324 <meta name="description" content="${newsInfo.newsSummary}">
1325
1326 <meta property="og:url" content="${currentURL}">
1327 <meta property="og:type" content="website">
1328 <meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}">
1329 <meta property="og:description" content="${newsInfo.newsSummary}" />
1330 <meta property="og:image" content="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg">
1331 <meta property="og:image:alt" content="Youtube Video Thumbnail">
1332
1333 <meta name="twitter:card" content="summary_large_image">
1334 <meta name="twitter:url" content="${currentURL}" />
1335 <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}">
1336 <meta name="twitter:description" content="${newsInfo.newsSummary}" />
1337 <meta name="twitter:image" content= "https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg" >
1338 <meta name="twitter:image:alt" content="Youtube Video Thumbnail">
1339 </@>
1340 <#else>
1341 <video>
1342 <source src="${newsInfo.newsMedia.internalVideo.url}">
1343 Your browser does not support the video tag.
1344 </video>
1345 </#if>
1346
1347 <div class="banner-video-icons">
1348 <#if newsInfo.newsMedia.videoYotubeID?? && newsInfo.newsMedia.videoYotubeID?has_content>
1349 <img class="banner-video-thumb-iframe" src="https://img.youtube.com/vi/${newsInfo.newsMedia.videoYotubeID}/hqdefault.jpg" alt="YouTube Thumbnail"/>
1350 </#if>
1351 <svg class="banner-video-icon-play" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
1352 <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"/>
1353 <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"/>
1354 </svg>
1355 </div>
1356 </#if>
1357 </div>
1358 </div>
1359
1360 <div class="credit-legend breakpoint">
1361
1362 <div class="credit-legend-container col-2-11 md-col-1-8 sm-col-1-4">
1363 <#if newsInfo.newsMedia.legend != "">
1364 <div class="legend paragraph-micro-regular">
1365 <p>${newsInfo.newsMedia.legend}</p>
1366 </div>
1367 </#if>
1368 <#if newsInfo.newsMedia.credits != "">
1369 <p class="credits paragraph-micro-regular">
1370 ${newsInfo.newsMedia.credits}
1371 </p>
1372 </#if>
1373
1374 </div>
1375 </div>
1376 </div>
1377 </#if>
1378 <style>
1379 .ptb-news__read-news .news-featured-media {
1380 padding: 0 0 var(--space-xl) 0;
1381 }
1382
1383 .ptb-news__read-news .news-featured-media .media-col {
1384 position: relative;
1385 }
1386
1387 .ptb-news__read-news .news-featured-media img,
1388 .ptb-news__read-news .news-featured-media video,
1389 .ptb-news__read-news .news-featured-media iframe {
1390 width: 100%;
1391 max-height: 567px;
1392 aspect-ratio: 16/9;
1393 object-fit: cover;
1394 border-radius: var(--border-radius-lg, 16px);
1395 }
1396
1397 .ptb-news__read-news .news-featured-media .banner-video-icons {
1398 width: 100%;
1399 height: 100%;
1400 position: absolute;
1401 top: 50%;
1402 left: 50%;
1403 transform: translate(-50%,-50%);
1404 cursor: pointer;
1405 }
1406
1407 .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-thumb-iframe {
1408 position: absolute;
1409 width: 100%;
1410 height: 100%;
1411 object-fit: cover;
1412 }
1413
1414 .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play {
1415 position: absolute;
1416 top: 50%;
1417 left: 50%;
1418 transform: translate(-50%,-50%);
1419 }
1420
1421 body.high-contrast-active .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play path:nth-child(1) {
1422 fill: black;
1423 }
1424
1425 body.high-contrast-active .ptb-news__read-news .news-featured-media .banner-video-icons .banner-video-icon-play path:nth-child(2) {
1426 fill: white;
1427 }
1428
1429 .ptb-news__read-news .news-featured-media *:not(.breakpoint) {
1430 margin: 0;
1431 }
1432 .ptb-news__read-news .news-featured-media * {
1433 padding: 0;
1434 font-family: var(--font-family-base);
1435 line-height: var(--line-height-xl);
1436 }
1437
1438 .ptb-news__read-news .news-featured-media .credits {
1439 text-align: right;
1440 color: var(--collor-neutral-dark-to-bright-200, #525252);
1441 margin-bottom: var(--space-xxxs, 4px);
1442 font-style: var(--font-style-italic, italic);
1443 margin-top: var(--space-xxs, 8px);
1444 margin-bottom: 0;
1445 }
1446
1447 body.high-contrast-active .ptb-news__read-news .news-featured-media .credits {
1448 color: var(--text-secondary-default, #F8F8F8);
1449 }
1450
1451 .ptb-news__read-news .news-featured-media .legend {
1452 margin-top: var(--space-xxs, 8px);
1453 display: flex;
1454 justify-content: space-between;
1455 }
1456
1457 .ptb-news__read-news .news-featured-media .legend,
1458 .ptb-news__read-news .news-featured-media .legend * {
1459 font-style: var(--font-style-italic, italic);
1460 color: var(--collor-neutral-dark-to-bright-200, #525252);
1461 }
1462
1463 .ptb-news__read-news .credit-legend .credit-legend-container {
1464 display: flex;
1465 justify-content: space-between;
1466 flex-wrap: wrap;
1467 gap: 8px;
1468 }
1469
1470 body.high-contrast-active .ptb-news__read-news .news-featured-media .legend,
1471 body.high-contrast-active .ptb-news__read-news .news-featured-media .legend * {
1472 color: var(--text-secondary-default, #F8F8F8);
1473 }
1474
1475 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
1476 .ptb-news__read-news .news-featured-media .credits {
1477 text-align: left;
1478 }
1479 }
1480 </style>
1481
1482 <script>
1483 /* Manipulation video*/
1484 let videoIsPlaying = false;
1485
1486 const modalForClick = document.querySelector(".ptb-news__read-news .news-featured-media .banner-video-icons");
1487 const video = document.querySelector(".ptb-news__read-news .news-featured-media .media-col > :first-child");
1488
1489 const playIcon = modalForClick && modalForClick.querySelector(".banner-video-icon-play");
1490 modalForClick && modalForClick.addEventListener("click", ()=>{
1491 if(video.tagName === "VIDEO") {
1492 if(videoIsPlaying) {
1493 video.pause();
1494 playIcon.style.display = "";
1495 videoIsPlaying = false;
1496 }
1497 else {
1498 video.play();
1499 playIcon.style.display = "none";
1500 videoIsPlaying = true;
1501 }
1502 }
1503 else if(video.tagName === "IFRAME") {
1504 const thumbYoutube = modalForClick.querySelector(".banner-video-thumb-iframe");
1505 if(videoIsPlaying) {
1506 video.contentWindow.postMessage('{"event":"command","func":"pauseVideo"}', '*');
1507 playIcon.style.display = "";
1508 videoIsPlaying = false;
1509 }
1510 else {
1511 thumbYoutube && (thumbYoutube.style.display = "none");
1512 video.contentWindow.postMessage('{"event":"command","func":"playVideo"}', '*');
1513 playIcon.style.display = "none";
1514 videoIsPlaying = true;
1515 }
1516 }
1517 });
1518 </script>
1519<#--/#if -->
1520</#macro>
1521<#-- ################################################################################################################## -->
1522
1523<#-- ############# Site de Crise - Notícia - Conteúdo da notícia ###################################################### -->
1524
1525<#macro renderNewsContent newsInfo>
1526
1527 <#assign targetStr = "<div class='paragraph_separator'><span class='dot'></span><span class='dot'></span><span class='dot'></span><span class='dot'></span></div>">
1528 <#assign content = newsInfo.newsContent?replace("<p></p>", targetStr, 'r')>
1529 <#assign content = content?replace("<p> </p>", targetStr, 'r')>
1530 <#assign content = content?replace("<p></p>", targetStr, 'r')>
1531 <#assign content = content?replace("<p> </p>", targetStr, 'r')>
1532
1533
1534 <div class="news-content breakpoint">
1535 ${content}
1536
1537 <div class="audio-template audio-pause audio-unmuted" style="display:none">
1538 <div class="audio-button-play">
1539 <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>
1540 </svg>
1541
1542 <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>
1543 </svg>
1544 </div>
1545 <div class="audio-sondwave">
1546 <svg class="audio-sondwave-desktop" width="100%" height="100%" viewBox="0 0 590 30" fill="none" xmlns="http://www.w3.org/2000/svg">
1547 <g clip-path="url(#clip0_2625_8152)">
1548 <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1549 <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1550 <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1551 <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1552 <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1553 <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1554 <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1555 <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1556 <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1557 <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1558 <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1559 <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1560 <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1561 <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1562 <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1563 <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1564 <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1565 <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1566 <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1567 <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1568 <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1569 <line x1="107.072" y1="8.75" x2="107.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1570 <line x1="112.234" y1="0.75" x2="112.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1571 <line x1="117.395" y1="7.75" x2="117.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1572 <line x1="122.557" y1="5.75" x2="122.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1573 <line x1="127.717" y1="11.75" x2="127.717" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1574 <line x1="132.879" y1="9.75" x2="132.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1575 <line x1="138.041" y1="9.75" x2="138.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1576 <line x1="142.17" y1="1.75" x2="142.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1577 <line x1="147.33" y1="12.75" x2="147.33" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1578 <line x1="151.75" y1="0.75" x2="151.75" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1579 <line x1="156.91" y1="7.75" x2="156.91" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1580 <line x1="162.072" y1="5.75" x2="162.072" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1581 <line x1="167.234" y1="11.75" x2="167.234" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1582 <line x1="172.395" y1="9.75" x2="172.395" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1583 <line x1="177.557" y1="9.75" x2="177.557" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1584 <line x1="181.686" y1="1.75" x2="181.686" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1585 <line x1="186.848" y1="12.75" x2="186.848" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1586 <line x1="192.008" y1="13.75" x2="192.008" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1587 <line x1="197.17" y1="10.75" x2="197.17" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1588 <line x1="202.33" y1="8.75" x2="202.33" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1589 <line x1="207.492" y1="0.75" x2="207.492" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1590 <line x1="212.652" y1="7.75" x2="212.652" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1591 <line x1="217.814" y1="5.75" x2="217.814" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1592 <line x1="222.977" y1="11.75" x2="222.977" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1593 <line x1="228.137" y1="9.75" x2="228.137" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1594 <line x1="233.299" y1="9.75" x2="233.299" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1595 <line x1="237.428" y1="1.75" x2="237.428" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1596 <line x1="242.588" y1="12.75" x2="242.588" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1597 <line x1="247.75" y1="13.75" x2="247.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1598 <line x1="252.91" y1="10.75" x2="252.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1599 <line x1="258.072" y1="8.75" x2="258.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1600 <line x1="263.234" y1="0.75" x2="263.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1601 <line x1="268.395" y1="7.75" x2="268.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1602 <line x1="273.557" y1="5.75" x2="273.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1603 <line x1="278.717" y1="11.75" x2="278.717" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1604 <line x1="283.879" y1="9.75" x2="283.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1605 <line x1="289.041" y1="9.75" x2="289.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1606 <line x1="293.17" y1="1.75" x2="293.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1607 <line x1="298.33" y1="12.75" x2="298.33" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1608 <line x1="302.75" y1="10.75" x2="302.75" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1609 <line x1="307.912" y1="8.75" x2="307.912" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1610 <line x1="313.072" y1="0.75" x2="313.072" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1611 <line x1="318.234" y1="7.75" x2="318.234" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1612 <line x1="323.395" y1="5.75" x2="323.395" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1613 <line x1="328.557" y1="11.75" x2="328.557" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1614 <line x1="333.719" y1="9.75" x2="333.719" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1615 <line x1="338.879" y1="9.75" x2="338.879" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1616 <line x1="343.008" y1="1.75" x2="343.008" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1617 <line x1="348.17" y1="12.75" x2="348.17" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1618 <line x1="353.33" y1="13.75" x2="353.33" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1619 <line x1="358.492" y1="10.75" x2="358.492" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1620 <line x1="363.652" y1="8.75" x2="363.652" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1621 <line x1="368.814" y1="0.75" x2="368.814" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1622 <line x1="373.977" y1="7.75" x2="373.977" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1623 <line x1="379.137" y1="5.75" x2="379.137" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1624 <line x1="384.299" y1="11.75" x2="384.299" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1625 <line x1="389.459" y1="9.75" x2="389.459" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1626 <line x1="394.621" y1="9.75" x2="394.621" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1627 <line x1="398.75" y1="1.75" x2="398.75" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1628 <line x1="403.912" y1="12.75" x2="403.912" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1629 <line x1="408.33" y1="10.75" x2="408.33" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1630 <line x1="413.492" y1="8.75" x2="413.492" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1631 <line x1="418.654" y1="0.75" x2="418.654" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1632 <line x1="423.814" y1="7.75" x2="423.814" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1633 <line x1="428.977" y1="5.75" x2="428.977" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1634 <line x1="434.137" y1="11.75" x2="434.137" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1635 <line x1="439.299" y1="9.75" x2="439.299" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1636 <line x1="444.461" y1="9.75" x2="444.461" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1637 <line x1="448.59" y1="1.75" x2="448.59" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1638 <line x1="453.75" y1="12.75" x2="453.75" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1639 <line x1="458.912" y1="13.75" x2="458.912" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1640 <line x1="464.072" y1="10.75" x2="464.072" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1641 <line x1="469.234" y1="8.75" x2="469.234" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1642 <line x1="474.395" y1="0.75" x2="474.395" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1643 <line x1="479.557" y1="7.75" x2="479.557" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1644 <line x1="484.719" y1="5.75" x2="484.719" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1645 <line x1="489.879" y1="11.75" x2="489.879" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1646 <line x1="495.041" y1="9.75" x2="495.041" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1647 <line x1="500.201" y1="9.75" x2="500.201" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1648 <line x1="504.33" y1="1.75" x2="504.33" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1649 <line x1="509.492" y1="12.75" x2="509.492" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1650 <line x1="513.912" y1="10.75" x2="513.912" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1651 <line x1="519.072" y1="8.75" x2="519.072" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1652 <line x1="524.234" y1="0.75" x2="524.234" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1653 <line x1="529.395" y1="7.75" x2="529.395" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1654 <line x1="534.557" y1="5.75" x2="534.557" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1655 <line x1="539.719" y1="11.75" x2="539.719" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1656 <line x1="544.879" y1="9.75" x2="544.879" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1657 <line x1="550.041" y1="9.75" x2="550.041" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1658 <line x1="554.17" y1="1.75" x2="554.17" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1659 <line x1="559.332" y1="12.75" x2="559.332" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1660 <line x1="564.492" y1="13.75" x2="564.492" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1661 <line x1="569.654" y1="10.75" x2="569.654" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1662 <line x1="574.814" y1="8.75" x2="574.814" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1663 <line x1="579.977" y1="0.75" x2="579.977" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1664 <line x1="585.137" y1="7.75" x2="585.137" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1665 <line x1="590.299" y1="5.75" x2="590.299" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1666 </g>
1667 <defs>
1668 <clipPath id="clip0_2625_8152">
1669 <rect width="590" height="30" fill="white"/>
1670 </clipPath>
1671 </defs>
1672 </svg>
1673 <svg class="audio-sondwave-mobile" width="100%" height="100%" viewBox="0 0 102 30" fill="none" xmlns="http://www.w3.org/2000/svg">
1674 <g clip-path="url(#clip0_2625_8922)">
1675 <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1676 <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1677 <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1678 <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1679 <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1680 <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1681 <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1682 <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1683 <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1684 <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1685 <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1686 <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1687 <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1688 <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1689 <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1690 <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1691 <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1692 <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1693 <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1694 <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1695 <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5" stroke-linecap="round"/>
1696 </g>
1697 <defs>
1698 <clipPath id="clip0_2625_8922">
1699 <rect width="102" height="30" fill="white"/>
1700 </clipPath>
1701 </defs>
1702 </svg>
1703 </div>
1704 <div class="audio-time paragraph-micro-bold"> 00:00 </div>
1705 <div class="audio-button-mute">
1706 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none">
1707 <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"/>
1708 </svg>
1709 </div>
1710 </div>
1711 </div>
1712
1713
1714 <style>
1715
1716 .ptb-news__read-news .news-content p {
1717 margin-bottom: var(--space-md, 24px);
1718 }
1719
1720 .ptb-news__read-news .news-content strong {
1721 font-weight: var(--font-weight-bold);
1722 }
1723
1724 .ptb-news__read-news .news-content em {
1725 font-style: var(--font-style-italic);
1726 }
1727
1728 .ptb-news__read-news .news-content a {
1729 font-family: var(--font-family-base);
1730 font-style: var(--font-style-normal, normal);
1731 font-weight: var(--font-weight-bold, 700);
1732 font-size: var(--font-size-xs, 18px);
1733 line-height: var(--line-height-xl, 160%);
1734
1735 text-decoration-line: var(--text-decoration-underline, underline);
1736 color: #008542;
1737 }
1738
1739 body.high-contrast-active .ptb-news__read-news .news-content a {
1740 color: #E4F7E8;
1741 }
1742
1743 .ptb-news__read-news .news-content ul {
1744 padding-left: 27px;
1745 margin-top: -16px;
1746 }
1747
1748 .ptb-news__read-news .news-content ul li::marker {
1749 content: "■" !important;
1750 color: var(--color-secondary-medium) !important;
1751 font-size: var(--size-xxs);
1752 }
1753
1754 .ptb-news__read-news .news-content ul li {
1755 color: var(--color-text-primary-default);
1756 padding: 8px 0;
1757
1758 /*paragraph-sm-regular*/
1759 font-size: var(--font-size-xxs);
1760 line-height: var(--line-height-xl);
1761 font-weight: var(--font-weight-regular);
1762 font-style: var(--font-style-normal);
1763 text-decoration: var(--text-decoration-none);
1764
1765 margin-left: calc(-1* var(--space-sm));
1766 padding-left: var(--space-sm);
1767 }
1768
1769 .ptb-news__read-news .news-content ul li * {
1770 color: var(--color-text-primary-default);
1771 padding: 8px 0;
1772
1773 /*paragraph-sm-regular*/
1774 font-size: var(--font-size-xxs);
1775 line-height: var(--line-height-xl);
1776 font-weight: var(--font-weight-regular);
1777 font-style: var(--font-style-normal);
1778 text-decoration: var(--text-decoration-none);
1779 }
1780
1781 .ptb-news__read-news .news-content > * {
1782 grid-column-start: 3;
1783 grid-column-end: 11;
1784 }
1785
1786 <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" >
1787 .ptb-news__read-news .news-content > *:has(img) {
1788 grid-column-start: 2;
1789 grid-column-end: 12;
1790 }
1791
1792 </#if>
1793
1794 .ptb-news__read-news .news-content figure {
1795 margin-bottom: var(--space-sm, 16px);
1796 }
1797
1798 .ptb-news__read-news .news-content figure figcaption {
1799 display: flex;
1800 justify-content: space-between;
1801 align-items: flex-start;
1802 align-self: stretch;
1803 margin-top: var(--space-xxs, 8px);
1804 text-align: justify;
1805 }
1806
1807 .ptb-news__read-news .news-content figure figcaption,
1808 .ptb-news__read-news .news-content figure figcaption * {
1809 color: var(--color-neutral-700, #525252);
1810 font-family: var(--font-family-base);
1811 font-size: var(--font-size-xxxs, 14px);
1812 font-style: var(--font-style-italic, italic);
1813 font-weight: var(--font-weight-regular, 400);
1814 line-height: var(--line-height-xl, 160%);
1815 }
1816
1817 body.high-contrast-active .ptb-news__read-news .news-content figure figcaption,
1818 body.high-contrast-active .ptb-news__read-news .news-content figure figcaption * {
1819 color: var(--text-secondary-default, #F8F8F8);
1820 }
1821
1822 .ptb-news__read-news .news-content figure figcaption br {
1823 display: none;
1824 }
1825
1826 .ptb-news__read-news .news-content .embed-responsive {
1827 width: 100% !important;
1828 border-radius: var(--border-radius-md, 16px);
1829 margin-bottom: var(--space-md, 16px);
1830 }
1831
1832 .ptb-news__read-news .news-content img {
1833 width: 100%;
1834 height: auto;
1835 object-fit: cover;
1836 border-radius: var(--border-radius-md, 16px);
1837 }
1838
1839 <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Artigo" >
1840 .ptb-news__read-news .news-content img {
1841 aspect-ratio: 16/9;
1842 }
1843 </#if>
1844
1845 .ptb-news__read-news .news-content .paragraph_separator {
1846 display: flex;
1847 width: 100%;
1848 height: fit-content;
1849 justify-content: center;
1850 gap: 6px;
1851 }
1852
1853 .ptb-news__read-news .news-content .paragraph_separator .dot {
1854 height: var(--size-micro, 4px);
1855 width: var(--size-micro, 4px);
1856 background-color: #959595;
1857 border-radius: 100%;
1858 display: inline-block;
1859 }
1860
1861 .ptb-news__read-news .news-content * {
1862 font-family: var(--font-family-base);
1863 font-style: var(--font-style-normal, normal);
1864 font-weight: var(--font-weight-regular, 400);
1865 font-size: var(--font-size-xs, 18px);
1866 line-height: var(--line-height-xl, 160%);
1867 color: var(--color-neutral-800, #373737);
1868 }
1869
1870 body.high-contrast-active .ptb-news__read-news .news-content * {
1871 color: var(--text-primary-default, var(--color-neutral-100));
1872 }
1873
1874 .ptb-news__read-news .news-content h1,
1875 .ptb-news__read-news .news-content h1 *,
1876 .ptb-news__read-news .news-content h2,
1877 .ptb-news__read-news .news-content h2 *,
1878 .ptb-news__read-news .news-content h3,
1879 .ptb-news__read-news .news-content h3 *,
1880 .ptb-news__read-news .news-content h4,
1881 .ptb-news__read-news .news-content h4 *,
1882 .ptb-news__read-news .news-content h5,
1883 .ptb-news__read-news .news-content h5 *,
1884 .ptb-news__read-news .news-content h6,
1885 .ptb-news__read-news .news-content h6 * {
1886 color: var(--color-neutral-800, #373737) !important;
1887 }
1888
1889 body.high-contrast-active .ptb-news__read-news .news-content h1,
1890 body.high-contrast-active .ptb-news__read-news .news-content h1 *,
1891 body.high-contrast-active .ptb-news__read-news .news-content h2,
1892 body.high-contrast-active .ptb-news__read-news .news-content h2 *,
1893 body.high-contrast-active .ptb-news__read-news .news-content h3,
1894 body.high-contrast-active .ptb-news__read-news .news-content h3 *,
1895 body.high-contrast-active .ptb-news__read-news .news-content h4,
1896 body.high-contrast-active .ptb-news__read-news .news-content h4 *,
1897 body.high-contrast-active .ptb-news__read-news .news-content h5,
1898 body.high-contrast-active .ptb-news__read-news .news-content h5 *,
1899 body.high-contrast-active .ptb-news__read-news .news-content h6,
1900 body.high-contrast-active .ptb-news__read-news .news-content h6 * {
1901 color: var(--text-primary-default, var(--color-neutral-100)) !important;
1902 }
1903
1904 .ptb-news__read-news .news-content h1:last-child,
1905 .ptb-news__read-news .news-content h2:last-child,
1906 .ptb-news__read-news .news-content h3:last-child,
1907 .ptb-news__read-news .news-content h4:last-child,
1908 .ptb-news__read-news .news-content h5:last-child,
1909 .ptb-news__read-news .news-content h5:last-child,
1910 .ptb-news__read-news .news-content h6:last-child,
1911 .ptb-news__read-news .news-content p:last-child {
1912 padding-bottom: 0 !important;
1913 }
1914
1915 .ptb-news__read-news .news-content h1,
1916 .ptb-news__read-news .news-content h1 * {
1917 font-size: var(--font-size-xxl) !important;
1918 line-height: var(--line-height-sm) !important;
1919 font-weight: var(--font-weight-bold) !important;
1920 font-style: var(--font-style-normal) !important;
1921 text-decoration: var(--text-decoration-none) !important;
1922 }
1923
1924 .ptb-news__read-news .news-content h2,
1925 .ptb-news__read-news .news-content h2 * {
1926
1927 font-size: var(--font-size-xl) !important;
1928 line-height: var(--line-height-sm) !important;
1929 font-weight: var(--font-weight-bold) !important;
1930 font-style: var(--font-style-normal) !important;
1931 text-decoration: var(--text-decoration-none) !important;
1932
1933 }
1934
1935 .ptb-news__read-news .news-content h2 {
1936 margin-top: 48px !important;
1937 margin-bottom: var(--space-xl, 40px) !important;
1938
1939 }
1940
1941 .ptb-news__read-news .news-content h3,
1942 .ptb-news__read-news .news-content h3 * {
1943 font-size: var(--font-size-lg) !important;
1944 line-height: var(--line-height-sm) !important;
1945 font-weight: var(--font-weight-bold) !important;
1946 font-style: var(--font-style-normal) !important;
1947 text-decoration: var(--text-decoration-none) !important;
1948 }
1949
1950 .ptb-news__read-news .news-content h3 {
1951 margin-bottom: var(--space-sm, 16px) !important;
1952 margin-top: 48px !important;
1953 }
1954
1955 .ptb-news__read-news .news-content h4,
1956 .ptb-news__read-news .news-content h4 * {
1957 font-size: var(--font-size-md) !important;
1958 line-height: var(--line-height-md) !important;
1959 font-weight: var(--font-weight-bold) !important;
1960 font-style: var(--font-style-normal) !important;
1961 text-decoration: var(--text-decoration-none) !important;
1962 }
1963
1964 .ptb-news__read-news .news-content h4 {
1965 margin-top: 48px !important;
1966 margin-bottom: var(--space-sm, 16px) !important;
1967 }
1968
1969 .ptb-news__read-news .news-content h5,
1970 .ptb-news__read-news .news-content h5 * {
1971 font-size: var(--font-size-sm) !important;
1972 line-height: var(--line-height-md) !important;
1973 font-weight: var(--font-weight-bold) !important;
1974 font-style: var(--font-style-normal) !important;
1975 text-decoration: var(--text-decoration-none) !important;
1976 }
1977
1978 .ptb-news__read-news .news-content h5 {
1979 margin-top: 48px !important;
1980 margin-bottom: var(--space-sm, 16px) !important;
1981 }
1982
1983 .ptb-news__read-news .news-content table {
1984 border-collapse: collapse;
1985 border: none;
1986 width: 100% !important;
1987 margin: 24px 0;
1988 }
1989
1990 .ptb-news__read-news .news-content table * {
1991 font-size: var(--font-size-xxs, 16px);
1992 font-style: var(--font-style-normal, normal);
1993 font-weight: var(--font-weight-regular, 400);
1994 line-height: var(--line-height-xl, 160%);
1995 color: var(--color-neutral-800, #373737);
1996 border: 0;
1997 }
1998
1999 body.high-contrast-active .ptb-news__read-news .news-content table * {
2000 color: var(--text-primary-default, var(--color-neutral-100));
2001 }
2002
2003 .ptb-news__read-news .news-content table tbody > :first-child,
2004 .ptb-news__read-news .news-content table tbody > :first-child * {
2005 font-weight: var(--font-weight-bold, 700);
2006 flex: 1 0 0;
2007 background: var(--background-Surface-level-02, #F8F8F8);
2008 }
2009
2010 body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child,
2011 body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child * {
2012 background: #373737;
2013 }
2014
2015 .ptb-news__read-news .news-content table tbody {
2016 display: flex;
2017 flex-direction: column;
2018 }
2019
2020 .ptb-news__read-news .news-content table tbody * {
2021 display: flex;
2022 height: 100%;
2023 align-items: center;
2024 flex: 1 0 0;
2025 }
2026
2027 .ptb-news__read-news .news-content table tbody tr * {
2028 padding: 23px var(--space-lg, 32px);
2029 }
2030
2031
2032 .ptb-news__read-news .news-content table tbody tr {
2033 border-radius: var(--border-radius-md);
2034 border: var(--border-width-hairline, 1px) solid #EEEEEE;
2035 }
2036
2037 body.high-contrast-active .ptb-news__read-news .news-content table tbody tr {
2038 border: var(--border-width-hairline, 1px) solid #525252;
2039 }
2040
2041 .ptb-news__read-news .news-content table tbody tr:not(:last-child) {
2042 border-bottom-left-radius: 0;
2043 border-bottom-right-radius: 0;
2044 }
2045
2046 .ptb-news__read-news .news-content table tbody tr:not(:first-child) {
2047 border-top-left-radius: 0;
2048 border-top-right-radius: 0;
2049 border-top: none;
2050 }
2051
2052 .ptb-news__read-news .news-content table tbody tr td:not(:last-child) {
2053 border-right: var(--border-width-hairline, 1px) solid #EEEEEE;
2054 }
2055
2056 body.high-contrast-active .ptb-news__read-news .news-content table tbody tr td:not(:last-child) {
2057 border-right: var(--border-width-hairline, 1px) solid #525252;
2058 }
2059
2060 .ptb-news__read-news .news-content table tbody tr:first-child td {
2061 border-top: var(--border-width-hairline, 1px) solid #EEEEEE;
2062 border-bottom: var(--border-width-hairline, 1px) solid #EEEEEE;
2063 }
2064
2065 body.high-contrast-active .ptb-news__read-news .news-content table tbody tr:first-child td {
2066 border-top: var(--border-width-hairline, 1px) solid #525252;
2067 border-bottom: var(--border-width-hairline, 1px) solid #525252;
2068 }
2069
2070 .ptb-news__read-news .news-content table tbody tr td:first-child {
2071 padding-left: 0;
2072 }
2073
2074 .ptb-news__read-news .news-content table tbody tr td:last-child{
2075 padding-right: 0;
2076 }
2077
2078 .ptb-news__read-news .news-content audio {
2079 display: none;
2080 }
2081
2082 .ptb-news__read-news .news-content .audio-template {
2083 display: flex;
2084 padding: var(--space-sm, 16px);
2085 align-items: center;
2086 gap: var(--space-md, 24px);
2087 align-self: stretch;
2088 border-radius: var(--border-radius-lg, 16px);
2089 border: var(--border-width-hairline, 1px) solid var(--border-color-mid);
2090 background: var(--background-card-default, #FFF);
2091 max-height: var(--size-giant, 72px);
2092 margin: 48px 0;
2093 }
2094
2095 body.high-contrast-active .ptb-news__read-news .news-content .audio-template {
2096 background: var(--background-card-default, #010101);
2097 border: var(--border-width-hairline, 1px) solid #525252;
2098 }
2099
2100 .ptb-news__read-news .news-content .audio-template .audio-button-play {
2101 display: flex;
2102 width: var(--size-xl, 40px);
2103 height: var(--size-xl, 40px);
2104 justify-content: center;
2105 align-items: center;
2106 flex-grow: 0;
2107 flex-shrink: 0;
2108 cursor: pointer;
2109 }
2110
2111 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon,
2112 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon {
2113 fill: #FFFFFF;
2114 }
2115
2116 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon path,
2117 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon path {
2118 fill: #010101;
2119 }
2120
2121 .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-play-icon {
2122 display: block;
2123 }
2124
2125 .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-pause-icon {
2126 display: none;
2127 }
2128
2129 .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-play-icon {
2130 display: none;
2131 }
2132
2133 .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-pause-icon {
2134 display: block;
2135 }
2136
2137 .ptb-news__read-news .news-content .audio-template .audio-sondwave {
2138 display: flex;
2139 flex-direction: column;
2140 align-items: flex-start;
2141 gap: var(--space-xxs, 8px);
2142 flex: 1 0 0;
2143 height: 100%;
2144 flex-grow: 1;
2145 flex-shrink: 1;
2146 }
2147
2148 .ptb-news__read-news .news-content .audio-template .audio-sondwave line {
2149 stroke: #008542;
2150 }
2151
2152 .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active {
2153 stroke: #90EE90;
2154 }
2155
2156 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line {
2157 stroke: #E4F7E8;
2158 }
2159
2160 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active {
2161 stroke: #666666;
2162 }
2163
2164 .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile {
2165 display: none;
2166 }
2167
2168 .ptb-news__read-news .news-content .audio-template .audio-time {
2169 display: flex;
2170 flex-direction: column;
2171 align-items: flex-start;
2172 gap: var(--space-xxs, 8px);
2173 flex: 1 0 0;
2174 color: var(--text-primary-accent, #008542);
2175 text-align: center;
2176 font-family: var(--font-family-base);
2177 line-height: 124% !important;
2178 flex-grow: 0;
2179 flex-shrink: 0;
2180 }
2181
2182 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-time {
2183 color: var(--text-primary-accent, #E4F7E8);
2184 }
2185
2186 .ptb-news__read-news .news-content .audio-template .audio-button-mute {
2187 width: var(--size-lg, 32px);
2188 height: var(--size-lg, 32px);
2189 flex-grow: 0;
2190 flex-shrink: 0;
2191 cursor: pointer;
2192 }
2193
2194 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-mute svg path {
2195 stroke: white;
2196 fill: none;
2197 }
2198
2199 .ptb-news__read-news .news-content .audio-template.audio-muted .audio-button-mute {
2200 opacity: 0.6;
2201 }
2202
2203 @media screen and (max-width: 1023px) {
2204 .ptb-news__read-news .news-content > * {
2205 grid-column-start: 1;
2206 grid-column-end: 9;
2207 }
2208 }
2209
2210 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
2211
2212 .ptb-news__read-news .news-content * {
2213 font-size: var(--font-size-xxs, 16px);
2214 }
2215
2216 .ptb-news__read-news .news-content > * {
2217 grid-column-start: 1;
2218 grid-column-end: 5;
2219 }
2220
2221 .ptb-news__read-news .news-content h1,
2222 .ptb-news__read-news .news-content h1 * {
2223 font-size: var(--font-size-xl) !important;
2224 line-height: var(--line-height-sm) !important;
2225 font-weight: var(--font-weight-bold) !important;
2226 font-style: var(--font-style-normal) !important;
2227 text-decoration: var(--text-decoration-none) !important;
2228
2229 }
2230
2231 .ptb-news__read-news .news-content h2,
2232 .ptb-news__read-news .news-content h2 * {
2233 font-size: var(--font-size-lg) !important;
2234 line-height: var(--line-height-sm) !important;
2235 font-weight: var(--font-weight-bold) !important;
2236 font-style: var(--font-style-normal) !important;
2237 text-decoration: var(--text-decoration-none) !important;
2238 }
2239
2240 .ptb-news__read-news .news-content h2 {
2241 margin-bottom: var(--space-md, 24px) !important;
2242 }
2243
2244 .ptb-news__read-news .news-content h3,
2245 .ptb-news__read-news .news-content h3 * {
2246 font-size: var(--font-size-md) !important;
2247 line-height: var(--line-height-sm) !important;
2248 font-weight: var(--font-weight-bold) !important;
2249 font-style: var(--font-style-normal) !important;
2250 text-decoration: var(--text-decoration-none) !important;
2251 }
2252
2253 .ptb-news__read-news .news-content h3 {
2254 margin-top: var(--space-xxs, 8px) !important;
2255 }
2256
2257 .ptb-news__read-news .news-content h4,
2258 .ptb-news__read-news .news-content h4 * {
2259 font-size: var(--font-size-sm) !important;
2260 line-height: var(--line-height-md) !important;
2261 font-weight: var(--font-weight-bold) !important;
2262 font-style: var(--font-style-normal) !important;
2263 text-decoration: var(--text-decoration-none) !important;
2264 }
2265
2266 .ptb-news__read-news .news-content h5,
2267 .ptb-news__read-news .news-content h5 * {
2268 font-size: var(--font-size-xs) !important;
2269 line-height: var(--line-height-md) !important;
2270 font-weight: var(--font-weight-bold) !important;
2271 font-style: var(--font-style-normal) !important;
2272 text-decoration: var(--text-decoration-none) !important;
2273 }
2274
2275 .ptb-news__read-news .news-content figure figcaption {
2276 flex-direction: column;
2277 gap: var(--space-xxs, 8px);
2278 }
2279
2280 .ptb-news__read-news .news-content figure figcaption,
2281 .ptb-news__read-news .news-content figure figcaption * {
2282 font-size: var(--font-size-micro, 12px);
2283 }
2284
2285 .ptb-news__read-news .news-content table {
2286 margin-top: var(--space-xxs, 8px);
2287 margin-bottom: var(--space-lg, 32px);
2288 }
2289
2290 .ptb-news__read-news .news-content table * {
2291 font-size: var(--font-size-micro, 12px);
2292 line-height: 19.2%;
2293 }
2294
2295 .ptb-news__read-news .news-content table tbody * {
2296 height: 43px;
2297 padding: var(--space-xs, 12px);
2298 }
2299
2300 .ptb-news__read-news .news-content .audio-template {
2301 margin-top: var(--space-xxs, 8px);
2302 margin-bottom: var(--space-lg, 32px);
2303 }
2304 }
2305
2306 @media screen and (max-width: 500px) {
2307 .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-desktop {
2308 display: none;
2309 }
2310
2311 .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile {
2312 display: block;
2313 }
2314 }
2315 </style>
2316
2317 <script>
2318 <#assign configureLinkTab = "configureLinkTab_" + randomNumber(5)>
2319
2320 function ${configureLinkTab}() {
2321 const root = document.querySelector(".ptb-news__read-news");
2322 const newsContentElement = root.querySelector(".news-content");
2323 const pList = newsContentElement.querySelectorAll("p");
2324 pList.forEach((pElement) => {
2325 const cont = pElement.innerHTML.trim();
2326 if (cont == "" || cont == " ") {
2327 newsContentElement.removeChild(pElement);
2328 }
2329 });
2330 }
2331
2332 ${configureLinkTab}();
2333
2334 <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" >
2335
2336 function resizeMediaInfographic() {
2337 if (window.innerWidth > 1024) {
2338 const contents = document.querySelectorAll(".ptb-news__read-news .news-content p");
2339 contents.forEach((content) => {
2340 content.querySelector("img") && (content.style.gridColumn = "2 / 12");
2341 });
2342 }
2343 else {
2344 const contents = document.querySelectorAll(".ptb-news__read-news .news-content p");
2345 contents.forEach((content) => {
2346 content.querySelector("img") && (content.style.gridColumn = "");
2347 });
2348
2349 }
2350 }
2351 resizeMediaInfographic();
2352 </#if>
2353
2354
2355
2356 document.addEventListener("DOMContentLoaded", () => {
2357 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");
2358
2359 headers.forEach((header) => {
2360
2361 const currentLevel = parseInt(header.tagName.charAt(1));
2362
2363 if (currentLevel >= 1 && currentLevel <= 5) {
2364
2365 const newLevel = currentLevel + 1;
2366 const newTagName = "h" + newLevel;
2367
2368 // Criar a nova tag e transferir o conteúdo
2369 const newHeader = document.createElement(newTagName);
2370 newHeader.innerHTML = header.innerHTML;
2371
2372 // Substituir a tag antiga pela nova
2373 header.parentNode.replaceChild(newHeader, header);
2374 }
2375 });
2376
2377 <#assign typeOfNews = getFirstCategoryOfVocabulary(assetEntry, typeOfNewsVocabulary) />
2378
2379 <#if typeOfNews?? && typeOfNews?has_content && typeOfNews == "Infográfico" >
2380 resizeMediaInfographic();
2381 window.addEventListener("resize", resizeMediaInfographic);
2382 </#if>
2383 });
2384
2385 AUI().ready(()=>{
2386 const audiosContainer = document.querySelectorAll(".ptb-news__read-news .news-content .audio-content");
2387 const audioTemplate = document.querySelector(".ptb-news__read-news .news-content .audio-template");
2388
2389 audiosContainer.forEach((audioContainer)=>{
2390
2391 const audio = audioContainer.querySelector("audio");
2392 const audioInterface = audioTemplate.cloneNode(true);
2393
2394 const sondwave = audioInterface.querySelector(".audio-sondwave");
2395 const linesDesktop = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-desktop line");
2396 const linesMobile = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-mobile line");
2397
2398 const playPauseButtonAudioInterface = audioInterface.querySelector(".audio-button-play");
2399
2400 playPauseButtonAudioInterface.addEventListener("click", ()=>{
2401 if(audioInterface.classList.contains("audio-play")) {
2402 audioInterface.classList.replace("audio-play", "audio-pause");
2403 audio.pause();
2404 }
2405 else {
2406
2407 audiosContainer.forEach((audioContainer)=>{
2408 const otherAudio = audioContainer.querySelector("audio");
2409 const otherAudioInterface = audioContainer.querySelector(".audio-button-play");
2410 !otherAudio.paused && otherAudioInterface.click();
2411 });
2412
2413 audioInterface.classList.replace("audio-pause", "audio-play");
2414 audio.play();
2415 }
2416 });
2417
2418 const audioMuteButton = audioInterface.querySelector(".audio-button-mute");
2419
2420 audioMuteButton.addEventListener("click", ()=>{
2421 if(audioInterface.classList.contains("audio-unmuted")) {
2422 audioInterface.classList.replace("audio-unmuted", "audio-muted");
2423 audio.muted = true;
2424 }
2425 else {
2426 audioInterface.classList.replace("audio-muted", "audio-unmuted");
2427 audio.muted = false;
2428 }
2429 });
2430
2431 const audioTime = audioInterface.querySelector(".audio-time");
2432 audioTime.textContent = Math.floor(audio.duration / 60) + ":" + Math.floor(audio.duration % 60);
2433
2434
2435 audio.addEventListener("timeupdate", ()=>{
2436 let minutes = Math.floor((audio.duration - audio.currentTime) / 60);
2437 let seconds = Math.floor((audio.duration - audio.currentTime) % 60);
2438
2439 minutes = minutes < 10? "0" + minutes : minutes;
2440 seconds = seconds < 10? "0" + seconds : seconds;
2441
2442 audioTime.textContent = minutes + ":" + seconds;
2443
2444 const progress = (audio.currentTime / audio.duration) * 100;
2445
2446 linesDesktop.forEach(function(line, index) {
2447 const lineProgress = (index / linesDesktop.length) * 100;
2448 if (progress >= lineProgress) {
2449 !line.classList.contains("line-active") && line.classList.add("line-active");
2450 } else {
2451 line.classList.contains("line-active") && line.classList.remove("line-active");
2452 }
2453 });
2454
2455 linesMobile.forEach(function(line, index) {
2456 const lineProgress = (index / linesMobile.length) * 100;
2457 if (progress >= lineProgress) {
2458 !line.classList.contains("line-active") && line.classList.add("line-active");
2459 } else {
2460 line.classList.contains("line-active") && line.classList.remove("line-active");
2461 }
2462 });
2463 });
2464
2465
2466 sondwave.addEventListener("click", (event)=>{
2467 const distanceLeft = (event.clientX - sondwave.getBoundingClientRect().left)/sondwave.offsetWidth;
2468 audio.currentTime = audio.duration * distanceLeft;
2469 });
2470
2471 audioInterface.style.display = "";
2472 audioContainer.appendChild(audioInterface);
2473 });
2474
2475 });
2476 </script>
2477</#macro>
2478
2479
2480<#-- ################################################################################################################## -->
2481
2482<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# -->
2483<#macro renderLinks newsInfo>
2484 <#if newsInfo.links?size != 0>
2485 <#--videos "escondidos" que serão unidos a .ptb-news__read-content -->
2486
2487 <div class="ptb-news__links-container d-none ">
2488 <div id="ptb-news__links-identifiers">
2489 <#assign separator = "">
2490 <#list newsInfo.links as link>
2491 ${link.id};
2492 <#assign separator = ";">
2493 </#list>
2494 </div>
2495 <#list newsInfo.links as link>
2496 <#assign link_index = link?index>
2497 <#assign linkUrl = "#">
2498 <#assign target = "_blank">
2499 <#assign linkClass = "">
2500
2501 <div id="ptb-news__link-container-${link_index}">
2502 <#if link.externalLink?has_content>
2503 <#assign linkUrl = link.externalLink>
2504 <#assign target = "_blank">
2505 <#assign linkClass = "external-link">
2506 <#elseif link.pageLink?has_content>
2507 <#assign linkUrl = link.pageLink>
2508 <#assign target = "_self">
2509 <#assign linkClass = "internal-page-link">
2510 <#elseif link.file.mimeType?has_content>
2511 <#assign linkUrl = link.file.url>
2512 <#assign target = "_blank">
2513 <#assign linkClass = "file-link">
2514 </#if>
2515
2516 <#-- PDF icon -->
2517 <#if link.iconType == "Opção78730408" >
2518 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
2519 xmlns="http://www.w3.org/2000/svg">
2520 <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"
2521 fill="#008542"/>
2522 <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"
2523 fill="#008542"/>
2524 <path d="M17.2695 20.654V11.894H22.2735V13.358H18.9735V15.59H21.9015V17.054H18.9735V20.654H17.2695Z"
2525 fill="#008542"/>
2526 <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"
2527 stroke="#008542" stroke-width="1.5" stroke-linecap="round"
2528 stroke-linejoin="round"/>
2529 </svg>
2530
2531 <#-- JPG icon -->
2532 <#elseif link.iconType == "Opção89889679" >
2533 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
2534 xmlns="http://www.w3.org/2000/svg">
2535 <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"
2536 fill="#008542"/>
2537 <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"
2538 fill="#008542"/>
2539 <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"
2540 fill="#008542"/>
2541 <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"
2542 stroke="#008542" stroke-width="1.5" stroke-linecap="round"
2543 stroke-linejoin="round"/>
2544 </svg>
2545 <#-- DOC icon -->
2546 <#elseif link.iconType == "Opção15480314" >
2547 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
2548 xmlns="http://www.w3.org/2000/svg">
2549 <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"
2550 fill="#008542"/>
2551 <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"
2552 fill="#008542"/>
2553 <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"
2554 fill="#008542"/>
2555 <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"
2556 stroke="#008542" stroke-width="1.5" stroke-linecap="round"
2557 stroke-linejoin="round"/>
2558 </svg>
2559 <#-- External link icon -->
2560 <#elseif link.iconType == "Opção43823553" >
2561 <svg width="24" height="24" viewBox="0 0 32 32" fill="none"
2562 xmlns="http://www.w3.org/2000/svg">
2563 <path opacity="0.98"
2564 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"
2565 stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
2566 </svg>
2567 <#-- Internal page link icon -->
2568 <#elseif link.iconType == "Opção64212757" >
2569 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#008542" viewBox="0 0 256 256">
2570 <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">
2571 </path>
2572 </svg>
2573 <#-- Download link icon -->
2574 <#elseif link.iconType == "Opção20766606" >
2575 <svg width="24" height="24" viewBox="0 0 32 32" fill="none"
2576 xmlns="http://www.w3.org/2000/svg">
2577 <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"
2578 stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
2579 </svg>
2580 </#if>
2581<#if link.title?? && link.title?has_content>
2582 <a href="${linkUrl}" class="link ${linkClass}" target="${target}">${link.title}</a>
2583 </#if>
2584 </div>
2585 </#list>
2586 </div>
2587
2588 <script>
2589 var newsContent_code = document.querySelector(".news-content").innerHTML;
2590
2591 var linksIdentifiers = document.querySelector("#ptb-news__links-identifiers").innerHTML.trim().split(";");
2592 linksIdentifiers.forEach((linkIdentifier, index) => {
2593 const linkIdentifierContent = document.querySelector("#ptb-news__link-container-" + index);
2594 if (linkIdentifierContent) {
2595 const tag = "#[" + linkIdentifier.trim() + "]";
2596 const splitContent = newsContent_code.split(tag);
2597 newsContent_code = splitContent.join(linkIdentifierContent.innerHTML);
2598 //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent);
2599 }
2600 });
2601
2602
2603 var ptb_news__read_content = document.querySelector(".news-content");
2604 ptb_news__read_content.innerHTML = newsContent_code;
2605
2606 const links_ptb_news = document.querySelectorAll(".news-content a");
2607 links_ptb_news.forEach((link) => {
2608 link.classList.add("link-ptb-news");
2609 });
2610
2611 </script>
2612
2613 <style>
2614 .ptb-news__read-news .ptb-news__link a {
2615 font-family: var(--font-family-base);
2616 font-style: var(--font-style-normal, normal);
2617 font-weight: var(--font-weight-bold, 700);
2618 font-size: var(--font-size-xxs, 16px);
2619 line-height: var(--line-height-xl, 160%);
2620 text-decoration-line: var(--text-decoration-underline, underline);
2621 color: #008542;
2622 }
2623
2624 body.high-contrast-active .ptb-news__read-news .ptb-news__link a {
2625 color: #E4F7E8;
2626 }
2627
2628 .ptb-news__read-news .news-content .link {
2629 font-family: var(--font-family-base);
2630 font-style: var(--font-style-normal, normal);
2631 font-weight: var(--font-weight-bold, 700);
2632 font-size: var(--font-size-xs, 18px);
2633 line-height: var(--line-height-xl, 160%);
2634
2635 text-decoration-line: var(--text-decoration-underline, underline);
2636 color: #008542;
2637 }
2638
2639 body.high-contrast-active .ptb-news__read-news .news-content .link {
2640 color: #E4F7E8;
2641 }
2642
2643 body.high-contrast-active .ptb-news__read-news .news-content svg path {
2644 stroke: var(--color-neutral-500, #D7D7D7);
2645 fill: rgba(255, 255, 255, 0.32);
2646 }
2647
2648 .ptb-news__read-news .news-content .ptb-link__wrapper {
2649 display: flex;
2650 flex-direction: column;
2651 gap: 0;
2652 margin-top: -24px;
2653 }
2654
2655 .ptb-news__read-news .news-content .ptb-link__wrapper svg {
2656 margin-right: var(--space-sm, 16px);
2657 }
2658
2659 .ptb-news__read-news .news-content .ptb-link__wrapper .first {
2660 gap: 0 !important;
2661 }
2662
2663 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
2664 .ptb-news__read-news .news-content .link {
2665 font-size: var(--font-size-xxs, 16px);
2666 }
2667 }
2668 </style>
2669 </#if>
2670</#macro>
2671
2672<#-- ################################################################################################################## -->
2673
2674<#-- ################################################################################################################## -->
2675
2676<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# -->
2677<#macro renderCite>
2678 <div class="ptb-news__cite-container">
2679 <div class="ptb-news__cite-container-breakpoint breakpoint">
2680 <div class="ptb-news__cite-container-col col-1-12 md-col-1-8 sm-col-1-4">
2681 <div class="ptb-news__cite-title">
2682 <#if locale?lower_case == "pt_br">
2683 Notas
2684 <#else>
2685 Notes
2686 </#if>
2687 </div>
2688
2689 <div class="ptb-news__cites-elements">
2690 </div>
2691 </div>
2692 </div>
2693 </div>
2694
2695 <script>
2696 function positionCitesText(parentNodeCitesText) {
2697
2698 parentNodeCitesText.forEach((parentNodeCiteText)=>{
2699 if(window.innerWidth > 1024) {
2700 parentNodeCiteText.style.display="";
2701 parentNodeCiteText.style.gridColumnStart = "11";
2702 parentNodeCiteText.style.gridColumnEnd = "13";
2703 }
2704 else {
2705 parentNodeCiteText.style.display="none";
2706 parentNodeCiteText.style.gridColumnStart = "";
2707 parentNodeCiteText.style.gridColumnEnd = "";
2708 }
2709 });
2710 }
2711
2712 function addCitesTextMobile(citesText) {
2713 const citesContainer = document.querySelector(".ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements");
2714
2715 if(citesContainer.children.length === 0) {
2716 citesContainer && citesText.forEach((citeText)=>{
2717 citesContainer.appendChild(citeText.cloneNode(true));
2718 });
2719 }
2720 }
2721
2722 const citesText = document.querySelectorAll(".news-content cite");
2723
2724 if (citesText.length > 0) {
2725 const parentNodeCitesText = [...citesText].map((citeText)=>citeText.parentNode);
2726 positionCitesText(parentNodeCitesText);
2727 addCitesTextMobile(citesText);
2728 }
2729 else {
2730 const citesContainer = document.querySelector(".ptb-news__cite-container");
2731 citesContainer && (citesContainer.style.display="none");
2732 }
2733
2734 document.addEventListener('DOMContentLoaded', ()=>{
2735
2736 const citesText = document.querySelectorAll(".news-content cite");
2737
2738 if (citesText.length > 0) {
2739 const parentNodeCitesText = [...citesText].map((citeText)=>citeText.parentNode);
2740
2741 positionCitesText(parentNodeCitesText);
2742 addCitesTextMobile(citesText);
2743
2744 window.addEventListener('resize', ()=>{positionCitesText(parentNodeCitesText)});
2745 }
2746 else {
2747 const citesContainer = document.querySelector(".ptb-news__cite-container");
2748 citesContainer && (citesContainer.style.display="none");
2749 }
2750 });
2751
2752 </script>
2753
2754 <style>
2755
2756 .ptb-news__read-news-post cite {
2757 color: var(--color-neutral-800, #373737);
2758 font-family: var(--font-family-base);
2759 font-size: var(--font-size-xxxs, 14px) !important;
2760 font-style: var(--font-style-normal, normal);
2761 font-weight: var(--font-weight-regular, 400);
2762 line-height: var(--line-height-xl, 160%);
2763 }
2764
2765 .ptb-news__read-news-post cite a{
2766 font-size: var(--font-size-xxxs, 14px) !important;
2767 }
2768
2769 body.high-contrast-active .ptb-news__read-news-post cite {
2770 color: var(--text-primary-default, var(--color-neutral-100));
2771 }
2772
2773 .ptb-news__read-news-post .news-content cite,
2774 .ptb-news__read-news-post .ptb-news__cite-container cite {
2775 display: block;
2776 padding-left: var(--space-md);
2777 border-left: var(--border-width-hairline, 1px) solid var(--color-neutral-500, #D7D7D7);
2778 }
2779
2780 @media screen and (min-width: 1025px) {
2781 .ptb-news__read-news-post .ptb-news__cite-container {
2782 display: none;
2783 }
2784 }
2785
2786 @media screen and (max-width: 1025px) {
2787 .ptb-news__read-news .ptb-news__cite-container .link {
2788 text-decoration-line: var(--text-decoration-underline, underline);
2789 color: #008542;
2790 }
2791
2792 body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container .link {
2793 color: #E4F7E8;
2794 }
2795
2796 body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container svg path {
2797 stroke: var(--color-neutral-500, #D7D7D7);
2798 fill: rgba(255, 255, 255, 0.32);
2799 }
2800
2801 .ptb-news__read-news-post .ptb-news__cite-container {
2802 display: grid;
2803 background: var(--background-surface-level-03, #EEE);
2804 }
2805
2806 body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container {
2807 background: var(--background-surface-level-03, #525252);
2808 }
2809
2810 .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col {
2811 padding: var(--space-xxl) 0;
2812 display: flex;
2813 flex-direction: column;
2814 gap: var(--space-lg, 32px);
2815 }
2816
2817 .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements {
2818 display: flex;
2819 flex-direction: column;
2820 gap: var(--space-lg, 32px);
2821 }
2822
2823 .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title {
2824 color: var(--color-neutral-800, #373737);
2825 font-size: var(--font-size-sm, 20px);
2826 font-style: var(--font-style-normal, normal);
2827 font-weight: var(--font-weight-bold, 700);
2828 line-height: var(--line-height-xl, 160%);
2829 }
2830
2831 body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title {
2832 color: var(--text-primary-default, var(--color-neutral-100));
2833 }
2834 }
2835 </style>
2836
2837</#macro>
2838
2839<#-- ################################################################################################################## -->
2840
2841
2842<#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### -->
2843<#macro renderGallery newsInfo>
2844 <#if newsInfo.galleryItems?size == 0>
2845 <#return />
2846 </#if>
2847
2848 <div class="gallery-breakpoint breakpoint">
2849 <div class="gallery col-3-11 md-col-1-8 sm-col-1-4">
2850
2851 <div class="title-container">
2852 <svg class="icon" viewBox="0 0 26 23" fill="none" xmlns="http://www.w3.org/2000/svg">
2853 <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"
2854 stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
2855 <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"
2856 stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
2857 </svg>
2858 <p class="title">
2859 <#if locale == "pt_BR"> Galeria de Imagens <#else > Image gallery </#if>
2860 </p>
2861 </div>
2862
2863 <div class="image-container">
2864 <#list newsInfo.galleryItems as gItem>
2865 <div class="modal-image-fragment">
2866 <div class="modal-image-container">
2867 <span class="click-image" ></span>
2868
2869 <div class="image-player-container">
2870 <span class="close-image">
2871 <svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
2872 <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"/>
2873 <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"/>
2874 </svg>
2875 </span>
2876 <div class="image-player-session">
2877 <img width="274px" height="152px" src="${gItem.image.url}" alt="${gItem.image.alt}"/>
2878 </div>
2879 </div>
2880 </div>
2881 </div>
2882
2883 </#list>
2884 </div>
2885 </div>
2886 </div>
2887
2888 <style>
2889
2890 .ptb-news__read-news .gallery {
2891 padding-top: 42px;
2892 }
2893
2894 .ptb-news__read-news .gallery * {
2895 margin: 0;
2896 padding: 0;
2897 }
2898
2899 .ptb-news__read-news .gallery {
2900 display: flex;
2901 gap: var(--space-xl, 40px);
2902 flex-direction: column;
2903 }
2904
2905 .ptb-news__read-news .gallery .title-container {
2906 display: flex;
2907 align-items: center;
2908 gap: var(--space-sm, 16px);
2909 }
2910
2911 .ptb-news__read-news .gallery .title-container svg {
2912 width: var(--size-md, 24px);
2913 height: 21px;
2914 }
2915
2916 .ptb-news__read-news .gallery .title-container .title {
2917 color: var(--color-neutral-800, #373737);
2918 font-family: var(--font-family-base);
2919 font-size: var(--font-size-lg);
2920 font-style: var(--font-style-normal);
2921 font-weight: var(--font-weight-bold);
2922 line-height: var(--line-height-md);
2923 }
2924
2925 body.high-contrast-active .ptb-news__read-news .gallery .title-container .title {
2926 color: var(--color-neutral-100);
2927 }
2928
2929 .ptb-news__read-news .gallery .image-container {
2930 display: flex;
2931 gap: var(--space-sm, 16px);
2932 flex-wrap: wrap;
2933 }
2934
2935 .ptb-news__read-news .gallery .image-container .modal-image-fragment {
2936 width: inherit;
2937 height: inherit;
2938 max-height: calc(100vw/2);
2939 padding: 0;
2940 margin: 0;
2941 overflow: hidden;
2942 }
2943
2944 .ptb-news__read-news .gallery .image-container .modal-image-fragment * {
2945 box-sizing: border-box;
2946 margin: 0;
2947 padding: 0;
2948 }
2949
2950 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container {
2951 width: 100%;
2952 height: inherit;
2953 display: flex;
2954 justify-content: center;
2955 align-items: center;
2956 cursor: pointer;
2957 position: relative;
2958 }
2959
2960 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing {
2961 position: fixed;
2962 top: 0;
2963 left: 0;
2964 width: 100vw !important;
2965 height: 100vh !important;
2966 z-index: 9999 !important;
2967 background-color: rgba(0, 0, 0, 0.75);
2968 max-height: 100vh;
2969 }
2970
2971 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .click-image {
2972 height: 100%;
2973 width: 100%;
2974 position: absolute;
2975 z-index: 3;
2976 }
2977
2978 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container {
2979 width: 100%;
2980 height: 100%;
2981 }
2982
2983 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing {
2984 position: relative;
2985 width: 90vw !important;
2986 height: 80vh !important;
2987 z-index: 9999 !important;
2988 background-color: rgba(0, 0, 0, 0.75);
2989 border-radius: var(--border-radius-card);
2990 }
2991
2992 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image {
2993 display: none;
2994 position: absolute;
2995 top: 0;
2996 right: 0;
2997 transform: translate(100%, -100%);
2998 z-index: 99999;
2999 }
3000
3001 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) {
3002 fill: var(--background-Surface-level-01, #010101);
3003 }
3004
3005 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) {
3006 stroke: #E4F7E8;
3007 }
3008
3009 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .close-image.image-active {
3010 display: block;
3011 }
3012
3013 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .image-player-session {
3014 width: 100%;
3015 height: 100%;
3016 }
3017
3018 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session {
3019 width: 90vw !important;
3020 height: 80vh !important;
3021 z-index: 9999 !important;
3022 background-color: rgba(0, 0, 0, 0.75);
3023 border-radius: var(--border-radius-card);
3024 overflow: hidden;
3025 }
3026
3027 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container .image-player-session img {
3028 object-fit: cover;
3029 }
3030
3031 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session img {
3032 width: 100%;
3033 height: 100%;
3034 margin-left: 0 !important;
3035 max-height: 100vh;
3036 }
3037
3038 .ptb-news__read-news .gallery .image-container img {
3039 width: 274px;
3040 height: 152px;
3041 border-radius: var(--border-radius-md, 8px);
3042 cursor: pointer;
3043 }
3044
3045 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
3046
3047 .ptb-news__read-news .gallery {
3048 padding-top: var(--space-xl, 40px);
3049 }
3050
3051 .ptb-news__read-news .gallery .image-container {
3052 gap: var(--space-xxs, 8px);
3053 }
3054
3055 .ptb-news__read-news .gallery .image-container img {
3056 width: 296px;
3057 height: 180px;
3058 }
3059
3060 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing .image-player-container.image-playing {
3061 transform: rotate(90deg);
3062 transform-origin: center;
3063 width: 80vh !important;
3064 height: 90vw !important;
3065 }
3066
3067 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container.image-playing .image-player-container.image-playing img{
3068 cursor: pointer;
3069 }
3070
3071 .ptb-news__read-news .gallery .image-container .modal-image-fragment .modal-image-container .image-player-container.image-playing .image-player-session {
3072 width: 80vh !important;
3073 height: 90vw !important;
3074 }
3075 }
3076
3077 </style>
3078
3079 <script>
3080 const allModalImagesFragment = document.querySelectorAll(".ptb-news__read-news .gallery .modal-image-fragment");
3081 allModalImagesFragment.forEach((modalImageFragment)=>{
3082 const getImageClick = modalImageFragment.querySelector('.click-image');
3083 const imageContainer = modalImageFragment.querySelector('.modal-image-container');
3084 const imagePlayerContainer = modalImageFragment.querySelector('.image-player-container');
3085
3086 const image = imagePlayerContainer.querySelector('img');
3087 const closeImage = imagePlayerContainer.querySelector('.close-image');
3088 const body = document.body;
3089
3090 const toTopButton = document.querySelector(".fragment_88038 .petro-button");
3091
3092 const stopImage= () => {
3093 getImageClick.classList.toggle('image-playing');
3094 imagePlayerContainer.classList.toggle('image-playing');
3095 imageContainer.classList.toggle('image-playing');
3096 closeImage.classList.toggle('image-active');
3097 body.style.overflow = 'initial';
3098 }
3099
3100 const playImage = () => {
3101 getImageClick.classList.toggle('image-playing');
3102 imagePlayerContainer.classList.toggle('image-playing');
3103 imageContainer.classList.toggle('image-playing');
3104 closeImage.classList.toggle('image-active')
3105
3106 body.style.overflow = 'hidden';
3107 }
3108
3109 getImageClick.addEventListener('click', () => {
3110 if (document.body.classList.contains('has-edit-mode-menu')) {
3111 return;
3112 }
3113 if (imagePlayerContainer.classList.contains('image-playing')) {
3114 toTopButton && (toTopButton.style.zIndex = "");
3115 stopImage();
3116 } else {
3117 playImage();
3118 toTopButton && (toTopButton.style.zIndex = "1");
3119 }
3120 })
3121
3122 closeImage.addEventListener('click', () => {
3123 if (imagePlayerContainer.classList.contains('image-playing')) {
3124 toTopButton && (toTopButton.style.zIndex = "");
3125 stopImage();
3126 }
3127 })
3128 });
3129 </script>
3130
3131</#macro>
3132
3133
3134<#-- ################################################################################################################## -->
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148 <#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### -->
3149<#macro renderQuotes newsInfo>
3150 <#if newsInfo.quotes?size != 0>
3151 <#--quotes "escondidas" que serão unidas a .ptb-news__read-content -->
3152
3153 <div class="ptb-news__quotes-container d-none ">
3154 <div id="ptb-news__quotes-identifiers">
3155 <#assign separator = "">
3156 <#list newsInfo.quotes as quote>
3157 ${quote.id};
3158 <#assign separator = ";">
3159 </#list>
3160 </div>
3161 <#list newsInfo.quotes as quote>
3162 <#assign quotes_index = quote?index>
3163 <div id="ptb-news__quotes-container-${quote_index}">
3164 <#assign noAuthorWrapper = !((quote.image.url?? && quote.image.url?has_content) || (quote.author?has_content)) />
3165 <div class="quote <#if noAuthorWrapper>no-author-wrapper</#if>">
3166 <div class="text-wrapper">
3167 <blockquote class="text">${quote.content}</blockquote >
3168 </div>
3169 <#if !noAuthorWrapper>
3170 <div class="author-wrapper">
3171 <#if quote.image.url?? && quote.image.url?has_content>
3172 <#assign imageUrl = "/o/adaptive-media/image/" + quote.image.fileEntryId +"/Thumbnail-300x300/image"/>
3173 <img src="${imageUrl}" alt="${quote.image.alt}">
3174 </#if>
3175 <#if quote.author?? && quote?has_content>
3176 <p class="author">${quote.author}</p>
3177 </#if>
3178 </div>
3179 </#if>
3180 </div>
3181 </div>
3182 </#list>
3183 </div>
3184
3185 <script>
3186 var newsContent_code = document.querySelector(".news-content").innerHTML;
3187
3188 var quotesIdentifiers = document.querySelector("#ptb-news__quotes-identifiers").innerHTML.trim().split(";");
3189 quotesIdentifiers.forEach((quoteIdentifier, index) => {
3190 const quoteIdentifierContent = document.querySelector("#ptb-news__quotes-container-" + index);
3191 if (quoteIdentifierContent) {
3192 const tag = "#[" + quoteIdentifier.trim() + "]";
3193 const splitContent = newsContent_code.split(tag);
3194 newsContent_code = splitContent.join(quoteIdentifierContent.innerHTML);
3195 //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent);
3196 }
3197 });
3198
3199
3200 var ptb_news__read_content = document.querySelector(".news-content");
3201 ptb_news__read_content.innerHTML = newsContent_code;
3202
3203 </script>
3204
3205 <style>
3206
3207 .ptb-news__read-news .quote {
3208 display: flex;
3209 flex-direction: column;
3210 gap: var(--space-md, 24px);
3211 }
3212
3213 .ptb-news__read-news .quote.no-author-wrapper{
3214 gap: 0;
3215 }
3216
3217 .ptb-news__read-news .quote .text-wrapper {
3218 padding-left: var(--space-xl, 40px);
3219 }
3220
3221 .ptb-news__read-news .quote .text-wrapper .text {
3222 font-style: var(--font-style-italic) !important;
3223 padding-left: var(--space-md, 24px);
3224 margin-bottom: 0;
3225 border-left: 1px solid var(--border-color-mid, #d7d7d7);
3226 font-size: var(--font-size-xxs, 16px);
3227 }
3228
3229 .ptb-news__read-news .quote .author-wrapper {
3230 display: flex;
3231 flex-direction: row;
3232 gap: var(--space-md, 24px);
3233 }
3234
3235 .ptb-news__read-news .news-content .quote .author-wrapper img {
3236 height: var(--size-xxxl, 56px);
3237 width: var(--size-xxxl, 56px);
3238 border-radius: 100px;
3239 border: var(--size-nano, 2px) solid var(--border-color-mid) !important;
3240 }
3241
3242 .ptb-news__read-news .news-content .quote .author-wrapper p {
3243 margin: 0;
3244 align-self: center;
3245 font-size: var(--font-size-xs, 18px);
3246 font-style: var(--font-style-normal, normal);
3247 font-weight: var(--font-weight-bold, 700);
3248 line-height: var(--line-height-xs, 100%);
3249 }
3250
3251 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
3252 .ptb-news__read-news .quote .text-wrapper {
3253 padding-left: 0;
3254 }
3255
3256 .ptb-news__read-news .quote .text-wrapper .text {
3257 font-size: var(--font-size-xxxs, 14px);
3258 }
3259
3260 .ptb-news__read-news .news-content .quote .author-wrapper p {
3261 font-size: var(--font-size-xxs, 16px);
3262 }
3263 }
3264 </style>
3265 </#if>
3266</#macro>
3267
3268
3269
3270
3271<#-- ################################################################################################################## -->
3272
3273
3274
3275
3276
3277
3278
3279
3280<#-- ############# Site de Crise - Notícia - Extrair dados de Notícias ################################################ -->
3281<#--
3282Add elements from the sidebar to define your template. Type "${" to use the
3283autocomplete feature.
3284-->
3285<#function extractFeaturedNewsHeadline fieldList xmlArticle>
3286 <#return getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia")>
3287</#function>
3288
3289<#function extractNewsSummary fieldList xmlArticle>
3290 <#return getFieldValue(fieldList, xmlArticle, "Resumo da notícia")>
3291</#function>
3292
3293<#function extractPublishDate journalArticle>
3294 <#assign lastPublishDate = journalArticle.getModifiedDate()>
3295 <#if journalArticle.getLastPublishDate()??>
3296 <#assign lastPublishDate = journalArticle.getLastPublishDate()>
3297 <#else>
3298 <#assign lastPublishDate = journalArticle.getModifiedDate()>
3299 </#if>
3300 <#return lastPublishDate />
3301</#function>
3302
3303
3304
3305<#-- Seção da imagem de destaque ---------------------------------------------------------------------->
3306<#function extractNewsMedia fieldList xmlArticle fileEntryService>
3307 <#-- Tentando pegar Imagem -->
3308 <#assign mediasGroup = getNodes(getIdFromFieldName(fieldList, "Mídia de destaque da notícia"), xmlArticle) />
3309 <#assign media = {} />
3310 <#list mediasGroup as mediaGroup >
3311 <#assign media = getMediaInfo(fieldList, mediaGroup, "Imagem Destaque", fileEntryService) />
3312 <#assign media = {"imageSrc": media.url, "imageAlt": media.alt, "fileEntryId" : media.fileEntryId} />
3313
3314 <#-- Se não tiver imagem, tentar pegar vídeo -->
3315 <#if !media.imageSrc?has_content>
3316 <#assign youtubeID = getFieldValue(fieldList, mediaGroup, "ID do vídeo do YouTube do vídeo de destaque") />
3317 <#if youtubeID?? && youtubeID?has_content>
3318 <#assign media = {"videoYotubeID": youtubeID} />
3319 <#else>
3320 <#-- Tentar pegar vídeo Interno -->
3321 <#assign internalVideo = getMediaInfo(fieldList, mediaGroup, "Fazer upload de um vídeo de destaque", fileEntryService) />
3322 <#if internalVideo?? && internalVideo?has_content>
3323 <#assign media = {"internalVideo": internalVideo} />
3324 </#if>
3325 </#if>
3326 </#if>
3327
3328 <#assign referenceMediasGroup = getNodes(getIdFromFieldName(fieldList, "Referências"), mediaGroup) />
3329 <#list referenceMediasGroup as referenciaMediaGroup >
3330 <#assign credits = getFieldValue(fieldList, referenceMediasGroup, "Crédito da mídia de destaque da notícia") />
3331 <#assign legend = getFieldValue(fieldList, referenceMediasGroup, "Legenda da mídia de destaque da notícia") />
3332 </#list>
3333
3334 <#assign media = media + {"credits": credits, "legend": legend} />
3335
3336 </#list>
3337
3338 <#return media>
3339</#function>
3340
3341
3342<#--------------------- Renderização de Lista de Cards ----------------------------------------------->
3343
3344<#-- Root Css -> Para poder instanciar dois elementos e não dar confusão no JS -->
3345<#assign rootCss = "card-news-list-container_" + randomNumber(4586) />
3346
3347<#attempt>
3348 <#assign ourEnergyStyles = [] />
3349 <#list ourEnergyVocabulary.getCategories() as ourEnergyCategory >
3350 <#assign shadowColorCategory = "" />
3351 <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor da Sombra")??)>
3352 <#assign categoryShadowColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor da Sombra") />
3353 <#assign shadowColorCategory = categoryShadowColorByService.value />
3354 </#if>
3355
3356 <#assign backgroundColorCategory = "" />
3357 <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor de Fundo")??)>
3358 <#assign categoryBackgroundColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor de Fundo") />
3359 <#assign backgroundColorCategory = categoryBackgroundColorByService.value />
3360 </#if>
3361
3362 <#assign textColorCategory = "" />
3363 <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto")??)>
3364 <#assign categoryTextColorByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto") />
3365 <#assign textColorCategory = categoryTextColorByService.value />
3366 </#if>
3367
3368 <#assign textColorHighContrastCategory = "" />
3369 <#if (assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto em Alto Contraste")??)>
3370 <#assign categoryTextColorHighContrastByService = assetCategoryPropService.fetchCategoryProperty(ourEnergyCategory.getCategoryId(),"Cor do Texto em Alto Contraste") />
3371 <#assign textColorHighContrastCategory = categoryTextColorHighContrastByService.value />
3372 </#if>
3373
3374 <#assign ourEnergyStyles += [{"titleLocale": ourEnergyCategory.getTitle(locale),"shadowColor": shadowColorCategory, "backgroundColor": backgroundColorCategory, "textColor": textColorCategory, "textColorHighContrast": textColorHighContrastCategory}] />
3375 </#list>
3376
3377 <#recover>
3378 <#assign ourEnergyStyles = [] />
3379
3380</#attempt>
3381
3382<#-- Função para obter a primeira categoria associonada a um Vocabulário o qual está associado a um Jornal Article -->
3383<#function getFirstCategoryTitleLocaleOfVocabulary journalArticle vocabulary >
3384 <#attempt>
3385 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) />
3386
3387 <#list categories as category>
3388 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
3389 <#return category.getTitle(locale)>
3390 </#if>
3391 </#list>
3392
3393 <#return "">
3394
3395 <#recover>
3396 <#return "" />
3397
3398 </#attempt>
3399</#function>
3400
3401<#-- Função para obter os dados de um card no Web Content (Journal Article) -->
3402<#function getDataForCard entry >
3403 <#attempt>
3404 <#assign journalArticle = journalArticleLocalService.getLatestArticle(entry.getClassPK()) />
3405 <#assign ddmStructure = journalArticle.getDDMStructure() />
3406 <#assign fieldList = getFieldListByStructure(ddmStructure) />
3407 <#assign xmlArticle = journalArticle.getDocument().getRootElement() />
3408
3409 <#-- Tentando pegar Imagem -->
3410 <#assign mediasGroup = getNodes(getIdFromFieldName(fieldList, "Mídia de destaque da notícia"), xmlArticle) />
3411 <#assign media = "" />
3412 <#list mediasGroup as mediaGroup >
3413 <#assign media = getMediaInfo(fieldList, mediaGroup, "Imagem Destaque", fileEntryService) />
3414
3415 <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${media.fileEntryId}") />
3416
3417 <#assign urlAdaptativeMedia = ""/>
3418 <#if media.url?? && media.url?has_content && fileDataRequest?? && fileDataRequest.adaptedImages?? >
3419 <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages />
3420 <#list dataAdaptativeMedia as data>
3421 <#if data.resolutionName == "Preview-1000x0">
3422 <#assign urlAdaptativeMedia = data.contentUrl/>
3423 </#if>
3424 </#list>
3425 </#if>
3426 <#assign media = {"imageSrc": media.url, "imageAlt": media.alt, "imageFileEntryId": media.fileEntryId, "urlAdaptativeMedia": urlAdaptativeMedia} />
3427
3428 <#-- Se não tiver imagem, tentar pegar vídeo -->
3429 <#if !media.imageSrc?? || !media.imageSrc?has_content>
3430 <#assign youtubeID = getFieldValue(fieldList, mediaGroup, "ID do vídeo do YouTube do vídeo de destaque") />
3431 <#if youtubeID?? && youtubeID?has_content>
3432 <#assign media = {"videoYotubeID": youtubeID} />
3433 <#else>
3434 <#-- Tentar pegar vídeo Interno -->
3435 <#assign internalVideo = getMediaInfo(fieldList, mediaGroup, "Fazer upload de um vídeo de destaque", fileEntryService) />
3436 <#if internalVideo?? && internalVideo?has_content>
3437 <#assign media = {"internalVideo": internalVideo} />
3438 </#if>
3439 </#if>
3440 </#if>
3441 </#list>
3442
3443 <#assign title = getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia") />
3444
3445 <#assign timeRead = getFieldValue(fieldList, xmlArticle, "Tempo de Leitura") />
3446
3447 <#assign ourEnergyCategory = getFirstCategoryTitleLocaleOfVocabulary(entry, ourEnergyVocabulary) />
3448
3449 <#assign typeOfNews = getFirstCategoryTitleLocaleOfVocabulary(entry, typeOfNewsVocabulary) />
3450
3451 <#if themeDisplay.getPortalURL()?contains("webserver")>
3452 <#assign urlNews = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + journalArticle.getUrlTitle()>
3453 <#else>
3454 <#assign urlNews = themeDisplay.getPortalURL() + "/w/" + journalArticle.getUrlTitle()>
3455 </#if>
3456
3457 <#assign cardData = {"media": media, "title": title, "timeRead": timeRead, "ourEnergyCategory": ourEnergyCategory, "typeOfNews": typeOfNews, "urlNews": urlNews} />
3458
3459 <#return cardData>
3460
3461 <#recover>
3462 <#return {} />
3463 </#attempt>
3464
3465 <#-- cardData -> image: url, alt
3466 title
3467 timeRead
3468 ourEnergyCategory
3469 typeOfNews
3470 urlNews
3471 -->
3472</#function>
3473
3474
3475<#-- Macro para renderizar os arrows-->
3476<#macro renderArrows>
3477 <div class="card-news-list-arrows-breakpoint breakpoint">
3478 <div class="card-news-list-arrows col-11-12 md-col-7-8 sm-col-1-4">
3479 <div class="card-news-arrow-left arrow-disable">
3480 <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
3481 <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"/>
3482 <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"/>
3483 </svg>
3484 </div>
3485 <div class="card-news-arrow-right">
3486 <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
3487 <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"/>
3488 <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"/>
3489 </svg>
3490
3491 </div>
3492 </div>
3493 </div>
3494
3495 <style>
3496
3497 .${rootCss} .card-news-list-arrows-breakpoint {
3498 position: relative;
3499 z-index: 1;
3500 }
3501
3502 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows {
3503 display: flex;
3504 align-items: flex-start;
3505 justify-self: flex-end;
3506 gap: var(--space-xxs, 8px);
3507 }
3508
3509 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left,
3510 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right {
3511 cursor: pointer;
3512 }
3513
3514 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(1),
3515 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(1) {
3516 fill: rgb(0, 133, 66);
3517 }
3518
3519 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),
3520 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) {
3521 fill: white;
3522 }
3523
3524 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left:not(.arrow-disable):hover path:nth-child(2),
3525 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right:not(.arrow-disable):hover path:nth-child(2) {
3526 stroke: #fff;
3527 }
3528
3529 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),
3530 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) {
3531 stroke: #010101;
3532 }
3533
3534 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable,
3535 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable {
3536 opacity: 0.4;
3537 cursor: auto;
3538 }
3539
3540 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left path,
3541 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right path {
3542 stroke: rgb(0, 133, 66);
3543 transition: all 300ms ease-in-out;
3544 }
3545
3546 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left path,
3547 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right path {
3548 stroke: rgba(228, 247, 232, 1);
3549 }
3550
3551 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(1),
3552 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(1) {
3553 stroke: rgb(149, 149, 149);
3554 }
3555
3556 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(1),
3557 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(1) {
3558 stroke: rgba(215, 215, 215, 1);
3559 }
3560
3561 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(2),
3562 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(2) {
3563 stroke: rgb(82, 82, 82);
3564 }
3565
3566 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-left.arrow-disable path:nth-child(2),
3567 body.high-contrast-active .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows .card-news-arrow-right.arrow-disable path:nth-child(2) {
3568 stroke: rgba(149, 149, 149, 1);
3569 }
3570
3571 @media screen and (min-width: 1440px) {
3572 .${rootCss} .card-news-list-arrows-breakpoint {
3573 width: 100%;
3574 }
3575 }
3576
3577 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
3578
3579 .${rootCss} .card-news-list-arrows-breakpoint .card-news-list-arrows {
3580 justify-self: flex-start;
3581 margin-top: var(--space-lg);
3582 }
3583 }
3584
3585 </style>
3586
3587</#macro>
3588
3589
3590<#-- Macro para renderizar um Card -->
3591<#macro renderCard cardData>
3592 <#-- cardData -> image: url, alt
3593 title
3594 timeRead
3595 ourEnergyCategory
3596 typeOfNews
3597 urlNews
3598 -->
3599
3600 <div class="card-news-container">
3601 <a class="news-page-see-more-link card-news-link" href="${cardData.urlNews}"> Link da Notícia ${cardData.title} </a>
3602 <div class="card-news-thumb">
3603 <#assign noImage = "" />
3604 <#if cardData.media.imageSrc?? && cardData.media.imageSrc?has_content>
3605 <#assign imageSrc = cardData.media.imageSrc />
3606 <#if cardData.media.urlAdaptativeMedia?? && cardData.media.urlAdaptativeMedia?has_content>
3607 <#assign imageSrc = cardData.media.urlAdaptativeMedia />
3608 </#if>
3609 <img class="card-news-image" src="${imageSrc}" alt="${cardData.media.imageAlt}"/>
3610 <#else>
3611 <#if cardData.media.videoYotubeID?? && cardData.media.videoYotubeID?has_content>
3612 <img class="card-news-image" src="https://img.youtube.com/vi/${cardData.media.videoYotubeID}/maxresdefault.jpg" alt="YouTube Thumbnail"/>
3613 <#else>
3614 <#if (cardData.media.internalVideo?? && cardData.media.internalVideo.url?has_content) >
3615 <video class="card-news-image">
3616 <source src="${cardData.media.internalVideo.url}">
3617 Your browser does not support the video tag.
3618 </video>
3619 <#else>
3620 <#assign noImage = "no-image" />
3621 </#if>
3622 </#if>
3623 <svg class="thumb-play-icon" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
3624 <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"/>
3625 <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"/>
3626 </svg>
3627 </#if>
3628 </div>
3629
3630 <div class="card-news-category-container ${noImage}">
3631 <div data-category="${cardData.ourEnergyCategory}" class="card-news-category paragraph-micro-regular"> ${cardData.ourEnergyCategory} </div>
3632 </div>
3633
3634 <div class="card-news-text-content ${noImage}">
3635 <div class="card-news-title h5"> ${cardData.title} </div>
3636
3637 <div class="card-news-info">
3638 <div class="card-news-type">
3639 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
3640 <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"/>
3641 </svg>
3642
3643 <div class="card-news-type-text paragraph-micro-regular">${cardData.typeOfNews}</div>
3644 </div>
3645 <#if cardData.timeRead?? && cardData.timeRead?has_content>
3646 <div class="card-news-time-read">
3647 <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">
3648 <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"/>
3649 </svg>
3650
3651 <div class="card-news-time-read-text paragraph-micro-regular">${cardData.timeRead} min</div>
3652 </div>
3653 </#if>
3654 </div>
3655 </div>
3656 </div>
3657</#macro>
3658
3659<style>
3660 .${rootCss} .card-news-container {
3661 width: 300px;
3662 height: 370px;
3663 display: flex;
3664 flex-direction: column;
3665 flex-shrink: 0;
3666 align-items: flex-start;
3667 border-radius: var(--border-radius-lg);
3668 border: var(--border-width-hairline) solid var(--border-card-default, #EEE);
3669 background: var(--background-surface-level-01, #FFF);
3670 box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12);
3671 overflow: hidden;
3672 scroll-snap-align: start;
3673 cursor: pointer;
3674 transition: border 300ms ease-in-out;
3675 text-decoration: none;
3676 position: relative;
3677 }
3678
3679 body.high-contrast-active .${rootCss} .card-news-container {
3680 border: var(--border-width-hairline) solid var(--border-card-default, #525252);
3681 background: var(--background-surface-level-01, #010101);
3682 }
3683
3684 .${rootCss} .card-news-container:hover {
3685 border: var(--border-width-hairline) solid rgb(0, 133, 66);
3686 }
3687
3688 body.high-contrast-active .${rootCss} .card-news-container:hover {
3689 border: var(--border-width-hairline) solid var(--border-card-default, #E4F7E8);
3690 }
3691
3692 .${rootCss} .card-news-container .card-news-link {
3693 position: absolute;
3694 top: 0;
3695 width: 100%;
3696 height: 100%;
3697 z-index: 1;
3698 opacity: 0;
3699 }
3700
3701 .${rootCss} .card-news-container .card-news-thumb {
3702 position: relative;
3703 }
3704
3705 .${rootCss} .card-news-container .card-news-image {
3706 width: 298px;
3707 height: 168px;
3708 object-fit: cover;
3709 }
3710
3711
3712 .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon {
3713 position: absolute;
3714 left: 50%;
3715 top: 50%;
3716 transform: translate(-50%, -50%);
3717 }
3718
3719 body.high-contrast-active .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon path:nth-child(1) {
3720 fill: black;
3721 }
3722
3723 body.high-contrast-active .${rootCss} .card-news-container .card-news-thumb .thumb-play-icon path:nth-child(2) {
3724 fill: white;
3725 }
3726
3727 .${rootCss} .card-news-container .card-news-category-container {
3728 position: relative;
3729 }
3730
3731 .${rootCss} .card-news-container .card-news-category-container .card-news-category {
3732 display: flex;
3733 justify-content: center;
3734 align-items: center;
3735 padding: var(--space-micro) var(--space-xs);
3736 position: absolute;
3737 z-index: 2;
3738 left: var(--space-md);
3739 top: -13px;
3740 border-radius: var(--border-radius-pill);
3741 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);
3742 box-shadow: 0px 2px 6px 0px rgba(0, 178, 169, 0.10);
3743 line-height: var(--line-height-lg, 144%);
3744 color: var(--default-sup-green-water, #006B65);
3745 white-space: nowrap;
3746 }
3747
3748 body.high-contrast-active .${rootCss} .card-news-container .card-news-category-container .card-news-category {
3749 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);
3750 color: var(--default-sup-green-water, #99E0DD);
3751 }
3752
3753 .${rootCss} .card-news-container .card-news-category-container.no-image .card-news-category {
3754 position: relative;
3755 top: 0;
3756 left: 0;
3757 margin-left: var(--space-md);
3758 margin-top: var(--space-md);
3759 }
3760
3761 .${rootCss} .card-news-container .card-news-text-content {
3762 display: flex;
3763 padding: var(--space-lg, 32px) var(--space-md, 24px) var(--space-md, 24px) var(--space-md, 24px);
3764 flex-direction: column;
3765 justify-content: space-between;
3766 align-items: flex-start;
3767 flex: 1 0 0;
3768 align-self: stretch;
3769 }
3770
3771 .${rootCss} .card-news-container .card-news-text-content.no-image {
3772 padding-top: var(--space-sm);
3773 }
3774
3775 .${rootCss} .card-news-container .card-news-text-content .card-news-title {
3776 display: -webkit-box;
3777 -webkit-box-orient: vertical;
3778 -webkit-line-clamp: 4;
3779 align-self: stretch;
3780 overflow: hidden;
3781 color: var(--text-primary-default, #373737);
3782 text-overflow: ellipsis;
3783 margin: 0;
3784 }
3785
3786 body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-title {
3787 color: var(--text-primary-default, #FFF);
3788 }
3789
3790 .${rootCss} .card-news-container .card-news-text-content .card-news-info {
3791 display: flex;
3792 align-items: center;
3793 align-content: center;
3794 gap: var(--space-sm, 16px);
3795 align-self: stretch;
3796 flex-wrap: wrap;
3797 }
3798
3799 .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type,
3800 .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read {
3801 display: flex;
3802 align-items: center;
3803 gap: var(--space-xxs, 8px);
3804 }
3805
3806 body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type path {
3807 stroke: #D7D7D7;
3808 }
3809
3810 .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text,
3811 .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text {
3812 color: var(--text-tertiary-default, #959595);
3813 line-height: var(--line-height-lg, 144%);
3814 }
3815
3816 body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text,
3817 body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text {
3818 color: var(--text-tertiary-default, #EEE);
3819 }
3820
3821 .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-icon-time-read {
3822 transform: translateY(-0.5px);
3823 }
3824
3825 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 {
3826 fill: #D7D7D7;
3827 }
3828</style>
3829
3830<#assign maxNumberOfCards = 9/>
3831<#assign className = "com.liferay.journal.model.JournalArticle" />
3832<#assign classNameId = PortalUtil.getClassNameId(className) />
3833${AssetEntryQuery.setClassNameIds([classNameId]) }
3834${AssetEntryQuery.setEnd(maxNumberOfCards)}
3835
3836<#assign entries = []/>
3837<#assign ourEnergyCategoriesIds = getAllCategoryIdOfVocabulary(assetEntry, ourEnergyVocabulary) />
3838<#list ourEnergyCategoriesIds as ourEnergyCategoryId>
3839 ${AssetEntryQuery.setAllCategoryIds([ourEnergyCategoryId])}
3840 <#assign ents = AssetEntryQueryService.getEntries(AssetEntryQuery) />
3841 <#assign entries = entries + ents />
3842</#list>
3843
3844
3845<#-- Renderizar Lista de cards -->
3846<#if entries?has_content>
3847 <div class="${rootCss}">
3848 <div class="list-of-news-title breakpoint">
3849 <div class="list-of-news-title-col col-1-12 md-col-1-8 sm-col-1-4">
3850 <div class="list-title fragment_85017">
3851 <div class="petro-title">
3852 <h2 id="title" class="display-sm" style="color: var(--color-neutral-800)">
3853 <#if locale?lower_case == "pt_br"> Leia também <#else> Read also </#if>
3854 </h2>
3855
3856 <div class="yellow-bar bar-display-sm" style="background-color: var(--color-secondary-medium)"></div>
3857
3858 </div>
3859 </div>
3860 </div>
3861 </div>
3862
3863 <@renderArrows />
3864
3865 <div class="card-news-list-breakpoint breakpoint">
3866 <div class="card-news-list col-1-12 md-col-1-8 sm-col-1-4">
3867 <#if entries?size gt maxNumberOfCards>
3868 <#assign entries = entries[0..maxNumberOfCards] />
3869 </#if>
3870 <#list entries as entry>
3871 <#if assetEntry.getClassPK() != entry.getClassPK() >
3872 <#assign cardData = getDataForCard(entry) />
3873 <@renderCard cardData/>
3874 </#if>
3875 </#list>
3876 </div>
3877 </div>
3878 </div>
3879</#if>
3880
3881
3882<style>
3883
3884 .portlet {
3885 margin: 0;
3886 }
3887
3888 .${rootCss} {
3889 padding: var(--space-giant, 80px) 0;
3890 background: var(--background-surface-level-01, #FFF);
3891 width: 100%;
3892 position: relative;
3893 font-family: var(--font-family-base, "Petrobras Sans");
3894 display: flex;
3895 flex-direction: column;
3896 gap: var(--space-lg);
3897 }
3898
3899 body.high-contrast-active .${rootCss} {
3900 background: var(--background-surface-level-01, #010101);
3901 }
3902
3903 .${rootCss} .list-of-news-title {
3904 position: relative;
3905 z-index: 1;
3906 }
3907
3908 .${rootCss} body.high-contrast-active .fragment_614685 .petro-title .yellow-bar {
3909 background-color: #FFEEB3 !important;
3910 }
3911
3912 .${rootCss} .card-news-list {
3913 display: flex;
3914 gap: var(--space-lg);
3915 overflow: auto;
3916 position: relative;
3917 z-index: 1;
3918 scroll-snap-type: x mandatory;
3919 scrollbar-width: none;
3920 }
3921
3922 .${rootCss} .card-news-list::-webkit-scrollbar {
3923 display: none;
3924 }
3925
3926 @media screen and (min-width: 1440px) {
3927 .${rootCss} .card-news-list-breakpoint {
3928 width: 100%;
3929 }
3930
3931 .${rootCss} .list-of-news-title {
3932 width: 100%;
3933 }
3934 }
3935
3936 @media screen and (max-width: 1024px) {
3937 .${rootCss} .fragment_614685 {
3938 padding: var(--space-xxl, 56px) 0;
3939 }
3940 }
3941
3942</style>
3943
3944<#list ourEnergyStyles as ourEnergyStyle>
3945 <style>
3946 .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] {
3947 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;
3948 box-shadow: 0px 2px 6px 0px #${ourEnergyStyle.shadowColor} !important;
3949 color: #${ourEnergyStyle.textColor} !important;
3950 }
3951
3952 body.high-contrast-active .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] {
3953 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;
3954 color: #${ourEnergyStyle.textColorHighContrast} !important;
3955 }
3956
3957 </style>
3958</#list>
3959
3960<script>
3961
3962 function disableEnableArrow(arrow, scrollBar, maxDistance, direction)
3963 {
3964 if(direction === "left") {
3965 if (scrollBar.scrollLeft > 0) {
3966 arrow.classList.contains("arrow-disable") && arrow.classList.remove("arrow-disable");
3967 }
3968 else {
3969 !arrow.classList.contains("arrow-disable") && arrow.classList.add("arrow-disable");
3970 }
3971 }
3972 else if(direction === "right") {
3973 if (Math.ceil(scrollBar.scrollLeft + scrollBar.clientWidth) < maxDistance) {
3974 arrow.classList.contains("arrow-disable") && arrow.classList.remove("arrow-disable");
3975 }
3976 else {
3977 !arrow.classList.contains("arrow-disable") && arrow.classList.add("arrow-disable");
3978 }
3979 }
3980 }
3981
3982 function scrollCarousel()
3983 {
3984 const root = document.querySelector(".${rootCss}");
3985 if(root) {
3986 const scrollBar = root.querySelector(".${rootCss} .card-news-list");
3987 const gap = 32;// var(--space-lg);
3988 const stepLength = scrollBar.querySelector(".card-news-container").offsetWidth + gap;
3989 const arrowLeftBtn = root.querySelector(".card-news-arrow-left")
3990 const arrowRightBtn = root.querySelector(".card-news-arrow-right")
3991
3992 let maxDistance = scrollBar.scrollWidth;
3993
3994 arrowLeftBtn.addEventListener('click', () => {
3995 if (scrollBar.scrollLeft > 0) {
3996 scrollBar.scroll({
3997 left: scrollBar.scrollLeft - stepLength,
3998 behavior: "smooth",
3999 });
4000 }
4001 });
4002
4003 arrowRightBtn.addEventListener('click', () => {
4004 if (scrollBar.scrollLeft < maxDistance) {
4005 scrollBar.scroll({
4006 left: scrollBar.scrollLeft + stepLength,
4007 behavior: "smooth",
4008 });
4009 }
4010 });
4011
4012 scrollBar.addEventListener("scroll", ()=>{
4013 disableEnableArrow(arrowLeftBtn, scrollBar, maxDistance, "left");
4014 disableEnableArrow(arrowRightBtn, scrollBar, maxDistance, "right");
4015 });
4016
4017 disableEnableArrow(arrowLeftBtn, scrollBar, maxDistance, "left");
4018 disableEnableArrow(arrowRightBtn, scrollBar, maxDistance, "right");
4019
4020 }
4021 }
4022
4023 document.addEventListener('DOMContentLoaded', scrollCarousel);
4024
4025</script>
4026
4027<style>
4028
4029
4030.ptb-news__read-news .news-content .embed-responsive-youtube::before {
4031 padding-top: 0;
4032}
4033
4034.ptb-news__read-news .news-content .embed-responsive-liferay::before {
4035 padding-top: calc(9/16 *100% - 64px);
4036}
4037
4038.ptb-news__read-news .news-content .thumnail-play-button {
4039}
4040
4041.ptb-news__read-news .news-content .thumnail-play-button {
4042 position: relative;
4043 z-index: 100;
4044 height: 64px;
4045 width: 64px;
4046 background-repeat: no-repeat;
4047 top: calc(50%);
4048 left: calc(50% - 32px);
4049}
4050
4051
4052.ptb-news__read-news .news-content .thumnail-play-button-youtube {
4053 position: absolute;
4054 z-index: 100;
4055 height: 64px;
4056 width: 64px;
4057 background-repeat: no-repeat;
4058 top: calc(50% - 64px);
4059 left: calc(50% - 32px);
4060}
4061
4062.ptb-news__read-news .news-content .thumnail-play-button-liferay {
4063 position: relative;
4064 z-index: 100;
4065 height: 64px;
4066 width: 64px;
4067 top: calc(-50% + 32px);
4068 left: calc(50% - 32px);
4069 background-repeat: no-repeat;
4070}
4071
4072
4073 .ptb-news__read-news .news-content .embed-responsive-youtube img {
4074 width: 100%;
4075 height: 100%;
4076 }
4077
4078</style>
4079
4080 <script>
4081 <#assign createYoutubeThumbnails = "createYoutubeThumbnails_"+ randomNumber(5952) />
4082
4083 function ${createYoutubeThumbnails}(){
4084
4085 const newsContent = document.querySelector(".news-content");
4086
4087 const getYoutubeId = (youtubeUrl) => {
4088
4089 const url = new URL(youtubeUrl);
4090 const splittedPathName = url.pathname.split("/");
4091
4092 if (splittedPathName.length <= 0){
4093 return "";
4094 }
4095
4096 return splittedPathName[splittedPathName.length-1];
4097 };
4098
4099 window.addEventListener("resize", (event) => {
4100 const iframeList = newsContent.querySelectorAll('iframe');
4101 iframeList.forEach((iframe) => {
4102 const src = iframe.src;
4103 if (!src){
4104 return;
4105 }
4106
4107 const isYoutube = src.toLowerCase().includes("youtube");
4108 if (!isYoutube){
4109 return;
4110 }
4111
4112 const iframeParent = iframe.parentNode;
4113
4114 const thumbnail = iframeParent.querySelector("img");
4115 if (thumbnail){
4116 // thumbnail.style="width:" + iframe.width + "px; height: " + iframe.height + "px";
4117 }
4118 });
4119
4120 });
4121
4122 const iframeList = newsContent.querySelectorAll('iframe');
4123 iframeList.forEach((iframe) => {
4124 const src = iframe.src;
4125 if (!src){
4126 return;
4127 }
4128
4129 const isYoutube = src.toLowerCase().includes("youtube");
4130 if (!isYoutube){
4131 return;
4132 }
4133
4134 const iframeParent = iframe.parentNode;
4135
4136 const thumbnail = document.createElement("img");
4137 thumbnail.src = 'https://img.youtube.com/vi/' + getYoutubeId(src) +'/hqdefault.jpg';
4138 thumbnail.alt = "Youtube";
4139 //thumbnail.style="width:" + iframe.width + "px; height: " + iframe.height + "px";
4140
4141 const playButton = document.createElement("div");
4142 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")';
4143 playButton.classList.add("thumnail-play-button-youtube");
4144 const children = iframeParent.children;
4145
4146 if (children.length > 0) {
4147 iframeParent.insertBefore(thumbnail, children.firstChild);
4148 iframeParent.insertBefore(playButton, thumbnail);
4149 iframe.classList.add("hide");
4150 iframeParent.classList.add("embed-responsive-youtube");
4151 }
4152
4153 playButton.addEventListener("click", () => {
4154 thumbnail.click();
4155 });
4156
4157 thumbnail.addEventListener("click", () => {
4158 thumbnail.classList.add("hide");
4159 playButton.classList.add("hide");
4160 iframe.classList.remove("hide");
4161 iframeParent.classList.remove("embed-responsive-youtube");
4162 const url = new URL(src);
4163 const searchParams = url.searchParams;
4164 searchParams.set("rel", "0");
4165 //searchParams.set("modestbranding", "0");
4166 //searchParams.set("mute", "0");
4167 //searchParams.set("color", "white");
4168 searchParams.set("controls", "1");
4169 //searchParams.set("playsinline", "1");
4170 //searchParams.set("enablejsapi", "1");
4171 searchParams.set("autoplay", "1");
4172 //searchParams.set("logo", "0");
4173
4174 console.log(url.toString());
4175
4176 iframeParent.setAttribute("data-embed-id", url.toString());
4177 iframe.setAttribute("src", url.toString());
4178 });
4179 });
4180
4181 }
4182
4183 ${createYoutubeThumbnails}();
4184
4185 <#assign createLRThumbnails = "createLRThumbnails"+ randomNumber(5952) />
4186
4187 function ${createLRThumbnails}(){
4188
4189 const newsContent = document.querySelector(".news-content");
4190 const iframeList = newsContent.querySelectorAll("iframe[data-video-liferay]");
4191
4192 iframeList.forEach(iframe => {
4193
4194 const playButton = document.createElement("div");
4195 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")';
4196 playButton.classList.add("thumnail-play-button-liferay");
4197 const children = iframe.parentNode.children;
4198 if (children.length > 0) {
4199 iframe.parentNode.insertBefore(playButton, children.firstChild);
4200 }
4201
4202 iframe.addEventListener("load", () => {
4203 if (iframe.contentDocument){
4204 const video = iframe.contentDocument.body.querySelector("video");
4205 video.removeAttribute("controls");
4206 }
4207 });
4208
4209 iframe.parentNode.classList.add("embed-responsive-liferay");
4210
4211
4212 playButton.addEventListener("click", () => {
4213 playButton.classList.add("hide");
4214 playButton.classList.remove("thumnail-play-button-liferay");
4215 iframe.parentNode.classList.remove("embed-responsive-liferay");
4216 if (iframe.contentDocument){
4217 const video = iframe.contentDocument.body.querySelector("video");
4218 video.setAttribute("controls", "");
4219 video.play();
4220 }
4221 });
4222 });
4223 }
4224
4225 ${createLRThumbnails}();
4226 </script>
Faça uma busca:
Sugestões de busca
Mais pesquisados
Preço dos combustíveis
Pré-Sal
Time Petrobras
Escolha um Canal:
Navegue nas Seções:
Acessibilidade
Idioma:
Selecione um idioma: