Title
Title
Faça uma busca:
Buscar
Mais pesquisados
Preço dos combustíveis
Pré-Sal
Time Petrobras
Title
O uso deste material é autorizado apenas para fins editoriais.
Mais recentes
Java method "com.liferay.journal.model.impl.JournalArticleImpl.getDocument()" threw an exception when invoked on com.liferay.journal.model.impl.JournalArticleImpl object "{\"mvccVersion\": 1, \"ctCollectionId\": 0, \"uuid\": \"cbfbc2de-7326-2ecf-1686-c3124e073c72\", \"id\": 17513334, \"resourcePrimKey\": 17513214, \"groupId\": 10623376, \"companyId\": 20099, \"userId\": 11888211, \"userName\": \"Leonardo Bruno Pimenta Melo\", \"createDate\": \"Tue May 07 22:19:19 GMT 2024\", \"modifiedDate\": \"Tue May 07 22:48:39 GMT 2024\", \"externalReferenceCode\": \"fe52e503-ef10-349c-8c2d-5fdf73e4fe21\", \"folderId\": 11449535, \"classNameId\": 0, \"classPK\": 0, \"treePath\": \"/10628776/11449535/\", \"articleId\": \"17513212\", \"version\": 1.3, \"urlTitle\": \"sustentabilidade/petrobras-quer-estar-entre-as-tres-empresas-de-oleo-e-gas-mais-bem-colocadas-no-ranking-de-direitos-humanos-ate-2030\", \"DDMStructureId\": 10628772, \"DDMTemplateKey\": \"\", \"defaultLanguageId\": \"pt_BR\", \"layoutUuid\": \"\", \"displayDate\": \"Tue May 07 22:15:00 GMT 2024\", \"expirationDate\": null, \"reviewDate\": null, \"indexable\": true, \"smallImage\": false, \"smallImageId\": 0, \"smallImageSource\": 1, \"smallImageURL\": \"\", \"lastPublishDate\": null, \"status\": 0, \"statusByUserId\": 11888211, \"statusByUserName\": \"Leonardo Bruno Pimenta Melo\", \"statusDate\": \"Tue May 07 22:48:39 GMT 2024\"}"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign xmlArticle = journalArticle.g... [in template "20099#20135#10832147" in function "getCardData" at line 52, column 5] ----
1<#-- Conteúdo Web -> Templates: Site de Crise - Include de templates-->
2<#-- include "${templatesPath}/1975602" -->
3
4<#-- Conteúdo Web -> Templates: Site de Crise - Funções gerais-->
5<#include "${templatesPath}/1975398" />
6
7<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
8<#assign fileEntryService = staticUtil["com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"] />
9<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
10<#assign assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") />
11<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
12<#assign vocabularies = assetVocabularyService.getGroupVocabularies(groupId) />
13<#assign editoriaVocabulary = findVocabulary("Editorial", vocabularies) />
14
15
16
17<#function getFirstCategoryFromVocabulary entry vocabulary>
18 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", entry.getClassPK()) />
19 <#list categories as category>
20 <#assign vocabulary = assetVocabularyService.getVocabulary(category.getVocabularyId()) />
21
22 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
23 <#return category>
24 </#if>
25 </#list>
26 <#return "">
27</#function>
28
29<#assign rootCss = "card-news_" + randomNumber(4586) />
30<#assign cardMap = {} />
31
32<#-- Função para obter os dados de um card no Web Content (Journal Article) -->
33<#function getCardData entry journalArticleLocalService fileEntryService cardMap>
34
35 <#assign editoria = getFirstCategoryFromVocabulary(entry, editoriaVocabulary) />
36 <#assign editoriaId = -1 />
37 <#if editoria?has_content>
38 <#assign editoriaId = editoria.getCategoryId() />
39 </#if>
40 <#if editoriaId == -1>
41 <#return {} />
42 </#if>
43 <#if cardMap[ editoriaId?string]??>
44 <#if cardMap[editoriaId?string]?size gt 7 >
45 <#return {} />
46 </#if>
47 </#if>
48
49 <#assign journalArticle = journalArticleLocalService.getLatestArticle(entry.getClassPK()) />
50 <#assign ddmStructure = journalArticle.getDDMStructure() />
51 <#assign fieldList = getFieldListByStructure(ddmStructure) />
52 <#assign xmlArticle = journalArticle.getDocument().getRootElement() />
53 <#assign ddmStructure = journalArticle.getDDMStructure() />
54
55 <#assign imagesGroup = getNodes(getIdFromFieldName(fieldList, "Imagem de destaque da notícia"), xmlArticle) />
56 <#assign image = "" />
57 <#list imagesGroup as imageGroup >
58 <#assign image = getMediaInfo(fieldList, imageGroup, "Imagem de destaque", fileEntryService) /> />
59 </#list>
60
61 <#assign title = getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia") />
62
63 <#assign lastPublishDate = journalArticle.getDisplayDate()>
64 <#assign createDate = journalArticle.getCreateDate()>
65
66 <#assign editoria = getFirstCategoryFromVocabulary(entry, editoriaVocabulary) />
67 <#assign editoriaId = -1 />
68 <#if editoria?has_content>
69 <#assign editoriaId = editoria.getCategoryId() />
70 </#if>
71
72 <#assign review = getFieldValue(fieldList, xmlArticle, "Subtítulo") />
73
74 <#assign urlNews = "/">
75 <#if themeDisplay.getPortalURL()?contains("webserver")>
76 <#assign urlNews = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + journalArticle.getUrlTitle()>
77 <#else>
78 <#assign urlNews = "/w/" + journalArticle.getUrlTitle()>
79 </#if>
80
81 <#assign cardInfo = {"image": image,
82 "title": title,
83 "lastPublishDate": lastPublishDate,
84 "createDate" : createDate,
85 "editoriaId": editoriaId,
86 "urlNews": urlNews,
87 "review": review} />
88
89 <#if cardMap[editoriaId?string]??>
90 <#assign cardMap = cardMap + {editoriaId : cardMap[editoriaId?string] + [cardInfo]} />
91 <#else>
92 <#assign cardMap = cardMap + {editoriaId : [cardInfo]} />
93 </#if>
94
95 <#return cardInfo />
96
97</#function>
98
99
100<#macro renderCard cardData>
101 <#if !cardData["image"]??>
102 <#return />
103 </#if>
104
105 <div class="card ${rootCss}" category-id="${cardData.editoriaId}">
106 <a class="default-news-card-link" href="${cardData.urlNews}"></a>
107 <#if cardData.image.url?has_content>
108 <img class="image" src="/o/adaptive-media/image/${cardData.image.fileEntryId}/Thumbnail-300x300/image" alt="${cardData.image.alt}"/>
109 </#if>
110 <div class="news-content">
111 <div class="head">
112 <p class="date">${formatDate(cardData.lastPublishDate)}</p>
113 <h2 class="title h4">${cardData.title}</h2>
114 <div class="bar"></div>
115 </div>
116 <div class="bottom-wrapper">
117 <div class="review-container">
118 ${cardData.review}
119 </div>
120 <div class="link-container">
121 <p class="read-more">
122 <#if locale?lower_case == "pt_br"> Continuar lendo <#else> Keep reading </#if>
123 </p>
124 </div>
125 </div>
126 </div>
127 </div>
128
129</#macro>
130
131<#-- Renderizar Lista de cards -->
132<#if entries?has_content>
133 <#list entries as entry>
134 <#assign cardData = getCardData(entry journalArticleService fileEntryService cardMap) />
135 <@renderCard cardData/>
136 </#list>
137
138 <style>
139
140
141 .${rootCss} {
142 display: flex;
143 flex-direction: column;
144 width: 306px;
145 border-radius: 16px;
146 border: 1px solid var(--color-neutral-400, #EEE);
147 background: var(--color-neutral-100, #FFF);
148 margin: 0;
149 position: relative;
150 }
151
152 .${rootCss} *:not(.default-news-card-link) {
153 pointer-events: none;
154 }
155
156 .${rootCss} a.default-news-card-link {
157 position: absolute;
158 width: 100%;
159 height: 100%;
160 opacity: 0;
161 }
162
163 .${rootCss}:hover {
164 box-shadow: var(--box-shadow-neutral);
165 transition: box-shadow 300ms ease-in-out;
166 }
167
168 .${rootCss} .news-content {
169 padding: var(--space-md, 24px);
170 display: flex;
171 flex-direction: column;
172 height: 100%;
173 background: var(--color-background-card);
174 border-radius: 0 0 var(--border-radius-lg) var(--border-radius-lg);
175 }
176
177
178 .${rootCss} img {
179 background: lightgray 50% / cover no-repeat;
180 height: 170px;
181 width: 100%;
182 border-radius: 16px 16px 0 0;
183 /*transform: translateX(-1px);*/
184 object-fit: cover;
185 }
186
187 .${rootCss} .head {
188 display: flex;
189 flex-direction: column;
190 gap: var(--space-xxs, 8px);
191 }
192
193 .${rootCss} .head .date {
194 color: var(--color-neutral-800, #373737);
195 font-family: var(--font-family-base, "Petrobras Sans");
196 font-size: 14px;
197 font-style: normal;
198 font-weight: 400;
199 line-height: 160%; /* 19.2px */
200 }
201
202 .${rootCss} .head .title {
203 color: var(--color-neutral-800);
204 }
205
206 .${rootCss} .head .bar {
207 background-color: var(--color-secondary-solid-to-bright-200, #FDC82F);
208 height: 4px;
209 width: 20px;
210 margin: 12px 0 16px 0;
211 }
212
213 .${rootCss} .bottom-wrapper {
214 height: 100%;
215 display: flex;
216 flex-direction: column;
217 justify-content: space-between;
218 }
219
220 .${rootCss} .bottom-wrapper .review-container {
221 color: var(--color-neutral-800, #373737);
222 font-family: var(--font-family-base, "Petrobras Sans");
223 font-size: 16px;
224 font-style: normal;
225 font-weight: 400;
226 line-height: 160%; /* 22.4px */
227 }
228
229 .${rootCss} .bottom-wrapper .link-container {
230 flex: 0 1 auto;
231 }
232
233 .${rootCss} .bottom-wrapper .link-container .read-more {
234 color: var(--color-primary-solid-to-bright-200, var(--color-primary-medium));
235 font-family: var(--font-family-base, "Petrobras Sans");
236 font-size: 16px;
237 font-style: normal;
238 font-weight: 700;
239 line-height: 144%; /* 23.04px */
240 text-decoration-line: underline;
241 }
242
243 @media screen and (max-width: 1024px) {
244 .${rootCss} {
245 flex-direction: column;
246 /*gap: 16px;*/
247 min-width: 296px;
248 }
249
250 .${rootCss} img {
251 height: 140px;
252 }
253
254 .${rootCss} .head .date {
255 font-size: 12px;
256 }
257
258 .${rootCss} .head .title {}
259
260 .${rootCss} .head .bar {
261 width: 18px;
262 margin: 8px 0 16px 0;
263 }
264
265 .${rootCss} .review-container {
266 font-size: 14px;
267 }
268 }
269 </style>
270 <script>
271 (function() {
272 let cards = document.querySelectorAll('.${rootCss}.card');
273
274 cards.forEach((card) => {
275 const cardLink = card.querySelector('a.default-news-card-link');
276 const cardTitle = card.querySelector('.title');
277 cardLink.textContent = cardTitle.textContent;
278 });
279 })();
280 </script>
281</#if>
Mais lidos
29/01/2024
Inscrições para concurso de nível técnico terminam na próxima quarta
Continuar lendo
30/01/2024
Petrobras apoia projetos de reciclagem no Rio e na Baixada Fluminense com capacidade de reaproveitar 600 toneladas de materiais por ano
Continuar lendo
31/01/2024
Petrobras destaca transição energética e ativos rentáveis em imersão com investidores em NY
Continuar lendo
26/01/2024
Petrobras conclui primeira perfuração de poço exploratório na Margem Equatorial
Continuar lendo
30/01/2024
Petrobras amplia testes para produção de diesel com conteúdo renovável
Continuar lendo
30/01/2024
Repar bate recordes históricos de produção e vendas
Continuar lendo
Navegue por editoria
Java method "com.liferay.journal.model.impl.JournalArticleImpl.getDocument()" threw an exception when invoked on com.liferay.journal.model.impl.JournalArticleImpl object "{\"mvccVersion\": 1, \"ctCollectionId\": 0, \"uuid\": \"cbfbc2de-7326-2ecf-1686-c3124e073c72\", \"id\": 17513334, \"resourcePrimKey\": 17513214, \"groupId\": 10623376, \"companyId\": 20099, \"userId\": 11888211, \"userName\": \"Leonardo Bruno Pimenta Melo\", \"createDate\": \"Tue May 07 22:19:19 GMT 2024\", \"modifiedDate\": \"Tue May 07 22:48:39 GMT 2024\", \"externalReferenceCode\": \"fe52e503-ef10-349c-8c2d-5fdf73e4fe21\", \"folderId\": 11449535, \"classNameId\": 0, \"classPK\": 0, \"treePath\": \"/10628776/11449535/\", \"articleId\": \"17513212\", \"version\": 1.3, \"urlTitle\": \"sustentabilidade/petrobras-quer-estar-entre-as-tres-empresas-de-oleo-e-gas-mais-bem-colocadas-no-ranking-de-direitos-humanos-ate-2030\", \"DDMStructureId\": 10628772, \"DDMTemplateKey\": \"\", \"defaultLanguageId\": \"pt_BR\", \"layoutUuid\": \"\", \"displayDate\": \"Tue May 07 22:15:00 GMT 2024\", \"expirationDate\": null, \"reviewDate\": null, \"indexable\": true, \"smallImage\": false, \"smallImageId\": 0, \"smallImageSource\": 1, \"smallImageURL\": \"\", \"lastPublishDate\": null, \"status\": 0, \"statusByUserId\": 11888211, \"statusByUserName\": \"Leonardo Bruno Pimenta Melo\", \"statusDate\": \"Tue May 07 22:48:39 GMT 2024\"}"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign xmlArticle = journalArticle.g... [in template "20099#20135#11536932" in function "getCardData" at line 63, column 5] ----
1<#-- Conteúdo Web -> Templates: Site de Crise - Include de templates-->
2<#-- include "${templatesPath}/1975602" -->
3
4<#-- Conteúdo Web -> Templates: Site de Crise - Funções gerais-->
5<#include "${templatesPath}/1975398" />
6
7<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
8<#assign fileEntryService = staticUtil["com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"] />
9<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
10<#assign assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") />
11<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
12<#assign vocabularies = assetVocabularyService.getGroupVocabularies(groupId) />
13<#assign editoriaVocabulary = findVocabulary("Editorial", vocabularies) />
14<#assign mediaVocabulary = findVocabulary("Multimidia", vocabularies) />
15
16<#-- Categoria para filtrar registros para idioma em inglês -->
17<#assign PAGE_ENGLISH_CATEGORY = 12780360 >
18
19<#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')>
20<#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"]>
21<#assign assetEntryLocalServiceUtil = objectUtil("com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil").getService()>
22
23<#function getFirstCategoryFromVocabulary entry vocabulary>
24 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", entry.getClassPK()) />
25 <#list categories as category>
26 <#assign vocabulary = assetVocabularyService.getVocabulary(category.getVocabularyId()) />
27
28 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
29 <#return category>
30 </#if>
31 </#list>
32 <#return "">
33</#function>
34
35<#assign rootCss = "card-news_" + randomNumber(4586) />
36<#assign cardMap = {} />
37
38<#-- Função para obter os dados de um card no Web Content (Journal Article) -->
39<#function getCardData entry journalArticleLocalService fileEntryService cardMap>
40
41 <#assign editoria = getFirstCategoryFromVocabulary(entry, editoriaVocabulary) />
42 <#assign editoriaId = -1 />
43 <#if editoria?has_content>
44 <#assign editoriaId = editoria.getCategoryId() />
45 </#if>
46 <#if editoriaId == -1>
47 <#return {} />
48 </#if>
49 <#if cardMap[ editoriaId?string]??>
50 <#if cardMap[editoriaId?string]?size gt 7 >
51 <#return {} />
52 </#if>
53 </#if>
54
55 <#assign journalArticle = journalArticleLocalService.getLatestArticle(entry.getClassPK()) />
56 <#assign structName = getStructName(journalArticle) />
57 <#if structName != "Agência de Notícias - Notícia">
58 <#return {}/>
59 </#if>
60
61 <#assign ddmStructure = journalArticle.getDDMStructure() />
62 <#assign fieldList = getFieldListByStructure(ddmStructure) />
63 <#assign xmlArticle = journalArticle.getDocument().getRootElement() />
64
65
66 <#assign imagesGroup = getNodes(getIdFromFieldName(fieldList, "Imagem de destaque da notícia"), xmlArticle) />
67 <#assign image = "" />
68 <#list imagesGroup as imageGroup >
69 <#assign image = getMediaInfo(fieldList, imageGroup, "Imagem de destaque", fileEntryService) /> />
70 </#list>
71
72 <#assign title = getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia") />
73
74 <#assign lastPublishDate = journalArticle.getDisplayDate()>
75 <#assign createDate = journalArticle.getCreateDate()>
76
77 <#assign editoria = getFirstCategoryFromVocabulary(entry, editoriaVocabulary) />
78 <#assign editoriaId = -1 />
79 <#if editoria?has_content>
80 <#assign editoriaId = editoria.getCategoryId() />
81 </#if>
82
83 <#assign review = getFieldValue(fieldList, xmlArticle, "Subtítulo") />
84
85 <#assign urlNews = "/">
86 <#if themeDisplay.getPortalURL()?contains("webserver")>
87 <#assign urlNews = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + journalArticle.getUrlTitle()>
88 <#else>
89 <#assign urlNews = "/w/" + journalArticle.getUrlTitle()>
90 </#if>
91
92 <#assign cardInfo = {"image": image,
93 "title": title,
94 "lastPublishDate": lastPublishDate,
95 "createDate" : createDate,
96 "editoriaId": editoriaId,
97 "urlNews": urlNews,
98 "review": review} />
99
100 <#if cardMap[editoriaId?string]??>
101 <#assign cardMap = cardMap + {editoriaId : cardMap[editoriaId?string] + [cardInfo]} />
102 <#else>
103 <#assign cardMap = cardMap + {editoriaId : [cardInfo]} />
104 </#if>
105
106 <#return cardInfo />
107
108</#function>
109
110
111<#macro renderCard cardData>
112 <#if !cardData["image"]??>
113 <#return />
114 </#if>
115
116 <div class="card ${rootCss}" category-id="${cardData.editoriaId}">
117 <a class="filtered-news-card-link" href="${cardData.urlNews}"></a>
118 <#if cardData.image.url?has_content>
119 <img class="image" src="/o/adaptive-media/image/${cardData.image.fileEntryId}/Thumbnail-300x300/image" alt="${cardData.image.alt}"/>
120 </#if>
121 <div class="news-content">
122 <div class="head">
123 <p class="date">${formatDate(cardData.lastPublishDate)}</p>
124 <h2 class="title h4">${cardData.title}</h2>
125 <div class="bar"></div>
126 </div>
127 <div class="bottom-wrapper">
128 <div class="review-container">
129 ${cardData.review}
130 </div>
131 <div class="link-container">
132 <p class="read-more" class="card-news-container">
133 <#if locale?lower_case == "pt_br"> Continuar lendo <#else> Keep reading </#if>
134 </p>
135 </div>
136 </div>
137 </div>
138 </div>
139
140</#macro>
141
142
143
144<#function getAssetEntries portalUtil assetEntryLocalServiceUtil vocabulary>
145 <#attempt >
146 <#assign groupId = themeDisplay.getScopeGroupId()>
147 <#assign companyId = themeDisplay.getCompanyId()>
148 <#assign realUserId = themeDisplay.getDefaultUserId() />
149 <#assign className = "com.liferay.journal.model.JournalArticle">
150 <#assign classNameId = portalUtil.getClassNameId(className)>
151
152 <#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery') />
153 ${assetEntryQuery.setClassNameIds([classNameId]) }
154 ${assetEntryQuery.setEnd(8)}
155 <#assign notAllCategoryIds = [] />
156 <#list mediaVocabulary.getCategories() as category>
157 <#assign notAllCategoryIds += [category.getCategoryId()] />
158 </#list>
159 ${assetEntryQuery.setNotAllCategoryIds(notAllCategoryIds)}
160
161 <#assign allAssets = []/>
162 <#list vocabulary.getCategories() as category>
163 <#if locale?lower_case == "pt_br">
164 ${assetEntryQuery.setAllCategoryIds([category.getCategoryId()])}
165 <#else>
166 ${assetEntryQuery.setAllCategoryIds([category.getCategoryId(), PAGE_ENGLISH_CATEGORY])}
167 </#if>
168 <#assign ents = assetEntryLocalServiceUtil.getEntries(assetEntryQuery) />
169 <#assign allAssets = allAssets + ents />
170 </#list>
171
172 <#return allAssets />
173 <#recover >
174 <#return [] />
175 </#attempt>
176</#function>
177
178
179
180<#assign allAssets = getAssetEntries(portalUtil, assetEntryLocalServiceUtil, editoriaVocabulary) />
181
182<#-- Renderizar Lista de cards -->
183<#if allAssets?has_content>
184
185 <#list allAssets?sort_by("publishDate")?reverse as assetEntry>
186 <#assign cardData = getCardData(assetEntry journalArticleService fileEntryService cardMap) />
187 <@renderCard cardData/>
188 </#list>
189
190 <style>
191 .${rootCss} {
192 display: flex;
193 flex-direction: column;
194 width: 306px;
195 border-radius: 16px;
196 border: 1px solid var(--color-neutral-400, #EEE);
197 background: var(--color-neutral-100, #FFF);
198 margin: 0;
199 position: relative;
200 }
201
202 .${rootCss} *:not(.filtered-news-card-link) {
203 pointer-events: none;
204 }
205
206 .${rootCss} a.filtered-news-card-link {
207 position: absolute;
208 width: 100%;
209 height: 100%;
210 opacity: 0;
211 }
212
213 .${rootCss}:hover {
214 box-shadow: var(--box-shadow-neutral);
215 transition: box-shadow 300ms ease-in-out;
216 }
217
218 .${rootCss} .news-content {
219 border-radius: 0 0 var(--border-radius-lg) var(--border-radius-lg);
220 background: var(--color-background-card);
221 padding: var(--space-md, 24px);
222 display: flex;
223 flex-direction: column;
224 height: 100%;
225 }
226
227 .${rootCss} img {
228 background: lightgray 50% / cover no-repeat;
229 height: 170px;
230 width: 100%;
231 border-radius: 16px 16px 0 0;
232 /*transform: translateX(-1px);*/
233 object-fit: cover;
234 }
235
236 .${rootCss} .head {
237 display: flex;
238 flex-direction: column;
239 gap: var(--space-xxs, 8px);
240 }
241
242 .${rootCss} .head .date {
243 color: var(--color-neutral-800, #373737);
244 font-family: var(--font-family-base, "Petrobras Sans");
245 font-size: 14px;
246 font-style: normal;
247 font-weight: 400;
248 line-height: 160%; /* 19.2px */
249 }
250
251 .${rootCss} .head .title {
252 color: var(--color-neutral-800);
253 }
254
255 .${rootCss} .head .bar {
256 background-color: var(--color-secondary-medium, #FDC82F);
257 height: 4px;
258 width: 20px;
259 margin: 12px 0 16px 0;
260 }
261
262 .${rootCss} .bottom-wrapper {
263 height: 100%;
264 display: flex;
265 flex-direction: column;
266 justify-content: space-between;
267 }
268
269 .${rootCss} .bottom-wrapper .review-container {
270 color: var(--color-neutral-800, #373737);
271 font-family: var(--font-family-base, "Petrobras Sans");
272 font-size: 16px;
273 font-style: normal;
274 font-weight: 400;
275 line-height: 160%; /* 22.4px */
276 }
277
278 .${rootCss} .bottom-wrapper .link-container {
279 flex: 0 1 auto;
280 }
281
282 .${rootCss} .bottom-wrapper .link-container .read-more {
283 color: var(--color-primary-solid-to-bright-200, var(--color-primary-medium));
284 font-family: var(--font-family-base, "Petrobras Sans");
285 font-size: 16px;
286 font-style: normal;
287 font-weight: 700;
288 line-height: 144%; /* 23.04px */
289 text-decoration-line: underline;
290 }
291
292
293 @media screen and (max-width: 1024px) {
294 .${rootCss} {
295 flex-direction: column;
296 gap: 16px;
297 min-width: 296px;
298 }
299
300 .${rootCss} img {
301 height: 140px;
302 }
303
304 .${rootCss} .head .date {
305 font-size: 12px;
306 }
307
308 .${rootCss} .head .title {
309 }
310
311 .${rootCss} .head .bar {
312 width: 18px;
313 margin: 8px 0 16px 0;
314 }
315
316 .${rootCss} .review-container {
317 font-size: 14px;
318 }
319 }
320 </style>
321 <script>
322 (function() {
323 const cards = document.querySelectorAll('.${rootCss}.card');
324
325 cards.forEach((card) => {
326 const cardLink = card.querySelector('a.filtered-news-card-link');
327 const cardTitle = card.querySelector('.title');
328 cardLink.textContent = cardTitle.textContent;
329 });
330 })();
331 </script>
332</#if>
Navegue por conteúdo multimídia
Discurso da ministra da Cultura, Margareth Menezes, no lançamento da Seleção + ...
Publicado em 26/02/2024 às 13:09:00
Vídeo
Discurso do presidente da República, Luiz Inácio Lula da Silva, no lançament + ...
Publicado em 24/02/2024 às 01:32:00
Vídeo
Discurso do presidente da Petrobras, Jean Paul Prates, no lançamento da Sele + ...
Publicado em 24/02/2024 às 01:29:00
Vídeo
Seleção Petrobras Cultural-Novos Eixos - Gerente setorial de Patrocínio Cult + ...
Publicado em 23/02/2024 às 19:28:00
Vídeo
Utilize nossa busca para encontrar o que procura
Faça uma busca:
Buscar
Mais pesquisados
Preço dos combustíveis
Pré-Sal
Time Petrobras
SAC Petrobras
0800 728 9001
Acesso à Informação
Portal da Transparência- Assessoria de Imprensa
- Categorias
- Acesse também
© Copyright Petrobras 2024. Todos os direitos reservados.
Canais
Idioma
Acessibilidade
Busca
Faça uma busca:
Buscar
Mais pesquisados
Preço dos combustíveis
Pré-Sal
Time Petrobras
Acessibilidade
Alto-Contraste
Desligado
Ligado
Texto Grande
Desligado
Ligado
Idioma:
Selecione um idioma: