Todos os Projetos
Filtros
Todos os projetos
Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> item[0].getDDMFormField().getDDMFormFieldOptions().getOptionLabels(item[0].getValue().getString(locale)) [in template "20096#20121#46430" at line 91, column 49]
----
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 impactInitiative = item[0].ge... [in template "20096#20121#46430" at line 91, column 21]
----
1<#if entries?has_content>
2 <#assign roleLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.RoleLocalService")/>
3 <#assign _journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
4 <#assign _assetEntryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
5 <#assign _assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6 <#assign projectResultList = [] />
7 <#assign vocabularies = [] />
8 <#assign vocabulariesMap = [] />
9
10
11 <#assign starBorderURL = "/documents/d/guest/star_border" />
12 <#assign starURL = "/documents/d/guest/star" />
13
14 <#list entries as doc>
15 <#assign curEntry=_assetEntryLocalService.fetchEntry("com.liferay.journal.model.JournalArticle", doc.getClassPK())>
16 <#assign createDate = curEntry.getCreateDate()?string("yyyy-MM-dd") />
17 <#assign modifiedDate = curEntry.getModifiedDate()?string("yyyy-MM-dd") />
18 <#assign assetRenderer = curEntry.getAssetRenderer() />
19 <#assign linkToWebContentDisplayPage ="/w/" + assetRenderer.getUrlTitle() />
20 <#assign DDMFormFieldValuesMap = assetRenderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap() />
21 <#assign DDMFormFieldsReferencesMap = assetRenderer.article.DDMStructure.DDMForm.getDDMFormFieldsReferencesMap(true) />
22 <#assign categories = curEntry.getCategories() />
23
24 <!-- pegando as categorias e filtrando pela vocabularyName Segmentos e status-->
25
26 <#assign segmentsCategories = [] />
27 <#assign projetcStatus = "" />
28 <#list categories as cat>
29 <#assign vocabularyId = cat.vocabularyId />
30 <#assign assetVocabulary = _assetVocabularyService.getVocabulary(vocabularyId) />
31 <#if vocabularies?size == 0>
32 <#assign vocabularies += [assetVocabulary.name] />
33 <#assign vocabulariesMap += [assetVocabulary] />
34 <#else>
35 <#if !(vocabularies?seq_contains(assetVocabulary.name))>
36 <#assign vocabularies += [assetVocabulary.name] />
37 <#assign vocabulariesMap += [assetVocabulary] />
38 </#if>
39 </#if>
40 <#if assetVocabulary.name?contains("segment")>
41 <#assign segmentsCategories = segmentsCategories + [cat]>
42 </#if>
43 <#if assetVocabulary.name == "status">
44 <#assign projetcStatus = cat.getTitle(locale)>
45 </#if>
46 </#list>
47
48 <!-- Pegando ano de Entrega -->
49 <#assign yearDeliveryField=DDMFormFieldsReferencesMap['yearDelivery'].name />
50 <#assign yearDelivery=DDMFormFieldValuesMap[yearDeliveryField] [0] />
51 <#assign yearDeliveryOptionSelected=yearDelivery.getValue().getString(locale)?replace("[", "")?replace("]", "" )?replace('"', '' ) />
52 <#assign yearDeliveryOptionValue = yearDelivery.getDDMFormField().getDDMFormFieldOptions().getOptionLabels(yearDeliveryOptionSelected)!" " />
53 <#if yearDeliveryOptionValue != " ">
54 <#assign yearDeliveryOptionValue = yearDeliveryOptionValue.getString(locale) />
55 </#if>
56
57 <#assign isExclusiveContent = true />
58 <#assign exclusiveArticle =DDMFormFieldsReferencesMap['exclusiveContent'].name />
59 <#assign exclusiveArticleValue=DDMFormFieldValuesMap[exclusiveArticle][0].getValue().getString(locale)!"" />
60 <#if exclusiveArticleValue == "Opção90522000">
61 <#assign isExclusiveContent = false />
62 </#if>
63
64 <#assign article = _journalArticleLocalService.getLatestArticle(curEntry.getClassPK()) />
65
66 <!-- Pegando trimestre de Entrega -->
67 <#assign quarterDeliveryField=DDMFormFieldsReferencesMap['quarterDelivery'].name />
68 <#assign quarterDelivery=DDMFormFieldValuesMap[quarterDeliveryField] [0] />
69 <#assign quarterDeliveryOptionSelected=quarterDelivery.getValue().getString(locale)?replace("[", "")?replace("]", "" )?replace('"', '' ) />
70 <#assign quarterDeliveryOptionValue = quarterDelivery.getDDMFormField().getDDMFormFieldOptions().getOptionLabels(quarterDeliveryOptionSelected)!"" />
71 <#if quarterDeliveryOptionValue != "">
72 <#assign quarterDeliveryOptionValue = quarterDeliveryOptionValue.getString(locale) />
73 </#if>
74
75 <!-- Pegando Resumo do card -->
76 <#assign cardSummaryField = DDMFormFieldsReferencesMap['cardSummary'].name />
77 <#assign cardSummary = DDMFormFieldValuesMap[cardSummaryField][0].getValue().getString(locale) />
78 <!-- pegando imagem do card -->
79 <#assign urlImageValue = "" />
80 <#assign altImageValue = "" />
81 <#assign featuredImageField = DDMFormFieldsReferencesMap['featuredImage'].name />
82 <#assign featuredImage = DDMFormFieldValuesMap[featuredImageField][0].getValue().getString(locale)!"{}" />
83 <!-- pegando o grupo de campos -->
84 <#assign brazilLocale = localeUtil.fromLanguageId("pt_BR")>
85 <#assign impactFieldGroup = DDMFormFieldsReferencesMap['impactFieldGroup'].name />
86 <#assign impactFieldGroupSelect = DDMFormFieldValuesMap[impactFieldGroup][0] />
87 <#list impactFieldGroupSelect.getNestedDDMFormFieldValuesMap() as key,item>
88 <#if item[0].getDDMFormField().getFieldReference()=="impactInitiative">
89 <#assign impactInitiative = item[0].getValue().getString(locale)!"" />
90 <#if impactInitiative?has_content>
91 <#assign impactInitiative = item[0].getDDMFormField().getDDMFormFieldOptions().getOptionLabels(item[0].getValue().getString(locale)).getString(locale) />
92 <!-- Verifica se impactInitiative vem vazio com locale en_US -->
93 <#else>
94 <#assign impactInitiative = item[0].getValue().getString(brazilLocale)!"" />
95 <#if impactInitiative?has_content>
96 <#assign impactInitiative = item[0].getDDMFormField().getDDMFormFieldOptions().getOptionLabels(item[0].getValue().getString(brazilLocale)).getString(brazilLocale) />
97 </#if>
98 </#if>
99 </#if>
100
101 </#list>
102 <!-- Peganddo path da imagem -->
103 <#if featuredImage !="{}">
104 <#assign cleanedJson = featuredImage?replace("\\u","\\\\u")>
105 <#assign featuredImageEvaluated = cleanedJson?eval>
106 <#assign altImageValue = featuredImageEvaluated.alt!"">
107 <#assign urlImageValue = featuredImageEvaluated.url!"">
108 </#if>
109 <#assign segmentsProductCategories = "" />
110 <#list segmentsCategories as segCat>
111 <#if (segmentsCategories?size) == 1>
112 <#assign segmentsProductCategories=segmentsCategories[0].getTitle(locale) />
113 <#elseif (segmentsCategories?size) == 2>
114 <#list segmentsCategories as segCat>
115 <#if segCat?is_last>
116 <#assign segmentsProductCategories = "${segmentsProductCategories} e ${segCat.getTitle(locale)}" />
117 <#else>
118 <#assign segmentsProductCategories = "${segCat.getTitle(locale)}" />
119 </#if>
120 </#list>
121 <#elseif ((segmentsCategories?size)>= 3) >
122 <#list segmentsCategories as segCat>
123 <#if segCat?is_first>
124 <#assign segmentsProductCategories = "${segCat.getTitle(locale)}" />
125 <#elseif segCat_index == 1>
126 <#assign segmentsProductCategories = "${segmentsProductCategories}, ${segCat.getTitle(locale)}" />
127 <#elseif segCat_index == 2>
128 <#assign segmentsProductCategories = "${segmentsProductCategories} e ${segCat.getTitle(locale)}" />
129 <#break>
130 </#if>
131 </#list>
132 </#if>
133 </#list>
134
135 <#assign projectResult={ "id" :"${curEntry.getClassPK()}","title" :"${curEntry.getTitle(locale)}", "cardSummary"
136 :"${cardSummary}", "impactInitiative" :"${impactInitiative}", "date"
137 :"${quarterDeliveryOptionValue}${yearDeliveryOptionValue?substring(2,4)}", "status"
138 :"${projetcStatus}", "segmentsProductCategories"
139 :"${segmentsProductCategories}", "modifiedDate" :"${modifiedDate}", "createDate" :"${createDate}",
140 "url": "${linkToWebContentDisplayPage}", "isExclusiveContent": isExclusiveContent } />
141
142 <#assign projectResultList +=[projectResult] />
143 </#list>
144
145 <section class="b3-all-projects-list">
146 <#list projectResultList as curEntry>
147
148 <#assign currentDate = .now >
149 <#assign daysLimit = 90 >
150 <#assign createDateDiffDays = currentDate?string("yyyy-MM-dd")?replace("-","")?number - curEntry.createDate?replace("-","")?number>
151 <#assign modifiedDateDiffDays = currentDate?string("yyyy-MM-dd")?replace("-","")?number - curEntry.modifiedDate?replace("-","")?number>
152
153 <div class="swiper-slide b3-more-projects__wrapper__card b3-ga-card">
154 <a class="d-flex flex-column h-100 b3-ga-button" href="${curEntry.url}">
155 <div class="card__header">
156 <div class="card__header__wrapper">
157 <div class="card__header__header">
158 <#if (curEntry.impactInitiative?contains("Informativo") || curEntry.impactInitiative?contains("Informative")) >
159 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
160 xmlns="http://www.w3.org/2000/svg">
161 <mask id="mask0_13865_92987${curEntry_index}a" style="mask-type: alpha" maskUnits="userSpaceOnUse"
162 x="2" y="2" width="20" height="20">
163 <path fill-rule="evenodd" clip-rule="evenodd"
164 d="M12 3.6C16.6 3.6 20.4 7.4 20.4 12C20.4 16.6 16.6 20.4 12 20.4C7.4 20.4 3.6 16.6 3.6 12C3.6 7.4 7.4 3.6 12 3.6ZM12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2ZM12.8002 7.2002H11.2002V12.8002H12.8002V7.2002ZM11.2002 15.2002H12.8002V16.8002H11.2002V15.2002Z"
165 fill="black" />
166 </mask>
167 <g mask="url(#mask0_13865_92987${curEntry_index}a)">
168 <rect width="24" height="24" fill="#666E7A" />
169 </g>
170 </svg>
171
172 <p>${locale?contains("en")?then("Informative", "Informativo" )}</p>
173
174 <#elseif (curEntry.impactInitiative?contains("Opcional") || curEntry.impactInitiative?contains("Optional"))>
175 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
176 xmlns="http://www.w3.org/2000/svg">
177 <mask id="mask0_13865_93093${curEntry_index}b" style="mask-type:alpha"
178 maskUnits="userSpaceOnUse" x="2" y="2" width="20" height="20">
179 <path fill-rule="evenodd" clip-rule="evenodd"
180 d="M20.4 12C20.4 7.4 16.6 3.6 12 3.6C7.4 3.6 3.6 7.4 3.6 12C3.6 16.6 7.4 20.4 12 20.4C16.6 20.4 20.4 16.6 20.4 12ZM2 12C2 6.5 6.5 2 12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12ZM17 12C17 12.5523 16.5523 13 16 13C15.4477 13 15 12.5523 15 12C15 11.4477 15.4477 11 16 11C16.5523 11 17 11.4477 17 12ZM12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13ZM9 12C9 12.5523 8.55228 13 8 13C7.44772 13 7 12.5523 7 12C7 11.4477 7.44772 11 8 11C8.55228 11 9 11.4477 9 12Z"
181 fill="black" />
182 </mask>
183 <g mask="url(#mask0_13865_93093${curEntry_index}b)">
184 <rect width="24" height="24" fill="#666E7A" />
185 </g>
186 </svg>
187
188 <p>${locale?contains("en")?then("Optional", "Opcional" )}</p>
189
190 <#elseif (curEntry.impactInitiative?contains("Mandatório") || curEntry.impactInitiative?contains("Mandatory"))>
191 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
192 xmlns="http://www.w3.org/2000/svg">
193 <mask id="mask0_13865_92987${curEntry_index}c" style="mask-type: alpha"
194 maskUnits="userSpaceOnUse" x="2" y="2" width="20" height="20">
195 <path fill-rule="evenodd" clip-rule="evenodd"
196 d="M12 3.6C16.6 3.6 20.4 7.4 20.4 12C20.4 16.6 16.6 20.4 12 20.4C7.4 20.4 3.6 16.6 3.6 12C3.6 7.4 7.4 3.6 12 3.6ZM12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2ZM12.8002 7.2002H11.2002V12.8002H12.8002V7.2002ZM11.2002 15.2002H12.8002V16.8002H11.2002V15.2002Z"
197 fill="black" />
198 </mask>
199 <g mask="url(#mask0_13865_92987${curEntry_index}c)">
200 <rect width="24" height="24" fill="#666E7A" />
201 </g>
202 </svg>
203 <p>
204 ${locale?contains("en")?then("Mandatory", "Mandatório")}
205 </p>
206 </#if>
207 </div>
208 <#if curEntry.isExclusiveContent>
209 <div class="card__header__header exclusive__tag">
210 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
211 <mask id="mask0_17642_41070" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="1" width="16"
212 height="21">
213 <path fill-rule="evenodd" clip-rule="evenodd"
214 d="M17.9992 8.2002C18.9992 8.2002 19.7992 9.0002 19.7992 10.0002V20.0002C19.7992 21.0002 18.9992 21.8002 17.9992 21.8002H5.99922C4.99922 21.8002 4.19922 21.0002 4.19922 20.0002V10.0002C4.19922 9.0002 4.99922 8.2002 5.99922 8.2002H14.9992H15.1992V8.0002V6.0002C15.1992 4.2002 13.7992 2.8002 11.9992 2.8002C10.2992 2.8002 8.89922 4.1002 8.79922 5.8002H7.19922C7.29922 3.2002 9.39922 1.2002 11.9992 1.2002C14.5992 1.2002 16.7992 3.4002 16.7992 6.0002V8.0002V8.2002H16.9992H17.9992ZM18.1992 20.0002V10.0002V9.8002H17.9992H5.99922H5.79922V10.0002V20.0002V20.2002H5.99922H17.9992H18.1992V20.0002ZM13.7992 15.0002C13.7992 15.9943 12.9933 16.8002 11.9992 16.8002C11.0051 16.8002 10.1992 15.9943 10.1992 15.0002C10.1992 14.0061 11.0051 13.2002 11.9992 13.2002C12.9933 13.2002 13.7992 14.0061 13.7992 15.0002Z"
215 fill="black" />
216 </mask>
217 <g mask="url(#mask0_17642_41070)">
218 <rect width="24" height="24" fill="#666E7A" />
219 </g>
220 </svg>
221 <p>${locale?contains("en")?then("Exclusive", "Exclusivo" )}</p>
222 </div>
223 </#if>
224 </div>
225 <#if themeDisplay.isSignedIn()>
226 <div class="star star-filled b3-ga-button" data-project-id="${curEntry.id}" favorite="true">
227 <img src="${starURL}"
228 alt="icone de circulo com uma estrela no centro" />
229 </div>
230 </#if>
231 </div>
232 <div class="card__body">
233 <p>
234 ${curEntry.segmentsProductCategories}
235 </p>
236 <p class="body-lg b3-ga-card-title">
237 ${curEntry.title}
238 </p>
239 <p class="body-xs">
240 <#if (isExclusiveContent?? && isExclusiveContent && themeDisplay.isSignedIn()) || !isExclusiveContent>
241 ${curEntry.cardSummary}
242 </#if>
243 </p>
244 </div>
245 <#if curEntry.isExclusiveContent?? && curEntry.isExclusiveContent && !themeDisplay.isSignedIn()>
246 <div class="card__bottom">
247 <img src="/documents/d/guest/card-busca-conteudo-exclusivo" alt="Conteúdo não acessível por ser exclusivo para clientes." style="margin-right: 24px;"/>
248 </div>
249 <#else>
250 <div class="card__bottom">
251 <div class="date body-text">
252 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
253 xmlns="http://www.w3.org/2000/svg">
254 <mask id="mask0_13865_93015" style="mask-type: alpha" maskUnits="userSpaceOnUse"
255 x="3" y="1" width="18" height="20">
256 <path fill-rule="evenodd" clip-rule="evenodd"
257 d="M20.8002 4.8C20.8002 3.8 20.0002 3 19.0002 3H18.0002H17.8002V2.8V1H16.2002V2.8V3H16.0002H8.0002H7.8002V2.8V1H6.2002V2.8V3H6.0002H5.0002C4.0002 3 3.2002 3.8 3.2002 4.8V18.8C3.2002 19.8 4.0002 20.6 5.0002 20.6H19.0002C20.0002 20.6 20.8002 19.8 20.8002 18.8V4.8ZM19.2002 8.8V18.8V19H19.0002H5.0002H4.8002V18.8V8.8V8.6H5.0002H19.0002H19.2002V8.8ZM19.2002 4.8V6.8V7H19.0002H5.0002H4.8002V6.8V4.8V4.6H5.0002H19.0002H19.2002V4.8ZM12.8002 10.6997H11.2002V12.2997H12.8002V10.6997ZM7.2002 14.7998V16.3998H8.8002V14.7998H7.2002ZM15.2002 10.6997H16.8002V12.2997H15.2002V10.6997ZM7.2002 10.6997V12.2997H8.8002V10.6997H7.2002ZM11.2002 14.7998H12.8002V16.3998H11.2002V14.7998ZM15.2002 14.7998H16.8002V16.3998H15.2002V14.7998Z"
258 fill="black" />
259 </mask>
260 <g mask="url(#mask0_13865_93015)">
261 <rect width="24" height="24" fill="#0063DE" />
262 </g>
263 </svg>
264 <span>
265 ${locale?contains("en")?then("Date: ${curEntry.date?replace('T', 'Q')}",
266 "Data: ${curEntry.date}")}
267 </span>
268 </div>
269 <div class="update">
270 <#if createDateDiffDays <= daysLimit>
271 <div class="circleNewProject"></div>
272 <p class="text__body--small">
273 ${locale?contains("en")?then("New Project", "Novo Projeto")}
274 </p>
275 <#elseif (createDateDiffDays > daysLimit && modifiedDateDiffDays > daysLimit) >
276 <#if curEntry.status==locale?contains("en")?then("In Progress", "Em execução" )>
277 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
278 xmlns="http://www.w3.org/2000/svg">
279 <mask id="mask0_13865_93018" style="mask-type:alpha"
280 maskUnits="userSpaceOnUse" x="2" y="2" width="20" height="20">
281 <path fill-rule="evenodd" clip-rule="evenodd"
282 d="M6.54134 3.56373V2.06427H2V21.9998H6.54134V20.4954H3.47207V3.56373H6.54134Z"
283 fill="white" />
284 <path fill-rule="evenodd" clip-rule="evenodd"
285 d="M17.4546 20.4905V21.9997H22V2H17.4546V3.50428H20.5264V20.4905H17.4546Z"
286 fill="white" />
287 </mask>
288 <g mask="url(#mask0_13865_93018)">
289 <rect width="24" height="24" fill="#0063DE" />
290 </g>
291 </svg>
292 <#elseif curEntry.status==locale?contains("en")?then("Deprioritezed", "Despriorizado" )>
293 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
294 xmlns="http://www.w3.org/2000/svg">
295 <mask id="mask0_16128_15636" style="mask-type:alpha"
296 maskUnits="userSpaceOnUse" x="2" y="6" width="20" height="12">
297 <path
298 d="M21.8008 12.5L19.9008 14.4L19.7008 14.6L19.6008 14.4L13.4008 8.30005L9.60078 12.1L9.40078 12.3L9.30078 12.1L3.40078 6.30005L2.30078 7.40005L9.40078 14.5L13.3008 10.7L13.4008 10.5L13.6008 10.7L18.4008 15.6L18.6008 15.7L18.4008 15.9L16.5008 17.8H21.8008V12.5Z"
299 fill="black" />
300 </mask>
301 <g mask="url(#mask0_16128_15636)">
302 <rect width="24" height="24" fill="#0063DE" />
303 </g>
304 </svg>
305 <#elseif curEntry.status==locale?contains("en")?then("Finished", "Concluído" )>
306 <svg width="25" height="24" viewBox="0 0 25 24" fill="none"
307 xmlns="http://www.w3.org/2000/svg">
308 <mask id="mask0_17645_44046" style="mask-type:alpha"
309 maskUnits="userSpaceOnUse" x="4" y="5" width="18"
310 height="14">
311 <path
312 d="M4.03369 13.4L9.33369 18.7L21.0337 7.00002L19.9337 5.90002L9.43369 16.3L9.33369 16.5L9.23369 16.3L5.13369 12.3L4.03369 13.4Z"
313 fill="black" />
314 </mask>
315 <g mask="url(#mask0_17645_44046)">
316 <rect x="0.333496" width="24" height="24" fill="#008750" />
317 </g>
318 </svg>
319 </#if>
320 <#if curEntry.status==locale?contains("en")?then("Finished", "Concluído" )>
321 <p class="text__body--small check-color">
322 ${curEntry.status}
323 </p>
324 <#else>
325 <p class="text__body--small">
326 ${curEntry.status}
327 </p>
328 </#if>
329 <#elseif modifiedDateDiffDays <= daysLimit >
330 <div class="circleNewUpdate"></div>
331 <p class="text__body--small ">
332 ${locale?contains("en")?then("New update", "Nova Atualização")}
333 </p>
334 </#if>
335 </div>
336 </div>
337</#if>
338 </a>
339 </div>
340
341 </#list>
342 </section>
343
344 <#assign url = themeDisplay.getURLCurrent() />
345 <#if !url?contains("all") && !url?contains("todos") && !url?contains("estudos") && !url?contains("studies")>
346 <a href='${locale?contains("en")?then("/all-projects", "/todos-os-projetos")}' class="b3-more-projects__wrapper__btn button-md mb-4 b3-ga-button mt-1">
347 ${locale?contains("en")?then("VIEW ALL PROJECTS", "VER TODOS OS PROJETOS")}
348 </a>
349 </#if>
350
351</#if>
352
353
354<style>
355 .card__header__wrapper {
356 display: flex;
357 gap: 0.375rem;
358 }
359
360 .b3-all-projects-list.container-fluid.container-fluid-max-xl {
361 max-width: 79.125rem;
362 margin: auto;
363 padding: 0;
364 margin-bottom: 2.25rem;
365 }
366
367 .b3-more-projects__wrapper__card {
368 border-radius: 0.375rem;
369 border: 1px solid var(--bg-gray-2, #E3E5E7);
370 background: var(--white, #FFF);
371 padding: 1.5rem;
372 flex: 1;
373 flex: 1 0 calc(33.333% - (var(--spacer-4) + var(--spacer-6)));
374 width: 25.5rem;
375 height: 19.25rem;
376 }
377
378 .b3-more-projects__wrapper__card .card__header {
379 display: flex;
380 align-items: center;
381 justify-content: space-between;
382 position: relative;
383 }
384
385 .b3-more-projects__wrapper__card .card__header .star-border {
386 border-radius: 24px;
387 border: solid 1px #0063de;
388 padding: 0.375rem;
389 }
390
391 .b3-more-projects__wrapper__card .card__header .star-filled {
392 background-color: #00B0E626;
393 border-radius: 24px;
394 padding: 0.4375rem;
395 }
396
397 .b3-more-projects__wrapper__card .card__header .card__header__header {
398 display: flex;
399 align-items: center;
400 position: relative;
401 z-index: 1;
402 padding: 0 0.75rem;
403 width: max-content;
404 }
405
406 .card__header .card__header__icon-mobile {
407 display: none;
408 }
409
410 .b3-more-projects__wrapper__card .card__header p {
411 color: var(--text-text-light, #666E7A);
412 font-weight: 700;
413 font-size: 12px;
414 text-transform: uppercase;
415 margin: 0;
416 margin-left: 0.375rem;
417 }
418
419 .b3-more-projects__wrapper__card a {
420 text-decoration: none;
421 }
422
423 .card__header__header::before {
424 content: '';
425 border-radius: 36px;
426 background: var(--bg-gray-1, #F6F6F7);
427 display: flex;
428 height: 1.875rem;
429 position: absolute;
430 z-index: -1;
431 padding: var(--spacer-1) var(--spacer-2);
432 width: 100%;
433 left: 0;
434 }
435
436 .b3-more-projects__wrapper__card .card__body {
437 margin-top: 1.5rem;
438 display: flex;
439 flex-direction: column;
440 gap: 0.75rem;
441 margin-bottom: 0.75rem;
442 }
443
444 .b3-more-projects__wrapper__card .card__body>p {
445 margin: 0;
446 }
447
448 .b3-more-projects__wrapper__card .card__body p:nth-child(1) {
449 color: var(--text-emphasis-light, #40444D);
450 line-height: 120%;
451 letter-spacing: 0.031rem;
452 text-transform: uppercase;
453 }
454
455 .b3-more-projects__wrapper__card .card__body p:nth-child(2) {
456 color: var(--text-emphasis-light, #40444D);
457 line-height: 150%;
458 overflow: hidden;
459 text-overflow: ellipsis;
460 display: -webkit-box;
461 -webkit-line-clamp: 2;
462 -webkit-box-orient: vertical;
463 }
464
465 .b3-more-projects__wrapper__card .card__body p:nth-child(3) {
466 color: var(--text-light, #666E7A);
467 line-height: 183.333%;
468 overflow: hidden;
469 text-overflow: ellipsis;
470 display: -webkit-box;
471 -webkit-line-clamp: 3;
472 -webkit-box-orient: vertical;
473 }
474
475 .b3-more-projects__wrapper__card .card__bottom {
476 margin-top: auto;
477 display: flex;
478 justify-content: space-between;
479 align-items: center;
480 }
481
482 .card__bottom .date {
483 display: flex;
484 gap: 0.3rem;
485 color: var(--text-light, #666E7A);
486 }
487
488 .card__bottom .update {
489 display: flex;
490 align-items: center;
491 gap: 0.625rem;
492 }
493
494 .card__bottom .update p {
495 color: var(--text-light, #666E7A);
496 margin: 0;
497 white-space: nowrap;
498 }
499
500 .card__bottom .update .check-color {
501 color: var(--verde-sucesso, #008750);
502 }
503
504 .card__bottom .update .circleNewUpdate {
505 width: var(--spacer-2);
506 height: var(--spacer-2);
507 border-radius: 100%;
508 background-color: #0085BD;
509 }
510
511 .card__bottom .update .circleNewProject {
512 width: var(--spacer-2);
513 height: var(--spacer-2);
514 border-radius: 100%;
515 background-color: var(--positive-light, #008750);
516 }
517
518 .b3-more-projects__wrapper__btn {
519 display: none;
520 }
521
522 .b3-more-projects__wrapper__btn {
523 display: flex;
524 width: 17rem;
525 padding: 0.4375rem 1rem;
526 justify-content: center;
527 align-items: center;
528 gap: var(--spacer-2, 12px);
529 border-radius: 100px;
530 margin: 0 auto;
531 text-transform: uppercase;
532 line-height: 1.375rem;
533 grid-area: 4 / 2;
534 background: var(--amarelo-warning, #FFD862);
535 color: var(--brand-color-1, #002C63);
536 }
537
538 .b3-more-projects__wrapper__btn:hover,
539 .b3-more-projects__wrapper__btn:active {
540 background: var(--interaction-dark-hover, #FFE8A1);
541 text-decoration: none;
542 color: var(--brand-color-1, #002C63);
543 }
544
545 @media screen and (max-width: 768px) {
546 .b3-more-projects {
547 padding: 0;
548 gap: 0;
549 }
550
551 .b3-more-projects .b3-more-projects__title {
552 padding: var(--spacer-6) var(--spacer-6) 0;
553 text-align: left;
554 font-size: 1.875rem;
555 }
556
557 .card__header .card__header__icon-mobile {
558 display: block;
559 }
560
561 .b3-more-projects .b3-more-projects__wrapper .b3-more-projects__wrapper__card {
562 flex: none;
563 flex: 1 0 calc(80% - (var(--spacer-2) + var(--spacer-4)));
564 }
565
566 .b3-more-projects__wrapper__card .card__bottom {
567 flex-direction: column;
568 gap: 0.875rem;
569 align-items: flex-start;
570 }
571
572 .b3-more-projects__wrapper__btn {
573 border: 1px solid var(--brand-color-2, #0063DE);
574 color: var(--brand-color-2, #0063DE);
575 background-color: var(--white, #FFF);
576 grid-area: unset;
577 }
578
579 .b3-more-projects__wrapper__btn:hover,
580 .b3-more-projects__wrapper__btn:active {
581 border-radius: 100px;
582 border: 1px solid var(--brand-color-2, #0063DE);
583 background: var(--hover-background-color, #00b0e633);
584 text-decoration: none;
585 color: var(--brand-color-2, #0063DE);
586 }
587 }
588
589 .b3-all-projects-list {
590 display: grid;
591 grid-template-columns: 1fr 1fr 1fr;
592 margin: var(--spacer-4) 0;
593 gap: var(--spacer-4);
594 max-width: 100%;
595 }
596
597 .b3-all-projects-list .card__header-grid-mobile {
598 display: none;
599 }
600
601 @media screen and (max-width: 468px) {
602 .b3-all-projects-list {
603 grid-template-columns: repeat(auto-fit, minmax(100%, 1fr));
604 margin: var(--spacer-4);
605 }
606
607 .b3-all-projects-list .card__header-grid-mobile {
608 display: block;
609 }
610
611 .b3-more-projects__wrapper__card {
612 width: 17rem;
613 margin: auto;
614 height: auto;
615 }
616
617 .b3-more-projects__wrapper__card .card__header {
618 align-items: flex-start;
619 gap: 0.5625rem;
620 }
621
622 .card__header__wrapper {
623 gap: 0.75rem;
624 flex-direction: column;
625 }
626
627 }
628</style>