X
O uso deste material é autorizado apenas para fins editoriais.
Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing: ==> assetVocabularyService.fetchGroupVocabulary(groupId, vocabularyName) [in template "20099#20135#14588694" at line 1532, column 31] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign tagsVocabulary = assetVocabul... [in template "20099#20135#14588694" in function "getCategoriesNamesAndIds" at line 1532, column 5] ----
1<#-- Conteúdo Web -> Templates: Site de Crise - Funções gerais-->
2<#include "${templatesPath}/1975398" />
3
4<#function getNodesByLabel fieldList parentNode label>
5 <#assign result = []/>
6 <#attempt>
7 <#assign groupId = getIdFromFieldName(fieldList, label) />
8 <#assign xSeletorCaminho = saxReaderUtil.createXPath("dynamic-element[@name='${groupId}' ]") />
9 <#assign result = xSeletorCaminho.selectNodes(parentNode) />
10 <#return result />
11 <#recover>
12 <#return result />
13 </#attempt>
14</#function>
15
16<#function findVocabulary vocabularyName vocabularies>
17 <#assign vocabularyNameLowerCase = vocabularyName?lower_case>
18 <#list vocabularies as vocabulary>
19 <#if vocabulary.name?lower_case == vocabularyNameLowerCase>
20 <#return vocabulary>
21 </#if>
22 </#list>
23 <#return {}>
24</#function>
25
26<#-- ############# Conteúdo Web -> Templates: Site de Crise - Include de templates #################################### -->
27<#function getSiteUrl>
28 <#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"]>
29 <#if layout?? && layout?has_content>
30 <#return portalUtil.getLayoutFriendlyURL(layout, themeDisplay)?replace(layout.getFriendlyURL(), "")>
31 </#if>
32 <#return portalUtil.getLayoutFriendlyURL(layout, themeDisplay)>
33</#function>
34
35<#function getSiteName>
36 <#return layout.getGroup().getDescriptiveName(locale)>
37</#function>
38
39<#function mountUrlToPage targetPage>
40 <#return getSiteUrl()+ "/" + targetPage>
41</#function>
42<#-- ################################################################################################################## -->
43
44
45<#assign
46journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
47assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
48categoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
49vocabularies = assetVocabularyService.getGroupVocabularies(groupId)
50tagsLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")
51tagVocabulary = findVocabulary("Tag", vocabularies)
52flagVocabulary = findVocabulary("Flag", vocabularies)
53tagCategoryTitles = extractVocabularyTitles(tagVocabulary)
54flagCategoryTitles = extractVocabularyTitles(flagVocabulary)
55assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")
56fileEntryService = staticUtil["com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"]
57layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")
58assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")
59/>
60
61
62 <#function getAssetEntryFromRequest assetEntryLocalService>
63 <#assign assetEntry = "">
64 <#attempt >
65 <#assign infoItemReference = Request.INFO_ITEM_DETAILS.getInfoItemReference() />
66 <#assign className = infoItemReference.getClassName() />
67 <#assign infoItem = Request.INFO_ITEM />
68 <#assign resourcePrimKey = infoItem.resourcePrimKey />
69 <#assign assetEntry = assetEntryLocalService.getEntry(className, resourcePrimKey) />
70 <#return assetEntry>
71 <#recover >
72 <#return "">
73 </#attempt>
74 <#return "">
75</#function>
76
77<#assign newsJournalArticle = "">
78<#assign assetEntry = getAssetEntryFromRequest(assetEntryLocalService)>
79<#if assetEntry?? && assetEntry?has_content>
80 <#assign newsJournalArticle = journalArticleService.fetchLatestArticle(assetEntry.classPK)/>
81</#if>
82
83<#function getSingleNode name root>
84 <#attempt>
85 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${name}']/dynamic-content[@language-id='${locale}']") />
86 <#return xPathSelector.selectSingleNode( root ) />
87 <#recover>
88 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${name}']") />
89 <#return xPathSelector.selectSingleNode( root ) />
90 </#attempt>
91</#function>
92
93
94<#function getFileFromXML fieldId parentNode fileEntryService>
95
96 <#assign info = {"url": "", "alt": "", "mimeType" :"", "name": "", "fileEntryId": "", "title": ""}>
97
98 <#assign jsonString = getSingleNodeString(fieldId, parentNode)/>
99 <#if !jsonString?? || !jsonString?has_content>
100 <#return info/>
101 </#if>
102
103 <#assign json = jsonFactoryUtil.createJSONObject(jsonString) />
104 <#if !json?? || !json?has_content>
105 <#return info/>
106 </#if>
107
108 <#attempt >
109 <#assign fileId = "">
110 <#if json.fileEntryId??>
111 <#assign fileId = json.fileEntryId>
112 <#else >
113 <#if json.classPK??>
114 <#assign fileId = json.classPK>
115 </#if>
116 </#if>
117 <#if !fileId?has_content>
118 <#return info>
119 </#if>
120 <#assign fileEntry = fileEntryService.fetchDLFileEntry(fileId?number) />
121 <#if !fileEntry?? >
122 <#return info/>
123 </#if>
124 <#recover >
125 <#return info/>
126 </#attempt>
127
128 <#assign alt = "">
129 <#if json.description??>
130 <#assign alt = json.description?trim>
131 </#if>
132
133 <#assign info = {"url": "/documents/" + json.groupId + "/0/" + fileEntry.getTitle() + "/" + json.uuid,
134 "alt": alt,
135 "mimeType" : fileEntry.getMimeType(),
136 "fileEntryId": fileId,
137 "name" : (json.name)!"",
138 "title" : (json.title)!""
139 }>
140 <#return info/>
141</#function>
142
143<#assign editorialVocabulary = findVocabulary("Editorial", vocabularies)/>
144
145
146<#assign EMPTY_FILE_INFO = {"url": "",
147"alt": "",
148"fileEntryId": "",
149"mimetype": "",
150"fileExtension": "",
151"restResponse": {},
152"dateCreated": "",
153"dateModified": "",
154"adaptedImages" : ""} />
155
156<#function extractFileInfoFromJsonResponse jsonResponse>
157 <#assign info = EMPTY_FILE_INFO />
158 <#if !jsonResponse?? || !jsonResponse?has_content || !jsonResponse.fileName??>
159 <#return info/>
160 </#if>
161
162 <#assign fileUrl = themeDisplay.getPortalURL() + jsonResponse.contentUrl/>
163 <#assign adaptedImages = [] />
164 <#if jsonResponse["adaptedImages"]??>
165 <#assign adaptedImages = jsonResponse.adaptedImages />
166 </#if>
167
168 <#assign info = {"url": fileUrl,
169 "alt": jsonResponse.description,
170 "fileEntryId": jsonResponse.id,
171 "mimetype": jsonResponse.encodingFormat,
172 "fileExtension": jsonResponse.fileExtension,
173 "restResponse": jsonResponse,
174 "dateCreated": jsonResponse.dateCreated,
175 "dateModified": jsonResponse.dateModified,
176 "adaptedImages": adaptedImages
177 }>
178 <#return info/>
179</#function>
180
181<#function getFileFromRest fileEntryId>
182 <#return restClient.get("/headless-delivery/v1.0/documents/${fileEntryId}") />
183</#function>
184
185<#function getSmallestAdaptedMedia imageJson>
186 <#if !imageJson?? || !imageJson["adaptedImageList"]?? || !imageJson.adaptedImageList?is_sequence>
187 <#return ""/>
188 </#if>
189
190 <#assign mediaWidth = 300 />
191 <#list adaptedImageList.adaptedImageList?filter(f -> f.width == mediaWidth) as adaptedImage>
192 <#return themeDisplay.getPortalURL() + "/documents/" + groupId + "/" + adaptedImage.externalReferenceCode + "?t=" + .now?string["HHmmssSSS"] />
193 </#list>
194
195 <#return "" />
196</#function>
197
198<#function getBiggestAdaptedMedia adaptedImageList>
199 <#if !adaptedImageList?? || !adaptedImageList?is_sequence>
200 <#return ""/>
201 </#if>
202
203 <#assign mediaWidth = -1 />
204 <#assign url = "" />
205 <#list adaptedImageList as adaptedImage>
206 <#if adaptedImage.width?? && adaptedImage.width?number gt mediaWidth && adaptedImage.contentUrl??>
207 <#assign mediaWidth = adaptedImage.width?number />
208 <#assign url = adaptedImage.contentUrl />
209 </#if>
210 </#list>
211 <#return url />
212</#function>
213
214<#function getFileFromJsonItem fileJson>
215 <#assign info = EMPTY_FILE_INFO />
216 <#if !fileJson?has_content>
217 <#return info/>
218 </#if>
219
220 <#assign fileData = ""/>
221 <#if fileJson.document??>
222 <#assign fileData = fileJson.document />
223 <#elseif fileJson.image??>
224 <#assign fileData = fileJson.image />
225 </#if>
226
227 <#if !fileData?has_content >
228 <#return info/>
229 </#if>
230
231 <#assign fileEntryId = fileData.id />
232 <#return getFileFromRest(fileEntryId)/>
233</#function>
234
235<#function formatDate date>
236 <#if !date ?? || !date?has_content>
237 <#return "">
238 </#if>
239 <#if locale == "pt_BR">
240 <#return date?datetime?string("dd/MM/yyyy")>
241 <#else>
242 <#return date?datetime?string("yyyy.MM.dd")>
243 </#if>
244</#function>
245
246<#if newsJournalArticle?? && newsJournalArticle?has_content>
247
248 <div class="breadcrumb-breakpoint breakpoint">
249 <div class="breadcrumb-col col-3-11 md-col-1-8 sm-col-1-4">
250 <#assign homeURL = "/" />
251
252 <#if currentURL?contains('webserver')>
253 <#assign homeURL = "/web/agencia/" />
254 </#if>
255
256 <a href="${homeURL}" class="breadcrumb-page text previous-page paragraph-micro-regular" tabindex="0">
257 <span class="breadcrumb-text-truncate" original-text="Home">Home</span>
258 <div class="icon"></div>
259 </a>
260
261 <#assign breadcrumbEditorialCategory = getFirstCategoryObjectOfVocabulary(assetEntry, editorialVocabulary) />
262 <#if breadcrumbEditorialCategory?? && breadcrumbEditorialCategory?has_content>
263
264
265 <#if assetCategoryPropService.fetchCategoryProperty(breadcrumbEditorialCategory.getCategoryId(),"url_amigavel_pagina_publica")??>
266 <#assign property = assetCategoryPropService.fetchCategoryProperty(breadcrumbEditorialCategory.getCategoryId(),"url_amigavel_pagina_publica") />
267 <#assign propertyValue = property.getValue() />
268 <#assign categoryURL = homeURL + propertyValue />
269 <#else>
270 <#assign categoryURL = homeURL + "listar-editoria?category=" + breadcrumbEditorialCategory.getCategoryId()/>
271 </#if>
272
273 <a href="${categoryURL}" class="breadcrumb-page text previous-page paragraph-micro-regular"
274 tabindex="0">
275 <span class="breadcrumb-text-truncate"
276 original-text="${breadcrumbEditorialCategory.getTitle(locale)}">${breadcrumbEditorialCategory.getTitle(locale)}</span>
277 <div class="icon"></div>
278 </a>
279 </#if>
280
281 <span original-text="${newsJournalArticle.getTitle(locale)}"
282 class="breadcrumb-page text active-page active paragraph-micro-bold">${newsJournalArticle.getTitle(locale)}</span>
283 </div>
284 </div>
285
286 <div class="ptb-news__read-news">
287 <div class="ptb-news__read-news-post ">
288 <div class="ptb-news__read-content">
289 <#assign
290 ddmStructure = newsJournalArticle.getDDMStructure()
291 fieldList = getFieldListByStructure(ddmStructure)
292 xmlArticle = newsJournalArticle.getDocument().getRootElement()
293 >
294
295 <#assign
296 <#-- Título principal da notícia -->
297 mainHeadlineOfTheNews = newsJournalArticle.getTitle(locale, true)
298 <#-- Título de destaque da notícia -->
299 featuredNewsHeadline = extractFeaturedNewsHeadline(fieldList, xmlArticle)
300 <#-- Sumário da notícia -->
301 newsSummary = extractNewsSummary(fieldList, xmlArticle)
302 <#-- Data de publicação da notícia -->
303 lastPublishDate = extractPublishDate(newsJournalArticle)
304 <#-- Data de criação da notícia -->
305 createDate = newsJournalArticle.getCreateDate()
306 >
307
308
309 <#-- Flag da notícia ---------------------------------------------------------------------------------->
310 <#assign flag = getFirstCategoryTitle(newsJournalArticle, flagCategoryTitles, categoryLocalService)>
311
312 <#-- Url amigável da notícia para visualização em DisplayPage ----------------------------------------->
313 <#assign newsJournalArticleFriendlyUrl = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + newsJournalArticle.getUrlTitle()>
314 <#assign newsJournalArticleFriendlyUrl = "/">
315 <#if themeDisplay.getPortalURL()?contains("webserver")>
316 <#assign newsJournalArticleFriendlyUrl = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + newsJournalArticle.getUrlTitle()>
317 <#else>
318 <#assign newsJournalArticleFriendlyUrl = themeDisplay.getPortalURL() + "/w/" + newsJournalArticle.getUrlTitle()>
319 </#if>
320
321 <#-- Conteúdo da notícia ------------------------------------------------------------------------------>
322 <#assign newsContent = getFieldValue(fieldList, xmlArticle, "Corpo da notícia")>
323
324 <#-- Seção do áudio para o conteúdo da notícia -------------------------------------------------------->
325 <#assign audios = []
326 audioIdentifierFieldSetList = getNodes("Fieldset65862311", xmlArticle)
327 >
328 <#list audioIdentifierFieldSetList as audioIdentifierFieldSet>
329 <#assign
330 <#-- Grupo com as informações de url e legenda do áudio -->
331 audioInfoFieldSet = getGroupNode("Fieldset24035689",audioIdentifierFieldSet)>
332 <#assign
333 externalAudioUrl = getFieldValue(fieldList, audioInfoFieldSet, "URL externa do áudio")
334 internalAudioUrl = getFileFromXML("DocumentLibrary24170668", audioInfoFieldSet, fileEntryService)
335 audioLegend = getFieldValue(fieldList, audioInfoFieldSet, "Legenda do áudio")>
336
337 <#if externalAudioUrl?has_content || internalAudioUrl.url?has_content >
338 <#assign audios += [{
339 "id": getFieldValue(fieldList, audioIdentifierFieldSet, "Identificador de Áudio"),
340 "externalUrl" : externalAudioUrl,
341 "internalUrl" : internalAudioUrl,
342 "legend" : audioLegend
343 }]>
344 </#if>
345 </#list>
346
347
348 <#-- Seção de vídeo para o conteúdo da notícia -------------------------------------------------------->
349 <#assign videos = []
350 videoIdentifierFieldSetList = getNodes("Fieldset24460782", xmlArticle)
351 >
352 <#list videoIdentifierFieldSetList as videoIdentifierFieldSet>
353 <#assign
354 <#-- Grupo com as informações de url e legenda do áudio -->
355 videoInfoFieldSet = getGroupNode("Fieldset51040010",videoIdentifierFieldSet)
356
357 videos += [{
358 "id": getFieldValue(fieldList,videoIdentifierFieldSet, "Identificador de Vídeo"),
359 "youtubeID" : getFieldValue(fieldList, videoInfoFieldSet, "ID do vídeo do YouTube"),
360 "internalUrl" : getFileFromXML("DocumentLibrary15265409", videoInfoFieldSet, fileEntryService),
361 "legend" : getFieldValue(fieldList, videoInfoFieldSet, "Legenda do vídeo")
362 }]
363 >
364 </#list>
365
366
367 <#-- Seção de links para o conteúdo da notícia -------------------------------------------------------->
368 <#assign
369 links = []
370 linksFieldSetList = getNodes("Fieldset37770113", xmlArticle)
371 >
372 <#list linksFieldSetList as linksFieldSet>
373 <#assign linkFieldSetList = getNodes("Fieldset10524367", linksFieldSet)>
374
375 <#list linkFieldSetList as linkFieldSet>
376 <#assign
377 linkId = getFieldValue(fieldList, linkFieldSet, "Identificador do link")
378
379 <#-- Grupo com as informações de url e legenda do áudio -->
380 linkInfoFieldSeet = getGroupNode("Fieldset86037074", linkFieldSet)
381
382 iconType = getFieldValue(fieldList, linkInfoFieldSeet, "Ícone do link")
383 links += [{
384 "id": linkId,
385 "externalLink" : getFieldValue(fieldList, linkInfoFieldSeet, "Link externo"),
386 "pageLink" : getPageLayoutLinkFromXML("LinkToLayout77941175", linkInfoFieldSeet, layoutLocalService),
387 "file" : getFileFromXML("DocumentLibrary34820760", linkInfoFieldSeet, fileEntryService),
388 "title" : getFieldValue(fieldList, linkInfoFieldSeet, "Título do link"),
389 "iconType" : iconType
390 }]
391 >
392 </#list>
393 </#list>
394
395
396 <#assign mediaGroupList = getNodes(getIdFromFieldName(fieldList, "Galeria de multimídia"), xmlArticle) />
397 <#assign galleryItems = []/>
398
399
400 <#list mediaGroupList as mediaGroup >
401 <#assign nodes = getNodes(getIdFromFieldName(fieldList, "Selecione uma imagem") , mediaGroup) />
402 <#list nodes as node>
403 <#assign medJson = jsonFactoryUtil.createJSONObject(node.getStringValue()) />
404 <#if medJson?has_content && medJson["fileEntryId"]??>
405 <#assign cardTitle = ""/>
406 <#assign subtitle = ""/>
407 <#assign author = ""/>
408 <#assign thumbnailImage = {}/>
409 <#assign originalFile = {} />
410
411 <#assign restResponse = restClient.get("/headless-delivery/v1.0/documents/${medJson.fileEntryId}") />
412 <#if restResponse?has_content>
413 <#assign originalFile = restResponse />
414
415 <#if restResponse.documentType?? && restResponse.documentType.contentFields?size gt 0>
416 <#list restResponse.documentType.contentFields as item >
417 <#if item.label == "Legenda" && item.dataType == "string" && item.contentFieldValue?? && item.contentFieldValue.data??>
418 <#assign subtitle = item.contentFieldValue.data />
419 <#assign cardTitle = item.contentFieldValue.data />
420 </#if>
421 <#if item.label == "Autor" && item.dataType == "string" && item.contentFieldValue?? && item.contentFieldValue.data??>
422 <#assign author = item.contentFieldValue.data />
423 </#if>
424 <#if item.label == "Imagem de thumbnail" && item.dataType == "image" && item.contentFieldValue?? && item.contentFieldValue.image??>
425 <#assign thumbnailImage = restClient.get("/headless-delivery/v1.0/documents/${item.contentFieldValue.image.id}") />
426 </#if>
427 </#list>
428 </#if>
429 </#if>
430
431 <#if originalFile["contentUrl"]??>
432 <#setting datetime_format="iso">
433 <#assign galleryItems += [{"cardTitle": cardTitle,
434 "displayDate" : formatDate(originalFile.dateCreated?datetime),
435 "createDate": originalFile.dateCreated?datetime,
436 "subtitle" : subtitle,
437 "author": author,
438 "thumbnailImage": thumbnailImage,
439 "originalFile": originalFile
440 }] >
441 </#if>
442 </#if>
443 </#list>
444
445
446 <#assign nodes = getNodes(getIdFromFieldName(fieldList, "Selecione o Conteúdo Web da mídia") , mediaGroup) />
447 <#list nodes as node>
448 <#attempt>
449 <#assign medJson = jsonFactoryUtil.createJSONObject(node.getStringValue()) />
450 <#if medJson.classPK??>
451 <#assign medianewsJournalArticle = journalArticleService.fetchLatestArticle(medJson.classPK?number)/>
452 <#assign mediaDdmStructure = medianewsJournalArticle.getDDMStructure()/>
453 <#assign fieldListMedia = getFieldListByStructure(mediaDdmStructure)/>
454 <#assign xmlArticleMedia = medianewsJournalArticle.getDocument().getRootElement() />
455
456 <#assign cardTitle = getFieldValue(fieldListMedia, xmlArticleMedia, "Título Home")/>
457 <#assign subtitle = getFieldValue(fieldListMedia, xmlArticleMedia, "Legenda")/>
458 <#assign author = getFieldValue(fieldListMedia, xmlArticleMedia, "Autor")/>
459
460 <#if getGroupNode(getIdFromFieldName(fieldListMedia, "Arquivo original"), xmlArticleMedia) ?? >
461 <#assign originalFileGroup = getGroupNode(getIdFromFieldName(fieldListMedia, "Arquivo original"), xmlArticleMedia) />
462 <#assign originalFileExternalUrl = getFieldValue(fieldListMedia, originalFileGroup, "URL externa") />
463
464 <#-- Original file -->
465 <#assign originalFile = {} />
466 <#assign originalFileJsonString = getSingleNodeString(getIdFromFieldName(fieldListMedia, "Arquivo selecionado"), originalFileGroup)/>
467
468 <#if originalFileJsonString?? && originalFileJsonString?has_content>
469 <#assign originalFileJson = jsonFactoryUtil.createJSONObject(originalFileJsonString) />
470 <#if originalFileJson?? && originalFileJson["fileEntryId"]??>
471 <#assign restResponse = restClient.get("/headless-delivery/v1.0/documents/${originalFileJson.fileEntryId}") />
472 <#if restResponse?has_content && restResponse["encodingFormat"]?? && restResponse.encodingFormat?index_of("image") gt -1>
473 <#assign originalFile = restResponse />
474 </#if>
475 </#if>
476 </#if>
477
478
479 <#-- Thumbnail file -->
480 <#assign thumbnailImage = {}/>
481 <#assign thumbnailImageJsonString = getSingleNodeString(getIdFromFieldName(fieldListMedia, "Imagem de thumbnail"), xmlArticleMedia)/>
482 <#if !thumbnailImageJsonString?? || !thumbnailImageJsonString?has_content>
483 <#assign thumbnailImageJson = jsonFactoryUtil.createJSONObject(thumbnailImageJsonString) />
484 <#if thumbnailImageJson?? && thumbnailImageJson?has_content && thumbnailImageJson.fileEntryId??>
485 <#assign restResponse = restClient.get("/headless-delivery/v1.0/documents/${thumbnailImageJson.fileEntryId?number}") />
486 <#if restResponse?has_content && restResponse["encodingFormat"]?? && restResponse.encodingFormat?index_of("image") gt -1>
487 <#assign thumbnailImage = restResponse />
488 </#if>
489 </#if>
490 </#if>
491
492 <#assign mediaCreateDate = medianewsJournalArticle.getCreateDate() />
493 <#assign mediaLastPublishDate = extractPublishDate(medianewsJournalArticle) />
494
495 <#if originalFile["contentUrl"]??>
496 <#assign galleryItems += [{"cardTitle": cardTitle,
497 "displayDate" : formatDate(mediaLastPublishDate),
498 "createDate": newsJournalArticle.getDisplayDate(),
499 "subtitle" : subtitle,
500 "author": author,
501 "thumbnailImage": thumbnailImage,
502 "originalFile": originalFile,
503 "originalFileExternalUrl": originalFileExternalUrl
504 }] />
505 </#if>
506 </#if>
507
508 </#if>
509 <#recover>
510 </#attempt>
511 </#list>
512 </#list>
513
514
515 <#assign newsInfo = {
516 "mainHeadlineOfTheNews": mainHeadlineOfTheNews,
517 "featuredNewsHeadline" : featuredNewsHeadline,
518 "displayDate" : formatDate(createDate),
519 "createDate": createDate,
520 "newsSummary" : newsSummary,
521 "newsImageFieldSet": extractNewsImage(fieldList, xmlArticle, fileEntryService),
522 "featureNewsVideo" : featureNewsVideo(xmlArticle, fileEntryService),
523 "lastPublishDate": lastPublishDate,
524 "flag": flag,
525 "url": newsJournalArticleFriendlyUrl,
526 "newsContent": newsContent,
527 "audios": audios,
528 "videos": videos,
529 "galleryItems": galleryItems,
530 "links": links
531 }>
532
533
534
535
536 <#-- Renderizar o título principal da notícia -->
537 <#-- Conteúdo-> Conteúdo Web -> Templates: Site de Crise - Notícia - Título -->
538 <@renderHeadLine newsInfo = newsInfo/>
539
540 <#-- Renderizar o subtítulo da notícia -->
541 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Subtítulo -->
542 <@renderReview newsInfo = newsInfo/>
543
544 <#-- Link para a página do autor -->
545 <@renderAuthor/>
546
547 <#-- Renderizar a data de publicação/edição da notícia e redes sociais -->
548 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Redes sociais e data de publicação -->
549 <@renderPublishAndSocialMediasInfos newsJournalArticle newsInfo/>
550
551 <#-- Renderizar as tags da notícia -->
552 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render Tags -->
553 <#--assign tagCategoryList = getCategoriesNamesAndIds("Tags") />
554 <#assign tagCategoryList = getCategoryIdsFromEntry(assetEntry,tagCategoryList, categoryLocalService)>
555 <#assign removeStartParameterWhenTagIsClicked = true>
556 <#assign includeRequestParams = false>
557 <#assign NEWS_PAGE_NAME= "busca"/>
558 <@renderNewsTags tagCategoryList NEWS_PAGE_NAME removeStartParameterWhenTagIsClicked includeRequestParams -->
559
560 <#assign categoriesAsssetEntryResponse = restClient.get("/headless-delivery/v1.0/structured-contents/${assetEntry.getClassPK()}?nestedFields=embeddedTaxonomyCategory&fields=taxonomyCategoryBriefs") />
561
562 <#if categoriesAsssetEntryResponse?? && categoriesAsssetEntryResponse?has_content && categoriesAsssetEntryResponse.taxonomyCategoryBriefs??>
563 <#assign tagCategoryList = getCategoriesNamesAndIds("Tags", categoriesAsssetEntryResponse.taxonomyCategoryBriefs) />
564 <#assign removeStartParameterWhenTagIsClicked = true />
565 <#assign includeRequestParams = false />
566 <#assign NEWS_PAGE_NAME= "busca"/>
567 <@renderNewsTags tagCategoryList NEWS_PAGE_NAME removeStartParameterWhenTagIsClicked includeRequestParams />
568 </#if>
569
570 <#-- Renderizar a imagem de destaque da notícia -->
571 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Imagem de destaque -->
572 <@renderNewsFeaturedImage newsInfo = newsInfo/>
573
574 <#-- Renderizar o conteúdo da notícia -->
575 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Conteúdo da notícia -->
576 <@renderNewsContent newsInfo = newsInfo/>
577
578 <#-- Renderizar links da notícia -->
579 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Links do conteúdo da notícia -->
580 <@renderLinks newsInfo />
581
582 <@renderCite />
583 <#-- Renderizar áudios da notícia -->
584 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Áudios do conteúdo da notícia -->
585
586 <#-- Renderizar galeria de imagens notícia -->
587 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render galeria -->
588 <@renderGallery newsInfo />
589
590 <#-- Renderizar seção de download e mídias e texto -->
591 <#-- Conteúdo Web -> Templates: Site de Crise - Notícia - Render seção download -->
592 <@renderDownloadSection newsInfo />
593
594 </div>
595 </div>
596 </div>
597
598 <#function normalizeRichText richText>
599 <#return richText
600 ?replace('&[a-z]+;', ' ', 'r') <#-- Remove entidades HTML -->
601 ?replace('<[^>]+>', '', 'r') <#-- Remove tags HTML -->
602 ?replace('[\n\r]+', ' ', 'r') <#-- Normaliza quebras de linha -->
603 ?replace('[“”‘’]', '"', 'r') <#-- Escapa espas curvas -->
604 ?replace('\\\\', '\\\\', 'r') <#-- Escapa barras invertidas -->
605 ?trim <#-- Remove espaços no ínicio/fim -->
606 ?json_string <#-- Escapa o rstante da string para um JSON válido -->
607 >
608 </#function>
609
610 <#macro addSchemaMarkup newsInfo>
611 <#assign image = ""/>
612 <#assign datePublished = newsInfo.createDate?string('yyyy-MM-ddHH:mm:ss-03:00')/>
613 <#assign datePublishedISOFormat = datePublished?substring(0, 10) + "T" + datePublished?substring(10)/>
614 <#assign dateModified = newsInfo.lastPublishDate?string('yyyy-MM-ddHH:mm:ss-03:00')/>
615 <#assign dateModifiedISOFormat = dateModified?substring(0, 10) + "T" + dateModified?substring(10)/>
616
617 <#if newsInfo.newsImageFieldSet.newsImage?? && newsInfo.newsImageFieldSet.newsImage.fileEntryId?has_content>
618 <#assign image = "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsImageFieldSet.newsImage.fileEntryId}/Thumbnail-300x300/image"/>
619 </#if>
620
621 <#-- Busca informações do cadastro Organization do institucional do ambiente de produção -->
622 <#-- 35467409 é o id da estrutura de webcontent "Dados Estruturados - Organização" -->
623 <#assign organizationName = "" />
624 <#assign logoImgSrc = "" />
625
626 <#assign structuredContents = restClient.get("/headless-delivery/v1.0/content-structures/35467409/structured-contents")/>
627 <#if structuredContents?has_content && structuredContents.items?has_content>
628 <#assign structuredContentData = structuredContents.items[0]/>
629 <#if structuredContentData?has_content && structuredContentData.contentFields?has_content>
630 <#list structuredContentData.contentFields as item>
631 <#if item.label == "Nome legal da organização">
632 <#assign organizationName = item.contentFieldValue.data!"">
633 </#if>
634 <#if item.label == "Logotipo" && item.contentFieldValue?has_content && item.contentFieldValue.image??>
635 <#assign logoImgSrc = themeDisplay.getURLPortal() + item.contentFieldValue.image.contentUrl!"">
636 </#if>
637 </#list>
638 </#if>
639 </#if>
640
641 <#-- add Schema Markup (NewsArticle) to head -->
642 <@liferay_util["html-top"]>
643 <script type="application/ld+json">
644 {
645 "@context": "https://schema.org",
646 "@type": "NewsArticle",
647 "headline": "${normalizeRichText(newsInfo.mainHeadlineOfTheNews)}",
648 "alternativeHeadline": "${normalizeRichText(newsInfo.featuredNewsHeadline)}",
649 "image": "${image}",
650 "author": {
651 "@type": "Person",
652 "name": "Agência Petrobras",
653 "url": "${themeDisplay.getPortalURL()}/autor"
654 },
655 "publisher": {
656 "@type": "Organization",
657 "name": "${organizationName}",
658 "logo": {
659 "@type": "ImageObject",
660 "url": "${logoImgSrc}"
661 }
662 },
663 "datePublished": "${datePublishedISOFormat}",
664 "dateModified": "${dateModifiedISOFormat}",
665 "mainEntityOfPage": "${newsInfo.url}",
666 "description": "${normalizeRichText(newsInfo.newsSummary)}",
667 "keywords": [<#list tagCategoryList as tag>"${tag[0]}"<#sep>, </#list>],
668 "articleBody": "${normalizeRichText(newsInfo.newsContent)}"
669 }
670 </script>
671 </@>
672 </#macro>
673
674 <@addSchemaMarkup newsInfo/>
675
676 <script>
677 AUI().ready(function () {
678 const newsContent = document.querySelector(".ptb-news__read-content");
679 newsContent.querySelectorAll("p").forEach((item) => {
680 if (item.innerHTML.trim() == "") {
681 item.parentNode.removeChild(item);
682 }
683 });
684
685
686 const newsContentLinks = newsContent.querySelectorAll("a");
687 newsContentLinks.forEach((link) => {
688 link.classList.add('ptb-news__news-link');
689 });
690
691 console.log('tsts', newsContent, newsContentLinks)
692 });
693
694 </script>
695
696 <style>
697
698 .breadcrumb-breakpoint {
699 padding-top: var(--space-xxl);
700 padding-bottom: var(--space-xl);
701 }
702
703 body.high-contrast-active .breadcrumb-breakpoint {
704 background: var(--background-surface-level-01, #010101);
705 }
706
707 .breadcrumb-breakpoint .breadcrumb-col {
708 display: flex;
709 width: max-content;
710 gap: var(--space-xxs);
711 height: fit-content;
712 overflow-x: hidden;
713 }
714
715 .breadcrumb-breakpoint #liferay-breadcrumb {
716 display: none;
717 }
718
719 .breadcrumb-breakpoint .breadcrumb-page {
720 display: flex;
721 gap: var(--space-micro);
722 height: var(--size-md);
723 size: var(--size-md);
724 border: 1px solid rgba(0, 0, 0, 0);
725 box-sizing: border-box;
726 border-radius: var(--border-radius-sm);
727 }
728
729 .breadcrumb-breakpoint a.breadcrumb-page.text span,
730 .breadcrumb-breakpoint span.breadcrumb-page.text {
731 white-space: nowrap;
732 }
733
734 .breadcrumb-breakpoint .breadcrumb-page a:focus {
735 outline: none;
736 }
737
738 .breadcrumb-breakpoint .breadcrumb-page.active-page {
739 color: var(--color-text-primary-default);
740 background-color: var(--color-background-default-level-02);
741 border-radius: var(--border-radius-sm);
742 }
743
744 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.active-page {
745 background: var(--background-surface-level-02, #373737);
746 color: var(--text-primary-default, #FFF);
747 }
748
749 .breadcrumb-breakpoint .breadcrumb-page.previous-page {
750 transition: 300ms ease-in-out;
751 }
752
753 .breadcrumb-breakpoint .breadcrumb-page.previous-page.text {
754 text-decoration: var(--text-decoration-none);
755 color: var(--color-text-primary-default);
756 text-transform: capitalize;
757 padding-left: var(--space-xxs);
758 padding-right: var(--space-xxs);
759 }
760
761 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text {
762 color: var(--text-primary-default, #FFF);
763 }
764
765 .breadcrumb-breakpoint .breadcrumb-page.active-page.text {
766 color: var(--color-text-primary-default);
767 text-decoration: var(--text-decoration-none);
768 background-color: var(--color-background-default-level-02);
769 text-transform: capitalize;
770 padding-left: var(--space-xxs);
771 padding-right: var(--space-xxs);
772 }
773
774 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page.text {
775 color: var(--text-primary-default, #FFF);
776 }
777
778 .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover {
779 background-color: var(--color-background-default-level-01);
780 border-color: var(--border-color-dark);
781 border-radius: var(--border-radius-sm);
782 border: 1px solid;
783 transition: all 300ms ease-in-out;
784 }
785
786 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page.previous-page:not(.three-dots):hover {
787 background-color: transparent;
788 }
789
790 .breadcrumb-breakpoint .breadcrumb-page:focus-visible {
791 margin: var(--space-micro);
792 border-radius: var(--space-micro);
793 outline: none;
794 border: 1px solid var(--color-primary-medium);
795 box-sizing: border-box;
796 transition: 300ms ease-in-out;
797 }
798
799 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page:focus-visible {
800 border: 1px solid rgba(228, 247, 232, 1);
801 }
802
803 .breadcrumb-breakpoint .breadcrumb-page .icon {
804 width: var(--size-xxs);
805 height: var(--size-xxs);
806 border-color: var(--border-color-darkest);
807 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');
808 background-size: cover;
809 margin-top: auto;
810 margin-bottom: auto;
811 }
812
813 body.high-contrast-active .breadcrumb-breakpoint .breadcrumb-page .icon {
814 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>');
815 }
816
817 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
818 header.cadmin.portlet-topper {
819 display: none !important;
820 }
821 }
822
823 @media screen and (min-width: ${MIN_TABLET_WIDTH}px) and (max-width: ${MAX_TABLET_WIDTH}px) {
824 }
825 </style>
826<#else >
827 <@printNewsNotFound />
828</#if>
829
830
831
832
833<#macro printNewsNotFound>
834 <div class="ptb-news__read-news">
835 <#if locale == "pt_BR">
836 <p>Nenhuma notícia</p>
837 <#else >
838 <p>There are no news</p>
839 </#if>
840 </div>
841
842 <style>
843 .ptb-news__read-news p {
844 font-family: var(--font-family-base);
845 font-style: var(--font-style-normal, normal);
846 font-weight: var(--font-weight-regular, 400);
847 font-size: var(--font-size-xxs, 16px);
848 line-height: var(--line-height-xl, 160%);
849 color: var(--color-neutral-700, #515867);
850 }
851 </style>
852</#macro>
853
854<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### -->
855<#--
856Add elements from the sidebar to define your template. Type "${" to use the
857autocomplete feature.
858-->
859
860<#macro renderHeadLine newsInfo>
861 <div class="breakpoint">
862 <div class="col-3-10 md-col-1-12 sm-col-1-4">
863 <div class="main-headline-container">
864 <h1 class="main-headline">${newsInfo.mainHeadlineOfTheNews}</h1>
865 <div class="bar"></div>
866 </div>
867 </div>
868 </div>
869 <style>
870 .ptb-news__read-news .main-headline-container {
871 display: flex;
872 flex-direction: column;
873 gap: var(--space-sm);
874 padding-bottom: var(--space-lg);
875 }
876
877 .ptb-news__read-news .main-headline-container * {
878 margin: 0;
879 padding: 0;
880 }
881
882 .ptb-news__read-news .main-headline-container .main-headline {
883 font-family: var(--font-family-base);
884 font-style: var(--font-style-normal, normal);
885 font-weight: var(--font-weight-bold);
886 font-size: var(--font-size-xl);
887 line-height: var(--line-height-sm);
888 color: var(--color-neutral-800);
889 }
890
891 .ptb-news__read-news .main-headline-container .bar {
892 width: var(--size-lg, 32px);
893 height: var(--size-micro);
894 background: var(--color-secondary-medium);
895 }
896
897 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
898 .ptb-news__read-news .main-headline-container {
899 gap: var(--size-xxs);
900 }
901 }
902 </style>
903</#macro>
904<#-- ################################################################################################################## -->
905
906<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### -->
907<#macro renderReview newsInfo>
908 <#assign summaryCssRoot = "summary-container" />
909
910 <div class="breakpoint">
911 <div class="col-3-10 md-col-1-12 sm-col-1-4">
912 <div class="${summaryCssRoot}">
913 <h2 class="summary">
914 ${newsInfo.newsSummary}
915 </h2>
916 </div>
917 </div>
918 </div>
919
920 <style>
921 .${summaryCssRoot} .summary {
922 padding-bottom: var(--space-lg);
923 }
924
925 .${summaryCssRoot} .summary,
926 .${summaryCssRoot} .summary * {
927 color: var(--color-neutral-800, #373737);
928 font-family: var(--font-family-base);
929 font-size: var(--font-size-sm);
930 font-style: var(--font-style-italic);
931 font-weight: var(--font-weight-regular);
932 line-height: var(--line-height-xl);
933 margin: var(--space-none);
934 }
935
936 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
937 .${summaryCssRoot} .summary,
938 .${summaryCssRoot} .summary * {
939 font-size: var(--font-size-xs);
940 }
941 }
942 </style>
943
944</#macro>
945
946<#macro renderAuthor>
947 <#assign authorPageUrl = "" />
948
949 <#if themeDisplay.getPortalURL()?contains("webserver")>
950 <#assign authorPageUrl = "${themeDisplay.getPortalURL()}/web/agencia/autor" />
951 <#else>
952 <#assign authorPageUrl = "${themeDisplay.getPortalURL()}/autor" />
953 </#if>
954
955 <div class="breakpoint">
956 <div class="col-3-10 md-col-1-12 sm-col-1-4">
957 <p class="article-author">Autor: <a class="link-sm" href=${authorPageUrl}>Agência Petrobras</a></p>
958 </div>
959 </div>
960
961 <style>
962 .article-author {
963 margin-bottom: var(--space-lg, 32px);
964 font-weight: 400;
965 font-size: 16px;
966 line-height: 160%;
967 letter-spacing: 0%;
968 color: var(--color-neutral-800, #373737);
969 }
970
971 .article-author a {
972 font-weight: 700;
973 font-size: 14px;
974 line-height: 144%;
975 text-decoration: underline;
976 text-decoration-style: solid;
977 text-decoration-thickness: 0%;
978 color: var(--color-primary-medium, #008542);
979 }
980 </style>
981</#macro>
982<#-- ################################################################################################################## -->
983
984<#-- ############# Site de Crise - Notícia - Redes sociais e data de publicação ####################################### -->
985<#macro renderPublishAndSocialMediasInfos journalArticle newsInfo>
986
987 <div class="breakpoint">
988 <div class="col-3-10 md-col-1-12 sm-col-1-4">
989 <div class="publish_and_social_medias_infos_desk">
990 <div class="publish_and_update_date">
991 <#assign lastPublishDate = journalArticle.getModifiedDate()>
992 <#assign createDate = journalArticle.getCreateDate()>
993 <#assign displayDate = journalArticle.getDisplayDate() />
994 <#if journalArticle.getLastPublishDate()??>
995 <#assign lastPublishDate = journalArticle.getLastPublishDate()>
996 </#if>
997
998 <#if locale == "pt_BR">
999 <#-- <p class="updated">Atualizado em ${formatDate(lastPublishDate)}</p> -->
1000 <p class="published">Postado em ${formatDate(displayDate)}</p>
1001 <#else >
1002 <#-- <p class="updated">Updated on ${formatDate(lastPublishDate)}</p> -->
1003 <p class="published">Posted on ${formatDate(displayDate)}</p>
1004 </#if>
1005 </div>
1006
1007 <#-- <div class="share_news_container">-->
1008 <div class="social-media-container">
1009
1010 <#assign emailMsg = "Veja o conteúdo do post no link ">
1011 <#if locale == "en_US">
1012 <#assign emailMsg = "See the content of the post in the link ">
1013 </#if>
1014 <a class="share-news-social-media news-gallery-share-news-email" href="mailto:?subject=${newsInfo.mainHeadlineOfTheNews}&body=${emailMsg}${newsInfo.url}"
1015 target="_blank">
1016 <svg class="email" width="37" height="36" viewBox="0 0 37 36" fill="none"
1017 xmlns="http://www.w3.org/2000/svg">
1018 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
1019 <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"
1020 fill="#008542"/>
1021 </svg>
1022 <span>send e-mail</span>
1023 </a>
1024
1025 <a class="share-news-social-media news-gallery-share-news-facebook" href="https://www.facebook.com/sharer/sharer.php?u=${newsInfo.url}" target="_blank">
1026 <svg class="facebook" width="37" height="36" viewBox="0 0 37 36" fill="none"
1027 xmlns="http://www.w3.org/2000/svg">
1028 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
1029 <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"
1030 fill="#008542"/>
1031 </svg>
1032 <span>Share Facebook </span>
1033 </a>
1034
1035 <#assign mobileShareButtonId = "mobile-share-" + randomNumber(5)>
1036 <div class="mobile-share" id="${mobileShareButtonId}">
1037 <svg width="37" height="36" viewBox="0 0 37 36" fill="none" xmlns="http://www.w3.org/2000/svg">
1038 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
1039 <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"
1040 fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/>
1041 <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"
1042 fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/>
1043 <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"
1044 fill="#008542" stroke="#008542" stroke-linecap="round" stroke-linejoin="round"/>
1045 <path d="M20.2546 14.0784L15.9036 16.8879" stroke="#008542" stroke-linecap="round"
1046 stroke-linejoin="round"/>
1047 <path d="M15.9036 19.4871L20.2546 22.2966" stroke="#008542" stroke-linecap="round"
1048 stroke-linejoin="round"/>
1049 </svg>
1050 </div>
1051
1052 <a class="share-news-social-media news-gallery-share-news-twitter" href="https://twitter.com/intent/tweet?url=${newsInfo.url}" target="_blank" data-size="large">
1053 <svg class="twitter" width="37" height="36" viewBox="0 0 37 36" fill="none"
1054 xmlns="http://www.w3.org/2000/svg">
1055 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
1056 <path d="M23.1771 14.7301C23.6859 14.3325 24.1438 13.8554 24.5 13.2988C24.0421 13.5108 23.5078 13.6699 22.9736 13.7229C23.5333 13.3783 23.9403 12.8482 24.1438 12.1855C23.635 12.5036 23.0499 12.7422 22.4648 12.8747C21.956 12.3181 21.2691 12 20.5059 12C19.0303 12 17.8346 13.2458 17.8346 14.7831C17.8346 14.9952 17.8601 15.2072 17.911 15.4193C15.6977 15.2867 13.7133 14.1735 12.3904 12.5036C12.1614 12.9012 12.0342 13.3783 12.0342 13.9084C12.0342 14.8627 12.4922 15.7108 13.2299 16.2145C12.7975 16.188 12.365 16.0819 12.0088 15.8699V15.8964C12.0088 17.2482 12.9247 18.3614 14.1458 18.6265C13.9423 18.6795 13.6879 18.7325 13.4589 18.7325C13.2808 18.7325 13.1282 18.706 12.9501 18.6795C13.2808 19.7928 14.273 20.588 15.4432 20.6145C14.5274 21.3566 13.3826 21.8072 12.136 21.8072C11.907 21.8072 11.7035 21.7807 11.5 21.7542C12.6703 22.5494 14.0695 23 15.5959 23C20.5059 23 23.1771 18.7855 23.1771 15.1012C23.1771 14.9687 23.1771 14.8627 23.1771 14.7301Z"
1057 fill="#008542"/>
1058 </svg>
1059 <span>Share Twitter </span>
1060 </a>
1061
1062 <a class="share-news-social-media news-gallery-share-news-whatsapp" href="https://api.whatsapp.com/send?text=${newsInfo.url}" data-action="share/whatsapp"
1063 target="_blank">
1064 <svg class="whatsapp" width="37" height="36" viewBox="0 0 37 36" fill="none"
1065 xmlns="http://www.w3.org/2000/svg">
1066 <circle cx="18.5" cy="18" r="17.5" fill="white" stroke="#E1E1E1"/>
1067 <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"
1068 fill="#008542"/>
1069 <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"
1070 fill="white"/>
1071 </svg>
1072 <span>Share to WhatsApp </span>
1073 </a>
1074
1075 <div class="copy-text-container news-copy-text">
1076 <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
1077 <path d="M10.5 10.5H13.5V2.5H5.5V5.5" stroke="#008542" stroke-linecap="round"
1078 stroke-linejoin="round"/>
1079 <path d="M10.5 5.5H2.5V13.5H10.5V5.5Z" stroke="#008542" stroke-linecap="round"
1080 stroke-linejoin="round"/>
1081 </svg>
1082
1083 <#if locale == "pt_BR">
1084 <p class="text">Copiar texto
1085 <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span>
1086 </p>
1087 <#else >
1088 <p class="text">Copy text
1089 <span class="copy-text-title-news"> ${newsInfo.mainHeadlineOfTheNews} </span>
1090 </p>
1091 </#if>
1092 </div>
1093
1094 </div>
1095
1096 <#if locale == "pt_BR">
1097 <span class="copy-message">Texto copiado!</span>
1098 <#else >
1099 <span class="copy-message">Text copied!</span>
1100 </#if>
1101 <#-- </div>-->
1102 </div>
1103 </div>
1104 </div>
1105
1106 <style>
1107 /*Data de publicação e redes sociais */
1108
1109 /* Desktop */
1110 .ptb-news__read-news .publish_and_social_medias_infos_desk {
1111 position: relative;
1112 display: grid;
1113 grid-template-columns: auto 1fr auto;
1114 }
1115
1116 .ptb-news__read-news .publish_and_social_medias_infos_desk * {
1117 padding: var(--space-none, 0);
1118 margin: var(--space-none, 0);
1119 font-family: var(--font-family-base);
1120 font-style: var(--font-style-normal, normal);
1121 font-weight: var(--font-weight-regular, 400);
1122 font-size: var(--font-size-xxs, 16px);
1123 line-height: var(--line-height-xl, 160%);
1124 color: var(--color-neutral-800, #373737);
1125 }
1126
1127 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk * {
1128 color: var(--text-secondary-default, #F8F8F8);
1129 }
1130
1131 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg path,
1132 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg path {
1133 stroke: var(--color-neutral-500, #D7D7D7);
1134 fill: rgba(255, 255, 255, 0.32);
1135 }
1136
1137 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk a svg circle,
1138 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .mobile-share svg circle {
1139 fill: rgba(255, 255, 255, 0.32);
1140
1141 }
1142
1143 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date {
1144 display: flex;
1145 flex-direction: column;
1146 gap: var(--space-none, 0);;
1147 }
1148
1149 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .updated {
1150 font-weight: var(--font-weight-bold, 700);
1151 }
1152
1153 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published {
1154 font-weight: var(--font-weight-normal, 400);
1155 }
1156
1157 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container {
1158 display: flex;
1159 width: 100%;
1160 justify-content: flex-end;
1161 align-items: center;
1162 gap: var(--space-sm, 16px);
1163 }
1164
1165 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share {
1166 display: none;
1167 cursor: pointer;
1168 }
1169
1170
1171 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share svg {
1172 pointer-events: none;
1173 }
1174
1175 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .share-news-social-media * {
1176 pointer-events: none;
1177 }
1178
1179 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .share-news-social-media {
1180 position: relative;
1181 }
1182
1183 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .share-news-social-media span {
1184 position: absolute;
1185 top: 0;
1186 left: 0;
1187 width: 100%;
1188 height: 100%;
1189 opacity: 0;
1190 overflow: hidden;
1191 pointer-events: none;
1192 }
1193
1194 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container {
1195 background: #FFFFFF;
1196 border: var(--border-width-hairline, 1px) solid var(--color-opacity-dark-level-01, #CCCCCC);
1197 border-radius: var(--border-radius-xl, 32px);
1198 display: flex;
1199 align-items: center;
1200 gap: var(--space-sm, 16px);
1201 padding: 6px var(--space-xxs, 8px);
1202 height: 36px;
1203 margin: 0;
1204 cursor: pointer;
1205 }
1206
1207 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container * {
1208 pointer-events: none;
1209 }
1210
1211 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container {
1212 background: rgba(255, 255, 255, 0.32);
1213 border: var(--border-width-hairline, 1px) solid rgba(255, 255, 255, 0.32);
1214 }
1215
1216 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container svg {
1217 width: 18px;
1218 }
1219
1220 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk svg path {
1221 stroke: var(--color-neutral-500, #D7D7D7);
1222 }
1223
1224 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container {
1225 background: #FFFFFF;
1226 border: var(--border-width-hairline, 1px) solid var(--color-opacity-dark-level-01, #CCCCCC);
1227 border-radius: var(--border-radius-xl, 32px);
1228 display: flex;
1229 align-items: center;
1230 gap: var(--space-sm, 16px);
1231 padding: 6px var(--space-sm, 16px);
1232 height: 36px;
1233 margin: 0;
1234 cursor: pointer;
1235 position: relative;
1236 }
1237
1238
1239 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text {
1240 font-family: var(--font-family-base);
1241 font-style: var(--font-weight-regular, normal);
1242 margin: 0;
1243 height: 100%;
1244 display: flex;
1245 align-items: center;
1246 color: var(--color-primary-brand, #008542);
1247 font-size: var(--font-size-micro, 12px);
1248 font-weight: var(--font-weight-bold, 700);
1249 line-height: var(--line-height-lg, 144%);
1250 }
1251
1252 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text .copy-text-title-news {
1253 position: absolute;
1254 top: 0;
1255 left: 0;
1256 width: 100%;
1257 height: 100%;
1258 opacity: 0;
1259 overflow: hidden;
1260 }
1261
1262 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text {
1263 color: var(--text-primary-accent, #E4F7E8);
1264 }
1265
1266 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message {
1267 display: none;
1268 position: absolute;
1269 bottom: -43px;
1270 right: -15px;
1271 padding: var(--space-xxxs, 4px) var(--space-sm, 15px);
1272 margin: var(--space-micro, 2px) 10px;
1273 width: 110px;
1274 font-family: var(--font-family-base);
1275 font-size: var(--font-size-micro, 12px);
1276 color: var(--color-primary-brand, #008542);
1277 background: #FFFFFF;
1278 border-radius: var(--border-radius-md, 8px);
1279
1280 filter: drop-shadow(0px 4px 16px rgba(0, 0, 0, 0.16));
1281
1282 cursor: pointer;
1283 }
1284
1285 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message {
1286 background: rgba(255, 255, 255, 0.32);
1287 color: var(--text-primary-accent, #E4F7E8);
1288 }
1289
1290 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message-active {
1291 display: block;
1292 }
1293
1294 /* Mobile */
1295
1296 .ptb-news__read-news .publish_and_social_medias_infos_mobile {
1297 display: flex;
1298 flex-direction: column;
1299 gap: 19px;
1300 }
1301
1302 .ptb-news__read-news .publish_and_social_medias_infos_mobile {
1303 display: none;
1304 }
1305
1306 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text {
1307 display: flex;
1308 justify-content: space-between;
1309 align-items: center;
1310 margin-bottom: var(--space-lg, 32px);
1311 }
1312
1313 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date * {
1314 padding: 0;
1315 margin: 0;
1316 font-family: var(--font-family-base);
1317 font-style: var(--font-style-normal, normal);
1318 font-size: var(--font-size-micro, 12px);
1319 line-height: var(--line-height-md, 136%);
1320 color: var(--color-neutral-800, #373737);
1321 }
1322
1323 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date {
1324 display: flex;
1325 flex-direction: column;
1326 gap: 0;
1327 }
1328
1329 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 * {
1330 color: var(--text-primary-accent, #E4F7E8);
1331 }
1332
1333 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .updated {
1334 font-weight: var(--font-weight-bold, 700);
1335 }
1336
1337 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .publish_and_update_date .published {
1338 font-weight: var(--font-weight-regular, 400);
1339 }
1340
1341 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container {
1342 background: #FFFFFF;
1343 border: var(--border-width-hairline, 1px) solid var(--color-opacity-dark-level-01, #CCCCCC);
1344 border-radius: var(--border-radius-xl, 32px);
1345 display: flex;
1346 align-items: center;
1347 gap: var(--space-sm, 16px);
1348 padding: 6px var(--space-xxxs, 8px);
1349 width: 112px;
1350 height: 36px;
1351 }
1352
1353 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container {
1354 background: rgba(255, 255, 255, 0.32);
1355 color: var(--text-primary-accent, #E4F7E8);
1356 }
1357
1358 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container p.text {
1359 margin: 0;
1360 }
1361
1362 .ptb-news__read-news .publish_and_social_medias_infos_mobile .publish_and_update_date_and_copy_text .copy-text-container .text {
1363 font-family: var(--font-family-base);
1364 font-style: var(--font-style-normal, normal);
1365 font-weight: var(--font-weight-regular, 400);
1366 font-size: var(--font-size-micro, 13px);
1367 line-height: 14px;
1368 color: var(--color-primary-medium, #008542);
1369 }
1370
1371 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 {
1372 background: rgba(255, 255, 255, 0.32);
1373 color: var(--text-primary-accent, #E4F7E8);
1374 }
1375
1376 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
1377 .ptb-news__read-news .publish_and_social_medias_infos_desk {
1378 display: grid;
1379 grid-template-columns: 100%;
1380 grid-template-rows: 1fr 100%;
1381 gap: var(--space-md);
1382 }
1383
1384 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date {
1385 grid-column-start: 1;
1386 grid-column-end: 1;
1387 grid-row-start: 1;
1388 grid-row-end: 1;
1389 gap: var(--space-xxs, 8px);
1390 }
1391
1392 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * {
1393 padding: 0;
1394 margin: 0;
1395 font-family: var(--font-family-base);
1396 font-style: var(--font-style-normal);
1397 color: var(--color-neutral-800, #373737);
1398 font-weight: var(--font-weight-bold);
1399 font-size: var(--font-size-xxxs, 14px);
1400 line-height: var(--line-height-md, 132%);
1401 }
1402
1403 body.high-contrast-active .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date * {
1404 color: var(--text-primary-accent, #E4F7E8);
1405 }
1406
1407 .ptb-news__read-news .publish_and_social_medias_infos_desk .publish_and_update_date .published {
1408 font-weight: 400;
1409 }
1410
1411 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container {
1412 grid-column-start: 1;
1413 grid-column-end: 2;
1414 grid-row-start: 2;
1415 grid-row-end: 2;
1416 justify-content: flex-end;
1417 height: 36px;
1418 }
1419
1420 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container {
1421 grid-column-start: 1;
1422 grid-column-end: 2;
1423 grid-row-start: 2;
1424 grid-row-end: 2;
1425 max-width: 112px;
1426 place-self: end;
1427 }
1428
1429 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-text-container .text {
1430 display: none;
1431 }
1432
1433 .ptb-news__read-news .publish_and_social_medias_infos_desk .copy-message {
1434 bottom: 0;
1435 right: -9px;
1436 }
1437
1438 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container .mobile-share {
1439 display: initial;
1440 }
1441 }
1442
1443 @media screen and (min-width: ${MIN_TABLET_WIDTH}px) and (max-width: ${MAX_TABLET_WIDTH}px) {
1444 .ptb-news__read-news .publish_and_social_medias_infos_desk .social-media-container {
1445 padding-right: 0;
1446 }
1447 }
1448
1449
1450 </style>
1451
1452 <script>
1453 AUI().ready(function () {
1454
1455 function copyOnClick(text) {
1456
1457 const strWithoutHtmlTags = text.replace(/(<([^>]+)>)/gi, "");
1458 const strWithoutMarcationBrackets = strWithoutHtmlTags.replace(/ *#\[[^\]]*]/g, "");
1459 const strWithoutNextPrevious = strWithoutMarcationBrackets.replace(/Previous Next/g, "");
1460 const strWithoutBlankEnters = strWithoutNextPrevious.replace(/^\s*$(?:\r\n?|\n)/gm, "");
1461 const tempInput = document.createElement("textarea");
1462 tempInput.value = strWithoutBlankEnters;
1463
1464 document.body.appendChild(tempInput);
1465 tempInput.select();
1466 document.execCommand("copy");
1467
1468 if (tempInput.value.length > 0) {
1469 copyMessage.classList.add('copy-message-active');
1470
1471 timerToMessage()
1472 }
1473
1474 document.body.removeChild(tempInput);
1475 }
1476
1477 const root = document.querySelector(".publish_and_social_medias_infos_desk");
1478 const copyTextContainer = root.querySelector(".copy-text-container");
1479 copyTextContainer.addEventListener("click", (event) => {
1480 event.preventDefault();
1481 const titleText = document.querySelector(".main-headline-container .main-headline").innerHTML;
1482 const publishSocialMediaText = document.querySelector(".publish_and_social_medias_infos_desk .publish_and_update_date").innerHTML;
1483 const tagsText = document.querySelector(".tags").innerHTML;
1484 const newsContentText = document.querySelector(".news-content").innerHTML;
1485 const text = titleText + publishSocialMediaText + tagsText + newsContentText;
1486 copyOnClick(text)
1487 });
1488
1489 const mobileShare = async () => {
1490 try {
1491 const shareData = {
1492 title: '${newsInfo.mainHeadlineOfTheNews}',
1493 text: '',
1494 url: '${newsInfo.url}'
1495 };
1496 await navigator.share(shareData);
1497 } catch (err) {
1498
1499 }
1500 };
1501
1502 const mobileShareButton = document.querySelector("#${mobileShareButtonId}");
1503 mobileShareButton.addEventListener("click", (event) => {
1504 event.preventDefault();
1505 mobileShare();
1506 });
1507
1508 const copyMessage = document.querySelector('.copy-message');
1509 const timerToMessage = () => {
1510 setTimeout(() => {
1511 removeMessage();
1512 }, 2500);
1513
1514 }
1515
1516 const removeMessage = () => {
1517 copyMessage.classList.remove('copy-message-active');
1518 }
1519
1520 });
1521 </script>
1522
1523</#macro>
1524
1525<#-- ################################################################################################################## -->
1526
1527<#-- ############# Site de Crise - Notícia - Render Tags ############################################################## -->
1528
1529<#function getCategoriesNamesAndIds vocabularyName categoriesList>
1530 <#assign tagCategoryList = [] />
1531
1532 <#assign tagsVocabulary = assetVocabularyService.fetchGroupVocabulary(groupId, vocabularyName) />
1533 <#list categoriesList as cat>
1534 <#if tagsVocabulary.getVocabularyId() == cat.embeddedTaxonomyCategory.taxonomyVocabularyId >
1535 <#assign tagCategoryList += [[cat.taxonomyCategoryName, cat.taxonomyCategoryId]] />
1536 </#if>
1537 </#list>
1538 <#return tagCategoryList>
1539</#function>
1540
1541<#function filterCategories allCategoryInfoList>
1542 <#assign filteredCategoryInfo = []>
1543 <#assign assetEntryQueryService = objectUtil("com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil").getService()>
1544 <#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')>
1545
1546 <#list allCategoryInfoList as catInfo>
1547 <#assign catId = catInfo[1]>
1548 <#assign search = assetEntryQuery.setAllCategoryIds([catId])>
1549 <#assign foundEntries = assetEntryQueryService.getEntries(assetEntryQuery)>
1550 <#if foundEntries?size gt 0>
1551 <#assign filteredCategoryInfo += [catInfo]>
1552 </#if>
1553 </#list>
1554
1555 <#return filteredCategoryInfo>
1556</#function>
1557
1558<#assign
1559vocabularies = assetVocabularyService.getGroupVocabularies(groupId)
1560flagVocabulary = findVocabulary("Flag", vocabularies)
1561assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")
1562/>
1563
1564<#function getCategoryIdsFromEntry entry categoriesToFilter assetCategoryLocalService>
1565 <#if !entry??>
1566 <#return []>
1567 </#if>
1568
1569 <#assign categoriesFromEntry = []>
1570
1571 <#assign ids = assetCategoryLocalService.getCategoryIds("com.liferay.journal.model.JournalArticle", entry.getClassPK()) />
1572 <#list categoriesToFilter as catToFilter>
1573 <#assign catIdFromEntry = catToFilter[1] />
1574 <#assign index = ids?seq_index_of(catIdFromEntry)/>
1575 <#if index != -1>
1576 <#assign categoriesFromEntry += [catToFilter]/>
1577 </#if>
1578 </#list>
1579
1580 <#return categoriesFromEntry>
1581</#function>
1582
1583<#macro renderNewsTags categoryList targetPageWhenClickTag removeStartParameterWhenTagIsClicked updateTagParamsWhenClicked>
1584 <#assign tagPrefix = "tags-" + randomNumber(groupId?number)>
1585 <div class="breakpoint">
1586 <div class="col-3-10 md-col-1-12 sm-col-1-4">
1587 <div class="${tagPrefix} ">
1588
1589 <#assign siteUrl = "" />
1590 <#if themeDisplay.getPortalURL()?contains("webserver")>
1591 <#assign siteUrl = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL />
1592 </#if>
1593
1594 <div class="tags">
1595 <#list categoryList as cat>
1596 <a href="${siteUrl}/busca?q=&category=${cat[1]}"
1597 class="category news-tag-item" cetegoryid="${cat[1]}"># ${cat[0]}</a>
1598 </#list>
1599 </div>
1600 </div>
1601 </div>
1602 </div>
1603
1604 <style>
1605 .${tagPrefix} {
1606 display: flex;
1607 flex-direction: column;
1608 padding: 0;
1609 gap: var(--space-sm);
1610 }
1611
1612 .${tagPrefix} * {
1613 margin: 0;
1614 padding: 0;
1615 }
1616
1617 .${tagPrefix} .tags {
1618 display: flex;
1619 flex-wrap: wrap;
1620 gap: var(--space-xxs, 8px);
1621 padding: var(--space-lg) 0 var(--space-xl);
1622 }
1623
1624 .${tagPrefix} .tags .category {
1625 padding: var(--space-xxxs) var(--space-xxs);
1626 background: var(--color-neutral-100);
1627 border: 1px solid var(--color-neutral-500);
1628 border-radius: var(--border-radius-xl, 32px);
1629
1630 font-family: var(--font-family-base);
1631 font-style: var(--font-style-normal);
1632 font-weight: var(--font-weight-regular);
1633 font-size: var(--font-size-xxxs);
1634 line-height: var(--line-height-xl);
1635 color: var(--color-neutral-800, #373737);
1636 cursor: pointer;
1637 }
1638
1639 body.high-contrast-active .${tagPrefix} .tags .category {
1640 background: rgba(255, 255, 255, 0.32);
1641 border: 1px solid rgba(255, 255, 255, 0.32);
1642 color: var(--text-secondary-default, #F8F8F8);
1643 }
1644
1645 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
1646 .${tagPrefix} .tags {
1647 display: flex;
1648 flex-wrap: wrap;
1649 gap: var(--space-xxs, 8px);
1650 padding: var(--space-sm) 0 var(--space-lg);
1651 }
1652
1653 .${tagPrefix} {
1654 margin-top: var(--space-sm);
1655 }
1656 }
1657 </style>
1658
1659 <script>
1660 AUI().ready(function () {
1661
1662 const urlParams = new URLSearchParams(window.location.search);
1663 const categories = urlParams.getAll("category").sort();
1664
1665 const root = document.querySelector(".${tagPrefix}");
1666 const tags = root.querySelectorAll(".category");
1667 tags.forEach((tag, index) => {
1668
1669 const categoryId = tag.getAttribute("cetegoryid");
1670 if (categories.indexOf(categoryId) != -1) {
1671 tag.classList.add("active");
1672 }
1673
1674 <#if updateTagParamsWhenClicked>
1675 tag.addEventListener("click", (e) => {
1676 e.preventDefault();
1677 const clickedTag = e.target;
1678 const urlParams = new URLSearchParams(window.location.search);
1679 urlParams.delete("tag");
1680 urlParams.delete("category");
1681
1682 const categoryId = clickedTag.getAttribute("cetegoryid");
1683 urlParams.append("category", categoryId);
1684
1685 <#if removeStartParameterWhenTagIsClicked>
1686 urlParams.delete("start");
1687 </#if>
1688
1689 const href = "${themeDisplay.getPortalURL() + mountUrlToPage(targetPageWhenClickTag)}?" + urlParams.toString();
1690 window.location.href = href;
1691 });
1692 </#if>
1693 });
1694 });
1695 </script>
1696
1697</#macro>
1698
1699<#-- ################################################################################################################## -->
1700
1701<#-- ############# Site de Crise - Notícia - Imagem de destaque ####################################################### -->
1702<#macro renderNewsFeaturedImage newsInfo>
1703<#--if newsInfo.newsImageFieldSet.newsImage.url != ""-->
1704
1705 <#if !newsInfo.newsImageFieldSet.newsImage.url?has_content>
1706 <#return />
1707 </#if>
1708
1709 <div class="news-featured-image">
1710 <div class="breakpoint">
1711 <div class="col-3-10 md-col-1-12 sm-col-1-4">
1712 <#if newsInfo.newsImageFieldSet.credits != "">
1713 <p class="credits">
1714 ${newsInfo.newsImageFieldSet.credits}
1715 </p>
1716 </#if>
1717 </div>
1718 </div>
1719 <div class="breakpoint">
1720 <div class="col-2-11 md-col-1-12 sm-col-1-4">
1721 <img alt="${newsInfo.newsImageFieldSet.newsImage.alt}"
1722 src="${newsInfo.newsImageFieldSet.newsImage.url}"
1723 alt="${newsInfo.newsImageFieldSet.newsImage.alt}"/>
1724 </div>
1725 </div>
1726 <#if newsInfo.newsImageFieldSet.legend != "">
1727
1728
1729 <@liferay_util["html-top"]>
1730 <meta name="title" content="${newsInfo.mainHeadlineOfTheNews}">
1731 <meta name="description" content="${newsInfo.newsSummary}">
1732
1733 <meta property="og:type" content="website" >
1734 <meta property="og:url" content="${currentURL}" >
1735 <meta property="og:title" content="${newsInfo.mainHeadlineOfTheNews}">
1736 <meta property="og:description" content="${newsInfo.newsSummary}" />
1737 <meta property="og:image" content= "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsImageFieldSet.newsImage.fileEntryId}/Thumbnail-300x300/image" >
1738 <meta property="og:image:alt" content="${newsInfo.newsImageFieldSet.newsImage.alt}">
1739
1740 <meta name="twitter:card" content="summary_large_image">
1741 <meta name="twitter:url" content="${currentURL}" />
1742 <meta name="twitter:title" content="${newsInfo.mainHeadlineOfTheNews}">
1743 <meta name="twitter:description" content="${newsInfo.newsSummary}" />
1744 <meta name="twitter:image" content= "${themeDisplay.getPortalURL()}/o/adaptive-media/image/${newsInfo.newsImageFieldSet.newsImage.fileEntryId}/Thumbnail-300x300/image" >
1745 <meta name="twitter:image:alt" content="${newsInfo.newsImageFieldSet.newsImage.alt}">
1746
1747 </@>
1748
1749
1750 <div class="breakpoint">
1751 <div class="col-3-10 md-col-1-12 sm-col-1-4">
1752 <div class="legend">
1753 <p>${newsInfo.newsImageFieldSet.legend}</p>
1754 <a class="download download-news-image" href="${newsInfo.newsImageFieldSet.newsImage.url}?download=true"
1755 alt="${newsInfo.newsImageFieldSet.newsImage.alt}">
1756 Download
1757 <svg width="16" height="16" viewBox="0 0 16 16" fill="none"
1758 xmlns="http://www.w3.org/2000/svg">
1759 <path d="M5.375 6.875L8 9.5M8 9.5L10.625 6.875M8 9.5V2.5M13.5 9.5V13C13.5 13.1326 13.4473 13.2598 13.3536 13.3536C13.2598 13.4473 13.1326 13.5 13 13.5H3C2.86739 13.5 2.74021 13.4473 2.64645 13.3536C2.55268 13.2598 2.5 13.1326 2.5 13V9.5"
1760 stroke="#008542" stroke-width="1.5" stroke-linecap="round"
1761 stroke-linejoin="round"/>
1762 </svg>
1763 <span>${newsInfo.newsImageFieldSet.legend}</span>
1764 </a>
1765 </div>
1766 </div>
1767 </div>
1768 </#if>
1769 </div>
1770 <style>
1771 .ptb-news__read-news .news-featured-image {
1772 padding: 0 0 var(--space-xl) 0;
1773 }
1774
1775 .ptb-news__read-news .news-featured-image img {
1776 width: 100%;
1777 height: 470px;
1778 object-fit: cover;
1779 border-radius: var(--border-radius-lg, 16px);
1780 }
1781
1782 .ptb-news__read-news .news-featured-image * {
1783 font-family: var(--font-family-base);
1784 line-height: var(--line-height-xl);
1785 }
1786
1787 .ptb-news__read-news .news-featured-image .credits {
1788 font-style: var(--font-style-normal);
1789 font-weight: var(--font-weight-bold, 700);
1790 font-size: var(--font-size-micro, 12px);
1791 text-align: right;
1792 color: var(--color-neutral-600, #959595);
1793 margin-bottom: var(--space-xxxs, 4px);
1794 }
1795
1796 body.high-contrast-active .ptb-news__read-news .news-featured-image .credits {
1797 color: var(--text-secondary-default, #F8F8F8);
1798 }
1799
1800 .ptb-news__read-news .news-featured-image .legend {
1801 margin-top: var(--space-xxxs, 4px);
1802 display: flex;
1803 justify-content: space-between;
1804 }
1805
1806 .ptb-news__read-news .news-featured-image .legend .download-news-image {
1807 position: relative;
1808 }
1809
1810 .ptb-news__read-news .news-featured-image .legend .download-news-image span {
1811 position: absolute;
1812 top: 0;
1813 left: 0;
1814 opacity: 0;
1815 width: 100%;
1816 height: 100%;
1817 }
1818
1819 .ptb-news__read-news .news-featured-image .legend,
1820 .ptb-news__read-news .news-featured-image .legend * {
1821 font-style: var(--font-style-italic, italic);
1822 font-weight: var(--font-weight-regular, 400);
1823 font-size: var(--font-size-xxs, 16px);
1824 color: var(--color-neutral-700, #515867);
1825 }
1826
1827 .ptb-news__read-news .news-featured-image .legend a {
1828 display: flex;
1829 align-items: center;
1830 gap: var(--space-sm, 16px);
1831 color: var(--color-primary-brand, #008542);
1832 font-family: var(--font-family-base);
1833 font-size: var(--font-size-xxxs, 14px);
1834 font-style: var(--font-style-normal, normal);
1835 font-weight: var(--font-weight-bold, 700);
1836 line-height: var(--line-height-lg, 144%);
1837 text-decoration-line: var(--text-decoration-underline, underline);
1838 }
1839
1840 body.high-contrast-active .ptb-news__read-news .news-featured-image .legend,
1841 body.high-contrast-active .ptb-news__read-news .news-featured-image .legend * {
1842 color: var(--text-secondary-default, #F8F8F8);
1843 }
1844
1845 body.high-contrast-active .ptb-news__read-news .news-featured-image .legend .download svg path {
1846 stroke: var(--color-primary-solid-to-bright-200, var(--color-primary-medium));
1847 }
1848
1849 .ptb-news__read-news .news-featured-image .legend .download * {
1850 pointer-events: none;
1851 }
1852
1853 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
1854 .ptb-news__read-news .news-featured-image .legend,
1855 .ptb-news__read-news .news-featured-image .legend * {
1856 font-size: var(--font-size-xxs, 14px);
1857 line-height: var(--line-height-xl, 160%);
1858 }
1859
1860 .ptb-news__read-news .news-featured-image img {
1861 height: 163px;
1862 }
1863 }
1864 </style>
1865
1866<#--/#if -->
1867</#macro>
1868<#-- ################################################################################################################## -->
1869
1870<#-- ############# Site de Crise - Notícia - Conteúdo da notícia ###################################################### -->
1871
1872<#macro renderNewsContent newsInfo>
1873
1874 <#assign targetStr = "<div class='paragraph_separator'><span class='dot'></span><span class='dot'></span><span class='dot'></span><span class='dot'></span></div>">
1875 <#assign content = newsInfo.newsContent?replace("<p></p>", targetStr, 'r')>
1876 <#assign content = content?replace("<p> </p>", targetStr, 'r')>
1877 <#assign content = content?replace("<p></p>", targetStr, 'r')>
1878 <#assign content = content?replace("<p> </p>", targetStr, 'r')>
1879
1880 <div class="news-content breakpoint">
1881 ${content}
1882
1883 <div class="audio-template audio-pause audio-unmuted" style="display:none">
1884 <div class="audio-button-play">
1885 <svg class="audio-play-icon" width="100%" height="100%" viewBox="0 0 91 90" fill="#008542"
1886 xmlns="http://www.w3.org/2000/svg">
1887 <circle cx="45.2903" cy="45" r="44.5" stroke="#008542"></circle>
1888 <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"
1889 fill="white"></path>
1890 </svg>
1891
1892 <svg class="audio-pause-icon" width="100%" height="100%" viewBox="0 0 91 90" fill="#008542"
1893 xmlns="http://www.w3.org/2000/svg">
1894 <circle cx="45.2903" cy="45" r="44.5" stroke="#008542"></circle>
1895 <path d="M42.3736 30.4167H33.6236V59.5834H42.3736V30.4167Z" fill="white"></path>
1896 <path d="M48.2069 59.5834H56.9569V30.4167H48.2069V59.5834Z" fill="white"></path>
1897 </svg>
1898 </div>
1899 <div class="audio-sondwave">
1900 <svg class="audio-sondwave-desktop" width="100%" height="100%" viewBox="0 0 590 30" fill="none"
1901 xmlns="http://www.w3.org/2000/svg">
1902 <g clip-path="url(#clip0_2625_8152)">
1903 <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5"
1904 stroke-linecap="round"/>
1905 <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5"
1906 stroke-linecap="round"/>
1907 <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5"
1908 stroke-linecap="round"/>
1909 <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5"
1910 stroke-linecap="round"/>
1911 <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5"
1912 stroke-linecap="round"/>
1913 <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5"
1914 stroke-linecap="round"/>
1915 <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5"
1916 stroke-linecap="round"/>
1917 <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5"
1918 stroke-linecap="round"/>
1919 <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5"
1920 stroke-linecap="round"/>
1921 <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5"
1922 stroke-linecap="round"/>
1923 <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5"
1924 stroke-linecap="round"/>
1925 <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5"
1926 stroke-linecap="round"/>
1927 <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5"
1928 stroke-linecap="round"/>
1929 <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5"
1930 stroke-linecap="round"/>
1931 <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5"
1932 stroke-linecap="round"/>
1933 <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5"
1934 stroke-linecap="round"/>
1935 <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5"
1936 stroke-linecap="round"/>
1937 <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5"
1938 stroke-linecap="round"/>
1939 <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5"
1940 stroke-linecap="round"/>
1941 <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5"
1942 stroke-linecap="round"/>
1943 <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5"
1944 stroke-linecap="round"/>
1945 <line x1="107.072" y1="8.75" x2="107.072" y2="20.25" stroke="#008542" stroke-width="1.5"
1946 stroke-linecap="round"/>
1947 <line x1="112.234" y1="0.75" x2="112.234" y2="29.25" stroke="#008542" stroke-width="1.5"
1948 stroke-linecap="round"/>
1949 <line x1="117.395" y1="7.75" x2="117.395" y2="21.25" stroke="#008542" stroke-width="1.5"
1950 stroke-linecap="round"/>
1951 <line x1="122.557" y1="5.75" x2="122.557" y2="24.25" stroke="#008542" stroke-width="1.5"
1952 stroke-linecap="round"/>
1953 <line x1="127.717" y1="11.75" x2="127.717" y2="18.25" stroke="#008542" stroke-width="1.5"
1954 stroke-linecap="round"/>
1955 <line x1="132.879" y1="9.75" x2="132.879" y2="20.25" stroke="#008542" stroke-width="1.5"
1956 stroke-linecap="round"/>
1957 <line x1="138.041" y1="9.75" x2="138.041" y2="19.25" stroke="#008542" stroke-width="1.5"
1958 stroke-linecap="round"/>
1959 <line x1="142.17" y1="1.75" x2="142.17" y2="28.25" stroke="#008542" stroke-width="1.5"
1960 stroke-linecap="round"/>
1961 <line x1="147.33" y1="12.75" x2="147.33" y2="17.25" stroke="#008542" stroke-width="1.5"
1962 stroke-linecap="round"/>
1963 <line x1="151.75" y1="0.75" x2="151.75" y2="29.25" stroke="#008542" stroke-width="1.5"
1964 stroke-linecap="round"/>
1965 <line x1="156.91" y1="7.75" x2="156.91" y2="21.25" stroke="#008542" stroke-width="1.5"
1966 stroke-linecap="round"/>
1967 <line x1="162.072" y1="5.75" x2="162.072" y2="24.25" stroke="#008542" stroke-width="1.5"
1968 stroke-linecap="round"/>
1969 <line x1="167.234" y1="11.75" x2="167.234" y2="18.25" stroke="#008542" stroke-width="1.5"
1970 stroke-linecap="round"/>
1971 <line x1="172.395" y1="9.75" x2="172.395" y2="20.25" stroke="#008542" stroke-width="1.5"
1972 stroke-linecap="round"/>
1973 <line x1="177.557" y1="9.75" x2="177.557" y2="19.25" stroke="#008542" stroke-width="1.5"
1974 stroke-linecap="round"/>
1975 <line x1="181.686" y1="1.75" x2="181.686" y2="28.25" stroke="#008542" stroke-width="1.5"
1976 stroke-linecap="round"/>
1977 <line x1="186.848" y1="12.75" x2="186.848" y2="17.25" stroke="#008542" stroke-width="1.5"
1978 stroke-linecap="round"/>
1979 <line x1="192.008" y1="13.75" x2="192.008" y2="16.25" stroke="#008542" stroke-width="1.5"
1980 stroke-linecap="round"/>
1981 <line x1="197.17" y1="10.75" x2="197.17" y2="19.25" stroke="#008542" stroke-width="1.5"
1982 stroke-linecap="round"/>
1983 <line x1="202.33" y1="8.75" x2="202.33" y2="20.25" stroke="#008542" stroke-width="1.5"
1984 stroke-linecap="round"/>
1985 <line x1="207.492" y1="0.75" x2="207.492" y2="29.25" stroke="#008542" stroke-width="1.5"
1986 stroke-linecap="round"/>
1987 <line x1="212.652" y1="7.75" x2="212.652" y2="21.25" stroke="#008542" stroke-width="1.5"
1988 stroke-linecap="round"/>
1989 <line x1="217.814" y1="5.75" x2="217.814" y2="24.25" stroke="#008542" stroke-width="1.5"
1990 stroke-linecap="round"/>
1991 <line x1="222.977" y1="11.75" x2="222.977" y2="18.25" stroke="#008542" stroke-width="1.5"
1992 stroke-linecap="round"/>
1993 <line x1="228.137" y1="9.75" x2="228.137" y2="20.25" stroke="#008542" stroke-width="1.5"
1994 stroke-linecap="round"/>
1995 <line x1="233.299" y1="9.75" x2="233.299" y2="19.25" stroke="#008542" stroke-width="1.5"
1996 stroke-linecap="round"/>
1997 <line x1="237.428" y1="1.75" x2="237.428" y2="28.25" stroke="#008542" stroke-width="1.5"
1998 stroke-linecap="round"/>
1999 <line x1="242.588" y1="12.75" x2="242.588" y2="17.25" stroke="#008542" stroke-width="1.5"
2000 stroke-linecap="round"/>
2001 <line x1="247.75" y1="13.75" x2="247.75" y2="16.25" stroke="#008542" stroke-width="1.5"
2002 stroke-linecap="round"/>
2003 <line x1="252.91" y1="10.75" x2="252.91" y2="19.25" stroke="#008542" stroke-width="1.5"
2004 stroke-linecap="round"/>
2005 <line x1="258.072" y1="8.75" x2="258.072" y2="20.25" stroke="#008542" stroke-width="1.5"
2006 stroke-linecap="round"/>
2007 <line x1="263.234" y1="0.75" x2="263.234" y2="29.25" stroke="#008542" stroke-width="1.5"
2008 stroke-linecap="round"/>
2009 <line x1="268.395" y1="7.75" x2="268.395" y2="21.25" stroke="#008542" stroke-width="1.5"
2010 stroke-linecap="round"/>
2011 <line x1="273.557" y1="5.75" x2="273.557" y2="24.25" stroke="#008542" stroke-width="1.5"
2012 stroke-linecap="round"/>
2013 <line x1="278.717" y1="11.75" x2="278.717" y2="18.25" stroke="#008542" stroke-width="1.5"
2014 stroke-linecap="round"/>
2015 <line x1="283.879" y1="9.75" x2="283.879" y2="20.25" stroke="#008542" stroke-width="1.5"
2016 stroke-linecap="round"/>
2017 <line x1="289.041" y1="9.75" x2="289.041" y2="19.25" stroke="#008542" stroke-width="1.5"
2018 stroke-linecap="round"/>
2019 <line x1="293.17" y1="1.75" x2="293.17" y2="28.25" stroke="#008542" stroke-width="1.5"
2020 stroke-linecap="round"/>
2021 <line x1="298.33" y1="12.75" x2="298.33" y2="17.25" stroke="#008542" stroke-width="1.5"
2022 stroke-linecap="round"/>
2023 <line x1="302.75" y1="10.75" x2="302.75" y2="19.25" stroke="#008542" stroke-width="1.5"
2024 stroke-linecap="round"/>
2025 <line x1="307.912" y1="8.75" x2="307.912" y2="20.25" stroke="#008542" stroke-width="1.5"
2026 stroke-linecap="round"/>
2027 <line x1="313.072" y1="0.75" x2="313.072" y2="29.25" stroke="#008542" stroke-width="1.5"
2028 stroke-linecap="round"/>
2029 <line x1="318.234" y1="7.75" x2="318.234" y2="21.25" stroke="#008542" stroke-width="1.5"
2030 stroke-linecap="round"/>
2031 <line x1="323.395" y1="5.75" x2="323.395" y2="24.25" stroke="#008542" stroke-width="1.5"
2032 stroke-linecap="round"/>
2033 <line x1="328.557" y1="11.75" x2="328.557" y2="18.25" stroke="#008542" stroke-width="1.5"
2034 stroke-linecap="round"/>
2035 <line x1="333.719" y1="9.75" x2="333.719" y2="20.25" stroke="#008542" stroke-width="1.5"
2036 stroke-linecap="round"/>
2037 <line x1="338.879" y1="9.75" x2="338.879" y2="19.25" stroke="#008542" stroke-width="1.5"
2038 stroke-linecap="round"/>
2039 <line x1="343.008" y1="1.75" x2="343.008" y2="28.25" stroke="#008542" stroke-width="1.5"
2040 stroke-linecap="round"/>
2041 <line x1="348.17" y1="12.75" x2="348.17" y2="17.25" stroke="#008542" stroke-width="1.5"
2042 stroke-linecap="round"/>
2043 <line x1="353.33" y1="13.75" x2="353.33" y2="16.25" stroke="#008542" stroke-width="1.5"
2044 stroke-linecap="round"/>
2045 <line x1="358.492" y1="10.75" x2="358.492" y2="19.25" stroke="#008542" stroke-width="1.5"
2046 stroke-linecap="round"/>
2047 <line x1="363.652" y1="8.75" x2="363.652" y2="20.25" stroke="#008542" stroke-width="1.5"
2048 stroke-linecap="round"/>
2049 <line x1="368.814" y1="0.75" x2="368.814" y2="29.25" stroke="#008542" stroke-width="1.5"
2050 stroke-linecap="round"/>
2051 <line x1="373.977" y1="7.75" x2="373.977" y2="21.25" stroke="#008542" stroke-width="1.5"
2052 stroke-linecap="round"/>
2053 <line x1="379.137" y1="5.75" x2="379.137" y2="24.25" stroke="#008542" stroke-width="1.5"
2054 stroke-linecap="round"/>
2055 <line x1="384.299" y1="11.75" x2="384.299" y2="18.25" stroke="#008542" stroke-width="1.5"
2056 stroke-linecap="round"/>
2057 <line x1="389.459" y1="9.75" x2="389.459" y2="20.25" stroke="#008542" stroke-width="1.5"
2058 stroke-linecap="round"/>
2059 <line x1="394.621" y1="9.75" x2="394.621" y2="19.25" stroke="#008542" stroke-width="1.5"
2060 stroke-linecap="round"/>
2061 <line x1="398.75" y1="1.75" x2="398.75" y2="28.25" stroke="#008542" stroke-width="1.5"
2062 stroke-linecap="round"/>
2063 <line x1="403.912" y1="12.75" x2="403.912" y2="17.25" stroke="#008542" stroke-width="1.5"
2064 stroke-linecap="round"/>
2065 <line x1="408.33" y1="10.75" x2="408.33" y2="19.25" stroke="#008542" stroke-width="1.5"
2066 stroke-linecap="round"/>
2067 <line x1="413.492" y1="8.75" x2="413.492" y2="20.25" stroke="#008542" stroke-width="1.5"
2068 stroke-linecap="round"/>
2069 <line x1="418.654" y1="0.75" x2="418.654" y2="29.25" stroke="#008542" stroke-width="1.5"
2070 stroke-linecap="round"/>
2071 <line x1="423.814" y1="7.75" x2="423.814" y2="21.25" stroke="#008542" stroke-width="1.5"
2072 stroke-linecap="round"/>
2073 <line x1="428.977" y1="5.75" x2="428.977" y2="24.25" stroke="#008542" stroke-width="1.5"
2074 stroke-linecap="round"/>
2075 <line x1="434.137" y1="11.75" x2="434.137" y2="18.25" stroke="#008542" stroke-width="1.5"
2076 stroke-linecap="round"/>
2077 <line x1="439.299" y1="9.75" x2="439.299" y2="20.25" stroke="#008542" stroke-width="1.5"
2078 stroke-linecap="round"/>
2079 <line x1="444.461" y1="9.75" x2="444.461" y2="19.25" stroke="#008542" stroke-width="1.5"
2080 stroke-linecap="round"/>
2081 <line x1="448.59" y1="1.75" x2="448.59" y2="28.25" stroke="#008542" stroke-width="1.5"
2082 stroke-linecap="round"/>
2083 <line x1="453.75" y1="12.75" x2="453.75" y2="17.25" stroke="#008542" stroke-width="1.5"
2084 stroke-linecap="round"/>
2085 <line x1="458.912" y1="13.75" x2="458.912" y2="16.25" stroke="#008542" stroke-width="1.5"
2086 stroke-linecap="round"/>
2087 <line x1="464.072" y1="10.75" x2="464.072" y2="19.25" stroke="#008542" stroke-width="1.5"
2088 stroke-linecap="round"/>
2089 <line x1="469.234" y1="8.75" x2="469.234" y2="20.25" stroke="#008542" stroke-width="1.5"
2090 stroke-linecap="round"/>
2091 <line x1="474.395" y1="0.75" x2="474.395" y2="29.25" stroke="#008542" stroke-width="1.5"
2092 stroke-linecap="round"/>
2093 <line x1="479.557" y1="7.75" x2="479.557" y2="21.25" stroke="#008542" stroke-width="1.5"
2094 stroke-linecap="round"/>
2095 <line x1="484.719" y1="5.75" x2="484.719" y2="24.25" stroke="#008542" stroke-width="1.5"
2096 stroke-linecap="round"/>
2097 <line x1="489.879" y1="11.75" x2="489.879" y2="18.25" stroke="#008542" stroke-width="1.5"
2098 stroke-linecap="round"/>
2099 <line x1="495.041" y1="9.75" x2="495.041" y2="20.25" stroke="#008542" stroke-width="1.5"
2100 stroke-linecap="round"/>
2101 <line x1="500.201" y1="9.75" x2="500.201" y2="19.25" stroke="#008542" stroke-width="1.5"
2102 stroke-linecap="round"/>
2103 <line x1="504.33" y1="1.75" x2="504.33" y2="28.25" stroke="#008542" stroke-width="1.5"
2104 stroke-linecap="round"/>
2105 <line x1="509.492" y1="12.75" x2="509.492" y2="17.25" stroke="#008542" stroke-width="1.5"
2106 stroke-linecap="round"/>
2107 <line x1="513.912" y1="10.75" x2="513.912" y2="19.25" stroke="#008542" stroke-width="1.5"
2108 stroke-linecap="round"/>
2109 <line x1="519.072" y1="8.75" x2="519.072" y2="20.25" stroke="#008542" stroke-width="1.5"
2110 stroke-linecap="round"/>
2111 <line x1="524.234" y1="0.75" x2="524.234" y2="29.25" stroke="#008542" stroke-width="1.5"
2112 stroke-linecap="round"/>
2113 <line x1="529.395" y1="7.75" x2="529.395" y2="21.25" stroke="#008542" stroke-width="1.5"
2114 stroke-linecap="round"/>
2115 <line x1="534.557" y1="5.75" x2="534.557" y2="24.25" stroke="#008542" stroke-width="1.5"
2116 stroke-linecap="round"/>
2117 <line x1="539.719" y1="11.75" x2="539.719" y2="18.25" stroke="#008542" stroke-width="1.5"
2118 stroke-linecap="round"/>
2119 <line x1="544.879" y1="9.75" x2="544.879" y2="20.25" stroke="#008542" stroke-width="1.5"
2120 stroke-linecap="round"/>
2121 <line x1="550.041" y1="9.75" x2="550.041" y2="19.25" stroke="#008542" stroke-width="1.5"
2122 stroke-linecap="round"/>
2123 <line x1="554.17" y1="1.75" x2="554.17" y2="28.25" stroke="#008542" stroke-width="1.5"
2124 stroke-linecap="round"/>
2125 <line x1="559.332" y1="12.75" x2="559.332" y2="17.25" stroke="#008542" stroke-width="1.5"
2126 stroke-linecap="round"/>
2127 <line x1="564.492" y1="13.75" x2="564.492" y2="16.25" stroke="#008542" stroke-width="1.5"
2128 stroke-linecap="round"/>
2129 <line x1="569.654" y1="10.75" x2="569.654" y2="19.25" stroke="#008542" stroke-width="1.5"
2130 stroke-linecap="round"/>
2131 <line x1="574.814" y1="8.75" x2="574.814" y2="20.25" stroke="#008542" stroke-width="1.5"
2132 stroke-linecap="round"/>
2133 <line x1="579.977" y1="0.75" x2="579.977" y2="29.25" stroke="#008542" stroke-width="1.5"
2134 stroke-linecap="round"/>
2135 <line x1="585.137" y1="7.75" x2="585.137" y2="21.25" stroke="#008542" stroke-width="1.5"
2136 stroke-linecap="round"/>
2137 <line x1="590.299" y1="5.75" x2="590.299" y2="24.25" stroke="#008542" stroke-width="1.5"
2138 stroke-linecap="round"/>
2139 </g>
2140 <defs>
2141 <clipPath id="clip0_2625_8152">
2142 <rect width="590" height="30" fill="white"/>
2143 </clipPath>
2144 </defs>
2145 </svg>
2146 <svg class="audio-sondwave-mobile" width="100%" height="100%" viewBox="0 0 102 30" fill="none"
2147 xmlns="http://www.w3.org/2000/svg">
2148 <g clip-path="url(#clip0_2625_8922)">
2149 <line x1="0.75" y1="0.75" x2="0.749999" y2="29.25" stroke="#008542" stroke-width="1.5"
2150 stroke-linecap="round"/>
2151 <line x1="5.91016" y1="7.75" x2="5.91016" y2="21.25" stroke="#008542" stroke-width="1.5"
2152 stroke-linecap="round"/>
2153 <line x1="11.0723" y1="5.75" x2="11.0723" y2="24.25" stroke="#008542" stroke-width="1.5"
2154 stroke-linecap="round"/>
2155 <line x1="16.2344" y1="11.75" x2="16.2344" y2="18.25" stroke="#008542" stroke-width="1.5"
2156 stroke-linecap="round"/>
2157 <line x1="21.3945" y1="9.75" x2="21.3945" y2="20.25" stroke="#008542" stroke-width="1.5"
2158 stroke-linecap="round"/>
2159 <line x1="26.5566" y1="9.75" x2="26.5566" y2="19.25" stroke="#008542" stroke-width="1.5"
2160 stroke-linecap="round"/>
2161 <line x1="30.6855" y1="1.75" x2="30.6855" y2="28.25" stroke="#008542" stroke-width="1.5"
2162 stroke-linecap="round"/>
2163 <line x1="35.8477" y1="12.75" x2="35.8477" y2="17.25" stroke="#008542" stroke-width="1.5"
2164 stroke-linecap="round"/>
2165 <line x1="41.0078" y1="13.75" x2="41.0078" y2="16.25" stroke="#008542" stroke-width="1.5"
2166 stroke-linecap="round"/>
2167 <line x1="46.1699" y1="10.75" x2="46.1699" y2="19.25" stroke="#008542" stroke-width="1.5"
2168 stroke-linecap="round"/>
2169 <line x1="51.3301" y1="8.75" x2="51.3301" y2="20.25" stroke="#008542" stroke-width="1.5"
2170 stroke-linecap="round"/>
2171 <line x1="56.4922" y1="0.75" x2="56.4922" y2="29.25" stroke="#008542" stroke-width="1.5"
2172 stroke-linecap="round"/>
2173 <line x1="61.6523" y1="7.75" x2="61.6523" y2="21.25" stroke="#008542" stroke-width="1.5"
2174 stroke-linecap="round"/>
2175 <line x1="66.8145" y1="5.75" x2="66.8145" y2="24.25" stroke="#008542" stroke-width="1.5"
2176 stroke-linecap="round"/>
2177 <line x1="71.9766" y1="11.75" x2="71.9766" y2="18.25" stroke="#008542" stroke-width="1.5"
2178 stroke-linecap="round"/>
2179 <line x1="77.1367" y1="9.75" x2="77.1367" y2="20.25" stroke="#008542" stroke-width="1.5"
2180 stroke-linecap="round"/>
2181 <line x1="82.2988" y1="9.75" x2="82.2988" y2="19.25" stroke="#008542" stroke-width="1.5"
2182 stroke-linecap="round"/>
2183 <line x1="86.4277" y1="1.75" x2="86.4277" y2="28.25" stroke="#008542" stroke-width="1.5"
2184 stroke-linecap="round"/>
2185 <line x1="91.5879" y1="12.75" x2="91.5879" y2="17.25" stroke="#008542" stroke-width="1.5"
2186 stroke-linecap="round"/>
2187 <line x1="96.75" y1="13.75" x2="96.75" y2="16.25" stroke="#008542" stroke-width="1.5"
2188 stroke-linecap="round"/>
2189 <line x1="101.91" y1="10.75" x2="101.91" y2="19.25" stroke="#008542" stroke-width="1.5"
2190 stroke-linecap="round"/>
2191 </g>
2192 <defs>
2193 <clipPath id="clip0_2625_8922">
2194 <rect width="102" height="30" fill="white"/>
2195 </clipPath>
2196 </defs>
2197 </svg>
2198 </div>
2199 <div class="audio-time paragraph-micro-bold"> 00:00</div>
2200 <div class="audio-button-mute">
2201 <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none">
2202 <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"
2203 stroke="#525252" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
2204 </svg>
2205 </div>
2206 </div>
2207 </div>
2208
2209 <style>
2210 .ptb-news__read-news .news-content {
2211 gap: var(--space-xl, 44px);
2212 padding-bottom: var(--space-giant, 80px);
2213 }
2214
2215 .ptb-news__read-news .news-content strong {
2216 font-weight: var(--font-weight-bold);
2217 }
2218
2219 .ptb-news__read-news .news-content em {
2220 font-style: var(--font-style-italic);
2221 }
2222
2223 .ptb-news__read-news .news-content a {
2224 font-family: var(--font-family-base);
2225 font-style: var(--font-style-normal, normal);
2226 font-weight: var(--font-weight-bold, 700);
2227 font-size: var(--font-size-xs, 18px);
2228 line-height: var(--line-height-xl, 160%);
2229
2230 text-decoration-line: var(--text-decoration-underline, underline);
2231 color: #008542;
2232 }
2233
2234 body.high-contrast-active .ptb-news__read-news .news-content a {
2235 color: #E4F7E8;
2236 }
2237
2238 .ptb-news__read-news cite a {
2239 font-family: var(--font-family-base);
2240 font-style: var(--font-style-normal, normal);
2241 font-weight: var(--font-weight-bold, 700);
2242 font-size: var(--font-size-xs, 18px);
2243 line-height: var(--line-height-xl, 160%);
2244
2245 text-decoration-line: var(--text-decoration-underline, underline);
2246 color: #008542;
2247 }
2248
2249 body.high-contrast-active .cite a {
2250 color: #E4F7E8;
2251 }
2252
2253 .ptb-news__read-news .news-content ul {
2254 padding-left: 27px;
2255 margin-top: -16px;
2256 }
2257
2258 .ptb-news__read-news .news-content ul li::marker {
2259 content: "■" !important;
2260 color: var(--color-secondary-medium) !important;
2261 font-size: var(--size-xxs);
2262 }
2263
2264 .ptb-news__read-news .news-content ul li {
2265 color: var(--color-text-primary-default);
2266 padding: 8px 0;
2267
2268 /*paragraph-sm-regular*/
2269 font-size: var(--font-size-xxs);
2270 line-height: var(--line-height-xl);
2271 font-weight: var(--font-weight-regular);
2272 font-style: var(--font-style-normal);
2273 text-decoration: var(--text-decoration-none);
2274
2275 margin-left: calc(-1 * var(--space-sm));
2276 padding-left: var(--space-sm);
2277 }
2278
2279 .ptb-news__read-news .news-content ul li * {
2280 color: var(--color-text-primary-default);
2281 padding: 8px 0;
2282
2283 /*paragraph-sm-regular*/
2284 font-size: var(--font-size-xxs);
2285 line-height: var(--line-height-xl);
2286 font-weight: var(--font-weight-regular);
2287 font-style: var(--font-style-normal);
2288 text-decoration: var(--text-decoration-none);
2289 }
2290
2291 .ptb-news__read-news .news-content > * {
2292 grid-column-start: 3;
2293 grid-column-end: 11;
2294 }
2295
2296 .ptb-news__read-news .news-content figure figcaption {
2297 display: flex;
2298 justify-content: space-between;
2299 align-items: flex-start;
2300 align-self: stretch;
2301 margin-top: var(--space-xxs, 8px);
2302 text-align: justify;
2303 }
2304
2305 .ptb-news__read-news .news-content figure figcaption,
2306 .ptb-news__read-news .news-content figure figcaption * {
2307 color: var(--color-neutral-700, #525252);
2308 font-family: var(--font-family-base);
2309 font-size: var(--font-size-xxxs, 14px);
2310 font-style: var(--font-style-italic, italic);
2311 font-weight: var(--font-weight-regular, 400);
2312 line-height: var(--line-height-xl, 160%);
2313 }
2314
2315 body.high-contrast-active .ptb-news__read-news .news-content figure figcaption,
2316 body.high-contrast-active .ptb-news__read-news .news-content figure figcaption * {
2317 color: var(--text-secondary-default, #F8F8F8);
2318 }
2319
2320 .ptb-news__read-news .news-content figure figcaption br {
2321 display: none;
2322 }
2323
2324 .ptb-news__read-news .news-content .embed-responsive {
2325 width: 100% !important;
2326 border-radius: var(--border-radius-md, 16px);
2327 }
2328
2329 .ptb-news__read-news .news-content img,
2330 .ptb-news__read-news .news-content figure {
2331 width: 100%;
2332 object-fit: cover;
2333 border-radius: var(--border-radius-md, 16px);
2334 }
2335
2336
2337 .ptb-news__read-news .news-content p img {
2338 width: 100%;
2339 object-fit: cover;
2340 border-radius: var(--border-radius-md, 16px);
2341 }
2342
2343 .ptb-news__read-news .news-content p,
2344 .ptb-news__read-news .news-content span {
2345 margin: 0;
2346 padding: 0;
2347 }
2348
2349 .ptb-news__read-news .news-content p {
2350 margin: -var(--space-xxs, 8px) 0;
2351 }
2352
2353 .ptb-news__read-news .news-content .carousel p {
2354 margin: 0;
2355 }
2356
2357 .ptb-news__read-news .news-content .paragraph_separator {
2358 display: flex;
2359 width: 100%;
2360 height: fit-content;
2361 justify-content: center;
2362 gap: 6px;
2363 }
2364
2365 .ptb-news__read-news .news-content .paragraph_separator .dot {
2366 height: 4px;
2367 width: 4px;
2368 background-color: var(--color-neutral-600, #959595);
2369 border-radius: 100%;
2370 display: inline-block;
2371 }
2372
2373 .ptb-news__read-news .news-content * {
2374 font-family: var(--font-family-base);
2375 font-style: var(--font-style-normal, normal);
2376 font-weight: var(--font-weight-regular, 400);
2377 font-size: var(--font-size-xs, 18px);
2378 line-height: var(--line-height-xl, 160%);
2379 color: var(--color-neutral-800, #373737);
2380 }
2381
2382 body.high-contrast-active .ptb-news__read-news .news-content * {
2383 color: var(--text-primary-default, var(--color-neutral-100));
2384 }
2385
2386 .ptb-news__read-news .news-content p {
2387 font-style: var(--font-style-normal, normal);
2388 font-weight: var(--font-weight-regular, 400);
2389 font-size: var(--font-size-xs, 16px);
2390 line-height: var(--line-height-xl, 160%);
2391 color: var(--color-neutral-700, #515867);
2392 }
2393
2394
2395 .ptb-news__read-news .news-content h1,
2396 .ptb-news__read-news .news-content h1 *,
2397 .ptb-news__read-news .news-content h2,
2398 .ptb-news__read-news .news-content h2 *,
2399 .ptb-news__read-news .news-content h3,
2400 .ptb-news__read-news .news-content h3 *,
2401 .ptb-news__read-news .news-content h4,
2402 .ptb-news__read-news .news-content h4 *,
2403 .ptb-news__read-news .news-content h5,
2404 .ptb-news__read-news .news-content h5 *,
2405 .ptb-news__read-news .news-content h6,
2406 .ptb-news__read-news .news-content h6 * {
2407 color: var(--color-neutral-800, #373737) !important;
2408 }
2409
2410 body.high-contrast-active .ptb-news__read-news .news-content h1,
2411 body.high-contrast-active .ptb-news__read-news .news-content h1 *,
2412 body.high-contrast-active .ptb-news__read-news .news-content h2,
2413 body.high-contrast-active .ptb-news__read-news .news-content h2 *,
2414 body.high-contrast-active .ptb-news__read-news .news-content h3,
2415 body.high-contrast-active .ptb-news__read-news .news-content h3 *,
2416 body.high-contrast-active .ptb-news__read-news .news-content h4,
2417 body.high-contrast-active .ptb-news__read-news .news-content h4 *,
2418 body.high-contrast-active .ptb-news__read-news .news-content h5,
2419 body.high-contrast-active .ptb-news__read-news .news-content h5 *,
2420 body.high-contrast-active .ptb-news__read-news .news-content h6,
2421 body.high-contrast-active .ptb-news__read-news .news-content h6 * {
2422 color: var(--text-primary-default, var(--color-neutral-100)) !important;
2423 }
2424
2425 .ptb-news__read-news .news-content h1:last-child,
2426 .ptb-news__read-news .news-content h2:last-child,
2427 .ptb-news__read-news .news-content h3:last-child,
2428 .ptb-news__read-news .news-content h4:last-child,
2429 .ptb-news__read-news .news-content h5:last-child,
2430 .ptb-news__read-news .news-content h5:last-child,
2431 .ptb-news__read-news .news-content h6:last-child,
2432 .ptb-news__read-news .news-content p:last-child {
2433 padding-bottom: 0 !important;
2434 }
2435
2436 .ptb-news__read-news .news-content h1,
2437 .ptb-news__read-news .news-content h1 * {
2438 font-size: var(--font-size-xxl) !important;
2439 line-height: var(--line-height-sm) !important;
2440 font-weight: var(--font-weight-bold) !important;
2441 font-style: var(--font-style-normal) !important;
2442 text-decoration: var(--text-decoration-none) !important;
2443 }
2444
2445 .ptb-news__read-news .news-content h2,
2446 .ptb-news__read-news .news-content h2 * {
2447 font-size: var(--font-size-xl) !important;
2448 line-height: var(--line-height-sm) !important;
2449 font-weight: var(--font-weight-bold) !important;
2450 font-style: var(--font-style-normal) !important;
2451 text-decoration: var(--text-decoration-none) !important;
2452
2453 }
2454
2455 .ptb-news__read-news .news-content h3,
2456 .ptb-news__read-news .news-content h3 * {
2457 font-size: var(--font-size-lg) !important;
2458 line-height: var(--line-height-sm) !important;
2459 font-weight: var(--font-weight-bold) !important;
2460 font-style: var(--font-style-normal) !important;
2461 text-decoration: var(--text-decoration-none) !important;
2462 }
2463
2464 .ptb-news__read-news .news-content h4,
2465 .ptb-news__read-news .news-content h4 * {
2466 font-size: var(--font-size-md) !important;
2467 line-height: var(--line-height-md) !important;
2468 font-weight: var(--font-weight-bold) !important;
2469 font-style: var(--font-style-normal) !important;
2470 text-decoration: var(--text-decoration-none) !important;
2471 }
2472
2473 .ptb-news__read-news .news-content h5,
2474 .ptb-news__read-news .news-content h5 * {
2475 font-size: var(--font-size-sm) !important;
2476 line-height: var(--line-height-md) !important;
2477 font-weight: var(--font-weight-bold) !important;
2478 font-style: var(--font-style-normal) !important;
2479 text-decoration: var(--text-decoration-none) !important;
2480 }
2481
2482 .ptb-news__read-news .news-content table {
2483 border-collapse: collapse;
2484 border: none;
2485 width: 100% !important;
2486 margin: var(--space-sm, 16px) 0;
2487 }
2488
2489 .ptb-news__read-news .news-content table * {
2490 font-size: var(--font-size-xxs, 16px);
2491 font-style: var(--font-style-normal, normal);
2492 font-weight: var(--font-weight-regular, 400);
2493 line-height: var(--line-height-xl, 160%);
2494 color: var(--color-neutral-800, #373737);
2495 border: 0;
2496 }
2497
2498 body.high-contrast-active .ptb-news__read-news .news-content table * {
2499 color: var(--text-primary-default, var(--color-neutral-100));
2500 }
2501
2502 .ptb-news__read-news .news-content table tbody > :first-child,
2503 .ptb-news__read-news .news-content table tbody > :first-child * {
2504 font-weight: var(--font-weight-bold, 700);
2505 flex: 1 0 0;
2506 background: var(--background-Surface-level-02, #F8F8F8);
2507 }
2508
2509 body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child,
2510 body.high-contrast-active .ptb-news__read-news .news-content table tbody > :first-child * {
2511 background: #373737;
2512 }
2513
2514 .ptb-news__read-news .news-content table tbody {
2515 display: flex;
2516 flex-direction: column;
2517 }
2518
2519 .ptb-news__read-news .news-content table tbody * {
2520 display: flex;
2521 height: 100%;
2522 align-items: center;
2523 flex: 1 0 0;
2524 }
2525
2526 .ptb-news__read-news .news-content table tbody tr * {
2527 padding: 23px var(--space-lg, 32px);
2528 }
2529
2530 .ptb-news__read-news .news-content table tbody tr {
2531 border-radius: var(--border-radius-md);
2532 border: var(--border-width-hairline, 1px) solid #EEEEEE;
2533 }
2534
2535 body.high-contrast-active .ptb-news__read-news .news-content table tbody tr {
2536 border: var(--border-width-hairline, 1px) solid #525252;
2537 }
2538
2539 .ptb-news__read-news .news-content table tbody tr:not(:last-child) {
2540 border-bottom-left-radius: 0;
2541 border-bottom-right-radius: 0;
2542 }
2543
2544 .ptb-news__read-news .news-content table tbody tr:not(:first-child) {
2545 border-top-left-radius: 0;
2546 border-top-right-radius: 0;
2547 border-top: none;
2548 }
2549
2550 .ptb-news__read-news .news-content table tbody tr td:not(:last-child) {
2551 border-right: var(--border-width-hairline, 1px) solid #EEEEEE;
2552 }
2553
2554 body.high-contrast-active .ptb-news__read-news .news-content table tbody tr td:not(:last-child) {
2555 border-right: var(--border-width-hairline, 1px) solid #525252;
2556 }
2557
2558 .ptb-news__read-news .news-content table tbody tr:first-child td {
2559 border-top: var(--border-width-hairline, 1px) solid #EEEEEE;
2560 border-bottom: var(--border-width-hairline, 1px) solid #EEEEEE;
2561 }
2562
2563 body.high-contrast-active .ptb-news__read-news .news-content table tbody tr:first-child td {
2564 border-top: var(--border-width-hairline, 1px) solid #525252;
2565 border-bottom: var(--border-width-hairline, 1px) solid #525252;
2566 }
2567
2568 .ptb-news__read-news .news-content audio {
2569 display: none;
2570 }
2571
2572 .ptb-news__read-news .news-content .audio-template {
2573 display: flex;
2574 padding: var(--space-sm, 16px);
2575 align-items: center;
2576 gap: var(--space-md, 24px);
2577 align-self: stretch;
2578 border-radius: var(--border-radius-lg, 16px);
2579 border: var(--border-width-hairline, 1px) solid var(--border-color-mid);
2580 background: var(--background-card-default, #FFF);
2581 max-height: var(--size-giant, 72px);
2582 }
2583
2584 body.high-contrast-active .ptb-news__read-news .news-content .audio-template {
2585 background: var(--background-card-default, #010101);
2586 border: var(--border-width-hairline, 1px) solid #525252;
2587 }
2588
2589 .ptb-news__read-news .news-content .audio-template .audio-button-play {
2590 display: flex;
2591 width: var(--size-xl, 40px);
2592 height: var(--size-xl, 40px);
2593 justify-content: center;
2594 align-items: center;
2595 flex-grow: 0;
2596 flex-shrink: 0;
2597 cursor: pointer;
2598 }
2599
2600 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon,
2601 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon {
2602 fill: #FFFFFF;
2603 }
2604
2605 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-play-icon path,
2606 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-play .audio-pause-icon path {
2607 fill: #010101;
2608 }
2609
2610 .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-play-icon {
2611 display: block;
2612 }
2613
2614 .ptb-news__read-news .news-content .audio-template.audio-pause .audio-button-play .audio-pause-icon {
2615 display: none;
2616 }
2617
2618 .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-play-icon {
2619 display: none;
2620 }
2621
2622 .ptb-news__read-news .news-content .audio-template.audio-play .audio-button-play .audio-pause-icon {
2623 display: block;
2624 }
2625
2626 .ptb-news__read-news .news-content .audio-template .audio-sondwave {
2627 display: flex;
2628 flex-direction: column;
2629 align-items: flex-start;
2630 gap: var(--space-xxs, 8px);
2631 flex: 1 0 0;
2632 height: 100%;
2633 flex-grow: 1;
2634 flex-shrink: 1;
2635 }
2636
2637 .ptb-news__read-news .news-content .audio-template .audio-sondwave line {
2638 stroke: #008542;
2639 }
2640
2641 .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active {
2642 stroke: #90EE90;
2643 }
2644
2645 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line {
2646 stroke: #E4F7E8;
2647 }
2648
2649 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-sondwave line.line-active {
2650 stroke: #666666;
2651 }
2652
2653 .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile {
2654 display: none;
2655 }
2656
2657 .ptb-news__read-news .news-content .audio-template .audio-time {
2658 display: flex;
2659 flex-direction: column;
2660 align-items: flex-start;
2661 gap: var(--space-xxs, 8px);
2662 flex: 1 0 0;
2663 color: var(--text-primary-accent, #008542);
2664 text-align: center;
2665 font-family: var(--font-family-base);
2666 line-height: 124% !important;
2667 flex-grow: 0;
2668 flex-shrink: 0;
2669 }
2670
2671 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-time {
2672 color: var(--text-primary-accent, #E4F7E8);
2673 }
2674
2675 .ptb-news__read-news .news-content .audio-template .audio-button-mute {
2676 width: var(--size-lg, 32px);
2677 height: var(--size-lg, 32px);
2678 flex-grow: 0;
2679 flex-shrink: 0;
2680 cursor: pointer;
2681 }
2682
2683 body.high-contrast-active .ptb-news__read-news .news-content .audio-template .audio-button-mute svg path {
2684 stroke: white;
2685 fill: none;
2686 }
2687
2688 .ptb-news__read-news .news-content .audio-template.audio-muted .audio-button-mute {
2689 opacity: 0.6;
2690 }
2691
2692 @media screen and (max-width: 1024px) {
2693 .ptb-news__read-news .news-content > * {
2694 grid-column-start: 1;
2695 grid-column-end: 9;
2696 }
2697 }
2698
2699 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
2700
2701 .ptb-news__read-news .news-content * {
2702 font-size: var(--font-size-xxs, 16px);
2703 }
2704
2705 .ptb-news__read-news .news-content > * {
2706 grid-column-start: 1;
2707 grid-column-end: 5;
2708 }
2709
2710 .ptb-news__read-news .news-content h1,
2711 .ptb-news__read-news .news-content h1 * {
2712 font-size: var(--font-size-xl) !important;
2713 line-height: var(--line-height-sm) !important;
2714 font-weight: var(--font-weight-bold) !important;
2715 font-style: var(--font-style-normal) !important;
2716 text-decoration: var(--text-decoration-none) !important;
2717
2718 }
2719
2720 .ptb-news__read-news .news-content h2,
2721 .ptb-news__read-news .news-content h2 * {
2722 font-size: var(--font-size-lg) !important;
2723 line-height: var(--line-height-sm) !important;
2724 font-weight: var(--font-weight-bold) !important;
2725 font-style: var(--font-style-normal) !important;
2726 text-decoration: var(--text-decoration-none) !important;
2727 }
2728
2729 .ptb-news__read-news .news-content h3,
2730 .ptb-news__read-news .news-content h3 * {
2731 font-size: var(--font-size-md) !important;
2732 line-height: var(--line-height-sm) !important;
2733 font-weight: var(--font-weight-bold) !important;
2734 font-style: var(--font-style-normal) !important;
2735 text-decoration: var(--text-decoration-none) !important;
2736 }
2737
2738 .ptb-news__read-news .news-content h4,
2739 .ptb-news__read-news .news-content h4 * {
2740 font-size: var(--font-size-sm) !important;
2741 line-height: var(--line-height-md) !important;
2742 font-weight: var(--font-weight-bold) !important;
2743 font-style: var(--font-style-normal) !important;
2744 text-decoration: var(--text-decoration-none) !important;
2745 }
2746
2747 .ptb-news__read-news .news-content h5,
2748 .ptb-news__read-news .news-content h5 * {
2749 font-size: var(--font-size-xs) !important;
2750 line-height: var(--line-height-md) !important;
2751 font-weight: var(--font-weight-bold) !important;
2752 font-style: var(--font-style-normal) !important;
2753 text-decoration: var(--text-decoration-none) !important;
2754 }
2755
2756 .ptb-news__read-news .news-content figure figcaption {
2757 flex-direction: column;
2758 gap: var(--space-xxs, 8px);
2759 }
2760
2761 .ptb-news__read-news .news-content figure figcaption,
2762 .ptb-news__read-news .news-content figure figcaption * {
2763 font-size: var(--font-size-micro, 12px);
2764 }
2765
2766 .ptb-news__read-news .news-content table {
2767 margin-top: var(--space-xxs, 8px);
2768 margin-bottom: var(--space-lg, 32px);
2769 }
2770
2771 .ptb-news__read-news .news-content table * {
2772 font-size: var(--font-size-micro, 12px);
2773 line-height: 19.2px;
2774 }
2775
2776 .ptb-news__read-news .news-content table tbody tr * {
2777 padding: var(--space-xs, 12px);
2778 }
2779 }
2780
2781 @media screen and (max-width: 500px) {
2782 .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-desktop {
2783 display: none;
2784 }
2785
2786 .ptb-news__read-news .news-content .audio-template .audio-sondwave .audio-sondwave-mobile {
2787 display: block;
2788 }
2789 }
2790 </style>
2791
2792 <script>
2793 <#assign configureLinkTab = "configureLinkTab_" + randomNumber(5)>
2794
2795 function ${configureLinkTab}() {
2796 const root = document.querySelector(".ptb-news__read-news");
2797 const newsContentElement = root.querySelector(".news-content");
2798 const pList = newsContentElement.querySelectorAll("p");
2799 pList.forEach((pElement) => {
2800 const cont = pElement.innerHTML.trim();
2801 if (cont == "" || cont == " ") {
2802 newsContentElement.removeChild(pElement);
2803 }
2804 });
2805 }
2806
2807 ${configureLinkTab}();
2808
2809 document.addEventListener("DOMContentLoaded", () => {
2810 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");
2811
2812 headers.forEach((header) => {
2813
2814 const currentLevel = parseInt(header.tagName.charAt(1));
2815
2816 if (currentLevel >= 1 && currentLevel <= 5) {
2817
2818 const newLevel = currentLevel + 1;
2819 const newTagName = "h" + newLevel;
2820
2821 // Criar a nova tag e transferir o conteúdo
2822 const newHeader = document.createElement(newTagName);
2823 newHeader.innerHTML = header.innerHTML;
2824
2825 // Substituir a tag antiga pela nova
2826 header.parentNode.replaceChild(newHeader, header);
2827 }
2828 });
2829 });
2830
2831 AUI().ready(() => {
2832 const audiosContainer = document.querySelectorAll(".ptb-news__read-news .news-content .audio-content");
2833 const audioTemplate = document.querySelector(".ptb-news__read-news .news-content .audio-template");
2834
2835 audiosContainer.forEach((audioContainer) => {
2836
2837 const audio = audioContainer.querySelector("audio");
2838 const audioInterface = audioTemplate.cloneNode(true);
2839
2840 const sondwave = audioInterface.querySelector(".audio-sondwave");
2841 const linesDesktop = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-desktop line");
2842 const linesMobile = audioInterface.querySelectorAll(".audio-sondwave .audio-sondwave-mobile line");
2843
2844 const playPauseButtonAudioInterface = audioInterface.querySelector(".audio-button-play");
2845
2846 playPauseButtonAudioInterface.addEventListener("click", () => {
2847 if (audioInterface.classList.contains("audio-play")) {
2848 audioInterface.classList.replace("audio-play", "audio-pause");
2849 audio.pause();
2850 } else {
2851
2852 audiosContainer.forEach((audioContainer) => {
2853 const otherAudio = audioContainer.querySelector("audio");
2854 const otherAudioInterface = audioContainer.querySelector(".audio-button-play");
2855 !otherAudio.paused && otherAudioInterface.click();
2856 });
2857
2858 audioInterface.classList.replace("audio-pause", "audio-play");
2859 audio.play();
2860 }
2861 });
2862
2863 const audioMuteButton = audioInterface.querySelector(".audio-button-mute");
2864
2865 audioMuteButton.addEventListener("click", () => {
2866 if (audioInterface.classList.contains("audio-unmuted")) {
2867 audioInterface.classList.replace("audio-unmuted", "audio-muted");
2868 audio.muted = true;
2869 } else {
2870 audioInterface.classList.replace("audio-muted", "audio-unmuted");
2871 audio.muted = false;
2872 }
2873 });
2874
2875 const audioTime = audioInterface.querySelector(".audio-time");
2876 audioTime.textContent = Math.floor(audio.duration / 60) + ":" + Math.floor(audio.duration % 60);
2877
2878
2879 audio.addEventListener("timeupdate", () => {
2880 let minutes = Math.floor((audio.duration - audio.currentTime) / 60);
2881 let seconds = Math.floor((audio.duration - audio.currentTime) % 60);
2882
2883 minutes = minutes < 10 ? "0" + minutes : minutes;
2884 seconds = seconds < 10 ? "0" + seconds : seconds;
2885
2886 audioTime.textContent = minutes + ":" + seconds;
2887
2888 const progress = (audio.currentTime / audio.duration) * 100;
2889
2890 linesDesktop.forEach(function (line, index) {
2891 const lineProgress = (index / linesDesktop.length) * 100;
2892 if (progress >= lineProgress) {
2893 !line.classList.contains("line-active") && line.classList.add("line-active");
2894 } else {
2895 line.classList.contains("line-active") && line.classList.remove("line-active");
2896 }
2897 });
2898
2899 linesMobile.forEach(function (line, index) {
2900 const lineProgress = (index / linesMobile.length) * 100;
2901 if (progress >= lineProgress) {
2902 !line.classList.contains("line-active") && line.classList.add("line-active");
2903 } else {
2904 line.classList.contains("line-active") && line.classList.remove("line-active");
2905 }
2906 });
2907 });
2908
2909
2910 sondwave.addEventListener("click", (event) => {
2911 const distanceLeft = (event.clientX - sondwave.getBoundingClientRect().left) / sondwave.offsetWidth;
2912 audio.currentTime = audio.duration * distanceLeft;
2913 });
2914
2915 audioInterface.style.display = "";
2916 audioContainer.appendChild(audioInterface);
2917 });
2918
2919 });
2920 </script>
2921</#macro>
2922
2923
2924<#-- ################################################################################################################## -->
2925
2926<#-- ############# Site de Crise - Notícia - Links do conteúdo da notícia ############################################# -->
2927<#macro renderLinks newsInfo>
2928 <#if newsInfo.links?size != 0>
2929 <#--videos "escondidos" que serão unidos a .ptb-news__read-content -->
2930
2931 <div class="ptb-news__links-container d-none ">
2932 <div id="ptb-news__links-identifiers">
2933 <#assign separator = "">
2934 <#list newsInfo.links as link>
2935 ${link.id};
2936 <#assign separator = ";">
2937 </#list>
2938 </div>
2939 <#list newsInfo.links as link>
2940 <#assign link_index = link?index>
2941 <#assign linkUrl = "#">
2942 <#assign target = "_blank">
2943 <#assign linkClass = "">
2944
2945 <div id="ptb-news__link-container-${link_index}">
2946 <#if link.externalLink?has_content>
2947 <#assign linkUrl = link.externalLink>
2948 <#assign target = "_blank">
2949 <#assign linkClass = "external-link">
2950 <#elseif link.pageLink?has_content>
2951 <#assign linkUrl = link.pageLink>
2952 <#assign target = "_self">
2953 <#assign linkClass = "internal-page-link">
2954 <#elseif link.file.mimeType?has_content>
2955 <#assign linkUrl = link.file.url>
2956 <#assign target = "_blank">
2957 <#assign linkClass = "file-link">
2958 </#if>
2959
2960 <#-- PDF icon -->
2961 <#if link.iconType == "Opção78730408" >
2962 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
2963 xmlns="http://www.w3.org/2000/svg">
2964 <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"
2965 fill="#008542"/>
2966 <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"
2967 fill="#008542"/>
2968 <path d="M17.2695 20.654V11.894H22.2735V13.358H18.9735V15.59H21.9015V17.054H18.9735V20.654H17.2695Z"
2969 fill="#008542"/>
2970 <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"
2971 stroke="#008542" stroke-width="1.5" stroke-linecap="round"
2972 stroke-linejoin="round"/>
2973 </svg>
2974
2975 <#-- JPG icon -->
2976 <#elseif link.iconType == "Opção89889679" >
2977 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
2978 xmlns="http://www.w3.org/2000/svg">
2979 <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"
2980 fill="#008542"/>
2981 <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"
2982 fill="#008542"/>
2983 <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"
2984 fill="#008542"/>
2985 <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"
2986 stroke="#008542" stroke-width="1.5" stroke-linecap="round"
2987 stroke-linejoin="round"/>
2988 </svg>
2989 <#-- DOC icon -->
2990 <#elseif link.iconType == "Opção15480314" >
2991 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
2992 xmlns="http://www.w3.org/2000/svg">
2993 <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"
2994 fill="#008542"/>
2995 <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"
2996 fill="#008542"/>
2997 <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"
2998 fill="#008542"/>
2999 <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"
3000 stroke="#008542" stroke-width="1.5" stroke-linecap="round"
3001 stroke-linejoin="round"/>
3002 </svg>
3003 <#-- External link icon -->
3004 <#elseif link.iconType == "Opção64447681" >
3005 <svg width="24" height="24" viewBox="0 0 32 32" fill="none"
3006 xmlns="http://www.w3.org/2000/svg">
3007 <path opacity="0.98"
3008 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"
3009 stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3010 </svg>
3011 <#-- Internal page link icon -->
3012 <#elseif link.iconType == "Opção94185057" >
3013 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#008542"
3014 viewBox="0 0 256 256">
3015 <path d="M137.54,186.36a8,8,0,0,1,0,11.31l-9.94,10A56,56,0,0,1,48.38,128.4L72.5,104.28A56,56,0,0,1,149.31,102a8,8,0,1,1-10.64,12,40,40,0,0,0-54.85,1.63L59.7,139.72a40,40,0,0,0,56.58,56.58l9.94-9.94A8,8,0,0,1,137.54,186.36Zm70.08-138a56.08,56.08,0,0,0-79.22,0l-9.94,9.95a8,8,0,0,0,11.32,11.31l9.94-9.94a40,40,0,0,1,56.58,56.58L172.18,140.4A40,40,0,0,1,117.33,142,8,8,0,1,0,106.69,154a56,56,0,0,0,76.81-2.26l24.12-24.12A56.08,56.08,0,0,0,207.62,48.38Z">
3016 </path>
3017 </svg>
3018 <#-- Download link icon -->
3019 <#elseif link.iconType == "Opção49847593" >
3020 <svg width="24" height="24" viewBox="0 0 32 32" fill="none"
3021 xmlns="http://www.w3.org/2000/svg">
3022 <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"
3023 stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3024 </svg>
3025 </#if>
3026
3027 <a href="${linkUrl}" class="link ${linkClass}" target="${target}">${link.title}</a>
3028 </div>
3029 </#list>
3030 </div>
3031
3032 <script>
3033 var newsContent_code = document.querySelector(".news-content").innerHTML;
3034
3035 var linksIdentifiers = document.querySelector("#ptb-news__links-identifiers").innerHTML.trim().split(";");
3036 linksIdentifiers.forEach((linkIdentifier, index) => {
3037 const linkIdentifierContent = document.querySelector("#ptb-news__link-container-" + index);
3038 if (linkIdentifierContent) {
3039 const tag = "#[" + linkIdentifier.trim() + "]";
3040 const splitContent = newsContent_code.split(tag);
3041 newsContent_code = splitContent.join(linkIdentifierContent.innerHTML);
3042 //linkIdentifierContent.parentNode.removeChild(linkIdentifierContent);
3043 }
3044 });
3045
3046
3047 var ptb_news__read_content = document.querySelector(".news-content");
3048 ptb_news__read_content.innerHTML = newsContent_code;
3049
3050 </script>
3051
3052 <style>
3053 .ptb-news__read-news .ptb-news__link a {
3054 font-family: var(--font-family-base);
3055 font-style: var(--font-style-normal, normal);
3056 font-weight: var(--font-weight-bold, 700);
3057 font-size: var(--font-size-xxs, 16px);
3058 line-height: var(--line-height-xl, 160%);
3059
3060 text-decoration-line: underline;
3061
3062 color: var(--color-primary-brand, #008542);
3063 }
3064
3065 body.high-contrast-active .ptb-news__read-news .ptb-news__link a {
3066 color: #E4F7E8;
3067 }
3068
3069 .ptb-news__read-news .news-content .link {
3070 font-family: var(--font-family-base);
3071 font-style: var(--font-style-normal, normal);
3072 font-weight: var(--font-weight-bold, 700);
3073 font-size: var(--font-size-xxs, 16px);
3074 line-height: var(--line-height-xl, 160%);
3075
3076 text-decoration-line: underline;
3077
3078 color: var(--color-primary-brand, #008542);
3079 }
3080
3081 body.high-contrast-active .ptb-news__read-news .news-content .link {
3082 color: #E4F7E8;
3083 }
3084
3085 body.high-contrast-active .ptb-news__read-news .news-content svg path {
3086 stroke: var(--color-neutral-500, #D7D7D7);
3087 fill: rgba(255, 255, 255, 0.32);
3088 }
3089
3090 .ptb-news__read-news .news-content .ptb-link__wrapper {
3091 display: flex;
3092 flex-direction: column;
3093 gap: 0;
3094 margin-top: -24px;
3095 }
3096
3097 .ptb-news__read-news .news-content .ptb-link__wrapper svg {
3098 margin-right: var(--space-sm, 16px);
3099 }
3100
3101 .ptb-news__read-news .news-content .ptb-link__wrapper .first {
3102 gap: 0 !important;
3103 }
3104
3105 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
3106 .ptb-news__read-news .news-content .link {
3107 font-size: var(--font-size-xxs, 16px);
3108 }
3109 }
3110 </style>
3111 </#if>
3112</#macro>
3113
3114<#-- ################################################################################################################## -->
3115<#macro renderCite>
3116 <div class="ptb-news__cite-container">
3117 <div class="ptb-news__cite-container-breakpoint breakpoint">
3118 <div class="ptb-news__cite-container-col col-1-12 md-col-1-8 sm-col-1-4">
3119 <div class="ptb-news__cite-title">
3120 <#if locale?lower_case == "pt_br">
3121 Notas
3122 <#else>
3123 Notes
3124 </#if>
3125 </div>
3126
3127 <div class="ptb-news__cites-elements">
3128 </div>
3129 </div>
3130 </div>
3131 </div>
3132
3133 <script>
3134 function positionCitesText(parentNodeCitesText) {
3135
3136 parentNodeCitesText.forEach((parentNodeCiteText) => {
3137 if (window.innerWidth > 1024) {
3138 parentNodeCiteText.style.display = "";
3139 parentNodeCiteText.style.gridColumnStart = "11";
3140 parentNodeCiteText.style.gridColumnEnd = "13";
3141 } else {
3142 parentNodeCiteText.style.display = "none";
3143 parentNodeCiteText.style.gridColumnStart = "";
3144 parentNodeCiteText.style.gridColumnEnd = "";
3145 }
3146 });
3147 }
3148
3149 function addCitesTextMobile(citesText) {
3150 const citesContainer = document.querySelector(".ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements");
3151
3152 if (citesContainer.children.length === 0) {
3153 citesContainer && citesText.forEach((citeText) => {
3154 citesContainer.appendChild(citeText.cloneNode(true));
3155 });
3156 }
3157 }
3158
3159 const citesText = document.querySelectorAll(".news-content cite");
3160
3161 if (citesText.length > 0) {
3162 const parentNodeCitesText = [...citesText].map((citeText) => citeText.parentNode);
3163 positionCitesText(parentNodeCitesText);
3164 addCitesTextMobile(citesText);
3165 } else {
3166 const citesContainer = document.querySelector(".ptb-news__cite-container");
3167 citesContainer && (citesContainer.style.display = "none");
3168 }
3169
3170 document.addEventListener('DOMContentLoaded', () => {
3171
3172 const citesText = document.querySelectorAll(".news-content cite");
3173
3174 if (citesText.length > 0) {
3175 const parentNodeCitesText = [...citesText].map((citeText) => citeText.parentNode);
3176
3177 positionCitesText(parentNodeCitesText);
3178 addCitesTextMobile(citesText);
3179
3180 window.addEventListener('resize', () => {
3181 positionCitesText(parentNodeCitesText)
3182 });
3183 } else {
3184 const citesContainer = document.querySelector(".ptb-news__cite-container");
3185 citesContainer && (citesContainer.style.display = "none");
3186 }
3187 });
3188
3189 </script>
3190
3191 <style>
3192
3193 .ptb-news__read-news-post cite {
3194 color: var(--color-neutral-800, #373737);
3195 font-family: var(--font-family-base);
3196 font-size: var(--font-size-xxxs, 14px) !important;
3197 font-style: var(--font-style-normal, normal);
3198 font-weight: var(--font-weight-regular, 400);
3199 line-height: var(--line-height-xl, 160%);
3200 }
3201
3202 .ptb-news__read-news-post cite a {
3203 font-size: var(--font-size-xxxs, 14px) !important;
3204 }
3205
3206 body.high-contrast-active .ptb-news__read-news-post cite {
3207 color: var(--text-primary-default, var(--color-neutral-100));
3208 }
3209
3210 .ptb-news__read-news-post .news-content cite,
3211 .ptb-news__read-news-post .ptb-news__cite-container cite {
3212 display: block;
3213 padding-left: var(--space-md);
3214 border-left: var(--border-width-hairline, 1px) solid var(--color-neutral-500, #D7D7D7);
3215 }
3216
3217 @media screen and (min-width: 1025px) {
3218 .ptb-news__read-news-post .ptb-news__cite-container {
3219 display: none;
3220 }
3221 }
3222
3223 @media screen and (max-width: 1025px) {
3224 .ptb-news__read-news .ptb-news__cite-container .link {
3225 text-decoration-line: var(--text-decoration-underline, underline);
3226 color: #008542;
3227 }
3228
3229 body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container .link {
3230 color: #E4F7E8;
3231 }
3232
3233 body.high-contrast-active .ptb-news__read-news .ptb-news__cite-container svg path {
3234 stroke: var(--color-neutral-500, #D7D7D7);
3235 fill: rgba(255, 255, 255, 0.32);
3236 }
3237
3238 .ptb-news__read-news-post .ptb-news__cite-container {
3239 display: grid;
3240 background: var(--background-surface-level-03, #EEE);
3241 }
3242
3243 body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container {
3244 background: var(--background-surface-level-03, #525252);
3245 }
3246
3247 .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col {
3248 padding: var(--space-xxl) 0;
3249 display: flex;
3250 flex-direction: column;
3251 gap: var(--space-lg, 32px);
3252 }
3253
3254 .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cites-elements {
3255 display: flex;
3256 flex-direction: column;
3257 gap: var(--space-lg, 32px);
3258 }
3259
3260 .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title {
3261 color: var(--color-neutral-800, #373737);
3262 font-size: var(--font-size-sm, 20px);
3263 font-style: var(--font-style-normal, normal);
3264 font-weight: var(--font-weight-bold, 700);
3265 line-height: var(--line-height-xl, 160%);
3266 }
3267
3268 body.high-contrast-active .ptb-news__read-news-post .ptb-news__cite-container .ptb-news__cite-container-col .ptb-news__cite-title {
3269 color: var(--text-primary-default, var(--color-neutral-100));
3270 }
3271 }
3272 </style>
3273
3274</#macro>
3275
3276<#-- ############# Site de Crise - Notícia - Galeria de imagens ####################################################### -->
3277<#function getGalleryImgDate gItem>
3278 <#-- Data default - Criação do documento -->
3279 <#assign date = gItem.createDate />
3280 <#if gItem.originalFile?? && gItem.originalFile.documentType?? && gItem.originalFile.documentType.contentFields?has_content>
3281 <#list gItem.originalFile.documentType.contentFields as imgField>
3282 <#if imgField.label == 'Data' && imgField.contentFieldValue?? && imgField.contentFieldValue.data??>
3283 <#-- Data personalizada -->
3284 <#assign date = imgField.contentFieldValue.data />
3285 <#break>
3286 </#if>
3287 </#list>
3288 </#if>
3289 <#return date>
3290</#function>
3291
3292<#macro renderGallery newsInfo>
3293 <#if newsInfo.galleryItems?size == 0>
3294 <#return />
3295 </#if>
3296
3297 <div class="breakpoint">
3298 <div class="col-3-10 md-col-1-12 sm-col-1-4">
3299 <div class="gallery">
3300
3301 <div class="title-container">
3302 <svg class="icon" viewBox="0 0 26 23" fill="none" xmlns="http://www.w3.org/2000/svg">
3303 <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"
3304 stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3305 <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"
3306 stroke="#525252" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3307 </svg>
3308 <p class="title">
3309 <#if locale == "pt_BR"> Fotos <#else > Photos </#if>
3310 </p>
3311 </div>
3312
3313
3314 <div class="image-container">
3315 <#assign itensNum = 1 />
3316 <#list newsInfo.galleryItems as gItem>
3317 <#assign rancomCssClass = "fragment_88494_" + gItem?index />
3318 <div class="fragment_88494 ${rancomCssClass}">
3319 <div class="modal-image-container">
3320 <span class="click-image news-gallery-image-thumb"></span>
3321
3322 <div class="image-player-container">
3323 <span class="close-image news-gallery-close-modal">X</span>
3324 <div class="image-player-session">
3325 <#assign largeImgUrl = ""/>
3326 <#assign largeImgAlt = ""/>
3327 <#if gItem.originalFile["contentUrl"]?? >
3328 <#assign largeImgUrl = themeDisplay.getPortalURL() + "/documents/" + groupId + "/" + gItem.originalFile.externalReferenceCode + "?t=" + .now?string["HHmmssSSS"] />
3329 <#assign largeImgAlt = gItem.originalFile["description"]/>
3330 </#if>
3331
3332 <#assign thumbnailImageUrl = ""/>
3333 <#assign thumbnailImageAlt = ""/>
3334 <#if gItem.thumbnailImage?? && gItem.thumbnailImage?has_content && gItem.thumbnailImage["contentUrl"]?? && gItem.thumbnailImage["contentUrl"]??>
3335 <#assign mediaWidth = 300 />
3336 <#list gItem.thumbnailImage.adaptedImages?filter(f -> f.width == mediaWidth) as adaptedImage>
3337 <#assign thumbnailImageUrl = themeDisplay.getPortalURL() + adaptedImage.contentUrl />
3338 </#list>
3339 <#assign thumbnailImageAlt = gItem.thumbnailImage.description />
3340 </#if>
3341
3342
3343 <#assign carrouselImgUrl = ""/>
3344 <#assign carrouselImgAlt = ""/>
3345 <#if gItem.originalFile["contentUrl"]??>
3346 <#assign carrouselImgUrl = gItem.originalFile["contentUrl"] />
3347 <#assign carrouselImgAlt = gItem.originalFile.description />
3348 </#if>
3349
3350 <#if !thumbnailImageUrl?? || !thumbnailImageUrl?has_content>
3351 <#assign mediaWidth = 300 />
3352 <#if gItem.originalFile["adaptedImages"]??>
3353 <#list gItem.originalFile.adaptedImages?filter(f -> f.width == mediaWidth) as adaptedImage>
3354 <#assign thumbnailImageUrl = themeDisplay.getPortalURL() + adaptedImage.contentUrl />
3355 </#list>
3356 </#if>
3357 <#if !thumbnailImageUrl?has_content>
3358 <#assign thumbnailImageUrl = largeImgUrl/>
3359 </#if>
3360 <#assign thumbnailImageAlt = largeImgAlt/>
3361 </#if>
3362
3363
3364 <img class="thumbnail" src="${thumbnailImageUrl}" alt="${thumbnailImageAlt}"/>
3365
3366
3367 <#assign urlFirst = "" >
3368
3369 <#if carrouselImgUrl?? || carrouselImgUrl?has_content>
3370
3371 <#assign urlFirst = "background-image: url('${carrouselImgUrl}');" >
3372 </#if>
3373
3374
3375 <span class="background-image" style="${urlFirst}">
3376
3377 </span>
3378
3379 <div class="large" style="display:none;">
3380 <img class="carousel" src="${carrouselImgUrl}" alt="${carrouselImgAlt}"/>
3381 </div>
3382
3383 <div class="gallery-modal-footer">
3384 <div class="carousel-info">
3385 <p class="title-image paragraph-sm-regular">
3386 <#if locale == "pt_BR"> Foto: <#else > Picture: </#if>${itensNum}
3387 /${newsInfo.galleryItems?size}
3388 </p>
3389 <div class="left-arrow news-gallery-previus-img-btn">
3390 <svg width="32" height="32" viewBox="0 0 32 32" fill="none"
3391 xmlns="http://www.w3.org/2000/svg">
3392 <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"
3393 fill="#008542"/>
3394 <path d="M21.5 16H10.5M10.5 16L15 11.5M10.5 16L15 20.5"
3395 stroke="white" stroke-linecap="round"
3396 stroke-linejoin="round"/>
3397 </svg>
3398 </div>
3399 <div class="right-arrow news-gallery-next-img-btn">
3400 <svg width="32" height="32" viewBox="0 0 32 32" fill="none"
3401 xmlns="http://www.w3.org/2000/svg">
3402 <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"
3403 fill="#008542"/>
3404 <path d="M10.5 16H21.5M21.5 16L17 11.5M21.5 16L17 20.5"
3405 stroke="white" stroke-linecap="round"
3406 stroke-linejoin="round"/>
3407 </svg>
3408 </div>
3409 </div>
3410 <div class="text-container">
3411 <p class="title-image h5">${gItem.cardTitle}</p>
3412 <div class="image-info">
3413 <p class="date-info paragraph-sm-regular">${formatDate(getGalleryImgDate(gItem))}</p>
3414 <p class="autor-info paragraph-sm-regular"><#if locale == "pt_BR"> Por: <#else > By: </#if> ${gItem.author}</p>
3415 </div>
3416 <div class="download-info">
3417 <div class="download-large-image">
3418 <div class="download-share-container">
3419 <a class="download button donwload-button news-gallery-image-item-download"
3420 href="${largeImgUrl}?download=true">
3421
3422 <svg width="20" height="20" viewBox="0 0 20 20"
3423 fill="none" xmlns="http://www.w3.org/2000/svg">
3424 <path d="M6.71875 8.59375L10 11.875M10 11.875L13.2812 8.59375M10 11.875V3.125M16.875 11.875V16.25C16.875 16.4158 16.8092 16.5747 16.6919 16.6919C16.5747 16.8092 16.4158 16.875 16.25 16.875H3.75C3.58424 16.875 3.42527 16.8092 3.30806 16.6919C3.19085 16.5747 3.125 16.4158 3.125 16.25V11.875"
3425 stroke="white" stroke-linecap="round"
3426 stroke-linejoin="round"/>
3427 </svg>
3428 <#if locale == "pt_BR"> Baixar <#else > Download </#if>
3429
3430 </a>
3431 <div class="download-info-message">
3432 <svg width="16" height="16" viewBox="0 0 16 16"
3433 fill="none" xmlns="http://www.w3.org/2000/svg">
3434 <path d="M8 6.5V9" stroke="#FFEEB3"
3435 stroke-linecap="round"
3436 stroke-linejoin="round"/>
3437 <path d="M7.1374 2.49998L1.6374 12C1.54978 12.1517 1.50357 12.3239 1.50342 12.4991C1.50326 12.6743 1.54916 12.8465 1.63651 12.9985C1.72386 13.1504 1.8496 13.2767 2.00113 13.3647C2.15266 13.4527 2.32466 13.4994 2.4999 13.5H13.4999C13.6751 13.4994 13.8471 13.4527 13.9987 13.3647C14.1502 13.2767 14.2759 13.1504 14.3633 12.9985C14.4506 12.8465 14.4965 12.6743 14.4964 12.4991C14.4962 12.3239 14.45 12.1517 14.3624 12L8.8624 2.49998C8.77543 2.34802 8.64987 2.22173 8.49841 2.1339C8.34695 2.04607 8.17498 1.99982 7.9999 1.99982C7.82481 1.99982 7.65284 2.04607 7.50138 2.1339C7.34992 2.22173 7.22436 2.34802 7.1374 2.49998V2.49998Z"
3438 stroke="#FFEEB3" stroke-linecap="round"
3439 stroke-linejoin="round"/>
3440 <path d="M8 12C8.41421 12 8.75 11.6642 8.75 11.25C8.75 10.8358 8.41421 10.5 8 10.5C7.58579 10.5 7.25 10.8358 7.25 11.25C7.25 11.6642 7.58579 12 8 12Z"
3441 fill="#FFEEB3"/>
3442 </svg>
3443 <p class="paragraph-micro-regular">O uso deste material
3444 é autorizado apenas para fins editoriais.</p>
3445 </div>
3446 </div>
3447 </div>
3448
3449 <div class="social-media-container">
3450
3451 <#assign emailMsg = "Veja o conteúdo do post no link ">
3452 <#if locale == "en_US">
3453 <#assign emailMsg = "See the content of the post in the link ">
3454 </#if>
3455
3456 <a class="news-gallery-share-news-email" href="mailto:?subject=${newsInfo.mainHeadlineOfTheNews}&body=${emailMsg}${themeDisplay.getPortalURL() + largeImgUrl}"
3457 target="_blank">
3458 <svg class="email" width="37" height="36"
3459 viewBox="0 0 37 36" fill="none"
3460 xmlns="http://www.w3.org/2000/svg">
3461 <circle cx="18.5" cy="18" r="17.5" fill="white"
3462 stroke="#E1E1E1"/>
3463 <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"
3464 fill="#008542"/>
3465 </svg>
3466 <span style="display: none">send e-mail</span>
3467 </a>
3468
3469 <a class="news-gallery-share-news-facebook" href="https://www.facebook.com/sharer/sharer.php?u=${themeDisplay.getPortalURL() + largeImgUrl}"
3470 target="_blank">
3471 <svg class="facebook" width="37" height="36"
3472 viewBox="0 0 37 36" fill="none"
3473 xmlns="http://www.w3.org/2000/svg">
3474 <circle cx="18.5" cy="18" r="17.5" fill="white"
3475 stroke="#E1E1E1"/>
3476 <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"
3477 fill="#008542"/>
3478 </svg>
3479 </a>
3480
3481
3482 <a class="news-gallery-share-news-twitter" href="https://twitter.com/intent/tweet?url=${themeDisplay.getPortalURL() + largeImgUrl}"
3483 target="_blank">
3484 <svg class="twitter" width="37" height="36"
3485 viewBox="0 0 37 36" fill="none"
3486 xmlns="http://www.w3.org/2000/svg">
3487 <circle cx="18.5" cy="18" r="17.5" fill="white"
3488 stroke="#E1E1E1"/>
3489 <path d="M23.1771 14.7301C23.6859 14.3325 24.1438 13.8554 24.5 13.2988C24.0421 13.5108 23.5078 13.6699 22.9736 13.7229C23.5333 13.3783 23.9403 12.8482 24.1438 12.1855C23.635 12.5036 23.0499 12.7422 22.4648 12.8747C21.956 12.3181 21.2691 12 20.5059 12C19.0303 12 17.8346 13.2458 17.8346 14.7831C17.8346 14.9952 17.8601 15.2072 17.911 15.4193C15.6977 15.2867 13.7133 14.1735 12.3904 12.5036C12.1614 12.9012 12.0342 13.3783 12.0342 13.9084C12.0342 14.8627 12.4922 15.7108 13.2299 16.2145C12.7975 16.188 12.365 16.0819 12.0088 15.8699V15.8964C12.0088 17.2482 12.9247 18.3614 14.1458 18.6265C13.9423 18.6795 13.6879 18.7325 13.4589 18.7325C13.2808 18.7325 13.1282 18.706 12.9501 18.6795C13.2808 19.7928 14.273 20.588 15.4432 20.6145C14.5274 21.3566 13.3826 21.8072 12.136 21.8072C11.907 21.8072 11.7035 21.7807 11.5 21.7542C12.6703 22.5494 14.0695 23 15.5959 23C20.5059 23 23.1771 18.7855 23.1771 15.1012C23.1771 14.9687 23.1771 14.8627 23.1771 14.7301Z"
3490 fill="#008542"/>
3491 </svg>
3492 </a>
3493
3494 <a class="news-gallery-share-news-whatsapp" href="https://api.whatsapp.com/send?text=${themeDisplay.getPortalURL() + largeImgUrl}"
3495 data-action="share/whatsapp/share"
3496 target="_blank">
3497 <svg class="whatsapp" width="37" height="36"
3498 viewBox="0 0 37 36" fill="none"
3499 xmlns="http://www.w3.org/2000/svg">
3500 <circle cx="18.5" cy="18" r="17.5" fill="white"
3501 stroke="#E1E1E1"/>
3502 <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"
3503 fill="#008542"/>
3504 <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"
3505 fill="white"/>
3506 </svg>
3507 <span style="display: none">Share to WhatsApp </span>
3508 </a>
3509
3510 </div>
3511 </div>
3512
3513 </div>
3514 </div>
3515 </div>
3516 </div>
3517 </div>
3518 </div>
3519
3520 <script>
3521 AUI().ready(function () {
3522 const fragmentElement = document.querySelector(".${rancomCssClass}");
3523 const getImageClick = fragmentElement.querySelector('.click-image');
3524 const imageContainer = fragmentElement.querySelector('.modal-image-container');
3525 const imagePlayerContainer = fragmentElement.querySelector('.image-player-container');
3526
3527 const image = imagePlayerContainer.querySelector('img');
3528 const closeImage = imagePlayerContainer.querySelector('.close-image');
3529 const body = document.querySelector('body');
3530 const thumbnailImage = imagePlayerContainer.querySelector(".thumbnail");
3531 const largeImage = imagePlayerContainer.querySelector(".large");
3532
3533 const stopImage = () => {
3534 fragmentElement.classList.toggle('active');
3535 getImageClick.classList.toggle('image-playing');
3536 imagePlayerContainer.classList.toggle('image-playing');
3537 imageContainer.classList.toggle('image-playing');
3538 thumbnailImage.classList.toggle('hide');
3539 largeImage.style = "display: none";
3540 closeImage.classList.toggle('image-active');
3541 body.style.overflow = 'initial';
3542 }
3543
3544 const playImage = () => {
3545 fragmentElement.classList.toggle('active');
3546 getImageClick.classList.toggle('image-playing');
3547 imagePlayerContainer.classList.toggle('image-playing');
3548 imageContainer.classList.toggle('image-playing');
3549 closeImage.classList.toggle('image-active')
3550 thumbnailImage.classList.toggle('hide');
3551 largeImage.style = "display: flex";
3552 body.style.overflow = 'hidden';
3553 }
3554
3555 getImageClick.addEventListener('click', () => {
3556 if (document.body.classList.contains('has-edit-mode-menu')) {
3557 return;
3558 }
3559
3560 if (imagePlayerContainer.classList.contains('image-playing')) {
3561 stopImage();
3562 } else {
3563 playImage();
3564 }
3565 })
3566
3567 closeImage.addEventListener('click', () => {
3568 if (imagePlayerContainer.classList.contains('image-playing')) {
3569 stopImage();
3570 }
3571 })
3572 });
3573 </script>
3574
3575 <#assign itensNum = itensNum + 1 />
3576
3577 </#list>
3578
3579 </div>
3580
3581 <script>
3582 AUI().ready(function () {
3583 const imageContainer = document.querySelectorAll('.image-container .modal-image-container');
3584 const closeImage = document.querySelectorAll('.image-container .modal-image-container .close-image');
3585 const clickContainer = document.querySelectorAll('.image-container .modal-image-container .click-image');
3586 let curItem = 0;
3587
3588
3589 if (imageContainer.length > 0) {
3590 const allArrowsLeft = document.querySelectorAll('.fragment_88494 .modal-image-container .image-player-container .carousel-info .left-arrow');
3591 const allArrowsRight = document.querySelectorAll('.fragment_88494 .modal-image-container .image-player-container .carousel-info .right-arrow');
3592
3593
3594 allArrowsLeft.forEach((item, index) => {
3595 item.addEventListener('click', () => {
3596 if (index - 1 >= 0) {
3597 curItem = index - 1
3598 closeImage[index].click();
3599 clickContainer[curItem].click();
3600 }
3601
3602 })
3603 });
3604
3605 allArrowsRight.forEach((item, index) => {
3606 item.addEventListener('click', () => {
3607 if (index + 1 <= (imageContainer.length - 1)) {
3608 curItem = index + 1
3609 closeImage[index].click();
3610 clickContainer[curItem].click();
3611 }
3612
3613 })
3614
3615
3616 });
3617
3618
3619 }
3620 });
3621 </script>
3622
3623 </div>
3624 </div>
3625 </div>
3626
3627 <style>
3628 .ptb-news__read-news .gallery * {
3629 margin: 0;
3630 padding: 0;
3631 }
3632
3633 .ptb-news__read-news .gallery {
3634 display: flex;
3635 gap: var(--space-xl, 40px);
3636 flex-direction: column;
3637 }
3638
3639 .ptb-news__read-news .gallery .title-container {
3640 display: flex;
3641 align-items: center;
3642 gap: var(--space-sm, 16px);
3643 }
3644
3645 .ptb-news__read-news .gallery .title-container svg {
3646 width: 24px;
3647 height: 21px;
3648 }
3649
3650 .ptb-news__read-news .gallery .title-container .title {
3651 color: var(--color-neutral-800, #373737);
3652 font-family: var(--font-family-base);
3653 font-size: var(--font-size-lg);
3654 font-style: var(--font-style-normal);
3655 font-weight: var(--font-weight-bold);
3656 line-height: var(--line-height-md); /* 31.68px */
3657 }
3658
3659 .ptb-news__read-news .gallery .image-container {
3660 display: flex;
3661 gap: var(--space-sm, 16px);
3662 flex-wrap: wrap;
3663 }
3664
3665 .ptb-news__read-news .gallery .image-container .fragment_88494 {
3666 width: 274px;
3667 height: 152px;
3668 border-radius: var(--border-radius-md, 8px);
3669 }
3670
3671 .ptb-news__read-news .gallery .large-image-download {
3672 display: none;
3673 }
3674
3675 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session .download-share-container {
3676 display: flex;
3677 justify-content: space-between;
3678 gap: 12px;
3679 }
3680
3681
3682 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session .download-share-container .social-media-container {
3683 display: flex;
3684 gap: 8px;
3685 }
3686
3687 /* Gallery */
3688
3689 .fragment_88494 {
3690 width: inherit;
3691 height: inherit;
3692 max-height: calc(100vw / 2);
3693 padding: 0;
3694 margin: 0;
3695 overflow: hidden;
3696 }
3697
3698 .fragment_88494 * {
3699 box-sizing: border-box;
3700 margin: 0;
3701 padding: 0;
3702 }
3703
3704 .fragment_88494 .modal-image-container {
3705 width: 100%;
3706 height: inherit;
3707 display: flex;
3708 justify-content: center;
3709 position: relative;
3710 cursor: initial;
3711 }
3712
3713 .fragment_88494 .modal-image-container .click-image {
3714 cursor: pointer;
3715 }
3716
3717 .fragment_88494 .modal-image-container.image-playing {
3718 position: fixed;
3719 top: 0;
3720 left: 0;
3721 width: 100vw !important;
3722 height: 100vh !important;
3723 z-index: 9999 !important;
3724 background-color: rgba(0, 0, 0, 0.75);
3725 max-height: 100vh;
3726 }
3727
3728 .page-editor .fragment_88494 .modal-image-container {
3729 z-index: 0;
3730 }
3731
3732 .fragment_88494 .modal-image-container .click-image {
3733 height: 100%;
3734 width: 100%;
3735 position: absolute;
3736 z-index: 3;
3737 }
3738
3739 .fragment_88494 .modal-image-container .image-player-container {
3740 width: 100%;
3741 height: 100%;
3742 }
3743
3744
3745 .fragment_88494 .modal-image-container .image-player-container.image-playing {
3746 position: relative;
3747 width: 90vw !important;
3748 height: 90vh !important;
3749 z-index: 9999 !important;
3750 border-radius: var(--border-radius-card);
3751 margin: auto;
3752 max-width: 1440px;
3753 }
3754
3755 .fragment_88494 .modal-image-container .image-player-container .close-image {
3756 display: none;
3757 position: absolute;
3758 font-size: var(--font-size-micro);
3759 color: var(--color-primary-medium);
3760 width: 20px;
3761 height: 20px;
3762 top: -6px;
3763 right: -10px;
3764 z-index: 99999;
3765 background: var(--color-neutral-100);
3766 text-align: center;
3767 border-radius: 50%;
3768 border: 1px solid var(--color-neutral-400);
3769 }
3770
3771 .fragment_88494 .modal-image-container .image-player-container .close-image.image-active {
3772 display: block;
3773 }
3774
3775 .fragment_88494 .modal-image-container .image-player-container .image-player-session {
3776 width: 100%;
3777 height: 100%;
3778 }
3779
3780 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session {
3781 width: 90vw !important;
3782 height: 65vh !important;
3783 z-index: 9999 !important;
3784 border-radius: var(--border-radius-card) var(--border-radius-card) 0 0;
3785 overflow: hidden;
3786 max-width: 1440px;
3787 }
3788
3789 .fragment_88494 .modal-image-container .image-player-container.image-playing .background-image {
3790 display: flex;
3791 width: 100% !important;
3792 height: 100% !important;
3793 margin-left: 0 !important;
3794 max-height: 100vh;
3795 filter: blur(8px);
3796 overflow: hidden;
3797 background-repeat: repeat;
3798 background-size: 50% 700px;
3799 }
3800
3801 .fragment_88494 .modal-image-container .image-player-container .image-player-session img {
3802 width: 120%;
3803 height: 120%;
3804 margin-left: -12%;
3805 max-height: calc(100vw / 2);
3806 object-fit: cover;
3807 }
3808
3809 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session img {
3810 width: 100% !important;
3811 height: 65vh !important;
3812 margin-left: 0 !important;
3813 max-height: 100vh;
3814 object-fit: contain;
3815 position: absolute;
3816 top: 0;
3817 left: 0;
3818 background: transparent;
3819 }
3820
3821 .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer {
3822 display: flex;
3823 flex-direction: row-reverse;
3824 justify-content: space-between;
3825 align-items: flex-start;
3826 background-color: #1E1E1E;
3827 /*max-height: 35%;*/
3828 padding: 8px;
3829 border-radius: 0 0 var(--border-radius-card) var(--border-radius-card);
3830 color: var(--color-neutral-100);
3831 gap: 32px;
3832 min-height: 128px;
3833 z-index: 9999 !important;
3834 position: absolute;
3835 width: 90vw !important;
3836 max-width: 1440px;
3837 }
3838
3839 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container {
3840 display: flex;
3841 flex-direction: column;
3842 gap: 8px;
3843 }
3844
3845 .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer .social-media-container {
3846 position: absolute;
3847 right: 5px;
3848 bottom: 20px;
3849 display: flex;
3850 gap: 3px;
3851 }
3852
3853 .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer .social-media-container a {
3854 display: block;
3855 height: fit-content;
3856 }
3857
3858 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .image-info {
3859 display: flex;
3860 gap: 24px;
3861 color: var(--color-neutral-500);
3862 }
3863
3864
3865 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info {
3866 display: flex;
3867 gap: 16px;
3868 margin-top: 15px;
3869 }
3870
3871 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info .donwload-button {
3872 display: flex;
3873 justify-content: space-around;
3874 align-items: center;
3875 background-color: var(--color-primary-medium);
3876 width: 100px;
3877 height: 40px;
3878 padding: 0px 16px 0px 16px;
3879 border-radius: 100px;
3880 gap: 8px;
3881 color: var(--color-neutral-100);
3882 text-decoration: none;
3883 }
3884
3885 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info .donwload-button svg {
3886 pointer-events: none;
3887 }
3888
3889 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info svg {
3890 flex-shrink: 0;
3891 pointer-events: none;
3892 }
3893
3894 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info-message {
3895 display: flex;
3896 align-items: center;
3897 color: #FFEEB3;
3898 gap: 8px;
3899 }
3900
3901 .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info {
3902 display: flex;
3903 justify-content: center;
3904 gap: 8px;
3905 padding: 8px;
3906 }
3907
3908 .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info .left-arrow,
3909 .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info .right-arrow {
3910 cursor: pointer;
3911 }
3912
3913 .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info .left-arrow svg,
3914 .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info .right-arrow svg {
3915 pointer-events: none;
3916 }
3917
3918 .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info .title-image {
3919 display: flex;
3920 justify-content: center;
3921 align-items: center;
3922 height: 32px;
3923 color: var(--color-neutral-500);
3924 }
3925
3926
3927 @media (max-width: 1040px) {
3928
3929 .fragment_88494 .modal-image-container .image-player-container.image-playing .background-image {
3930 background-size: 100% 100%;
3931 }
3932
3933 }
3934
3935
3936 @media (max-width: 767px) {
3937
3938 .fragment_88494 .modal-image-container .image-player-container.image-playing {
3939 margin-top: 5%;
3940 }
3941
3942 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session {
3943 height: 50vh !important;
3944 min-height: 234px;
3945 }
3946
3947 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session img {
3948 height: 50vh !important;
3949 min-height: 234px;
3950 }
3951
3952 .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info {
3953 align-items: center;
3954 justify-content: flex-start;
3955 margin-top: 12px;
3956 width: 100%;
3957 }
3958
3959 .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer {
3960 /*height: 40%;*/
3961 min-height: 280px;
3962 flex-direction: column;
3963 justify-content: flex-start;
3964 align-items: center;
3965 width: 100%;
3966 flex-wrap: nowrap;
3967 }
3968
3969
3970 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .image-info {
3971 flex-direction: column;
3972 gap: 8px;
3973 }
3974
3975 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info {
3976 flex-direction: column;
3977 justify-content: center;
3978 align-items: center;
3979 margin-top: 5px;
3980 }
3981
3982 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info .donwload-button {
3983 justify-content: center;
3984 width: 100%;
3985 }
3986
3987 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session .download-share-container {
3988 flex-direction: column;
3989 }
3990
3991 .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer .social-media-container {
3992 top: 25px;
3993 }
3994
3995 }
3996
3997
3998 @media (max-width: 540px) {
3999
4000 .fragment_88494 .modal-image-container .image-player-container.image-playing {
4001 height: 40vh !important;
4002 margin-top: 15%;
4003 }
4004
4005 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session {
4006 height: 40vh !important;
4007 min-height: 234px;
4008 }
4009
4010 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session img {
4011 height: 40vh !important;
4012 min-height: 234px;
4013 }
4014
4015 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session .download-share-container {
4016 gap: 6px;
4017 }
4018
4019 .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer {
4020 gap: 18px;
4021 }
4022
4023 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info {
4024 margin-top: 2px;
4025 }
4026
4027 }
4028
4029 @media (max-height: 500px) {
4030 .fragment_88494 .modal-image-container .image-player-container.image-playing {
4031 display: flex;
4032 }
4033
4034 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session {
4035 height: 60vh !important;
4036 width: 50vw !important;
4037 border-radius: var(--border-radius-card) 0 0 0;
4038 }
4039
4040 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session img {
4041 height: 60vh !important;
4042 width: 40vw !important;
4043 }
4044
4045 .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer {
4046 height: 75vh !important;
4047 width: 50vw !important;
4048 top: 0;
4049 right: 0;
4050 min-height: 85vh;
4051 border-radius: 0 var(--border-radius-card) var(--border-radius-card) 0;
4052 align-items: center;
4053 }
4054
4055 .fragment_88494 .modal-image-container .image-player-container.image-playing .carousel-info {
4056 position: absolute;
4057 display: flex;
4058 align-items: center;
4059 bottom: 0;
4060 left: -40vw;
4061 width: 40vw !important;
4062 background-color: #1E1E1E;
4063 height: 120px !important;
4064 border-radius: 0 0 0 var(--border-radius-card);
4065 }
4066
4067
4068 .fragment_88494 .modal-image-container .image-player-container.image-playing .image-player-session .download-share-container {
4069 flex-direction: column;
4070 }
4071
4072
4073 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container .download-info .donwload-button {
4074 width: 100%;
4075 justify-content: center;
4076 }
4077
4078 .fragment_88494 .modal-image-container .image-player-container.image-playing .text-container {
4079 gap: 16px;
4080 height: 60vh;
4081 }
4082
4083 .fragment_88494 .modal-image-container .image-player-container.image-playing .gallery-modal-footer .social-media-container {
4084 top: initial;
4085 }
4086
4087 /* *** */
4088
4089
4090 </style>
4091
4092</#macro>
4093
4094
4095<#-- ################################################################################################################## -->
4096
4097
4098<#-- ############# Site de Crise - Notícia - Render seção download #################################################### -->
4099
4100<#macro renderDownloadSection newsInfo>
4101 <div class="breakpoint">
4102 <div class="col-3-10 md-col-1-12 sm-col-1-4">
4103 <div class="download-section">
4104 <div class="title-container">
4105 <svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4106 <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"
4107 stroke="#373737" stroke-width="2.28571" stroke-linecap="round" stroke-linejoin="round"/>
4108 </svg>
4109 <p class="title">Downloads </p>
4110 </div>
4111
4112 <div class="sections">
4113 <div class="section text-section">
4114 <p class="title"> <#if locale == "pt_BR"> Texto desta matéria <#else > Text of this article </#if> </p>
4115 <a class="button download-news-text" href="">
4116 <#if locale == "pt_BR"> Download do texto <#else > Text download </#if>
4117 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
4118 xmlns="http://www.w3.org/2000/svg">
4119 <path d="M8.0625 10.3125L12 14.25M12 14.25L15.9375 10.3125M12 14.25V3.75M20.25 14.25V19.5C20.25 19.6989 20.171 19.8897 20.0303 20.0303C19.8897 20.171 19.6989 20.25 19.5 20.25H4.5C4.30109 20.25 4.11032 20.171 3.96967 20.0303C3.82902 19.8897 3.75 19.6989 3.75 19.5V14.25"
4120 stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4121 </svg>
4122 </a>
4123 </div>
4124
4125 <div class="separator"></div>
4126
4127 <div class="section photo-section">
4128 <p class="title"> <#if locale == "pt_BR"> Fotos desta matéria <#else > Photos from this article </#if> </p>
4129
4130
4131 <div class="links">
4132 <#list newsInfo.galleryItems as gItem>
4133 <#assign url = ""/>
4134 <#assign alt = ""/>
4135 <#if gItem.originalFile["contentUrl"]?? >
4136 <#assign url = gItem.originalFile.contentUrl/>
4137 <#assign alt = gItem.originalFile.description/>
4138 </#if>
4139
4140 <#-- <a class="button" href="${url}">
4141 ${gItem.cardTitle}
4142 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
4143 xmlns="http://www.w3.org/2000/svg">
4144 <path d="M8.0625 10.3125L12 14.25M12 14.25L15.9375 10.3125M12 14.25V3.75M20.25 14.25V19.5C20.25 19.6989 20.171 19.8897 20.0303 20.0303C19.8897 20.171 19.6989 20.25 19.5 20.25H4.5C4.30109 20.25 4.11032 20.171 3.96967 20.0303C3.82902 19.8897 3.75 19.6989 3.75 19.5V14.25"
4145 stroke="#008542" stroke-width="2" stroke-linecap="round"
4146 stroke-linejoin="round"/>
4147 </svg>
4148 </a> -->
4149 </#list>
4150
4151 </div>
4152
4153 <a class="button download-news-photos" href="">
4154 <#if locale == "pt_BR"> Download das fotos <#else > Download photos </#if>
4155 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
4156 xmlns="http://www.w3.org/2000/svg">
4157 <path d="M8.0625 10.3125L12 14.25M12 14.25L15.9375 10.3125M12 14.25V3.75M20.25 14.25V19.5C20.25 19.6989 20.171 19.8897 20.0303 20.0303C19.8897 20.171 19.6989 20.25 19.5 20.25H4.5C4.30109 20.25 4.11032 20.171 3.96967 20.0303C3.82902 19.8897 3.75 19.6989 3.75 19.5V14.25"
4158 stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4159 </svg>
4160 </a>
4161 </div>
4162
4163 <div class="separator"></div>
4164
4165 <div class="section video-section">
4166 <p class="title"> <#if locale == "pt_BR"> Vídeos desta matéria <#else > Videos from this article </#if> </p>
4167 <div class="videos-container"></div>
4168 <#-- <a class="button" href="">
4169 <#if locale == "pt_BR"> Download dos vídeos <#else > Download videos </#if>
4170 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
4171 xmlns="http://www.w3.org/2000/svg">
4172 <path d="M8.0625 10.3125L12 14.25M12 14.25L15.9375 10.3125M12 14.25V3.75M20.25 14.25V19.5C20.25 19.6989 20.171 19.8897 20.0303 20.0303C19.8897 20.171 19.6989 20.25 19.5 20.25H4.5C4.30109 20.25 4.11032 20.171 3.96967 20.0303C3.82902 19.8897 3.75 19.6989 3.75 19.5V14.25"
4173 stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4174 </svg>
4175 </a> -->
4176 </div>
4177 </div>
4178 </div>
4179 </div>
4180 </div>
4181
4182 <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></>
4183
4184 <script>
4185 AUI().ready(function () {
4186
4187 const externalArrow = '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M27 12.5V5H19.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M18 14L27 5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M23 18V26C23 26.2652 22.8946 26.5196 22.7071 26.7071C22.5196 26.8946 22.2652 27 22 27H6C5.73478 27 5.48043 26.8946 5.29289 26.7071C5.10536 26.5196 5 26.2652 5 26V10C5 9.73478 5.10536 9.48043 5.29289 9.29289C5.48043 9.10536 5.73478 9 6 9H14" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>';
4188 const downloadArrow = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M8.0625 10.3125L12 14.25M12 14.25L15.9375 10.3125M12 14.25V3.75M20.25 14.25V19.5C20.25 19.6989 20.171 19.8897 20.0303 20.0303C19.8897 20.171 19.6989 20.25 19.5 20.25H4.5C4.30109 20.25 4.11032 20.171 3.96967 20.0303C3.82902 19.8897 3.75 19.6989 3.75 19.5V14.25" stroke="#008542" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>';
4189
4190 const newsContent = document.querySelector(".ptb-news__read-news");
4191 const newsContentLinks = newsContent.querySelectorAll("a");
4192
4193 newsContentLinks.forEach((link) => {
4194 link.classList.add('ptb-news__news-link');
4195 });
4196
4197
4198
4199
4200 const downloadSection = newsContent.querySelector(".download-section");
4201 const videosContainer = downloadSection.querySelector(".videos-container");
4202
4203 const youtubeVideoDivList = newsContent.querySelectorAll('div[data-embed-id]');
4204
4205 youtubeVideoDivList.forEach((videoDiv, index) => {
4206 const aElement = document.createElement("a");
4207
4208 if (!videoDiv.getAttribute("data-embed-id").includes("youtube")) {
4209 return;
4210 }
4211
4212 const id = videoDiv.getAttribute("data-embed-id").split("/").pop().split("?")[0];
4213
4214 const linkStr = "https://www.youtube.com/watch?v=" + id;
4215 aElement.href = linkStr;
4216
4217 <#assign text = ""/>
4218 <#if locale == "pt_BR">
4219 <#assign text = "'Ver vídeo ' + (index +1) + ' no Youtube'"/>
4220 <#else >
4221 <#assign text = "'Watch video ' + (index +1) + ' on Youtube'"/>
4222 </#if>
4223 aElement.innerHTML = ${text} + externalArrow;
4224 aElement.setAttribute("target", "_blank");
4225 aElement.classList.add("button");
4226 videosContainer.appendChild(aElement);
4227 });
4228
4229 const videoDivList = newsContent.querySelectorAll('iframe[data-video-liferay]');
4230
4231 videoDivList.forEach((videoDiv, index) => {
4232 const aElement = document.createElement("a");
4233 aElement.href = videoDiv.src;
4234 aElement.innerHTML = "Download " + (index + 1) + downloadArrow;
4235 aElement.setAttribute("target", "_blank");
4236 aElement.classList.add("button");
4237 videosContainer.appendChild(aElement);
4238 });
4239
4240 if (videosContainer.children.length === 0) {
4241 videosContainer.parentNode.style.display = "none";
4242 videosContainer.parentNode.previousElementSibling.style.display = "none";
4243 }
4244
4245 const photoSection = downloadSection.querySelector(".photo-section");
4246 const photoDownloadButton = photoSection.querySelector(".button");
4247 photoDownloadButton.addEventListener("click", (event) => {
4248 event.preventDefault();
4249 let imageUrls = []
4250 let imageTitles = []
4251 <#list newsInfo.galleryItems as galleryItem>
4252 <#assign url = ""/>
4253 <#if galleryItem.originalFile["contentUrl"]?? >
4254 <#assign url = galleryItem.originalFile["contentUrl"]/>
4255 </#if>
4256 imageUrls.push("${url}");
4257 imageTitles.push('${galleryItem.cardTitle}'.replace(/([^\w ]|_)/g, '').replaceAll(' ', '_'));
4258 </#list>
4259
4260
4261 // Instale a biblioteca jszip usando npm:
4262 <#-- npm install jszip -->
4263
4264 <#-- Importe a biblioteca jszip -->
4265 //import JSZip from 'jszip';
4266
4267
4268// Função para baixar uma imagem e adicionar ao arquivo ZIP
4269 const downloadImage = async (zip, imageUrl, imageName) => {
4270 const response = await fetch(imageUrl);
4271 const arrayBuffer = await response.arrayBuffer();
4272 zip.file(imageName, arrayBuffer);
4273 };
4274
4275// Função principal assíncrona
4276 const main = async () => {
4277 // Crie uma instância do JSZip
4278 const zip = new JSZip();
4279
4280 // Baixe cada imagem e adicione ao arquivo ZIP
4281 await Promise.all(imageUrls.map((url, index) => downloadImage(zip, url, imageTitles[index] + "_" + (index + 1) + '.jpg')));
4282
4283 // Gere o conteúdo do arquivo ZIP
4284 const zipContent = await zip.generateAsync({type: 'blob'});
4285
4286 // Crie um link para o arquivo ZIP e inicie o download
4287 const link = document.createElement('a');
4288 link.classList.add('ptb-news__zip-link');
4289 link.href = URL.createObjectURL(zipContent);
4290 link.download = 'imagens.zip';
4291 document.body.appendChild(link);
4292 link.click();
4293 document.body.removeChild(link);
4294 };
4295
4296// Chame a função principal
4297 main();
4298
4299 });
4300
4301 <#if newsInfo.galleryItems?size == 0>
4302 photoSection.style.display = "none";
4303 photoSection.previousElementSibling.style.display = "none";
4304 </#if>
4305
4306 const textSection = downloadSection.querySelector(".text-section");
4307 const textDownloadButton = textSection.querySelector(".button");
4308 textDownloadButton.addEventListener("click", () => {
4309
4310 const link = document.createElement("a");
4311
4312 const titleText = document.querySelector(".main-headline-container .main-headline").innerHTML;
4313 const publishSocialMediaText = document.querySelector(".publish_and_social_medias_infos_desk .publish_and_update_date").innerHTML;
4314 const tagsText = document.querySelector(".tags").innerHTML;
4315 const newsContentText = document.querySelector(".news-content").innerHTML;
4316 const text = titleText + publishSocialMediaText + tagsText + newsContentText;
4317
4318 const strWithoutHtmlTags = text.replace(/(<([^>]+)>)/gi, "");
4319 const strWithoutMarcationBrackets = strWithoutHtmlTags.replace(/ *#\[[^\]]*]/g, "");
4320 const strWithoutNextPrevious = strWithoutMarcationBrackets.replace(/Previous Next/g, "");
4321 const strWithoutBlankEnters = strWithoutNextPrevious.replace(/^\s*$(?:\r\n?|\n)/gm, "");
4322 const tempInput = document.createElement("textarea");
4323 tempInput.value = strWithoutBlankEnters;
4324
4325 document.body.appendChild(tempInput);
4326 tempInput.select();
4327 document.execCommand("copy");
4328
4329 if (tempInput.value.length > 0) {
4330
4331 link.classList.add('ptb-news__news-link');
4332
4333 const file = new Blob([tempInput.value], {type: 'text/plain'});
4334 link.href = URL.createObjectURL(file);
4335 link.download = titleText.replace(/([^\w ]|_)/g, '').replaceAll(' ', '_');
4336 link.click();
4337 URL.revokeObjectURL(link.href);
4338 }
4339
4340 document.body.removeChild(tempInput);
4341 });
4342
4343
4344 });
4345
4346 </script>
4347
4348 <style>
4349 .ptb-news__read-news .download-section * {
4350 margin: 0;
4351 padding: 0;
4352 }
4353
4354 .ptb-news__read-news .download-news-text *,
4355 .ptb-news__read-news .download-news-photos * {
4356 pointer-events: none;
4357 }
4358
4359
4360 .ptb-news__read-news .download-section {
4361 margin: 0;
4362 padding: var(--space-giant, 80px) 0;
4363 display: flex;
4364 flex-direction: column;
4365 gap: var(--space-xl, 40px);
4366 }
4367
4368 .ptb-news__read-news .download-section svg {
4369 width: var(--size-sm, 20px);
4370 height: var(--size-sm, 20px);
4371 }
4372
4373 .ptb-news__read-news .download-section svg path {
4374 stroke: var(--color-primary-solid-to-bright-200, var(--color-primary-medium));
4375 }
4376
4377 .ptb-news__read-news .download-section .title-container {
4378 display: flex;
4379 gap: var(--space-sm, 16px);
4380 flex-direction: row;
4381 }
4382
4383 .ptb-news__read-news .download-section .title-container svg {
4384 width: var(--size-lg, 32px);
4385 height: var(--size-lg, 32px);
4386 }
4387
4388 .ptb-news__read-news .download-section .title-container svg path {
4389 stroke: var(--color-neutral-800);
4390 }
4391
4392 .ptb-news__read-news .download-section .title-container .title {
4393 color: var(--color-neutral-800, #373737);
4394 font-family: var(--font-family-base);
4395 font-size: var(--font-size-lg);
4396 font-style: var(--font-style-normal);
4397 font-weight: var(--font-weight-bold);
4398 line-height: var(--line-height-md); /* 31.68px */
4399 }
4400
4401 .ptb-news__read-news .download-section .sections {
4402 display: flex;
4403 flex-direction: column;
4404 padding: var(--space-lg, 32px);
4405 gap: var(--space-md, 24px);
4406 border-radius: var(--border-radius-lg, 16px);
4407 background: var(--color-neutral-300, #F8F8F8);
4408 }
4409
4410 .ptb-news__read-news .download-section .sections .separator {
4411 background: #D7D7D7;
4412 height: var(--size-nano, 2px);
4413 width: 100%;
4414 }
4415
4416 .ptb-news__read-news .download-section .sections .section {
4417 display: flex;
4418 justify-content: space-between;
4419 gap: var(--space-sm, 16px);
4420 align-items: center;
4421 height: var(--size-xxl, 48px);
4422 }
4423
4424 .ptb-news__read-news .download-section .sections .section .title {
4425 color: var(--color-neutral-dark-to-bright-1000, #010101);
4426
4427 font-family: var(--font-family-base);
4428 font-size: var(--font-size-xs);
4429 font-style: var(--font-style-normal);
4430 font-weight: var(--font-weight-bold);
4431 line-height: var(--line-height-md);
4432 }
4433
4434 .ptb-news__read-news .download-section .section.video-section {
4435 display: flex;
4436 flex-direction: column;
4437 height: fit-content;
4438 align-items: flex-start;
4439 }
4440
4441 .ptb-news__read-news .download-section .section.video-section svg path {
4442 stroke: var(--color-primary-medium, #008542);
4443 }
4444
4445 .ptb-news__read-news .download-section .section.video-section .videos-container {
4446 display: flex;
4447 flex-direction: column;
4448 gap: var(--space-sm, 16px);
4449 }
4450
4451 .ptb-news__read-news .download-section .sections .section .button {
4452 display: flex;
4453 gap: var(--space-xxs, 8px);
4454 color: var(--color-primary-solid-to-bright-200, var(--color-primary-medium));
4455 font-family: var(--font-family-base);
4456 font-size: var(--font-size-xxs, 16px);
4457 font-style: var(--font-style-normal, normal);
4458 font-weight: var(--font-weight-bold, 700);
4459 line-height: var(--line-height-lg, 144%); /* 23.04px */
4460 text-decoration-line: var(--text-decoration-underline, underline);
4461 }
4462
4463 .ptb-news__read-news .download-section .sections .photo-section .links {
4464 display: flex;
4465 flex-direction: column;
4466 gap: var(--space-sm, 16px);
4467 }
4468
4469
4470 @media screen and (max-width: ${MAX_MOBILE_WIDTH}px) {
4471 }
4472
4473 </style>
4474</#macro>
4475<#-- ################################################################################################################## -->
4476
4477
4478<#function getFirstCategoryObjectOfVocabulary journalArticle vocabulary >
4479 <#attempt>
4480 <#assign categories = categoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) />
4481 <#list categories as category>
4482 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
4483 <#return category>
4484 </#if>
4485 </#list>
4486 <#return "">
4487
4488 <#recover>
4489 <#return "" />
4490 </#attempt>
4491</#function>
4492
4493
4494<#-- ############# Site de Crise - Notícia - Extrair dados de Notícias ################################################ -->
4495<#--
4496Add elements from the sidebar to define your template. Type "${" to use the
4497autocomplete feature.
4498-->
4499<#function extractFeaturedNewsHeadline fieldList xmlArticle>
4500 <#return getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia")>
4501</#function>
4502
4503<#function extractNewsSummary fieldList xmlArticle>
4504 <#return getFieldValue(fieldList, xmlArticle, "Subtítulo")>
4505</#function>
4506
4507<#function extractPublishDate journalArticle>
4508<#--assign lastPublishDate = journalArticle.getModifiedDate()>
4509<#if journalArticle.getLastPublishDate()??>
4510 <#assign lastPublishDate = journalArticle.getLastPublishDate()>
4511<#else>
4512 <#assign lastPublishDate = journalArticle.getModifiedDate()>
4513</#if>
4514<#return lastPublishDate -->
4515 <#return journalArticle.getDisplayDate() />
4516</#function>
4517
4518<#-- Seção da imagem de destaque ---------------------------------------------------------------------->
4519<#function extractNewsImage fieldList xmlArticle fileEntryService>
4520 <#assign
4521 <#-- Grupo da imagem de destaque -->
4522 newsImageGroupList = getNodes("Fieldset71035101", newsJournalArticle.getDocument().getRootElement())
4523 <#-- Url e descrição da imagem de destaque -->
4524 newsImage = {"url": "--", "alt": "--", "mimeType" :"image/jpg", "title": "", "name": "", "fileEntryId": ""}
4525 <#-- Créditos da imagem de destaque -->
4526 newsImageCredits = ""
4527 <#-- Legenda da imagem de destaque -->
4528 newsImageLegend = ""
4529 <#-- Texto do link para download -->
4530 downloadLinkTitle = ""
4531 >
4532
4533 <#list newsImageGroupList as newsImageGroup>
4534 <#assign newsImage = getFileFromXML("Image05319221", newsImageGroup, fileEntryService) />
4535
4536 <#-- Grupo com as informações de crédito e legenda da imagem de destaque -->
4537 <#assign labelGroupList = getNodes("Fieldset43702900", newsImageGroup) />
4538 <#list labelGroupList as labelGroup>
4539 <#-- Investigar do porquê não está funcionando o getFieldValue
4540 <#assign
4541 newsImageCredits = getFieldValue(fieldList, labelGroup, "Crédito da imagem de destaque da notícia")
4542 newsImageLegend = getFieldValue(fieldList, labelGroup, "Legenda da imagem de destaque da notícia")
4543 downloadLinkTitle = getFieldValue(fieldList, labelGroup, "Texto do link para download")
4544 />
4545 -->
4546 <#assign
4547 newsImageCredits = getSingleNodeString("Text47590088", labelGroup)
4548 newsImageLegend = getSingleNodeString("Text03239077", labelGroup)
4549 downloadLinkTitle = getSingleNodeString("Text48804898", labelGroup) />
4550 </#list>
4551 </#list>
4552
4553 <#return {"newsImage": newsImage,
4554 "credits": newsImageCredits,
4555 "legend": newsImageLegend,
4556 "linkTitle" : downloadLinkTitle
4557 }/>
4558</#function>
4559
4560<#function featureNewsVideo xmlArticle fileEntryService>
4561<#-- Seção do video de destaque ----------------------------------------------------------------------->
4562 <#assign
4563 youtubeId = ""
4564 internalVideoUrl = ""
4565 featureNewsVideoGroup = getNodes("Fieldset09746751", xmlArticle)
4566 >
4567 <#list featureNewsVideoGroup as newsImageFieldSet>
4568 <#assign
4569 youtubeId = getFieldValue(fieldList,featureNewsVideoGroup, "ID do vídeo do YouTube do vídeo de destaque")
4570 internalVideoUrl = getFileFromXML("DocumentLibrary80545771", featureNewsVideoGroup, fileEntryService)
4571 >
4572 </#list>
4573
4574 <#return {"youtube": youtubeId, "internalVideoUrl" : internalVideoUrl}>
4575</#function>
4576
4577<#-- ################################################################################################################## -->
Você pode se interessar por
Navegue nas Seções:
Escolha um Canal:
Acessibilidade
Idioma:
Selecione um idioma: