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