🍴 Meu Garfo é uma visualização em grafo dos CNPJs cuducos.tngl.io/meu-garfo
1

Configure Feed

Select the types of activity you want to include in your feed.

Deploy a850fd5

+130 -4
+32
index.html
··· 235 235 font-weight: bold; 236 236 margin-left: 5px; 237 237 } 238 + 239 + .methodology { 240 + position: absolute; 241 + bottom: 1rem; 242 + left: 1rem; 243 + max-width: 360px; 244 + background: rgba(255, 255, 255, 0.92); 245 + border: 1px solid var(--pico-muted-border-color); 246 + border-radius: var(--pico-border-radius); 247 + box-shadow: var(--pico-card-box-shadow); 248 + padding: 0.4rem 0.75rem; 249 + font-size: 0.82rem; 250 + line-height: 1.35; 251 + } 252 + 253 + .methodology summary { 254 + cursor: pointer; 255 + color: var(--pico-primary); 256 + font-weight: 600; 257 + list-style: none; 258 + margin-bottom: 0; 259 + } 260 + 261 + .methodology summary::-webkit-details-marker { display: none; } 262 + .methodology summary::marker { content: ""; } 263 + 264 + .methodology[open] summary { margin-bottom: 0.35rem; } 265 + 266 + .methodology small { 267 + font-size: 0.78rem; 268 + color: var(--pico-muted-color); 269 + } 238 270 </style> 239 271 <script src="main.js"></script> 240 272 </head>
+98 -4
main.js
··· 10059 10059 var $elm$html$Html$label = _VirtualDom_node('label'); 10060 10060 var $elm$html$Html$li = _VirtualDom_node('li'); 10061 10061 var $elm$html$Html$main_ = _VirtualDom_node('main'); 10062 + var $elm$html$Html$abbr = _VirtualDom_node('abbr'); 10063 + var $elm$html$Html$details = _VirtualDom_node('details'); 10064 + var $elm$html$Html$em = _VirtualDom_node('em'); 10065 + var $elm$html$Html$small = _VirtualDom_node('small'); 10066 + var $elm$html$Html$summary = _VirtualDom_node('summary'); 10067 + var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text; 10068 + var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text; 10069 + var $elm$html$Html$Attributes$title = $elm$html$Html$Attributes$stringProperty('title'); 10070 + var $author$project$View$methodology = function (tab) { 10071 + return A2( 10072 + $elm$html$Html$details, 10073 + _List_fromArray( 10074 + [ 10075 + $elm$html$Html$Attributes$class('methodology') 10076 + ]), 10077 + _List_fromArray( 10078 + [ 10079 + A2( 10080 + $elm$html$Html$summary, 10081 + _List_Nil, 10082 + _List_fromArray( 10083 + [ 10084 + A2( 10085 + $elm$html$Html$small, 10086 + _List_Nil, 10087 + _List_fromArray( 10088 + [ 10089 + $elm$html$Html$text('Como funciona esta busca?') 10090 + ])) 10091 + ])), 10092 + A2( 10093 + $elm$html$Html$small, 10094 + _List_Nil, 10095 + _List_fromArray( 10096 + [ 10097 + function () { 10098 + if (tab.$ === 'CnpjTab') { 10099 + return A2( 10100 + $elm$html$Html$div, 10101 + _List_Nil, 10102 + _List_fromArray( 10103 + [ 10104 + $elm$html$Html$text('A partir do CNPJ informado, o grafo é construído em largura ('), 10105 + A2( 10106 + $elm$html$Html$abbr, 10107 + _List_fromArray( 10108 + [ 10109 + $elm$html$Html$Attributes$title('Busca em largura'), 10110 + A2($elm$html$Html$Attributes$attribute, 'aria-label', 'Busca em largura') 10111 + ]), 10112 + _List_fromArray( 10113 + [ 10114 + A2( 10115 + $elm$html$Html$a, 10116 + _List_fromArray( 10117 + [ 10118 + $elm$html$Html$Attributes$href('https://pt.wikipedia.org/wiki/Busca_em_largura'), 10119 + A2($elm$html$Html$Attributes$attribute, 'target', '_blank'), 10120 + A2($elm$html$Html$Attributes$attribute, 'rel', 'noopener noreferrer') 10121 + ]), 10122 + _List_fromArray( 10123 + [ 10124 + $elm$html$Html$text('BFS') 10125 + ])) 10126 + ])), 10127 + $elm$html$Html$text('): cada empresa traz seus sócios, e cada sócio traz as empresas em que participa. A expansão automática para em '), 10128 + A2( 10129 + $elm$html$Html$em, 10130 + _List_Nil, 10131 + _List_fromArray( 10132 + [ 10133 + $elm$html$Html$text('profundidade 8') 10134 + ])), 10135 + $elm$html$Html$text(' ou '), 10136 + A2( 10137 + $elm$html$Html$em, 10138 + _List_Nil, 10139 + _List_fromArray( 10140 + [ 10141 + $elm$html$Html$text('32 nós') 10142 + ])), 10143 + $elm$html$Html$text(' — o que vier primeiro. A partir daí, clique em qualquer nó com borda destacada para expandi-lo manualmente, um nível por vez, sem novos limites.') 10144 + ])); 10145 + } else { 10146 + return A2( 10147 + $elm$html$Html$div, 10148 + _List_Nil, 10149 + _List_fromArray( 10150 + [ 10151 + $elm$html$Html$text('A API busca o menor caminho de relação entre as duas entidades (sócio-empresa) via busca bidirecional em largura, com limite de 90 segundos. O grafo exibe apenas os nós desse caminho, sem expansão automática. Clique nos nós para explorá-los individualmente. Se não houver caminho, a busca retorna vazia; se ultrapassar 90s, retorna erro de tempo esgotado — o que não significa ausência de conexão, apenas que o cálculo demorou demais.') 10152 + ])); 10153 + } 10154 + }() 10155 + ])) 10156 + ])); 10157 + }; 10062 10158 var $elm$html$Html$nav = _VirtualDom_node('nav'); 10063 10159 var $elm$virtual_dom$VirtualDom$Normal = function (a) { 10064 10160 return {$: 'Normal', a: a}; ··· 10172 10268 var dict = _v0.a; 10173 10269 return $elm$core$Dict$size(dict); 10174 10270 }; 10175 - var $elm$html$Html$small = _VirtualDom_node('small'); 10176 10271 var $elm$html$Html$span = _VirtualDom_node('span'); 10177 10272 var $elm$svg$Svg$svg = $elm$svg$Svg$trustedNode('svg'); 10178 - var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text; 10179 - var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text; 10180 10273 var $elm$svg$Svg$Attributes$transform = _VirtualDom_attribute('transform'); 10181 10274 var $elm$html$Html$ul = _VirtualDom_node('ul'); 10182 10275 var $elm$html$Html$Attributes$value = $elm$html$Html$Attributes$stringProperty('value'); ··· 10763 10856 $elm$core$List$length(model.queryQueue)) + ')')) 10764 10857 ])) : $elm$html$Html$text('') 10765 10858 ])) 10766 - ])) 10859 + ])), 10860 + $author$project$View$methodology(model.activeTab) 10767 10861 ])), 10768 10862 A2( 10769 10863 $elm$html$Html$footer,