1060
| <![CDATA[<span class="text-white" style="font-size:xx-large"><svg class="lexicon-icon lexicon-icon-acessibilidade" focusable="false" id="umlw" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#acessibilidade"/></svg></span>]]>
|
1528
| <![CDATA[<div class="card m-0 background-position-y-center background-position-x-center" style="border:none; background-size:cover; background-image: url(/o/adaptive-media/image/2909253/lg/cdc-convenios-home.png?t=1669057647127)">
<div class="card m-0 p-4 d-flex justify-content-end" style="border:none; min-height: 240px; background: linear-gradient(transparent 30%, rgba(0,0,0,0.6) 70%); background-blend-mode: darken;">
<a href="/credito-pessoal-consignado-convenios" class="stretched-link h5 text-white" aria-label="Saiba mais sobre CDC Convênio">
CDC Convênio
</a>
<div class="text-white"><p>Crédito pessoal na medida, com vantagens exclusivas pra você</p></div>
</div>
</div>]]>
|
1529
| <![CDATA[<div class="card m-0 p-4 d-flex justify-content-end" style="border:none; min-height: 240px; background: linear-gradient(transparent 30%, rgba(0,0,0,0.6) 70%); background-blend-mode: darken;">
<a href="/credito-pessoal-consignado-convenios" class="stretched-link h5 text-white" aria-label="Saiba mais sobre CDC Convênio">
CDC Convênio
</a>
<div class="text-white"><p>Crédito pessoal na medida, com vantagens exclusivas pra você</p></div>
</div>]]>
|
1601
| <![CDATA[<div class="card m-0 background-position-y-center background-position-x-center" style="border:none; background-size:cover; background-image: url(/o/adaptive-media/image/2191866/md/mulher-com-oculos-de-realidade-virtual.jpg?t=1660251216072)">
<div class="card m-0 p-4 d-flex justify-content-end" style="border:none; min-height: 240px; background: linear-gradient(transparent 30%, rgba(0,0,0,0.6) 70%); background-blend-mode: darken;">
<a href="https://www.bnb.gov.br/fne-inovacao" class="stretched-link h5 text-white" aria-label="Saiba mais sobre FNE Inovação">
FNE Inovação
</a>
<div class="text-white"><p>Inove em produtos, serviços e processos da sua empresa.</p></div>
</div>
</div>]]>
|
1602
| <![CDATA[<div class="card m-0 p-4 d-flex justify-content-end" style="border:none; min-height: 240px; background: linear-gradient(transparent 30%, rgba(0,0,0,0.6) 70%); background-blend-mode: darken;">
<a href="https://www.bnb.gov.br/fne-inovacao" class="stretched-link h5 text-white" aria-label="Saiba mais sobre FNE Inovação">
FNE Inovação
</a>
<div class="text-white"><p>Inove em produtos, serviços e processos da sua empresa.</p></div>
</div>]]>
|
1674
| <![CDATA[<div class="card m-0 background-position-y-center background-position-x-center" style="border:none; background-size:cover; background-image: url(/o/adaptive-media/image/1529191/md/Cart%C3%A3o+BNB+Agro.jpg?t=1652818815671)">
<div class="card m-0 p-4 d-flex justify-content-end" style="border:none; min-height: 240px; background: linear-gradient(transparent 30%, rgba(0,0,0,0.6) 70%); background-blend-mode: darken;">
<a href="/cartao-bnb-agro" class="stretched-link h5 text-white" aria-label="Saiba mais sobre Cartão BNB Agro">
Cartão BNB Agro
</a>
<div class="text-white"><p>Saiba como obter o financiamento para desenvolver o seu agronegócio</p></div>
</div>
</div>]]>
|
1675
| <![CDATA[<div class="card m-0 p-4 d-flex justify-content-end" style="border:none; min-height: 240px; background: linear-gradient(transparent 30%, rgba(0,0,0,0.6) 70%); background-blend-mode: darken;">
<a href="/cartao-bnb-agro" class="stretched-link h5 text-white" aria-label="Saiba mais sobre Cartão BNB Agro">
Cartão BNB Agro
</a>
<div class="text-white"><p>Saiba como obter o financiamento para desenvolver o seu agronegócio</p></div>
</div>]]>
|
1742
| <![CDATA[<div class="card m-0 background-position-y-center background-position-x-center" style="border:none; background-size:cover; background-image: url(/o/adaptive-media/image/56619/md/por-do-sol.jpg?t=1623335791470)">
<div class="card m-0 p-4 d-flex justify-content-end" style="border:none; min-height: 240px; background: linear-gradient(transparent 30%, rgba(0,0,0,0.6) 70%); background-blend-mode: darken;">
<a href="/agroamigo-sol" class="stretched-link h5 text-white" aria-label="Saiba mais sobre Agroamigo Sol">
Agroamigo Sol
</a>
<div class="text-white"><p>Crédito para geração de energia solar no meio rural.</p></div>
</div>
</div>]]>
|
1743
| <![CDATA[<div class="card m-0 p-4 d-flex justify-content-end" style="border:none; min-height: 240px; background: linear-gradient(transparent 30%, rgba(0,0,0,0.6) 70%); background-blend-mode: darken;">
<a href="/agroamigo-sol" class="stretched-link h5 text-white" aria-label="Saiba mais sobre Agroamigo Sol">
Agroamigo Sol
</a>
<div class="text-white"><p>Crédito para geração de energia solar no meio rural.</p></div>
</div>]]>
|
1780
| <![CDATA[<ul class="nav" style="max-height: 344px" role="navigation">
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/institucional">
<svg class="lexicon-icon lexicon-icon-bnb-simbolo mr-2" focusable="false" id="cmdp" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#bnb-simbolo"/></svg> Institucional
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/desenvolvimento-regional">
<svg class="lexicon-icon lexicon-icon-trajeto mr-2" focusable="false" id="facq" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#trajeto"/></svg> Desenvolvimento Regional
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/sustentabilidade">
<svg class="lexicon-icon lexicon-icon-responsabilidade-ambiental mr-2" focusable="false" id="hmnk" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#responsabilidade-ambiental"/></svg> Sustentabilidade
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/cultura">
<svg class="lexicon-icon lexicon-icon-mascaras-cultura mr-2" focusable="false" id="ehdv" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#mascaras-cultura"/></svg> Cultura
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/etene">
<svg class="lexicon-icon lexicon-icon-prancheta-dados mr-2" focusable="false" id="eles" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#prancheta-dados"/></svg> Etene
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/hub-de-inovacao">
<svg class="lexicon-icon lexicon-icon-foguete mr-2" focusable="false" id="gwxl" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#foguete"/></svg> Hubine
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/fundeci">
<svg class="lexicon-icon lexicon-icon-pasta-indicadores mr-2" focusable="false" id="cufo" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#pasta-indicadores"/></svg> Fundeci
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/relacao-com-acionistas-e-investidores">
<svg class="lexicon-icon lexicon-icon-relacionamento-2 mr-2" focusable="false" id="madn" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#relacionamento-2"/></svg> Relação com Acionistas e Investidores
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/open-finance">
<svg class="lexicon-icon lexicon-icon-open-finance mr-2" focusable="false" id="nlgn" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#open-finance"/></svg> Open Finance
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/atividades-financiadas">
<svg class="lexicon-icon lexicon-icon-credito-2 mr-2" focusable="false" id="rahq" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#credito-2"/></svg> Atividades Financiadas
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/eventos">
<svg class="lexicon-icon lexicon-icon-programacao mr-2" focusable="false" id="grcs" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#programacao"/></svg> Eventos
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/revista-juridica">
<svg class="lexicon-icon lexicon-icon-livro-aberto mr-2" focusable="false" id="uucs" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#livro-aberto"/></svg> Revista Jurídica
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/transparencia-e-prestacao-de-contas">
<svg class="lexicon-icon lexicon-icon-view mr-2" focusable="false" id="repb" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#view"/></svg> Transparência e Prestação de Contas
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/seguranca">
<svg class="lexicon-icon lexicon-icon-protegido mr-2" focusable="false" id="rbkz" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#protegido"/></svg> Segurança
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/privacidade-e-protecao-de-dados">
<svg class="lexicon-icon lexicon-icon-hidden mr-2" focusable="false" id="ocnk" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#hidden"/></svg> Privacidade e Proteção de Dados
</a>
</li>
<li class="nav-item " role="presentation">
<a class="nav-link text-secondary-d1" href="https://www.bnb.gov.br/web/guest/sobre-o-banco">
<svg class="lexicon-icon lexicon-icon-bnb-simbolo mr-2" focusable="false" id="oyhl" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#bnb-simbolo"/></svg> Tudo Sobre o Banco
</a>
</li>
</ul>]]>
|
2005
| <![CDATA[<div style="max-width:400px" class="text-dark shadow-light">
<big>
<div>O Banco do Nordeste tem um fundo de investimento que faz a diferença para você, sua empresa e governos. Escolha a melhor opção e invista agora mesmo.</div>
</big>
</div>]]>
|
2075
| <![CDATA[<section class="bg-white" style="">
<div class="container px-3 py-5">
<div class="row ">
<div class="col-md-12">
<div id="fragment-0-zses" >
<div class="portlet-boundary portlet-boundary_com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_ portlet-static portlet-static-end portlet-asset-publisher " id="p_p_id_com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_TMHixBm72He6_">
<span id="p_com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_TMHixBm72He6"></span>
<section class="portlet" id="portlet_com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_TMHixBm72He6">
<div class="portlet-content">
<div class="autofit-float autofit-row portlet-header mb-0">
</div>
<div class=" portlet-content-container">
<div class="portlet-body">
<div class="bg-light rounded p-3">
<div class="h6">O que você procura?</div>
<div class="d-flex align-items-md-end flex-column flex-md-row justify-content-around">
<div class="p-2">
<label for="segmento">Público</label>
<select name="segmento" id="segmento" class="custom-select" onchange="fundoFiltro(this.value, this.id)">
<option selected disabled value>Selecione</option>
<option value="empresa">Empresa</option>
<option value="poderpublico">Poder Público</option>
<option value="voce">Você</option>
</select>
</div>
<div class="p-2">
<label for="classe">Classe</label>
<select name="classe" id="classe" class="custom-select" onchange="fundoFiltro(this.value, this.id)">
<option disabled selected value>Selecione</option>
<option value="rendafixareferenciadosdi">Reda Fixa Referenciado DI</option>
<option value="rendafixacurtoprazo">Renda Fixa Curto Prazo</option>
<option value="rendafixa">Renda Fixa</option>
<option value="acoes">Ações</option>
<option value="multimercado">Multimercado</option>
<option value="mutuosdeprivatizacao">Mútuos De Privatização</option>
<option value="rendafixalongoprazo">Renda Fixa Longo Prazo</option>
</select>
</div>
<div class="p-2">
<label for="risco">Risco</label>
<select name="risco" id="risco" class="custom-select" onchange="fundoFiltro(this.value, this.id)">
<option disabled selected value>Selecione</option>
<option value="0muitobaixo">Muito Baixo</option>
<option value="1baixo">Baixo</option>
<option value="2medio">Médio</option>
<option value="3alto">Alto</option>
<option value="4muitoalto">Muito Alto</option>
</select>
</div>
<div class="p-2">
<a role="button" title="Limpar Filtro" href="#0" class="btn btn-outline-primary text-nowrap" onclick="resetFiltro(this.value, this.id)">Limpar Filtros</a>
</div>
</div>
</div>
<div class="table-responsive mt-4">
<table id="fundos" class="table table-autofit table-list table-nowrap">
<thead>
<tr>
<th>
<span class="text-truncate-inline">
<span class="text-truncate" title="Fundo de Investimento">Fundo de Investimento</span>
</span>
</th>
<th>
<span class="text-truncate-inline">
<span class="text-truncate" title="Classe">Classe</span>
</span>
</th>
<th>
<span class="text-truncate-inline">
<span class="text-truncate" title="Risco">Risco</span>
</span>
</th>
<th>
<span class="text-truncate-inline">
<span class="text-truncate" title="Aplicação Inicial">Aplicação Inicial</span>
</span>
</th>
<th>
<span class="text-truncate-inline">
<span class="text-truncate" title="Liquidez">Liquidez</span>
</span>
</th>
<th></th>
</tr>
</thead>
<tbody>
<tr class=" voce rendafixa 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-funcionario-fi-renda-fixa" title="BNB Funcionário FI Renda Fixa">BNB Funcionário FI Renda Fixa</a></td>
<td>Renda Fixa</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="ovuk" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$100,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce rendafixa 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-facil-fi-renda-fixa-simples" title="BNB Fácil FI Renda Fixa Simples">BNB Fácil FI Renda Fixa Simples</a></td>
<td>Renda Fixa</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="zjkl" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$1,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa poderpublico rendafixa 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-institucional-fi-renda-fixa" title="BNB Institucional FI Renda Fixa">BNB Institucional FI Renda Fixa</a></td>
<td>Renda Fixa</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="ztiv" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$50.000,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce rendafixa 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-irf-m-1-titulos-publicos-fi-renda-fixa" title="BNB IRF-M 1 Títulos Públicos FI Renda Fixa">BNB IRF-M 1 Títulos Públicos FI Renda Fixa</a></td>
<td>Renda Fixa</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="khdl" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$100.000,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa poderpublico rendafixa 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-maximo-fic-fi-renda-fixa-longo-prazo" title="BNB Máximo FIC FI Renda Fixa Longo Prazo">BNB Máximo FIC FI Renda Fixa Longo Prazo</a></td>
<td>Renda Fixa</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="hxau" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$2.500,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa poderpublico rendafixa 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-plus-fic-fi-renda-fixa-longo-prazo" title="BNB Plus FIC FI Renda Fixa Longo Prazo">BNB Plus FIC FI Renda Fixa Longo Prazo</a></td>
<td>Renda Fixa</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="bvyo" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$25.000,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa poderpublico rendafixa 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-soberano-fi-renda-fixa" title="BNB Soberano FI Renda Fixa">BNB Soberano FI Renda Fixa</a></td>
<td>Renda Fixa</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="ljih" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$500.000,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa rendafixacurtoprazo 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-automatico-fi-renda-fixa-curto-prazo" title="BNB Automático FI Renda Fixa Curto Prazo">BNB Automático FI Renda Fixa Curto Prazo</a></td>
<td>Renda Fixa Curto Prazo</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="hvfl" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$1,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" poderpublico rendafixacurtoprazo 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-setor-publico-fi-renda-fixa-curto-prazo" title="BNB Setor Público FI Renda Fixa Curto Prazo">BNB Setor Público FI Renda Fixa Curto Prazo</a></td>
<td>Renda Fixa Curto Prazo</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="hvlp" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$10,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa poderpublico rendafixareferenciadosdi 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-classico-fic-fi-renda-fixa-referenciado-di" title="BNB Clássico FIC FI Renda Fixa Referenciado DI">BNB Clássico FIC FI Renda Fixa Referenciado DI</a></td>
<td>Renda Fixa Referenciados DI</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="qwbi" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$100,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa rendafixareferenciadosdi 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-conta-reserva-fi-renda-fixa-referenciado-di" title="BNB Conta Reserva FI Renda Fixa Referenciado DI">BNB Conta Reserva FI Renda Fixa Referenciado DI</a></td>
<td>Renda Fixa Referenciados DI</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="tfme" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$10,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa poderpublico rendafixareferenciadosdi 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-especial-fic-fi-renda-fixa-referenciado-di" title="BNB Especial FIC FI Renda Fixa Referenciado DI">BNB Especial FIC FI Renda Fixa Referenciado DI</a></td>
<td>Renda Fixa Referenciados DI</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="supf" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$10.000,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa rendafixareferenciadosdi 1baixo diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-essencial-fi-renda-fixa-referenciado-di" title="BNB Essencial FI Renda Fixa Referenciado DI">BNB Essencial FI Renda Fixa Referenciado DI</a></td>
<td>Renda Fixa Referenciados DI</td>
<td>
<span class="text-success"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="zwwi" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Baixo</td>
<td><span>R</span>$1.000,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa poderpublico multimercado 2medio diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-fi-multimercado-longo-prazo" title="BNB FI Multimercado Longo Prazo">BNB FI Multimercado Longo Prazo</a></td>
<td>Multimercado</td>
<td>
<span class="text-warning"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="mlsv" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Médio</td>
<td><span>R</span>$100,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa poderpublico rendafixa 2medio diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-ima-b-fi-renda-fixa" title="BNB IMA-B FI Renda Fixa">BNB IMA-B FI Renda Fixa</a></td>
<td>Renda Fixa</td>
<td>
<span class="text-warning"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="bndh" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Médio</td>
<td><span>R</span>$75.000,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa poderpublico rendafixa 2medio diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-ipca-fi-renda-fixa-longo-prazo" title="BNB IPCA FI Renda Fixa Longo Prazo">BNB IPCA FI Renda Fixa Longo Prazo</a></td>
<td>Renda Fixa</td>
<td>
<span class="text-warning"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="lyza" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Médio</td>
<td><span>R</span>$500,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce empresa poderpublico acoes 3alto diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-selecao-fi-acoes" title="BNB Seleção FI Ações">BNB Seleção FI Ações</a></td>
<td>Ações</td>
<td>
<span class="text-danger"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="hirn" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Alto</td>
<td><span>R</span>$100,00</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap " href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce mutuosdeprivatizacao 3alto diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-fundo-mutuo-de-privatizacao-–-fgts-eletrobras" title="BNB Fundo Mútuo de Privatização – FGTS Eletrobras">BNB Fundo Mútuo de Privatização – FGTS Eletrobras</a></td>
<td>Mútuos de Privatização</td>
<td>
<span class="text-danger"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="saip" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Alto</td>
<td>Fechado para Aplicações</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap disabled" href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce mutuosdeprivatizacao 3alto diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-fundo-mutuo-de-privatizacao-–-fgts-petrobras" title="BNB Fundo Mútuo de Privatização – FGTS Petrobras">BNB Fundo Mútuo de Privatização – FGTS Petrobras</a></td>
<td>Mútuos de Privatização</td>
<td>
<span class="text-danger"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="aket" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Alto</td>
<td>Fechado para Aplicações</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap disabled" href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
<tr class=" voce mutuosdeprivatizacao 3alto diaria">
<td class="text-primary font-weight-bold text-wrap"><a href="/web/guest/fundos-de-investimento/bnb-fundo-mutuo-de-privatizacao-–-fgts-vale" title="BNB Fundo Mútuo de Privatização – FGTS Vale">BNB Fundo Mútuo de Privatização – FGTS Vale</a></td>
<td>Mútuos de Privatização</td>
<td>
<span class="text-danger"><svg class="lexicon-icon lexicon-icon-simple-circle" focusable="false" id="qdlv" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#simple-circle" /></svg></span>
Alto</td>
<td>Fechado para Aplicações</td>
<td>Diária</td>
<td><a class="btn btn-primary text-nowrap disabled" href="https://nel.bnb.gov.br/" role="button" title="Invista">Invista</a></td>
</tr>
</tbody>
<script>
var divrisco = document.querySelector("#risco");
var divclasse = document.querySelector("#classe").value;
var divcategoria = document.querySelector("#segmento").value;
//var divliquidez = document.querySelector("#liquidez").value;
var filtros = ["risco","classe","segmento"]
var risco;
var classe;
var categoria;
var fundos = document.querySelectorAll("#fundos tbody tr");
var queryString = window.location.search;
var urlParams = new URLSearchParams(queryString);
filtros.forEach(function(nome, index){
if(urlParams.has(nome)){
document.querySelector("#"+nome).value = urlParams.get(nome);
fundoFiltro(urlParams.get(nome), nome);
}
})
function resetFiltro(valor, nome){
filtros.forEach(function(elem, index){
document.querySelector("#"+elem).value = "";
})
//Limpa todos os diplays none
fundos.forEach(function(elem, index){
elem.classList.remove("d-none")
})
}
function fundoFiltro(valor, nome){
// Limpa todos os fundos com valores da categoria selecionada
var temp = document.querySelectorAll("#"+nome+" option");
temp.forEach(function(elem, index){
fundos.forEach(function(elem2, index2){
if(elem2.classList.contains(elem.value)){
elem2.classList.add("d-none")
}
})
})
//Remove o display none dos fundos selecionado
fundos.forEach(function(elem, index){
var selecteFiltros = [];
filtros.forEach(function(elem2, index2){
if(document.querySelector("#"+elem2).value != ""){
selecteFiltros.push(document.querySelector("#"+elem2).value)
}
})
var itemfundo = true;
selecteFiltros.forEach(function(elem3,index3){
if(elem.classList.contains(elem3) == false){
itemfundo = false
}
})
if(itemfundo){
elem.classList.remove("d-none")
}
})
}
</script>
</table></div></div></div></div></section></div></div>
</div>
</div>
</div>
</section>]]>
|
2957
| <![CDATA[<section class="bg-primary" style="">
<div class="container px-3 py-0">
<div class="row ">
<div class="col-md-12">
<div id="fragment-0-epvx" > <div class="py-4"></div></div><script>(function() {var fragmentElement = document.querySelector('#fragment-0-epvx'); var configuration = {"height":"py-4"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>
<div id="fragment-0-jjay" > <h2 class="component-heading mb-0 pb-3 text-white text-left text-break fragment-heading-text-colored">
<span>Informativos</span>
</h2></div><style>.fragment-heading-text-colored a {
color: inherit;
}</style><script>(function() {var fragmentElement = document.querySelector('#fragment-0-jjay'); var configuration = {"textAlign":"left","bottomSpacing":"3","headingLevel":"h2","textColor":{"cssClass":"white","rgbValue":"rgb(230, 230, 230)"}};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>
</div>
</div>
</div>
</section>]]>
|
3021
| <![CDATA[<section class="bg-primary" style="">
<div class="container px-3 py-0">
<div class="row ">
<div class="col-md-6">
<div id="fragment-47410-vwgg" >
<div class="card card-horizontal shadow">
<div class="card-body">
<div class="card-row">
<div class="autofit-col align-self-start" style="font-size:4.5rem">
<svg class="lexicon-icon lexicon-icon-arquivo-pdf text-tertiary mt-1" focusable="false" id="utoh" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#arquivo-pdf" /></svg> </div>
<div class="autofit-col autofit-col-expand autofit-col-gutters">
<div class="card-title"><div class="h6"><a href="https://www.bnb.gov.br/documents/224785/262182/Informativo+Di%C3%A1rio+de+Fundos+de+Investimento.pdf/7508fb6c-b750-8651-9168-1025f84c411b?version=340.0&t=1695303301184&download=true" class="stretched-link">Informativo Diário de Fundos de Investimento.pdf</a></div></div>
<div class="card-subtitle">
<span class="font-weight-bold">Atualizado em: </span>21/09/2023
</div>
<div class="card-detail">
<span class="label label-unstyled text-uppercase" id="gqbf"><span class="label-item label-item-expand">pdf</span></span><span class="label label-unstyled text-uppercase" id="ebkg"><span class="label-item label-item-expand">74 KB</span></span> </div>
</div>
</div>
</div>
</div></div><style>.fragment_136960 {
}</style>
</div>
<div class="col-md-6">
<div id="fragment-47410-pcoo" >
<div class="card card-horizontal shadow">
<div class="card-body">
<div class="card-row">
<div class="autofit-col align-self-start" style="font-size:4.5rem">
<svg class="lexicon-icon lexicon-icon-arquivo-pdf text-tertiary mt-1" focusable="false" id="qnbm" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#arquivo-pdf" /></svg> </div>
<div class="autofit-col autofit-col-expand autofit-col-gutters">
<div class="card-title"><div class="h6"><a href="https://www.bnb.gov.br/documents/224785/262182/Informativo+Mensal+de+Fundos+de+Investimento.pdf/17f566ae-a666-406b-3938-b208a55eb5e8?version=26.0&t=1694473215374&download=true" class="stretched-link">Informativo Mensal de Fundos de Investimento.pdf</a></div></div>
<div class="card-subtitle">
<span class="font-weight-bold">Atualizado em: </span>11/09/2023
</div>
<div class="card-detail">
<span class="label label-unstyled text-uppercase" id="rjbj"><span class="label-item label-item-expand">pdf</span></span><span class="label label-unstyled text-uppercase" id="thur"><span class="label-item label-item-expand">126 KB</span></span> </div>
</div>
</div>
</div>
</div></div>
</div>
</div>
</div>
</section>]]>
|
3036
| <![CDATA[<div class="autofit-col align-self-start" style="font-size:4.5rem">
<svg class="lexicon-icon lexicon-icon-arquivo-pdf text-tertiary mt-1" focusable="false" id="utoh" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#arquivo-pdf" /></svg> </div>]]>
|
3068
| <![CDATA[<div class="autofit-col align-self-start" style="font-size:4.5rem">
<svg class="lexicon-icon lexicon-icon-arquivo-pdf text-tertiary mt-1" focusable="false" id="qnbm" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#arquivo-pdf" /></svg> </div>]]>
|
3104
| <![CDATA[<section class="bg-primary" style="">
<div class="container px-3 py-0">
<div class="row ">
<div class="col-md-12">
<div id="fragment-0-aomy" > <div class="py-3"></div></div><script>(function() {var fragmentElement = document.querySelector('#fragment-0-aomy'); var configuration = {"height":"py-3"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>
</div>
</div>
</div>
</section>]]>
|
3148
| <![CDATA[<section class="bg-light" style="">
<div class="container px-3 py-5">
<div class="row ">
<div class="col-md-12">
<div id="fragment-2316268-reci" >
<script id="data_reci" type="application/json">{"title":"Rentabilidade dos Fundos de Investimento","type":0,"typeSettings":{"anyClassTypeDLFileEntryAssetRendererFactory":"47053","orderByColumn1":"modifiedDate"}}</script>
<h2 class="mb-0 pb-3 text-left text-break ">
<div>Rentabilidade</div>
</h2>
<span class="loading-animation"></span>
<div class="documents-list"></div>
</div><style>.page-item button {
border-radius: 2rem !important;
}</style><script>(function() {var fragmentElement = document.querySelector('#fragment-2316268-reci'); var configuration = {"contentSetId":"2654522","showDateConversions":false,"showModifiedDate":true,"showRefDate":false,"textAlign":"left","pageSize":"50","showYear":false,"groupBy":"noGroup","textColor":{"cssClass":"","rgbValue":""},"useTitle":true,"usePagination":false,"bottomSpacing":"3","labelForYear":"Ocorrido em","useContentSetTitle":false,"labelForRefDate":"Referente a","headingLevel":"h2","showCreateDate":true,"activeDebug":false};const editMode = document.body.classList.contains('has-edit-mode-menu')
const apiURL = `${Liferay.ThemeDisplay.getPortalURL()}/o/headless-delivery`
const contentSetsEndPoint = `/v1.0/content-sets/${configuration.contentSetId}/content-set-elements`
const restrictFields = 'title,content.contentUrl,content.dateCreated,content.dateModified,content.documentType,content.fileExtension,content.sizeInBytes'
const params = { fields: restrictFields, 'pageSize': configuration.pageSize, 'page': 1 }
const pathThemeImages = Liferay.ThemeDisplay.getPathThemeImages()
const spritemapBNB = `${pathThemeImages}/bnb/icons.svg`
const spritemapClay = `${pathThemeImages}/clay/icons.svg`
const scriptAssetListJson = fragmentElement.querySelector(`script#data_${fragmentElement.id.slice(-4)}`)
const assetListObject = (scriptAssetListJson) ? JSON.parse(scriptAssetListJson.text) : null
const documentsList = fragmentElement.querySelector('.documents-list')
const loadingAnimation = fragmentElement.querySelector('.loading-animation')
const orderByYearAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência', 'ddm__keyword__47054__Ano']
const orderByMonthYearAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência']
const orderByDayAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência']
const fileEntryTypes = { 'docOrdin': 47046, 'docAnual': 47053 }
const validity = (assetListObject) ? validateConfiguration() : null
validity && init()
// funcao de inicialização
function init() {
fragmentElement.classList.add('mb-4')
editMode && reportConstraints()
fetchDocumentsPage()
}
// constrói um objeto para verificar status de validade de algumas configurações
function validateConfiguration() {
let orderByColumn = assetListObject.typeSettings.orderByColumn1
let orderByColumnName = getOrderByFieldName(orderByColumn)
let canGroupByYear = orderByYearAttrs.includes(orderByColumn)
let canGroupByMonthYear = orderByMonthYearAttrs.includes(orderByColumn)
let canGroupByDay = orderByDayAttrs.includes(orderByColumn)
let canShowRefDate = (assetListObject.typeSettings.anyClassTypeDLFileEntryAssetRendererFactory == fileEntryTypes.docOrdin)
let canShowYear = (assetListObject.typeSettings.anyClassTypeDLFileEntryAssetRendererFactory == fileEntryTypes.docAnual)
let validityState = {
'canGroupByYear': {
'state': canGroupByYear,
'msg' : canGroupByYear ? '' : `A coleção não pode ser agrupada por ano, pois está ordenada por ${orderByColumnName}.`
},
'canGroupByMonthYear': {
'state': canGroupByMonthYear,
'msg' : canGroupByMonthYear ? '' : `A coleção não pode ser agrupada por mês e ano, pois está ordenada por ${orderByColumnName}.`
},
'canGroupByDay': {
'state': canGroupByDay,
'msg' : canGroupByDay ? '' : `A coleção não pode ser agrupada por dia, pois está ordenada por ${orderByColumnName}.`
},
'canShowRefDate': {
'state': canShowRefDate,
'msg' : canShowRefDate ? '' : 'Não é possível mostrar o campo Data de Referência. Esse metadado existe apenas em coleções de Documentos Ordinários.'
},
'canShowYear': {
'state': canShowYear,
'msg' : canShowYear ? '' : 'Não é possível mostrar o campo Ano. Esse metadado existe apenas em coleções de Documentos Anuais.'
}
}
return validityState
}
// alerta sobre restrições na configuração
function reportConstraints() {
cleanAlerts()
// alerta sobre restrições
let validationMessages = []
configuration.groupBy == 'groupByYear' && !validity.canGroupByYear.state && validationMessages.push(validity.canGroupByYear.msg)
configuration.groupBy == 'groupByMonthYear' && !validity.canGroupByMonthYear.state && validationMessages.push(validity.canGroupByMonthYear.msg)
configuration.groupBy == 'groupByDay' && !validity.canGroupByDay.state && validationMessages.push(validity.canGroupByDay.msg)
configuration.showRefDate && !validity.canShowRefDate.state && validationMessages.push(validity.canShowRefDate.msg)
configuration.showYear && !validity.canShowYear.state && validationMessages.push(validity.canShowYear.msg)
validationMessages.length > 0 && displayAlert('danger', 'Configuração inválida', validationMessages.join('<br/>'), documentsList, 'beforebegin')
// debug
if (configuration.activeDebug) {
console.clear()
console.log('Propriedades da Coleção:')
console.log(assetListObject)
console.log('Configuração do Fragmento:')
console.log(configuration)
console.log('Validade da Configuração:')
console.log(validity)
}
}
// principal funcao para pegar os dados
function fetchDocumentsPage(page) {
params.page = (page) ? page : params.page
let request = Liferay.Util.addParams(params, apiURL+contentSetsEndPoint)
fetch(
request,
{
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}
).then(response => {
if (response.ok) {
return response.json()
}
}).then(documents => {
handleDocuments(documents)
if (editMode && configuration.activeDebug) {
console.log(`Retorno da requisição (page ${params.page}):`)
console.log(documents)
}
})
}
// manipula dados retornados da coleção
function handleDocuments(documents) {
loadingAnimation && loadingAnimation.remove()
if (documents.items.length > 0) {
switch (configuration.groupBy) {
case 'noGroup':
renderDocumentsList(documents)
break
case 'groupByYear':
(validity.canGroupByYear.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
case 'groupByMonthYear':
(validity.canGroupByMonthYear.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
case 'groupByDay':
(validity.canGroupByDay.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
}
configuration.usePagination && renderPaginationBar(documents.page, documents.lastPage, documents.totalCount)
} else {
displayAlert('info', 'Aviso', 'Não foram encontrados documentos', documentsList, 'afterbegin')
}
}
// renderiza lista agrupada
function renderDocumentsListByGroup(documents) {
let lastListGroup = documentsList.querySelector('.list-group:last-child')
let currentGroup = (lastListGroup) ? lastListGroup.dataset.group : 0
configuration.activeDebug
&& configuration.showDateConversions
&& editMode
&& console.log(`Extração do grupo a partir do campo ${getOrderByFieldName(assetListObject.typeSettings.orderByColumn1)}:`)
documents.items.forEach(doc => {
let group = getDocumentGroup(doc)
if (currentGroup != group) {
let listGroup = document.createElement('ul')
listGroup.classList.add('list-group')
listGroup.dataset.group = group
listGroup.setAttribute('aria-label', `${assetListObject.title} de ${group}`)
lastListGroup = documentsList.insertAdjacentElement('beforeend', listGroup)
lastListGroup.insertAdjacentHTML('afterbegin', renderListGroupHeader(group))
currentGroup = group
}
lastListGroup.insertAdjacentHTML('beforeend', renderListGroupItem(doc))
})
}
// extrai e retorna o dado (string) utilizado como agrupador (dia, mês ou ano) a partir do campo utilizado como primeira ordenação da coleção
function getDocumentGroup(document) {
let fieldData
let group
let dateField
let options
let test
let orderByColumn = assetListObject.typeSettings.orderByColumn1
switch (orderByColumn) {
case 'ddm__keyword__47047__DataReferência':
fieldData = document.content.documentType.contentFields[0].contentFieldValue.data
break
case 'ddm__keyword__47054__Ano':
fieldData = document.content.documentType.contentFields[0].contentFieldValue.data
break
case 'modifiedDate':
fieldData = document.content.dateModified
break
case 'createDate':
fieldData = document.content.dateCreated
break
case 'publishDate': // verificar esse caso por que não há uma campo data de publicação em coleções de documentos
fieldData = document.content.dateCreated
break
}
dateField = new Date(fieldData)
switch (configuration.groupBy) {
case 'groupByYear':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência' || orderByColumn == 'ddm__keyword__47054__Ano')
group = test ? dateField.getUTCFullYear() : dateField.getFullYear()
break
case 'groupByMonthYear':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência')
options = test ? {month:'long', year:'numeric', timeZone: 'UTC'} : { month:'long', year:'numeric' }
group = dateField.toLocaleDateString('pt-BR', options)
group = group.charAt(0).toUpperCase() + group.slice(1)
break
case 'groupByDay':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência')
options = test ? {timeZone: 'UTC'} : {}
group = dateField.toLocaleDateString('pt-BR', options)
break
}
configuration.activeDebug && configuration.showDateConversions && editMode && console.log(`${fieldData} --> ${group}`)
return group
}
// renderiza lista comum
function renderDocumentsList(documents) {
let listGroup = getNodeElement(documentsList, 'afterbegin', 'ul', '.list-group')
listGroup.setAttribute('aria-label', assetListObject.title)
documents.items.forEach(doc => {
listGroup.insertAdjacentHTML('beforeend', renderListGroupItem(doc))
})
}
// renderiza cabeçalho da lista
function renderListGroupHeader(title) {
let listHeaderHTML = `
<li class="list-group-header">
<span class="list-group-header-title"><big>${title}</big></span>
</li>
`
return listHeaderHTML
}
// renderiza um item da lista
function renderListGroupItem(document) {
let dateCreated = (configuration.showCreateDate) ? new Date(document.content.dateCreated) : null
let dateCreatedHTML = (dateCreated) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">Publicado em</span>
<span class="small">${dateCreated.toLocaleDateString('pt-BR')}</span>
</div>` : ''
let dateModified = (configuration.showModifiedDate) ? new Date(document.content.dateModified) : null
let dateModifiedHTML = (dateModified) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">Atualizado em</span>
<span class="small">${dateModified.toLocaleDateString('pt-BR')}</span>
</div>` : ''
let refDate = (configuration.showRefDate && validity.canShowRefDate.state) ? new Date(document.content.documentType.contentFields[0].contentFieldValue.data) : null
let refDateHTML = (refDate) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">${configuration.labelForRefDate}</span>
<span class="small">${refDate.toLocaleDateString('pt-BR', {timeZone: 'UTC'})}</span>
</div>` : ''
let year = (configuration.showYear && validity.canShowYear.state) ? document.content.documentType.contentFields[0].contentFieldValue.data : null
let yearHTML = (year) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">${configuration.labelForYear}</span>
<span class="small">${year}</span>
</div>` : ''
let hasMetadatas = (year || refDate || dateCreated || dateModified)
let metadataHTML = (hasMetadatas) ? `
<div class="d-flex flex-column flex-md-row">
${yearHTML}
${refDateHTML}
${dateCreatedHTML}
${dateModifiedHTML}
</div>` : ''
let listItemHTML = `
<li class="list-group-item list-group-item-flex align-items-center">
<div class="autofit-col">
<svg class="lexicon-icon text-tertiary lexicon-icon-lg" focusable="false" role="presentation"
viewBox="0 0 512 512">
<use xlink:href="${spritemapBNB}#arquivo-${document.content.fileExtension}" />
</svg>
</div>
<div class="autofit-col autofit-col-expand">
<div class="d-flex flex-column flex-lg-row justify-content-start justify-content-lg-between">
<div class="d-flex flex-column">
<span class="list-group-title">
<a href="${document.content.contentUrl}">${document.title}</a>
</span>
<span class="list-group-subtitle text-uppercase small">
${document.content.fileExtension}, ${Liferay.Util.formatStorage(document.content.sizeInBytes, {addSpaceBeforeSuffix: true})}
</span>
</div>
${metadataHTML}
</div>
</div>
</li>
`
return listItemHTML
}
// renderiza paginação
function renderPaginationBar(page, lastPage, totalCount) {
let paginationBar = getNodeElement(fragmentElement, 'beforeend', 'div', '.pagination-bar')
let lastIndex = (page === lastPage) ? totalCount : configuration.pageSize*page
let nDocuments = (page+1 === lastPage) ? totalCount - configuration.pageSize*page : configuration.pageSize
paginationBar.classList.add('justify-content-center', 'justify-content-lg-between')
let textColor = (configuration.textColor.cssClass) ? `text-${configuration.textColor.cssClass}` : ''
paginationBar.innerHTML = `
<div class="pagination-results mr-0 ${textColor}">Exibindo 1 a ${lastIndex} de ${totalCount} documentos.</div>
<ul class="pagination">
<li class="page-item">
<button class="btn btn-unstyled page-link" type="button">
Exibir mais ${nDocuments} documentos
${renderIcon('angle-down', spritemapClay, 'ml-2')}
</button>
</li>
</ul>
`
let showMoreButton = paginationBar.querySelector('button.page-link')
if (page !== lastPage) {
showMoreButton.addEventListener('click', e => {
showMoreButton.querySelector('svg').remove()
let loadAnimation = getNodeElement(showMoreButton, 'beforeend', 'span', '.loading-animation')
loadAnimation.classList.add('loading-animation-sm', 'ml-2')
fetchDocumentsPage(page+1)
})
} else {
showMoreButton.remove()
}
}
// imprime um mensagem de alerta
function displayAlert(style, title, msg, parentNode, position) {
let styleIcons = {
'danger': 'exclamation-full',
'success': 'check-circle-full',
'info': 'info-circle',
'warning': 'warning-full'
}
let html = `
<div class="alert p-4 alert-${style}" role="alert">
<span class="alert-indicator">
${renderIcon(styleIcons[style], spritemapClay, '')}
</span>
<strong>${title}:</strong>
<p class="mt-2 mb-0">${msg}</p>
</div>
`
parentNode.insertAdjacentHTML(position, html)
}
// limpa mensagens de alerta
function cleanAlerts() {
let alerts = fragmentElement.querySelectorAll('.alert')
alerts.forEach(alert => alert.remove())
}
// imprime icone SGV
function renderIcon(icon, spritemap, cssClasses) {
return `
<svg class="lexicon-icon lexicon-icon-${icon} ${cssClasses}" focusable="false" role="presentation">
<use href="${spritemap}#${icon}"></use>
</svg>
`
}
// retorna/cria um elemento html de uma classe css
// ascendantNode é um nó ascendente
// position é uma string 'beforeend', 'afterbegin' +
// elementType uma string 'ul', 'div' etc
// cssClass é uma classe css
function getNodeElement(ascendantNode, position, elementType, cssClass) {
let nodeElement
if (ascendantNode.querySelector(cssClass)) {
nodeElement = ascendantNode.querySelector(cssClass)
} else {
nodeElement = document.createElement(elementType)
nodeElement = ascendantNode.insertAdjacentElement(position, nodeElement)
nodeElement.classList.add(cssClass.slice(1))
}
return nodeElement
}
// retorna nome amigável do campo usado como 1ª ordenação
function getOrderByFieldName(orderByColumn) {
let regExp = /^ddm__keyword__\d+__(.+)/
let matchExp = regExp.exec(orderByColumn)
return (matchExp) ? matchExp[1] : Liferay.Language.get(orderByColumn)
};}());</script>
</div>
</div>
</div>
</section>]]>
|
3569
| <![CDATA[<section class="bg-quaternary" style="">
<div class="container px-3 py-5">
<div class="row ">
<div class="col-md-12">
<div id="fragment-2316268-lhvl" >
<script id="data_lhvl" type="application/json">{"title":"Histórico de Cotas dos Fundos de Investimento","type":0,"typeSettings":{"anyClassTypeDLFileEntryAssetRendererFactory":"47053","orderByColumn1":"ddm__keyword__47054__Ano"}}</script>
<h2 class="mb-0 pb-3 text-left text-break ">
<div>Histórico de Cotas</div>
</h2>
<span class="loading-animation"></span>
<div class="documents-list"></div>
</div><script>(function() {var fragmentElement = document.querySelector('#fragment-2316268-lhvl'); var configuration = {"contentSetId":"2654531","showDateConversions":false,"showModifiedDate":true,"showRefDate":false,"textAlign":"left","pageSize":"50","showYear":false,"groupBy":"noGroup","textColor":{"cssClass":"","rgbValue":""},"useTitle":true,"usePagination":false,"bottomSpacing":"3","labelForYear":"Ocorrido em","useContentSetTitle":false,"labelForRefDate":"Referente a","headingLevel":"h2","showCreateDate":true,"activeDebug":false};const editMode = document.body.classList.contains('has-edit-mode-menu')
const apiURL = `${Liferay.ThemeDisplay.getPortalURL()}/o/headless-delivery`
const contentSetsEndPoint = `/v1.0/content-sets/${configuration.contentSetId}/content-set-elements`
const restrictFields = 'title,content.contentUrl,content.dateCreated,content.dateModified,content.documentType,content.fileExtension,content.sizeInBytes'
const params = { fields: restrictFields, 'pageSize': configuration.pageSize, 'page': 1 }
const pathThemeImages = Liferay.ThemeDisplay.getPathThemeImages()
const spritemapBNB = `${pathThemeImages}/bnb/icons.svg`
const spritemapClay = `${pathThemeImages}/clay/icons.svg`
const scriptAssetListJson = fragmentElement.querySelector(`script#data_${fragmentElement.id.slice(-4)}`)
const assetListObject = (scriptAssetListJson) ? JSON.parse(scriptAssetListJson.text) : null
const documentsList = fragmentElement.querySelector('.documents-list')
const loadingAnimation = fragmentElement.querySelector('.loading-animation')
const orderByYearAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência', 'ddm__keyword__47054__Ano']
const orderByMonthYearAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência']
const orderByDayAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência']
const fileEntryTypes = { 'docOrdin': 47046, 'docAnual': 47053 }
const validity = (assetListObject) ? validateConfiguration() : null
validity && init()
// funcao de inicialização
function init() {
fragmentElement.classList.add('mb-4')
editMode && reportConstraints()
fetchDocumentsPage()
}
// constrói um objeto para verificar status de validade de algumas configurações
function validateConfiguration() {
let orderByColumn = assetListObject.typeSettings.orderByColumn1
let orderByColumnName = getOrderByFieldName(orderByColumn)
let canGroupByYear = orderByYearAttrs.includes(orderByColumn)
let canGroupByMonthYear = orderByMonthYearAttrs.includes(orderByColumn)
let canGroupByDay = orderByDayAttrs.includes(orderByColumn)
let canShowRefDate = (assetListObject.typeSettings.anyClassTypeDLFileEntryAssetRendererFactory == fileEntryTypes.docOrdin)
let canShowYear = (assetListObject.typeSettings.anyClassTypeDLFileEntryAssetRendererFactory == fileEntryTypes.docAnual)
let validityState = {
'canGroupByYear': {
'state': canGroupByYear,
'msg' : canGroupByYear ? '' : `A coleção não pode ser agrupada por ano, pois está ordenada por ${orderByColumnName}.`
},
'canGroupByMonthYear': {
'state': canGroupByMonthYear,
'msg' : canGroupByMonthYear ? '' : `A coleção não pode ser agrupada por mês e ano, pois está ordenada por ${orderByColumnName}.`
},
'canGroupByDay': {
'state': canGroupByDay,
'msg' : canGroupByDay ? '' : `A coleção não pode ser agrupada por dia, pois está ordenada por ${orderByColumnName}.`
},
'canShowRefDate': {
'state': canShowRefDate,
'msg' : canShowRefDate ? '' : 'Não é possível mostrar o campo Data de Referência. Esse metadado existe apenas em coleções de Documentos Ordinários.'
},
'canShowYear': {
'state': canShowYear,
'msg' : canShowYear ? '' : 'Não é possível mostrar o campo Ano. Esse metadado existe apenas em coleções de Documentos Anuais.'
}
}
return validityState
}
// alerta sobre restrições na configuração
function reportConstraints() {
cleanAlerts()
// alerta sobre restrições
let validationMessages = []
configuration.groupBy == 'groupByYear' && !validity.canGroupByYear.state && validationMessages.push(validity.canGroupByYear.msg)
configuration.groupBy == 'groupByMonthYear' && !validity.canGroupByMonthYear.state && validationMessages.push(validity.canGroupByMonthYear.msg)
configuration.groupBy == 'groupByDay' && !validity.canGroupByDay.state && validationMessages.push(validity.canGroupByDay.msg)
configuration.showRefDate && !validity.canShowRefDate.state && validationMessages.push(validity.canShowRefDate.msg)
configuration.showYear && !validity.canShowYear.state && validationMessages.push(validity.canShowYear.msg)
validationMessages.length > 0 && displayAlert('danger', 'Configuração inválida', validationMessages.join('<br/>'), documentsList, 'beforebegin')
// debug
if (configuration.activeDebug) {
console.clear()
console.log('Propriedades da Coleção:')
console.log(assetListObject)
console.log('Configuração do Fragmento:')
console.log(configuration)
console.log('Validade da Configuração:')
console.log(validity)
}
}
// principal funcao para pegar os dados
function fetchDocumentsPage(page) {
params.page = (page) ? page : params.page
let request = Liferay.Util.addParams(params, apiURL+contentSetsEndPoint)
fetch(
request,
{
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}
).then(response => {
if (response.ok) {
return response.json()
}
}).then(documents => {
handleDocuments(documents)
if (editMode && configuration.activeDebug) {
console.log(`Retorno da requisição (page ${params.page}):`)
console.log(documents)
}
})
}
// manipula dados retornados da coleção
function handleDocuments(documents) {
loadingAnimation && loadingAnimation.remove()
if (documents.items.length > 0) {
switch (configuration.groupBy) {
case 'noGroup':
renderDocumentsList(documents)
break
case 'groupByYear':
(validity.canGroupByYear.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
case 'groupByMonthYear':
(validity.canGroupByMonthYear.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
case 'groupByDay':
(validity.canGroupByDay.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
}
configuration.usePagination && renderPaginationBar(documents.page, documents.lastPage, documents.totalCount)
} else {
displayAlert('info', 'Aviso', 'Não foram encontrados documentos', documentsList, 'afterbegin')
}
}
// renderiza lista agrupada
function renderDocumentsListByGroup(documents) {
let lastListGroup = documentsList.querySelector('.list-group:last-child')
let currentGroup = (lastListGroup) ? lastListGroup.dataset.group : 0
configuration.activeDebug
&& configuration.showDateConversions
&& editMode
&& console.log(`Extração do grupo a partir do campo ${getOrderByFieldName(assetListObject.typeSettings.orderByColumn1)}:`)
documents.items.forEach(doc => {
let group = getDocumentGroup(doc)
if (currentGroup != group) {
let listGroup = document.createElement('ul')
listGroup.classList.add('list-group')
listGroup.dataset.group = group
listGroup.setAttribute('aria-label', `${assetListObject.title} de ${group}`)
lastListGroup = documentsList.insertAdjacentElement('beforeend', listGroup)
lastListGroup.insertAdjacentHTML('afterbegin', renderListGroupHeader(group))
currentGroup = group
}
lastListGroup.insertAdjacentHTML('beforeend', renderListGroupItem(doc))
})
}
// extrai e retorna o dado (string) utilizado como agrupador (dia, mês ou ano) a partir do campo utilizado como primeira ordenação da coleção
function getDocumentGroup(document) {
let fieldData
let group
let dateField
let options
let test
let orderByColumn = assetListObject.typeSettings.orderByColumn1
switch (orderByColumn) {
case 'ddm__keyword__47047__DataReferência':
fieldData = document.content.documentType.contentFields[0].contentFieldValue.data
break
case 'ddm__keyword__47054__Ano':
fieldData = document.content.documentType.contentFields[0].contentFieldValue.data
break
case 'modifiedDate':
fieldData = document.content.dateModified
break
case 'createDate':
fieldData = document.content.dateCreated
break
case 'publishDate': // verificar esse caso por que não há uma campo data de publicação em coleções de documentos
fieldData = document.content.dateCreated
break
}
dateField = new Date(fieldData)
switch (configuration.groupBy) {
case 'groupByYear':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência' || orderByColumn == 'ddm__keyword__47054__Ano')
group = test ? dateField.getUTCFullYear() : dateField.getFullYear()
break
case 'groupByMonthYear':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência')
options = test ? {month:'long', year:'numeric', timeZone: 'UTC'} : { month:'long', year:'numeric' }
group = dateField.toLocaleDateString('pt-BR', options)
group = group.charAt(0).toUpperCase() + group.slice(1)
break
case 'groupByDay':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência')
options = test ? {timeZone: 'UTC'} : {}
group = dateField.toLocaleDateString('pt-BR', options)
break
}
configuration.activeDebug && configuration.showDateConversions && editMode && console.log(`${fieldData} --> ${group}`)
return group
}
// renderiza lista comum
function renderDocumentsList(documents) {
let listGroup = getNodeElement(documentsList, 'afterbegin', 'ul', '.list-group')
listGroup.setAttribute('aria-label', assetListObject.title)
documents.items.forEach(doc => {
listGroup.insertAdjacentHTML('beforeend', renderListGroupItem(doc))
})
}
// renderiza cabeçalho da lista
function renderListGroupHeader(title) {
let listHeaderHTML = `
<li class="list-group-header">
<span class="list-group-header-title"><big>${title}</big></span>
</li>
`
return listHeaderHTML
}
// renderiza um item da lista
function renderListGroupItem(document) {
let dateCreated = (configuration.showCreateDate) ? new Date(document.content.dateCreated) : null
let dateCreatedHTML = (dateCreated) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">Publicado em</span>
<span class="small">${dateCreated.toLocaleDateString('pt-BR')}</span>
</div>` : ''
let dateModified = (configuration.showModifiedDate) ? new Date(document.content.dateModified) : null
let dateModifiedHTML = (dateModified) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">Atualizado em</span>
<span class="small">${dateModified.toLocaleDateString('pt-BR')}</span>
</div>` : ''
let refDate = (configuration.showRefDate && validity.canShowRefDate.state) ? new Date(document.content.documentType.contentFields[0].contentFieldValue.data) : null
let refDateHTML = (refDate) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">${configuration.labelForRefDate}</span>
<span class="small">${refDate.toLocaleDateString('pt-BR', {timeZone: 'UTC'})}</span>
</div>` : ''
let year = (configuration.showYear && validity.canShowYear.state) ? document.content.documentType.contentFields[0].contentFieldValue.data : null
let yearHTML = (year) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">${configuration.labelForYear}</span>
<span class="small">${year}</span>
</div>` : ''
let hasMetadatas = (year || refDate || dateCreated || dateModified)
let metadataHTML = (hasMetadatas) ? `
<div class="d-flex flex-column flex-md-row">
${yearHTML}
${refDateHTML}
${dateCreatedHTML}
${dateModifiedHTML}
</div>` : ''
let listItemHTML = `
<li class="list-group-item list-group-item-flex align-items-center">
<div class="autofit-col">
<svg class="lexicon-icon text-tertiary lexicon-icon-lg" focusable="false" role="presentation"
viewBox="0 0 512 512">
<use xlink:href="${spritemapBNB}#arquivo-${document.content.fileExtension}" />
</svg>
</div>
<div class="autofit-col autofit-col-expand">
<div class="d-flex flex-column flex-lg-row justify-content-start justify-content-lg-between">
<div class="d-flex flex-column">
<span class="list-group-title">
<a href="${document.content.contentUrl}">${document.title}</a>
</span>
<span class="list-group-subtitle text-uppercase small">
${document.content.fileExtension}, ${Liferay.Util.formatStorage(document.content.sizeInBytes, {addSpaceBeforeSuffix: true})}
</span>
</div>
${metadataHTML}
</div>
</div>
</li>
`
return listItemHTML
}
// renderiza paginação
function renderPaginationBar(page, lastPage, totalCount) {
let paginationBar = getNodeElement(fragmentElement, 'beforeend', 'div', '.pagination-bar')
let lastIndex = (page === lastPage) ? totalCount : configuration.pageSize*page
let nDocuments = (page+1 === lastPage) ? totalCount - configuration.pageSize*page : configuration.pageSize
paginationBar.classList.add('justify-content-center', 'justify-content-lg-between')
let textColor = (configuration.textColor.cssClass) ? `text-${configuration.textColor.cssClass}` : ''
paginationBar.innerHTML = `
<div class="pagination-results mr-0 ${textColor}">Exibindo 1 a ${lastIndex} de ${totalCount} documentos.</div>
<ul class="pagination">
<li class="page-item">
<button class="btn btn-unstyled page-link" type="button">
Exibir mais ${nDocuments} documentos
${renderIcon('angle-down', spritemapClay, 'ml-2')}
</button>
</li>
</ul>
`
let showMoreButton = paginationBar.querySelector('button.page-link')
if (page !== lastPage) {
showMoreButton.addEventListener('click', e => {
showMoreButton.querySelector('svg').remove()
let loadAnimation = getNodeElement(showMoreButton, 'beforeend', 'span', '.loading-animation')
loadAnimation.classList.add('loading-animation-sm', 'ml-2')
fetchDocumentsPage(page+1)
})
} else {
showMoreButton.remove()
}
}
// imprime um mensagem de alerta
function displayAlert(style, title, msg, parentNode, position) {
let styleIcons = {
'danger': 'exclamation-full',
'success': 'check-circle-full',
'info': 'info-circle',
'warning': 'warning-full'
}
let html = `
<div class="alert p-4 alert-${style}" role="alert">
<span class="alert-indicator">
${renderIcon(styleIcons[style], spritemapClay, '')}
</span>
<strong>${title}:</strong>
<p class="mt-2 mb-0">${msg}</p>
</div>
`
parentNode.insertAdjacentHTML(position, html)
}
// limpa mensagens de alerta
function cleanAlerts() {
let alerts = fragmentElement.querySelectorAll('.alert')
alerts.forEach(alert => alert.remove())
}
// imprime icone SGV
function renderIcon(icon, spritemap, cssClasses) {
return `
<svg class="lexicon-icon lexicon-icon-${icon} ${cssClasses}" focusable="false" role="presentation">
<use href="${spritemap}#${icon}"></use>
</svg>
`
}
// retorna/cria um elemento html de uma classe css
// ascendantNode é um nó ascendente
// position é uma string 'beforeend', 'afterbegin' +
// elementType uma string 'ul', 'div' etc
// cssClass é uma classe css
function getNodeElement(ascendantNode, position, elementType, cssClass) {
let nodeElement
if (ascendantNode.querySelector(cssClass)) {
nodeElement = ascendantNode.querySelector(cssClass)
} else {
nodeElement = document.createElement(elementType)
nodeElement = ascendantNode.insertAdjacentElement(position, nodeElement)
nodeElement.classList.add(cssClass.slice(1))
}
return nodeElement
}
// retorna nome amigável do campo usado como 1ª ordenação
function getOrderByFieldName(orderByColumn) {
let regExp = /^ddm__keyword__\d+__(.+)/
let matchExp = regExp.exec(orderByColumn)
return (matchExp) ? matchExp[1] : Liferay.Language.get(orderByColumn)
};}());</script>
</div>
</div>
</div>
</section>]]>
|
3988
| <![CDATA[<section class="bg-secondary" style="">
<div class="container px-3 py-0">
<div class="row ">
<div class="col-md-12">
<div id="fragment-0-ibrf" > <div class="py-4"></div></div><script>(function() {var fragmentElement = document.querySelector('#fragment-0-ibrf'); var configuration = {"height":"py-4"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>
<div id="fragment-0-nbjy" > <h2 class="component-heading mb-0 pb-3 text-white text-left text-break fragment-heading-text-colored">
<span>Tipologia de Fundos de Investimento</span>
</h2></div><script>(function() {var fragmentElement = document.querySelector('#fragment-0-nbjy'); var configuration = {"textAlign":"left","bottomSpacing":"3","headingLevel":"h2","textColor":{"cssClass":"white","rgbValue":"rgb(230, 230, 230)"}};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>
</div>
</div>
</div>
</section>]]>
|
4050
| <![CDATA[<section class="bg-secondary" style="">
<div class="container px-3 py-0">
<div class="row ">
<div class="col-md-4">
<div id="fragment-251720-ldrs" > <div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundos de Renda Fixa Curto Prazo</div>
</div>
<div class="mb-3">Aplicam seus recursos em títulos públicos federais indexados à taxa SELIC, com prazo máximo a decorrer de 375 dias e prazo médio da carteira inferior a 60 dias. Apresenta risco baixíssimo e é indicado a investidores que visam à rentabilidade que acompanhe as taxas de juros.</div>
</div>
</div><style>.fragment_251720 {
}</style><script>(function() {var fragmentElement = document.querySelector('#fragment-251720-ldrs'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
<div id="fragment-251720-llcd" > <div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundo Multimercado</div>
</div>
<div class="mb-3">Desenvolvido para atuar com flexibilidade em diversos mercados, tais como renda fixa (prefixados e pós-fixados), renda variável e derivativos, aproveitando as melhores oportunidades do momento. Apresenta risco médio e é indicado a investidores que conhecem o mercado financeiro, buscam retorno superior ao do renda fixa, no médio prazo, e estejam dispostos a assumir maior risco.</div>
</div>
</div><script>(function() {var fragmentElement = document.querySelector('#fragment-251720-llcd'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
</div>
<div class="col-md-4">
<div id="fragment-251720-terg" > <div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundos Renda Fixa Referenciados DI</div>
</div>
<div class="mb-3">Aplicam em ativos financeiros que buscam acompanhar a variação da taxa do CDI, com prazo médio da carteira superior a 365 dias. Apresentam ; risco baixo e são indicados a investidores que visam à rentabilidade que acompanhe as taxas de juros.</div>
</div>
</div><script>(function() {var fragmentElement = document.querySelector('#fragment-251720-terg'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
<div id="fragment-251720-xmla" > <div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundos de Ações</div>
</div>
<div class="mb-3">Aplicam seus recursos preponderantemente em ações. Apresentam alto risco e são indicados a investidores que conhecem o mercado financeiro de capitais e que buscam uma maior rentabilidade no médio e longo prazo.</div>
</div>
</div><script>(function() {var fragmentElement = document.querySelector('#fragment-251720-xmla'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
</div>
<div class="col-md-4">
<div id="fragment-251720-idka" > <div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundos Renda Fixa</div>
</div>
<div class="mb-3">Investem em títulos de renda fixa públicos e/ou privados, prefixados ou pós-fixados. Têm gestão ativa em relação ao comportamento das taxas de juros. São indicados a investidores que buscam maior rentabilidade com diversificação do risco.</div>
</div>
</div><script>(function() {var fragmentElement = document.querySelector('#fragment-251720-idka'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
<div id="fragment-251720-cqsf" > <div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundos Mútuos de Privatização</div>
</div>
<div class="mb-3">Desenvolvidos para acatar recursos provenientes dos saldos de conta vinculada do FGTS mediante a aplicação de no mínimo 90% do seu Patrimônio Líquido em ações ordinárias das empresas que deram origem ao fundo. Apresentam o risco de flutuações do mercado de ações e são indicados a investidores que desejam diversificar seus recursos aplicados no FGTS, buscando possibilidades de melhores resultados a longo prazo.</div>
</div>
</div><script>(function() {var fragmentElement = document.querySelector('#fragment-251720-cqsf'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
</div>
</div>
</div>
</section>]]>
|
4060
| <![CDATA[<div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundos de Renda Fixa Curto Prazo</div>
</div>
<div class="mb-3">Aplicam seus recursos em títulos públicos federais indexados à taxa SELIC, com prazo máximo a decorrer de 375 dias e prazo médio da carteira inferior a 60 dias. Apresenta risco baixíssimo e é indicado a investidores que visam à rentabilidade que acompanhe as taxas de juros.</div>
</div>]]>
|
4078
| <![CDATA[<div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundo Multimercado</div>
</div>
<div class="mb-3">Desenvolvido para atuar com flexibilidade em diversos mercados, tais como renda fixa (prefixados e pós-fixados), renda variável e derivativos, aproveitando as melhores oportunidades do momento. Apresenta risco médio e é indicado a investidores que conhecem o mercado financeiro, buscam retorno superior ao do renda fixa, no médio prazo, e estejam dispostos a assumir maior risco.</div>
</div>]]>
|
4103
| <![CDATA[<div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundos Renda Fixa Referenciados DI</div>
</div>
<div class="mb-3">Aplicam em ativos financeiros que buscam acompanhar a variação da taxa do CDI, com prazo médio da carteira superior a 365 dias. Apresentam ; risco baixo e são indicados a investidores que visam à rentabilidade que acompanhe as taxas de juros.</div>
</div>]]>
|
4120
| <![CDATA[<div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundos de Ações</div>
</div>
<div class="mb-3">Aplicam seus recursos preponderantemente em ações. Apresentam alto risco e são indicados a investidores que conhecem o mercado financeiro de capitais e que buscam uma maior rentabilidade no médio e longo prazo.</div>
</div>]]>
|
4145
| <![CDATA[<div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundos Renda Fixa</div>
</div>
<div class="mb-3">Investem em títulos de renda fixa públicos e/ou privados, prefixados ou pós-fixados. Têm gestão ativa em relação ao comportamento das taxas de juros. São indicados a investidores que buscam maior rentabilidade com diversificação do risco.</div>
</div>]]>
|
4162
| <![CDATA[<div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="h4 mb-3">
<div class="">Fundos Mútuos de Privatização</div>
</div>
<div class="mb-3">Desenvolvidos para acatar recursos provenientes dos saldos de conta vinculada do FGTS mediante a aplicação de no mínimo 90% do seu Patrimônio Líquido em ações ordinárias das empresas que deram origem ao fundo. Apresentam o risco de flutuações do mercado de ações e são indicados a investidores que desejam diversificar seus recursos aplicados no FGTS, buscando possibilidades de melhores resultados a longo prazo.</div>
</div>]]>
|
4197
| <![CDATA[<section class="bg-secondary" style="">
<div class="container px-3 py-0">
<div class="row ">
<div class="col-md-12">
<div id="fragment-0-pdgq" > <div class="py-3"></div></div><script>(function() {var fragmentElement = document.querySelector('#fragment-0-pdgq'); var configuration = {"height":"py-3"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>
</div>
</div>
</div>
</section>]]>
|
4241
| <![CDATA[<section class="bg-primary-l1" style="">
<div class="container px-3 py-0">
<div class="row ">
<div class="col-md-12">
<div id="fragment-0-aups" > <div class="py-4"></div></div><script>(function() {var fragmentElement = document.querySelector('#fragment-0-aups'); var configuration = {"height":"py-4"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>
<div id="fragment-0-gzqi" > <h2 class="component-heading mb-0 pb-3 text-white text-left text-break fragment-heading-text-colored">
<span>Educação Financeira</span>
</h2></div><script>(function() {var fragmentElement = document.querySelector('#fragment-0-gzqi'); var configuration = {"textAlign":"left","bottomSpacing":"3","headingLevel":"h2","textColor":{"cssClass":"white","rgbValue":"rgb(230, 230, 230)"}};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>
</div>
</div>
</div>
</section>]]>
|
4303
| <![CDATA[<section class="bg-primary-l1" style="">
<div class="container px-3 py-0">
<div class="row ">
<div class="col-md-4">
<div id="fragment-251720-oybu" > <div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="lexicon-icon-box rounded-circle bg-tertiary text-white mb-3" style="font-size:2rem">
<svg class="lexicon-icon lexicon-icon-analytics" focusable="false" id="eusf" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#analytics" /></svg> </div>
<div class="h4 mb-3">
<div class="">Como Investir</div>
</div>
<div class="mb-3">Acesse o Portal Como Investir da Anbima para saber como planejar e acompanhar seus investimentos.</div>
<div><a class="btn btn-link" rel="" href="https://comoinvestir.anbima.com.br/" target="_blank">Acessar</a></div>
</div>
</div><script>(function() {var fragmentElement = document.querySelector('#fragment-251720-oybu'); var configuration = {"symbol":"analytics","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":true,"iconStyle":"bg-tertiary text-white","descricao":true,"spritemap":"clay","icone":true,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
</div>
<div class="col-md-4">
<div id="fragment-251720-afkq" > <div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="lexicon-icon-box rounded-circle bg-tertiary text-white mb-3" style="font-size:2rem">
<svg class="lexicon-icon lexicon-icon-thumbs-up-arrow" focusable="false" id="lvpb" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#thumbs-up-arrow" /></svg> </div>
<div class="h4 mb-3">
<div class="">Cidadania Financeira</div>
</div>
<div class="mb-3">Acesse o Portal da Cidadania Financeira do Banco Central do Brasil e saiba como gerenciar seus recursos.</div>
<div><a class="btn btn-link" rel="" href="https://www.bcb.gov.br/cidadaniafinanceira" target="_blank">Acessar</a></div>
</div>
</div><script>(function() {var fragmentElement = document.querySelector('#fragment-251720-afkq'); var configuration = {"symbol":"thumbs-up-arrow","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":true,"iconStyle":"bg-tertiary text-white","descricao":true,"spritemap":"clay","icone":true,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
</div>
<div class="col-md-4">
<div id="fragment-251720-btth" > <div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="lexicon-icon-box rounded-circle bg-tertiary text-white mb-3" style="font-size:2rem">
<svg class="lexicon-icon lexicon-icon-desktop" focusable="false" id="rrdf" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#desktop" /></svg> </div>
<div class="h4 mb-3">
<div class="">B3 Educação</div>
</div>
<div class="mb-3">Aprenda sobre investimentos e finanças pessoais com conteúdos produzidos pela B3 e parceiros.</div>
<div><a class="btn btn-link" rel="" href="https://edu.b3.com.br/" target="_blank">Acessar</a></div>
</div>
</div><script>(function() {var fragmentElement = document.querySelector('#fragment-251720-btth'); var configuration = {"symbol":"desktop","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":true,"iconStyle":"bg-tertiary text-white","descricao":true,"spritemap":"clay","icone":true,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
</div>
</div>
</div>
</section>]]>
|
4313
| <![CDATA[<div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="lexicon-icon-box rounded-circle bg-tertiary text-white mb-3" style="font-size:2rem">
<svg class="lexicon-icon lexicon-icon-analytics" focusable="false" id="eusf" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#analytics" /></svg> </div>
<div class="h4 mb-3">
<div class="">Como Investir</div>
</div>
<div class="mb-3">Acesse o Portal Como Investir da Anbima para saber como planejar e acompanhar seus investimentos.</div>
<div><a class="btn btn-link" rel="" href="https://comoinvestir.anbima.com.br/" target="_blank">Acessar</a></div>
</div>]]>
|
4314
| <![CDATA[<div class="lexicon-icon-box rounded-circle bg-tertiary text-white mb-3" style="font-size:2rem">
<svg class="lexicon-icon lexicon-icon-analytics" focusable="false" id="eusf" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#analytics" /></svg> </div>]]>
|
4341
| <![CDATA[<div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="lexicon-icon-box rounded-circle bg-tertiary text-white mb-3" style="font-size:2rem">
<svg class="lexicon-icon lexicon-icon-thumbs-up-arrow" focusable="false" id="lvpb" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#thumbs-up-arrow" /></svg> </div>
<div class="h4 mb-3">
<div class="">Cidadania Financeira</div>
</div>
<div class="mb-3">Acesse o Portal da Cidadania Financeira do Banco Central do Brasil e saiba como gerenciar seus recursos.</div>
<div><a class="btn btn-link" rel="" href="https://www.bcb.gov.br/cidadaniafinanceira" target="_blank">Acessar</a></div>
</div>]]>
|
4342
| <![CDATA[<div class="lexicon-icon-box rounded-circle bg-tertiary text-white mb-3" style="font-size:2rem">
<svg class="lexicon-icon lexicon-icon-thumbs-up-arrow" focusable="false" id="lvpb" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#thumbs-up-arrow" /></svg> </div>]]>
|
4369
| <![CDATA[<div class="fragment_251720 card p-4" style="width: fit-content;">
<div class="lexicon-icon-box rounded-circle bg-tertiary text-white mb-3" style="font-size:2rem">
<svg class="lexicon-icon lexicon-icon-desktop" focusable="false" id="rrdf" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#desktop" /></svg> </div>
<div class="h4 mb-3">
<div class="">B3 Educação</div>
</div>
<div class="mb-3">Aprenda sobre investimentos e finanças pessoais com conteúdos produzidos pela B3 e parceiros.</div>
<div><a class="btn btn-link" rel="" href="https://edu.b3.com.br/" target="_blank">Acessar</a></div>
</div>]]>
|
4370
| <![CDATA[<div class="lexicon-icon-box rounded-circle bg-tertiary text-white mb-3" style="font-size:2rem">
<svg class="lexicon-icon lexicon-icon-desktop" focusable="false" id="rrdf" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#desktop" /></svg> </div>]]>
|
4407
| <![CDATA[<section class="bg-primary-l1" style="">
<div class="container px-3 py-0">
<div class="row ">
<div class="col-md-6">
<div id="fragment-47410-nzeo" >
<div class="card card-horizontal shadow">
<div class="card-body">
<div class="card-row">
<div class="autofit-col align-self-start" style="font-size:4.5rem">
<svg class="lexicon-icon lexicon-icon-arquivo-pdf text-tertiary mt-1" focusable="false" id="tail" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#arquivo-pdf" /></svg> </div>
<div class="autofit-col autofit-col-expand autofit-col-gutters">
<div class="card-title"><div class="h6"><a href="https://www.bnb.gov.br/documents/224785/284818/Gloss%C3%A1rio+de+Fundos+de+Investimento.pdf/f2d351dd-19c8-8a37-4165-97530b7e642f?version=1.1&t=1630351139857&download=true" class="stretched-link">Glossário de Fundos de Investimento.pdf</a></div></div>
<div class="card-subtitle">
<span class="font-weight-bold">Atualizado em: </span>30/08/2021
</div>
<div class="card-detail">
<span class="label label-unstyled text-uppercase" id="hene"><span class="label-item label-item-expand">pdf</span></span><span class="label label-unstyled text-uppercase" id="pves"><span class="label-item label-item-expand">36 KB</span></span> </div>
</div>
</div>
</div>
</div></div>
</div>
<div class="col-md-6">
<div id="fragment-47410-yipu" >
<div class="card card-horizontal shadow">
<div class="card-body">
<div class="card-row">
<div class="autofit-col align-self-start" style="font-size:4.5rem">
<svg class="lexicon-icon lexicon-icon-arquivo-pdf text-tertiary mt-1" focusable="false" id="kkcf" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#arquivo-pdf" /></svg> </div>
<div class="autofit-col autofit-col-expand autofit-col-gutters">
<div class="card-title"><div class="h6"><a href="https://www.bnb.gov.br/documents/224785/284818/Perguntas+e+Respostas+de+Fundos+de+Investimento.pdf/234b7011-54ae-e8e3-8615-a148fe21bc69?version=1.1&t=1630351140154&download=true" class="stretched-link">Perguntas e Respostas de Fundos de Investimento.pdf</a></div></div>
<div class="card-subtitle">
<span class="font-weight-bold">Atualizado em: </span>30/08/2021
</div>
<div class="card-detail">
<span class="label label-unstyled text-uppercase" id="sktk"><span class="label-item label-item-expand">pdf</span></span><span class="label label-unstyled text-uppercase" id="wdzb"><span class="label-item label-item-expand">44 KB</span></span> </div>
</div>
</div>
</div>
</div></div>
</div>
</div>
</div>
</section>]]>
|
4422
| <![CDATA[<div class="autofit-col align-self-start" style="font-size:4.5rem">
<svg class="lexicon-icon lexicon-icon-arquivo-pdf text-tertiary mt-1" focusable="false" id="tail" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#arquivo-pdf" /></svg> </div>]]>
|
4453
| <![CDATA[<div class="autofit-col align-self-start" style="font-size:4.5rem">
<svg class="lexicon-icon lexicon-icon-arquivo-pdf text-tertiary mt-1" focusable="false" id="kkcf" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#arquivo-pdf" /></svg> </div>]]>
|
4489
| <![CDATA[<section class="bg-primary-l1" style="">
<div class="container px-3 py-0">
<div class="row ">
<div class="col-md-12">
<div id="fragment-0-lbug" > <div class="py-3"></div></div><script>(function() {var fragmentElement = document.querySelector('#fragment-0-lbug'); var configuration = {"height":"py-3"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>
</div>
</div>
</div>
</section>]]>
|
4533
| <![CDATA[<section class="bg-tertiary" style="">
<div class="container px-3 py-5">
<div class="row ">
<div class="col-md-12">
<div id="fragment-47411-iqhq" > <div class="card mb-3 shadow ">
<div class="d-flex flex-column flex-lg-row">
<div class="px-5 pt-5 pb-4 pb-lg-5 pr-lg-5">
<div class="lexicon-icon-box rounded-circle bg-quaternary text-primary">
<svg class="lexicon-icon lexicon-icon-info-book" focusable="false" id="ipce" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#info-book" /></svg> </div>
</div>
<div class="px-5 pb-5 pl-lg-0 pt-lg-5">
<div class="h4">
<div>Informações Legais</div>
</div>
<div>
<div><p>Conheça as políticas, normas e códigos que formam a base legal da gestão de Fundos de Investimento no Banco do Nordeste.</p>
</div>
</div>
<div><a class="btn btn-outline-primary" href="/fundos-de-investimento/informacoes-legais" rel="">Acessar Informações Legais</a></div>
</div>
</div>
</div>
</div><style>.fragment_169311 {
}</style><script>(function() {var fragmentElement = document.querySelector('#fragment-47411-iqhq'); var configuration = {"spritemap":"clay","symbol":"info-book","cardShadow":"shadow","borderRadius":"","externalLink":false,"bottomSpacing":"mb-3","btnStyle":"btn-outline-primary","btLegend":"","cardOrientation":"d-flex flex-column flex-lg-row","iconStyle":"bg-quaternary text-primary","hasButton":true,"iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('div.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
<div id="fragment-47411-vpjx" > <div class="card mb-3 shadow ">
<div class="d-flex flex-column flex-lg-row">
<div class="px-5 pt-5 pb-4 pb-lg-5 pr-lg-5">
<div class="lexicon-icon-box rounded-circle bg-quaternary text-primary">
<svg class="lexicon-icon lexicon-icon-ficha-cadastral" focusable="false" id="jlog" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#ficha-cadastral" /></svg> </div>
</div>
<div class="px-5 pb-5 pl-lg-0 pt-lg-5">
<div class="h4">
<div>Credenciamento RPPS</div>
</div>
<div>
<div><p>Informações e documentos relacionados ao credenciamento de RPPS no Banco do Nordeste.</p>
</div>
</div>
<div><a class="btn btn-outline-primary" href="/fundos-de-investimento/credenciamento-rpps" rel="">Acessar Credenciamento RPPS</a></div>
</div>
</div>
</div>
</div><script>(function() {var fragmentElement = document.querySelector('#fragment-47411-vpjx'); var configuration = {"spritemap":"bnb","symbol":"ficha-cadastral","cardShadow":"shadow","borderRadius":"","externalLink":false,"bottomSpacing":"mb-3","btnStyle":"btn-outline-primary","btLegend":"","cardOrientation":"d-flex flex-column flex-lg-row","iconStyle":"bg-quaternary text-primary","hasButton":true,"iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('div.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
<div id="fragment-47411-ywto" > <div class="card mb-3 shadow ">
<div class="d-flex flex-column flex-lg-row">
<div class="px-5 pt-5 pb-4 pb-lg-5 pr-lg-5">
<div class="lexicon-icon-box rounded-circle bg-quaternary text-primary">
<svg class="lexicon-icon lexicon-icon-info-book" focusable="false" id="ayvj" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/clay/icons.svg#info-book" /></svg> </div>
</div>
<div class="px-5 pb-5 pl-lg-0 pt-lg-5">
<div class="h4">
<div>Informes</div>
</div>
<div>
<div><p>Informes relacionados aos Fundos de Investimento.</p>
</div>
</div>
<div><a class="btn btn-outline-primary" href="/fundos-de-investimento/informes" rel="">Acessar Informes</a></div>
</div>
</div>
</div>
</div><script>(function() {var fragmentElement = document.querySelector('#fragment-47411-ywto'); var configuration = {"spritemap":"clay","symbol":"info-book","cardShadow":"shadow","borderRadius":"","externalLink":false,"bottomSpacing":"mb-3","btnStyle":"btn-outline-primary","btLegend":"","cardOrientation":"d-flex flex-column flex-lg-row","iconStyle":"bg-quaternary text-primary","hasButton":true,"iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('div.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>
</div>
</div>
</div>
</section>]]>
|
4649
| <![CDATA[<section class="bg-" style="">
<div class="container px-3 py-4">
<div class="row ">
<div class="col-md-12">
<div id="fragment-0-bely" >
<div class="portlet-boundary portlet-boundary_com_liferay_journal_content_web_portlet_JournalContentPortlet_ portlet-static portlet-static-end portlet-journal-content " id="p_p_id_com_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_HxzdK3lVg8Ro_">
<span id="p_com_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_HxzdK3lVg8Ro"></span>
<section class="portlet" id="portlet_com_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_HxzdK3lVg8Ro">
<div class="portlet-content">
<div class="autofit-float autofit-row portlet-header mb-0">
<div class="autofit-col autofit-col-end">
<div class="autofit-section">
<div class="visible-interaction">
</div>
</div>
</div>
</div>
<div class=" portlet-content-container">
<div class="portlet-body">
<div class="" data-fragments-editor-item-id="27801-260887" data-fragments-editor-item-type="fragments-editor-mapped-item">
<div class="journal-content-article " data-analytics-asset-id="260885" data-analytics-asset-title="Rodapé de Fundos de Investimento" data-analytics-asset-type="web-content">
<div class="row">
<div class="col">
<p>O investimento em fundo de Investimento não é garantido pelo Fundo Garantidor de Crédito - FGC. A rentabilidade obtida no passado não representa garantia de resultados futuros, e a rentabilidade divulgada não é líquida de impostos. Leia o Formulário de Informações Complementares, a Lâmina de Informações Essenciais e o Regulamento do Fundo de Investimento antes de investir.</p>
<p>O Banco do Nordeste é distribuidor exclusivo dos fundos de investimento que gere, não estando sujeito a transferi-los a outra instituição distribuidora, conforme estabelecido nas Regras e Procedimentos Anbima para Transferência de Fundos de Investimento. A instituição é remunerada pela distribuição do produto. Para mais detalhes, acesse a página de <a href="/fundos-de-investimento/informacoes-legais">Informações Legais relacionadas a Fundos de Investimento</a>.</p>
</div>
</div>
<div class="row">
<div class="col"><strong>Serviço de Atendimento ao Cotista</strong><br>
Telefone: <a href="8532993544">(85) 3299-3544</a><br>
E-mail: <a href="mailto:fundos@bnb.gov.br" target="_blank">fundos@bnb.gov.br</a><br>
Rede de Agências: ;<a href="/agencias">Consulte aqui</a> ;</div>
<div class="col"><strong>Ouvidoria</strong><br>
Telefone: <a href="08000333033">0800 033 3033</a><br>
E-mail: <a href="mailto:ouvidoria@bnb.gov.br" target="_blank">ouvidoria@bnb.gov.br</a><br>
;</div>
<div class="col"><strong>Serviço de Atendimento ao Cotista (Administrador)</strong><br>
Telefone: <a href="08007627777">0800 762 7777</a><br>
Telefone para clientes no exterior: <a href="551130123336">(+55) (11) 3012 3336</a><br>
;</div>
</div>
<div class="row">
<div class="col">
<p><img src="/documents/224785/260642/Selo-Distribuicao-Produtos-Investimento-Colorido-Anbima-01.png/7ae30601-f2ed-3971-60c3-44c6b79560f8?t=1629996801653" style="height: auto; width: 211px;" width="211"><br>
;</p>
</div>
<div class="col"><img src="/documents/224785/260642/Selo-Gestao-Recursos-Colorido-Anbima-01.png/1b823d85-5c14-7906-95a4-8c8b937ec9f3?t=1629996778535" style="height: auto; width: 211px;" width="211"><br>
;</div>
<div class="col"><img src="/documents/224785/260642/Selo-SQ-Colorido-Anbima-01.png/18fce5ba-239b-f3ee-0900-65684a856ccd?t=1629996792817" style="height: auto; width: 211px;" width="211"><br>
;</div>
<div class="col"><a href="https://comoinvestir.anbima.com.br/" target="_blank"><img src="/documents/224785/260642/Como+Investir+-+Anbima.png/20b63adc-a1f7-0742-3db3-25f48bb2ec3c?t=1629996813520" style="height: auto; width: 211px;" width="211"></a><br>
;</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</div>
</div>
</section>]]>
|
4967
| <![CDATA[<img src="/documents/224785/260642/Selo-Distribuicao-Produtos-Investimento-Colorido-Anbima-01.png/7ae30601-f2ed-3971-60c3-44c6b79560f8?t=1629996801653" style="height: auto; width: 211px;" width="211">]]>
|
4971
| <![CDATA[<img src="/documents/224785/260642/Selo-Gestao-Recursos-Colorido-Anbima-01.png/1b823d85-5c14-7906-95a4-8c8b937ec9f3?t=1629996778535" style="height: auto; width: 211px;" width="211">]]>
|
4974
| <![CDATA[<img src="/documents/224785/260642/Selo-SQ-Colorido-Anbima-01.png/18fce5ba-239b-f3ee-0900-65684a856ccd?t=1629996792817" style="height: auto; width: 211px;" width="211">]]>
|
4977
| <![CDATA[<img src="/documents/224785/260642/Como+Investir+-+Anbima.png/20b63adc-a1f7-0742-3db3-25f48bb2ec3c?t=1629996813520" style="height: auto; width: 211px;" width="211">]]>
|
5355
| <![CDATA[<a aria-label="Instagram" href="https://www.instagram.com/bancodonordeste/" target="_blank" class="mx-2 lexicon-icon-box bg-dark text-white rounded-circle" style="font-size:1.3em" role="menuitem">
<span>
<svg class="lexicon-icon lexicon-icon-social-instagram" focusable="false" id="bqpx" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#social-instagram"/></svg> </span>
<span class="hide-accessible">Instagram</span>
</a>]]>
|
5360
| <![CDATA[<a aria-label="Youtube" href="https://www.youtube.com/bancodonordesteoficial" target="_blank" class="mx-2 lexicon-icon-box bg-dark text-white rounded-circle" style="font-size:1.3em" role="menuitem">
<span>
<svg class="lexicon-icon lexicon-icon-social-youtube" focusable="false" id="fpej" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#social-youtube"/></svg> </span>
<span class="hide-accessible">Youtube</span>
</a>]]>
|
5365
| <![CDATA[<a aria-label="Facebook" href="https://www.facebook.com/bancodonordeste" target="_blank" class="mx-2 lexicon-icon-box bg-dark text-white rounded-circle" style="font-size:1.3em" role="menuitem">
<span>
<svg class="lexicon-icon lexicon-icon-social-facebook" focusable="false" id="qviq" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#social-facebook"/></svg> </span>
<span class="hide-accessible">Facebook</span>
</a>]]>
|
5370
| <![CDATA[<a aria-label="Twitter" href="https://twitter.com/BancodoNordeste" target="_blank" class="mx-2 lexicon-icon-box bg-dark text-white rounded-circle" style="font-size:1.3em" role="menuitem">
<span>
<svg class="lexicon-icon lexicon-icon-social-twitter" focusable="false" id="ljni" role="presentation"><use xlink:href="https://www.bnb.gov.br/o/bnb-dxp-theme/images/bnb/icons.svg#social-twitter"/></svg> </span>
<span class="hide-accessible">Twitter</span>
</a>]]>
|
5453
| <![CDATA[<img alt="Selo da Ética" style="width:154px" src="https://www.bnb.gov.br/o/bnb-dxp-theme/images/selo-etica.svg" />]]>
|
5456
| <![CDATA[<img alt="Selo da Lei de Acesso à Informação" style="width:42px" src="https://www.bnb.gov.br/o/bnb-dxp-theme/images/selo-lai.svg" />]]>
|
730
| <![CDATA[<style data-senna-track="temporary" type="text/css">
</style>]]>
|
1973
| <![CDATA[<style>
.bg-bikb { background-image: url(/documents/44549/0/empresario-sorrindo-segurando-tablet-1.jpg/e2200b11-9603-b34a-c01c-fffbdc961994?t=1630000091670&download=true); }
@media (max-width:1024px){ .bg-bikb { background-image: url(/o/adaptive-media/image/261140/md/empresario-sorrindo-segurando-tablet-1.jpg?t=1630000091670) } }
@media (max-width:1366px) and (min-width:1024px){ .bg-bikb { background-image: url(/o/adaptive-media/image/261140/lg/empresario-sorrindo-segurando-tablet-1.jpg?t=1630000091670) } }
@media (max-width:1600px) and (min-width:1366px){ .bg-bikb { background-image: url(/o/adaptive-media/image/261140/xl/empresario-sorrindo-segurando-tablet-1.jpg?t=1630000091670) } }
@media (max-width:1920px) and (min-width:1600px){ .bg-bikb { background-image: url(/o/adaptive-media/image/261140/xxl/empresario-sorrindo-segurando-tablet-1.jpg?t=1630000091670) } }
</style>]]>
|
2015
| <![CDATA[<style>.banner-breadcrumb {
background-size: cover;
background-repeat: no-repeat;
background-color: var(--light);
}
.banner-breadcrumb .container { min-height: 420px; }
.banner-breadcrumb .breadcrumb { background-color: transparent }
.banner-breadcrumb .breadcrumb-item a:hover { text-decoration:none; }
.banner-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20class='lexicon-icon-outline'%20d='M204.3%20408.4l136.1-136.1c9-9%209-23.7%200-32.7L204.3%20103.5c-14.6-14.6-39.5-4.3-39.5%2016.4V392c0%2020.7%2024.9%2031%2039.5%2016.4z'/%3E%3C/svg%3E");
}
.banner-breadcrumb.invertColor .breadcrumb-item,
.banner-breadcrumb.invertColor .breadcrumb-item a,
.banner-breadcrumb.invertColor .breadcrumb-item a:hover { color:var(--white) }
.banner-breadcrumb.invertColor .breadcrumb-item + .breadcrumb-item::before {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20class='lexicon-icon-outline'%20d='M204.3%20408.4l136.1-136.1c9-9%209-23.7%200-32.7L204.3%20103.5c-14.6-14.6-39.5-4.3-39.5%2016.4V392c0%2020.7%2024.9%2031%2039.5%2016.4z'%20fill='%23fff'/%3E%3C/svg%3E");
}
.banner-breadcrumb.useShadow .breadcrumb-item { text-shadow: 0 0 8px rgba(255,255,255,0.5) !important; }
.banner-breadcrumb.invertColor.useShadow .breadcrumb-item { text-shadow: 0 0 8px rgba(0,0,0,0.5) !important; }
.banner-breadcrumb.invertColor.useShadow svg.lexicon-icon {
-webkit-filter: drop-shadow(0 0 4px rgba(0, 0, 0, .5));
filter: drop-shadow(0 0 4px rgba(0, 0, 0, .5));
}
.shadow-dark { text-shadow: 0 0 8px rgba(0,0,0,0.5); }
.shadow-light { text-shadow: 0 0 8px rgba(255,255,255,0.5); }
.opacity-wine { background-color: #640f2488; }
.opacity-dark { background-color: #0008; }
.opacity-light { background-color: #fff8; }
.gradient-wine { background: linear-gradient(#640f2400 20%, #640f2488 60%, #640f24aa 80%); }
.gradient-dark { background: linear-gradient(#0000 20%, #0008 60%, #000a 80%); }
.gradient-light { background: linear-gradient(#fff0 20%, #fff8 60%, #fffa 80%); }
.gradient-salmon { background: linear-gradient(#ffe6cc00 20%, #ffe6cc88 60%, #ffe6ccaa 80%); }
@media (min-width:576px) { .nofx-sm { background:none; }}
@media (min-width:768px) { .nofx-md { background:none; }}
@media (min-width:992px) { .nofx-lg { background:none; }}
@media (min-width:1200px) { .nofx-xl { background:none; }}
@media (min-width:1400px) { .nofx-xxl { background:none; }}</style>]]>
|
2985
| <![CDATA[<style>.fragment-heading-text-colored a {
color: inherit;
}</style>]]>
|
3050
| <![CDATA[<style>.fragment_136960 {
}</style>]]>
|
3170
| <![CDATA[<style>.page-item button {
border-radius: 2rem !important;
}</style>]]>
|
4067
| <![CDATA[<style>.fragment_251720 {
}</style>]]>
|
4562
| <![CDATA[<style>.fragment_169311 {
}</style>]]>
|
2514
| <![CDATA[<a role="button" title="Limpar Filtro" href="#0" class="btn btn-outline-primary text-nowrap" onclick="resetFiltro(this.value, this.id)">Limpar Filtros</a>]]>
|
101
| <![CDATA[<script id="f5_cspm">(function(){var f5_cspm={f5_p:'ONGEPDIGGNHHHEKHELDBNDOLCCDCLKFIKGJOPBGHAKPPCFCDJBBMKIGJFBIJHLBHGIABLBHNAAFKBKBHGEHAHHOCAAGKIKDBMBELEBINHKNJPPDFJLLMINFJGKCNFDLJ',setCharAt:function(str,index,chr){if(index>str.length-1)return str;return str.substr(0,index)+chr+str.substr(index+1);},get_byte:function(str,i){var s=(i/16)|0;i=(i&15);s=s*32;return((str.charCodeAt(i+16+s)-65)<<4)|(str.charCodeAt(i+s)-65);},set_byte:function(str,i,b){var s=(i/16)|0;i=(i&15);s=s*32;str=f5_cspm.setCharAt(str,(i+16+s),String.fromCharCode((b>>4)+65));str=f5_cspm.setCharAt(str,(i+s),String.fromCharCode((b&15)+65));return str;},set_latency:function(str,latency){latency=latency&0xffff;str=f5_cspm.set_byte(str,40,(latency>>8));str=f5_cspm.set_byte(str,41,(latency&0xff));str=f5_cspm.set_byte(str,35,2);return str;},wait_perf_data:function(){try{var wp=window.performance.timing;if(wp.loadEventEnd>0){var res=wp.loadEventEnd-wp.navigationStart;if(res<60001){var cookie_val=f5_cspm.set_latency(f5_cspm.f5_p,res);window.document.cookie='f5avr0961558605aaaaaaaaaaaaaaaa_cspm_='+encodeURIComponent(cookie_val)+';path=/';}
return;}}
catch(err){return;}
setTimeout(f5_cspm.wait_perf_data,100);return;},go:function(){var chunk=window.document.cookie.split(/\s*;\s*/);for(var i=0;i<chunk.length;++i){var pair=chunk[i].split(/\s*=\s*/);if(pair[0]=='f5_cspm'&&pair[1]=='1234')
{var d=new Date();d.setTime(d.getTime()-1000);window.document.cookie='f5_cspm=;expires='+d.toUTCString()+';path=/;';setTimeout(f5_cspm.wait_perf_data,100);}}}}
f5_cspm.go();}());</script>]]>
|
230
| <![CDATA[<script data-senna-track="temporary" type="text/javascript">
// <![CDATA[
var Liferay = Liferay || {};
Liferay.Browser = {
acceptsGzip: function() {
return false;
},
getMajorVersion: function() {
return 0;
},
getRevision: function() {
return '';
},
getVersion: function() {
return '';
},
isAir: function() {
return false;
},
isChrome: function() {
return false;
},
isEdge: function() {
return false;
},
isFirefox: function() {
return false;
},
isGecko: function() {
return false;
},
isIe: function() {
return false;
},
isIphone: function() {
return false;
},
isLinux: function() {
return false;
},
isMac: function() {
return false;
},
isMobile: function() {
return false;
},
isMozilla: function() {
return false;
},
isOpera: function() {
return false;
},
isRtf: function() {
return false;
},
isSafari: function() {
return false;
},
isSun: function() {
return false;
},
isWebKit: function() {
return false;
},
isWindows: function() {
return false;
}
};
Liferay.Data = Liferay.Data || {};
Liferay.Data.ICONS_INLINE_SVG = true;
Liferay.Data.NAV_SELECTOR = '#navigation';
Liferay.Data.NAV_SELECTOR_MOBILE = '#navigationCollapse';
Liferay.Data.isCustomizationView = function() {
return false;
};
Liferay.Data.notices = [
null
];
Liferay.PortletKeys = {
DOCUMENT_LIBRARY: 'com_liferay_document_library_web_portlet_DLPortlet',
DYNAMIC_DATA_MAPPING: 'com_liferay_dynamic_data_mapping_web_portlet_DDMPortlet',
ITEM_SELECTOR: 'com_liferay_item_selector_web_portlet_ItemSelectorPortlet'
};
Liferay.PropsValues = {
JAVASCRIPT_SINGLE_PAGE_APPLICATION_TIMEOUT: 0,
NTLM_AUTH_ENABLED: false,
UPLOAD_SERVLET_REQUEST_IMPL_MAX_SIZE: 104857600
};
Liferay.ThemeDisplay = {
getLayoutId: function() {
return '494';
},
getLayoutRelativeControlPanelURL: function() {
return '/group/guest/~/control_panel/manage';
},
getLayoutRelativeURL: function() {
return '/web/guest/fundos-de-investimento';
},
getLayoutURL: function() {
return 'https://www.bnb.gov.br/web/guest/fundos-de-investimento';
},
getParentLayoutId: function() {
return '436';
},
isControlPanel: function() {
return false;
},
isPrivateLayout: function() {
return 'false';
},
isVirtualLayout: function() {
return false;
},
getBCP47LanguageId: function() {
return 'pt-BR';
},
getCanonicalURL: function() {
return 'https\x3a\x2f\x2fwww\x2ebnb\x2egov\x2ebr\x2ffundos-de-investimento';
},
getCDNBaseURL: function() {
return 'https://www.bnb.gov.br';
},
getCDNDynamicResourcesHost: function() {
return '';
},
getCDNHost: function() {
return '';
},
getCompanyGroupId: function() {
return '20128';
},
getCompanyId: function() {
return '20101';
},
getDefaultLanguageId: function() {
return 'pt_BR';
},
getDoAsUserIdEncoded: function() {
return '';
},
getLanguageId: function() {
return 'pt_BR';
},
getParentGroupId: function() {
return '20124';
},
getPathContext: function() {
return '';
},
getPathImage: function() {
return '/image';
},
getPathJavaScript: function() {
return '/o/frontend-js-web';
},
getPathMain: function() {
return '/c';
},
getPathThemeImages: function() {
return 'https://www.bnb.gov.br/o/bnb-dxp-theme/images';
},
getPathThemeRoot: function() {
return '/o/bnb-dxp-theme';
},
getPlid: function() {
return '599';
},
getPortalURL: function() {
return 'https://www.bnb.gov.br';
},
getRealUserId: function() {
return '20105';
},
getScopeGroupId: function() {
return '20124';
},
getScopeGroupIdOrLiveGroupId: function() {
return '20124';
},
getSessionId: function() {
return '';
},
getSiteAdminURL: function() {
return 'https://www.bnb.gov.br/group/guest/~/control_panel/manage?p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view';
},
getSiteGroupId: function() {
return '20124';
},
getURLControlPanel: function() {
return '/group/control_panel?refererPlid=599';
},
getURLHome: function() {
return 'https\x3a\x2f\x2fwww\x2ebnb\x2egov\x2ebr\x2fweb\x2fguest';
},
getUserEmailAddress: function() {
return '';
},
getUserId: function() {
return '20105';
},
getUserName: function() {
return '';
},
isAddSessionIdToURL: function() {
return false;
},
isImpersonated: function() {
return false;
},
isSignedIn: function() {
return false;
},
isStagedPortlet: function() {
return false;
},
isStateExclusive: function() {
return false;
},
isStateMaximized: function() {
return false;
},
isStatePopUp: function() {
return false;
}
};
var themeDisplay = Liferay.ThemeDisplay;
Liferay.AUI = {
getAvailableLangPath: function() {
return 'available_languages.jsp?browserId=other&themeId=portalbancodonordeste_WAR_bnbdxptheme&colorSchemeId=01&minifierType=js&languageId=pt_BR&t=1695350076125';
},
getCombine: function() {
return true;
},
getComboPath: function() {
return '/combo/?browserId=other&minifierType=&languageId=pt_BR&t=1670770798365&';
},
getDateFormat: function() {
return '%d/%m/%Y';
},
getEditorCKEditorPath: function() {
return '/o/frontend-editor-ckeditor-web';
},
getFilter: function() {
var filter = 'raw';
filter = 'min';
return filter;
},
getFilterConfig: function() {
var instance = this;
var filterConfig = null;
if (!instance.getCombine()) {
filterConfig = {
replaceStr: '.js' + instance.getStaticResourceURLParams(),
searchExp: '\\.js$'
};
}
return filterConfig;
},
getJavaScriptRootPath: function() {
return '/o/frontend-js-web';
},
getLangPath: function() {
return 'aui_lang.jsp?browserId=other&themeId=portalbancodonordeste_WAR_bnbdxptheme&colorSchemeId=01&minifierType=js&languageId=pt_BR&t=1670770798365';
},
getPortletRootPath: function() {
return '/html/portlet';
},
getStaticResourceURLParams: function() {
return '?browserId=other&minifierType=&languageId=pt_BR&t=1670770798365';
}
};
Liferay.authToken = 'BZboTXSV';
Liferay.currentURL = '\x2ffundos-de-investimento';
Liferay.currentURLEncoded = '\x252Ffundos-de-investimento';
// ]]>
</script>]]>
|
579
| <![CDATA[<script data-senna-track="temporary" type="text/javascript">
// <![CDATA[
// ]]>
</script>]]>
|
602
| <![CDATA[<script data-senna-track="permanent" id="googleAnalyticsScript" type="text/javascript">
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function() {
var arrayValue = i[r].q || [];
i[r].q = arrayValue;
(i[r].q).push(arguments);
};
i[r].l = 1 * new Date();
a = s.createElement(o);
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'G-0W34JDGDKK', 'auto');
ga('send', 'pageview');
Liferay.on(
'endNavigate',
function(event) {
ga('set', 'page', event.path);
ga('send', 'pageview');
}
);
</script>]]>
|
661
| <![CDATA[<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-0W34JDGDKK');
</script>]]>
|
777
| <![CDATA[<script type="text/javascript">
// <![CDATA[
Liferay.Loader.require('frontend-js-spa-web@3.0.53/liferay/init.es', function(frontendJsSpaWeb3053LiferayInitEs) {
(function(){
var frontendJsSpaWebLiferayInitEs = frontendJsSpaWeb3053LiferayInitEs;
(function() {var $ = AUI.$;var _ = AUI._;
Liferay.SPA = Liferay.SPA || {};
Liferay.SPA.cacheExpirationTime = -1;
Liferay.SPA.clearScreensCache = true;
Liferay.SPA.debugEnabled = false;
Liferay.SPA.excludedPaths = ["/c/document_library","/documents","/image"];
Liferay.SPA.loginRedirect = '';
Liferay.SPA.navigationExceptionSelectors = ':not([target="_blank"]):not([data-senna-off]):not([data-resource-href]):not([data-cke-saved-href]):not([data-cke-saved-href])';
Liferay.SPA.requestTimeout = 0;
Liferay.SPA.userNotification = {
message: 'Parece que isso está demorando mais do que o esperado.',
timeout: 30000,
title: 'Oops'
};
frontendJsSpaWebLiferayInitEs.default.init(
function(app) {
app.setPortletsBlacklist({"com_liferay_site_navigation_directory_web_portlet_SitesDirectoryPortlet":true,"com_liferay_nested_portlets_web_portlet_NestedPortletsPortlet":true,"com_liferay_login_web_portlet_LoginPortlet":true,"com_liferay_login_web_portlet_FastLoginPortlet":true});
app.setValidStatusCodes([221,490,494,499,491,492,493,495,220]);
}
);})();})();
});
// ]]>
</script>]]>
|
806
| <![CDATA[<script type="text/javascript">
// <![CDATA[
Liferay.on(
'ddmFieldBlur', function(event) {
if (window.Analytics) {
Analytics.send(
'fieldBlurred',
'Form',
{
fieldName: event.fieldName,
focusDuration: event.focusDuration,
formId: event.formId,
page: event.page
}
);
}
}
);
Liferay.on(
'ddmFieldFocus', function(event) {
if (window.Analytics) {
Analytics.send(
'fieldFocused',
'Form',
{
fieldName: event.fieldName,
formId: event.formId,
page: event.page
}
);
}
}
);
Liferay.on(
'ddmFormPageShow', function(event) {
if (window.Analytics) {
Analytics.send(
'pageViewed',
'Form',
{
formId: event.formId,
page: event.page,
title: event.title
}
);
}
}
);
Liferay.on(
'ddmFormSubmit', function(event) {
if (window.Analytics) {
Analytics.send(
'formSubmitted',
'Form',
{
formId: event.formId
}
);
}
}
);
Liferay.on(
'ddmFormView', function(event) {
if (window.Analytics) {
Analytics.send(
'formViewed',
'Form',
{
formId: event.formId,
title: event.title
}
);
}
}
);
// ]]>
</script>]]>
|
918
| <![CDATA[<script data-senna-track="temporary" type="text/javascript">
if (window.Analytics) {
window._com_liferay_document_library_analytics_isViewFileEntry = false;
}
</script>]]>
|
1054
| <![CDATA[<script>
new window.VLibras.Widget('https://vlibras.gov.br/app');
</script>]]>
|
2820
| <![CDATA[<script>
var divrisco = document.querySelector("#risco");
var divclasse = document.querySelector("#classe").value;
var divcategoria = document.querySelector("#segmento").value;
//var divliquidez = document.querySelector("#liquidez").value;
var filtros = ["risco","classe","segmento"]
var risco;
var classe;
var categoria;
var fundos = document.querySelectorAll("#fundos tbody tr");
var queryString = window.location.search;
var urlParams = new URLSearchParams(queryString);
filtros.forEach(function(nome, index){
if(urlParams.has(nome)){
document.querySelector("#"+nome).value = urlParams.get(nome);
fundoFiltro(urlParams.get(nome), nome);
}
})
function resetFiltro(valor, nome){
filtros.forEach(function(elem, index){
document.querySelector("#"+elem).value = "";
})
//Limpa todos os diplays none
fundos.forEach(function(elem, index){
elem.classList.remove("d-none")
})
}
function fundoFiltro(valor, nome){
// Limpa todos os fundos com valores da categoria selecionada
var temp = document.querySelectorAll("#"+nome+" option");
temp.forEach(function(elem, index){
fundos.forEach(function(elem2, index2){
if(elem2.classList.contains(elem.value)){
elem2.classList.add("d-none")
}
})
})
//Remove o display none dos fundos selecionado
fundos.forEach(function(elem, index){
var selecteFiltros = [];
filtros.forEach(function(elem2, index2){
if(document.querySelector("#"+elem2).value != ""){
selecteFiltros.push(document.querySelector("#"+elem2).value)
}
})
var itemfundo = true;
selecteFiltros.forEach(function(elem3,index3){
if(elem.classList.contains(elem3) == false){
itemfundo = false
}
})
if(itemfundo){
elem.classList.remove("d-none")
}
})
}
</script>]]>
|
2967
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-0-epvx'); var configuration = {"height":"py-4"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>]]>
|
2987
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-0-jjay'); var configuration = {"textAlign":"left","bottomSpacing":"3","headingLevel":"h2","textColor":{"cssClass":"white","rgbValue":"rgb(230, 230, 230)"}};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>]]>
|
3114
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-0-aomy'); var configuration = {"height":"py-3"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>]]>
|
3161
| <![CDATA[<script id="data_reci" type="application/json">{"title":"Rentabilidade dos Fundos de Investimento","type":0,"typeSettings":{"anyClassTypeDLFileEntryAssetRendererFactory":"47053","orderByColumn1":"modifiedDate"}}</script>]]>
|
3172
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-2316268-reci'); var configuration = {"contentSetId":"2654522","showDateConversions":false,"showModifiedDate":true,"showRefDate":false,"textAlign":"left","pageSize":"50","showYear":false,"groupBy":"noGroup","textColor":{"cssClass":"","rgbValue":""},"useTitle":true,"usePagination":false,"bottomSpacing":"3","labelForYear":"Ocorrido em","useContentSetTitle":false,"labelForRefDate":"Referente a","headingLevel":"h2","showCreateDate":true,"activeDebug":false};const editMode = document.body.classList.contains('has-edit-mode-menu')
const apiURL = `${Liferay.ThemeDisplay.getPortalURL()}/o/headless-delivery`
const contentSetsEndPoint = `/v1.0/content-sets/${configuration.contentSetId}/content-set-elements`
const restrictFields = 'title,content.contentUrl,content.dateCreated,content.dateModified,content.documentType,content.fileExtension,content.sizeInBytes'
const params = { fields: restrictFields, 'pageSize': configuration.pageSize, 'page': 1 }
const pathThemeImages = Liferay.ThemeDisplay.getPathThemeImages()
const spritemapBNB = `${pathThemeImages}/bnb/icons.svg`
const spritemapClay = `${pathThemeImages}/clay/icons.svg`
const scriptAssetListJson = fragmentElement.querySelector(`script#data_${fragmentElement.id.slice(-4)}`)
const assetListObject = (scriptAssetListJson) ? JSON.parse(scriptAssetListJson.text) : null
const documentsList = fragmentElement.querySelector('.documents-list')
const loadingAnimation = fragmentElement.querySelector('.loading-animation')
const orderByYearAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência', 'ddm__keyword__47054__Ano']
const orderByMonthYearAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência']
const orderByDayAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência']
const fileEntryTypes = { 'docOrdin': 47046, 'docAnual': 47053 }
const validity = (assetListObject) ? validateConfiguration() : null
validity && init()
// funcao de inicialização
function init() {
fragmentElement.classList.add('mb-4')
editMode && reportConstraints()
fetchDocumentsPage()
}
// constrói um objeto para verificar status de validade de algumas configurações
function validateConfiguration() {
let orderByColumn = assetListObject.typeSettings.orderByColumn1
let orderByColumnName = getOrderByFieldName(orderByColumn)
let canGroupByYear = orderByYearAttrs.includes(orderByColumn)
let canGroupByMonthYear = orderByMonthYearAttrs.includes(orderByColumn)
let canGroupByDay = orderByDayAttrs.includes(orderByColumn)
let canShowRefDate = (assetListObject.typeSettings.anyClassTypeDLFileEntryAssetRendererFactory == fileEntryTypes.docOrdin)
let canShowYear = (assetListObject.typeSettings.anyClassTypeDLFileEntryAssetRendererFactory == fileEntryTypes.docAnual)
let validityState = {
'canGroupByYear': {
'state': canGroupByYear,
'msg' : canGroupByYear ? '' : `A coleção não pode ser agrupada por ano, pois está ordenada por ${orderByColumnName}.`
},
'canGroupByMonthYear': {
'state': canGroupByMonthYear,
'msg' : canGroupByMonthYear ? '' : `A coleção não pode ser agrupada por mês e ano, pois está ordenada por ${orderByColumnName}.`
},
'canGroupByDay': {
'state': canGroupByDay,
'msg' : canGroupByDay ? '' : `A coleção não pode ser agrupada por dia, pois está ordenada por ${orderByColumnName}.`
},
'canShowRefDate': {
'state': canShowRefDate,
'msg' : canShowRefDate ? '' : 'Não é possível mostrar o campo Data de Referência. Esse metadado existe apenas em coleções de Documentos Ordinários.'
},
'canShowYear': {
'state': canShowYear,
'msg' : canShowYear ? '' : 'Não é possível mostrar o campo Ano. Esse metadado existe apenas em coleções de Documentos Anuais.'
}
}
return validityState
}
// alerta sobre restrições na configuração
function reportConstraints() {
cleanAlerts()
// alerta sobre restrições
let validationMessages = []
configuration.groupBy == 'groupByYear' && !validity.canGroupByYear.state && validationMessages.push(validity.canGroupByYear.msg)
configuration.groupBy == 'groupByMonthYear' && !validity.canGroupByMonthYear.state && validationMessages.push(validity.canGroupByMonthYear.msg)
configuration.groupBy == 'groupByDay' && !validity.canGroupByDay.state && validationMessages.push(validity.canGroupByDay.msg)
configuration.showRefDate && !validity.canShowRefDate.state && validationMessages.push(validity.canShowRefDate.msg)
configuration.showYear && !validity.canShowYear.state && validationMessages.push(validity.canShowYear.msg)
validationMessages.length > 0 && displayAlert('danger', 'Configuração inválida', validationMessages.join('<br/>'), documentsList, 'beforebegin')
// debug
if (configuration.activeDebug) {
console.clear()
console.log('Propriedades da Coleção:')
console.log(assetListObject)
console.log('Configuração do Fragmento:')
console.log(configuration)
console.log('Validade da Configuração:')
console.log(validity)
}
}
// principal funcao para pegar os dados
function fetchDocumentsPage(page) {
params.page = (page) ? page : params.page
let request = Liferay.Util.addParams(params, apiURL+contentSetsEndPoint)
fetch(
request,
{
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}
).then(response => {
if (response.ok) {
return response.json()
}
}).then(documents => {
handleDocuments(documents)
if (editMode && configuration.activeDebug) {
console.log(`Retorno da requisição (page ${params.page}):`)
console.log(documents)
}
})
}
// manipula dados retornados da coleção
function handleDocuments(documents) {
loadingAnimation && loadingAnimation.remove()
if (documents.items.length > 0) {
switch (configuration.groupBy) {
case 'noGroup':
renderDocumentsList(documents)
break
case 'groupByYear':
(validity.canGroupByYear.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
case 'groupByMonthYear':
(validity.canGroupByMonthYear.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
case 'groupByDay':
(validity.canGroupByDay.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
}
configuration.usePagination && renderPaginationBar(documents.page, documents.lastPage, documents.totalCount)
} else {
displayAlert('info', 'Aviso', 'Não foram encontrados documentos', documentsList, 'afterbegin')
}
}
// renderiza lista agrupada
function renderDocumentsListByGroup(documents) {
let lastListGroup = documentsList.querySelector('.list-group:last-child')
let currentGroup = (lastListGroup) ? lastListGroup.dataset.group : 0
configuration.activeDebug
&& configuration.showDateConversions
&& editMode
&& console.log(`Extração do grupo a partir do campo ${getOrderByFieldName(assetListObject.typeSettings.orderByColumn1)}:`)
documents.items.forEach(doc => {
let group = getDocumentGroup(doc)
if (currentGroup != group) {
let listGroup = document.createElement('ul')
listGroup.classList.add('list-group')
listGroup.dataset.group = group
listGroup.setAttribute('aria-label', `${assetListObject.title} de ${group}`)
lastListGroup = documentsList.insertAdjacentElement('beforeend', listGroup)
lastListGroup.insertAdjacentHTML('afterbegin', renderListGroupHeader(group))
currentGroup = group
}
lastListGroup.insertAdjacentHTML('beforeend', renderListGroupItem(doc))
})
}
// extrai e retorna o dado (string) utilizado como agrupador (dia, mês ou ano) a partir do campo utilizado como primeira ordenação da coleção
function getDocumentGroup(document) {
let fieldData
let group
let dateField
let options
let test
let orderByColumn = assetListObject.typeSettings.orderByColumn1
switch (orderByColumn) {
case 'ddm__keyword__47047__DataReferência':
fieldData = document.content.documentType.contentFields[0].contentFieldValue.data
break
case 'ddm__keyword__47054__Ano':
fieldData = document.content.documentType.contentFields[0].contentFieldValue.data
break
case 'modifiedDate':
fieldData = document.content.dateModified
break
case 'createDate':
fieldData = document.content.dateCreated
break
case 'publishDate': // verificar esse caso por que não há uma campo data de publicação em coleções de documentos
fieldData = document.content.dateCreated
break
}
dateField = new Date(fieldData)
switch (configuration.groupBy) {
case 'groupByYear':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência' || orderByColumn == 'ddm__keyword__47054__Ano')
group = test ? dateField.getUTCFullYear() : dateField.getFullYear()
break
case 'groupByMonthYear':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência')
options = test ? {month:'long', year:'numeric', timeZone: 'UTC'} : { month:'long', year:'numeric' }
group = dateField.toLocaleDateString('pt-BR', options)
group = group.charAt(0).toUpperCase() + group.slice(1)
break
case 'groupByDay':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência')
options = test ? {timeZone: 'UTC'} : {}
group = dateField.toLocaleDateString('pt-BR', options)
break
}
configuration.activeDebug && configuration.showDateConversions && editMode && console.log(`${fieldData} --> ${group}`)
return group
}
// renderiza lista comum
function renderDocumentsList(documents) {
let listGroup = getNodeElement(documentsList, 'afterbegin', 'ul', '.list-group')
listGroup.setAttribute('aria-label', assetListObject.title)
documents.items.forEach(doc => {
listGroup.insertAdjacentHTML('beforeend', renderListGroupItem(doc))
})
}
// renderiza cabeçalho da lista
function renderListGroupHeader(title) {
let listHeaderHTML = `
<li class="list-group-header">
<span class="list-group-header-title"><big>${title}</big></span>
</li>
`
return listHeaderHTML
}
// renderiza um item da lista
function renderListGroupItem(document) {
let dateCreated = (configuration.showCreateDate) ? new Date(document.content.dateCreated) : null
let dateCreatedHTML = (dateCreated) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">Publicado em</span>
<span class="small">${dateCreated.toLocaleDateString('pt-BR')}</span>
</div>` : ''
let dateModified = (configuration.showModifiedDate) ? new Date(document.content.dateModified) : null
let dateModifiedHTML = (dateModified) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">Atualizado em</span>
<span class="small">${dateModified.toLocaleDateString('pt-BR')}</span>
</div>` : ''
let refDate = (configuration.showRefDate && validity.canShowRefDate.state) ? new Date(document.content.documentType.contentFields[0].contentFieldValue.data) : null
let refDateHTML = (refDate) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">${configuration.labelForRefDate}</span>
<span class="small">${refDate.toLocaleDateString('pt-BR', {timeZone: 'UTC'})}</span>
</div>` : ''
let year = (configuration.showYear && validity.canShowYear.state) ? document.content.documentType.contentFields[0].contentFieldValue.data : null
let yearHTML = (year) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">${configuration.labelForYear}</span>
<span class="small">${year}</span>
</div>` : ''
let hasMetadatas = (year || refDate || dateCreated || dateModified)
let metadataHTML = (hasMetadatas) ? `
<div class="d-flex flex-column flex-md-row">
${yearHTML}
${refDateHTML}
${dateCreatedHTML}
${dateModifiedHTML}
</div>` : ''
let listItemHTML = `
<li class="list-group-item list-group-item-flex align-items-center">
<div class="autofit-col">
<svg class="lexicon-icon text-tertiary lexicon-icon-lg" focusable="false" role="presentation"
viewBox="0 0 512 512">
<use xlink:href="${spritemapBNB}#arquivo-${document.content.fileExtension}" />
</svg>
</div>
<div class="autofit-col autofit-col-expand">
<div class="d-flex flex-column flex-lg-row justify-content-start justify-content-lg-between">
<div class="d-flex flex-column">
<span class="list-group-title">
<a href="${document.content.contentUrl}">${document.title}</a>
</span>
<span class="list-group-subtitle text-uppercase small">
${document.content.fileExtension}, ${Liferay.Util.formatStorage(document.content.sizeInBytes, {addSpaceBeforeSuffix: true})}
</span>
</div>
${metadataHTML}
</div>
</div>
</li>
`
return listItemHTML
}
// renderiza paginação
function renderPaginationBar(page, lastPage, totalCount) {
let paginationBar = getNodeElement(fragmentElement, 'beforeend', 'div', '.pagination-bar')
let lastIndex = (page === lastPage) ? totalCount : configuration.pageSize*page
let nDocuments = (page+1 === lastPage) ? totalCount - configuration.pageSize*page : configuration.pageSize
paginationBar.classList.add('justify-content-center', 'justify-content-lg-between')
let textColor = (configuration.textColor.cssClass) ? `text-${configuration.textColor.cssClass}` : ''
paginationBar.innerHTML = `
<div class="pagination-results mr-0 ${textColor}">Exibindo 1 a ${lastIndex} de ${totalCount} documentos.</div>
<ul class="pagination">
<li class="page-item">
<button class="btn btn-unstyled page-link" type="button">
Exibir mais ${nDocuments} documentos
${renderIcon('angle-down', spritemapClay, 'ml-2')}
</button>
</li>
</ul>
`
let showMoreButton = paginationBar.querySelector('button.page-link')
if (page !== lastPage) {
showMoreButton.addEventListener('click', e => {
showMoreButton.querySelector('svg').remove()
let loadAnimation = getNodeElement(showMoreButton, 'beforeend', 'span', '.loading-animation')
loadAnimation.classList.add('loading-animation-sm', 'ml-2')
fetchDocumentsPage(page+1)
})
} else {
showMoreButton.remove()
}
}
// imprime um mensagem de alerta
function displayAlert(style, title, msg, parentNode, position) {
let styleIcons = {
'danger': 'exclamation-full',
'success': 'check-circle-full',
'info': 'info-circle',
'warning': 'warning-full'
}
let html = `
<div class="alert p-4 alert-${style}" role="alert">
<span class="alert-indicator">
${renderIcon(styleIcons[style], spritemapClay, '')}
</span>
<strong>${title}:</strong>
<p class="mt-2 mb-0">${msg}</p>
</div>
`
parentNode.insertAdjacentHTML(position, html)
}
// limpa mensagens de alerta
function cleanAlerts() {
let alerts = fragmentElement.querySelectorAll('.alert')
alerts.forEach(alert => alert.remove())
}
// imprime icone SGV
function renderIcon(icon, spritemap, cssClasses) {
return `
<svg class="lexicon-icon lexicon-icon-${icon} ${cssClasses}" focusable="false" role="presentation">
<use href="${spritemap}#${icon}"></use>
</svg>
`
}
// retorna/cria um elemento html de uma classe css
// ascendantNode é um nó ascendente
// position é uma string 'beforeend', 'afterbegin' +
// elementType uma string 'ul', 'div' etc
// cssClass é uma classe css
function getNodeElement(ascendantNode, position, elementType, cssClass) {
let nodeElement
if (ascendantNode.querySelector(cssClass)) {
nodeElement = ascendantNode.querySelector(cssClass)
} else {
nodeElement = document.createElement(elementType)
nodeElement = ascendantNode.insertAdjacentElement(position, nodeElement)
nodeElement.classList.add(cssClass.slice(1))
}
return nodeElement
}
// retorna nome amigável do campo usado como 1ª ordenação
function getOrderByFieldName(orderByColumn) {
let regExp = /^ddm__keyword__\d+__(.+)/
let matchExp = regExp.exec(orderByColumn)
return (matchExp) ? matchExp[1] : Liferay.Language.get(orderByColumn)
};}());</script>]]>
|
3582
| <![CDATA[<script id="data_lhvl" type="application/json">{"title":"Histórico de Cotas dos Fundos de Investimento","type":0,"typeSettings":{"anyClassTypeDLFileEntryAssetRendererFactory":"47053","orderByColumn1":"ddm__keyword__47054__Ano"}}</script>]]>
|
3591
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-2316268-lhvl'); var configuration = {"contentSetId":"2654531","showDateConversions":false,"showModifiedDate":true,"showRefDate":false,"textAlign":"left","pageSize":"50","showYear":false,"groupBy":"noGroup","textColor":{"cssClass":"","rgbValue":""},"useTitle":true,"usePagination":false,"bottomSpacing":"3","labelForYear":"Ocorrido em","useContentSetTitle":false,"labelForRefDate":"Referente a","headingLevel":"h2","showCreateDate":true,"activeDebug":false};const editMode = document.body.classList.contains('has-edit-mode-menu')
const apiURL = `${Liferay.ThemeDisplay.getPortalURL()}/o/headless-delivery`
const contentSetsEndPoint = `/v1.0/content-sets/${configuration.contentSetId}/content-set-elements`
const restrictFields = 'title,content.contentUrl,content.dateCreated,content.dateModified,content.documentType,content.fileExtension,content.sizeInBytes'
const params = { fields: restrictFields, 'pageSize': configuration.pageSize, 'page': 1 }
const pathThemeImages = Liferay.ThemeDisplay.getPathThemeImages()
const spritemapBNB = `${pathThemeImages}/bnb/icons.svg`
const spritemapClay = `${pathThemeImages}/clay/icons.svg`
const scriptAssetListJson = fragmentElement.querySelector(`script#data_${fragmentElement.id.slice(-4)}`)
const assetListObject = (scriptAssetListJson) ? JSON.parse(scriptAssetListJson.text) : null
const documentsList = fragmentElement.querySelector('.documents-list')
const loadingAnimation = fragmentElement.querySelector('.loading-animation')
const orderByYearAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência', 'ddm__keyword__47054__Ano']
const orderByMonthYearAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência']
const orderByDayAttrs = ['modifiedDate', 'createDate', 'publishDate', 'ddm__keyword__47047__DataReferência']
const fileEntryTypes = { 'docOrdin': 47046, 'docAnual': 47053 }
const validity = (assetListObject) ? validateConfiguration() : null
validity && init()
// funcao de inicialização
function init() {
fragmentElement.classList.add('mb-4')
editMode && reportConstraints()
fetchDocumentsPage()
}
// constrói um objeto para verificar status de validade de algumas configurações
function validateConfiguration() {
let orderByColumn = assetListObject.typeSettings.orderByColumn1
let orderByColumnName = getOrderByFieldName(orderByColumn)
let canGroupByYear = orderByYearAttrs.includes(orderByColumn)
let canGroupByMonthYear = orderByMonthYearAttrs.includes(orderByColumn)
let canGroupByDay = orderByDayAttrs.includes(orderByColumn)
let canShowRefDate = (assetListObject.typeSettings.anyClassTypeDLFileEntryAssetRendererFactory == fileEntryTypes.docOrdin)
let canShowYear = (assetListObject.typeSettings.anyClassTypeDLFileEntryAssetRendererFactory == fileEntryTypes.docAnual)
let validityState = {
'canGroupByYear': {
'state': canGroupByYear,
'msg' : canGroupByYear ? '' : `A coleção não pode ser agrupada por ano, pois está ordenada por ${orderByColumnName}.`
},
'canGroupByMonthYear': {
'state': canGroupByMonthYear,
'msg' : canGroupByMonthYear ? '' : `A coleção não pode ser agrupada por mês e ano, pois está ordenada por ${orderByColumnName}.`
},
'canGroupByDay': {
'state': canGroupByDay,
'msg' : canGroupByDay ? '' : `A coleção não pode ser agrupada por dia, pois está ordenada por ${orderByColumnName}.`
},
'canShowRefDate': {
'state': canShowRefDate,
'msg' : canShowRefDate ? '' : 'Não é possível mostrar o campo Data de Referência. Esse metadado existe apenas em coleções de Documentos Ordinários.'
},
'canShowYear': {
'state': canShowYear,
'msg' : canShowYear ? '' : 'Não é possível mostrar o campo Ano. Esse metadado existe apenas em coleções de Documentos Anuais.'
}
}
return validityState
}
// alerta sobre restrições na configuração
function reportConstraints() {
cleanAlerts()
// alerta sobre restrições
let validationMessages = []
configuration.groupBy == 'groupByYear' && !validity.canGroupByYear.state && validationMessages.push(validity.canGroupByYear.msg)
configuration.groupBy == 'groupByMonthYear' && !validity.canGroupByMonthYear.state && validationMessages.push(validity.canGroupByMonthYear.msg)
configuration.groupBy == 'groupByDay' && !validity.canGroupByDay.state && validationMessages.push(validity.canGroupByDay.msg)
configuration.showRefDate && !validity.canShowRefDate.state && validationMessages.push(validity.canShowRefDate.msg)
configuration.showYear && !validity.canShowYear.state && validationMessages.push(validity.canShowYear.msg)
validationMessages.length > 0 && displayAlert('danger', 'Configuração inválida', validationMessages.join('<br/>'), documentsList, 'beforebegin')
// debug
if (configuration.activeDebug) {
console.clear()
console.log('Propriedades da Coleção:')
console.log(assetListObject)
console.log('Configuração do Fragmento:')
console.log(configuration)
console.log('Validade da Configuração:')
console.log(validity)
}
}
// principal funcao para pegar os dados
function fetchDocumentsPage(page) {
params.page = (page) ? page : params.page
let request = Liferay.Util.addParams(params, apiURL+contentSetsEndPoint)
fetch(
request,
{
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}
).then(response => {
if (response.ok) {
return response.json()
}
}).then(documents => {
handleDocuments(documents)
if (editMode && configuration.activeDebug) {
console.log(`Retorno da requisição (page ${params.page}):`)
console.log(documents)
}
})
}
// manipula dados retornados da coleção
function handleDocuments(documents) {
loadingAnimation && loadingAnimation.remove()
if (documents.items.length > 0) {
switch (configuration.groupBy) {
case 'noGroup':
renderDocumentsList(documents)
break
case 'groupByYear':
(validity.canGroupByYear.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
case 'groupByMonthYear':
(validity.canGroupByMonthYear.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
case 'groupByDay':
(validity.canGroupByDay.state) ? renderDocumentsListByGroup(documents) : renderDocumentsList(documents)
break
}
configuration.usePagination && renderPaginationBar(documents.page, documents.lastPage, documents.totalCount)
} else {
displayAlert('info', 'Aviso', 'Não foram encontrados documentos', documentsList, 'afterbegin')
}
}
// renderiza lista agrupada
function renderDocumentsListByGroup(documents) {
let lastListGroup = documentsList.querySelector('.list-group:last-child')
let currentGroup = (lastListGroup) ? lastListGroup.dataset.group : 0
configuration.activeDebug
&& configuration.showDateConversions
&& editMode
&& console.log(`Extração do grupo a partir do campo ${getOrderByFieldName(assetListObject.typeSettings.orderByColumn1)}:`)
documents.items.forEach(doc => {
let group = getDocumentGroup(doc)
if (currentGroup != group) {
let listGroup = document.createElement('ul')
listGroup.classList.add('list-group')
listGroup.dataset.group = group
listGroup.setAttribute('aria-label', `${assetListObject.title} de ${group}`)
lastListGroup = documentsList.insertAdjacentElement('beforeend', listGroup)
lastListGroup.insertAdjacentHTML('afterbegin', renderListGroupHeader(group))
currentGroup = group
}
lastListGroup.insertAdjacentHTML('beforeend', renderListGroupItem(doc))
})
}
// extrai e retorna o dado (string) utilizado como agrupador (dia, mês ou ano) a partir do campo utilizado como primeira ordenação da coleção
function getDocumentGroup(document) {
let fieldData
let group
let dateField
let options
let test
let orderByColumn = assetListObject.typeSettings.orderByColumn1
switch (orderByColumn) {
case 'ddm__keyword__47047__DataReferência':
fieldData = document.content.documentType.contentFields[0].contentFieldValue.data
break
case 'ddm__keyword__47054__Ano':
fieldData = document.content.documentType.contentFields[0].contentFieldValue.data
break
case 'modifiedDate':
fieldData = document.content.dateModified
break
case 'createDate':
fieldData = document.content.dateCreated
break
case 'publishDate': // verificar esse caso por que não há uma campo data de publicação em coleções de documentos
fieldData = document.content.dateCreated
break
}
dateField = new Date(fieldData)
switch (configuration.groupBy) {
case 'groupByYear':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência' || orderByColumn == 'ddm__keyword__47054__Ano')
group = test ? dateField.getUTCFullYear() : dateField.getFullYear()
break
case 'groupByMonthYear':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência')
options = test ? {month:'long', year:'numeric', timeZone: 'UTC'} : { month:'long', year:'numeric' }
group = dateField.toLocaleDateString('pt-BR', options)
group = group.charAt(0).toUpperCase() + group.slice(1)
break
case 'groupByDay':
test = (orderByColumn == 'ddm__keyword__47047__DataReferência')
options = test ? {timeZone: 'UTC'} : {}
group = dateField.toLocaleDateString('pt-BR', options)
break
}
configuration.activeDebug && configuration.showDateConversions && editMode && console.log(`${fieldData} --> ${group}`)
return group
}
// renderiza lista comum
function renderDocumentsList(documents) {
let listGroup = getNodeElement(documentsList, 'afterbegin', 'ul', '.list-group')
listGroup.setAttribute('aria-label', assetListObject.title)
documents.items.forEach(doc => {
listGroup.insertAdjacentHTML('beforeend', renderListGroupItem(doc))
})
}
// renderiza cabeçalho da lista
function renderListGroupHeader(title) {
let listHeaderHTML = `
<li class="list-group-header">
<span class="list-group-header-title"><big>${title}</big></span>
</li>
`
return listHeaderHTML
}
// renderiza um item da lista
function renderListGroupItem(document) {
let dateCreated = (configuration.showCreateDate) ? new Date(document.content.dateCreated) : null
let dateCreatedHTML = (dateCreated) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">Publicado em</span>
<span class="small">${dateCreated.toLocaleDateString('pt-BR')}</span>
</div>` : ''
let dateModified = (configuration.showModifiedDate) ? new Date(document.content.dateModified) : null
let dateModifiedHTML = (dateModified) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">Atualizado em</span>
<span class="small">${dateModified.toLocaleDateString('pt-BR')}</span>
</div>` : ''
let refDate = (configuration.showRefDate && validity.canShowRefDate.state) ? new Date(document.content.documentType.contentFields[0].contentFieldValue.data) : null
let refDateHTML = (refDate) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">${configuration.labelForRefDate}</span>
<span class="small">${refDate.toLocaleDateString('pt-BR', {timeZone: 'UTC'})}</span>
</div>` : ''
let year = (configuration.showYear && validity.canShowYear.state) ? document.content.documentType.contentFields[0].contentFieldValue.data : null
let yearHTML = (year) ? `
<div class="d-flex flex-row flex-lg-column text-lg-right ml-lg-3 mr-md-2 mr-lg-0">
<span class="small font-weight-bold text-nowrap mr-1 mr-lg-0">${configuration.labelForYear}</span>
<span class="small">${year}</span>
</div>` : ''
let hasMetadatas = (year || refDate || dateCreated || dateModified)
let metadataHTML = (hasMetadatas) ? `
<div class="d-flex flex-column flex-md-row">
${yearHTML}
${refDateHTML}
${dateCreatedHTML}
${dateModifiedHTML}
</div>` : ''
let listItemHTML = `
<li class="list-group-item list-group-item-flex align-items-center">
<div class="autofit-col">
<svg class="lexicon-icon text-tertiary lexicon-icon-lg" focusable="false" role="presentation"
viewBox="0 0 512 512">
<use xlink:href="${spritemapBNB}#arquivo-${document.content.fileExtension}" />
</svg>
</div>
<div class="autofit-col autofit-col-expand">
<div class="d-flex flex-column flex-lg-row justify-content-start justify-content-lg-between">
<div class="d-flex flex-column">
<span class="list-group-title">
<a href="${document.content.contentUrl}">${document.title}</a>
</span>
<span class="list-group-subtitle text-uppercase small">
${document.content.fileExtension}, ${Liferay.Util.formatStorage(document.content.sizeInBytes, {addSpaceBeforeSuffix: true})}
</span>
</div>
${metadataHTML}
</div>
</div>
</li>
`
return listItemHTML
}
// renderiza paginação
function renderPaginationBar(page, lastPage, totalCount) {
let paginationBar = getNodeElement(fragmentElement, 'beforeend', 'div', '.pagination-bar')
let lastIndex = (page === lastPage) ? totalCount : configuration.pageSize*page
let nDocuments = (page+1 === lastPage) ? totalCount - configuration.pageSize*page : configuration.pageSize
paginationBar.classList.add('justify-content-center', 'justify-content-lg-between')
let textColor = (configuration.textColor.cssClass) ? `text-${configuration.textColor.cssClass}` : ''
paginationBar.innerHTML = `
<div class="pagination-results mr-0 ${textColor}">Exibindo 1 a ${lastIndex} de ${totalCount} documentos.</div>
<ul class="pagination">
<li class="page-item">
<button class="btn btn-unstyled page-link" type="button">
Exibir mais ${nDocuments} documentos
${renderIcon('angle-down', spritemapClay, 'ml-2')}
</button>
</li>
</ul>
`
let showMoreButton = paginationBar.querySelector('button.page-link')
if (page !== lastPage) {
showMoreButton.addEventListener('click', e => {
showMoreButton.querySelector('svg').remove()
let loadAnimation = getNodeElement(showMoreButton, 'beforeend', 'span', '.loading-animation')
loadAnimation.classList.add('loading-animation-sm', 'ml-2')
fetchDocumentsPage(page+1)
})
} else {
showMoreButton.remove()
}
}
// imprime um mensagem de alerta
function displayAlert(style, title, msg, parentNode, position) {
let styleIcons = {
'danger': 'exclamation-full',
'success': 'check-circle-full',
'info': 'info-circle',
'warning': 'warning-full'
}
let html = `
<div class="alert p-4 alert-${style}" role="alert">
<span class="alert-indicator">
${renderIcon(styleIcons[style], spritemapClay, '')}
</span>
<strong>${title}:</strong>
<p class="mt-2 mb-0">${msg}</p>
</div>
`
parentNode.insertAdjacentHTML(position, html)
}
// limpa mensagens de alerta
function cleanAlerts() {
let alerts = fragmentElement.querySelectorAll('.alert')
alerts.forEach(alert => alert.remove())
}
// imprime icone SGV
function renderIcon(icon, spritemap, cssClasses) {
return `
<svg class="lexicon-icon lexicon-icon-${icon} ${cssClasses}" focusable="false" role="presentation">
<use href="${spritemap}#${icon}"></use>
</svg>
`
}
// retorna/cria um elemento html de uma classe css
// ascendantNode é um nó ascendente
// position é uma string 'beforeend', 'afterbegin' +
// elementType uma string 'ul', 'div' etc
// cssClass é uma classe css
function getNodeElement(ascendantNode, position, elementType, cssClass) {
let nodeElement
if (ascendantNode.querySelector(cssClass)) {
nodeElement = ascendantNode.querySelector(cssClass)
} else {
nodeElement = document.createElement(elementType)
nodeElement = ascendantNode.insertAdjacentElement(position, nodeElement)
nodeElement.classList.add(cssClass.slice(1))
}
return nodeElement
}
// retorna nome amigável do campo usado como 1ª ordenação
function getOrderByFieldName(orderByColumn) {
let regExp = /^ddm__keyword__\d+__(.+)/
let matchExp = regExp.exec(orderByColumn)
return (matchExp) ? matchExp[1] : Liferay.Language.get(orderByColumn)
};}());</script>]]>
|
3998
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-0-ibrf'); var configuration = {"height":"py-4"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>]]>
|
4016
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-0-nbjy'); var configuration = {"textAlign":"left","bottomSpacing":"3","headingLevel":"h2","textColor":{"cssClass":"white","rgbValue":"rgb(230, 230, 230)"}};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>]]>
|
4068
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-251720-ldrs'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
4085
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-251720-llcd'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
4110
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-251720-terg'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
4127
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-251720-xmla'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
4152
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-251720-idka'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
4169
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-251720-cqsf'); var configuration = {"symbol":"info-circle","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":false,"iconStyle":"bg-quaternary text-primary","descricao":true,"spritemap":"clay","icone":false,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
4207
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-0-pdgq'); var configuration = {"height":"py-3"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>]]>
|
4251
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-0-aups'); var configuration = {"height":"py-4"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>]]>
|
4269
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-0-gzqi'); var configuration = {"textAlign":"left","bottomSpacing":"3","headingLevel":"h2","textColor":{"cssClass":"white","rgbValue":"rgb(230, 230, 230)"}};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>]]>
|
4323
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-251720-oybu'); var configuration = {"symbol":"analytics","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":true,"iconStyle":"bg-tertiary text-white","descricao":true,"spritemap":"clay","icone":true,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
4351
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-251720-afkq'); var configuration = {"symbol":"thumbs-up-arrow","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":true,"iconStyle":"bg-tertiary text-white","descricao":true,"spritemap":"clay","icone":true,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
4379
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-251720-btth'); var configuration = {"symbol":"desktop","estilo":"card","externalLink":false,"cor":false,"titulo":true,"btLegend":"","botao":true,"iconStyle":"bg-tertiary text-white","descricao":true,"spritemap":"clay","icone":true,"botaoStyle":"btn-link","iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
4499
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-0-lbug'); var configuration = {"height":"py-3"};/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/;}());</script>]]>
|
4563
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-47411-iqhq'); var configuration = {"spritemap":"clay","symbol":"info-book","cardShadow":"shadow","borderRadius":"","externalLink":false,"bottomSpacing":"mb-3","btnStyle":"btn-outline-primary","btLegend":"","cardOrientation":"d-flex flex-column flex-lg-row","iconStyle":"bg-quaternary text-primary","hasButton":true,"iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('div.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
4592
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-47411-vpjx'); var configuration = {"spritemap":"bnb","symbol":"ficha-cadastral","cardShadow":"shadow","borderRadius":"","externalLink":false,"bottomSpacing":"mb-3","btnStyle":"btn-outline-primary","btLegend":"","cardOrientation":"d-flex flex-column flex-lg-row","iconStyle":"bg-quaternary text-primary","hasButton":true,"iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('div.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
4621
| <![CDATA[<script>(function() {var fragmentElement = document.querySelector('#fragment-47411-ywto'); var configuration = {"spritemap":"clay","symbol":"info-book","cardShadow":"shadow","borderRadius":"","externalLink":false,"bottomSpacing":"mb-3","btnStyle":"btn-outline-primary","btLegend":"","cardOrientation":"d-flex flex-column flex-lg-row","iconStyle":"bg-quaternary text-primary","hasButton":true,"iconBox":"rounded-circle"};let links = fragmentElement.querySelectorAll('a.btn')
let titles = fragmentElement.querySelectorAll('div.h4')
links.forEach((link, index) => {
let ariaLabel = (configuration.btLegend == '') ? 'Saiba mais sobre ' + titles[index].innerText : configuration.btLegend
ariaLabel = (configuration.externalLink) ? ariaLabel + ' (link externo)' : ariaLabel
link.setAttribute("aria-label", ariaLabel)
});}());</script>]]>
|
5896
| <![CDATA[<script type="text/javascript">
// <![CDATA[
Liferay.BrowserSelectors.run();
// ]]>
</script>]]>
|
5925
| <![CDATA[<script type="text/javascript">
// <![CDATA[
Liferay.currentURL = '\x2ffundos-de-investimento';
Liferay.currentURLEncoded = '\x252Ffundos-de-investimento';
// ]]>
</script>]]>
|
5942
| <![CDATA[<script type="text/javascript">
// <![CDATA[
// ]]>
</script>]]>
|
5973
| <![CDATA[<script type="text/javascript">
// <![CDATA[
(function() {var $ = AUI.$;var _ = AUI._;
var onVote = function(event) {
if (window.Analytics) {
Analytics.send('VOTE', 'Ratings', {
className: event.className,
classPK: event.classPK,
ratingType: event.ratingType,
score: event.score
});
}
};
var onDestroyPortlet = function() {
Liferay.detach('ratings:vote', onVote);
Liferay.detach('destroyPortlet', onDestroyPortlet);
};
Liferay.on('ratings:vote', onVote);
Liferay.on('destroyPortlet', onDestroyPortlet);
})();(function() {var $ = AUI.$;var _ = AUI._;
var onDestroyPortlet = function() {
Liferay.detach('messagePosted', onMessagePosted);
Liferay.detach('destroyPortlet', onDestroyPortlet);
};
Liferay.on('destroyPortlet', onDestroyPortlet);
var onMessagePosted = function(event) {
if (window.Analytics) {
Analytics.send('posted', 'Comment', {
className: event.className,
classPK: event.classPK,
commentId: event.commentId,
text: event.text
});
}
};
Liferay.on('messagePosted', onMessagePosted);
})();(function() {var $ = AUI.$;var _ = AUI._;
var onShare = function(data) {
if (window.Analytics) {
Analytics.send('shared', 'SocialBookmarks', {
className: data.className,
classPK: data.classPK,
type: data.type,
url: data.url
});
}
};
var onDestroyPortlet = function() {
Liferay.detach('socialBookmarks:share', onShare);
Liferay.detach('destroyPortlet', onDestroyPortlet);
};
Liferay.on('socialBookmarks:share', onShare);
Liferay.on('destroyPortlet', onDestroyPortlet);
})();(function() {var $ = AUI.$;var _ = AUI._;
var pathnameRegexp = /\/documents\/(\d+)\/(\d+)\/(.+?)\/([^&]+)/;
function handleDownloadClick(event) {
if (event.target.nodeName.toLowerCase() === 'a' && window.Analytics) {
var anchor = event.target;
var match = pathnameRegexp.exec(anchor.pathname);
var fileEntryId =
anchor.dataset.analyticsFileEntryId ||
(anchor.parentElement &&
anchor.parentElement.dataset.analyticsFileEntryId);
if (fileEntryId && match) {
var getParameterValue = function(parameterName) {
var result = null;
anchor.search
.substr(1)
.split('&')
.forEach(function(item) {
var tmp = item.split('=');
if (tmp[0] === parameterName) {
result = decodeURIComponent(tmp[1]);
}
});
return result;
};
Analytics.send('documentDownloaded', 'Document', {
groupId: match[1],
fileEntryId: fileEntryId,
preview: !!window._com_liferay_document_library_analytics_isViewFileEntry,
title: decodeURIComponent(match[3].replace(/\+/gi, ' ')),
version: getParameterValue('version')
});
}
}
}
var onDestroyPortlet = function() {
document.body.removeEventListener('click', handleDownloadClick);
};
Liferay.once('destroyPortlet', onDestroyPortlet);
var onPortletReady = function() {
document.body.addEventListener('click', handleDownloadClick);
};
Liferay.once('portletReady', onPortletReady);
})();
if (Liferay.Data.ICONS_INLINE_SVG) {
svg4everybody(
{
attributeName: 'data-href',
polyfill: true,
validate: function (src, svg, use) {
return !src || !src.startsWith('#');
}
}
);
}
(function() {var $ = AUI.$;var _ = AUI._;
var assetEntryId =
'';
if (assetEntryId) {
window.location.hash = assetEntryId;
}
})();
Liferay.Portlet.register('com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_TMHixBm72He6');
Liferay.Portlet.onLoad(
{
canEditTitle: false,
columnPos: 0,
isStatic: 'end',
namespacedId: 'p_p_id_com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_TMHixBm72He6_',
portletId: 'com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_TMHixBm72He6',
refreshURL: '\x2fc\x2fportal\x2frender_portlet\x3fp_l_id\x3d599\x26p_p_id\x3dcom_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_TMHixBm72He6\x26p_p_lifecycle\x3d0\x26p_t_lifecycle\x3d0\x26p_p_state\x3dnormal\x26p_p_mode\x3dview\x26p_p_col_id\x3dnull\x26p_p_col_pos\x3dnull\x26p_p_col_count\x3dnull\x26p_p_static\x3d1\x26p_p_isolated\x3d1\x26currentURL\x3d\x252Ffundos-de-investimento',
refreshURLData: {}
}
);
Liferay.Portlet.register('com_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_HxzdK3lVg8Ro');
Liferay.Portlet.onLoad(
{
canEditTitle: false,
columnPos: 0,
isStatic: 'end',
namespacedId: 'p_p_id_com_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_HxzdK3lVg8Ro_',
portletId: 'com_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_HxzdK3lVg8Ro',
refreshURL: '\x2fc\x2fportal\x2frender_portlet\x3fp_l_id\x3d599\x26p_p_id\x3dcom_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_HxzdK3lVg8Ro\x26p_p_lifecycle\x3d0\x26p_t_lifecycle\x3d0\x26p_p_state\x3dnormal\x26p_p_mode\x3dview\x26p_p_col_id\x3dnull\x26p_p_col_pos\x3dnull\x26p_p_col_count\x3dnull\x26p_p_static\x3d1\x26p_p_isolated\x3d1\x26currentURL\x3d\x252Ffundos-de-investimento',
refreshURLData: {}
}
);
Liferay.Portlet.register('com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet_INSTANCE_name_navigation_menu');
Liferay.Portlet.onLoad(
{
canEditTitle: false,
columnPos: 0,
isStatic: 'end',
namespacedId: 'p_p_id_com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet_INSTANCE_name_navigation_menu_',
portletId: 'com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet_INSTANCE_name_navigation_menu',
refreshURL: '\x2fc\x2fportal\x2frender_portlet\x3fp_l_id\x3d599\x26p_p_id\x3dcom_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet_INSTANCE_name_navigation_menu\x26p_p_lifecycle\x3d0\x26p_t_lifecycle\x3d0\x26p_p_state\x3dnormal\x26p_p_mode\x3dview\x26p_p_col_id\x3dnull\x26p_p_col_pos\x3dnull\x26p_p_col_count\x3dnull\x26p_p_static\x3d1\x26p_p_isolated\x3d1\x26currentURL\x3d\x252Ffundos-de-investimento',
refreshURLData: {}
}
);
Liferay.Portlet.register('com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet_INSTANCE_lgpd_navigation_menu');
Liferay.Portlet.onLoad(
{
canEditTitle: false,
columnPos: 0,
isStatic: 'end',
namespacedId: 'p_p_id_com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet_INSTANCE_lgpd_navigation_menu_',
portletId: 'com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet_INSTANCE_lgpd_navigation_menu',
refreshURL: '\x2fc\x2fportal\x2frender_portlet\x3fp_l_id\x3d599\x26p_p_id\x3dcom_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet_INSTANCE_lgpd_navigation_menu\x26p_p_lifecycle\x3d0\x26p_t_lifecycle\x3d0\x26p_p_state\x3dnormal\x26p_p_mode\x3dview\x26p_p_col_id\x3dnull\x26p_p_col_pos\x3dnull\x26p_p_col_count\x3dnull\x26p_p_static\x3d1\x26p_p_isolated\x3d1\x26currentURL\x3d\x252Ffundos-de-investimento',
refreshURLData: {}
}
);
Liferay.Loader.require('metal-dom/src/all/dom', function(metalDomSrcAllDom) {
(function(){
var dom = metalDomSrcAllDom;
(function() {var $ = AUI.$;var _ = AUI._;
var focusInPortletHandler = dom.delegate(
document,
'focusin',
'.portlet',
function(event) {
dom.addClasses(dom.closest(event.delegateTarget, '.portlet'), 'open');
}
);
var focusOutPortletHandler = dom.delegate(
document,
'focusout',
'.portlet',
function(event) {
dom.removeClasses(dom.closest(event.delegateTarget, '.portlet'), 'open');
}
);
})();})();
});AUI().use('liferay-menu', 'liferay-notice', 'aui-base', 'liferay-session', 'liferay-poller', function(A) {(function() {var $ = AUI.$;var _ = AUI._;
if (A.UA.mobile) {
Liferay.Util.addInputCancel();
}
})();(function() {var $ = AUI.$;var _ = AUI._;
new Liferay.Menu();
var liferayNotices = Liferay.Data.notices;
for (var i = 1; i < liferayNotices.length; i++) {
new Liferay.Notice(liferayNotices[i]);
}
})();(function() {var $ = AUI.$;var _ = AUI._;
Liferay.Session = new Liferay.SessionBase(
{
autoExtend: true,
redirectOnExpire: false,
redirectUrl: 'https\x3a\x2f\x2fwww\x2ebnb\x2egov\x2ebr\x2fweb\x2fguest',
sessionLength: 900,
sessionTimeoutOffset: 70,
warningLength: 0
}
);
})();});
// ]]>
</script>]]>
|
6245
| <![CDATA[<script type="text/javascript">
// <![CDATA[
AUI().use(
'aui-base',
function(A) {
var frameElement = window.frameElement;
if (frameElement && frameElement.getAttribute('id') === 'simulationDeviceIframe') {
A.getBody().addClass('lfr-has-simulation-panel');
}
}
);
// ]]>
</script>]]>
|
6258
| <![CDATA[<script type="text/javascript">
// <![CDATA[
Liferay.Loader.require('frontend-js-tooltip-support-web@2.0.5/index', function(frontendJsTooltipSupportWeb205Index) {
(function(){
var TooltipSupport = frontendJsTooltipSupportWeb205Index;
(function() {
try {
TooltipSupport.default()
}
catch (err) {
console.error(err);
}
})();})();
});
// ]]>
</script>]]>
|