Project Tags:

OTC

Completed

OTC Derivatives

Others

Technical details

  • Catalog changes

    N/A

  • Main systems

    N/A

  • Main related functions

    N/A

  • Certification roadmap

    N/A

  • What is the Sinacor version?

    N/A

An error occurred while processing the template.
The following has evaluated to null or missing:
==> item[0].getDDMFormField().getDDMFormFieldOptions().getOptionLabels(item[0].getValue().getString(locale))  [in template "20096#20121#90970" at line 110, 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#90970" at line 110, column 21]
----
1<#if entries?size != 0 > 
2    <#assign assetLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3    <#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")/> 
4<#assign roleLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.RoleLocalService")/> 
5    <#assign resourcePermissionLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ResourcePermissionLocalService") /> 
6    <#assign _journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
7 
8    <#assign url = currentURL> 
9    <#assign assetEntryIdIndex = url?index_of("assetEntryId=") + 13> 
10    <#assign assetEntryId = url?substring(assetEntryIdIndex)> 
11 
12    <#assign displayPageAssetEntry = assetLocalService.getAssetEntry(assetEntryId?number) /> 
13    <#assign displayPageAssetEntryCategories = displayPageAssetEntry.getCategories() /> 
14    <#assign justProjectSegment = [] /> 
15    <#assign sementoProdutoVocabularioID = 0/> 
16    <#assign statusVocabularioID = 0/> 
17 
18    <#list displayPageAssetEntryCategories as cat> 
19        <#assign vocabularyId = cat.vocabularyId/> 
20        <#assign vocabulary = assetVocabularyLocalService.fetchAssetVocabulary(vocabularyId)/> 
21        <#if vocabulary.name?index_of("segment") != -1 > 
22            <#assign sementoProdutoVocabularioID = vocabulary.vocabularyId/> 
23            <#assign justProjectSegment += [cat.name] /> 
24        </#if> 
25        <#if vocabulary.name?index_of("status") != -1 > 
26            <#assign statusVocabularioID = vocabulary.vocabularyId/> 
27        </#if> 
28    </#list> 
29 
30    <#assign relatedProjectsList = [] /> 
31    <#assign listaDeComparacao = [] /> 
32 
33    <#assign starBorderURL = "/documents/d/guest/star_border" /> 
34    <#assign starURL = "/documents/d/guest/star" /> 
35 
36    <#list entries as curJournalArticle> 
37 
38        <#assign assetEntry = assetLocalService.getEntry("com.liferay.journal.model.JournalArticle",curJournalArticle.resourcePrimKey) /> 
39 
40        <#assign isExclusiveContent = true /> 
41        <#assign guestRole = roleLocalService.getRole( themeDisplay.getCompanyId()?number,"Guest") /> 
42        <#assign article = _journalArticleLocalService.getLatestArticle(assetEntry.getClassPK()) /> 
43        <#assign JournalArticleClassName = "com.liferay.journal.model.JournalArticle" /> 
44        <#assign SCOPE_INDIVIDUAL = 4 /> 
45 
46        <#assign resourcePermission = resourcePermissionLocalService 
47            .getResourcePermission( 
48            themeDisplay.getCompanyId(), 
49            JournalArticleClassName, 
50            SCOPE_INDIVIDUAL, 
51            article.getResourcePrimKey()?string, 
52            guestRole.getRoleId() 
53            )/> 
54 
55        <#if (resourcePermission.hasActionId("VIEW"))> 
56            <#assign isExclusiveContent = false /> 
57        </#if> 
58 
59        <#assign assetRenderer = assetEntry.getAssetRenderer() /> 
60        <#assign DDMFormFieldValuesMap=assetRenderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap() /> 
61        <#assign DDMFormFieldsReferencesMap=assetRenderer.article.DDMStructure.DDMForm.getDDMFormFieldsReferencesMap(true) /> 
62        <#assign categories = assetEntry.getCategories()/> 
63        <#assign linkToWebContentDisplayPage="/w/" + assetRenderer.getUrlTitle()/> 
64 
65 
66        <!-- pegando as categorias e filtrando pela vocabularyId de Segmentos --> 
67        <#assign segmentsCategories = categories?filter(category -> category.vocabularyId == sementoProdutoVocabularioID) /> 
68 
69 
70        <!-- pegando as categorias e filtrando pela vocabularyId de status --> 
71        <#assign projetcStatus = categories?filter(category -> category.vocabularyId == statusVocabularioID)[0] /> 
72 
73        <!-- Pegando ano de Entrega --> 
74        <#assign yearDeliveryField=DDMFormFieldsReferencesMap['yearDelivery'].name /> 
75        <#assign yearDelivery=DDMFormFieldValuesMap[yearDeliveryField] [0] /> 
76        <#assign yearDeliveryOptionSelected=yearDelivery.getValue().getString(locale)?replace("[", "")?replace("]", "" )?replace('"', '' ) /> 
77        <#assign yearDeliveryOptionValue = yearDelivery.getDDMFormField().getDDMFormFieldOptions().getOptionLabels(yearDeliveryOptionSelected)!"    " /> 
78        <#if yearDeliveryOptionValue != "    "> 
79            <#assign yearDeliveryOptionValue = yearDeliveryOptionValue.getString(locale) /> 
80        </#if> 
81 
82        <!-- Pegando trimestre de Entrega --> 
83        <#assign quarterDeliveryField=DDMFormFieldsReferencesMap['quarterDelivery'].name /> 
84        <#assign quarterDelivery=DDMFormFieldValuesMap[quarterDeliveryField] [0] /> 
85        <#assign quarterDeliveryOptionSelected=quarterDelivery.getValue().getString(locale)?replace("[", "")?replace("]", "" )?replace('"', '' ) /> 
86        <#assign quarterDeliveryOptionValue = quarterDelivery.getDDMFormField().getDDMFormFieldOptions().getOptionLabels(quarterDeliveryOptionSelected)!"" /> 
87        <#if quarterDeliveryOptionValue != ""> 
88            <#assign quarterDeliveryOptionValue = quarterDeliveryOptionValue.getString(locale) /> 
89        </#if> 
90 
91        <!-- Pegando Resumo do card --> 
92        <#assign cardSummaryField = DDMFormFieldsReferencesMap['cardSummary'].name /> 
93        <#assign cardSummary = DDMFormFieldValuesMap[cardSummaryField][0].getValue().getString(locale) /> 
94 
95        <!-- pegando imagem do card --> 
96        <#assign urlImageValue="" /> 
97        <#assign altImageValue="" /> 
98        <#assign featuredImageField=DDMFormFieldsReferencesMap['featuredImage'].name /> 
99        <#assign featuredImage=DDMFormFieldValuesMap[featuredImageField][0].getValue().getString(locale) /> 
100 
101        <!-- pegando o grupo de campos --> 
102        <#assign brazilLocale = localeUtil.fromLanguageId("pt_BR")> 
103        <#assign impactFieldGroup=DDMFormFieldsReferencesMap['impactFieldGroup'].name /> 
104        <#assign impactFieldGroupSelect=DDMFormFieldValuesMap[impactFieldGroup][0] /> 
105        <#assign impactInitiative="" /> 
106        <#list impactFieldGroupSelect.getNestedDDMFormFieldValuesMap() as key,item> 
107            <#if item[0].getDDMFormField().getFieldReference()=="impactInitiative"> 
108                <#assign impactInitiative = item[0].getValue().getString(locale)!"" /> 
109                <#if impactInitiative?has_content> 
110                    <#assign impactInitiative = item[0].getDDMFormField().getDDMFormFieldOptions().getOptionLabels(item[0].getValue().getString(locale)).getString(locale) /> 
111                <!-- Verifica se impactInitiative vem vazio com locale en_US --> 
112                <#else> 
113                    <#assign impactInitiative = item[0].getValue().getString(brazilLocale)!"" /> 
114                    <#if impactInitiative?has_content> 
115                        <#assign impactInitiative = item[0].getDDMFormField().getDDMFormFieldOptions().getOptionLabels(item[0].getValue().getString(brazilLocale)).getString(brazilLocale) /> 
116                    </#if> 
117                </#if> 
118            </#if> 
119        </#list> 
120        <!-- Peganddo path da imagem --> 
121        <#if featuredImage !="{}"> 
122            <#assign cleanedJson = featuredImage?replace("\\u","\\\\u")> 
123            <#assign featuredImageEvaluated = cleanedJson?eval> 
124            <#assign altImageValue = featuredImageEvaluated.alt!""> 
125            <#assign urlImageValue = featuredImageEvaluated.url!""> 
126        </#if> 
127        <#assign segmentsProductCategories = "" /> 
128 
129        <#list segmentsCategories as segCat > 
130            <#if (segmentsCategories?size) == 1 > 
131            <#assign segmentsProductCategories = segmentsCategories[0].getTitle(locale) /> 
132            <#elseif (segmentsCategories?size) == 2 > 
133                <#list segmentsCategories as segCat> 
134                    <#if segCat?is_last> 
135                        <#assign segmentsProductCategories = "${segmentsProductCategories} e ${segCat.getTitle(locale)}"/> 
136                    <#else> 
137                        <#assign segmentsProductCategories = "${segCat.getTitle(locale)}"/> 
138                    </#if> 
139                </#list> 
140            <#elseif ((segmentsCategories?size) >= 3) > 
141                <#list segmentsCategories as segCat> 
142                    <#if segCat?is_first> 
143                        <#assign segmentsProductCategories = "${segCat.getTitle(locale)}"/> 
144                    <#elseif segCat_index == 1> 
145                        <#assign segmentsProductCategories = "${segmentsProductCategories}, ${segCat.getTitle(locale)}"/> 
146                    <#elseif segCat_index == 2> 
147                        <#assign segmentsProductCategories = "${segmentsProductCategories} e ${segCat.getTitle(locale)}"/> 
148                        <#break> 
149                    </#if> 
150                </#list> 
151            </#if> 
152        </#list> 
153 
154        <#assign relatedProject = 
155
156                "id" :"${curJournalArticle.resourcePrimKey}", 
157                "title":"${curJournalArticle.getTitle(locale)}", 
158                "cardSummary":"${cardSummary}", 
159                "impactInitiative":"${impactInitiative}", 
160                "date":"${quarterDeliveryOptionValue}${yearDeliveryOptionValue?substring(2,4)}", 
161                "status":"${projetcStatus.getTitle(locale)}", 
162                "segmentsProductCategories":"${segmentsProductCategories}", 
163                "linkToWebContentDisplayPage": "${linkToWebContentDisplayPage}" 
164 
165
166        /> 
167 
168        <#assign relatedProjectsList += [relatedProject] /> 
169        <#if curJournalArticle_index == 0 > 
170            <#list segmentsCategories as item > 
171                <#assign listaDeComparacao += [item.getTitle(locale)] /> 
172            </#list> 
173        <#else> 
174            <#list segmentsCategories as item> 
175                <#if !(listaDeComparacao?seq_contains(item.getTitle(locale))) > 
176                    <#assign listaDeComparacao += [item.getTitle(locale)] /> 
177                </#if> 
178            </#list> 
179        </#if> 
180 
181 
182    </#list> 
183    <#assign releatedCategories = [] /> 
184    <#assign releatedCategoriesHeader = ""/> 
185    <#assign getRelated = []/> 
186    <#assign count = 0 /> 
187 
188    <#list listaDeComparacao as curCategoryName> 
189        <#if (justProjectSegment?seq_contains(curCategoryName)) > 
190            <#assign releatedCategories += [curCategoryName] /> 
191            <#assign getRelated += [curCategoryName] /> 
192        </#if> 
193    </#list> 
194 
195    <#if (releatedCategories?size) == 1> 
196        <#assign releatedCategoriesHeader = releatedCategories[0] /> 
197    <#elseif (releatedCategories?size) == 2> 
198        <#list releatedCategories as curCategoryName> 
199            <#if curCategoryName_index == 0> 
200                <#assign releatedCategoriesHeader = "${curCategoryName}"/> 
201            <#elseif curCategoryName_index==1> 
202                <#assign releatedCategoriesHeader = "${releatedCategoriesHeader} e ${curCategoryName}"/> 
203            </#if> 
204        </#list> 
205    <#elseif ((releatedCategories?size) >= 3) > 
206        <#list releatedCategories as curCategoryName> 
207            <#if curCategoryName?is_first> 
208                <#assign releatedCategoriesHeader = "${curCategoryName}"/> 
209            <#elseif curCategoryName_index == 1> 
210                <#assign releatedCategoriesHeader = "${releatedCategoriesHeader}, ${curCategoryName}"/> 
211            <#elseif curCategoryName_index == 2> 
212                <#assign releatedCategoriesHeader = "${releatedCategoriesHeader} e ${curCategoryName}"/> 
213                <#break> 
214            </#if> 
215        </#list> 
216    </#if> 
217 
218    <section class="swiper-container b3-more-projects" id="related-projects"> 
219        <div class="container-fluid container-fluid-max-xl"> 
220            <h3 class="b3-section__title b3-more-projects__title h3">${locale?contains("en")?then("Check out more projects about", "Confira mais projetos sobre" )} 
221             <#assign releatedCategoriesInEnglish = { 
222                "Captação bancária":"Bank funding", 
223                "Crédito":"Credit", 
224                "Dados Mercado":"Data", 
225                "Derivativos":"Derivatives", 
226                "Dívida Corporativa":"DCM", 
227                "ESG":"ESG", 
228                "Recebíveis":"Receivables", 
229                "Soluções de Renda Fixa":"Fixed income solutions", 
230                "Commodities":"Commodities", 
231                "Cross Market":"Cross Market", 
232                "Dados":"Data", 
233                "Empréstimo":"Securities Lending", 
234                "Índices":"Indices", 
235                "Juros e Moedas":"Interest rate and currencies", 
236                "Renda Variável":"Equities", 
237                "Tecnologia e operações": "Technology and operations" 
238            } /> 
239 
240             <#list getRelated as segCat> 
241                <#if locale?contains("en")> 
242                <span class="b3-comma english"> 
243                    ${releatedCategoriesInEnglish[segCat]!""} 
244                </span> 
245                <#else> 
246                <span class="b3-comma portuguese"> 
247                     ${segCat} 
248                </span> 
249                 </#if> 
250            </#list> 
251 
252            </h3> 
253            <div class="b3-more-projects__carousel"> 
254                <div class="swiper-wrapper b3-more-projects__wrapper"> 
255                    <#list relatedProjectsList as curEntry> 
256                        <a href="${curEntry.linkToWebContentDisplayPage}" class="swiper-slide b3-more-projects__wrapper__card b3-ga-card"> 
257                            <div class="card__header"> 
258<div class="card__header__wrapper"> 
259                                <div class="card__header__header"> 
260                                    <#if (curEntry.impactInitiative?contains("Informativo") || curEntry.impactInitiative?contains("Informative")) > 
261                                        <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
262                                            <mask id="mask0_17645_417870000000" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> 
263                                                <path d="M12.332 3.6C16.932 3.6 20.732 7.4 20.732 12C20.732 16.6 16.932 20.4 12.332 20.4C7.73203 20.4 3.93203 16.6 3.93203 12C3.93203 7.4 7.73203 3.6 12.332 3.6ZM12.332 2C6.83203 2 2.33203 6.5 2.33203 12C2.33203 17.5 6.83203 22 12.332 22C17.832 22 22.332 17.5 22.332 12C22.332 6.5 17.832 2 12.332 2Z" fill="black"/> 
264                                                <path d="M13.132 11.2H11.532V16.8H13.132V11.2Z" fill="black"/> 
265                                                <path d="M13.132 7.19995H11.532V8.79995H13.132V7.19995Z" fill="black"/> 
266                                            </mask> 
267                                            <g mask="url(#mask0_17645_417870000000)"> 
268                                                <rect x="0.332031" width="24" height="24" fill="#666E7A"/> 
269                                            </g> 
270                                        </svg> 
271                                        <p>${locale?contains("en")?then("Informative", "Informativo" )}</p> 
272                                    <#elseif (curEntry.impactInitiative?contains("Opcional") || curEntry.impactInitiative?contains("Optional"))> 
273                                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
274                                            <mask id="mask0_17642_41677020202" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="20" height="20"> 
275                                                <path fill-rule="evenodd" clip-rule="evenodd" 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" fill="black"/> 
276                                            </mask> 
277                                            <g mask="url(#mask0_17642_41677020202)"> 
278                                                <rect width="24" height="24" fill="#666E7A"/> 
279                                            </g> 
280                                        </svg> 
281                                        <p>${locale?contains("en")?then("Optional", "Opcional" )}</p> 
282                                    <#elseif (curEntry.impactInitiative?contains("Mandatório") || curEntry.impactInitiative?contains("Mandatory"))> 
283                                        <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
284                                            <mask id="mask0_17642_41602010101" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> 
285                                                <path fill-rule="evenodd" clip-rule="evenodd" d="M12.332 3.6C16.932 3.6 20.732 7.4 20.732 12C20.732 16.6 16.932 20.4 12.332 20.4C7.73203 20.4 3.93203 16.6 3.93203 12C3.93203 7.4 7.73203 3.6 12.332 3.6ZM12.332 2C6.83203 2 2.33203 6.5 2.33203 12C2.33203 17.5 6.83203 22 12.332 22C17.832 22 22.332 17.5 22.332 12C22.332 6.5 17.832 2 12.332 2ZM13.1322 7.2002H11.5322V12.8002H13.1322V7.2002ZM11.5322 15.2002H13.1322V16.8002H11.5322V15.2002Z" fill="black"/> 
286                                            </mask> 
287                                            <g mask="url(#mask0_17642_41602010101)"> 
288                                                <rect x="0.332031" width="24" height="24" fill="#666E7A"/> 
289                                            </g> 
290                                        </svg> 
291                                        <p> 
292                                            ${locale?contains("en")?then("Mandatory", "Mandatório")} 
293                                        </p> 
294</#if> 
295                                </div> 
296                                <#if isExclusiveContent> 
297                                    <div class="card__header__header"> 
298                                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
299                                            <mask id="mask0_17642_41070" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="1" width="16" 
300                                                height="21"> 
301                                                <path fill-rule="evenodd" clip-rule="evenodd" 
302                                                    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" 
303                                                    fill="black" /> 
304                                            </mask> 
305                                            <g mask="url(#mask0_17642_41070)"> 
306                                                <rect width="24" height="24" fill="#666E7A" /> 
307                                            </g> 
308                                        </svg> 
309                                        <p class="button-md">${locale?contains('en')?then('Exclusive', 'Exclusivo' )}</p> 
310                                    </div> 
311                                    </#if> 
312                                </div> 
313 
314                                <#if themeDisplay.isSignedIn()> 
315                                        <div class="star star-filled b3-ga-button" data-project-id="${curEntry.id}"> 
316                                            <img src="${starURL}" 
317                                                alt="icone de circulo com uma estrela no centro" /> 
318                                        </div> 
319                                </#if> 
320                            </div> 
321 
322                            <div class="card__body"> 
323                                <p>${curEntry.segmentsProductCategories}</p> 
324                                <p class="body-lg b3-ga-card-title" >${curEntry.title}</p> 
325                                <p class="body-xs" >${curEntry.cardSummary}</p> 
326                            </div> 
327 
328                            <div class="card__bottom"> 
329                                <div class="date body-text"> 
330                                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
331                                        xmlns="http://www.w3.org/2000/svg"> 
332                                        <mask id="mask0_13865_93015" style="mask-type: alpha" 
333                                            maskUnits="userSpaceOnUse" x="3" y="1" width="18" height="20"> 
334                                            <path fill-rule="evenodd" clip-rule="evenodd" 
335                                                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" 
336                                                fill="black" /> 
337                                        </mask> 
338                                        <g mask="url(#mask0_13865_93015)"> 
339                                            <rect width="24" height="24" fill="#0063DE" /> 
340                                        </g> 
341                                    </svg> 
342                                    <span> 
343                                        ${locale?contains("en")?then("Date", "Data")}: ${curEntry.date} 
344                                    </span> 
345                                </div> 
346                                <div class="update"> 
347                                    <#if curEntry.status == "Em execução"> 
348                                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
349                                            xmlns="http://www.w3.org/2000/svg"> 
350                                            <mask id="mask0_13865_93018" style="mask-type:alpha" 
351                                                maskUnits="userSpaceOnUse" x="2" y="2" width="20" 
352                                                height="20"> 
353                                                <path fill-rule="evenodd" clip-rule="evenodd" 
354                                                    d="M6.54134 3.56373V2.06427H2V21.9998H6.54134V20.4954H3.47207V3.56373H6.54134Z" 
355                                                    fill="white" /> 
356                                                <path fill-rule="evenodd" clip-rule="evenodd" 
357                                                    d="M17.4546 20.4905V21.9997H22V2H17.4546V3.50428H20.5264V20.4905H17.4546Z" 
358                                                    fill="white" /> 
359                                            </mask> 
360                                            <g mask="url(#mask0_13865_93018)"> 
361                                                <rect width="24" height="24" fill="#0063DE" /> 
362                                            </g> 
363                                        </svg> 
364                                    <#elseif curEntry.status=="Concluído"> 
365                                        <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
366                                            <mask id="mask0_17645_44046" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="5" width="18" height="14"> 
367                                            <path 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" fill="black"/> 
368                                            </mask> 
369                                            <g mask="url(#mask0_17645_44046)"> 
370                                            <rect x="0.333496" width="24" height="24" fill="#008750"/> 
371                                            </g> 
372                                        </svg> 
373                                    <#elseif curEntry.status=="Despriorizado"> 
374                                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 
375                                            <mask id="mask0_16128_15636" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2" y="6" width="20" height="12"> 
376                                            <path 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" fill="black"/> 
377                                            </mask> 
378                                            <g mask="url(#mask0_16128_15636)"> 
379                                            <rect width="24" height="24" fill="#0063DE"/> 
380                                            </g> 
381                                        </svg> 
382                                    </#if> 
383                                    <#if curEntry.status=="Concluído"> 
384                                        <p class="text__body--small check-color"> 
385                                            ${curEntry.status} 
386                                        </p> 
387                                    <#else> 
388                                        <p class=""> 
389                                            ${curEntry.status} 
390                                        </p> 
391                                    </#if> 
392                                </div> 
393                            </div> 
394                        </a> 
395                    </#list> 
396                </div> 
397            </div> 
398        </div> 
399    </section> 
400 
401    <style> 
402    .b3-more-projects { 
403        background: var(--gradiente-escuro, linear-gradient(180deg, #001B74 0%, #001560 100%)); 
404        padding-bottom: 3rem; 
405        padding-top: 3rem; 
406 
407
408.card__header__header { 
409        display: flex; 
410        align-items: center; 
411        position: relative; 
412        z-index: 1; 
413        padding: 0 0.75rem; 
414        width: max-content; 
415
416 
417    .card__header__header p { 
418        margin-bottom: 0; 
419        color: var(--text-text-light, #666E7A); 
420        line-height: 120%; 
421        letter-spacing: 0.0313rem; 
422        text-transform: uppercase; 
423
424 
425    .card__header__header { 
426        gap: 0.375rem; 
427
428 
429    .card__header__header::before { 
430        content: ''; 
431        border-radius: 36px; 
432        background: var(--bg-gray-1, #F6F6F7); 
433        display: flex; 
434        height: 1.875rem; 
435        position: absolute; 
436        z-index: -1; 
437        padding: var(--spacer-1) var(--spacer-2); 
438        width: 100%; 
439        left: 0; 
440
441 
442    .b3-more-projects__wrapper__card.b3-ga-card:hover { 
443	text-decoration: none; 
444
445 
446    .card__header__wrapper { 
447        display: flex; 
448        gap: 0.375rem; 
449
450 
451    .b3-more-projects .container-fluid.container-fluid-max-xl { 
452        max-width: 79.125rem; 
453        padding: 0; 
454        display: flex; 
455        flex-direction: column; 
456        overflow: hidden; 
457
458 
459    .b3-more-projects .b3-more-projects__title { 
460        line-height: 110%; 
461        color: var(--white, #FFF); 
462        text-align: center; 
463        margin: 0; 
464        font-weight: 400; 
465        font-size: 1.875rem; 
466
467 
468    .b3-more-projects .b3-more-projects__title .b3-comma.english:last-child::before{ 
469        content: 'and'; 
470        display: inline-block; 
471        font-weight: 400; 
472        font-size: 1.875rem; 
473
474 
475    .b3-more-projects .b3-more-projects__title .b3-comma.portuguese:last-child::before{ 
476        content: 'e'; 
477        display: inline-block; 
478        font-weight: 400; 
479        font-size: 1.875rem; 
480
481 
482    .b3-more-projects .b3-more-projects__title .b3-comma:first-child::before{ 
483        width: 0; 
484        visibility: hidden; 
485
486 
487    .swiper-container.b3-more-projects p { 
488    margin-bottom: 0; 
489 
490
491 
492    .b3-more-projects .b3-more-projects__wrapper { 
493        margin-top: 1.5rem; 
494height: 18.5rem; 
495
496 
497    .b3-more-projects .b3-more-projects__wrapper .b3-more-projects__wrapper__card { 
498        border-radius: 0.375rem; 
499        border: 1px solid var(--bg-gray-2, #E3E5E7); 
500        background: var(--white, #FFF); 
501        padding: 1.5rem; 
502        flex: 1; 
503        flex: 1 0 calc(33.333% - (var(--spacer-4) + var(--spacer-6))); 
504display: flex; 
505        flex-direction: column; 
506
507 
508    .b3-more-projects__wrapper__card .card__header { 
509        display: flex; 
510        align-items: center; 
511        justify-content: space-between; 
512
513 
514    .b3-more-projects__wrapper__card .card__header div { 
515        display: flex; 
516        align-items: center; 
517
518 
519    .card__header .card__header__icon-mobile { 
520        display: none; 
521
522 
523 
524    .b3-more-projects__wrapper__card .card__header p { 
525        color: var(--text-light, #666E7A); 
526        text-transform: uppercase; 
527        margin: 0; 
528        margin-left: 0.375rem; 
529font-weight: 700; 
530        font-size: 0.75rem; 
531
532 
533    .b3-more-projects__wrapper__card .card__body { 
534        margin-top: 1.5rem; 
535        display: flex; 
536        flex-direction: column; 
537        gap: 0.75rem; 
538flex-grow: 1; 
539
540 
541    .b3-more-projects__wrapper__card .card__body p:nth-child(1) { 
542        color: var(--text-emphasis-light, #40444D); 
543 
544        line-height: 120%; 
545        letter-spacing: 0.031rem; 
546        text-transform: uppercase; 
547
548 
549    .b3-more-projects__wrapper__card .card__body p:nth-child(2) { 
550        color: var(--text-emphasis-light, #40444D); 
551        line-height: 150%; 
552overflow: hidden; 
553        text-overflow: ellipsis; 
554        display: -webkit-box; 
555        -webkit-line-clamp: 2; 
556        -webkit-box-orient: vertical; 
557
558 
559    .b3-more-projects__wrapper__card .card__body p:nth-child(3) { 
560        color: var(--text-text-light, #666E7A); 
561 
562        line-height: 183.333%; 
563overflow: hidden; 
564        text-overflow: ellipsis; 
565        display: -webkit-box; 
566        -webkit-line-clamp: 3; 
567        -webkit-box-orient: vertical; 
568
569 
570    .b3-more-projects__wrapper__card .card__bottom { 
571        margin-top: 1.5rem; 
572        display: flex; 
573        justify-content: space-between; 
574        align-items: center; 
575
576 
577    .card__bottom .date { 
578        display: flex; 
579        gap: 0.3rem; 
580 
581        color: var(--text-text-light, #666E7A); 
582
583 
584    .card__bottom .update { 
585        display: flex; 
586        align-items: center; 
587        gap: 0.625rem; 
588
589 
590    .card__bottom .update p { 
591        color: var(--text-text-light, #666E7A); 
592        margin: 0; 
593        white-space: nowrap; 
594
595 
596    .card__bottom .update .check-color { 
597        color: var(--verde-sucesso, #008750); 
598
599 
600    .card__bottom .update .circle { 
601        width: 0.75rem; 
602        height: 0.75rem; 
603        border-radius: 50%; 
604        background-color: var(--negative-light, #CC4400) ; 
605
606 
607.b3-more-projects .b3-more-projects__wrapper .b3-more-projects__wrapper__card { 
608        max-width: 406px; 
609
610 
611    @media screen and (max-width: 768px) { 
612        .b3-more-projects { 
613            padding: 0; 
614            gap: 0; 
615
616 
617        .b3-more-projects .b3-more-projects__title { 
618            padding: var(--spacer-6) var(--spacer-6) 0; 
619            text-align: left; 
620            font-size: 1.875rem; 
621
622 
623        .card__header .card__header__icon-mobile { 
624            display: block; 
625
626 
627        .b3-more-projects__carousel { 
628            padding: 0 var(--spacer-2) var(--spacer-6) var(--spacer-2); 
629
630 
631		.b3-more-projects .b3-more-projects__wrapper { 
632			height: 100%; 
633
634 
635        .b3-more-projects .b3-more-projects__wrapper .b3-more-projects__wrapper__card { 
636            flex: none; 
637            width: 17rem; 
638            height: auto; 
639
640 
641        .b3-more-projects__wrapper__card .card__bottom { 
642            flex-direction: column; 
643            gap: 0.875rem; 
644            align-items: flex-start; 
645
646    .card__header__wrapper { 
647            gap: 0.75rem; 
648            flex-direction: column; 
649
650        .b3-more-projects__wrapper__card .card__header { 
651            align-items: flex-start; 
652
653
654 
655    </style> 
656 
657    <script> 
658 
659    </script> 
660<script type="module"> 
661        var projetosRelacionadosCarousel = new Swiper('.b3-more-projects__carousel', { 
662            slidesPerView: "auto", 
663            spaceBetween: 12, 
664            breakpoints: { 
665                1400: { 
666                    spaceBetween: 24, 
667                    allowTouchMove: false, 
668                }, 
669                768: { 
670                    spaceBetween: 24, 
671                    allowTouchMove: true, 
672                    allowTouchMove: false, 
673
674            }, 
675        }); 
676    </script> 
677</#if>