🍴 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.

at main 2.7 kB View raw
1module Types exposing (..) 2 3import Browser 4import Browser.Navigation as Nav 5import Dict exposing (Dict) 6import Force 7import Http 8import Set exposing (Set) 9import Url exposing (Url) 10 11 12type Tab 13 = CnpjTab 14 | ConnectionTab 15 16 17type CompanyStatus 18 = StatusLoading 19 | StatusActive 20 | StatusInactive 21 | StatusUnknown 22 23 24type Entity 25 = Company String String CompanyStatus -- Nome, CNPJ, situação cadastral 26 | Person String (Maybe String) -- Nome, CPF 27 28 29type alias Node = 30 { id : String 31 , entity : Entity 32 , depth : Int 33 , x : Float 34 , y : Float 35 , vx : Float 36 , vy : Float 37 , error : Maybe String 38 } 39 40 41type ApiError 42 = NotFound 43 | BadRequest String 44 | HttpError Http.Error 45 46 47type QueryType 48 = EntityQuery String 49 | ConnectionQuery String String 50 51 52type alias QueryRequest = 53 { term : String 54 , depth : Int 55 , queryType : QueryType 56 } 57 58 59type alias QueryKey = 60 ( String, String ) 61 62 63type alias Model = 64 { input : String 65 , connectionInput1 : String 66 , connectionInput2 : String 67 , activeTab : Tab 68 , nodes : Dict String Node 69 , edges : Set ( String, String ) 70 , visited : Set QueryKey 71 , pending : Set QueryKey 72 , queryQueue : List QueryRequest 73 , currentQueries : List QueryRequest 74 , error : Maybe String 75 , simulation : Force.State String 76 , width : Float 77 , height : Float 78 , graphApi : String 79 , jsonApi : String 80 , dragNode : Maybe String 81 , startPos : Maybe { x : Float, y : Float } -- To detect click vs drag 82 , isPanning : Bool 83 , zoom : Float 84 , pan : { x : Float, y : Float } 85 , navKey : Nav.Key 86 , url : Url 87 , manyBody : Float 88 , collisionRadius : Float 89 , linkDistance : Float 90 , isInitialSearch : Bool 91 } 92 93 94type Msg 95 = UpdateInput String 96 | UpdateConnectionInput1 String 97 | UpdateConnectionInput2 String 98 | SwitchTab Tab 99 | Search 100 | Clear 101 | NodeClicked String 102 | GotResponse String String Int (Result ApiError ApiResponse) 103 | GotCompanyName String String (Result Http.Error CompanyInfo) 104 | Tick 105 | Resize Float Float 106 | InteractionStart String Float Float 107 | PanStart 108 | InteractionMove Float Float 109 | InteractionEnd Float Float -- Pass current mouse pos to detect click 110 | Zoom Float 111 | LinkClicked Browser.UrlRequest 112 | UrlChanged Url 113 114 115type alias CompanyInfo = 116 { name : String 117 , situacaoCadastral : Maybe Int 118 } 119 120 121type alias ApiResponse = 122 List Relation 123 124 125type alias Relation = 126 { cnpj : String 127 , razaoSocial : String 128 , partnerId : String 129 , partnerName : Maybe String 130 , partnerCpf : Maybe String 131 }