Logo CEWEB.br Logo NIC.br Logo CGI.br
Home Sobre o projeto

Sites Verificados

Lista com todos os sítios que foram verificados pela TIC Web Acessibilidade. Dentro de cada domínio, há informações detalhadas sobre as páginas coletadas, bem como os erros e avisos de cada uma *.

Endereço Nota Erros Avisos

www.bnb.gov.br/fundos-de-investimento

96.34 35 500
Recomendações Avaliadas
1.1 Respeitar os Padrões Web.

Recomendações

Número Descrição Quantidade Linhas Código Fonte
1.1.3 Presença de CSS(s) in-line 52 1060 1528 1529 1601 1602 1674 1675 1742 1743 1780 2005 2075 2957 3021 3036 3068 3104 3148 3569 3988 4050 4060 4078 4103 4120 4145 4162 4197 4241 4303 4313 4314 4341 4342 4369 4370 4407 4422 4453 4489 4533 4649 4967 4971 4974 4977 5355 5360 5365 5370 5453 5456
1.1.4 Presença de CSS(s) interno 8 730 1973 2015 2985 3050 3170 4067 4562
1.1.5 Presença de javascript(s) in-line 1 2514
1.1.6 Presença de javascript(s) interno 41 101 230 579 602 661 777 806 918 1054 2820 2967 2987 3114 3161 3172 3582 3591 3998 4016 4068 4085 4110 4127 4152 4169 4207 4251 4269 4323 4351 4379 4499 4563 4592 4621 5896 5925 5942 5973 6245 6258
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&amp;t=1695303301184&amp;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&amp;t=1694473215374&amp;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&amp;t=1630351139857&amp;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&amp;t=1630351140154&amp;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>]]>