├── .babelrc ├── .eslintrc ├── .gitignore ├── .jshintrc ├── .notes ├── .travis.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── data ├── climate_indices.csv └── map │ ├── apollo-parsed-1737-325_0.csv │ ├── unemployment.tsv │ ├── us.json │ ├── usa.json │ └── zones.geojson ├── db.json ├── dist ├── react-dashboard.min.css └── react-dashboard.min.js ├── docs ├── .gitignore ├── Makefile ├── _static │ ├── IMG_2558.JPG │ ├── components │ │ ├── Choropleth_0.4.png │ │ ├── DataTable_0.4.png │ │ ├── Goal_0.4.png │ │ ├── Markup_0.4.png │ │ ├── Metric_0.4.png │ │ ├── lineChart_0.4.png │ │ ├── multiBarChart_0.4.png │ │ └── pieChart_0.4.png │ ├── features │ │ └── nvd3_charts.png │ ├── react_dash_dkan_ecosystem_0.4.png │ └── select_screenshot.png ├── conf.py ├── contributing.md ├── css │ └── extra.css ├── development │ ├── actions.md │ ├── app.js.md │ ├── backends.md │ ├── components │ │ ├── Autocomplete.md │ │ ├── Chart.md │ │ ├── Dashboard.md │ │ ├── DataTable.md │ │ ├── Goal.md │ │ ├── Loader.md │ │ ├── Markup.md │ │ ├── Metric.md │ │ ├── index.rst │ │ └── maps.md │ ├── data │ │ ├── _overview.md │ │ ├── backends.md │ │ ├── data.md │ │ ├── datahandlers.md │ │ ├── filterhandlers.md │ │ ├── index.rst │ │ ├── overview.rst │ │ └── statehandlers.md │ ├── filters.md │ ├── index.rst │ ├── intro.md │ ├── roadmap.md │ ├── settings.js.md │ ├── theming │ │ └── index.md │ └── workflows │ │ ├── index.rst │ │ └── publish.md ├── ecosystem.md ├── features │ ├── choropleth.md │ ├── filters.md │ ├── goal.md │ ├── index.rst │ ├── metric.md │ ├── nvd3.md │ ├── style.md │ └── text.md ├── index.rst ├── intro.md ├── requirements.txt └── uses.md ├── examples ├── app.js ├── customDataHandlers.js ├── customStateHandlers.js ├── data │ ├── climate_indices.csv │ └── map │ │ ├── apollo-parsed-1737-325_0.csv │ │ ├── unemployment.tsv │ │ ├── us.json │ │ ├── usa.json │ │ └── zones.geojson ├── favicon.ico ├── index-server.js ├── index.html ├── index.js ├── js_static_example │ ├── app.js │ └── settings.js ├── jsx_static_example │ └── app.js ├── nv.d3.min.css ├── react_dash_logo_2.png ├── settings.js └── static │ ├── custom.css │ ├── dataTables.bootstrap.css │ ├── logo.png │ ├── react-dash-demo.min.css │ └── responsive.bootstrap.min.css ├── favicon.ico ├── index.html ├── karma.config.js ├── package.json ├── scripts ├── build-demo.sh ├── runtests.sh └── start.sh ├── server.js ├── src ├── ReactDashboard.js ├── components │ ├── App.js │ ├── Autocomplete.js │ ├── BaseComponent.js │ ├── BaseFilter.js │ ├── Card.js │ ├── Chart.js │ ├── CheckboxFilter.js │ ├── Dashboard.js │ ├── DataTable.js │ ├── Filter.js │ ├── Goal.js │ ├── Highlight.js │ ├── Iter.js │ ├── Loader.js │ ├── Markup.js │ ├── Metric.js │ ├── Multi.js │ ├── MultiCheckboxFilter.js │ ├── ReactSelect.js │ ├── Region.js │ ├── ResponsiveDataTable.js │ └── maps │ │ ├── Choropleth.js │ │ ├── Datamap.js │ │ ├── DatamapSubunit.js │ │ ├── EquidistantLegend.js │ │ ├── HoverInfo.js │ │ ├── LinearLegend.js │ │ └── MapLegend.js ├── constants │ └── DashboardConstants.js ├── datahandlers │ ├── NVD3DataHandlers.js │ ├── common.js │ └── index.js ├── dispatcher │ └── EventDispatcher.js ├── mixins │ └── Fetcher.js ├── models │ ├── Dataset.js │ └── MemoryStore.js ├── stylesheets │ ├── base │ │ ├── _all.scss │ │ ├── _mixins.scss │ │ ├── _theme.scss │ │ ├── _typography.scss │ │ └── _variables.scss │ ├── components │ │ ├── _all.scss │ │ ├── _card.scss │ │ ├── _chart.scss │ │ ├── _checkbox.scss │ │ ├── _dkan.scss │ │ ├── _goal.scss │ │ ├── _highlight.scss │ │ ├── _map.scss │ │ ├── _metric.scss │ │ ├── _pager.scss │ │ ├── _select.scss │ │ └── _table.scss │ ├── custom.css │ └── main.scss └── utils │ ├── DataHandler.js │ ├── FilterHandler.js │ ├── Registry.js │ ├── StateHandler.js │ ├── paramRouting.js │ └── utils.js ├── static ├── example.gif └── logo.png ├── tests ├── choropleth_spec.js ├── dataset_spec.js ├── datatable_spec.js ├── example_spec.js ├── fixtures │ ├── zones.geojson │ └── zones_test_data.json └── multi_spec.js-needswork ├── tutorial ├── settings.hello.js └── settings.regions.js ├── webpack.config.demo.js ├── webpack.config.js ├── webpack.config.production.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["react", "es2015"], 3 | "plugins": ["transform-class-properties", "react-hot-loader/babel", "transform-object-assign"] 4 | } 5 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "ecmaFeatures": { 3 | "jsx": true, 4 | "modules": true 5 | }, 6 | "env": { 7 | "browser": true, 8 | "node": true 9 | }, 10 | "parser": "babel-eslint", 11 | "rules": { 12 | "quotes": [2, "single"], 13 | "strict": [2, "never"], 14 | "react/jsx-uses-react": 2, 15 | "react/jsx-uses-vars": 2, 16 | "react/react-in-jsx-scope": 2 17 | }, 18 | "plugins": [ 19 | "react" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | .DS_Store 4 | bower_components 5 | build 6 | *.sw* 7 | package-lock.json 8 | .idea 9 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "node": true, 3 | "browser": true, 4 | "esnext": true, 5 | "newcap": false 6 | } 7 | -------------------------------------------------------------------------------- /.notes: -------------------------------------------------------------------------------- 1 | ### TODO 2 | Filter component 3 | Multichart component 4 | Image component 5 | 6 | 7 | Componente 8 | Behavior 9 | State 10 | View 11 | Children Components 12 | 13 | 14 | ####### LIBRARY 15 | import EventEmitter 16 | class Component extends Component{ 17 | $children = array(); 18 | $state = array(); 19 | 20 | function emitChange() { 21 | EventEmitter.emit('CHANGE') 22 | } 23 | } 24 | 25 | 26 | ###### DESARROLLADOR 27 | 28 | class TableComponent extends Component { 29 | 30 | $state.page = 1; 31 | $state.num_rows = 10; 32 | $state.data; 33 | 34 | function pageNextClicked() { 35 | $state.page++; 36 | fetchData($state) 37 | } 38 | 39 | function onData(data) { 40 | alert(th) 41 | $state.data = data; 42 | 43 | $this->emitChange(); 44 | } 45 | 46 | function onChange() { 47 | 48 | } 49 | function fetchData($page, $count) { 50 | fetch().then(this.onData); 51 | } 52 | 53 | } 54 | 55 | 56 | class SolAppTable extends TableComponent { 57 | override function onData(data) { 58 | alert('HOLA'); 59 | parent->onData(); 60 | } 61 | } 62 | 63 | 64 | 65 |