实例介绍
为您提供ApacheSuperset数据探查与可视化平台下载,Superset是Airbnb(知名在线房屋短租公司)开源的数据探查与可视化平台(曾用名 Panoramix、Caravel ),该工具在可视化、易用性和交互性上非常有特色,用户可以轻松对数据进行可视化分析。Superset也是一款企业级商业智能Web应用程序。Superset已捐赠给Apache软件基金会,目前处于孵化阶段。Superset核心功能:快速创建数据可视化互动仪表盘。丰富的可视化图表
【实例截图】
【核心代码】
16359648041574018074.zip
├── incubator-superset
│ ├── alembic.ini
│ ├── babel-node
│ ├── CHANGELOG.md
│ ├── CODE_OF_CONDUCT.md
│ ├── CONTRIBUTING.md
│ ├── DISCLAIMER
│ ├── docker
│ │ ├── docker-entrypoint.sh
│ │ ├── docker-init.sh
│ │ ├── frontend-mem-nag.sh
│ │ ├── pythonpath_dev
│ │ │ ├── superset_config_local.example
│ │ │ └── superset_config.py
│ │ ├── README.md
│ │ └── requirements-extra.txt
│ ├── docker-compose.yml
│ ├── Dockerfile
│ ├── Dockerfile-dev
│ ├── docs
│ │ ├── admintutorial.rst
│ │ ├── build.sh
│ │ ├── conf.py
│ │ ├── druid.rst
│ │ ├── faq.rst
│ │ ├── gallery.rst
│ │ ├── import_export_datasources.rst
│ │ ├── index.rst
│ │ ├── installation.rst
│ │ ├── Makefile
│ │ ├── misc.rst
│ │ ├── requirements.txt
│ │ ├── security.rst
│ │ ├── sqllab.rst
│ │ ├── _static
│ │ │ ├── docs.css
│ │ │ └── images
│ │ ├── tutorials.rst
│ │ ├── usertutorial.rst
│ │ ├── videos.rst
│ │ └── visualization.rst
│ ├── gen_changelog.sh
│ ├── helm
│ │ └── superset
│ │ ├── Chart.yaml
│ │ ├── requirements.yaml
│ │ ├── templates
│ │ │ ├── deployment.yaml
│ │ │ ├── _helpers.tpl
│ │ │ ├── ingress.yaml
│ │ │ ├── init-job.yaml
│ │ │ ├── NOTES.txt
│ │ │ ├── secret-env.yaml
│ │ │ ├── secret-superset-config.yaml
│ │ │ └── service.yaml
│ │ └── values.yaml
│ ├── INSTALL.md
│ ├── LICENSE.txt
│ ├── MANIFEST.in
│ ├── NOTICE
│ ├── pypi_push.sh
│ ├── pytest.ini
│ ├── README.md
│ ├── RELEASING
│ │ ├── Dockerfile.from_local_tarball
│ │ ├── Dockerfile.from_svn_tarball
│ │ ├── Dockerfile.make_docs
│ │ ├── Dockerfile.make_tarball
│ │ ├── email_templates
│ │ │ ├── announce.j2
│ │ │ ├── result_ipmc.j2
│ │ │ ├── result_pmc.j2
│ │ │ ├── vote_ipmc.j2
│ │ │ └── vote_pmc.j2
│ │ ├── from_tarball_entrypoint.sh
│ │ ├── make_docs_entrypoint.sh
│ │ ├── make_docs.sh
│ │ ├── make_tarball_entrypoint.sh
│ │ ├── make_tarball.sh
│ │ ├── README.md
│ │ ├── send_email.py
│ │ ├── set_release_env.sh
│ │ └── test_run_tarball.sh
│ ├── requirements-dev.txt
│ ├── requirements.txt
│ ├── scripts
│ │ ├── check_license.sh
│ │ ├── fossa.sh
│ │ ├── generate_frontend_ts_tasklist.js
│ │ ├── permissions_cleanup.py
│ │ ├── python_tests.sh
│ │ ├── sign.sh
│ │ └── tests
│ │ ├── README.md
│ │ └── run.sh
│ ├── setup.cfg
│ ├── setup.py
│ ├── superset
│ │ ├── app.py
│ │ ├── assets
│ │ │ ├── spec
│ │ │ │ └── javascripts
│ │ │ │ └── sqllab
│ │ │ │ └── ExploreCtasResultsButton_spec.jsx
│ │ │ ├── src
│ │ │ │ └── SqlLab
│ │ │ │ └── components
│ │ │ │ └── ExploreCtasResultsButton.jsx
│ │ │ └── version_info.json
│ │ ├── bin
│ │ │ ├── __init__.py
│ │ │ └── superset
│ │ ├── charts
│ │ │ ├── api.py
│ │ │ ├── commands
│ │ │ │ ├── bulk_delete.py
│ │ │ │ ├── create.py
│ │ │ │ ├── delete.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── __init__.py
│ │ │ │ └── update.py
│ │ │ ├── dao.py
│ │ │ ├── filters.py
│ │ │ ├── __init__.py
│ │ │ └── schemas.py
│ │ ├── cli.py
│ │ ├── commands
│ │ │ ├── base.py
│ │ │ ├── exceptions.py
│ │ │ ├── __init__.py
│ │ │ └── utils.py
│ │ ├── common
│ │ │ ├── __init__.py
│ │ │ ├── query_context.py
│ │ │ ├── query_object.py
│ │ │ └── tags.py
│ │ ├── config.py
│ │ ├── connectors
│ │ │ ├── base
│ │ │ │ ├── __init__.py
│ │ │ │ ├── models.py
│ │ │ │ └── views.py
│ │ │ ├── connector_registry.py
│ │ │ ├── druid
│ │ │ │ ├── __init__.py
│ │ │ │ ├── models.py
│ │ │ │ └── views.py
│ │ │ ├── __init__.py
│ │ │ └── sqla
│ │ │ ├── __init__.py
│ │ │ ├── models.py
│ │ │ └── views.py
│ │ ├── constants.py
│ │ ├── dao
│ │ │ ├── base.py
│ │ │ ├── exceptions.py
│ │ │ └── __init__.py
│ │ ├── dashboards
│ │ │ ├── api.py
│ │ │ ├── commands
│ │ │ │ ├── bulk_delete.py
│ │ │ │ ├── create.py
│ │ │ │ ├── delete.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── __init__.py
│ │ │ │ └── update.py
│ │ │ ├── dao.py
│ │ │ ├── filters.py
│ │ │ ├── __init__.py
│ │ │ └── schemas.py
│ │ ├── dataframe.py
│ │ ├── datasets
│ │ │ ├── api.py
│ │ │ ├── commands
│ │ │ │ ├── create.py
│ │ │ │ ├── delete.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── refresh.py
│ │ │ │ └── update.py
│ │ │ ├── dao.py
│ │ │ ├── __init__.py
│ │ │ └── schemas.py
│ │ ├── db_engines
│ │ │ ├── hive.py
│ │ │ └── __init__.py
│ │ ├── db_engine_specs
│ │ │ ├── athena.py
│ │ │ ├── base.py
│ │ │ ├── bigquery.py
│ │ │ ├── clickhouse.py
│ │ │ ├── cockroachdb.py
│ │ │ ├── db2.py
│ │ │ ├── dremio.py
│ │ │ ├── drill.py
│ │ │ ├── druid.py
│ │ │ ├── elasticsearch.py
│ │ │ ├── exasol.py
│ │ │ ├── gsheets.py
│ │ │ ├── hana.py
│ │ │ ├── hive.py
│ │ │ ├── impala.py
│ │ │ ├── __init__.py
│ │ │ ├── kylin.py
│ │ │ ├── mssql.py
│ │ │ ├── mysql.py
│ │ │ ├── oracle.py
│ │ │ ├── pinot.py
│ │ │ ├── postgres.py
│ │ │ ├── presto.py
│ │ │ ├── redshift.py
│ │ │ ├── snowflake.py
│ │ │ ├── sqlite.py
│ │ │ ├── teradata.py
│ │ │ └── vertica.py
│ │ ├── errors.py
│ │ ├── examples
│ │ │ ├── bart_lines.py
│ │ │ ├── birth_names.py
│ │ │ ├── countries.md
│ │ │ ├── countries.py
│ │ │ ├── country_map.py
│ │ │ ├── css_templates.py
│ │ │ ├── deck.py
│ │ │ ├── energy.py
│ │ │ ├── flights.py
│ │ │ ├── helpers.py
│ │ │ ├── __init__.py
│ │ │ ├── long_lat.py
│ │ │ ├── misc_dashboard.py
│ │ │ ├── multiformat_time_series.py
│ │ │ ├── multi_line.py
│ │ │ ├── paris.py
│ │ │ ├── random_time_series.py
│ │ │ ├── sf_population_polygons.py
│ │ │ ├── tabbed_dashboard.py
│ │ │ ├── unicode_test_data.py
│ │ │ └── world_bank.py
│ │ ├── exceptions.py
│ │ ├── extensions.py
│ │ ├── forms.py
│ │ ├── __init__.py
│ │ ├── jinja_context.py
│ │ ├── legacy.py
│ │ ├── migrations
│ │ │ ├── alembic.ini
│ │ │ ├── env.py
│ │ │ ├── __init__.py
│ │ │ ├── README
│ │ │ ├── script.py.mako
│ │ │ └── versions
│ │ │ ├── 0a6f12f60c73_add_role_level_security.py
│ │ │ ├── 0b1f1ab473c0_add_extra_column_to_query.py
│ │ │ ├── 0c5070e96b57_add_user_attributes_table.py
│ │ │ ├── 11c737c17cc6_deprecate_restricted_metrics.py
│ │ │ ├── 1226819ee0e3_fix_wrong_constraint_on_table_columns.py
│ │ │ ├── 1296d28ec131_druid_exports.py
│ │ │ ├── 12d55656cbca_is_featured.py
│ │ │ ├── 130915240929_is_sqllab_viz_flow.py
│ │ │ ├── 1495eb914ad3_time_range.py
│ │ │ ├── 18dc26817ad2_.py
│ │ │ ├── 18e88e1cc004_making_audit_nullable.py
│ │ │ ├── 190188938582_adding_unique_constraint_on_dashboard_slices_tbl.py
│ │ │ ├── 19a814813610_adding_metric_warning_text.py
│ │ │ ├── 1a1d627ebd8e_position_json.py
│ │ │ ├── 1a48a5411020_adding_slug_to_dash.py
│ │ │ ├── 1d2ddd543133_log_dt.py
│ │ │ ├── 1d9e835a84f9_.py
│ │ │ ├── 1e2841a4128_.py
│ │ │ ├── 21e88bc06c02_annotation_migration.py
│ │ │ ├── 258b5280a45e_form_strip_leading_and_trailing_whitespace.py
│ │ │ ├── 2591d77e9831_user_id.py
│ │ │ ├── 27ae655e4247_make_creator_owners.py
│ │ │ ├── 289ce07647b_add_encrypted_password_field.py
│ │ │ ├── 2929af7925ed_tz_offsets_in_data_sources.py
│ │ │ ├── 2f1d15e8a6af_add_alerts.py
│ │ │ ├── 2fcdcb35e487_saved_queries.py
│ │ │ ├── 30bb17c0dc76_.py
│ │ │ ├── 315b3f4da9b0_adding_log_model.py
│ │ │ ├── 3325d4caccc8_dashboard_scoped_filters.py
│ │ │ ├── 33d996bcc382_update_slice_model.py
│ │ │ ├── 3b626e2a6783_sync_db_with_models.py
│ │ │ ├── 3c3ffe173e4f_add_sql_string_to_table.py
│ │ │ ├── 3dda56f1c4c6_migrate_num_period_compare_and_period_.py
│ │ │ ├── 3e1b21cd94a4_change_owner_to_m2m_relation_on_.py
│ │ │ ├── 41f6a59a61f2_database_options_for_sql_lab.py
│ │ │ ├── 430039611635_log_more.py
│ │ │ ├── 43df8de3a5f4_dash_json.py
│ │ │ ├── 4451805bbaa1_remove_double_percents.py
│ │ │ ├── 4500485bde7d_allow_run_sync_async.py
│ │ │ ├── 45e7da7cfeba_.py
│ │ │ ├── 46ba6aaaac97_.py
│ │ │ ├── 46f444d8b9b7_remove_coordinator_from_druid_cluster_.py
│ │ │ ├── 472d2f73dfd4_.py
│ │ │ ├── 4736ec66ce19_.py
│ │ │ ├── 4ce8df208545_migrate_time_range_for_default_filters.py
│ │ │ ├── 4e6a06bad7a8_init.py
│ │ │ ├── 4fa88fe24e94_owners_many_to_many.py
│ │ │ ├── 525c854f0005_log_this_plus.py
│ │ │ ├── 55179c7f25c7_sqla_descr.py
│ │ │ ├── 55e910a74826_add_metadata_column_to_annotation_model_.py
│ │ │ ├── 5a7bad26f2a7_.py
│ │ │ ├── 5afa9079866a_serialize_schema_permissions_py.py
│ │ │ ├── 5ccf602336a0_.py
│ │ │ ├── 5e4a03ef0bf0_add_request_access_model.py
│ │ │ ├── 620241d1153f_update_time_grain_sqla.py
│ │ │ ├── 6414e83d82b7_.py
│ │ │ ├── 65903709c321_allow_dml.py
│ │ │ ├── 67a6ac9b727b_update_spatial_params.py
│ │ │ ├── 6c7537a6004a_models_for_email_reports.py
│ │ │ ├── 705732c70154_.py
│ │ │ ├── 72428d1ea401_add_tmp_schema_name_to_the_query_object.py
│ │ │ ├── 732f1c06bcbf_add_fetch_values_predicate.py
│ │ │ ├── 743a117f0d98_add_slack_to_the_schedule.py
│ │ │ ├── 7467e77870e4_remove_aggs.py
│ │ │ ├── 763d4b211ec9_fixing_audit_fk.py
│ │ │ ├── 78ee127d0d1d_reconvert_legacy_filters_into_adhoc.py
│ │ │ ├── 7dbf98566af7_slice_description.py
│ │ │ ├── 7e3ddad2a00b_results_key_to_query.py
│ │ │ ├── 7f2635b51f5d_update_base_columns.py
│ │ │ ├── 7fcdcde0761c_.py
│ │ │ ├── 80a67c5192fa_single_pie_chart_metric.py
│ │ │ ├── 80aa3f04bc82_add_parent_ids_in_dashboard_layout.py
│ │ │ ├── 817e1c9b09d0_add_not_null_to_dbs_sqlalchemy_url.py
│ │ │ ├── 836c0bf75904_cache_timeouts.py
│ │ │ ├── 867bf4f117f9_adding_extra_field_to_database_model.py
│ │ │ ├── 89115a40e8ea_change_table_schema_description_to_long_.py
│ │ │ ├── 8b70aa3d0f87_.py
│ │ │ ├── 8e80a26a31db_.py
│ │ │ ├── 937d04c16b64_update_datasources.py
│ │ │ ├── 956a063c52b3_adjusting_key_length.py
│ │ │ ├── 960c69cb1f5b_.py
│ │ │ ├── 979c03af3341_.py
│ │ │ ├── a2d606a761d9_adding_favstar_model.py
│ │ │ ├── a33a03f16c4a_add_extra_column_to_savedquery.py
│ │ │ ├── a61b40f9f57f_remove_allow_run_sync.py
│ │ │ ├── a65458420354_add_result_backend_time_logging.py
│ │ │ ├── a6c18f869a4e_query_start_running_time.py
│ │ │ ├── a72cb0ebeb22_deprecate_dbs_perm_column.py
│ │ │ ├── a99f2f7c195a_rewriting_url_from_shortner_with_new_.py
│ │ │ ├── a9c47e2c1547_add_impersonate_user_to_dbs.py
│ │ │ ├── ab3d66c4246e_add_cache_timeout_to_druid_cluster.py
│ │ │ ├── ab8c66efdd01_resample.py
│ │ │ ├── ad4d656d92bc_add_avg_metric.py
│ │ │ ├── ad82a75afd82_add_query_model.py
│ │ │ ├── afb7730f6a9c_remove_empty_filters.py
│ │ │ ├── afc69274c25a_alter_sql_column_data_type_in_query_mysql_table.py
│ │ │ ├── b318dfe5fb6c_adding_verbose_name_to_druid_column.py
│ │ │ ├── b347b202819b_.py
│ │ │ ├── b4456560d4f3_change_table_unique_constraint.py
│ │ │ ├── b46fa1b0b39e_add_params_to_tables.py
│ │ │ ├── b4a38aa87893_deprecate_database_expression.py
│ │ │ ├── b5998378c225_add_certificate_to_dbs.py
│ │ │ ├── b6fa807eac07_make_names_non_nullable.py
│ │ │ ├── bb51420eaf83_add_schema_to_table_model.py
│ │ │ ├── bcf3126872fc_add_keyvalue.py
│ │ │ ├── bddc498dd179_adhoc_filters.py
│ │ │ ├── bebcf3fed1fe_convert_dashboard_v1_positions.py
│ │ │ ├── bf706ae5eb46_cal_heatmap_metric_to_metrics.py
│ │ │ ├── c18bd4186f15_.py
│ │ │ ├── c2acd2cf3df2_alter_type_of_dbs_encrypted_extra.py
│ │ │ ├── c3a8f8611885_materializing_permission.py
│ │ │ ├── c5756bec8b47_time_grain_sqla.py
│ │ │ ├── c611f2b591b8_dim_spec.py
│ │ │ ├── c617da68de7d_form_nullable.py
│ │ │ ├── c829ff0b37d0_.py
│ │ │ ├── c82ee8a39623_add_implicit_tags.py
│ │ │ ├── c9495751e314_.py
│ │ │ ├── ca69c70ec99b_tracking_url.py
│ │ │ ├── cca2f5d568c8_add_encrypted_extra_to_dbs.py
│ │ │ ├── cefabc8f7d38_increase_size_of_name_column_in_ab_view_.py
│ │ │ ├── d2424a248d63_.py
│ │ │ ├── d39b1e37131d_.py
│ │ │ ├── d6db5a5cdb5d_.py
│ │ │ ├── d6ffdf31bdd4_add_published_column_to_dashboards.py
│ │ │ ├── d7c1a0d6f2da_remove_limit_used_from_query_model.py
│ │ │ ├── d827694c7555_css_templates.py
│ │ │ ├── d8bc074f7aad_add_new_field_is_restricted_to_.py
│ │ │ ├── d94d33dbe938_form_strip.py
│ │ │ ├── db0c65b146bd_update_slice_model_json.py
│ │ │ ├── db4b49eb0782_add_tables_for_sql_lab_state.py
│ │ │ ├── db527d8c4c78_add_db_verbose_name.py
│ │ │ ├── ddd6ebdd853b_annotations.py
│ │ │ ├── de021a1ca60d_.py
│ │ │ ├── def97f26fdfb_add_index_to_tagged_object.py
│ │ │ ├── e3970889f38e_.py
│ │ │ ├── e46f2d27a08e_materialize_perms.py
│ │ │ ├── e502db2af7be_add_template_params_to_tables.py
│ │ │ ├── e553e78e90c5_add_druid_auth_py_py.py
│ │ │ ├── e557699a813e_add_tables_relation_to_row_level_.py
│ │ │ ├── e68c4473c581_allow_multi_schema_metadata_fetch.py
│ │ │ ├── e866bd2d4976_smaller_grid.py
│ │ │ ├── e96dbf2cfef0_datasource_cluster_fk.py
│ │ │ ├── e9df189e5c7e_update_base_metrics.py
│ │ │ ├── ea033256294a_.py
│ │ │ ├── ea396d202291_ctas_method_in_query.py
│ │ │ ├── ec1f88a35cc6_.py
│ │ │ ├── eca4694defa7_sqllab_setting_defaults.py
│ │ │ ├── ef8843b41dac_.py
│ │ │ ├── f0fbf6129e13_adding_verbose_name_to_tablecolumn.py
│ │ │ ├── f162a1dea4c4_d3format_by_metric.py
│ │ │ ├── f18570e03440_add_query_result_key_index.py
│ │ │ ├── f1f2d4af5b90_.py
│ │ │ ├── f231d82b9b26_.py
│ │ │ ├── f959a6652acd_.py
│ │ │ ├── f9a30386bd74_cleanup_time_grainularity.py
│ │ │ ├── fb13d49b72f9_better_filters.py
│ │ │ ├── fbd55e0f83eb_.py
│ │ │ ├── fc480c87706c_.py
│ │ │ └── fee7b758c130_.py
│ │ ├── models
│ │ │ ├── alerts.py
│ │ │ ├── annotations.py
│ │ │ ├── core.py
│ │ │ ├── dashboard.py
│ │ │ ├── datasource_access_request.py
│ │ │ ├── helpers.py
│ │ │ ├── __init__.py
│ │ │ ├── schedules.py
│ │ │ ├── slice.py
│ │ │ ├── sql_lab.py
│ │ │ ├── sql_types
│ │ │ │ ├── __init__.py
│ │ │ │ └── presto_sql_types.py
│ │ │ ├── tags.py
│ │ │ └── user_attributes.py
│ │ ├── queries
│ │ │ ├── api.py
│ │ │ ├── dao.py
│ │ │ ├── filters.py
│ │ │ ├── __init__.py
│ │ │ └── schemas.py
│ │ ├── result_set.py
│ │ ├── security
│ │ │ ├── analytics_db_safety.py
│ │ │ ├── __init__.py
│ │ │ └── manager.py
│ │ ├── sql_lab.py
│ │ ├── sql_parse.py
│ │ ├── sql_validators
│ │ │ ├── base.py
│ │ │ ├── __init__.py
│ │ │ └── presto_db.py
│ │ ├── static
│ │ ├── stats_logger.py
│ │ ├── tasks
│ │ │ ├── cache.py
│ │ │ ├── celery_app.py
│ │ │ ├── __init__.py
│ │ │ ├── schedules.py
│ │ │ ├── slack_util.py
│ │ │ └── thumbnails.py
│ │ ├── templates
│ │ │ ├── appbuilder
│ │ │ │ ├── baselayout.html
│ │ │ │ ├── general
│ │ │ │ │ ├── model
│ │ │ │ │ │ └── list.html
│ │ │ │ │ └── widgets
│ │ │ │ │ ├── base_list.html
│ │ │ │ │ └── search.html
│ │ │ │ ├── navbar.html
│ │ │ │ └── navbar_right.html
│ │ │ │ ├── role_extended.txt
│ │ │ │ └── role_granted.txt
│ │ │ └── superset
│ │ │ ├── add_slice.html
│ │ │ ├── base.html
│ │ │ ├── basic.html
│ │ │ ├── csrf_token.json
│ │ │ ├── dashboard.html
│ │ │ ├── dashboard_v1_deprecated.html
│ │ │ ├── export_dashboards.html
│ │ │ ├── fab_overrides
│ │ │ │ ├── list.html
│ │ │ │ ├── list_role.html
│ │ │ │ └── list_with_checkboxes.html
│ │ │ ├── flash_wrapper.html
│ │ │ ├── form_view
│ │ │ │ ├── csv_to_database_view
│ │ │ │ │ └── edit.html
│ │ │ │ └── excel_to_database_view
│ │ │ │ └── edit.html
│ │ │ ├── import_dashboards.html
│ │ │ ├── models
│ │ │ │ ├── database
│ │ │ │ │ ├── add.html
│ │ │ │ │ ├── edit.html
│ │ │ │ │ └── macros.html
│ │ │ │ └── savedquery
│ │ │ │ └── show.html
│ │ │ ├── paper-theme.html
│ │ │ ├── partials
│ │ │ │ └── asset_bundle.html
│ │ │ ├── reports
│ │ │ │ └── slice_data.html
│ │ │ ├── request_access.html
│ │ │ ├── theme.html
│ │ │ ├── traceback.html
│ │ │ └── welcome.html
│ │ ├── translations
│ │ │ ├── babel.cfg
│ │ │ ├── de
│ │ │ │ └── LC_MESSAGES
│ │ │ │ ├── messages.json
│ │ │ │ └── messages.po
│ │ │ ├── en
│ │ │ │ └── LC_MESSAGES
│ │ │ │ ├── messages.json
│ │ │ │ └── messages.po
│ │ │ ├── es
│ │ │ │ └── LC_MESSAGES
│ │ │ │ ├── messages.json
│ │ │ │ └── messages.po
│ │ │ ├── fr
│ │ │ │ └── LC_MESSAGES
│ │ │ │ ├── messages.json
│ │ │ │ └── messages.po
│ │ │ ├── __init__.py
│ │ │ ├── it
│ │ │ │ └── LC_MESSAGES
│ │ │ │ ├── messages.json
│ │ │ │ └── messages.po
│ │ │ ├── ja
│ │ │ │ └── LC_MESSAGES
│ │ │ │ ├── messages.json
│ │ │ │ └── messages.po
│ │ │ ├── ko
│ │ │ │ └── LC_MESSAGES
│ │ │ │ ├── messages.json
│ │ │ │ └── messages.po
│ │ │ ├── messages.pot
│ │ │ ├── pt
│ │ │ │ └── LC_MESSAGES
│ │ │ │ ├── message.po
│ │ │ │ └── messages.json
│ │ │ ├── pt_BR
│ │ │ │ └── LC_MESSAGES
│ │ │ │ ├── messages.json
│ │ │ │ └── messages.po
│ │ │ ├── requirements.txt
│ │ │ ├── ru
│ │ │ │ └── LC_MESSAGES
│ │ │ │ ├── messages.json
│ │ │ │ └── messages.po
│ │ │ ├── utils.py
│ │ │ └── zh
│ │ │ └── LC_MESSAGES
│ │ │ ├── messages.json
│ │ │ └── messages.po
│ │ ├── typing.py
│ │ ├── utils
│ │ │ ├── cache_manager.py
│ │ │ ├── cache.py
│ │ │ ├── core.py
│ │ │ ├── dashboard_filter_scopes_converter.py
│ │ │ ├── dashboard_import_export.py
│ │ │ ├── dates.py
│ │ │ ├── decorators.py
│ │ │ ├── dict_import_export.py
│ │ │ ├── feature_flag_manager.py
│ │ │ ├── hashing.py
│ │ │ ├── import_datasource.py
│ │ │ ├── __init__.py
│ │ │ ├── logging_configurator.py
│ │ │ ├── log.py
│ │ │ ├── pandas_postprocessing.py
│ │ │ ├── schema.py
│ │ │ ├── screenshots.py
│ │ │ ├── url_map_converters.py
│ │ │ └── urls.py
│ │ ├── views
│ │ │ ├── access_requests.py
│ │ │ ├── alerts.py
│ │ │ ├── annotations.py
│ │ │ ├── api.py
│ │ │ ├── base_api.py
│ │ │ ├── base.py
│ │ │ ├── base_schemas.py
│ │ │ ├── chart
│ │ │ │ ├── filters.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── mixin.py
│ │ │ │ └── views.py
│ │ │ ├── core.py
│ │ │ ├── css_templates.py
│ │ │ ├── dashboard
│ │ │ │ ├── filters.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── mixin.py
│ │ │ │ └── views.py
│ │ │ ├── database
│ │ │ │ ├── api.py
│ │ │ │ ├── decorators.py
│ │ │ │ ├── filters.py
│ │ │ │ ├── forms.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── mixins.py
│ │ │ │ ├── validators.py
│ │ │ │ └── views.py
│ │ │ ├── datasource.py
│ │ │ ├── filters.py
│ │ │ ├── health.py
│ │ │ ├── __init__.py
│ │ │ ├── key_value.py
│ │ │ ├── log
│ │ │ │ ├── api.py
│ │ │ │ ├── __init__.py
│ │ │ │ └── views.py
│ │ │ ├── redirects.py
│ │ │ ├── schedules.py
│ │ │ ├── sql_lab.py
│ │ │ ├── tags.py
│ │ │ └── utils.py
│ │ ├── viz.py
│ │ └── viz_sip38.py
│ ├── superset-frontend
│ │ ├── babel.config.js
│ │ ├── branding
│ │ │ ├── superset-logo-horiz-apache.png
│ │ │ ├── superset-logo-horiz-apache.svg
│ │ │ ├── superset-logo-horiz.png
│ │ │ ├── superset-logo-horiz.svg
│ │ │ ├── superset-logo-stacked-apache.png
│ │ │ ├── superset-logo-stacked-apache.svg
│ │ │ ├── superset-logo-stacked.png
│ │ │ └── superset-logo-stacked.svg
│ │ ├── cypress-base
│ │ │ ├── cypress
│ │ │ │ ├── fixtures
│ │ │ │ │ └── example.json
│ │ │ │ ├── integration
│ │ │ │ │ ├── dashboard
│ │ │ │ │ │ ├── controls.test.js
│ │ │ │ │ │ ├── dashboard.helper.js
│ │ │ │ │ │ ├── edit_mode.test.js
│ │ │ │ │ │ ├── fav_star.test.js
│ │ │ │ │ │ ├── filter.test.ts
│ │ │ │ │ │ ├── load.test.js
│ │ │ │ │ │ ├── save.test.js
│ │ │ │ │ │ ├── tabs.test.js
│ │ │ │ │ │ └── url_params.test.js
│ │ │ │ │ ├── explore
│ │ │ │ │ │ ├── AdhocFilters.test.ts
│ │ │ │ │ │ ├── AdhocMetrics.test.ts
│ │ │ │ │ │ ├── advanced.test.ts
│ │ │ │ │ │ ├── chart.test.js
│ │ │ │ │ │ ├── control.test.ts
│ │ │ │ │ │ ├── filter_box.test.js
│ │ │ │ │ │ ├── link.test.js
│ │ │ │ │ │ └── visualizations
│ │ │ │ │ │ ├── area.test.js
│ │ │ │ │ │ ├── big_number.test.js
│ │ │ │ │ │ ├── big_number_total.test.js
│ │ │ │ │ │ ├── box_plot.test.js
│ │ │ │ │ │ ├── bubble.test.js
│ │ │ │ │ │ ├── compare.test.js
│ │ │ │ │ │ ├── dist_bar.test.js
│ │ │ │ │ │ ├── dual_line.test.js
│ │ │ │ │ │ ├── histogram.test.js
│ │ │ │ │ │ ├── line.test.ts
│ │ │ │ │ │ ├── pie.test.js
│ │ │ │ │ │ ├── pivot_table.test.js
│ │ │ │ │ │ ├── sankey.test.js
│ │ │ │ │ │ ├── shared.helper.js
│ │ │ │ │ │ ├── sunburst.test.js
│ │ │ │ │ │ ├── table.test.ts
│ │ │ │ │ │ ├── time_table.js
│ │ │ │ │ │ ├── treemap.test.js
│ │ │ │ │ │ └── world_map.test.js
│ │ │ │ │ └── sqllab
│ │ │ │ │ ├── query.test.js
│ │ │ │ │ ├── sourcePanel.index.js
│ │ │ │ │ ├── sqllab.helper.js
│ │ │ │ │ └── tabs.test.js
│ │ │ │ ├── plugins
│ │ │ │ │ └── index.js
│ │ │ │ ├── support
│ │ │ │ │ ├── index.d.ts
│ │ │ │ │ └── index.ts
│ │ │ │ └── utils
│ │ │ │ └── readResponseBlob.ts
│ │ │ ├── cypress.json
│ │ │ ├── package.json
│ │ │ ├── package-lock.json
│ │ │ └── tsconfig.json
│ │ ├── cypress_build.sh
│ │ ├── fonts
│ │ │ ├── FiraCode
│ │ │ │ ├── specimen.less
│ │ │ │ ├── woff
│ │ │ │ │ ├── FiraCode-Bold.woff
│ │ │ │ │ ├── FiraCode-Light.woff
│ │ │ │ │ ├── FiraCode-Medium.woff
│ │ │ │ │ ├── FiraCode-Regular.woff
│ │ │ │ │ ├── FiraCode-Retina.woff
│ │ │ │ │ └── FiraCode-VF.woff
│ │ │ │ └── woff2
│ │ │ │ ├── FiraCode-Bold.woff2
│ │ │ │ ├── FiraCode-Light.woff2
│ │ │ │ ├── FiraCode-Medium.woff2
│ │ │ │ ├── FiraCode-Regular.woff2
│ │ │ │ ├── FiraCode-Retina.woff2
│ │ │ │ └── FiraCode-VF.woff2
│ │ │ └── InterUI
│ │ │ ├── Inter-BlackItalic.woff
│ │ │ ├── Inter-BlackItalic.woff2
│ │ │ ├── Inter-Black.woff
│ │ │ ├── Inter-Black.woff2
│ │ │ ├── Inter-BoldItalic.woff
│ │ │ ├── Inter-BoldItalic.woff2
│ │ │ ├── Inter-Bold.woff
│ │ │ ├── Inter-Bold.woff2
│ │ │ ├── Inter-ExtraBoldItalic.woff
│ │ │ ├── Inter-ExtraBoldItalic.woff2
│ │ │ ├── Inter-ExtraBold.woff
│ │ │ ├── Inter-ExtraBold.woff2
│ │ │ ├── Inter-ExtraLightItalic.woff
│ │ │ ├── Inter-ExtraLightItalic.woff2
│ │ │ ├── Inter-ExtraLight.woff
│ │ │ ├── Inter-ExtraLight.woff2
│ │ │ ├── Inter-italic.var.woff2
│ │ │ ├── Inter-Italic.woff
│ │ │ ├── Inter-Italic.woff2
│ │ │ ├── Inter-LightItalic.woff
│ │ │ ├── Inter-LightItalic.woff2
│ │ │ ├── Inter-Light.woff
│ │ │ ├── Inter-Light.woff2
│ │ │ ├── Inter-MediumItalic.woff
│ │ │ ├── Inter-MediumItalic.woff2
│ │ │ ├── Inter-Medium.woff
│ │ │ ├── Inter-Medium.woff2
│ │ │ ├── Inter-Regular.woff
│ │ │ ├── Inter-Regular.woff2
│ │ │ ├── Inter-roman.var.woff2
│ │ │ ├── Inter-SemiBoldItalic.woff
│ │ │ ├── Inter-SemiBoldItalic.woff2
│ │ │ ├── Inter-SemiBold.woff
│ │ │ ├── Inter-SemiBold.woff2
│ │ │ ├── Inter-ThinItalic.woff
│ │ │ ├── Inter-ThinItalic.woff2
│ │ │ ├── Inter-Thin.woff
│ │ │ ├── Inter-Thin.woff2
│ │ │ └── Inter.var.woff2
│ │ ├── images
│ │ │ ├── apache_feather.png
│ │ │ ├── babies.png
│ │ │ ├── bubble.png
│ │ │ ├── cloud.png
│ │ │ ├── create_role.png
│ │ │ ├── dash.png
│ │ │ ├── druid_agg.png
│ │ │ ├── favicon.png
│ │ │ ├── icons
│ │ │ │ ├── cancel-x.svg
│ │ │ │ ├── checkbox-half.svg
│ │ │ │ ├── checkbox-off.svg
│ │ │ │ ├── checkbox-on.svg
│ │ │ │ ├── check.svg
│ │ │ │ ├── compass.svg
│ │ │ │ ├── dataset_physical.svg
│ │ │ │ ├── dataset_virtual.svg
│ │ │ │ ├── error.svg
│ │ │ │ ├── pencil.svg
│ │ │ │ ├── search.svg
│ │ │ │ ├── sort-asc.svg
│ │ │ │ ├── sort-desc.svg
│ │ │ │ ├── sort.svg
│ │ │ │ ├── trash.svg
│ │ │ │ └── warning.svg
│ │ │ ├── loading.gif
│ │ │ ├── noimg.png
│ │ │ ├── screenshots
│ │ │ │ ├── bank_dash.png
│ │ │ │ ├── deckgl_dash.png
│ │ │ │ ├── explore.png
│ │ │ │ ├── sqllab.png
│ │ │ │ └── visualizations.png
│ │ │ ├── s.png
│ │ │ ├── superset-logo-horiz.png
│ │ │ ├── superset.png
│ │ │ ├── superset_screenshot.png
│ │ │ ├── tutorial
│ │ │ │ ├── add_db.png
│ │ │ │ ├── tutorial_01_sources_database.png
│ │ │ │ ├── tutorial_02_add_database.png
│ │ │ │ ├── tutorial_03_database_name.png
│ │ │ │ ├── tutorial_04_sqlalchemy_connection_string.png
│ │ │ │ ├── tutorial_05_connection_popup.png
│ │ │ │ ├── tutorial_06_list_of_tables.png
│ │ │ │ ├── tutorial_07_save_button.png
│ │ │ │ ├── tutorial_08_sources_tables.png
│ │ │ │ ├── tutorial_09_add_new_table.png
│ │ │ │ ├── tutorial_10_table_name.png
│ │ │ │ ├── tutorial_11_choose_db.png
│ │ │ │ ├── tutorial_12_table_creation_success_msg.png
│ │ │ │ ├── tutorial_13_edit_table_config.png
│ │ │ │ ├── tutorial_14_field_config.png
│ │ │ │ ├── tutorial_15_click_table_name.png
│ │ │ │ ├── tutorial_16_datasource_chart_type.png
│ │ │ │ ├── tutorial_17_choose_time_range.png
│ │ │ │ ├── tutorial_18_choose_metric.png
│ │ │ │ ├── tutorial_19_click_query.png
│ │ │ │ ├── tutorial_20_count_star_result.png
│ │ │ │ ├── tutorial_21_group_by.png
│ │ │ │ ├── tutorial_22_group_by_result.png
│ │ │ │ ├── tutorial_23_group_by_more_dimensions.png
│ │ │ │ ├── tutorial_24_max_metric.png
│ │ │ │ ├── tutorial_25_max_temp_filter.png
│ │ │ │ ├── tutorial_26_row_limit.png
│ │ │ │ ├── tutorial_27_top_10_max_temps.png
│ │ │ │ ├── tutorial_28_bar_chart.png
│ │ │ │ ├── tutorial_29_bar_chart_series_metrics.png
│ │ │ │ ├── tutorial_30_bar_chart_results.png
│ │ │ │ ├── tutorial_31_save_slice_to_dashboard.png
│ │ │ │ ├── tutorial_32_save_slice_confirmation.png
│ │ │ │ ├── tutorial_33_dashboard.png
│ │ │ │ ├── tutorial_34_weather_dashboard.png
│ │ │ │ ├── tutorial_35_slice_on_dashboard.png
│ │ │ │ └── tutorial_36_adjust_dimensions.gif
│ │ │ ├── usertutorial
│ │ │ │ ├── add_new_chart.png
│ │ │ │ ├── advanced_analytics_base.png
│ │ │ │ ├── annotation.png
│ │ │ │ ├── annotation_settings.png
│ │ │ │ ├── average_aggregate_for_cost.png
│ │ │ │ ├── blue_bar_insert_component.png
│ │ │ │ ├── chose_a_datasource.png
│ │ │ │ ├── csv_to_database_configuration.png
│ │ │ │ ├── edit_annotation.png
│ │ │ │ ├── edit-record.png
│ │ │ │ ├── filter_on_origin_country.png
│ │ │ │ ├── markdown.png
│ │ │ │ ├── no_filter_on_time_filter.png
│ │ │ │ ├── parse_dates_column.png
│ │ │ │ ├── publish_dashboard.png
│ │ │ │ ├── resample.png
│ │ │ │ ├── resize_tutorial_table_on_dashboard.png
│ │ │ │ ├── rolling_mean.png
│ │ │ │ ├── save_tutorial_table.png
│ │ │ │ ├── select_dates_pivot_table.png
│ │ │ │ ├── select_table_visualization_type.png
│ │ │ │ ├── sum_cost_column.png
│ │ │ │ ├── time_comparison_absolute_difference.png
│ │ │ │ ├── time_comparison_two_series.png
│ │ │ │ ├── tutorial_line_chart.png
│ │ │ │ ├── tutorial_pivot_table.png
│ │ │ │ ├── tutorial_table.png
│ │ │ │ └── upload_a_csv.png
│ │ │ └── viz_thumbnails
│ │ │ ├── area.png
│ │ │ ├── bar.png
│ │ │ ├── big_number.png
│ │ │ ├── big_number_total.png
│ │ │ ├── box_plot.png
│ │ │ ├── bubble.png
│ │ │ ├── bullet.png
│ │ │ ├── cal_heatmap.png
│ │ │ ├── chord.png
│ │ │ ├── compare.png
│ │ │ ├── country_map.png
│ │ │ ├── deck_arc.png
│ │ │ ├── deck_geojson.png
│ │ │ ├── deck_grid.png
│ │ │ ├── deck_hex.png
│ │ │ ├── deck_multi.png
│ │ │ ├── deck_path.png
│ │ │ ├── deck_polygon.png
│ │ │ ├── deck_scatter.png
│ │ │ ├── deck_screengrid.png
│ │ │ ├── directed_force.png
│ │ │ ├── dist_bar.png
│ │ │ ├── dual_line.png
│ │ │ ├── event_flow.png
│ │ │ ├── filter_box.png
│ │ │ ├── heatmap.png
│ │ │ ├── histogram.png
│ │ │ ├── horizon.png
│ │ │ ├── iframe.png
│ │ │ ├── line_multi.png
│ │ │ ├── line.png
│ │ │ ├── mapbox.png
│ │ │ ├── markup.png
│ │ │ ├── multi.png
│ │ │ ├── paired_ttest.png
│ │ │ ├── para.png
│ │ │ ├── partition.png
│ │ │ ├── pie.png
│ │ │ ├── pivot_table.png
│ │ │ ├── rose.png
│ │ │ ├── sankey.png
│ │ │ ├── separator.png
│ │ │ ├── sunburst.png
│ │ │ ├── table.png
│ │ │ ├── time_pivot.png
│ │ │ ├── time_table.png
│ │ │ ├── treemap.png
│ │ │ ├── word_cloud.png
│ │ │ └── world_map.png
│ │ ├── jest.config.js
│ │ ├── js_build.sh
│ │ ├── jsconfig.json
│ │ ├── package.json
│ │ ├── package-lock.json
│ │ ├── spec
│ │ │ ├── fixtures
│ │ │ │ └── mockDatasource.js
│ │ │ ├── helpers
│ │ │ │ ├── setupSupersetClient.js
│ │ │ │ └── shim.js
│ │ │ ├── javascripts
│ │ │ │ ├── addSlice
│ │ │ │ │ └── AddSliceContainer_spec.tsx
│ │ │ │ ├── chart
│ │ │ │ │ ├── chartActions_spec.js
│ │ │ │ │ ├── chartReducers_spec.js
│ │ │ │ │ └── ChartRenderer_spec.jsx
│ │ │ │ ├── components
│ │ │ │ │ ├── AlteredSliceTag_spec.jsx
│ │ │ │ │ ├── AnchorLink_spec.jsx
│ │ │ │ │ ├── AsyncSelect_spec.jsx
│ │ │ │ │ ├── CachedLabel_spec.jsx
│ │ │ │ │ ├── Checkbox_spec.jsx
│ │ │ │ │ ├── ColumnTypeLabel_spec.jsx
│ │ │ │ │ ├── ConfirmStatusChange_spec.jsx
│ │ │ │ │ ├── CopyToClipboard_spec.jsx
│ │ │ │ │ ├── ErrorMessage
│ │ │ │ │ │ └── getErrorMessageComponentRegistry_spec.tsx
│ │ │ │ │ ├── FilterableTable
│ │ │ │ │ │ └── FilterableTable_spec.tsx
│ │ │ │ │ ├── FormRow_spec.jsx
│ │ │ │ │ ├── ListView
│ │ │ │ │ │ └── ListView_spec.jsx
│ │ │ │ │ ├── Menu_spec.jsx
│ │ │ │ │ ├── ModalTrigger_spec.jsx
│ │ │ │ │ ├── OnPasteSelect_spec.jsx
│ │ │ │ │ ├── PopoverSection_spec.jsx
│ │ │ │ │ ├── SearchInput_spec.jsx
│ │ │ │ │ ├── TableSelector_spec.jsx
│ │ │ │ │ ├── URLShortLinkButton_spec.jsx
│ │ │ │ │ └── URLShortLinkModal_spec.jsx
│ │ │ │ ├── CRUD
│ │ │ │ │ └── CollectionTable_spec.jsx
│ │ │ │ ├── dashboard
│ │ │ │ │ ├── actions
│ │ │ │ │ │ ├── dashboardLayout_spec.js
│ │ │ │ │ │ └── dashboardState_spec.js
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── CodeModal_spec.jsx
│ │ │ │ │ │ ├── CssEditor_spec.jsx
│ │ │ │ │ │ ├── DashboardBuilder_spec.jsx
│ │ │ │ │ │ ├── DashboardGrid_spec.jsx
│ │ │ │ │ │ ├── Dashboard_spec.jsx
│ │ │ │ │ │ ├── dnd
│ │ │ │ │ │ │ └── DragDroppable_spec.jsx
│ │ │ │ │ │ ├── FilterIndicatorGroup_spec.jsx
│ │ │ │ │ │ ├── FilterIndicatorsContainer_spec.jsx
│ │ │ │ │ │ ├── FilterIndicator_spec.jsx
│ │ │ │ │ │ ├── FilterIndicatorTooltip_spec.jsx
│ │ │ │ │ │ ├── FilterTooltipWrapper_spec.jsx
│ │ │ │ │ │ ├── gridComponents
│ │ │ │ │ │ │ ├── ChartHolder_spec.jsx
│ │ │ │ │ │ │ ├── Chart_spec.jsx
│ │ │ │ │ │ │ ├── Column_spec.jsx
│ │ │ │ │ │ │ ├── Divider_spec.jsx
│ │ │ │ │ │ │ ├── Header_spec.jsx
│ │ │ │ │ │ │ ├── Markdown_spec.jsx
│ │ │ │ │ │ │ ├── new
│ │ │ │ │ │ │ │ ├── DraggableNewComponent_spec.jsx
│ │ │ │ │ │ │ │ ├── NewColumn_spec.jsx
│ │ │ │ │ │ │ │ ├── NewDivider_spec.jsx
│ │ │ │ │ │ │ │ ├── NewHeader_spec.jsx
│ │ │ │ │ │ │ │ ├── NewRow_spec.jsx
│ │ │ │ │ │ │ │ └── NewTabs_spec.jsx
│ │ │ │ │ │ │ ├── Row_spec.jsx
│ │ │ │ │ │ │ ├── Tab_spec.jsx
│ │ │ │ │ │ │ └── Tabs_spec.jsx
│ │ │ │ │ │ ├── HeaderActionsDropdown_spec.jsx
│ │ │ │ │ │ ├── Header_spec.jsx
│ │ │ │ │ │ ├── menu
│ │ │ │ │ │ │ ├── HoverMenu_spec.jsx
│ │ │ │ │ │ │ └── WithPopoverMenu_spec.jsx
│ │ │ │ │ │ ├── MissingChart_spec.jsx
│ │ │ │ │ │ ├── RefreshIntervalModal_spec.jsx
│ │ │ │ │ │ ├── resizable
│ │ │ │ │ │ │ ├── ResizableContainer_spec.jsx
│ │ │ │ │ │ │ └── ResizableHandle_spec.jsx
│ │ │ │ │ │ └── SliceAdder_spec.jsx
│ │ │ │ │ ├── fixtures
│ │ │ │ │ │ ├── mockChartQueries.js
│ │ │ │ │ │ ├── mockDashboardData.js
│ │ │ │ │ │ ├── mockDashboardFilters.js
│ │ │ │ │ │ ├── mockDashboardInfo.js
│ │ │ │ │ │ ├── mockDashboardLayout.js
│ │ │ │ │ │ ├── mockDashboardState.js
│ │ │ │ │ │ ├── mockSliceEntities.js
│ │ │ │ │ │ ├── mockState.js
│ │ │ │ │ │ └── mockStore.js
│ │ │ │ │ ├── helpers
│ │ │ │ │ │ └── WithDragDropContext.jsx
│ │ │ │ │ ├── reducers
│ │ │ │ │ │ ├── dashboardFilters_spec.js
│ │ │ │ │ │ ├── dashboardLayout_spec.js
│ │ │ │ │ │ ├── dashboardState_spec.js
│ │ │ │ │ │ └── sliceEntities_spec.js
│ │ │ │ │ └── util
│ │ │ │ │ ├── componentIsResizable_spec.ts
│ │ │ │ │ ├── dnd-reorder_spec.js
│ │ │ │ │ ├── dropOverflowsParent_spec.js
│ │ │ │ │ ├── findFirstParentContainer_spec.js
│ │ │ │ │ ├── findParentId_spec.js
│ │ │ │ │ ├── findTabIndexByComponentId_spec.js
│ │ │ │ │ ├── getChartAndLabelComponentIdFromPath_spec.js
│ │ │ │ │ ├── getChartIdsFromLayout_spec.js
│ │ │ │ │ ├── getDashboardUrl_spec.js
│ │ │ │ │ ├── getDetailedComponentWidth_spec.js
│ │ │ │ │ ├── getDropPosition_spec.js
│ │ │ │ │ ├── getEffectiveExtraFilters_spec.js
│ │ │ │ │ ├── getFilterConfigsFromFormdata_spec.js
│ │ │ │ │ ├── getFilterScopeFromNodesTree_spec.js
│ │ │ │ │ ├── getFormDataWithExtraFilters_spec.ts
│ │ │ │ │ ├── getLeafComponentIdFromPath_spec.js
│ │ │ │ │ ├── isDashboardEmpty_spec.ts
│ │ │ │ │ ├── isValidChild_spec.ts
│ │ │ │ │ ├── newComponentFactory_spec.js
│ │ │ │ │ ├── newEntitiesFromDrop_spec.js
│ │ │ │ │ └── updateComponentParentsList_spec.js
│ │ │ │ ├── datasource
│ │ │ │ │ ├── ChangeDatasourceModal_spec.jsx
│ │ │ │ │ ├── DatasourceEditor_spec.jsx
│ │ │ │ │ └── DatasourceModal_spec.jsx
│ │ │ │ ├── explore
│ │ │ │ │ ├── AdhocFilter_spec.js
│ │ │ │ │ ├── AdhocMetric_spec.js
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── AdhocFilterControl_spec.jsx
│ │ │ │ │ │ ├── AdhocFilterEditPopoverSimpleTabContent_spec.jsx
│ │ │ │ │ │ ├── AdhocFilterEditPopover_spec.jsx
│ │ │ │ │ │ ├── AdhocFilterEditPopoverSqlTabContent_spec.jsx
│ │ │ │ │ │ ├── AdhocFilterOption_spec.jsx
│ │ │ │ │ │ ├── AdhocMetricEditPopover_spec.jsx
│ │ │ │ │ │ ├── AdhocMetricEditPopoverTitle_spec.jsx
│ │ │ │ │ │ ├── AdhocMetricOption_spec.jsx
│ │ │ │ │ │ ├── AdhocMetricStaticOption_spec.jsx
│ │ │ │ │ │ ├── AggregateOption_spec.jsx
│ │ │ │ │ │ ├── BoundsControl_spec.jsx
│ │ │ │ │ │ ├── CheckboxControl_spec.jsx
│ │ │ │ │ │ ├── ColorPickerControl_spec.jsx
│ │ │ │ │ │ ├── ColorScheme_spec.jsx
│ │ │ │ │ │ ├── ControlPanelsContainer_spec.jsx
│ │ │ │ │ │ ├── ControlPanelSection_spec.jsx
│ │ │ │ │ │ ├── ControlRow_spec.jsx
│ │ │ │ │ │ ├── DatasourceControl_spec.jsx
│ │ │ │ │ │ ├── DateFilterControl_spec.jsx
│ │ │ │ │ │ ├── DisplayQueryButton_spec.jsx
│ │ │ │ │ │ ├── EmbedCodeButton_spec.jsx
│ │ │ │ │ │ ├── ExploreActionButtons_spec.jsx
│ │ │ │ │ │ ├── ExploreChartHeader_spec.jsx
│ │ │ │ │ │ ├── ExploreChartPanel_spec.jsx
│ │ │ │ │ │ ├── ExploreViewContainer_spec.jsx
│ │ │ │ │ │ ├── FilterBoxItemControl_spec.jsx
│ │ │ │ │ │ ├── FilterBox_spec.jsx
│ │ │ │ │ │ ├── FilterDefinitionOption_spec.jsx
│ │ │ │ │ │ ├── FixedOrMetricControl_spec.jsx
│ │ │ │ │ │ ├── MetricDefinitionOption_spec.jsx
│ │ │ │ │ │ ├── MetricDefinitionValue_spec.jsx
│ │ │ │ │ │ ├── MetricsControl_spec.jsx
│ │ │ │ │ │ ├── QueryAndSaveBtns_spec.jsx
│ │ │ │ │ │ ├── RowCountLabel_spec.jsx
│ │ │ │ │ │ ├── RunQueryActionButton_spec.jsx
│ │ │ │ │ │ ├── SaveModal_spec.jsx
│ │ │ │ │ │ ├── SelectControl_spec.jsx
│ │ │ │ │ │ ├── TextArea_spec.jsx
│ │ │ │ │ │ ├── TimeSeriesColumnControl_spec.jsx
│ │ │ │ │ │ ├── ViewportControl_spec.jsx
│ │ │ │ │ │ ├── VizTypeControl_spec.jsx
│ │ │ │ │ │ └── withVerification_spec.jsx
│ │ │ │ │ ├── controlUtils_spec.jsx
│ │ │ │ │ ├── exploreActions_spec.js
│ │ │ │ │ ├── store_spec.jsx
│ │ │ │ │ └── utils_spec.jsx
│ │ │ │ ├── messageToasts
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── ToastPresenter_spec.jsx
│ │ │ │ │ │ └── Toast_spec.jsx
│ │ │ │ │ ├── mockMessageToasts.js
│ │ │ │ │ ├── reducers
│ │ │ │ │ │ └── messageToasts_spec.js
│ │ │ │ │ └── utils
│ │ │ │ │ └── getToastsFromPyFlashMessages_spec.js
│ │ │ │ ├── middleware
│ │ │ │ │ └── logger_spec.js
│ │ │ │ ├── modules
│ │ │ │ │ ├── dates_spec.js
│ │ │ │ │ └── utils_spec.jsx
│ │ │ │ ├── profile
│ │ │ │ │ ├── App_spec.tsx
│ │ │ │ │ ├── CreatedContent_spec.tsx
│ │ │ │ │ ├── EditableTitle_spec.tsx
│ │ │ │ │ ├── Favorites_spec.tsx
│ │ │ │ │ ├── fixtures.tsx
│ │ │ │ │ ├── RecentActivity_spec.tsx
│ │ │ │ │ ├── Security_spec.tsx
│ │ │ │ │ └── UserInfo_spec.tsx
│ │ │ │ ├── showSavedQuery
│ │ │ │ │ └── utils_spec.jsx
│ │ │ │ ├── sqllab
│ │ │ │ │ ├── actions
│ │ │ │ │ │ └── sqlLab_spec.js
│ │ │ │ │ ├── App_spec.jsx
│ │ │ │ │ ├── ColumnElement_spec.tsx
│ │ │ │ │ ├── ExploreResultsButton_spec.jsx
│ │ │ │ │ ├── fixtures.ts
│ │ │ │ │ ├── HighlightedSql_spec.jsx
│ │ │ │ │ ├── LimitControl_spec.jsx
│ │ │ │ │ ├── Link_spec.jsx
│ │ │ │ │ ├── QueryAutoRefresh_spec.jsx
│ │ │ │ │ ├── QuerySearch_spec.jsx
│ │ │ │ │ ├── QueryStateLabel_spec.jsx
│ │ │ │ │ ├── QueryTable_spec.jsx
│ │ │ │ │ ├── reducers
│ │ │ │ │ │ └── sqlLab_spec.js
│ │ │ │ │ ├── ResultSet_spec.jsx
│ │ │ │ │ ├── SaveQuery_spec.jsx
│ │ │ │ │ ├── ShareSqlLabQuery_spec.jsx
│ │ │ │ │ ├── SouthPane_spec.jsx
│ │ │ │ │ ├── SqlEditorLeftBar_spec.jsx
│ │ │ │ │ ├── SqlEditor_spec.jsx
│ │ │ │ │ ├── TabbedSqlEditors_spec.jsx
│ │ │ │ │ ├── TableElement_spec.jsx
│ │ │ │ │ ├── TabStatusIcon_spec.jsx
│ │ │ │ │ ├── Timer_spec.jsx
│ │ │ │ │ └── utils
│ │ │ │ │ └── emptyQueryResults_spec.js
│ │ │ │ ├── utils
│ │ │ │ │ ├── common_spec.jsx
│ │ │ │ │ ├── getClientErrorObject_spec.ts
│ │ │ │ │ ├── getControlsForVizType_spec.js
│ │ │ │ │ ├── parseCookie_spec.ts
│ │ │ │ │ └── safeStringify_spec.ts
│ │ │ │ ├── views
│ │ │ │ │ ├── chartList
│ │ │ │ │ │ └── ChartList_spec.jsx
│ │ │ │ │ ├── dashboardList
│ │ │ │ │ │ └── DashboardList_spec.jsx
│ │ │ │ │ └── datasetList
│ │ │ │ │ └── DatasetList_spec.jsx
│ │ │ │ └── welcome
│ │ │ │ ├── DashboardTable_spec.tsx
│ │ │ │ └── Welcome_spec.tsx
│ │ │ └── __mocks__
│ │ │ ├── fileMock.js
│ │ │ ├── styleMock.js
│ │ │ └── svgrMock.js
│ │ ├── src
│ │ │ ├── addSlice
│ │ │ │ ├── AddSliceContainer.tsx
│ │ │ │ ├── App.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── chart
│ │ │ │ ├── chartAction.js
│ │ │ │ ├── ChartContainer.jsx
│ │ │ │ ├── Chart.jsx
│ │ │ │ ├── chart.less
│ │ │ │ ├── chartReducer.js
│ │ │ │ └── ChartRenderer.jsx
│ │ │ ├── components
│ │ │ │ ├── ActionMenuItem.jsx
│ │ │ │ ├── AlteredSliceTag.jsx
│ │ │ │ ├── AnchorLink.jsx
│ │ │ │ ├── AsyncSelect.jsx
│ │ │ │ ├── AvatarIcon.tsx
│ │ │ │ ├── BootstrapSliderWrapper.jsx
│ │ │ │ ├── BootstrapSliderWrapper.less
│ │ │ │ ├── Button.jsx
│ │ │ │ ├── CachedLabel.jsx
│ │ │ │ ├── ChartIcon.jsx
│ │ │ │ ├── CheckboxIcons.jsx
│ │ │ │ ├── Checkbox.jsx
│ │ │ │ ├── ConfirmStatusChange.tsx
│ │ │ │ ├── CopyToClipboard.jsx
│ │ │ │ ├── DeleteModal.tsx
│ │ │ │ ├── EditableTitle.jsx
│ │ │ │ ├── ErrorBoundary.jsx
│ │ │ │ ├── ErrorMessage
│ │ │ │ │ ├── ErrorMessageWithStackTrace.tsx
│ │ │ │ │ ├── getErrorMessageComponentRegistry.ts
│ │ │ │ │ └── types.ts
│ │ │ │ ├── ExpandableList.tsx
│ │ │ │ ├── FaveStar.jsx
│ │ │ │ ├── FilterableTable
│ │ │ │ │ ├── FilterableTableStyles.less
│ │ │ │ │ └── FilterableTable.tsx
│ │ │ │ ├── FilterBadgeIcon.jsx
│ │ │ │ ├── FilterBadgeIcon.less
│ │ │ │ ├── FlashProvider.tsx
│ │ │ │ ├── FormRow.jsx
│ │ │ │ ├── Hotkeys.jsx
│ │ │ │ ├── Icon.tsx
│ │ │ │ ├── IndeterminateCheckbox.tsx
│ │ │ │ ├── Link.tsx
│ │ │ │ ├── ListView
│ │ │ │ │ ├── Filters.tsx
│ │ │ │ │ ├── LegacyFilters.tsx
│ │ │ │ │ ├── ListViewStyles.less
│ │ │ │ │ ├── ListView.tsx
│ │ │ │ │ ├── Pagination.tsx
│ │ │ │ │ ├── TableCollection.tsx
│ │ │ │ │ ├── types.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── Loading.tsx
│ │ │ │ ├── Menu
│ │ │ │ │ ├── LanguagePicker.jsx
│ │ │ │ │ ├── Menu.jsx
│ │ │ │ │ ├── Menu.less
│ │ │ │ │ ├── MenuObject.jsx
│ │ │ │ │ ├── NewMenu.jsx
│ │ │ │ │ ├── SubMenu.tsx
│ │ │ │ │ └── UserMenu.jsx
│ │ │ │ ├── ModalTrigger.jsx
│ │ │ │ ├── Modal.tsx
│ │ │ │ ├── OmniContainer.jsx
│ │ │ │ ├── Pagination.tsx
│ │ │ │ ├── PopoverSection.jsx
│ │ │ │ ├── RefreshChartOverlay.tsx
│ │ │ │ ├── RefreshLabel.jsx
│ │ │ │ ├── RefreshLabel.less
│ │ │ │ ├── SearchInput.tsx
│ │ │ │ ├── Select
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── OnPasteSelect.jsx
│ │ │ │ │ ├── styles.tsx
│ │ │ │ │ ├── SupersetStyledSelect.tsx
│ │ │ │ │ ├── utils.ts
│ │ │ │ │ └── WindowedSelect
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── WindowedMenuList.tsx
│ │ │ │ │ └── windowed.tsx
│ │ │ │ ├── styles.ts
│ │ │ │ ├── TableLoader.jsx
│ │ │ │ ├── TableSelector.jsx
│ │ │ │ ├── TableSelector.less
│ │ │ │ ├── Timer.jsx
│ │ │ │ ├── TooltipWrapper.jsx
│ │ │ │ ├── URLShortLinkButton.jsx
│ │ │ │ ├── URLShortLinkModal.jsx
│ │ │ │ └── VictoryTheme.js
│ │ │ ├── CRUD
│ │ │ │ ├── CollectionTable.jsx
│ │ │ │ ├── crud.less
│ │ │ │ ├── Field.jsx
│ │ │ │ ├── Fieldset.jsx
│ │ │ │ └── utils.js
│ │ │ ├── dashboard
│ │ │ │ ├── actions
│ │ │ │ │ ├── dashboardFilters.js
│ │ │ │ │ ├── dashboardInfo.js
│ │ │ │ │ ├── dashboardLayout.js
│ │ │ │ │ ├── dashboardState.js
│ │ │ │ │ ├── datasources.js
│ │ │ │ │ └── sliceEntities.js
│ │ │ │ ├── App.jsx
│ │ │ │ ├── components
│ │ │ │ │ ├── AddSliceCard.jsx
│ │ │ │ │ ├── BuilderComponentPane.jsx
│ │ │ │ │ ├── CodeModal.jsx
│ │ │ │ │ ├── ColorComponentPane.jsx
│ │ │ │ │ ├── CssEditor.jsx
│ │ │ │ │ ├── DashboardBuilder.jsx
│ │ │ │ │ ├── DashboardGrid.jsx
│ │ │ │ │ ├── Dashboard.jsx
│ │ │ │ │ ├── DeleteComponentButton.jsx
│ │ │ │ │ ├── DeleteComponentModal.jsx
│ │ │ │ │ ├── dnd
│ │ │ │ │ │ ├── AddSliceDragPreview.jsx
│ │ │ │ │ │ ├── dragDroppableConfig.js
│ │ │ │ │ │ ├── DragDroppable.jsx
│ │ │ │ │ │ ├── DragHandle.jsx
│ │ │ │ │ │ ├── handleDrop.js
│ │ │ │ │ │ └── handleHover.js
│ │ │ │ │ ├── FilterIndicatorGroup.jsx
│ │ │ │ │ ├── FilterIndicator.jsx
│ │ │ │ │ ├── FilterIndicatorsContainer.jsx
│ │ │ │ │ ├── FilterIndicatorTooltip.jsx
│ │ │ │ │ ├── filterscope
│ │ │ │ │ │ ├── FilterFieldItem.jsx
│ │ │ │ │ │ ├── FilterFieldTree.jsx
│ │ │ │ │ │ ├── FilterScopeModal.jsx
│ │ │ │ │ │ ├── FilterScopeSelector.jsx
│ │ │ │ │ │ ├── FilterScopeTree.jsx
│ │ │ │ │ │ ├── renderFilterFieldTreeNodes.jsx
│ │ │ │ │ │ ├── renderFilterScopeTreeNodes.jsx
│ │ │ │ │ │ └── treeIcons.jsx
│ │ │ │ │ ├── FilterTooltipWrapper.jsx
│ │ │ │ │ ├── gridComponents
│ │ │ │ │ │ ├── ChartHolder.jsx
│ │ │ │ │ │ ├── Chart.jsx
│ │ │ │ │ │ ├── Column.jsx
│ │ │ │ │ │ ├── Divider.jsx
│ │ │ │ │ │ ├── Header.jsx
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── Markdown.jsx
│ │ │ │ │ │ ├── new
│ │ │ │ │ │ │ ├── DraggableNewComponent.jsx
│ │ │ │ │ │ │ ├── NewColumn.jsx
│ │ │ │ │ │ │ ├── NewDivider.jsx
│ │ │ │ │ │ │ ├── NewHeader.jsx
│ │ │ │ │ │ │ ├── NewMarkdown.jsx
│ │ │ │ │ │ │ ├── NewRow.jsx
│ │ │ │ │ │ │ └── NewTabs.jsx
│ │ │ │ │ │ ├── Row.jsx
│ │ │ │ │ │ ├── Tab.jsx
│ │ │ │ │ │ └── Tabs.jsx
│ │ │ │ │ ├── HeaderActionsDropdown.jsx
│ │ │ │ │ ├── Header.jsx
│ │ │ │ │ ├── IconButton.jsx
│ │ │ │ │ ├── InsertComponentPane.jsx
│ │ │ │ │ ├── menu
│ │ │ │ │ │ ├── BackgroundStyleDropdown.jsx
│ │ │ │ │ │ ├── HoverMenu.jsx
│ │ │ │ │ │ ├── MarkdownModeDropdown.jsx
│ │ │ │ │ │ ├── PopoverDropdown.jsx
│ │ │ │ │ │ └── WithPopoverMenu.jsx
│ │ │ │ │ ├── MissingChart.jsx
│ │ │ │ │ ├── PropertiesModal.jsx
│ │ │ │ │ ├── PublishedStatus.jsx
│ │ │ │ │ ├── RefreshIntervalModal.jsx
│ │ │ │ │ ├── resizable
│ │ │ │ │ │ ├── ResizableContainer.jsx
│ │ │ │ │ │ └── ResizableHandle.jsx
│ │ │ │ │ ├── SaveModal.jsx
│ │ │ │ │ ├── SliceAdder.jsx
│ │ │ │ │ ├── SliceHeaderControls.jsx
│ │ │ │ │ ├── SliceHeader.jsx
│ │ │ │ │ └── UndoRedoKeylisteners.jsx
│ │ │ │ ├── containers
│ │ │ │ │ ├── Chart.jsx
│ │ │ │ │ ├── DashboardBuilder.jsx
│ │ │ │ │ ├── DashboardComponent.jsx
│ │ │ │ │ ├── DashboardGrid.jsx
│ │ │ │ │ ├── DashboardHeader.jsx
│ │ │ │ │ ├── Dashboard.jsx
│ │ │ │ │ ├── FilterIndicators.jsx
│ │ │ │ │ ├── FilterScope.jsx
│ │ │ │ │ └── SliceAdder.jsx
│ │ │ │ ├── fixtures
│ │ │ │ │ └── emptyDashboardLayout.js
│ │ │ │ ├── index.jsx
│ │ │ │ ├── reducers
│ │ │ │ │ ├── dashboardFilters.js
│ │ │ │ │ ├── dashboardInfo.js
│ │ │ │ │ ├── dashboardLayout.js
│ │ │ │ │ ├── dashboardState.js
│ │ │ │ │ ├── datasources.js
│ │ │ │ │ ├── getInitialState.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── sliceEntities.js
│ │ │ │ │ └── undoableDashboardLayout.js
│ │ │ │ ├── stylesheets
│ │ │ │ │ ├── builder.less
│ │ │ │ │ ├── builder-sidepane.less
│ │ │ │ │ ├── buttons.less
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── chart.less
│ │ │ │ │ │ ├── column.less
│ │ │ │ │ │ ├── divider.less
│ │ │ │ │ │ ├── header.less
│ │ │ │ │ │ ├── index.less
│ │ │ │ │ │ ├── markdown.less
│ │ │ │ │ │ ├── new-component.less
│ │ │ │ │ │ ├── row.less
│ │ │ │ │ │ └── tabs.less
│ │ │ │ │ ├── dashboard.less
│ │ │ │ │ ├── dnd.less
│ │ │ │ │ ├── filter-indicator.less
│ │ │ │ │ ├── filter-indicator-tooltip.less
│ │ │ │ │ ├── filter-scope-selector.less
│ │ │ │ │ ├── grid.less
│ │ │ │ │ ├── hover-menu.less
│ │ │ │ │ ├── index.less
│ │ │ │ │ ├── popover-menu.less
│ │ │ │ │ └── resizable.less
│ │ │ │ ├── types.ts
│ │ │ │ └── util
│ │ │ │ ├── activeDashboardFilters.js
│ │ │ │ ├── backgroundStyleOptions.ts
│ │ │ │ ├── buildFilterScopeTreeEntry.js
│ │ │ │ ├── charts
│ │ │ │ │ ├── getEffectiveExtraFilters.ts
│ │ │ │ │ └── getFormDataWithExtraFilters.ts
│ │ │ │ ├── componentIsResizable.ts
│ │ │ │ ├── componentTypes.ts
│ │ │ │ ├── constants.ts
│ │ │ │ ├── dashboardFiltersColorMap.js
│ │ │ │ ├── dnd-reorder.js
│ │ │ │ ├── downloadAsImage.ts
│ │ │ │ ├── dropOverflowsParent.js
│ │ │ │ ├── findFirstParentContainer.js
│ │ │ │ ├── findParentId.js
│ │ │ │ ├── findTabIndexByComponentId.js
│ │ │ │ ├── getChartAndLabelComponentIdFromPath.js
│ │ │ │ ├── getChartIdsFromLayout.js
│ │ │ │ ├── getComponentWidthFromDrop.js
│ │ │ │ ├── getDashboardFilterKey.ts
│ │ │ │ ├── getDashboardUrl.js
│ │ │ │ ├── getDetailedComponentWidth.js
│ │ │ │ ├── getDirectPathToTabIndex.js
│ │ │ │ ├── getDragDropManager.js
│ │ │ │ ├── getDropPosition.js
│ │ │ │ ├── getEmptyLayout.js
│ │ │ │ ├── getFilterConfigsFromFormdata.js
│ │ │ │ ├── getFilterFieldNodesTree.js
│ │ │ │ ├── getFilterScopeFromNodesTree.js
│ │ │ │ ├── getFilterScopeNodesTree.js
│ │ │ │ ├── getFilterScopeParentNodes.js
│ │ │ │ ├── getFilterValuesByFilterId.js
│ │ │ │ ├── getKeyForFilterScopeTree.js
│ │ │ │ ├── getLayoutComponentFromChartId.js
│ │ │ │ ├── getLeafComponentIdFromPath.js
│ │ │ │ ├── getLocationHash.ts
│ │ │ │ ├── getRevertedFilterScope.ts
│ │ │ │ ├── getSelectedChartIdForFilterScopeTree.js
│ │ │ │ ├── headerStyleOptions.ts
│ │ │ │ ├── injectCustomCss.js
│ │ │ │ ├── isDashboardEmpty.ts
│ │ │ │ ├── isDashboardLoading.js
│ │ │ │ ├── isInDifferentFilterScopes.js
│ │ │ │ ├── isValidChild.ts
│ │ │ │ ├── logging
│ │ │ │ │ ├── childChartsDidLoad.js
│ │ │ │ │ ├── findNonTabChildChartIds.js
│ │ │ │ │ ├── findTopLevelComponentIds.js
│ │ │ │ │ └── getLoadStatsPerTopLevelComponent.js
│ │ │ │ ├── newComponentFactory.js
│ │ │ │ ├── newEntitiesFromDrop.js
│ │ │ │ ├── propShapes.jsx
│ │ │ │ ├── resizableConfig.ts
│ │ │ │ ├── serializeActiveFilterValues.js
│ │ │ │ ├── serializeFilterScopes.js
│ │ │ │ ├── setPeriodicRunner.ts
│ │ │ │ ├── shouldWrapChildInRow.js
│ │ │ │ └── updateComponentParentsList.js
│ │ │ ├── datasource
│ │ │ │ ├── ChangeDatasourceModal.jsx
│ │ │ │ ├── DatasourceEditor.jsx
│ │ │ │ ├── DatasourceModal.jsx
│ │ │ │ └── main.less
│ │ │ ├── explore
│ │ │ │ ├── actions
│ │ │ │ │ ├── exploreActions.js
│ │ │ │ │ └── saveModalActions.js
│ │ │ │ ├── AdhocFilter.js
│ │ │ │ ├── AdhocMetric.js
│ │ │ │ ├── App.jsx
│ │ │ │ ├── components
│ │ │ │ │ ├── AdhocFilterEditPopover.jsx
│ │ │ │ │ ├── AdhocFilterEditPopoverSimpleTabContent.jsx
│ │ │ │ │ ├── AdhocFilterEditPopoverSqlTabContent.jsx
│ │ │ │ │ ├── AdhocFilterOption.jsx
│ │ │ │ │ ├── AdhocMetricEditPopover.jsx
│ │ │ │ │ ├── AdhocMetricEditPopoverTitle.jsx
│ │ │ │ │ ├── AdhocMetricOption.jsx
│ │ │ │ │ ├── AdhocMetricStaticOption.jsx
│ │ │ │ │ ├── AggregateOption.jsx
│ │ │ │ │ ├── ControlHeader.jsx
│ │ │ │ │ ├── Control.jsx
│ │ │ │ │ ├── Control.less
│ │ │ │ │ ├── ControlPanelsContainer.jsx
│ │ │ │ │ ├── ControlPanelSection.jsx
│ │ │ │ │ ├── ControlRow.jsx
│ │ │ │ │ ├── controls
│ │ │ │ │ │ ├── AdhocFilterControl.jsx
│ │ │ │ │ │ ├── AnnotationLayerControl.jsx
│ │ │ │ │ │ ├── AnnotationLayer.jsx
│ │ │ │ │ │ ├── AnnotationLayer.less
│ │ │ │ │ │ ├── BoundsControl.jsx
│ │ │ │ │ │ ├── CheckboxControl.jsx
│ │ │ │ │ │ ├── CollectionControl.jsx
│ │ │ │ │ │ ├── CollectionControl.less
│ │ │ │ │ │ ├── ColorMapControl.jsx
│ │ │ │ │ │ ├── ColorPickerControl.jsx
│ │ │ │ │ │ ├── ColorSchemeControl.jsx
│ │ │ │ │ │ ├── DatasourceControl.jsx
│ │ │ │ │ │ ├── DatasourceControl.less
│ │ │ │ │ │ ├── DateFilterControl.jsx
│ │ │ │ │ │ ├── DateFilterControl.less
│ │ │ │ │ │ ├── FilterBoxItemControl.jsx
│ │ │ │ │ │ ├── FixedOrMetricControl.jsx
│ │ │ │ │ │ ├── HiddenControl.jsx
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── MetricsControl.jsx
│ │ │ │ │ │ ├── SelectAsyncControl.jsx
│ │ │ │ │ │ ├── SelectControl.jsx
│ │ │ │ │ │ ├── SliderControl.jsx
│ │ │ │ │ │ ├── SpatialControl.jsx
│ │ │ │ │ │ ├── TextAreaControl.jsx
│ │ │ │ │ │ ├── TextControl.jsx
│ │ │ │ │ │ ├── TimeSeriesColumnControl.jsx
│ │ │ │ │ │ ├── ViewportControl.jsx
│ │ │ │ │ │ ├── VizTypeControl.jsx
│ │ │ │ │ │ ├── VizTypeControl.less
│ │ │ │ │ │ └── withVerification.jsx
│ │ │ │ │ ├── DisplayQueryButton.jsx
│ │ │ │ │ ├── EmbedCodeButton.jsx
│ │ │ │ │ ├── ExploreActionButtons.jsx
│ │ │ │ │ ├── ExploreChartHeader.jsx
│ │ │ │ │ ├── ExploreChartPanel.jsx
│ │ │ │ │ ├── ExploreViewContainer.jsx
│ │ │ │ │ ├── FilterDefinitionOption.jsx
│ │ │ │ │ ├── MetricDefinitionOption.jsx
│ │ │ │ │ ├── MetricDefinitionValue.jsx
│ │ │ │ │ ├── PropertiesModal.tsx
│ │ │ │ │ ├── QueryAndSaveBtns.css
│ │ │ │ │ ├── QueryAndSaveBtns.jsx
│ │ │ │ │ ├── RowCountLabel.jsx
│ │ │ │ │ └── SaveModal.jsx
│ │ │ │ ├── constants.js
│ │ │ │ ├── controlPanels
│ │ │ │ │ ├── DeckArc.js
│ │ │ │ │ ├── DeckGeojson.js
│ │ │ │ │ ├── DeckGrid.js
│ │ │ │ │ ├── DeckHex.js
│ │ │ │ │ ├── DeckMulti.js
│ │ │ │ │ ├── DeckPath.js
│ │ │ │ │ ├── DeckPolygon.js
│ │ │ │ │ ├── DeckScatter.js
│ │ │ │ │ ├── DeckScreengrid.js
│ │ │ │ │ ├── FilterBox.jsx
│ │ │ │ │ ├── sections.jsx
│ │ │ │ │ ├── Separator.js
│ │ │ │ │ ├── Shared_DeckGL.jsx
│ │ │ │ │ ├── timeGrainSqlaAnimationOverrides.js
│ │ │ │ │ └── TimeTable.js
│ │ │ │ ├── controls.jsx
│ │ │ │ ├── controlUtils.js
│ │ │ │ ├── exploreUtils.js
│ │ │ │ ├── index.jsx
│ │ │ │ ├── main.less
│ │ │ │ ├── propTypes
│ │ │ │ │ ├── adhocFilterType.js
│ │ │ │ │ ├── adhocMetricType.js
│ │ │ │ │ ├── aggregateOptionType.js
│ │ │ │ │ ├── columnType.js
│ │ │ │ │ └── savedMetricType.js
│ │ │ │ ├── reducers
│ │ │ │ │ ├── exploreReducer.js
│ │ │ │ │ ├── getInitialState.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── saveModalReducer.js
│ │ │ │ └── store.js
│ │ │ ├── featureFlags.ts
│ │ │ ├── logger
│ │ │ │ ├── actions
│ │ │ │ │ └── index.js
│ │ │ │ └── LogUtils.js
│ │ │ ├── messageToasts
│ │ │ │ ├── actions
│ │ │ │ │ └── index.js
│ │ │ │ ├── components
│ │ │ │ │ ├── ToastPresenter.tsx
│ │ │ │ │ └── Toast.tsx
│ │ │ │ ├── constants.js
│ │ │ │ ├── containers
│ │ │ │ │ └── ToastPresenter.jsx
│ │ │ │ ├── enhancers
│ │ │ │ │ └── withToasts.tsx
│ │ │ │ ├── propShapes.js
│ │ │ │ ├── reducers
│ │ │ │ │ └── index.js
│ │ │ │ ├── types.ts
│ │ │ │ └── utils
│ │ │ │ └── getToastsFromPyFlashMessages.js
│ │ │ ├── middleware
│ │ │ │ └── loggerMiddleware.js
│ │ │ ├── modules
│ │ │ │ ├── AnnotationTypes.js
│ │ │ │ ├── dates.js
│ │ │ │ └── utils.js
│ │ │ ├── preamble.ts
│ │ │ ├── profile
│ │ │ │ ├── App.tsx
│ │ │ │ ├── components
│ │ │ │ │ ├── App.tsx
│ │ │ │ │ ├── CreatedContent.tsx
│ │ │ │ │ ├── Favorites.tsx
│ │ │ │ │ ├── RecentActivity.tsx
│ │ │ │ │ ├── Security.tsx
│ │ │ │ │ └── UserInfo.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── main.less
│ │ │ │ └── types.ts
│ │ │ ├── reduxUtils.ts
│ │ │ ├── setup
│ │ │ │ ├── setupApp.ts
│ │ │ │ ├── setupClient.js
│ │ │ │ ├── setupColors.js
│ │ │ │ ├── setupErrorMessagesExtra.ts
│ │ │ │ ├── setupErrorMessages.ts
│ │ │ │ ├── setupFormatters.js
│ │ │ │ ├── setupPluginsExtra.js
│ │ │ │ └── setupPlugins.ts
│ │ │ ├── showSavedQuery
│ │ │ │ ├── index.jsx
│ │ │ │ ├── index.less
│ │ │ │ └── utils.js
│ │ │ ├── SqlLab
│ │ │ │ ├── actions
│ │ │ │ │ └── sqlLab.js
│ │ │ │ ├── App.jsx
│ │ │ │ ├── components
│ │ │ │ │ ├── AceEditorWrapper.tsx
│ │ │ │ │ ├── App.jsx
│ │ │ │ │ ├── ColumnElement.tsx
│ │ │ │ │ ├── EstimateQueryCostButton.jsx
│ │ │ │ │ ├── ExploreCtasResultsButton.jsx
│ │ │ │ │ ├── ExploreResultsButton.jsx
│ │ │ │ │ ├── HighlightedSql.jsx
│ │ │ │ │ ├── LimitControl.jsx
│ │ │ │ │ ├── QueryAutoRefresh.jsx
│ │ │ │ │ ├── QueryHistory.jsx
│ │ │ │ │ ├── QuerySearch.jsx
│ │ │ │ │ ├── QueryStateLabel.jsx
│ │ │ │ │ ├── QueryTable.jsx
│ │ │ │ │ ├── ResultSet.tsx
│ │ │ │ │ ├── RunQueryActionButton.tsx
│ │ │ │ │ ├── SaveQuery.jsx
│ │ │ │ │ ├── ScheduleQueryButton.jsx
│ │ │ │ │ ├── ShareSqlLabQuery.jsx
│ │ │ │ │ ├── ShowSQL.tsx
│ │ │ │ │ ├── SouthPane.jsx
│ │ │ │ │ ├── SqlEditor.jsx
│ │ │ │ │ ├── SqlEditorLeftBar.jsx
│ │ │ │ │ ├── TabbedSqlEditors.jsx
│ │ │ │ │ ├── TableElement.jsx
│ │ │ │ │ ├── TabStatusIcon.jsx
│ │ │ │ │ └── TemplateParamsEditor.jsx
│ │ │ │ ├── constants.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── main.less
│ │ │ │ ├── reducers
│ │ │ │ │ ├── common.js
│ │ │ │ │ ├── getInitialState.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── localStorageUsage.js
│ │ │ │ │ └── sqlLab.js
│ │ │ │ ├── types.ts
│ │ │ │ └── utils
│ │ │ │ ├── reduxStateToLocalStorageHelper.js
│ │ │ │ └── sqlKeywords.ts
│ │ │ ├── theme.ts
│ │ │ ├── types
│ │ │ │ ├── bootstrapTypes.ts
│ │ │ │ ├── Chart.ts
│ │ │ │ ├── files.d.ts
│ │ │ │ └── react-table-config.d.ts
│ │ │ ├── utils
│ │ │ │ ├── common.js
│ │ │ │ ├── DebouncedMessageQueue.js
│ │ │ │ ├── errorMessages.js
│ │ │ │ ├── getClientErrorObject.ts
│ │ │ │ ├── getControlsForVizType.js
│ │ │ │ ├── hostNamesConfig.js
│ │ │ │ ├── parseCookie.ts
│ │ │ │ ├── reducerUtils.js
│ │ │ │ └── safeStringify.ts
│ │ │ ├── views
│ │ │ │ ├── chartList
│ │ │ │ │ └── ChartList.tsx
│ │ │ │ ├── dashboardList
│ │ │ │ │ └── DashboardList.tsx
│ │ │ │ └── datasetList
│ │ │ │ ├── Button.tsx
│ │ │ │ ├── DatasetList.tsx
│ │ │ │ └── DatasetModal.tsx
│ │ │ ├── visualizations
│ │ │ │ ├── constants.js
│ │ │ │ ├── FilterBox
│ │ │ │ │ ├── FilterBoxChartPlugin.js
│ │ │ │ │ ├── FilterBox.jsx
│ │ │ │ │ ├── FilterBox.less
│ │ │ │ │ ├── images
│ │ │ │ │ │ ├── thumbnailLarge.png
│ │ │ │ │ │ └── thumbnail.png
│ │ │ │ │ └── transformProps.js
│ │ │ │ ├── presets
│ │ │ │ │ └── MainPreset.js
│ │ │ │ └── TimeTable
│ │ │ │ ├── FormattedNumber.jsx
│ │ │ │ ├── images
│ │ │ │ │ ├── thumbnailLarge.png
│ │ │ │ │ └── thumbnail.png
│ │ │ │ ├── SparklineCell.jsx
│ │ │ │ ├── TimeTableChartPlugin.js
│ │ │ │ ├── TimeTable.jsx
│ │ │ │ ├── TimeTable.less
│ │ │ │ └── transformProps.js
│ │ │ └── welcome
│ │ │ ├── App.tsx
│ │ │ ├── DashboardTable.tsx
│ │ │ ├── index.tsx
│ │ │ └── Welcome.tsx
│ │ ├── stylesheets
│ │ │ ├── less
│ │ │ │ ├── cosmo
│ │ │ │ │ ├── bootswatch.less
│ │ │ │ │ ├── cosmoTheme.js
│ │ │ │ │ └── variables.less
│ │ │ │ ├── fonts.less
│ │ │ │ ├── font_specimens
│ │ │ │ │ ├── fira_code.less
│ │ │ │ │ └── inter_ui.less
│ │ │ │ ├── index.less
│ │ │ │ └── variables.less
│ │ │ ├── reactable-pagination.less
│ │ │ └── superset.less
│ │ ├── tsconfig.json
│ │ ├── webpack.config.js
│ │ └── webpack.proxy-config.js
│ ├── tests
│ │ ├── access_tests.py
│ │ ├── base_api_tests.py
│ │ ├── base_tests.py
│ │ ├── cache_tests.py
│ │ ├── celery_tests.py
│ │ ├── charts
│ │ │ ├── api_tests.py
│ │ │ ├── __init__.py
│ │ │ └── schema_tests.py
│ │ ├── config_tests.py
│ │ ├── core_tests.py
│ │ ├── dashboards
│ │ │ ├── api_tests.py
│ │ │ ├── dao_tests.py
│ │ │ └── __init__.py
│ │ ├── dashboard_tests.py
│ │ ├── database_api_tests.py
│ │ ├── dataframe_test.py
│ │ ├── datasets
│ │ │ ├── api_tests.py
│ │ │ └── __init__.py
│ │ ├── datasource_tests.py
│ │ ├── db_engine_specs
│ │ │ ├── athena_tests.py
│ │ │ ├── base_engine_spec_tests.py
│ │ │ ├── base_tests.py
│ │ │ ├── bigquery_tests.py
│ │ │ ├── clickhouse_tests.py
│ │ │ ├── drill_tests.py
│ │ │ ├── druid_tests.py
│ │ │ ├── elasticsearch_tests.py
│ │ │ ├── hive_tests.py
│ │ │ ├── impala_tests.py
│ │ │ ├── __init__.py
│ │ │ ├── kylin_tests.py
│ │ │ ├── mssql_tests.py
│ │ │ ├── mysql_tests.py
│ │ │ ├── oracle_tests.py
│ │ │ ├── pinot_tests.py
│ │ │ ├── postgres_tests.py
│ │ │ ├── presto_tests.py
│ │ │ ├── snowflake_tests.py
│ │ │ └── sqlite_tests.py
│ │ ├── dict_import_export_tests.py
│ │ ├── druid_func_tests.py
│ │ ├── druid_func_tests_sip38.py
│ │ ├── druid_tests.py
│ │ ├── email_tests.py
│ │ ├── event_logger_tests.py
│ │ ├── feature_flag_tests.py
│ │ ├── fixtures
│ │ │ ├── certificates.py
│ │ │ ├── dataframes.py
│ │ │ ├── datasource.py
│ │ │ ├── deck_geojson_form_data.json
│ │ │ ├── deck_path_form_data.json
│ │ │ ├── __init__.py
│ │ │ ├── pyodbcRow.py
│ │ │ ├── query_context.py
│ │ │ ├── sample.png
│ │ │ └── trends.csv
│ │ ├── form_tests.py
│ │ ├── import_export_tests.py
│ │ ├── __init__.py
│ │ ├── jinja_context_tests.py
│ │ ├── load_examples_test.py
│ │ ├── log_api_tests.py
│ │ ├── logging_configurator_tests.py
│ │ ├── migration_tests.py
│ │ ├── model_tests.py
│ │ ├── pandas_postprocessing_tests.py
│ │ ├── queries
│ │ │ ├── api_tests.py
│ │ │ └── __init__.py
│ │ ├── query_context_tests.py
│ │ ├── result_set_tests.py
│ │ ├── schedules_test.py
│ │ ├── security
│ │ │ ├── analytics_db_safety_tests.py
│ │ │ └── __init__.py
│ │ ├── security_tests.py
│ │ ├── sqla_models_tests.py
│ │ ├── sqllab_tests.py
│ │ ├── sql_parse_tests.py
│ │ ├── sql_validator_tests.py
│ │ ├── stats_logger_tests.py
│ │ ├── strategy_tests.py
│ │ ├── superset_test_config.py
│ │ ├── superset_test_config_sqllab_backend_persist.py
│ │ ├── superset_test_config_thumbnails.py
│ │ ├── superset_test_custom_template_processors.py
│ │ ├── tagging_tests.py
│ │ ├── test_app.py
│ │ ├── thumbnails_tests.py
│ │ ├── utils.py
│ │ ├── utils_tests.py
│ │ └── viz_tests.py
│ ├── tox.ini
│ └── UPDATING.md
├── 下载说明.htm
├── 易采源码下载.url
└── 易采源码下载说明.txt
241 directories, 1581 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论