From b4602aaf28c6b0fc9e912b555a4d35fcd82363aa Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Mon, 17 Mar 2025 15:43:45 -0600 Subject: [PATCH 01/28] chore(asf): fixing(?) `.asf.yaml` (#32709) --- .asf.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.asf.yaml b/.asf.yaml index e08fa238639..868fff86de3 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -62,7 +62,7 @@ github: notifications: commits: commits@superset.apache.org issues: issues@superset.apache.org - pullrequests: issues@superset.apache.org + pull_requests: issues@superset.apache.org discussions: issues@superset.apache.org protected_branches: From cd5a94305c800171a7bb4d8d854af26db110b2f6 Mon Sep 17 00:00:00 2001 From: "JUST.in DO IT" Date: Mon, 17 Mar 2025 14:46:34 -0700 Subject: [PATCH 02/28] fix(logging): missing path in event data (#32708) --- superset-frontend/src/middleware/loggerMiddleware.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/superset-frontend/src/middleware/loggerMiddleware.js b/superset-frontend/src/middleware/loggerMiddleware.js index ea4160f3654..a3eb6295712 100644 --- a/superset-frontend/src/middleware/loggerMiddleware.js +++ b/superset-frontend/src/middleware/loggerMiddleware.js @@ -81,7 +81,9 @@ const loggerMiddleware = store => next => action => { const { eventName } = action.payload; let { eventData = {} } = action.payload; - if (dashboardInfo?.id && eventData.path?.includes('/dashboard/')) { + const path = eventData.path || window?.location?.href; + + if (dashboardInfo?.id && path?.includes('/dashboard/')) { logMetadata = { source: 'dashboard', source_id: dashboardInfo.id, @@ -95,7 +97,7 @@ const loggerMiddleware = store => next => action => { ...(explore.slice.slice_id && { slice_id: explore.slice.slice_id }), ...logMetadata, }; - } else if (eventData.path?.includes('/sqllab/')) { + } else if (path?.includes('/sqllab/')) { const editor = sqlLab.queryEditors.find( ({ id }) => id === sqlLab.tabHistory.slice(-1)[0], ); From 4adf44a43ccd42e2075ae7d338bafd581039956f Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Mon, 17 Mar 2025 17:12:48 -0600 Subject: [PATCH 03/28] chore(asf): Removing notifications from `.asf.yaml` - they still don't work :( (#32710) --- .asf.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.asf.yaml b/.asf.yaml index 868fff86de3..3de839de72e 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -59,12 +59,6 @@ github: ghp_branch: gh-pages ghp_path: / - notifications: - commits: commits@superset.apache.org - issues: issues@superset.apache.org - pull_requests: issues@superset.apache.org - discussions: issues@superset.apache.org - protected_branches: master: required_status_checks: From e35145c816e85f5c656623bc74f1a180110e2b5c Mon Sep 17 00:00:00 2001 From: Vitor Avila <96086495+Vitor-Avila@users.noreply.github.com> Date: Mon, 17 Mar 2025 23:36:16 -0300 Subject: [PATCH 04/28] feat(file uploads): List only allowed schemas in the file uploads dialog (#32702) --- .../UploadDataModel/UploadDataModal.test.tsx | 4 +- .../databases/UploadDataModel/index.tsx | 2 +- superset/databases/api.py | 21 ++++- superset/databases/schemas.py | 1 + .../integration_tests/databases/api_tests.py | 87 +++++++++++++++++++ 5 files changed, 110 insertions(+), 5 deletions(-) diff --git a/superset-frontend/src/features/databases/UploadDataModel/UploadDataModal.test.tsx b/superset-frontend/src/features/databases/UploadDataModel/UploadDataModal.test.tsx index 7c587264129..97cc9c1bb8c 100644 --- a/superset-frontend/src/features/databases/UploadDataModel/UploadDataModal.test.tsx +++ b/superset-frontend/src/features/databases/UploadDataModel/UploadDataModal.test.tsx @@ -78,11 +78,11 @@ beforeEach(() => { result: [], }); - fetchMock.get('glob:*api/v1/database/1/schemas/', { + fetchMock.get('glob:*api/v1/database/1/schemas/?q=(upload_allowed:!t)', { result: ['information_schema', 'public'], }); - fetchMock.get('glob:*api/v1/database/2/schemas/', { + fetchMock.get('glob:*api/v1/database/2/schemas/?q=(upload_allowed:!t)', { result: ['schema1', 'schema2'], }); }); diff --git a/superset-frontend/src/features/databases/UploadDataModel/index.tsx b/superset-frontend/src/features/databases/UploadDataModel/index.tsx index 7b51b7a0b49..46e9b33f39a 100644 --- a/superset-frontend/src/features/databases/UploadDataModel/index.tsx +++ b/superset-frontend/src/features/databases/UploadDataModel/index.tsx @@ -363,7 +363,7 @@ const UploadDataModal: FunctionComponent = ({ return Promise.resolve({ data: [], totalCount: 0 }); } return SupersetClient.get({ - endpoint: `/api/v1/database/${currentDatabaseId}/schemas/`, + endpoint: `/api/v1/database/${currentDatabaseId}/schemas/?q=(upload_allowed:!t)`, }).then(response => { const list = response.json.result.map((item: string) => ({ value: item, diff --git a/superset/databases/api.py b/superset/databases/api.py index fdf4d980c0b..f87935144ea 100644 --- a/superset/databases/api.py +++ b/superset/databases/api.py @@ -776,18 +776,35 @@ class DatabaseRestApi(BaseSupersetModelRestApi): if not database: return self.response_404() try: - catalog = kwargs["rison"].get("catalog") + params = kwargs["rison"] + catalog = params.get("catalog") schemas = database.get_all_schema_names( catalog=catalog, cache=database.schema_cache_enabled, cache_timeout=database.schema_cache_timeout or None, - force=kwargs["rison"].get("force", False), + force=params.get("force", False), ) schemas = security_manager.get_schemas_accessible_by_user( database, catalog, schemas, ) + if params.get("upload_allowed"): + if not database.allow_file_upload: + return self.response(200, result=[]) + if allowed_schemas := database.get_schema_access_for_file_upload(): + # some databases might return the list of schemas in uppercase, + # while the list of allowed schemas is manually inputted so + # could be lowercase + allowed_schemas = {schema.lower() for schema in allowed_schemas} + return self.response( + 200, + result=[ + schema + for schema in schemas + if schema.lower() in allowed_schemas + ], + ) return self.response(200, result=list(schemas)) except OperationalError: return self.response( diff --git a/superset/databases/schemas.py b/superset/databases/schemas.py index f225a1458d5..b91dbd25d5d 100644 --- a/superset/databases/schemas.py +++ b/superset/databases/schemas.py @@ -64,6 +64,7 @@ database_schemas_query_schema = { "type": "object", "properties": { "force": {"type": "boolean"}, + "upload_allowed": {"type": "boolean"}, "catalog": {"type": "string"}, }, } diff --git a/tests/integration_tests/databases/api_tests.py b/tests/integration_tests/databases/api_tests.py index a62888e0d01..fc558e519fb 100644 --- a/tests/integration_tests/databases/api_tests.py +++ b/tests/integration_tests/databases/api_tests.py @@ -2088,6 +2088,93 @@ class TestDatabaseApi(SupersetTestCase): ) assert rv.status_code == 400 + def test_database_schemas_upload_allowed_filter(self): + """ + Database API: Test database schemas when filtering for upload allowed + and there is not schema restriction + """ + with self.create_app().app_context(): + example_db = get_example_database() + + extra = { + "metadata_params": {}, + "engine_params": {}, + "metadata_cache_timeout": {}, + "schemas_allowed_for_file_upload": [], + } + self.login(ADMIN_USERNAME) + database = self.insert_database( + "database_with_upload", + example_db.sqlalchemy_uri_decrypted, + extra=json.dumps(extra), + allow_file_upload=True, + ) + db.session.commit() + yield database + + mock_schemas = ["schema_1", "schema_2", "schema_3"] + mock.patch.object( + database, "get_all_schema_names", return_value=mock_schemas + ) + arguments = {"upload_allowed": True} + uri = f"api/v1/database/{database.id}/schemas/?q={prison.dumps(arguments)}" + rv = self.client.get(uri) + data = json.loads(rv.data.decode("utf-8")) + assert data["result"] == mock_schemas + db.session.delete(database) + db.session.commit() + + def test_database_schemas_upload_allowed_filter_specific_schemas(self): + """ + Database API: Test database schemas when filtering for upload allowed + with an schema restriction set + """ + with self.create_app().app_context(): + example_db = get_example_database() + + extra = { + "metadata_params": {}, + "engine_params": {}, + "metadata_cache_timeout": {}, + "schemas_allowed_for_file_upload": ["schema_2"], + } + self.login(ADMIN_USERNAME) + database = self.insert_database( + "database_with_upload", + example_db.sqlalchemy_uri_decrypted, + extra=json.dumps(extra), + allow_file_upload=True, + ) + db.session.commit() + yield database + + mock.patch.object( + database, + "get_all_schema_names", + return_value=["schema_1", "schema_2", "schema_3"], + ) + arguments = {"upload_allowed": True} + uri = f"api/v1/database/{database.id}/schemas/?q={prison.dumps(arguments)}" + rv = self.client.get(uri) + data = json.loads(rv.data.decode("utf-8")) + assert data["result"] == ["schema_2"] + db.session.delete(database) + db.session.commit() + + def test_database_schemas_upload_allowed_filter_disabled(self): + """ + Database API: Test database schemas when filtering for upload allowed + for a DB connection that has file uploads disabled + """ + database = db.session.query(Database).filter_by(database_name="examples").one() + self.login(ADMIN_USERNAME) + arguments = {"upload_allowed": True} + uri = f"api/v1/database/{database.id}/schemas/?q={prison.dumps(arguments)}" + rv = self.client.get(uri) + assert rv.status_code == 200 + data = json.loads(rv.data.decode("utf-8")) + assert data["result"] == [] + def test_database_tables(self): """ Database API: Test database tables From 1684ddc7e672c23f06e3f88e3cbc2a2058a749ec Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Mon, 17 Mar 2025 21:01:54 -0600 Subject: [PATCH 05/28] chore(asf): trying to fix `.asf.yaml` again to re-enable Discussions (#32712) --- .asf.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.asf.yaml b/.asf.yaml index 3de839de72e..d49f7561a70 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -99,3 +99,9 @@ github: required_approving_review_count: 1 required_signatures: false + +notifications: + commits: commits@superset.apache.org + issues: issues@superset.apache.org + pullrequests: issues@superset.apache.org + discussions: issues@superset.apache.org From 34cd741e9baf9aaf98af5c2167b9ebe109883c34 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Mon, 17 Mar 2025 21:25:35 -0600 Subject: [PATCH 06/28] fix(docs): Fixes scrolling issue with AI widget on docs site (#32713) --- docs/docusaurus.config.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 2d3db18d0d2..2c5253f9b3b 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -344,7 +344,6 @@ const config: Config = { 'https://images.seeklogo.com/logo-png/50/2/superset-icon-logo-png_seeklogo-500354.png', 'data-modal-override-open-id': 'ask-ai-input', 'data-modal-override-open-class': 'search-input', - 'data-modal-open-by-default': 'true', 'data-modal-disclaimer': 'This is a custom LLM for Apache Superset with access to all [documentation](superset.apache.org/docs/intro/), [GitHub Open Issues, PRs and READMEs](github.com/apache/superset). Companies deploy assistants like this ([built by kapa.ai](https://kapa.ai)) on docs via [website widget](https://docs.kapa.ai/integrations/website-widget) (Docker, Reddit), in [support forms](https://docs.kapa.ai/integrations/support-form-deflector) for ticket deflection (Monday.com, Mapbox), or as [Slack bots](https://docs.kapa.ai/integrations/slack-bot) with private sources.', 'data-modal-example-questions': From f0c8c12c1acb9a281422014b667d877a78bfa03e Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Mon, 17 Mar 2025 21:25:48 -0600 Subject: [PATCH 07/28] chore(docs): touching up AI styling/text (#32689) --- docs/docusaurus.config.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 2c5253f9b3b..1da7480951d 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -339,7 +339,7 @@ const config: Config = { async: true, 'data-website-id': 'c6a8a8b8-3127-48f9-97a7-51e9e10d20d0', 'data-project-name': 'Apache Superset', - 'data-project-color': '#1AA1C2', + 'data-project-color': '#FFFFFF', 'data-project-logo': 'https://images.seeklogo.com/logo-png/50/2/superset-icon-logo-png_seeklogo-500354.png', 'data-modal-override-open-id': 'ask-ai-input', @@ -347,11 +347,11 @@ const config: Config = { 'data-modal-disclaimer': 'This is a custom LLM for Apache Superset with access to all [documentation](superset.apache.org/docs/intro/), [GitHub Open Issues, PRs and READMEs](github.com/apache/superset). Companies deploy assistants like this ([built by kapa.ai](https://kapa.ai)) on docs via [website widget](https://docs.kapa.ai/integrations/website-widget) (Docker, Reddit), in [support forms](https://docs.kapa.ai/integrations/support-form-deflector) for ticket deflection (Monday.com, Mapbox), or as [Slack bots](https://docs.kapa.ai/integrations/slack-bot) with private sources.', 'data-modal-example-questions': - 'How do I use Docker Compose?,How to run Supersets on kubernetes?', - 'data-button-text-color': '#FFFFFF', - 'data-modal-header-bg-color': '#1AA1C2', - 'data-modal-title-color': '#FFFFFF', - 'data-modal-title': 'Superset Ask AI', + 'How do I install Superset?,How can I contribute to Superset?', + 'data-button-text-color': 'rgb(81,166,197)', + 'data-modal-header-bg-color': '#ffffff', + 'data-modal-title-color': 'rgb(81,166,197)', + 'data-modal-title': 'Apache Superset AI', 'data-modal-disclaimer-text-color': '#000000', 'data-consent-required': 'true', 'data-consent-screen-disclaimer': From 78d2a584b7086598c9f699f7f1dbac184ebd43f9 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Tue, 18 Mar 2025 09:27:27 -0600 Subject: [PATCH 08/28] chore(asf): Another `.asf.yaml` touch-up. (#32714) --- .asf.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.asf.yaml b/.asf.yaml index d49f7561a70..edad1a28036 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -102,6 +102,6 @@ github: notifications: commits: commits@superset.apache.org - issues: issues@superset.apache.org - pullrequests: issues@superset.apache.org - discussions: issues@superset.apache.org + issues: notifications@superset.apache.org + pullrequests: notifications@superset.apache.org + discussions: notifications@superset.apache.org From a2c164a77db87d7e071a942eb52d90621387ac5a Mon Sep 17 00:00:00 2001 From: PyKen Date: Tue, 18 Mar 2025 17:49:32 +0100 Subject: [PATCH 09/28] chore(helm): bump postgresql image tag in helm values (#32686) --- helm/superset/Chart.lock | 4 ++-- helm/superset/Chart.yaml | 2 +- helm/superset/README.md | 2 +- helm/superset/values.yaml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/helm/superset/Chart.lock b/helm/superset/Chart.lock index a29bcf3fbf9..cb82f4cd84b 100644 --- a/helm/superset/Chart.lock +++ b/helm/superset/Chart.lock @@ -5,5 +5,5 @@ dependencies: - name: redis repository: oci://registry-1.docker.io/bitnamicharts version: 17.9.4 -digest: sha256:9588e2a9f15d875a95763ed7da8e92b5b48a8d13cbacd66b775eacba3e8cebcd -generated: "2024-12-29T12:19:15.365763+09:00" +digest: sha256:c6290bb7e8ce9c694c06b3f5e9b9d01401943b0943c515d3a7a3a8dc1e6492ea +generated: "2025-03-16T00:52:41.47139769+09:00" diff --git a/helm/superset/Chart.yaml b/helm/superset/Chart.yaml index 66556d2470c..b1a55e917d0 100644 --- a/helm/superset/Chart.yaml +++ b/helm/superset/Chart.yaml @@ -29,7 +29,7 @@ maintainers: - name: craig-rueda email: craig@craigrueda.com url: https://github.com/craig-rueda -version: 0.14.0 +version: 0.14.1 dependencies: - name: postgresql version: 13.4.4 diff --git a/helm/superset/README.md b/helm/superset/README.md index 5caf2fb46e3..8f92a40ffab 100644 --- a/helm/superset/README.md +++ b/helm/superset/README.md @@ -23,7 +23,7 @@ NOTE: This file is generated by helm-docs: https://github.com/norwoodj/helm-docs # superset -![Version: 0.14.0](https://img.shields.io/badge/Version-0.14.0-informational?style=flat-square) +![Version: 0.14.1](https://img.shields.io/badge/Version-0.14.1-informational?style=flat-square) Apache Superset is a modern, enterprise-ready business intelligence web application diff --git a/helm/superset/values.yaml b/helm/superset/values.yaml index eac2c75990c..371abecda1e 100644 --- a/helm/superset/values.yaml +++ b/helm/superset/values.yaml @@ -812,7 +812,7 @@ postgresql: database: superset image: - tag: "14.6.0-debian-11-r13" + tag: "14.17.0-debian-12-r3" ## PostgreSQL Primary parameters primary: From 99e69c32eef2f0fcca009ae5a9cb9fedc5b38dc1 Mon Sep 17 00:00:00 2001 From: Beto Dealmeida Date: Tue, 18 Mar 2025 13:09:23 -0400 Subject: [PATCH 10/28] fix: coerce datetime conversion errors (#32683) --- superset/utils/core.py | 14 +- tests/integration_tests/utils_tests.py | 5 - tests/unit_tests/utils/test_core.py | 193 +++++++++++++++++++++++++ 3 files changed, 204 insertions(+), 8 deletions(-) diff --git a/superset/utils/core.py b/superset/utils/core.py index 69de1707ede..2b80c89f612 100644 --- a/superset/utils/core.py +++ b/superset/utils/core.py @@ -1682,18 +1682,26 @@ def normalize_dttm_col( utc=False, unit=unit, origin="unix", - errors="raise", + errors="coerce", exact=False, ) else: # Column has already been formatted as a timestamp. - df[_col.col_label] = dttm_series.apply(pd.Timestamp) + try: + df[_col.col_label] = dttm_series.apply( + lambda x: pd.Timestamp(x) if pd.notna(x) else pd.NaT + ) + except ValueError: + logger.warning( + "Unable to convert column %s to datetime, ignoring", + _col.col_label, + ) else: df[_col.col_label] = pd.to_datetime( df[_col.col_label], utc=False, format=_col.timestamp_format, - errors="raise", + errors="coerce", exact=False, ) if _col.offset: diff --git a/tests/integration_tests/utils_tests.py b/tests/integration_tests/utils_tests.py index aa399231522..2bab7cdee41 100644 --- a/tests/integration_tests/utils_tests.py +++ b/tests/integration_tests/utils_tests.py @@ -483,8 +483,3 @@ class TestUtils(SupersetTestCase): # test numeric epoch_ms format df = pd.DataFrame([{"__timestamp": ts.timestamp() * 1000, "a": 1}]) assert normalize_col(df, "epoch_ms", 0, None)[DTTM_ALIAS][0] == ts - - # test that we raise an error when we can't convert - df = pd.DataFrame([{"__timestamp": "1677-09-21 00:00:00", "a": 1}]) - with pytest.raises(pd.errors.OutOfBoundsDatetime): - normalize_col(df, None, 0, None) diff --git a/tests/unit_tests/utils/test_core.py b/tests/unit_tests/utils/test_core.py index aa51e52f6cb..e629f002906 100644 --- a/tests/unit_tests/utils/test_core.py +++ b/tests/unit_tests/utils/test_core.py @@ -19,9 +19,11 @@ from dataclasses import dataclass from typing import Any, Optional from unittest.mock import MagicMock, patch +import numpy as np import pandas as pd import pytest from flask import current_app +from pandas.api.types import is_datetime64_dtype from pytest_mock import MockerFixture from superset.exceptions import SupersetException @@ -225,6 +227,197 @@ def test_normalize_dttm_col() -> None: assert df["__time"].astype(str).tolist() == ["2017-07-01"] +def test_normalize_dttm_col_epoch_seconds() -> None: + """Test conversion of epoch seconds.""" + df = pd.DataFrame( + { + "epoch_col": [ + 1577836800, + 1609459200, + 1640995200, + ] # 2020-01-01, 2021-01-01, 2022-01-01 + } + ) + dttm_cols = (DateColumn(col_label="epoch_col", timestamp_format="epoch_s"),) + + normalize_dttm_col(df, dttm_cols) + + assert is_datetime64_dtype(df["epoch_col"]) + assert df["epoch_col"][0].strftime("%Y-%m-%d") == "2020-01-01" + assert df["epoch_col"][1].strftime("%Y-%m-%d") == "2021-01-01" + assert df["epoch_col"][2].strftime("%Y-%m-%d") == "2022-01-01" + + +def test_normalize_dttm_col_epoch_milliseconds() -> None: + """Test conversion of epoch milliseconds.""" + df = pd.DataFrame( + { + "epoch_ms_col": [ + 1577836800000, + 1609459200000, + 1640995200000, + ] # 2020-01-01, 2021-01-01, 2022-01-01 + } + ) + dttm_cols = (DateColumn(col_label="epoch_ms_col", timestamp_format="epoch_ms"),) + + normalize_dttm_col(df, dttm_cols) + + assert is_datetime64_dtype(df["epoch_ms_col"]) + assert df["epoch_ms_col"][0].strftime("%Y-%m-%d") == "2020-01-01" + assert df["epoch_ms_col"][1].strftime("%Y-%m-%d") == "2021-01-01" + assert df["epoch_ms_col"][2].strftime("%Y-%m-%d") == "2022-01-01" + + +def test_normalize_dttm_col_formatted_date() -> None: + """Test conversion of formatted date strings.""" + df = pd.DataFrame({"date_col": ["2020-01-01", "2021-01-01", "2022-01-01"]}) + dttm_cols = (DateColumn(col_label="date_col", timestamp_format="%Y-%m-%d"),) + + normalize_dttm_col(df, dttm_cols) + + assert is_datetime64_dtype(df["date_col"]) + assert df["date_col"][0].strftime("%Y-%m-%d") == "2020-01-01" + assert df["date_col"][1].strftime("%Y-%m-%d") == "2021-01-01" + assert df["date_col"][2].strftime("%Y-%m-%d") == "2022-01-01" + + +def test_normalize_dttm_col_with_offset() -> None: + """Test with hour offset.""" + df = pd.DataFrame({"date_col": ["2020-01-01", "2021-01-01", "2022-01-01"]}) + dttm_cols = ( + DateColumn(col_label="date_col", timestamp_format="%Y-%m-%d", offset=3), + ) + + normalize_dttm_col(df, dttm_cols) + + assert is_datetime64_dtype(df["date_col"]) + assert df["date_col"][0].strftime("%Y-%m-%d %H:%M:%S") == "2020-01-01 03:00:00" + assert df["date_col"][1].strftime("%Y-%m-%d %H:%M:%S") == "2021-01-01 03:00:00" + assert df["date_col"][2].strftime("%Y-%m-%d %H:%M:%S") == "2022-01-01 03:00:00" + + +def test_normalize_dttm_col_with_time_shift() -> None: + """Test with time shift.""" + df = pd.DataFrame({"date_col": ["2020-01-01", "2021-01-01", "2022-01-01"]}) + dttm_cols = ( + DateColumn( + col_label="date_col", timestamp_format="%Y-%m-%d", time_shift="1 day" + ), + ) + + normalize_dttm_col(df, dttm_cols) + + assert is_datetime64_dtype(df["date_col"]) + assert df["date_col"][0].strftime("%Y-%m-%d") == "2020-01-02" + assert df["date_col"][1].strftime("%Y-%m-%d") == "2021-01-02" + assert df["date_col"][2].strftime("%Y-%m-%d") == "2022-01-02" + + +def test_normalize_dttm_col_with_offset_and_time_shift() -> None: + """Test with both offset and time shift.""" + df = pd.DataFrame({"date_col": ["2020-01-01", "2021-01-01", "2022-01-01"]}) + dttm_cols = ( + DateColumn( + col_label="date_col", + timestamp_format="%Y-%m-%d", + offset=3, + time_shift="1 hour", + ), + ) + + normalize_dttm_col(df, dttm_cols) + + assert is_datetime64_dtype(df["date_col"]) + assert df["date_col"][0].strftime("%Y-%m-%d %H:%M:%S") == "2020-01-01 04:00:00" + assert df["date_col"][1].strftime("%Y-%m-%d %H:%M:%S") == "2021-01-01 04:00:00" + assert df["date_col"][2].strftime("%Y-%m-%d %H:%M:%S") == "2022-01-01 04:00:00" + + +def test_normalize_dttm_col_invalid_date_coerced() -> None: + """Test that invalid dates are coerced to NaT.""" + df = pd.DataFrame({"date_col": ["2020-01-01", "invalid_date", "2022-01-01"]}) + dttm_cols = (DateColumn(col_label="date_col", timestamp_format="%Y-%m-%d"),) + + normalize_dttm_col(df, dttm_cols) + + assert is_datetime64_dtype(df["date_col"]) + assert df["date_col"][0].strftime("%Y-%m-%d") == "2020-01-01" + assert pd.isna(df["date_col"][1]) + assert df["date_col"][2].strftime("%Y-%m-%d") == "2022-01-01" + + +def test_normalize_dttm_col_invalid_epoch_coerced() -> None: + """Test that invalid epoch values are coerced to NaT.""" + df = pd.DataFrame( + {"epoch_col": [1577836800, np.nan, 1640995200]} # 2020-01-01, NaN, 2022-01-01 + ) + dttm_cols = (DateColumn(col_label="epoch_col", timestamp_format="epoch_s"),) + + normalize_dttm_col(df, dttm_cols) + + assert is_datetime64_dtype(df["epoch_col"]) + assert df["epoch_col"][0].strftime("%Y-%m-%d") == "2020-01-01" + assert pd.isna(df["epoch_col"][1]) + assert df["epoch_col"][2].strftime("%Y-%m-%d") == "2022-01-01" + + +def test_normalize_dttm_col_non_existing_column() -> None: + """Test handling of non-existing columns.""" + df = pd.DataFrame({"existing_col": [1, 2, 3]}) + dttm_cols = (DateColumn(col_label="non_existing_col", timestamp_format="%Y-%m-%d"),) + + # Should not raise any exception + normalize_dttm_col(df, dttm_cols) + + # DataFrame should remain unchanged + assert list(df.columns) == ["existing_col"] + assert df["existing_col"].tolist() == [1, 2, 3] + + +def test_normalize_dttm_col_multiple_columns() -> None: + """Test normalizing multiple datetime columns.""" + df = pd.DataFrame( + { + "date_col1": ["2020-01-01", "2021-01-01", "2022-01-01"], + "date_col2": ["01/01/2020", "01/01/2021", "01/01/2022"], + } + ) + dttm_cols = ( + DateColumn(col_label="date_col1", timestamp_format="%Y-%m-%d"), + DateColumn(col_label="date_col2", timestamp_format="%m/%d/%Y"), + ) + + normalize_dttm_col(df, dttm_cols) + + assert is_datetime64_dtype(df["date_col1"]) + assert is_datetime64_dtype(df["date_col2"]) + assert df["date_col1"][0].strftime("%Y-%m-%d") == "2020-01-01" + assert df["date_col2"][0].strftime("%Y-%m-%d") == "2020-01-01" + + +def test_normalize_dttm_col_already_datetime_series() -> None: + """Test handling of already datetime series with epoch format.""" + # Create a DataFrame with timestamp strings + df = pd.DataFrame( + { + "ts_col": [ + "2020-01-01 00:00:00", + "2021-01-01 00:00:00", + "2022-01-01 00:00:00", + ] + } + ) + dttm_cols = (DateColumn(col_label="ts_col", timestamp_format="epoch_s"),) + + normalize_dttm_col(df, dttm_cols) + + assert is_datetime64_dtype(df["ts_col"]) + assert df["ts_col"][0].strftime("%Y-%m-%d") == "2020-01-01" + assert df["ts_col"][1].strftime("%Y-%m-%d") == "2021-01-01" + assert df["ts_col"][2].strftime("%Y-%m-%d") == "2022-01-01" + + def test_check_if_safe_zip_success(app_context: None) -> None: """ Test if ZIP files are safe From d71e655a4b7f778e96286a8d66266cb60f98bf83 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Tue, 18 Mar 2025 11:13:51 -0600 Subject: [PATCH 11/28] fix(docs): allow recaptcha in CSP (#32724) --- docs/static/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/.htaccess b/docs/static/.htaccess index 2b66800a888..51be0012129 100644 --- a/docs/static/.htaccess +++ b/docs/static/.htaccess @@ -22,7 +22,7 @@ RewriteRule ^(.*)$ https://superset.apache.org/$1 [R,L] RewriteCond %{HTTP_HOST} ^superset.incubator.apache.org$ [NC] RewriteRule ^(.*)$ https://superset.apache.org/$1 [R=301,L] -Header set Content-Security-Policy "default-src data: blob: 'self' *.apache.org widget.kapa.ai *.githubusercontent.com *.scarf.sh *.googleapis.com *.github.com *.algolia.net *.algolianet.com 'unsafe-inline' 'unsafe-eval'; frame-src *; frame-ancestors 'self' *.google.com https://sidebar.bugherd.com; form-action 'self'; worker-src blob:; img-src 'self' blob: data: https:; font-src 'self'; object-src 'none'" +Header set Content-Security-Policy "default-src data: blob: 'self' *.apache.org widget.kapa.ai *.githubusercontent.com *.scarf.sh *.googleapis.com *.google.com *.github.com *.algolia.net *.algolianet.com 'unsafe-inline' 'unsafe-eval'; frame-src *; frame-ancestors 'self' *.google.com https://sidebar.bugherd.com; form-action 'self'; worker-src blob:; img-src 'self' blob: data: https:; font-src 'self'; object-src 'none'" # REDIRECTS From cc0097c87a9e625728ffa181ff74f01fab5bf870 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Tue, 18 Mar 2025 11:19:47 -0600 Subject: [PATCH 12/28] fix(asf): moving notifications to the top of `.asf.yaml` (#32726) --- .asf.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.asf.yaml b/.asf.yaml index edad1a28036..39292a6e85c 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -17,6 +17,12 @@ # https://cwiki.apache.org/confluence/display/INFRA/.asf.yaml+features+for+git+repositories --- +notifications: + commits: commits@superset.apache.org + issues: notifications@superset.apache.org + pullrequests: notifications@superset.apache.org + discussions: notifications@superset.apache.org + github: del_branch_on_merge: true description: "Apache Superset is a Data Visualization and Data Exploration Platform" @@ -99,9 +105,3 @@ github: required_approving_review_count: 1 required_signatures: false - -notifications: - commits: commits@superset.apache.org - issues: notifications@superset.apache.org - pullrequests: notifications@superset.apache.org - discussions: notifications@superset.apache.org From e34644d9839eac01f4e7e3ea8e73b444aeff0bdc Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Tue, 18 Mar 2025 11:33:00 -0600 Subject: [PATCH 13/28] fix(docs): poking ANOTHER hole in the CSP for the AI bot. (#32727) --- docs/static/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/.htaccess b/docs/static/.htaccess index 51be0012129..c36c00a0025 100644 --- a/docs/static/.htaccess +++ b/docs/static/.htaccess @@ -22,7 +22,7 @@ RewriteRule ^(.*)$ https://superset.apache.org/$1 [R,L] RewriteCond %{HTTP_HOST} ^superset.incubator.apache.org$ [NC] RewriteRule ^(.*)$ https://superset.apache.org/$1 [R=301,L] -Header set Content-Security-Policy "default-src data: blob: 'self' *.apache.org widget.kapa.ai *.githubusercontent.com *.scarf.sh *.googleapis.com *.google.com *.github.com *.algolia.net *.algolianet.com 'unsafe-inline' 'unsafe-eval'; frame-src *; frame-ancestors 'self' *.google.com https://sidebar.bugherd.com; form-action 'self'; worker-src blob:; img-src 'self' blob: data: https:; font-src 'self'; object-src 'none'" +Header set Content-Security-Policy "default-src data: blob: 'self' *.apache.org widget.kapa.ai *.githubusercontent.com *.scarf.sh *.googleapis.com *.google.com *.gstatic.com *.github.com *.algolia.net *.algolianet.com 'unsafe-inline' 'unsafe-eval'; frame-src *; frame-ancestors 'self' *.google.com https://sidebar.bugherd.com; form-action 'self'; worker-src blob:; img-src 'self' blob: data: https:; font-src 'self'; object-src 'none'" # REDIRECTS From c399295a4e87c21620c3180877e0fb5b9683576f Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Tue, 18 Mar 2025 11:42:07 -0600 Subject: [PATCH 14/28] fix(docs): Another CSP hole for run.app to allow Kapa AI (#32728) --- docs/static/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/.htaccess b/docs/static/.htaccess index c36c00a0025..4012579253c 100644 --- a/docs/static/.htaccess +++ b/docs/static/.htaccess @@ -22,7 +22,7 @@ RewriteRule ^(.*)$ https://superset.apache.org/$1 [R,L] RewriteCond %{HTTP_HOST} ^superset.incubator.apache.org$ [NC] RewriteRule ^(.*)$ https://superset.apache.org/$1 [R=301,L] -Header set Content-Security-Policy "default-src data: blob: 'self' *.apache.org widget.kapa.ai *.githubusercontent.com *.scarf.sh *.googleapis.com *.google.com *.gstatic.com *.github.com *.algolia.net *.algolianet.com 'unsafe-inline' 'unsafe-eval'; frame-src *; frame-ancestors 'self' *.google.com https://sidebar.bugherd.com; form-action 'self'; worker-src blob:; img-src 'self' blob: data: https:; font-src 'self'; object-src 'none'" +Header set Content-Security-Policy "default-src data: blob: 'self' *.apache.org widget.kapa.ai *.githubusercontent.com *.scarf.sh *.googleapis.com *.google.com *.run.app *.gstatic.com *.github.com *.algolia.net *.algolianet.com 'unsafe-inline' 'unsafe-eval'; frame-src *; frame-ancestors 'self' *.google.com https://sidebar.bugherd.com; form-action 'self'; worker-src blob:; img-src 'self' blob: data: https:; font-src 'self'; object-src 'none'" # REDIRECTS From 6612343f33fb88fd900b97a006a60876a12bf1fc Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Tue, 18 Mar 2025 12:22:53 -0600 Subject: [PATCH 15/28] Revert "fix(asf): moving notifications to the top of `.asf.yaml`" (#32730) --- .asf.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.asf.yaml b/.asf.yaml index 39292a6e85c..edad1a28036 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -17,12 +17,6 @@ # https://cwiki.apache.org/confluence/display/INFRA/.asf.yaml+features+for+git+repositories --- -notifications: - commits: commits@superset.apache.org - issues: notifications@superset.apache.org - pullrequests: notifications@superset.apache.org - discussions: notifications@superset.apache.org - github: del_branch_on_merge: true description: "Apache Superset is a Data Visualization and Data Exploration Platform" @@ -105,3 +99,9 @@ github: required_approving_review_count: 1 required_signatures: false + +notifications: + commits: commits@superset.apache.org + issues: notifications@superset.apache.org + pullrequests: notifications@superset.apache.org + discussions: notifications@superset.apache.org From 710af87faf65f8aa2cbc5fdf5ba0d3dc66c48c25 Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Tue, 18 Mar 2025 13:18:36 -0600 Subject: [PATCH 16/28] Revert "Revert "fix(asf): moving notifications to the top of `.asf.yaml`"" (#32732) --- .asf.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.asf.yaml b/.asf.yaml index edad1a28036..39292a6e85c 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -17,6 +17,12 @@ # https://cwiki.apache.org/confluence/display/INFRA/.asf.yaml+features+for+git+repositories --- +notifications: + commits: commits@superset.apache.org + issues: notifications@superset.apache.org + pullrequests: notifications@superset.apache.org + discussions: notifications@superset.apache.org + github: del_branch_on_merge: true description: "Apache Superset is a Data Visualization and Data Exploration Platform" @@ -99,9 +105,3 @@ github: required_approving_review_count: 1 required_signatures: false - -notifications: - commits: commits@superset.apache.org - issues: notifications@superset.apache.org - pullrequests: notifications@superset.apache.org - discussions: notifications@superset.apache.org From 850801f510e4aa2636b18d0c234ad2bd94c43443 Mon Sep 17 00:00:00 2001 From: Vitor Avila <96086495+Vitor-Avila@users.noreply.github.com> Date: Tue, 18 Mar 2025 16:18:51 -0300 Subject: [PATCH 17/28] feat(where_in): Support returning None if filter_values return None (#32731) --- superset/jinja_context.py | 17 ++++++++++++++--- tests/unit_tests/jinja_context_test.py | 13 +++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/superset/jinja_context.py b/superset/jinja_context.py index f500881ba48..a4d8e6d6a49 100644 --- a/superset/jinja_context.py +++ b/superset/jinja_context.py @@ -519,7 +519,12 @@ class WhereInMacro: # pylint: disable=too-few-public-methods def __init__(self, dialect: Dialect): self.dialect = dialect - def __call__(self, values: list[Any], mark: Optional[str] = None) -> str: + def __call__( + self, + values: list[Any], + mark: Optional[str] = None, + default_to_none: bool = False, + ) -> str | None: """ Given a list of values, build a parenthesis list suitable for an IN expression. @@ -528,6 +533,10 @@ class WhereInMacro: # pylint: disable=too-few-public-methods >>> where_in([1, "Joe's", 3]) (1, 'Joe''s', 3) + The `default_to_none` parameter is used to determine the return value when the + list of values is empty: + - If `default_to_none` is `False` (default), the return value is (). + - If `default_to_none` is `True`, the return value is `None`. """ binds = [bindparam(f"value_{i}", value) for i, value in enumerate(values)] string_representations = [ @@ -539,9 +548,11 @@ class WhereInMacro: # pylint: disable=too-few-public-methods for bind in binds ] joined_values = ", ".join(string_representations) - result = f"({joined_values})" + result = ( + f"({joined_values})" if (joined_values or not default_to_none) else None + ) - if mark: + if mark and result: result += ( "\n-- WARNING: the `mark` parameter was removed from the `where_in` " "macro for security reasons\n" diff --git a/tests/unit_tests/jinja_context_test.py b/tests/unit_tests/jinja_context_test.py index d2ec9c83452..be6e5fb55e3 100644 --- a/tests/unit_tests/jinja_context_test.py +++ b/tests/unit_tests/jinja_context_test.py @@ -416,6 +416,19 @@ def test_where_in() -> None: assert where_in(["O'Malley's"]) == "('O''Malley''s')" +def test_where_in_empty_list() -> None: + """ + Test the ``where_in`` Jinja2 filter when it receives an + empty list. + """ + where_in = WhereInMacro(mysql.dialect()) + + # By default, the filter should return empty parenthesis (as a string) + assert where_in([]) == "()" + # With the default_to_none parameter set to True, it should return None + assert where_in([], default_to_none=True) is None + + def test_dataset_macro(mocker: MockerFixture) -> None: """ Test the ``dataset_macro`` macro. From bc3e19d0a2bbf1d83d6d052507ede757eea960d3 Mon Sep 17 00:00:00 2001 From: Paul Rhodes Date: Tue, 18 Mar 2025 19:35:57 +0000 Subject: [PATCH 18/28] fix(import): Ensure import exceptions are logged (#32410) --- superset/commands/importers/v1/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/superset/commands/importers/v1/__init__.py b/superset/commands/importers/v1/__init__.py index 989c494b60f..be3bb92d0e7 100644 --- a/superset/commands/importers/v1/__init__.py +++ b/superset/commands/importers/v1/__init__.py @@ -14,6 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. +import logging from typing import Any, Optional from marshmallow import Schema, validate # noqa: F401 @@ -34,6 +35,8 @@ from superset.daos.base import BaseDAO from superset.models.core import Database # noqa: F401 from superset.utils.decorators import transaction +logger = logging.getLogger(__name__) + class ImportModelsCommand(BaseCommand): """Import models""" @@ -104,6 +107,8 @@ class ImportModelsCommand(BaseCommand): self._prevent_overwrite_existing_model(exceptions) if exceptions: + for ex in exceptions: + logger.warning("Import Error: %s", ex) raise CommandInvalidError( f"Error importing {self.model_name}", exceptions, From 3f1ef2a283b9b897027b92ac8fcc25dcb12f95eb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 13:01:31 -0700 Subject: [PATCH 19/28] =?UTF-8?q?chore(=F0=9F=A6=BE):=20bump=20python=20gr?= =?UTF-8?q?eenlet=20(#31247)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: GitHub Action From 9e3052968b8709ee4d9c35aef63c13abbc785233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=B6xtermann?= Date: Tue, 18 Mar 2025 22:15:10 +0100 Subject: [PATCH 20/28] fix: ensure datasource permission in explore (#32679) --- superset/commands/explore/get.py | 2 +- tests/integration_tests/explore/api_tests.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/superset/commands/explore/get.py b/superset/commands/explore/get.py index dc600bbf971..df71a931b2c 100644 --- a/superset/commands/explore/get.py +++ b/superset/commands/explore/get.py @@ -120,7 +120,7 @@ class GetExploreCommand(BaseCommand, ABC): if datasource: datasource_name = datasource.name - security_manager.can_access_datasource(datasource) + security_manager.raise_for_access(datasource=datasource) viz_type = form_data.get("viz_type") if not viz_type and datasource and datasource.default_endpoint: diff --git a/tests/integration_tests/explore/api_tests.py b/tests/integration_tests/explore/api_tests.py index 730e013f827..cc65870ca61 100644 --- a/tests/integration_tests/explore/api_tests.py +++ b/tests/integration_tests/explore/api_tests.py @@ -214,12 +214,12 @@ def test_get_dataset_access_denied_with_form_data_key( assert data["message"] == message -@patch("superset.security.SupersetSecurityManager.can_access_datasource") +@patch("superset.security.SupersetSecurityManager.raise_for_access") def test_get_dataset_access_denied( - mock_can_access_datasource, test_client, login_as_admin, dataset + mock_raise_for_access, test_client, login_as_admin, dataset ): message = "Dataset access denied" - mock_can_access_datasource.side_effect = DatasetAccessDeniedError( + mock_raise_for_access.side_effect = DatasetAccessDeniedError( message=message, datasource_id=dataset.id, datasource_type=dataset.type ) resp = test_client.get( From ce6d5f55511df0fc8e4955342aa2881f4c66f268 Mon Sep 17 00:00:00 2001 From: Enzo Martellucci <52219496+EnxDev@users.noreply.github.com> Date: Tue, 18 Mar 2025 22:22:41 +0100 Subject: [PATCH 21/28] refactor(Icons): Replaces custom icons with Ant Design 5 icons (#32112) Replace custom icons with Ant Design 5 icons to standardize the icon --- .../cypress/applitools/chartlist.test.ts | 4 +- .../cypress/applitools/dashboardlist.test.ts | 4 +- .../cypress/e2e/chart_list/list.test.ts | 6 +- .../e2e/dashboard/_skip.controls.test.ts | 4 +- .../cypress/e2e/dashboard/actions.test.js | 35 ++++- .../e2e/dashboard/drilltodetail.test.ts | 2 +- .../cypress/e2e/dashboard_list/list.test.ts | 13 +- .../cypress/support/directories.ts | 28 ++-- .../cypress-base/cypress/utils/index.ts | 8 +- .../ColumnTypeLabel/ColumnTypeLabel.tsx | 22 +-- .../components/ControlSubSectionHeader.tsx | 10 +- superset-frontend/spec/helpers/shim.tsx | 11 +- .../components/QueryLimitSelect/index.tsx | 5 +- .../SqlLab/components/QueryTable/index.tsx | 17 +-- .../src/SqlLab/components/ResultSet/index.tsx | 27 +++- .../components/RunQueryActionButton/index.tsx | 13 +- .../SaveDatasetActionButton.test.tsx | 6 +- .../SaveDatasetActionButton/index.tsx | 6 +- .../components/SaveQuery/SaveQuery.test.tsx | 10 +- .../src/SqlLab/components/SaveQuery/index.tsx | 2 +- .../components/ShareSqlLabQuery/index.tsx | 27 ++-- .../src/SqlLab/components/ShowSQL/index.tsx | 8 +- .../src/SqlLab/components/SouthPane/index.tsx | 11 +- .../src/SqlLab/components/SqlEditor/index.tsx | 2 +- .../components/SqlEditorTabHeader/index.tsx | 106 +++++++++++--- .../TabStatusIcon/TabStatusIcon.test.tsx | 36 ----- .../SqlLab/components/TabStatusIcon/index.tsx | 78 ---------- .../components/TabbedSqlEditors/index.tsx | 29 +++- .../SqlLab/components/TableElement/index.tsx | 34 +++-- .../SqlLab/components/TablePreview/index.tsx | 10 +- .../src/assets/images/icons/alert.svg | 21 --- .../src/assets/images/icons/alert_solid.svg | 22 --- .../assets/images/icons/alert_solid_small.svg | 22 --- .../assets/images/icons/area-chart-tile.svg | 21 --- .../assets/images/icons/bar-chart-tile.svg | 21 --- .../src/assets/images/icons/bolt.svg | 21 --- .../src/assets/images/icons/bolt_small.svg | 21 --- .../assets/images/icons/bolt_small_run.svg | 21 --- .../src/assets/images/icons/calendar.svg | 21 --- .../src/assets/images/icons/cancel-x.svg | 24 ---- .../src/assets/images/icons/cancel.svg | 21 --- .../src/assets/images/icons/cancel_solid.svg | 22 --- .../src/assets/images/icons/card_view.svg | 21 --- .../src/assets/images/icons/cards.svg | 21 --- .../src/assets/images/icons/cards_locked.svg | 22 --- .../src/assets/images/icons/caret_down.svg | 21 --- .../src/assets/images/icons/caret_left.svg | 21 --- .../src/assets/images/icons/caret_right.svg | 21 --- .../src/assets/images/icons/caret_up.svg | 21 --- .../src/assets/images/icons/check.svg | 21 --- .../src/assets/images/icons/circle.svg | 21 --- .../src/assets/images/icons/circle_check.svg | 21 --- .../images/icons/circle_check_solid.svg | 22 --- .../icons/{database.svg => circle_solid.svg} | 2 +- .../src/assets/images/icons/clock.svg | 21 --- .../src/assets/images/icons/close.svg | 21 --- .../src/assets/images/icons/code.svg | 21 --- .../src/assets/images/icons/cog.svg | 22 --- .../src/assets/images/icons/collapse.svg | 21 --- .../src/assets/images/icons/color_palette.svg | 21 --- .../src/assets/images/icons/components.svg | 22 --- .../src/assets/images/icons/copy.svg | 21 --- .../images/icons/cross-filter-badge.svg | 22 --- .../images/icons/current-rendered-tile.svg | 21 --- .../src/assets/images/icons/cursor_target.svg | 21 --- .../assets/images/icons/dataset_physical.svg | 21 --- .../assets/images/icons/dataset_virtual.svg | 22 --- .../icons/dataset_virtual_greyscale.svg | 22 --- .../assets/images/icons/default_db_image.svg | 21 --- .../src/assets/images/icons/download.svg | 21 --- .../src/assets/images/icons/edit.svg | 21 --- .../src/assets/images/icons/edit_alt.svg | 21 --- .../src/assets/images/icons/email.svg | 21 --- .../src/assets/images/icons/error_solid.svg | 22 --- .../assets/images/icons/error_solid_small.svg | 22 --- .../src/assets/images/icons/exclamation.svg | 21 --- .../src/assets/images/icons/expand.svg | 21 --- .../src/assets/images/icons/eye.svg | 21 --- .../src/assets/images/icons/eye_slash.svg | 21 --- .../assets/images/icons/favorite-selected.svg | 21 --- .../images/icons/favorite-unselected.svg | 21 --- .../images/icons/favorite_small_selected.svg | 21 --- .../src/assets/images/icons/field_abc.svg | 21 --- .../src/assets/images/icons/field_boolean.svg | 21 --- .../src/assets/images/icons/field_date.svg | 21 --- .../src/assets/images/icons/field_derived.svg | 21 --- .../src/assets/images/icons/field_num.svg | 21 --- .../src/assets/images/icons/field_struct.svg | 21 --- .../src/assets/images/icons/file.svg | 21 --- .../src/assets/images/icons/filter.svg | 22 --- .../src/assets/images/icons/filter_small.svg | 21 --- .../src/assets/images/icons/folder.svg | 21 --- .../src/assets/images/icons/function_x.svg | 21 --- .../src/assets/images/icons/gear.svg | 21 --- .../src/assets/images/icons/grid.svg | 21 --- .../src/assets/images/icons/image.svg | 21 --- .../src/assets/images/icons/import.svg | 22 --- .../src/assets/images/icons/info-solid.svg | 22 --- .../src/assets/images/icons/info.svg | 21 --- .../assets/images/icons/info_solid_small.svg | 22 --- .../src/assets/images/icons/join.svg | 21 --- .../src/assets/images/icons/keyboard.svg | 21 --- .../src/assets/images/icons/lightbulb.svg | 21 --- .../assets/images/icons/line-chart-tile.svg | 21 --- .../src/assets/images/icons/link.svg | 21 --- .../src/assets/images/icons/list.svg | 21 --- .../src/assets/images/icons/list_view.svg | 21 --- .../src/assets/images/icons/location.svg | 21 --- .../src/assets/images/icons/lock_locked.svg | 21 --- .../src/assets/images/icons/lock_unlocked.svg | 21 --- .../src/assets/images/icons/map.svg | 21 --- .../src/assets/images/icons/message.svg | 21 --- .../src/assets/images/icons/minus.svg | 21 --- .../src/assets/images/icons/minus_solid.svg | 22 --- .../src/assets/images/icons/more_horiz.svg | 21 --- .../src/assets/images/icons/more_vert.svg | 21 --- .../src/assets/images/icons/move.svg | 21 --- .../src/assets/images/icons/nav_charts.svg | 22 --- .../src/assets/images/icons/nav_dashboard.svg | 21 --- .../src/assets/images/icons/nav_data.svg | 21 --- .../src/assets/images/icons/nav_explore.svg | 22 --- .../src/assets/images/icons/nav_home.svg | 21 --- .../src/assets/images/icons/nav_lab.svg | 21 --- .../src/assets/images/icons/note.svg | 21 --- .../src/assets/images/icons/paperclip.svg | 21 --- .../assets/images/icons/pie-chart-tile.svg | 28 ---- .../src/assets/images/icons/placeholder.svg | 21 --- .../src/assets/images/icons/plus.svg | 21 --- .../src/assets/images/icons/plus_large.svg | 21 --- .../src/assets/images/icons/plus_small.svg | 21 --- .../src/assets/images/icons/plus_solid.svg | 22 --- .../src/assets/images/icons/refresh.svg | 21 --- .../src/assets/images/icons/save.svg | 21 --- .../src/assets/images/icons/search.svg | 27 ---- .../src/assets/images/icons/server.svg | 21 --- .../src/assets/images/icons/share.svg | 25 ---- .../src/assets/images/icons/sql.svg | 22 --- .../images/icons/{offline.svg => square.svg} | 4 +- .../assets/images/icons/table-chart-tile.svg | 28 ---- .../src/assets/images/icons/table.svg | 22 --- .../src/assets/images/icons/tag.svg | 21 --- .../src/assets/images/icons/tags.svg | 22 --- .../src/assets/images/icons/trash.svg | 21 --- .../assets/images/icons/triangle_change.svg | 21 --- .../src/assets/images/icons/triangle_up.svg | 21 --- .../src/assets/images/icons/up-level.svg | 21 --- .../src/assets/images/icons/user.svg | 21 --- .../src/assets/images/icons/warning.svg | 21 --- .../src/assets/images/icons/warning_solid.svg | 22 --- .../src/assets/images/icons/x-large.svg | 21 --- .../src/assets/images/icons/x-small.svg | 21 --- .../src/components/AlteredSliceTag/index.tsx | 2 +- .../Chart/DrillBy/DrillByMenuItems.test.tsx | 16 ++- .../Chart/DrillBy/DrillByMenuItems.tsx | 2 +- .../DrillDetail/DrillDetailMenuItems.test.tsx | 39 +++-- .../CopyToClipboard.stories.tsx | 4 +- .../DatabaseSelector.test.tsx | 2 +- .../components/Datasource/CollectionTable.tsx | 14 +- .../Datasource/DatasourceEditor.jsx | 23 ++- .../Datasource/DatasourceEditor.test.jsx | 4 +- .../components/Datasource/DatasourceModal.tsx | 11 ++ .../src/components/Dropdown/index.tsx | 2 +- .../src/components/DropdownButton/index.tsx | 38 ++++- .../DropdownContainer.test.tsx | 5 +- .../ErrorMessage/BasicErrorAlert.test.tsx | 6 +- .../ErrorMessage/BasicErrorAlert.tsx | 6 +- .../components/ErrorMessage/ErrorAlert.tsx | 9 +- .../src/components/ErrorMessage/IssueCode.tsx | 8 +- .../src/components/FaveStar/FaveStar.test.tsx | 12 +- .../src/components/FaveStar/index.tsx | 17 ++- .../IconTooltip/IconTooltip.stories.tsx | 11 +- .../src/components/Icons/AntdEnhanced.tsx | 93 ++++++++++-- .../src/components/Icons/BaseIcon.tsx | 97 +++++++++++++ .../src/components/Icons/Icon.tsx | 46 +----- .../src/components/Icons/Icons.stories.tsx | 4 +- .../src/components/Icons/index.tsx | 134 ++---------------- .../Icons/{IconType.ts => types.ts} | 19 ++- .../src/components/InfoTooltip/index.tsx | 22 ++- .../Label/reusable/DatasetTypeLabel.tsx | 8 +- .../Label/reusable/PublishedLabel.tsx | 10 +- .../LastUpdated/LastUpdated.test.tsx | 14 +- .../src/components/LastUpdated/index.tsx | 23 ++- .../src/components/ListView/ActionsBar.tsx | 2 +- .../components/ListView/Filters/Search.tsx | 33 +++-- .../src/components/ListView/ListView.tsx | 4 +- .../ListViewCard/ListViewCard.stories.tsx | 6 +- .../src/components/Menu/index.tsx | 90 ++++++------ .../src/components/MessageToasts/Toast.tsx | 39 +++-- .../components/MetadataBar/ContentConfig.tsx | 2 +- .../src/components/Modal/Modal.tsx | 3 +- .../PageHeaderWithActions/index.tsx | 4 +- .../src/components/Popover/Popover.test.tsx | 2 +- .../src/components/PopoverDropdown/index.tsx | 9 +- .../src/components/PopoverSection/index.tsx | 36 +++-- .../src/components/Radio/Radio.stories.tsx | 32 +++-- .../src/components/RefreshLabel/index.tsx | 2 +- .../src/components/Select/AsyncSelect.tsx | 3 +- .../header-renderers/HeaderWithRadioGroup.tsx | 2 +- .../src/components/TableSelector/index.tsx | 4 +- .../src/components/Tabs/Tabs.tsx | 4 +- superset-frontend/src/components/Tags/Tag.tsx | 7 +- .../src/components/Timer/index.tsx | 29 +++- .../src/components/Tooltip/Tooltip.test.tsx | 2 +- .../WarningIconWithTooltip/index.tsx | 2 +- .../dashboard/components/DashboardGrid.jsx | 21 +-- .../components/DeleteComponentButton.tsx | 4 +- .../DetailsPanel/DetailsPanel.test.tsx | 24 ++-- .../FilterIndicator/FilterIndicator.test.tsx | 8 +- .../components/FiltersBadge/index.tsx | 2 +- .../components/Header/Header.test.tsx | 22 ++- .../src/dashboard/components/Header/index.jsx | 9 ++ .../PropertiesModal/PropertiesModal.test.tsx | 5 +- .../components/PropertiesModal/index.tsx | 5 + .../dashboard/components/SliceAdder.test.tsx | 8 +- .../src/dashboard/components/SliceAdder.tsx | 54 ++++--- .../components/SliceHeader/index.tsx | 4 - .../components/URLShortLinkButton/index.tsx | 22 +-- .../components/gridComponents/Column.jsx | 2 +- .../gridComponents/Divider.test.jsx | 2 +- .../components/gridComponents/Header.test.jsx | 4 +- .../components/gridComponents/Row.jsx | 2 +- .../components/gridComponents/Tabs.jsx | 47 +++--- .../ChartsScopingListPanel.test.tsx | 2 +- .../ScopingModal/ChartsScopingListPanel.tsx | 14 +- .../ScopingModal/ScopingModal.test.tsx | 2 +- .../ScopingModal/ScopingTreePanel.tsx | 1 - .../FilterBar/FilterBar.test.tsx | 12 +- .../FilterBarSettings.test.tsx | 47 ++++-- .../FilterBar/FilterBarSettings/index.tsx | 34 ++++- .../FilterControls/FilterControl.tsx | 4 +- .../FilterControls/FilterControls.tsx | 2 +- .../FilterControls/FilterDivider.stories.tsx | 2 +- .../FilterControls/FilterDivider.tsx | 1 - .../FiltersOutOfScopeCollapsible/index.tsx | 3 +- .../FilterBar/Header/Header.test.tsx | 8 +- .../nativeFilters/FilterBar/Header/index.tsx | 43 +++--- .../nativeFilters/FilterBar/Vertical.tsx | 26 ++-- .../FilterCard/DependenciesRow.tsx | 2 +- .../FilterCard/FilterCard.test.tsx | 2 +- .../nativeFilters/FilterCard/NameRow.tsx | 5 +- .../FiltersConfigModal/DraggableFilter.tsx | 1 - .../FilterTitleContainer.tsx | 13 +- .../FiltersConfigModal/FilterTitlePane.tsx | 14 +- .../FiltersConfigForm/DependencyList.tsx | 4 +- .../FilterScope/ScopingTree.tsx | 2 +- .../FiltersConfigForm/FiltersConfigForm.tsx | 17 ++- .../FiltersConfigModal.test.tsx | 12 +- .../src/explore/components/ControlHeader.tsx | 10 +- .../components/DataTableControl/index.tsx | 46 +++--- .../DataTablesPane/DataTablesPane.tsx | 9 +- .../DatasourcePanel/DatasourcePanel.test.tsx | 2 +- .../ExploreChartHeader.test.tsx | 4 +- .../components/ExploreChartHeader/index.jsx | 8 +- .../components/ExploreViewContainer/index.jsx | 14 +- .../components/ExportToCSVDropdown/index.tsx | 4 +- .../PropertiesModal/PropertiesModal.test.tsx | 6 +- .../components/PropertiesModal/index.tsx | 16 ++- .../components/RunQueryButton/index.tsx | 15 +- .../controls/AnnotationLayerControl/index.tsx | 26 ++-- .../CollectionControl.test.tsx | 4 +- .../controls/CollectionControl/index.jsx | 2 +- .../ColorSchemeControl.test.tsx | 6 +- .../controls/ColorSchemeControl/index.tsx | 15 +- .../ConditionalFormattingControl.tsx | 22 ++- .../DatasourceControl.test.jsx | 6 +- .../controls/DatasourceControl/index.jsx | 16 ++- .../DateFilterControl/DateFilterLabel.tsx | 6 +- .../components/DateLabel.tsx | 32 ++--- .../DndColumnSelectPopoverTitle.jsx | 14 +- .../DndColumnSelectControl/DndSelectLabel.tsx | 8 +- .../DndColumnSelectControl/Option.test.tsx | 10 +- .../DndColumnSelectControl/Option.tsx | 21 ++- .../OptionWrapper.test.tsx | 4 +- .../AdhocFilterControl/index.jsx | 13 +- .../index.tsx | 8 +- .../AdhocFilterOption.test.tsx | 8 +- .../controls/FixedOrMetricControl/index.jsx | 3 +- .../LayerConfigsControl/FlatLayerTree.tsx | 5 +- .../LayerConfigsControl/LayerTreeItem.tsx | 7 +- .../AdhocMetricEditPopoverTitle.test.tsx | 3 +- .../AdhocMetricEditPopoverTitle.tsx | 14 +- .../controls/MetricControl/MetricsControl.jsx | 9 +- .../controls/OptionControls/index.tsx | 23 ++- .../controls/VizTypeControl/VizTile.tsx | 9 +- .../VizTypeControl/VizTypeControl.test.tsx | 8 +- .../VizTypeControl/VizTypeGallery.tsx | 15 +- .../controls/VizTypeControl/constants.tsx | 10 +- .../DashboardsSubMenu.tsx | 3 +- .../src/features/alerts/AlertReportModal.tsx | 11 +- .../alerts/components/AlertStatusIcon.tsx | 15 +- .../components/NotificationMethod.test.tsx | 4 +- .../alerts/components/NotificationMethod.tsx | 7 +- .../alerts/components/RecipientIcon.test.tsx | 7 +- .../alerts/components/RecipientIcon.tsx | 14 +- .../components/ValidatedPanelHeader.tsx | 14 +- .../annotationLayers/AnnotationLayerModal.tsx | 19 ++- .../features/annotations/AnnotationModal.tsx | 18 ++- .../src/features/charts/ChartCard.tsx | 72 ++++++---- .../cssTemplates/CssTemplateModal.tsx | 68 +++++---- .../src/features/dashboards/DashboardCard.tsx | 12 +- .../DatabaseConnectionForm/EncryptedField.tsx | 4 +- .../DatabaseModal/SSHTunnelSwitch.test.tsx | 4 +- .../databases/DatabaseModal/index.test.tsx | 10 +- .../databases/DatabaseModal/index.tsx | 35 ++++- .../databases/DatabaseModal/styles.ts | 2 + .../databases/UploadDataModel/index.tsx | 7 +- .../AddDataset/DatasetPanel/DatasetPanel.tsx | 12 +- .../datasets/AddDataset/Header/index.tsx | 2 +- .../AddDataset/LeftPanel/LeftPanel.test.tsx | 2 +- .../src/features/home/ActivityTable.tsx | 6 +- .../src/features/home/ChartTable.tsx | 12 +- .../src/features/home/DashboardTable.test.tsx | 4 +- .../src/features/home/DashboardTable.tsx | 11 +- .../src/features/home/LanguagePicker.tsx | 13 +- superset-frontend/src/features/home/Menu.tsx | 26 +++- .../src/features/home/RightMenu.tsx | 31 ++-- .../src/features/home/SavedQueries.tsx | 34 +++-- .../src/features/home/SubMenu.tsx | 12 +- .../queries/SyntaxHighlighterCopy.tsx | 2 +- .../HeaderReportDropdown/index.tsx | 4 +- .../features/reports/ReportModal/index.tsx | 2 +- .../features/rls/RowLevelSecurityModal.tsx | 106 +++++++------- .../src/features/tags/TagCard.tsx | 7 +- .../src/pages/AlertReportList/index.tsx | 35 +++-- .../src/pages/AnnotationLayerList/index.tsx | 27 ++-- .../src/pages/AnnotationList/index.tsx | 31 ++-- .../ChartCreation/ChartCreation.test.tsx | 17 ++- .../src/pages/ChartCreation/index.tsx | 16 +-- .../src/pages/ChartList/ChartList.test.jsx | 28 ++-- .../src/pages/ChartList/index.tsx | 26 ++-- .../src/pages/CssTemplateList/index.tsx | 20 ++- .../DashboardList/DashboardList.test.jsx | 12 +- .../src/pages/DashboardList/index.tsx | 27 ++-- .../src/pages/DatabaseList/index.tsx | 43 +++--- .../src/pages/DatasetList/index.tsx | 59 +++++--- .../src/pages/QueryHistoryList/index.tsx | 20 ++- .../src/pages/RowLevelSecurityList/index.tsx | 36 +++-- .../SavedQueryList/SavedQueryList.test.jsx | 2 +- .../src/pages/SavedQueryList/index.tsx | 35 +++-- superset-frontend/src/pages/Tags/index.tsx | 41 ++++-- superset-frontend/src/views/CRUD/utils.tsx | 7 - 341 files changed, 2222 insertions(+), 3999 deletions(-) delete mode 100644 superset-frontend/src/SqlLab/components/TabStatusIcon/TabStatusIcon.test.tsx delete mode 100644 superset-frontend/src/SqlLab/components/TabStatusIcon/index.tsx delete mode 100644 superset-frontend/src/assets/images/icons/alert.svg delete mode 100644 superset-frontend/src/assets/images/icons/alert_solid.svg delete mode 100644 superset-frontend/src/assets/images/icons/alert_solid_small.svg delete mode 100644 superset-frontend/src/assets/images/icons/area-chart-tile.svg delete mode 100644 superset-frontend/src/assets/images/icons/bar-chart-tile.svg delete mode 100644 superset-frontend/src/assets/images/icons/bolt.svg delete mode 100644 superset-frontend/src/assets/images/icons/bolt_small.svg delete mode 100644 superset-frontend/src/assets/images/icons/bolt_small_run.svg delete mode 100644 superset-frontend/src/assets/images/icons/calendar.svg delete mode 100644 superset-frontend/src/assets/images/icons/cancel-x.svg delete mode 100644 superset-frontend/src/assets/images/icons/cancel.svg delete mode 100644 superset-frontend/src/assets/images/icons/cancel_solid.svg delete mode 100644 superset-frontend/src/assets/images/icons/card_view.svg delete mode 100644 superset-frontend/src/assets/images/icons/cards.svg delete mode 100644 superset-frontend/src/assets/images/icons/cards_locked.svg delete mode 100644 superset-frontend/src/assets/images/icons/caret_down.svg delete mode 100644 superset-frontend/src/assets/images/icons/caret_left.svg delete mode 100644 superset-frontend/src/assets/images/icons/caret_right.svg delete mode 100644 superset-frontend/src/assets/images/icons/caret_up.svg delete mode 100644 superset-frontend/src/assets/images/icons/check.svg delete mode 100644 superset-frontend/src/assets/images/icons/circle.svg delete mode 100644 superset-frontend/src/assets/images/icons/circle_check.svg delete mode 100644 superset-frontend/src/assets/images/icons/circle_check_solid.svg rename superset-frontend/src/assets/images/icons/{database.svg => circle_solid.svg} (73%) delete mode 100644 superset-frontend/src/assets/images/icons/clock.svg delete mode 100644 superset-frontend/src/assets/images/icons/close.svg delete mode 100644 superset-frontend/src/assets/images/icons/code.svg delete mode 100644 superset-frontend/src/assets/images/icons/cog.svg delete mode 100644 superset-frontend/src/assets/images/icons/collapse.svg delete mode 100644 superset-frontend/src/assets/images/icons/color_palette.svg delete mode 100644 superset-frontend/src/assets/images/icons/components.svg delete mode 100644 superset-frontend/src/assets/images/icons/copy.svg delete mode 100644 superset-frontend/src/assets/images/icons/cross-filter-badge.svg delete mode 100644 superset-frontend/src/assets/images/icons/current-rendered-tile.svg delete mode 100644 superset-frontend/src/assets/images/icons/cursor_target.svg delete mode 100644 superset-frontend/src/assets/images/icons/dataset_physical.svg delete mode 100644 superset-frontend/src/assets/images/icons/dataset_virtual.svg delete mode 100644 superset-frontend/src/assets/images/icons/dataset_virtual_greyscale.svg delete mode 100644 superset-frontend/src/assets/images/icons/default_db_image.svg delete mode 100644 superset-frontend/src/assets/images/icons/download.svg delete mode 100644 superset-frontend/src/assets/images/icons/edit.svg delete mode 100644 superset-frontend/src/assets/images/icons/edit_alt.svg delete mode 100644 superset-frontend/src/assets/images/icons/email.svg delete mode 100644 superset-frontend/src/assets/images/icons/error_solid.svg delete mode 100644 superset-frontend/src/assets/images/icons/error_solid_small.svg delete mode 100644 superset-frontend/src/assets/images/icons/exclamation.svg delete mode 100644 superset-frontend/src/assets/images/icons/expand.svg delete mode 100644 superset-frontend/src/assets/images/icons/eye.svg delete mode 100644 superset-frontend/src/assets/images/icons/eye_slash.svg delete mode 100644 superset-frontend/src/assets/images/icons/favorite-selected.svg delete mode 100644 superset-frontend/src/assets/images/icons/favorite-unselected.svg delete mode 100644 superset-frontend/src/assets/images/icons/favorite_small_selected.svg delete mode 100644 superset-frontend/src/assets/images/icons/field_abc.svg delete mode 100644 superset-frontend/src/assets/images/icons/field_boolean.svg delete mode 100644 superset-frontend/src/assets/images/icons/field_date.svg delete mode 100644 superset-frontend/src/assets/images/icons/field_derived.svg delete mode 100644 superset-frontend/src/assets/images/icons/field_num.svg delete mode 100644 superset-frontend/src/assets/images/icons/field_struct.svg delete mode 100644 superset-frontend/src/assets/images/icons/file.svg delete mode 100644 superset-frontend/src/assets/images/icons/filter.svg delete mode 100644 superset-frontend/src/assets/images/icons/filter_small.svg delete mode 100644 superset-frontend/src/assets/images/icons/folder.svg delete mode 100644 superset-frontend/src/assets/images/icons/function_x.svg delete mode 100644 superset-frontend/src/assets/images/icons/gear.svg delete mode 100644 superset-frontend/src/assets/images/icons/grid.svg delete mode 100644 superset-frontend/src/assets/images/icons/image.svg delete mode 100644 superset-frontend/src/assets/images/icons/import.svg delete mode 100644 superset-frontend/src/assets/images/icons/info-solid.svg delete mode 100644 superset-frontend/src/assets/images/icons/info.svg delete mode 100644 superset-frontend/src/assets/images/icons/info_solid_small.svg delete mode 100644 superset-frontend/src/assets/images/icons/join.svg delete mode 100644 superset-frontend/src/assets/images/icons/keyboard.svg delete mode 100644 superset-frontend/src/assets/images/icons/lightbulb.svg delete mode 100644 superset-frontend/src/assets/images/icons/line-chart-tile.svg delete mode 100644 superset-frontend/src/assets/images/icons/link.svg delete mode 100644 superset-frontend/src/assets/images/icons/list.svg delete mode 100644 superset-frontend/src/assets/images/icons/list_view.svg delete mode 100644 superset-frontend/src/assets/images/icons/location.svg delete mode 100644 superset-frontend/src/assets/images/icons/lock_locked.svg delete mode 100644 superset-frontend/src/assets/images/icons/lock_unlocked.svg delete mode 100644 superset-frontend/src/assets/images/icons/map.svg delete mode 100644 superset-frontend/src/assets/images/icons/message.svg delete mode 100644 superset-frontend/src/assets/images/icons/minus.svg delete mode 100644 superset-frontend/src/assets/images/icons/minus_solid.svg delete mode 100644 superset-frontend/src/assets/images/icons/more_horiz.svg delete mode 100644 superset-frontend/src/assets/images/icons/more_vert.svg delete mode 100644 superset-frontend/src/assets/images/icons/move.svg delete mode 100644 superset-frontend/src/assets/images/icons/nav_charts.svg delete mode 100644 superset-frontend/src/assets/images/icons/nav_dashboard.svg delete mode 100644 superset-frontend/src/assets/images/icons/nav_data.svg delete mode 100644 superset-frontend/src/assets/images/icons/nav_explore.svg delete mode 100644 superset-frontend/src/assets/images/icons/nav_home.svg delete mode 100644 superset-frontend/src/assets/images/icons/nav_lab.svg delete mode 100644 superset-frontend/src/assets/images/icons/note.svg delete mode 100644 superset-frontend/src/assets/images/icons/paperclip.svg delete mode 100644 superset-frontend/src/assets/images/icons/pie-chart-tile.svg delete mode 100644 superset-frontend/src/assets/images/icons/placeholder.svg delete mode 100644 superset-frontend/src/assets/images/icons/plus.svg delete mode 100644 superset-frontend/src/assets/images/icons/plus_large.svg delete mode 100644 superset-frontend/src/assets/images/icons/plus_small.svg delete mode 100644 superset-frontend/src/assets/images/icons/plus_solid.svg delete mode 100644 superset-frontend/src/assets/images/icons/refresh.svg delete mode 100644 superset-frontend/src/assets/images/icons/save.svg delete mode 100644 superset-frontend/src/assets/images/icons/search.svg delete mode 100644 superset-frontend/src/assets/images/icons/server.svg delete mode 100644 superset-frontend/src/assets/images/icons/share.svg delete mode 100644 superset-frontend/src/assets/images/icons/sql.svg rename superset-frontend/src/assets/images/icons/{offline.svg => square.svg} (83%) delete mode 100644 superset-frontend/src/assets/images/icons/table-chart-tile.svg delete mode 100644 superset-frontend/src/assets/images/icons/table.svg delete mode 100644 superset-frontend/src/assets/images/icons/tag.svg delete mode 100644 superset-frontend/src/assets/images/icons/tags.svg delete mode 100644 superset-frontend/src/assets/images/icons/trash.svg delete mode 100644 superset-frontend/src/assets/images/icons/triangle_change.svg delete mode 100644 superset-frontend/src/assets/images/icons/triangle_up.svg delete mode 100644 superset-frontend/src/assets/images/icons/up-level.svg delete mode 100644 superset-frontend/src/assets/images/icons/user.svg delete mode 100644 superset-frontend/src/assets/images/icons/warning.svg delete mode 100644 superset-frontend/src/assets/images/icons/warning_solid.svg delete mode 100644 superset-frontend/src/assets/images/icons/x-large.svg delete mode 100644 superset-frontend/src/assets/images/icons/x-small.svg create mode 100644 superset-frontend/src/components/Icons/BaseIcon.tsx rename superset-frontend/src/components/Icons/{IconType.ts => types.ts} (66%) diff --git a/superset-frontend/cypress-base/cypress/applitools/chartlist.test.ts b/superset-frontend/cypress-base/cypress/applitools/chartlist.test.ts index 92ad94bb7da..5333e98c5f5 100644 --- a/superset-frontend/cypress-base/cypress/applitools/chartlist.test.ts +++ b/superset-frontend/cypress-base/cypress/applitools/chartlist.test.ts @@ -28,7 +28,7 @@ describe('charts list view', () => { }); it('should load the Charts list', () => { - cy.get('[aria-label="list-view"]').click(); + cy.get('[aria-label="unordered-list"]').click(); cy.eyesOpen({ testName: 'Charts list-view', }); @@ -36,7 +36,7 @@ describe('charts list view', () => { }); it('should load the Charts card list', () => { - cy.get('[aria-label="card-view"]').click(); + cy.get('[aria-label="appstore"]').click(); cy.eyesOpen({ testName: 'Charts card-view', }); diff --git a/superset-frontend/cypress-base/cypress/applitools/dashboardlist.test.ts b/superset-frontend/cypress-base/cypress/applitools/dashboardlist.test.ts index 4e9c84d6ea0..ff4a3174432 100644 --- a/superset-frontend/cypress-base/cypress/applitools/dashboardlist.test.ts +++ b/superset-frontend/cypress-base/cypress/applitools/dashboardlist.test.ts @@ -28,7 +28,7 @@ describe('dashboard list view', () => { }); it('should load the Dashboards list', () => { - cy.get('[aria-label="list-view"]').click(); + cy.get('[aria-label="unordered-list"]').click(); cy.eyesOpen({ testName: 'Dashboards list-view', }); @@ -36,7 +36,7 @@ describe('dashboard list view', () => { }); it('should load the Dashboards card list', () => { - cy.get('[aria-label="card-view"]').click(); + cy.get('[aria-label="appstore"]').click(); cy.eyesOpen({ testName: 'Dashboards card-view', }); diff --git a/superset-frontend/cypress-base/cypress/e2e/chart_list/list.test.ts b/superset-frontend/cypress-base/cypress/e2e/chart_list/list.test.ts index a20e0499517..9f689c014b6 100644 --- a/superset-frontend/cypress-base/cypress/e2e/chart_list/list.test.ts +++ b/superset-frontend/cypress-base/cypress/e2e/chart_list/list.test.ts @@ -35,12 +35,12 @@ function orderAlphabetical() { } function openProperties() { - cy.get('[aria-label="more-vert"]').eq(1).click(); + cy.get('[aria-label="more"]').eq(1).click(); cy.getBySel('chart-list-edit-option').click(); } function openMenu() { - cy.get('[aria-label="more-vert"]').eq(1).click(); + cy.get('[aria-label="more"]').eq(1).click(); } function confirmDelete() { @@ -263,7 +263,7 @@ describe('Charts list', () => { // deletes in list-view setGridMode('list'); cy.getBySel('table-row').eq(1).contains('2 - Sample chart'); - cy.getBySel('trash').eq(1).click(); + cy.getBySel('delete').eq(1).click(); confirmDelete(); cy.wait('@delete'); cy.getBySel('table-row').eq(1).should('not.contain', '2 - Sample chart'); diff --git a/superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.controls.test.ts b/superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.controls.test.ts index 0e5c7331314..e527fcda759 100644 --- a/superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.controls.test.ts +++ b/superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.controls.test.ts @@ -62,7 +62,7 @@ describe.skip('Dashboard top-level controls', () => { // should allow force refresh WORLD_HEALTH_CHARTS.forEach(waitForChartLoad); getChartAliasesBySpec(WORLD_HEALTH_CHARTS).then(aliases => { - cy.get('[aria-label="more-horiz"]').click(); + cy.get('[aria-label="ellipsis"]').click(); cy.get('[data-test="refresh-dashboard-menu-item"]').should( 'not.have.class', 'antd5-dropdown-menu-item-disabled', @@ -91,7 +91,7 @@ describe.skip('Dashboard top-level controls', () => { }); }); }); - cy.get('[aria-label="more-horiz"]').click(); + cy.get('[aria-label="ellipsis"]').click(); cy.get('[data-test="refresh-dashboard-menu-item"]').and( 'not.have.class', 'antd5-dropdown-menu-item-disabled', diff --git a/superset-frontend/cypress-base/cypress/e2e/dashboard/actions.test.js b/superset-frontend/cypress-base/cypress/e2e/dashboard/actions.test.js index 8d520d97298..7da3cc84ee8 100644 --- a/superset-frontend/cypress-base/cypress/e2e/dashboard/actions.test.js +++ b/superset-frontend/cypress-base/cypress/e2e/dashboard/actions.test.js @@ -24,21 +24,44 @@ describe('Dashboard actions', () => { cy.createSampleDashboards([0]); cy.visit(SAMPLE_DASHBOARD_1); }); - it('should allow to favorite/unfavorite dashboard', () => { interceptFav(); interceptUnfav(); + // Find and click StarOutlined (adds to favorites) cy.getBySel('dashboard-header-container') - .find("[aria-label='favorite-unselected']") + .find("[aria-label='unstarred']") + .as('starIconOutlined') + .should('exist') .click(); + cy.wait('@select'); + + // After clicking, StarFilled should appear cy.getBySel('dashboard-header-container') - .find("[aria-label='favorite-selected']") - .click(); + .find("[aria-label='starred']") + .as('starIconFilled') + .should('exist'); + + // Verify the color of the filled star (gold) + cy.get('@starIconFilled') + .should('have.css', 'color') + .and('eq', 'rgb(252, 199, 0)'); + + // Click on StarFilled (removes from favorites) + cy.get('@starIconFilled').click(); + cy.wait('@unselect'); + + // After clicking, StarOutlined should reappear cy.getBySel('dashboard-header-container') - .find("[aria-label='favorite-selected']") - .should('not.exist'); + .find("[aria-label='unstarred']") + .as('starIconOutlinedAfter') + .should('exist'); + + // Verify the color of the outlined star (gray) + cy.get('@starIconOutlinedAfter') + .should('have.css', 'color') + .and('eq', 'rgb(178, 178, 178)'); }); }); diff --git a/superset-frontend/cypress-base/cypress/e2e/dashboard/drilltodetail.test.ts b/superset-frontend/cypress-base/cypress/e2e/dashboard/drilltodetail.test.ts index d2eb482a9fa..1063689edce 100644 --- a/superset-frontend/cypress-base/cypress/e2e/dashboard/drilltodetail.test.ts +++ b/superset-frontend/cypress-base/cypress/e2e/dashboard/drilltodetail.test.ts @@ -151,7 +151,7 @@ describe('Drill to detail modal', () => { cy.on('uncaught:exception', () => false); cy.wait('@samples'); // reload - cy.get("[aria-label='reload']").click(); + cy.get("[aria-label='Reload']").click(); cy.wait('@samples'); // make sure it started back from first page cy.get('.ant-pagination-item-active').should('contain', '1'); diff --git a/superset-frontend/cypress-base/cypress/e2e/dashboard_list/list.test.ts b/superset-frontend/cypress-base/cypress/e2e/dashboard_list/list.test.ts index c887ae0e6c2..322306a4c64 100644 --- a/superset-frontend/cypress-base/cypress/e2e/dashboard_list/list.test.ts +++ b/superset-frontend/cypress-base/cypress/e2e/dashboard_list/list.test.ts @@ -32,12 +32,12 @@ function orderAlphabetical() { } function openProperties() { - cy.get('[aria-label="more-vert"]').first().click(); + cy.get('[aria-label="more"]').first().click(); cy.getBySel('dashboard-card-option-edit-button').click(); } function openMenu() { - cy.get('[aria-label="more-vert"]').first().click(); + cy.get('[aria-label="more"]').first().click(); } function confirmDelete(bulk = false) { @@ -158,17 +158,14 @@ describe('Dashboards list', () => { cy.getBySel('styled-card').first().contains('1 - Sample dashboard'); cy.getBySel('styled-card') .first() - .find("[aria-label='favorite-unselected']") + .find("[aria-label='unstarred']") .click(); cy.wait('@select'); - cy.getBySel('styled-card') - .first() - .find("[aria-label='favorite-selected']") - .click(); + cy.getBySel('styled-card').first().find("[aria-label='starred']").click(); cy.wait('@unselect'); cy.getBySel('styled-card') .first() - .find("[aria-label='favorite-selected']") + .find("[aria-label='starred']") .should('not.exist'); }); diff --git a/superset-frontend/cypress-base/cypress/support/directories.ts b/superset-frontend/cypress-base/cypress/support/directories.ts index 286f865444a..3c8e8eb3671 100644 --- a/superset-frontend/cypress-base/cypress/support/directories.ts +++ b/superset-frontend/cypress-base/cypress/support/directories.ts @@ -171,7 +171,7 @@ export const sqlLabView = { header: '[role=columnheader]', table: '.QueryTable', row: dataTestLocator('table-row'), - failureMarkIcon: '[aria-label=x-small]', + failureMarkIcon: '[aria-label=close]', successMarkIcon: '[aria-label=check]', }, }; @@ -252,7 +252,7 @@ export const datasetsList = { aceTextInput: '.ace_text-input', sourceSQLInput: '.ace_content', sourceVirtualSQLRadio: ':nth-child(2) > .ant-radio > .ant-radio-inner', - sourcePadlock: '[aria-label=lock-locked]', + sourcePadlock: '[aria-label=lock]', legacy: { panel: '.panel-body', sqlInput: '#sql', @@ -275,8 +275,8 @@ export const chartListView = { bulkSelect: dataTestLocator('bulk-select'), }, header: { - cardView: '[aria-label="card-view"]', - listView: '[aria-label="list-view"]', + cardView: '[aria-label="appstore"]', + listView: '[aria-label="unordered-list"]', sort: '[class="ant-select-selection-search-input"][aria-label="Sort"]', sortRecentlyModifiedMenuOption: '[label="Recently modified"]', sortAlphabeticalMenuOption: '[label="Alphabetical"]', @@ -286,8 +286,6 @@ export const chartListView = { card: dataTestLocator('styled-card'), cardCover: '[class="antd5-card-cover"]', cardImage: '[class="gradient-container"]', - selectedStarIcon: "[aria-label='favorite-selected']", - unselectedStarIcon: "[aria-label='favorite-unselected']", starIcon: dataTestLocator('fave-unfave-icon'), }, deleteModal: { @@ -330,7 +328,7 @@ export const nativeFilters = { filterItemsContainer: dataTestLocator('filter-title-container'), tabsContainer: '[class="ant-tabs-nav-list"]', tab: '.ant-tabs-tab', - removeTab: '[aria-label="trash"]', + removeTab: '[aria-label="delete"]', }, addFilter: dataTestLocator('add-filter-button'), defaultValueCheck: '.ant-checkbox-checked', @@ -375,7 +373,7 @@ export const nativeFilters = { listItemNotActive: '[class="ant-tabs-tab ant-tabs-tab-with-remove"]', listItemActive: '[class="ant-tabs-tab ant-tabs-tab-with-remove ant-tabs-tab-active"]', - removeIcon: '[aria-label="trash"]', + removeIcon: '[aria-label="delete"]', }, filterItem: dataTestLocator('form-item-value'), filterItemDropdown: '.ant-select-selection-search', @@ -402,8 +400,8 @@ export const dashboardListView = { card: dataTestLocator('styled-card'), cardCover: '[class="antd5-card-cover"]', cardImage: '[class="gradient-container"]', - selectedStarIcon: "[aria-label='favorite-selected']", - unselectedStarIcon: "[aria-label='favorite-unselected']", + selectedStarIcon: "[aria-label='star']", + unselectedStarIcon: "[aria-label='star']", starIcon: dataTestLocator('fave-unfave-icon'), }, deleteModal: { @@ -412,8 +410,8 @@ export const dashboardListView = { }, table: { starIcon: dataTestLocator('fave-unfave-icon'), - selectedStarIcon: "[aria-label='favorite-selected']", - unselectedStarIcon: "[aria-label='favorite-unselected']", + selectedStarIcon: "[aria-label='star']", + unselectedStarIcon: "[aria-label='star']", bulkSelect: { checkboxOff: '[aria-label="checkbox-off"]', checkboxOn: '[aria-label="checkbox-on"]', @@ -438,8 +436,8 @@ export const dashboardListView = { importButton: dataTestLocator('modal-confirm-button'), }, header: { - cardView: '[aria-label="card-view"]', - listView: '[aria-label="list-view"]', + cardView: '[aria-label="appstore"]', + listView: '[aria-label="unordered-list"]', sort: dataTestLocator('sort-header'), sortDropdown: '.Select__menu', statusFilterInput: `${dataTestLocator( @@ -503,7 +501,7 @@ export const exploreView = { optionField: dataTestLocator('option-label'), fieldInput: '.Select__control input', removeFieldValue: dataTestLocator('remove-control-button'), - addFieldValue: '[aria-label="plus-small"]', + addFieldValue: '[aria-label="plus"]', vizType: dataTestLocator('visualization-type'), runButton: dataTestLocator('run-query-button'), saveQuery: dataTestLocator('query-save-button'), diff --git a/superset-frontend/cypress-base/cypress/utils/index.ts b/superset-frontend/cypress-base/cypress/utils/index.ts index 6b6f444b842..2c8255ee6e2 100644 --- a/superset-frontend/cypress-base/cypress/utils/index.ts +++ b/superset-frontend/cypress-base/cypress/utils/index.ts @@ -25,8 +25,14 @@ export interface ChartSpec { viz: string; } +const viewTypeIcons = { + card: 'appstore', + list: 'unordered-list', +}; + export function setGridMode(type: 'card' | 'list') { - cy.get(`[aria-label="${type}-view"]`).click(); + const icon = viewTypeIcons[type]; + cy.get(`[aria-label="${icon}"]`).click(); } export function toggleBulkSelect() { diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnTypeLabel/ColumnTypeLabel.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnTypeLabel/ColumnTypeLabel.tsx index 6c655d330a8..129449912a8 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnTypeLabel/ColumnTypeLabel.tsx +++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnTypeLabel/ColumnTypeLabel.tsx @@ -19,12 +19,14 @@ */ import { ReactNode } from 'react'; import { css, GenericDataType, styled, t } from '@superset-ui/core'; -import { ClockCircleOutlined, QuestionOutlined } from '@ant-design/icons'; -// TODO: move all icons to superset-ui/core -import FunctionSvg from './type-icons/field_derived.svg'; -import BooleanSvg from './type-icons/field_boolean.svg'; -import StringSvg from './type-icons/field_abc.svg'; -import NumSvg from './type-icons/field_num.svg'; +import { + ClockCircleOutlined, + QuestionOutlined, + FunctionOutlined, + FieldBinaryOutlined, + FieldStringOutlined, + NumberOutlined, +} from '@ant-design/icons'; export type ColumnLabelExtendedType = 'expression' | ''; @@ -56,13 +58,13 @@ export function ColumnTypeLabel({ type }: ColumnTypeLabelProps) { ); if (type === '' || type === 'expression') { - typeIcon = ; + typeIcon = ; } else if (type === GenericDataType.String) { - typeIcon = ; + typeIcon = ; } else if (type === GenericDataType.Numeric) { - typeIcon = ; + typeIcon = ; } else if (type === GenericDataType.Boolean) { - typeIcon = ; + typeIcon = ; } else if (type === GenericDataType.Temporal) { typeIcon = ; } diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlSubSectionHeader.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlSubSectionHeader.tsx index 731b34b6af5..676028b4530 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlSubSectionHeader.tsx +++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlSubSectionHeader.tsx @@ -16,11 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -import { styled } from '@superset-ui/core'; +import { styled, css } from '@superset-ui/core'; export const ControlSubSectionHeader = styled.div` - font-weight: ${({ theme }) => theme.typography.weights.bold}; - font-size: ${({ theme }) => theme.typography.sizes.s}; - margin-bottom: ${({ theme }) => theme.gridUnit}px; + ${({ theme }) => css` + font-weight: ${theme.typography.weights.bold}; + font-size: ${theme.typography.sizes.s}; + margin-bottom: ${theme.gridUnit}px; + `} `; export default ControlSubSectionHeader; diff --git a/superset-frontend/spec/helpers/shim.tsx b/superset-frontend/spec/helpers/shim.tsx index a25e094a29a..151351c2aef 100644 --- a/superset-frontend/spec/helpers/shim.tsx +++ b/superset-frontend/spec/helpers/shim.tsx @@ -111,13 +111,22 @@ jest.mock('src/components/Icons/Icon', () => ({ /> ), StyledIcon: ({ + component: Component, role, 'aria-label': ariaLabel, ...rest }: { + component: React.ComponentType; role: string; 'aria-label': AriaAttributes['aria-label']; - }) => , + }) => ( + + ), })); process.env.WEBPACK_MODE = 'test'; diff --git a/superset-frontend/src/SqlLab/components/QueryLimitSelect/index.tsx b/superset-frontend/src/SqlLab/components/QueryLimitSelect/index.tsx index ce9cb2b06d2..696310fce93 100644 --- a/superset-frontend/src/SqlLab/components/QueryLimitSelect/index.tsx +++ b/superset-frontend/src/SqlLab/components/QueryLimitSelect/index.tsx @@ -17,7 +17,7 @@ * under the License. */ import { useDispatch } from 'react-redux'; -import { useTheme, t } from '@superset-ui/core'; +import { t } from '@superset-ui/core'; import { Dropdown } from 'src/components/Dropdown'; import { Menu } from 'src/components/Menu'; import Icons from 'src/components/Icons'; @@ -64,7 +64,6 @@ const QueryLimitSelect = ({ maxRow, defaultQueryLimit, }: QueryLimitSelectProps) => { - const theme = useTheme(); const dispatch = useDispatch(); const queryEditor = useQueryEditor(queryEditorId, ['id', 'queryLimit']); @@ -82,7 +81,7 @@ const QueryLimitSelect = ({ {convertToNumWithSpaces(queryLimit)} - + ); diff --git a/superset-frontend/src/SqlLab/components/QueryTable/index.tsx b/superset-frontend/src/SqlLab/components/QueryTable/index.tsx index 4fa44ff4978..c120d51446c 100644 --- a/superset-frontend/src/SqlLab/components/QueryTable/index.tsx +++ b/superset-frontend/src/SqlLab/components/QueryTable/index.tsx @@ -40,7 +40,7 @@ import ModalTrigger from 'src/components/ModalTrigger'; import { UserWithPermissionsAndRoles as User } from 'src/types/bootstrapTypes'; import ResultSet from '../ResultSet'; import HighlightedSql from '../HighlightedSql'; -import { StaticPosition, verticalAlign, StyledTooltip } from './styles'; +import { StaticPosition, StyledTooltip } from './styles'; interface QueryTableQuery extends Omit< @@ -188,7 +188,10 @@ const QueryTable = ({ timed_out: { config: { icon: ( - + ), label: t('Offline'), }, @@ -277,9 +280,7 @@ const QueryTable = ({ buttonStyle="link" onClick={() => openQuery(q.queryId)} > - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + {t('Edit')} ); @@ -344,7 +345,7 @@ const QueryTable = ({ placement="top" className="pointer" > - + openQueryInNewTab(query)} @@ -352,7 +353,7 @@ const QueryTable = ({ placement="top" className="pointer" > - + {q.id !== latestQueryId && ( dispatch(removeQuery(query))} className="pointer" > - + )} diff --git a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx index fb375260e45..4d6d4ee6c1d 100644 --- a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx +++ b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx @@ -150,6 +150,15 @@ const ResultSetButtons = styled.div` padding-right: ${({ theme }) => 2 * theme.gridUnit}px; `; +const copyButtonStyles = css` + &:hover { + text-decoration: unset; + } + span > :first-of-type { + margin: 0px; + } +`; + const ROWS_CHIP_WIDTH = 100; const GAP = 8; @@ -342,6 +351,7 @@ const ResultSet = ({ )} {csv && canExportData && ( )} @@ -373,12 +385,15 @@ const ResultSet = ({ wrapped={false} copyNode={ } hideTooltip diff --git a/superset-frontend/src/SqlLab/components/RunQueryActionButton/index.tsx b/superset-frontend/src/SqlLab/components/RunQueryActionButton/index.tsx index 97d024407bf..815a4056632 100644 --- a/superset-frontend/src/SqlLab/components/RunQueryActionButton/index.tsx +++ b/superset-frontend/src/SqlLab/components/RunQueryActionButton/index.tsx @@ -18,7 +18,7 @@ */ import { useMemo, FC, ReactElement } from 'react'; -import { t, styled, useTheme } from '@superset-ui/core'; +import { t, styled, useTheme, SupersetTheme } from '@superset-ui/core'; import Button from 'src/components/Button'; import Icons from 'src/components/Icons'; @@ -44,13 +44,13 @@ export interface RunQueryActionButtonProps { const buildText = ( shouldShowStopButton: boolean, selectedText: string | undefined, + theme: SupersetTheme, ): string | JSX.Element => { if (shouldShowStopButton) { return ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Stop')} + + {t('Stop')} ); } @@ -150,13 +150,12 @@ const RunQueryActionButton = ({ ? { overlay: overlayCreateAsMenu, icon: ( - ), trigger: 'click', @@ -165,7 +164,7 @@ const RunQueryActionButton = ({ buttonStyle: shouldShowStopBtn ? 'warning' : 'primary', })} > - {buildText(shouldShowStopBtn, selectedText)} + {buildText(shouldShowStopBtn, selectedText, theme)} ); diff --git a/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/SaveDatasetActionButton.test.tsx b/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/SaveDatasetActionButton.test.tsx index 2258d7a45db..f5283dfd1e3 100644 --- a/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/SaveDatasetActionButton.test.tsx +++ b/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/SaveDatasetActionButton.test.tsx @@ -36,7 +36,7 @@ describe('SaveDatasetActionButton', () => { ); const saveBtn = screen.getByRole('button', { name: /save/i }); - const caretBtn = screen.getByRole('button', { name: /caret-down/i }); + const caretBtn = screen.getByRole('button', { name: /down/i }); expect( await screen.findByRole('button', { name: /save/i }), @@ -53,9 +53,9 @@ describe('SaveDatasetActionButton', () => { />, ); - const caretBtn = screen.getByRole('button', { name: /caret-down/i }); + const caretBtn = screen.getByRole('button', { name: /down/i }); expect( - await screen.findByRole('button', { name: /caret-down/i }), + await screen.findByRole('button', { name: /down/i }), ).toBeInTheDocument(); userEvent.click(caretBtn); diff --git a/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/index.tsx b/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/index.tsx index 6cb17bc2b4f..4b0eab7be46 100644 --- a/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/index.tsx +++ b/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/index.tsx @@ -41,9 +41,9 @@ const SaveDatasetActionButton = ({ onClick={() => setShowSave(true)} dropdownRender={() => overlayMenu} icon={ - } trigger={['click']} diff --git a/superset-frontend/src/SqlLab/components/SaveQuery/SaveQuery.test.tsx b/superset-frontend/src/SqlLab/components/SaveQuery/SaveQuery.test.tsx index a499ed2e01c..6c5e8346593 100644 --- a/superset-frontend/src/SqlLab/components/SaveQuery/SaveQuery.test.tsx +++ b/superset-frontend/src/SqlLab/components/SaveQuery/SaveQuery.test.tsx @@ -179,7 +179,7 @@ describe('SavedQuery', () => { await waitFor(() => { const saveBtn = screen.getByRole('button', { name: /save/i }); - const caretBtn = screen.getByRole('button', { name: /caret-down/i }); + const caretBtn = screen.getByRole('button', { name: /down/i }); expect(saveBtn).toBeVisible(); expect(caretBtn).toBeVisible(); @@ -192,7 +192,9 @@ describe('SavedQuery', () => { store: mockStore(mockState), }); - const caretBtn = await screen.findByRole('button', { name: /caret-down/i }); + const caretBtn = await screen.findByRole('button', { + name: /down/i, + }); userEvent.click(caretBtn); const saveDatasetMenuItem = await screen.findByText(/save dataset/i); @@ -209,7 +211,9 @@ describe('SavedQuery', () => { store: mockStore(mockState), }); - const caretBtn = await screen.findByRole('button', { name: /caret-down/i }); + const caretBtn = await screen.findByRole('button', { + name: /down/i, + }); userEvent.click(caretBtn); const saveDatasetMenuItem = await screen.findByText(/save dataset/i); diff --git a/superset-frontend/src/SqlLab/components/SaveQuery/index.tsx b/superset-frontend/src/SqlLab/components/SaveQuery/index.tsx index dbebf6d9b40..91ad7ed4531 100644 --- a/superset-frontend/src/SqlLab/components/SaveQuery/index.tsx +++ b/superset-frontend/src/SqlLab/components/SaveQuery/index.tsx @@ -57,7 +57,7 @@ export type QueryPayload = { } & Pick; const Styles = styled.span` - span[role='img'] { + span[role='img']:not([aria-label='down']) { display: flex; margin: 0; color: ${({ theme }) => theme.colors.grayscale.base}; diff --git a/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/index.tsx b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/index.tsx index 988b96b51bd..0216078e0db 100644 --- a/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/index.tsx +++ b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/index.tsx @@ -17,11 +17,11 @@ * under the License. */ import { - styled, t, useTheme, getClientErrorObject, SupersetClient, + css, } from '@superset-ui/core'; import Button from 'src/components/Button'; import Icons from 'src/components/Icons'; @@ -36,16 +36,6 @@ interface ShareSqlLabQueryProps { addDangerToast: (msg: string) => void; } -const StyledIcon = styled(Icons.Link)` - &:first-of-type { - margin: 0; - display: flex; - svg { - margin: 0; - } - } -`; - const ShareSqlLabQuery = ({ queryEditorId, addDangerToast, @@ -85,8 +75,19 @@ const ShareSqlLabQuery = ({ const buildButton = () => { const tooltip = t('Copy query link to your clipboard'); return ( - ); diff --git a/superset-frontend/src/SqlLab/components/ShowSQL/index.tsx b/superset-frontend/src/SqlLab/components/ShowSQL/index.tsx index 4ae6f3b0eda..525baa7b0b3 100644 --- a/superset-frontend/src/SqlLab/components/ShowSQL/index.tsx +++ b/superset-frontend/src/SqlLab/components/ShowSQL/index.tsx @@ -21,6 +21,7 @@ import sql from 'react-syntax-highlighter/dist/cjs/languages/hljs/sql'; import github from 'react-syntax-highlighter/dist/cjs/styles/hljs/github'; import { IconTooltip } from 'src/components/IconTooltip'; import ModalTrigger from 'src/components/ModalTrigger'; +import Icons from 'src/components/Icons'; SyntaxHighlighter.registerLanguage('sql', sql); @@ -42,10 +43,9 @@ export default function ShowSQL({ modalTitle={title} triggerNode={ triggerNode || ( - + + + ) } modalBody={ diff --git a/superset-frontend/src/SqlLab/components/SouthPane/index.tsx b/superset-frontend/src/SqlLab/components/SouthPane/index.tsx index fe929cb0801..7ddf8f2b077 100644 --- a/superset-frontend/src/SqlLab/components/SouthPane/index.tsx +++ b/superset-frontend/src/SqlLab/components/SouthPane/index.tsx @@ -20,7 +20,7 @@ import { createRef, useCallback, useMemo } from 'react'; import { shallowEqual, useDispatch, useSelector } from 'react-redux'; import { nanoid } from 'nanoid'; import Tabs from 'src/components/Tabs'; -import { css, styled, t } from '@superset-ui/core'; +import { css, styled, t, useTheme } from '@superset-ui/core'; import { removeTables, setActiveSouthPaneTab } from 'src/SqlLab/actions/sqlLab'; @@ -91,6 +91,7 @@ const SouthPane = ({ displayLimit, defaultQueryLimit, }: SouthPaneProps) => { + const theme = useTheme(); const dispatch = useDispatch(); const { offline, tables } = useSelector( ({ sqlLab: { offline, tables } }: SqlLabRootState) => ({ @@ -180,11 +181,11 @@ const SouthPane = ({ - {`${schema}.${decodeURIComponent(name)}`} diff --git a/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx b/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx index 9bca4d0aaff..88646a67721 100644 --- a/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx +++ b/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx @@ -874,7 +874,7 @@ const SqlEditor: FC = ({ trigger={['click']} > diff --git a/superset-frontend/src/SqlLab/components/SqlEditorTabHeader/index.tsx b/superset-frontend/src/SqlLab/components/SqlEditorTabHeader/index.tsx index adc09ea63a2..77a9338ab4c 100644 --- a/superset-frontend/src/SqlLab/components/SqlEditorTabHeader/index.tsx +++ b/superset-frontend/src/SqlLab/components/SqlEditorTabHeader/index.tsx @@ -22,7 +22,14 @@ import { bindActionCreators } from 'redux'; import { useSelector, useDispatch, shallowEqual } from 'react-redux'; import { MenuDotsDropdown } from 'src/components/Dropdown'; import { Menu } from 'src/components/Menu'; -import { styled, t, QueryState } from '@superset-ui/core'; +import { + styled, + css, + t, + QueryState, + SupersetTheme, + useTheme, +} from '@superset-ui/core'; import { removeQueryEditor, removeAllOtherQueryEditors, @@ -31,11 +38,16 @@ import { toggleLeftBar, } from 'src/SqlLab/actions/sqlLab'; import { QueryEditor, SqlLabRootState } from 'src/SqlLab/types'; -import TabStatusIcon from '../TabStatusIcon'; +import Icons, { IconType } from 'src/components/Icons'; const TabTitleWrapper = styled.div` display: flex; align-items: center; + + [aria-label='check-circle'], + .status-icon { + margin: 0px; + } `; const TabTitle = styled.span` margin-right: ${({ theme }) => theme.gridUnit * 2}px; @@ -43,16 +55,29 @@ const TabTitle = styled.span` `; const IconContainer = styled.div` - display: inline-block; - width: ${({ theme }) => theme.gridUnit * 8}px; - text-align: center; + ${({ theme }) => css` + display: inline-block; + margin: 0 ${theme.gridUnit * 2}px 0 0px; + `} `; - interface Props { queryEditor: QueryEditor; } +const STATE_ICONS: Record> = { + started: Icons.CircleSolid, + stopped: Icons.StopOutlined, + pending: Icons.CircleSolid, + scheduled: Icons.CalendarOutlined, + fetching: Icons.CircleSolid, + timedOut: Icons.FieldTimeOutlined, + running: Icons.CircleSolid, + success: Icons.CheckCircleOutlined, + failed: Icons.CloseCircleOutlined, +}; + const SqlEditorTabHeader: FC = ({ queryEditor }) => { + const theme = useTheme(); const qe = useSelector( ({ sqlLab: { unsavedQueryEditor } }) => ({ ...queryEditor, @@ -63,6 +88,8 @@ const SqlEditorTabHeader: FC = ({ queryEditor }) => { const queryState = useSelector( ({ sqlLab }) => sqlLab.queries[qe.latestQueryId || '']?.state || '', ); + const StatusIcon = queryState ? STATE_ICONS[queryState] : STATE_ICONS.running; + const dispatch = useDispatch(); const actions = useMemo( () => @@ -85,7 +112,21 @@ const SqlEditorTabHeader: FC = ({ queryEditor }) => { actions.queryEditorSetTitle(qe, newTitle, qe.id); } } + const getStatusColor = (state: QueryState, theme: SupersetTheme): string => { + const statusColors: Record = { + [QueryState.Running]: theme.colors.info.base, + [QueryState.Success]: theme.colors.success.base, + [QueryState.Failed]: theme.colors.error.base, + [QueryState.Started]: theme.colors.primary.base, + [QueryState.Stopped]: theme.colors.warning.base, + [QueryState.Pending]: theme.colors.grayscale.light1, + [QueryState.Scheduled]: theme.colors.grayscale.light2, + [QueryState.Fetching]: theme.colors.secondary.base, + [QueryState.TimedOut]: theme.colors.error.dark1, + }; + return statusColors[state] || theme.colors.grayscale.light2; + }; return ( = ({ queryEditor }) => { data-test="close-tab-menu-option" > - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + {t('Close tab')} @@ -111,9 +155,12 @@ const SqlEditorTabHeader: FC = ({ queryEditor }) => { data-test="rename-tab-menu-option" > - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + {t('Rename tab')} @@ -123,9 +170,12 @@ const SqlEditorTabHeader: FC = ({ queryEditor }) => { data-test="toggle-menu-option" > - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + {qe.hideLeftBar ? t('Expand tool bar') : t('Hide tool bar')} @@ -135,9 +185,12 @@ const SqlEditorTabHeader: FC = ({ queryEditor }) => { data-test="close-all-other-menu-option" > - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + {t('Close all other tabs')} @@ -147,17 +200,24 @@ const SqlEditorTabHeader: FC = ({ queryEditor }) => { data-test="clone-tab-menu-option" > - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + {t('Duplicate tab')} } /> - {qe.name}{' '} - {' '} + {qe.name} + ); }; diff --git a/superset-frontend/src/SqlLab/components/TabStatusIcon/TabStatusIcon.test.tsx b/superset-frontend/src/SqlLab/components/TabStatusIcon/TabStatusIcon.test.tsx deleted file mode 100644 index ce53f9f3c34..00000000000 --- a/superset-frontend/src/SqlLab/components/TabStatusIcon/TabStatusIcon.test.tsx +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -import { QueryState } from '@superset-ui/core'; - -import { render } from 'spec/helpers/testing-library'; -import TabStatusIcon from 'src/SqlLab/components/TabStatusIcon'; - -function setup() { - return render(); -} - -describe('TabStatusIcon', () => { - it('renders a circle without an x when hovered', () => { - const { container } = setup(); - expect(container.getElementsByClassName('circle')[0]).toBeInTheDocument(); - expect( - container.getElementsByClassName('circle')[0]?.textContent ?? 'undefined', - ).toBe(''); - }); -}); diff --git a/superset-frontend/src/SqlLab/components/TabStatusIcon/index.tsx b/superset-frontend/src/SqlLab/components/TabStatusIcon/index.tsx deleted file mode 100644 index da069d6cffb..00000000000 --- a/superset-frontend/src/SqlLab/components/TabStatusIcon/index.tsx +++ /dev/null @@ -1,78 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -import { FC } from 'react'; -import { css, QueryState, styled } from '@superset-ui/core'; -import Icons, { IconType } from 'src/components/Icons'; - -const IconContainer = styled.span` - position: absolute; - top: -6px; - left: 1px; -`; - -const Circle = styled.div` - ${({ theme }) => css` - border-radius: 50%; - width: ${theme.gridUnit * 3}px; - height: ${theme.gridUnit * 3}px; - - display: inline-block; - background-color: ${theme.colors.grayscale.light2}; - text-align: center; - vertical-align: middle; - font-size: ${theme.typography.sizes.m}px; - font-weight: ${theme.typography.weights.bold}; - color: ${theme.colors.grayscale.light5}; - position: relative; - - &.running { - background-color: ${theme.colors.info.base}; - } - - &.success { - background-color: ${theme.colors.success.base}; - } - - &.failed { - background-color: ${theme.colors.error.base}; - } - `} -`; - -interface TabStatusIconProps { - tabState: QueryState; -} - -const STATE_ICONS: Record> = { - success: Icons.Check, - failed: Icons.CancelX, -}; - -export default function TabStatusIcon({ tabState }: TabStatusIconProps) { - const StatusIcon = STATE_ICONS[tabState]; - return ( - - {StatusIcon && ( - - - - )} - - ); -} diff --git a/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx index 21a9c8a97d0..272ca6b5677 100644 --- a/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx +++ b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx @@ -22,7 +22,13 @@ import { EditableTabs } from 'src/components/Tabs'; import { connect } from 'react-redux'; import URI from 'urijs'; import type { QueryEditor, SqlLabRootState } from 'src/SqlLab/types'; -import { FeatureFlag, styled, t, isFeatureEnabled } from '@superset-ui/core'; +import { + FeatureFlag, + styled, + t, + isFeatureEnabled, + css, +} from '@superset-ui/core'; import { Logger } from 'src/logger/LogUtils'; import { Tooltip } from 'src/components/Tooltip'; import { detectOS } from 'src/utils/common'; @@ -30,6 +36,7 @@ import * as Actions from 'src/SqlLab/actions/sqlLab'; import { EmptyState } from 'src/components/EmptyState'; import getBootstrapData from 'src/utils/getBootstrapData'; import { locationContext } from 'src/pages/SqlLab/LocationContext'; +import Icons from 'src/components/Icons'; import SqlEditor from '../SqlEditor'; import SqlEditorTabHeader from '../SqlEditorTabHeader'; @@ -247,9 +254,13 @@ class TabbedSqlEditors extends PureComponent { : t('New tab (Ctrl + t)') } > - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + ); @@ -291,9 +302,13 @@ class TabbedSqlEditors extends PureComponent { : t('New tab (Ctrl + t)') } > - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + } > diff --git a/superset-frontend/src/SqlLab/components/TableElement/index.tsx b/superset-frontend/src/SqlLab/components/TableElement/index.tsx index f65229fd6fa..8185448ba0d 100644 --- a/superset-frontend/src/SqlLab/components/TableElement/index.tsx +++ b/superset-frontend/src/SqlLab/components/TableElement/index.tsx @@ -45,6 +45,7 @@ import ModalTrigger from 'src/components/ModalTrigger'; import Loading from 'src/components/Loading'; import useEffectEvent from 'src/hooks/useEffectEvent'; import { ActionType } from 'src/types/Action'; +import Icons from 'src/components/Icons'; import ColumnElement, { ColumnKeyTypeType } from '../ColumnElement'; import ShowSQL from '../ShowSQL'; @@ -202,7 +203,7 @@ const TableElement = ({ table, ...props }: TableElementProps) => { text={partitionQuery} shouldShowText={false} tooltipText={tt} - copyNode={} + copyNode={} /> ); } @@ -259,9 +260,11 @@ const TableElement = ({ table, ...props }: TableElementProps) => { ))} triggerNode={ + > + + } /> ); @@ -279,10 +282,15 @@ const TableElement = ({ table, ...props }: TableElementProps) => { `} > + > + + {keyLink} { aria-label="Copy" tooltip={t('Copy SELECT statement to the clipboard')} > - + } text={tableData.selectStar} @@ -318,10 +330,16 @@ const TableElement = ({ table, ...props }: TableElementProps) => { /> )} + > + + ); }; diff --git a/superset-frontend/src/SqlLab/components/TablePreview/index.tsx b/superset-frontend/src/SqlLab/components/TablePreview/index.tsx index 5ed54874e58..20fb6b7bc00 100644 --- a/superset-frontend/src/SqlLab/components/TablePreview/index.tsx +++ b/superset-frontend/src/SqlLab/components/TablePreview/index.tsx @@ -65,17 +65,17 @@ const MENUS = [ { key: 'refresh-table', label: t('Refresh table schema'), - icon: , + icon: , }, { key: 'copy-select-statement', label: t('Copy SELECT statement'), - icon: , + icon: , }, { key: 'show-create-view-statement', label: t('Show CREATE VIEW statement'), - icon: , + icon: , }, ]; const TAB_HEADER_HEIGHT = 80; @@ -104,7 +104,7 @@ const renderWell = (partitions: TableMetaData['partitions']) => { text={partitionQuery} shouldShowText={false} tooltipText={tt} - copyNode={} + copyNode={} /> ); } @@ -306,7 +306,7 @@ const TablePreview: FC = ({ dbId, catalog, schema, tableName }) => { )} - <Icons.Table iconSize="l" /> + <Icons.InsertRowAboveOutlined iconSize="l" /> {tableName} <Dropdown dropdownRender={() => ( diff --git a/superset-frontend/src/assets/images/icons/alert.svg b/superset-frontend/src/assets/images/icons/alert.svg deleted file mode 100644 index 71638ce70fb..00000000000 --- a/superset-frontend/src/assets/images/icons/alert.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12.0005 16C11.4482 16 11.0005 16.4477 11.0005 17C11.0005 17.5523 11.4482 18 12.0005 18C12.5527 18 13.0005 17.5523 13.0005 17C13.0005 16.4477 12.5527 16 12.0005 16ZM22.6705 17.47L14.6205 3.47C14.0906 2.52009 13.0881 1.93137 12.0005 1.93137C10.9128 1.93137 9.91029 2.52009 9.38046 3.47L1.38046 17.47C0.832506 18.3941 0.820562 19.5407 1.34914 20.4761C1.87772 21.4114 2.86612 21.9927 3.94046 22H20.0605C21.1437 22.0107 22.1486 21.4365 22.6894 20.4978C23.2303 19.5592 23.223 18.4018 22.6705 17.47ZM20.9405 19.47C20.7619 19.7876 20.4248 19.983 20.0605 19.98H3.94046C3.57612 19.983 3.23898 19.7876 3.06046 19.47C2.88182 19.1606 2.88182 18.7794 3.06046 18.47L11.0605 4.47C11.2316 4.13603 11.5752 3.92596 11.9505 3.92596C12.3257 3.92596 12.6694 4.13603 12.8405 4.47L20.8905 18.47C21.0926 18.7752 21.1117 19.1665 20.9405 19.49V19.47ZM12.0005 8C11.4482 8 11.0005 8.44772 11.0005 9V13C11.0005 13.5523 11.4482 14 12.0005 14C12.5527 14 13.0005 13.5523 13.0005 13V9C13.0005 8.44772 12.5527 8 12.0005 8Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/alert_solid.svg b/superset-frontend/src/assets/images/icons/alert_solid.svg deleted file mode 100644 index a7f1551c3f8..00000000000 --- a/superset-frontend/src/assets/images/icons/alert_solid.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M22.6705 17.47L14.6205 3.47C14.0906 2.52009 13.0881 1.93137 12.0005 1.93137C10.9128 1.93137 9.91029 2.52009 9.38046 3.47L1.38046 17.47C0.832506 18.3941 0.820562 19.5407 1.34914 20.476C1.87772 21.4114 2.86612 21.9927 3.94046 22H20.0605C21.1437 22.0107 22.1486 21.4365 22.6894 20.4978C23.2303 19.5591 23.223 18.4018 22.6705 17.47Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M11 9C11 8.44772 11.4477 8 12 8C12.5523 8 13 8.44772 13 9V13C13 13.5523 12.5523 14 12 14C11.4477 14 11 13.5523 11 13V9ZM11 17C11 16.4477 11.4477 16 12 16C12.5523 16 13 16.4477 13 17C13 17.5523 12.5523 18 12 18C11.4477 18 11 17.5523 11 17Z" fill="white"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/alert_solid_small.svg b/superset-frontend/src/assets/images/icons/alert_solid_small.svg deleted file mode 100644 index b590be2a0e6..00000000000 --- a/superset-frontend/src/assets/images/icons/alert_solid_small.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M17.345929226875306,14.745929226875305 L13.320909226875305,7.7459292268753055 C13.055999226875306,7.270969226875306 12.554749226875305,6.9766122268753055 12.010909226875306,6.9766122268753055 C11.467069226875305,6.9766122268753055 10.965829226875307,7.270969226875306 10.700909226875304,7.7459292268753055 L6.700913226875306,14.745929226875305 C6.426938226875307,15.207989226875306 6.420966226875306,15.781289226875305 6.685256226875307,16.248929226875305 C6.949546226875305,16.716629226875305 7.443749226875305,17.007229226875303 7.980909226875305,17.010929226875305 H16.040929226875306 C16.582529226875305,17.016229226875307 17.085029226875307,16.729129226875305 17.355429226875305,16.259829226875304 C17.625829226875304,15.790499226875305 17.622229226875305,15.211839226875306 17.345929226875306,14.745929226875305 z" fill="currentColor" /> -<path fill-rule="evenodd" clip-rule="evenodd" d="M11.510929226875305,10.510929226875305 C11.510929226875305,10.234789226875305 11.734789226875307,10.010929226875307 12.010929226875305,10.010929226875307 C12.287069226875303,10.010929226875307 12.510929226875305,10.234789226875305 12.510929226875305,10.510929226875305 V12.510929226875305 C12.510929226875305,12.787069226875305 12.287069226875303,13.010929226875307 12.010929226875305,13.010929226875307 C11.734789226875307,13.010929226875307 11.510929226875305,12.787069226875305 11.510929226875305,12.510929226875305 V10.510929226875305 zM11.510929226875305,14.510929226875305 C11.510929226875305,14.234789226875305 11.734789226875307,14.010929226875307 12.010929226875305,14.010929226875307 C12.287069226875303,14.010929226875307 12.510929226875305,14.234789226875305 12.510929226875305,14.510929226875305 C12.510929226875305,14.787069226875305 12.287069226875303,15.010929226875307 12.010929226875305,15.010929226875307 C11.734789226875307,15.010929226875307 11.510929226875305,14.787069226875305 11.510929226875305,14.510929226875305 z" fill="white" /> -</svg> diff --git a/superset-frontend/src/assets/images/icons/area-chart-tile.svg b/superset-frontend/src/assets/images/icons/area-chart-tile.svg deleted file mode 100644 index dbd747d5e5a..00000000000 --- a/superset-frontend/src/assets/images/icons/area-chart-tile.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path d="M18.7145 17.0006H6.42878V5.8577C6.42878 5.77913 6.3645 5.71484 6.28592 5.71484H5.28592C5.20735 5.71484 5.14307 5.77913 5.14307 5.8577V18.1434C5.14307 18.222 5.20735 18.2863 5.28592 18.2863H18.7145C18.7931 18.2863 18.8574 18.222 18.8574 18.1434V17.1434C18.8574 17.0648 18.7931 17.0006 18.7145 17.0006ZM7.7145 15.8577H17.2859C17.3645 15.8577 17.4288 15.7934 17.4288 15.7148V7.92913C17.4288 7.80056 17.2734 7.73806 17.1841 7.82734L13.4288 11.5827L11.1895 9.36842C11.1626 9.34183 11.1264 9.32692 11.0886 9.32692C11.0508 9.32692 11.0146 9.34183 10.9877 9.36842L7.61271 12.7541C7.5996 12.7673 7.58922 12.7829 7.58217 12.8C7.57512 12.8172 7.57154 12.8356 7.57164 12.8541V15.7148C7.57164 15.7934 7.63592 15.8577 7.7145 15.8577Z" fill="#666666"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/bar-chart-tile.svg b/superset-frontend/src/assets/images/icons/bar-chart-tile.svg deleted file mode 100644 index a3aaa6fdd90..00000000000 --- a/superset-frontend/src/assets/images/icons/bar-chart-tile.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path d="M19.5475 17.0006H7.26179V5.8577C7.26179 5.77913 7.1975 5.71484 7.11893 5.71484H6.11893C6.04036 5.71484 5.97607 5.77913 5.97607 5.8577V18.1434C5.97607 18.222 6.04036 18.2863 6.11893 18.2863H19.5475C19.6261 18.2863 19.6904 18.222 19.6904 18.1434V17.1434C19.6904 17.0648 19.6261 17.0006 19.5475 17.0006ZM8.83322 15.572H9.83322C9.91179 15.572 9.97608 15.5077 9.97608 15.4291V12.8577C9.97608 12.7791 9.91179 12.7148 9.83322 12.7148H8.83322C8.75465 12.7148 8.69036 12.7791 8.69036 12.8577V15.4291C8.69036 15.5077 8.75465 15.572 8.83322 15.572ZM11.5475 15.572H12.5475C12.6261 15.572 12.6904 15.5077 12.6904 15.4291V9.71484C12.6904 9.63627 12.6261 9.57199 12.5475 9.57199H11.5475C11.4689 9.57199 11.4046 9.63627 11.4046 9.71484V15.4291C11.4046 15.5077 11.4689 15.572 11.5475 15.572ZM14.2618 15.572H15.2618C15.3404 15.572 15.4046 15.5077 15.4046 15.4291V11.1077C15.4046 11.0291 15.3404 10.9648 15.2618 10.9648H14.2618C14.1832 10.9648 14.1189 11.0291 14.1189 11.1077V15.4291C14.1189 15.5077 14.1832 15.572 14.2618 15.572ZM16.9761 15.572H17.9761C18.0546 15.572 18.1189 15.5077 18.1189 15.4291V8.28627C18.1189 8.2077 18.0546 8.14341 17.9761 8.14341H16.9761C16.8975 8.14341 16.8332 8.2077 16.8332 8.28627V15.4291C16.8332 15.5077 16.8975 15.572 16.9761 15.572Z" fill="#666666"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/bolt.svg b/superset-frontend/src/assets/images/icons/bolt.svg deleted file mode 100644 index be1d7133ab0..00000000000 --- a/superset-frontend/src/assets/images/icons/bolt.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M19.8894 10.55C19.7199 10.2137 19.3759 10.0011 18.9994 9.99999H13.9994V3.99999C14.0214 3.54913 13.7387 3.13938 13.3094 2.99999C12.8975 2.86447 12.4452 3.00985 12.1894 3.35999L4.18938 14.36C3.98535 14.6549 3.95482 15.0364 4.10938 15.36C4.25227 15.7314 4.60179 15.9828 4.99938 16H9.99938V22C9.99969 22.4326 10.2781 22.8159 10.6894 22.95C10.7898 22.9811 10.8942 22.998 10.9994 23C11.3194 23.0008 11.6205 22.8484 11.8094 22.59L19.8094 11.59C20.029 11.2858 20.0599 10.8842 19.8894 10.55ZM11.9994 18.92V15C11.9994 14.4477 11.5517 14 10.9994 14H6.99938L11.9994 7.07999V11C11.9994 11.5523 12.4471 12 12.9994 12H16.9994L11.9994 18.92Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/bolt_small.svg b/superset-frontend/src/assets/images/icons/bolt_small.svg deleted file mode 100644 index 0f56c10267c..00000000000 --- a/superset-frontend/src/assets/images/icons/bolt_small.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M15.9453 10.7906C15.8605 10.6229 15.6884 10.5168 15.4999 10.5163H12.9979V7.52377C13.0089 7.2989 12.8675 7.09454 12.6526 7.02502C12.4465 6.95743 12.2202 7.02994 12.0922 7.20457L8.0889 12.6908C7.9868 12.8379 7.97153 13.0282 8.04887 13.1896C8.12037 13.3748 8.29528 13.5002 8.49423 13.5088H10.9963V16.5012C10.9964 16.717 11.1358 16.9082 11.3416 16.9751C11.3918 16.9906 11.4441 16.999 11.4967 17C11.6568 17.0004 11.8075 16.9244 11.902 16.7955L15.9053 11.3093C16.0152 11.1576 16.0307 10.9573 15.9453 10.7906ZM11.9963 14.9698L11.9963 13.5088V12.5088H9.45937L11.9985 9.02933L11.9979 10.5163V11.5163H14.5163L11.9963 14.9698Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/bolt_small_run.svg b/superset-frontend/src/assets/images/icons/bolt_small_run.svg deleted file mode 100644 index 3690ab1c72f..00000000000 --- a/superset-frontend/src/assets/images/icons/bolt_small_run.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M15.9453 9.79057C15.8605 9.62285 15.6884 9.51683 15.4999 9.51626H12.9979V6.52377C13.0089 6.2989 12.8675 6.09454 12.6526 6.02502C12.4465 5.95743 12.2202 6.02994 12.0922 6.20457L8.0889 11.6908C7.9868 11.8379 7.97153 12.0282 8.04887 12.1896C8.12037 12.3748 8.29528 12.5002 8.49423 12.5088H10.9963V15.5012C10.9964 15.717 11.1358 15.9082 11.3416 15.9751C11.3918 15.9906 11.4441 15.999 11.4967 16C11.6568 16.0004 11.8075 15.9244 11.902 15.7955L15.9053 10.3093C16.0152 10.1576 16.0307 9.95726 15.9453 9.79057Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/calendar.svg b/superset-frontend/src/assets/images/icons/calendar.svg deleted file mode 100644 index 3b39c1da807..00000000000 --- a/superset-frontend/src/assets/images/icons/calendar.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 19C12.5523 19 13 18.5523 13 18C13 17.4477 12.5523 17 12 17C11.4477 17 11 17.4477 11 18C11 18.5523 11.4477 19 12 19ZM17 19C17.5523 19 18 18.5523 18 18C18 17.4477 17.5523 17 17 17C16.4477 17 16 17.4477 16 18C16 18.5523 16.4477 19 17 19ZM17 15C17.5523 15 18 14.5523 18 14C18 13.4477 17.5523 13 17 13C16.4477 13 16 13.4477 16 14C16 14.5523 16.4477 15 17 15ZM12 15C12.5523 15 13 14.5523 13 14C13 13.4477 12.5523 13 12 13C11.4477 13 11 13.4477 11 14C11 14.5523 11.4477 15 12 15ZM19 3H18V2C18 1.44772 17.5523 1 17 1C16.4477 1 16 1.44772 16 2V3H8V2C8 1.44772 7.55228 1 7 1C6.44772 1 6 1.44772 6 2V3H5C3.34315 3 2 4.34315 2 6V20C2 21.6569 3.34315 23 5 23H19C20.6569 23 22 21.6569 22 20V6C22 4.34315 20.6569 3 19 3ZM20 20C20 20.5523 19.5523 21 19 21H5C4.44772 21 4 20.5523 4 20V11H20V20ZM20 9H4V6C4 5.44772 4.44772 5 5 5H6V6C6 6.55228 6.44772 7 7 7C7.55228 7 8 6.55228 8 6V5H16V6C16 6.55228 16.4477 7 17 7C17.5523 7 18 6.55228 18 6V5H19C19.5523 5 20 5.44772 20 6V9ZM7 15C7.55228 15 8 14.5523 8 14C8 13.4477 7.55228 13 7 13C6.44772 13 6 13.4477 6 14C6 14.5523 6.44772 15 7 15ZM7 19C7.55228 19 8 18.5523 8 18C8 17.4477 7.55228 17 7 17C6.44772 17 6 17.4477 6 18C6 18.5523 6.44772 19 7 19Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/cancel-x.svg b/superset-frontend/src/assets/images/icons/cancel-x.svg deleted file mode 100644 index c3fc592d051..00000000000 --- a/superset-frontend/src/assets/images/icons/cancel-x.svg +++ /dev/null @@ -1,24 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> - <g id="Icon-/-X-Small" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> - <polygon id="Shape" points="0 0 24 0 24 24 0 24"></polygon> - <path d="M15.71,8.29 C15.5222334,8.10068735 15.2666375,7.99420168 15,7.99420168 C14.7333625,7.99420168 14.4777666,8.10068735 14.29,8.29 L12,10.59 L9.71,8.29 C9.31787782,7.89787785 8.68212219,7.89787787 8.29000003,8.29000003 C7.89787787,8.68212219 7.89787785,9.31787782 8.29,9.71 L10.59,12 L8.29,14.29 C8.10068735,14.4777666 7.99420168,14.7333625 7.99420168,15 C7.99420168,15.2666375 8.10068735,15.5222334 8.29,15.71 C8.4777666,15.8993127 8.73336246,16.0057983 9,16.0057983 C9.26663754,16.0057983 9.5222334,15.8993127 9.71,15.71 L12,13.41 L14.29,15.71 C14.4777666,15.8993127 14.7333625,16.0057983 15,16.0057983 C15.2666375,16.0057983 15.5222334,15.8993127 15.71,15.71 C15.8993127,15.5222334 16.0057983,15.2666375 16.0057983,15 C16.0057983,14.7333625 15.8993127,14.4777666 15.71,14.29 L13.41,12 L15.71,9.71 C15.8993127,9.5222334 16.0057983,9.26663754 16.0057983,9 C16.0057983,8.73336246 15.8993127,8.4777666 15.71,8.29 Z" id="Path" fill="currentColor"></path> - </g> -</svg> diff --git a/superset-frontend/src/assets/images/icons/cancel.svg b/superset-frontend/src/assets/images/icons/cancel.svg deleted file mode 100644 index 561503bcbf0..00000000000 --- a/superset-frontend/src/assets/images/icons/cancel.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M15.7101 8.29002C15.5223 8.10071 15.2667 7.99422 15.0001 7.99422C14.7334 7.99422 14.4778 8.10071 14.2901 8.29002L12.0001 10.59L9.71008 8.29002C9.31796 7.8979 8.68221 7.8979 8.29008 8.29002C7.89796 8.68214 7.89796 9.3179 8.29008 9.71002L10.5901 12L8.29008 14.29C8.10077 14.4778 7.99428 14.7334 7.99428 15C7.99428 15.2667 8.10077 15.5223 8.29008 15.71C8.47785 15.8993 8.73345 16.0058 9.00008 16.0058C9.26672 16.0058 9.52232 15.8993 9.71008 15.71L12.0001 13.41L14.2901 15.71C14.4778 15.8993 14.7334 16.0058 15.0001 16.0058C15.2667 16.0058 15.5223 15.8993 15.7101 15.71C15.8994 15.5223 16.0059 15.2667 16.0059 15C16.0059 14.7334 15.8994 14.4778 15.7101 14.29L13.4101 12L15.7101 9.71002C15.8994 9.52226 16.0059 9.26666 16.0059 9.00002C16.0059 8.73338 15.8994 8.47779 15.7101 8.29002ZM19.0701 4.93002C16.5593 2.33046 12.8413 1.2879 9.34501 2.20305C5.84872 3.1182 3.11827 5.84865 2.20311 9.34495C1.28796 12.8412 2.33052 16.5593 4.93008 19.07C7.44083 21.6696 11.1589 22.7121 14.6552 21.797C18.1515 20.8818 20.8819 18.1514 21.7971 14.6551C22.7122 11.1588 21.6696 7.44077 19.0701 4.93002ZM17.6601 17.66C14.963 20.3601 10.7341 20.7791 7.55961 18.6608C4.38507 16.5425 3.14888 12.4767 4.607 8.94981C6.06511 5.42291 9.81146 3.41708 13.5551 4.1589C17.2987 4.90071 19.9971 8.1836 20.0001 12C20.0073 14.1235 19.1647 16.1616 17.6601 17.66Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/cancel_solid.svg b/superset-frontend/src/assets/images/icons/cancel_solid.svg deleted file mode 100644 index c0f03e6f189..00000000000 --- a/superset-frontend/src/assets/images/icons/cancel_solid.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M19.0701 4.93002C16.5593 2.33046 12.8413 1.2879 9.34501 2.20305C5.84872 3.1182 3.11827 5.84865 2.20311 9.34495C1.28796 12.8412 2.33052 16.5593 4.93008 19.07C7.44083 21.6696 11.1589 22.7121 14.6552 21.797C18.1515 20.8818 20.8819 18.1514 21.7971 14.6551C22.7122 11.1588 21.6696 7.44077 19.0701 4.93002Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M15.7099 8.29C15.5222 8.10069 15.2666 7.9942 14.9999 7.9942C14.7333 7.9942 14.4777 8.10069 14.2899 8.29L11.9999 10.59L9.70994 8.29C9.31782 7.89788 8.68206 7.89788 8.28994 8.29C7.89782 8.68212 7.89782 9.31788 8.28994 9.71L10.5899 12L8.28994 14.29C8.10063 14.4778 7.99414 14.7334 7.99414 15C7.99414 15.2666 8.10063 15.5222 8.28994 15.71C8.47771 15.8993 8.7333 16.0058 8.99994 16.0058C9.26658 16.0058 9.52217 15.8993 9.70994 15.71L11.9999 13.41L14.2899 15.71C14.4777 15.8993 14.7333 16.0058 14.9999 16.0058C15.2666 16.0058 15.5222 15.8993 15.7099 15.71C15.8993 15.5222 16.0057 15.2666 16.0057 15C16.0057 14.7334 15.8993 14.4778 15.7099 14.29L13.4099 12L15.7099 9.71C15.8993 9.52223 16.0057 9.26664 16.0057 9C16.0057 8.73336 15.8993 8.47777 15.7099 8.29Z" fill="white"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/card_view.svg b/superset-frontend/src/assets/images/icons/card_view.svg deleted file mode 100644 index 009409b5949..00000000000 --- a/superset-frontend/src/assets/images/icons/card_view.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 4C3.22386 4 3 4.22386 3 4.5V7.5C3 7.77614 3.22386 8 3.5 8H10.5C10.7761 8 11 7.77614 11 7.5V4.5C11 4.22386 10.7761 4 10.5 4H3.5ZM13.5 4C13.2239 4 13 4.22386 13 4.5V7.5C13 7.77614 13.2239 8 13.5 8H20.5C20.7761 8 21 7.77614 21 7.5V4.5C21 4.22386 20.7761 4 20.5 4H13.5ZM3 10.5C3 10.2239 3.22386 10 3.5 10H10.5C10.7761 10 11 10.2239 11 10.5V13.5C11 13.7761 10.7761 14 10.5 14H3.5C3.22386 14 3 13.7761 3 13.5V10.5ZM3.5 16C3.22386 16 3 16.2239 3 16.5V19.5C3 19.7761 3.22386 20 3.5 20H10.5C10.7761 20 11 19.7761 11 19.5V16.5C11 16.2239 10.7761 16 10.5 16H3.5ZM13 10.5C13 10.2239 13.2239 10 13.5 10H20.5C20.7761 10 21 10.2239 21 10.5V13.5C21 13.7761 20.7761 14 20.5 14H13.5C13.2239 14 13 13.7761 13 13.5V10.5ZM13.5 16C13.2239 16 13 16.2239 13 16.5V19.5C13 19.7761 13.2239 20 13.5 20H20.5C20.7761 20 21 19.7761 21 19.5V16.5C21 16.2239 20.7761 16 20.5 16H13.5Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/cards.svg b/superset-frontend/src/assets/images/icons/cards.svg deleted file mode 100644 index be59ec53a47..00000000000 --- a/superset-frontend/src/assets/images/icons/cards.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M9 11.001H4C2.896 11.001 2 10.104 2 9.00098V4.00098C2 2.89898 2.896 2.00098 4 2.00098H9C10.104 2.00098 11 2.89898 11 4.00098V9.00098C11 10.104 10.104 11.001 9 11.001ZM4 4.00098V9.00098H8.997L9 4.00098H4ZM20 11.001H15C13.896 11.001 13 10.104 13 9.00098V4.00098C13 2.89898 13.896 2.00098 15 2.00098H20C21.104 2.00098 22 2.89898 22 4.00098V9.00098C22 10.104 21.104 11.001 20 11.001ZM15 4.00098V9.00098H19.997L20 4.00098H15ZM4 22.001H9C10.104 22.001 11 21.104 11 20.001V15.001C11 13.899 10.104 13.001 9 13.001H4C2.896 13.001 2 13.899 2 15.001V20.001C2 21.104 2.896 22.001 4 22.001ZM4 20.001V15.001H9L8.997 20.001H4ZM20 22.001H15C13.896 22.001 13 21.104 13 20.001V15.001C13 13.899 13.896 13.001 15 13.001H20C21.104 13.001 22 13.899 22 15.001V20.001C22 21.104 21.104 22.001 20 22.001ZM15 15.001V20.001H19.997L20 15.001H15Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/cards_locked.svg b/superset-frontend/src/assets/images/icons/cards_locked.svg deleted file mode 100644 index 522ddf98689..00000000000 --- a/superset-frontend/src/assets/images/icons/cards_locked.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M4 11.001H9C10.104 11.001 11 10.104 11 9.00098V4.00098C11 2.89898 10.104 2.00098 9 2.00098H4C2.896 2.00098 2 2.89898 2 4.00098V9.00098C2 10.104 2.896 11.001 4 11.001ZM4 9.00098V4.00098H9L8.997 9.00098H4ZM4 22.001H9C10.104 22.001 11 21.104 11 20.001V15.001C11 13.899 10.104 13.001 9 13.001H4C2.896 13.001 2 13.899 2 15.001V20.001C2 21.104 2.896 22.001 4 22.001ZM4 20.001V15.001H9L8.997 20.001H4ZM20 22.001H15C13.896 22.001 13 21.104 13 20.001V15.001C13 13.899 13.896 13.001 15 13.001H20C21.104 13.001 22 13.899 22 15.001V20.001C22 21.104 21.104 22.001 20 22.001ZM15 15.001V20.001H19.997L20 15.001H15Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M20.2 3.83167V2.75C20.2 1.23122 18.9912 0 17.5 0C16.0088 0 14.8 1.23122 14.8 2.75V3.83167C13.7238 4.21919 13.0032 5.2541 13 6.41667V8.25C13 9.76878 14.2088 11 15.7 11H19.3C20.7912 11 22 9.76878 22 8.25V6.41667C21.9968 5.2541 21.2762 4.21919 20.2 3.83167ZM16.6 2.75C16.6 2.24374 17.0029 1.83333 17.5 1.83333C17.9971 1.83333 18.4 2.24374 18.4 2.75V3.66667H16.6V2.75ZM20.2 8.25C20.2 8.75626 19.7971 9.16667 19.3 9.16667H15.7C15.2029 9.16667 14.8 8.75626 14.8 8.25V6.41667C14.8 5.91041 15.2029 5.5 15.7 5.5H19.3C19.7971 5.5 20.2 5.91041 20.2 6.41667V8.25Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/caret_down.svg b/superset-frontend/src/assets/images/icons/caret_down.svg deleted file mode 100644 index 0ffc7e5cf1e..00000000000 --- a/superset-frontend/src/assets/images/icons/caret_down.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M16.9997 9.17C16.6097 8.78228 15.9797 8.78228 15.5897 9.17L11.9997 12.71L8.4597 9.17C8.06967 8.78228 7.43974 8.78228 7.0497 9.17C6.86039 9.35777 6.75391 9.61337 6.75391 9.88C6.75391 10.1466 6.86039 10.4022 7.0497 10.59L11.2897 14.83C11.4775 15.0193 11.7331 15.1258 11.9997 15.1258C12.2663 15.1258 12.5219 15.0193 12.7097 14.83L16.9997 10.59C17.189 10.4022 17.2955 10.1466 17.2955 9.88C17.2955 9.61337 17.189 9.35777 16.9997 9.17Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/caret_left.svg b/superset-frontend/src/assets/images/icons/caret_left.svg deleted file mode 100644 index d43471dcc51..00000000000 --- a/superset-frontend/src/assets/images/icons/caret_left.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M9.1703 11.29L13.4103 7.05001C13.5981 6.8607 13.8537 6.75421 14.1203 6.75421C14.3869 6.75421 14.6425 6.8607 14.8303 7.05001C15.218 7.44005 15.218 8.06997 14.8303 8.46001L11.2903 12L14.8303 15.54C15.218 15.93 15.218 16.56 14.8303 16.95C14.6416 17.1372 14.3861 17.2415 14.1203 17.24C13.8545 17.2415 13.599 17.1372 13.4103 16.95L9.1703 12.71C8.98099 12.5222 8.8745 12.2666 8.8745 12C8.8745 11.7334 8.98099 11.4778 9.1703 11.29Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/caret_right.svg b/superset-frontend/src/assets/images/icons/caret_right.svg deleted file mode 100644 index 4ab4545c6dd..00000000000 --- a/superset-frontend/src/assets/images/icons/caret_right.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M14.8297 11.2899L10.5897 7.04995C10.4019 6.86064 10.1463 6.75415 9.8797 6.75415C9.61306 6.75415 9.35747 6.86064 9.1697 7.04995C8.78198 7.43999 8.78198 8.06991 9.1697 8.45995L12.7097 11.9999L9.1697 15.5399C8.78198 15.93 8.78198 16.5599 9.1697 16.9499C9.35842 17.1371 9.6139 17.2415 9.8797 17.2399C10.1455 17.2415 10.401 17.1371 10.5897 16.9499L14.8297 12.7099C15.019 12.5222 15.1255 12.2666 15.1255 11.9999C15.1255 11.7333 15.019 11.4777 14.8297 11.2899Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/caret_up.svg b/superset-frontend/src/assets/images/icons/caret_up.svg deleted file mode 100644 index c854683c071..00000000000 --- a/superset-frontend/src/assets/images/icons/caret_up.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M16.9997 14.83C16.6097 15.2177 15.9797 15.2177 15.5897 14.83L11.9997 11.29L8.4597 14.83C8.06967 15.2177 7.43974 15.2177 7.0497 14.83C6.86039 14.6422 6.75391 14.3866 6.75391 14.12C6.75391 13.8534 6.86039 13.5978 7.0497 13.41L11.2897 9.17C11.4775 8.98068 11.7331 8.8742 11.9997 8.8742C12.2663 8.8742 12.5219 8.98068 12.7097 9.17L16.9997 13.41C17.189 13.5978 17.2955 13.8534 17.2955 14.12C17.2955 14.3866 17.189 14.6422 16.9997 14.83Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/check.svg b/superset-frontend/src/assets/images/icons/check.svg deleted file mode 100644 index 6cb0af15e8d..00000000000 --- a/superset-frontend/src/assets/images/icons/check.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M14.7191 8.79L10.4291 13.09L8.77911 11.44C8.53472 11.1546 8.15099 11.0303 7.78569 11.1182C7.42039 11.2061 7.13517 11.4913 7.0473 11.8566C6.95942 12.2219 7.08373 12.6056 7.36911 12.85L9.71911 15.21C9.90783 15.3972 10.1633 15.5015 10.4291 15.5C10.6914 15.4989 10.9428 15.3947 11.1291 15.21L16.1291 10.21C16.3184 10.0222 16.4249 9.76664 16.4249 9.5C16.4249 9.23336 16.3184 8.97777 16.1291 8.79C15.7391 8.40228 15.1091 8.40228 14.7191 8.79Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/circle.svg b/superset-frontend/src/assets/images/icons/circle.svg deleted file mode 100644 index bc2bcd40977..00000000000 --- a/superset-frontend/src/assets/images/icons/circle.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M2 12C2 6.48 6.48 2 12 2C17.52 2 22 6.48 22 12C22 17.52 17.52 22 12 22C6.48 22 2 17.52 2 12ZM20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/circle_check.svg b/superset-frontend/src/assets/images/icons/circle_check.svg deleted file mode 100644 index 46f3ce5e7ce..00000000000 --- a/superset-frontend/src/assets/images/icons/circle_check.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M14.72 8.79L10.43 13.09L8.78 11.44C8.53561 11.1546 8.15188 11.0303 7.78658 11.1182C7.42128 11.2061 7.13606 11.4913 7.04819 11.8566C6.96032 12.2219 7.08462 12.6056 7.37 12.85L9.72 15.21C9.90872 15.3972 10.1642 15.5015 10.43 15.5C10.6923 15.4989 10.9437 15.3947 11.13 15.21L16.13 10.21C16.3193 10.0222 16.4258 9.76664 16.4258 9.5C16.4258 9.23336 16.3193 8.97777 16.13 8.79C15.74 8.40228 15.11 8.40228 14.72 8.79ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 9.34784 20.9464 6.8043 19.0711 4.92893C17.1957 3.05357 14.6522 2 12 2ZM12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 14.1217 19.1571 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/circle_check_solid.svg b/superset-frontend/src/assets/images/icons/circle_check_solid.svg deleted file mode 100644 index 0f1daba0d50..00000000000 --- a/superset-frontend/src/assets/images/icons/circle_check_solid.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 9.34784 20.9464 6.8043 19.0711 4.92893C17.1957 3.05357 14.6522 2 12 2Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M14.7191 8.79L10.4291 13.09L8.77911 11.44C8.53472 11.1546 8.15099 11.0303 7.78569 11.1182C7.42039 11.2061 7.13517 11.4913 7.0473 11.8566C6.95942 12.2219 7.08373 12.6056 7.36911 12.85L9.71911 15.21C9.90783 15.3972 10.1633 15.5015 10.4291 15.5C10.6914 15.4989 10.9428 15.3947 11.1291 15.21L16.1291 10.21C16.3184 10.0222 16.4249 9.76664 16.4249 9.5C16.4249 9.23336 16.3184 8.97777 16.1291 8.79C15.7391 8.40228 15.1091 8.40228 14.7191 8.79Z" fill="white"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/database.svg b/superset-frontend/src/assets/images/icons/circle_solid.svg similarity index 73% rename from superset-frontend/src/assets/images/icons/database.svg rename to superset-frontend/src/assets/images/icons/circle_solid.svg index bb8c9a99937..6c75cf03bd3 100644 --- a/superset-frontend/src/assets/images/icons/database.svg +++ b/superset-frontend/src/assets/images/icons/circle_solid.svg @@ -17,5 +17,5 @@ under the License. --> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M3 5C2.44772 5 2 5.44772 2 6V10C2 10.5523 2.44772 11 3 11H21C21.5523 11 22 10.5523 22 10V6C22 5.44772 21.5523 5 21 5H3ZM3 13C2.44772 13 2 13.4477 2 14V18C2 18.5523 2.44772 19 3 19H21C21.5523 19 22 18.5523 22 18V14C22 13.4477 21.5523 13 21 13H3Z" fill="currentColor"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 9.34784 20.9464 6.8043 19.0711 4.92893C17.1957 3.05357 14.6522 2 12 2Z" fill="currentColor"/> </svg> diff --git a/superset-frontend/src/assets/images/icons/clock.svg b/superset-frontend/src/assets/images/icons/clock.svg deleted file mode 100644 index f6597972091..00000000000 --- a/superset-frontend/src/assets/images/icons/clock.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 9.34784 20.9464 6.8043 19.0711 4.92893C17.1957 3.05357 14.6522 2 12 2ZM12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 14.1217 19.1571 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20ZM12 6C11.4477 6 11 6.44772 11 7V11.42L8.9 12.63C8.50379 12.8545 8.30931 13.3184 8.42695 13.7583C8.54458 14.1983 8.94461 14.5032 9.4 14.5C9.57518 14.5012 9.7476 14.4564 9.9 14.37L12.5 12.87L12.59 12.78L12.75 12.65C12.7891 12.6005 12.8226 12.5468 12.85 12.49C12.8826 12.4363 12.9094 12.3793 12.93 12.32C12.9572 12.2564 12.9741 12.1889 12.98 12.12L13 12V7C13 6.44772 12.5523 6 12 6Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/close.svg b/superset-frontend/src/assets/images/icons/close.svg deleted file mode 100644 index 33448814eff..00000000000 --- a/superset-frontend/src/assets/images/icons/close.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M10.4099 9L16.7099 2.71C17.1021 2.31788 17.1021 1.68212 16.7099 1.29C16.3178 0.89788 15.6821 0.89788 15.2899 1.29L8.99994 7.59L2.70994 1.29C2.31782 0.89788 1.68206 0.89788 1.28994 1.29C0.897817 1.68212 0.897817 2.31788 1.28994 2.71L7.58994 9L1.28994 15.29C1.10063 15.4778 0.994141 15.7334 0.994141 16C0.994141 16.2666 1.10063 16.5222 1.28994 16.71C1.47771 16.8993 1.7333 17.0058 1.99994 17.0058C2.26658 17.0058 2.52217 16.8993 2.70994 16.71L8.99994 10.41L15.2899 16.71C15.4777 16.8993 15.7333 17.0058 15.9999 17.0058C16.2666 17.0058 16.5222 16.8993 16.7099 16.71C16.8993 16.5222 17.0057 16.2666 17.0057 16C17.0057 15.7334 16.8993 15.4778 16.7099 15.29L10.4099 9Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/code.svg b/superset-frontend/src/assets/images/icons/code.svg deleted file mode 100644 index ae413cc8811..00000000000 --- a/superset-frontend/src/assets/images/icons/code.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M9.70994 6.29C9.52217 6.10069 9.26658 5.9942 8.99994 5.9942C8.7333 5.9942 8.47771 6.10069 8.28994 6.29L3.28994 11.29C3.10063 11.4778 2.99414 11.7334 2.99414 12C2.99414 12.2666 3.10063 12.5222 3.28994 12.71L8.28994 17.71C8.47771 17.8993 8.7333 18.0058 8.99994 18.0058C9.26658 18.0058 9.52217 17.8993 9.70994 17.71C9.89925 17.5222 10.0057 17.2666 10.0057 17C10.0057 16.7334 9.89925 16.4778 9.70994 16.29L5.40994 12L9.70994 7.71C9.89925 7.52223 10.0057 7.26664 10.0057 7C10.0057 6.73336 9.89925 6.47777 9.70994 6.29ZM20.7099 11.29L15.7099 6.29C15.4563 6.03634 15.0866 5.93728 14.7401 6.03012C14.3936 6.12297 14.1229 6.39362 14.0301 6.74012C13.9372 7.08663 14.0363 7.45634 14.2899 7.71L18.5899 12L14.2899 16.29C14.1006 16.4778 13.9941 16.7334 13.9941 17C13.9941 17.2666 14.1006 17.5222 14.2899 17.71C14.4777 17.8993 14.7333 18.0058 14.9999 18.0058C15.2666 18.0058 15.5222 17.8993 15.7099 17.71L20.7099 12.71C20.8993 12.5222 21.0057 12.2666 21.0057 12C21.0057 11.7334 20.8993 11.4778 20.7099 11.29Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/cog.svg b/superset-frontend/src/assets/images/icons/cog.svg deleted file mode 100644 index 0b5f64bde9d..00000000000 --- a/superset-frontend/src/assets/images/icons/cog.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M21.32 9.55L19.43 8.92L20.32 7.14C20.5049 6.75817 20.4287 6.30123 20.13 6L18 3.87C17.697 3.56672 17.2344 3.49029 16.85 3.68L15.07 4.57L14.44 2.68C14.3036 2.27617 13.9262 2.00317 13.5 2H10.5C10.0701 1.99889 9.68758 2.27269 9.55 2.68L8.92 4.57L7.14 3.68C6.75817 3.49511 6.30123 3.57126 6 3.87L3.87 6C3.56672 6.30298 3.49029 6.76557 3.68 7.15L4.57 8.93L2.68 9.56C2.27617 9.69639 2.00317 10.0738 2 10.5V13.5C1.99889 13.9299 2.27269 14.3124 2.68 14.45L4.57 15.08L3.68 16.86C3.49511 17.2418 3.57126 17.6988 3.87 18L6 20.13C6.30298 20.4333 6.76557 20.5097 7.15 20.32L8.93 19.43L9.56 21.32C9.69758 21.7273 10.0801 22.0011 10.51 22H13.51C13.9399 22.0011 14.3224 21.7273 14.46 21.32L15.09 19.43L16.87 20.32C17.2492 20.5001 17.7006 20.4243 18 20.13L20.13 18C20.4333 17.697 20.5097 17.2344 20.32 16.85L19.43 15.07L21.32 14.44C21.7238 14.3036 21.9968 13.9262 22 13.5V10.5C22.0011 10.0701 21.7273 9.68758 21.32 9.55ZM20 12.78L18.8 13.18C18.2415 13.3612 17.7908 13.7786 17.5675 14.3216C17.3441 14.8646 17.3706 15.4783 17.64 16L18.21 17.14L17.11 18.24L16 17.64C15.4811 17.3815 14.8756 17.3608 14.3403 17.5834C13.805 17.806 13.3927 18.2498 13.21 18.8L12.81 20H11.22L10.82 18.8C10.6388 18.2415 10.2214 17.7908 9.67842 17.5675C9.13543 17.3441 8.52171 17.3706 8 17.64L6.86 18.21L5.76 17.11L6.36 16C6.62938 15.4783 6.6559 14.8646 6.43254 14.3216C6.20918 13.7786 5.7585 13.3612 5.2 13.18L4 12.78V11.22L5.2 10.82C5.7585 10.6388 6.20918 10.2214 6.43254 9.67842C6.6559 9.13543 6.62938 8.52171 6.36 8L5.79 6.89L6.89 5.79L8 6.36C8.52171 6.62938 9.13543 6.6559 9.67842 6.43254C10.2214 6.20918 10.6388 5.7585 10.82 5.2L11.22 4H12.78L13.18 5.2C13.3612 5.7585 13.7786 6.20918 14.3216 6.43254C14.8646 6.6559 15.4783 6.62938 16 6.36L17.14 5.79L18.24 6.89L17.64 8C17.3815 8.51888 17.3608 9.1244 17.5834 9.65969C17.806 10.195 18.2498 10.6074 18.8 10.79L20 11.19V12.78Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M8 12C8 9.79086 9.79086 8 12 8C13.0609 8 14.0783 8.42143 14.8284 9.17157C15.5786 9.92172 16 10.9391 16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12ZM10 12C10 13.1046 10.8954 14 12 14C13.1046 14 14 13.1046 14 12C14 10.8954 13.1046 10 12 10C10.8954 10 10 10.8954 10 12Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/collapse.svg b/superset-frontend/src/assets/images/icons/collapse.svg deleted file mode 100644 index 7282252a256..00000000000 --- a/superset-frontend/src/assets/images/icons/collapse.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M15.71 11.29L11.71 7.29C11.4563 7.03634 11.0866 6.93728 10.7401 7.03012C10.3936 7.12297 10.123 7.39362 10.0301 7.74012C9.93728 8.08663 10.0363 8.45634 10.29 8.71L12.59 11H4C3.44772 11 3 11.4477 3 12C3 12.5523 3.44772 13 4 13H12.59L10.29 15.29C10.1007 15.4778 9.9942 15.7334 9.9942 16C9.9942 16.2666 10.1007 16.5222 10.29 16.71C10.4778 16.8993 10.7334 17.0058 11 17.0058C11.2666 17.0058 11.5222 16.8993 11.71 16.71L15.71 12.71C15.801 12.6149 15.8724 12.5028 15.92 12.38C16.02 12.1365 16.02 11.8635 15.92 11.62C15.8724 11.4972 15.801 11.3851 15.71 11.29ZM19 4C18.4477 4 18 4.44772 18 5V19C18 19.5523 18.4477 20 19 20C19.5523 20 20 19.5523 20 19V5C20 4.44772 19.5523 4 19 4Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/color_palette.svg b/superset-frontend/src/assets/images/icons/color_palette.svg deleted file mode 100644 index 3fc0413268c..00000000000 --- a/superset-frontend/src/assets/images/icons/color_palette.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3C7.03 3 3 7.03 3 12C3 16.97 7.03 21 12 21C12.83 21 13.5 20.33 13.5 19.5C13.5 19.11 13.35 18.76 13.11 18.49C12.88 18.23 12.73 17.88 12.73 17.5C12.73 16.67 13.4 16 14.23 16H16C18.76 16 21 13.76 21 11C21 6.58 16.97 3 12 3ZM6.5 12C5.67 12 5 11.33 5 10.5C5 9.67 5.67 9 6.5 9C7.33 9 8 9.67 8 10.5C8 11.33 7.33 12 6.5 12ZM9.5 8C8.67 8 8 7.33 8 6.5C8 5.67 8.67 5 9.5 5C10.33 5 11 5.67 11 6.5C11 7.33 10.33 8 9.5 8ZM14.5 8C13.67 8 13 7.33 13 6.5C13 5.67 13.67 5 14.5 5C15.33 5 16 5.67 16 6.5C16 7.33 15.33 8 14.5 8ZM17.5 12C16.67 12 16 11.33 16 10.5C16 9.67 16.67 9 17.5 9C18.33 9 19 9.67 19 10.5C19 11.33 18.33 12 17.5 12Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/components.svg b/superset-frontend/src/assets/images/icons/components.svg deleted file mode 100644 index 46f67e45148..00000000000 --- a/superset-frontend/src/assets/images/icons/components.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M4 5C4.55228 5 5 4.55228 5 4C5 3.44772 4.55228 3 4 3C3.44772 3 3 3.44772 3 4C3 4.55228 3.44772 5 4 5ZM4 9C4.55228 9 5 8.55228 5 8C5 7.44772 4.55228 7 4 7C3.44772 7 3 7.44772 3 8C3 8.55228 3.44772 9 4 9ZM9 4C9 4.55228 8.55228 5 8 5C7.44772 5 7 4.55228 7 4C7 3.44772 7.44772 3 8 3C8.55228 3 9 3.44772 9 4ZM12 5C12.5523 5 13 4.55228 13 4C13 3.44772 12.5523 3 12 3C11.4477 3 11 3.44772 11 4C11 4.55228 11.4477 5 12 5ZM17 4C17 4.55228 16.5523 5 16 5C15.4477 5 15 4.55228 15 4C15 3.44772 15.4477 3 16 3C16.5523 3 17 3.44772 17 4ZM20 5C20.5523 5 21 4.55228 21 4C21 3.44772 20.5523 3 20 3C19.4477 3 19 3.44772 19 4C19 4.55228 19.4477 5 20 5ZM21 8C21 8.55228 20.5523 9 20 9C19.4477 9 19 8.55228 19 8C19 7.44772 19.4477 7 20 7C20.5523 7 21 7.44772 21 8Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M4 11H20C20.5523 11 21 11.4477 21 12V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V12C3 11.4477 3.44772 11 4 11ZM5 13V19H19V13H5Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/copy.svg b/superset-frontend/src/assets/images/icons/copy.svg deleted file mode 100644 index b6c569d0b40..00000000000 --- a/superset-frontend/src/assets/images/icons/copy.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M21 8.94C20.9896 8.84813 20.9695 8.75763 20.94 8.67V8.58C20.8919 8.47718 20.8278 8.38267 20.75 8.3L14.75 2.3C14.6673 2.22222 14.5728 2.15808 14.47 2.11C14.4402 2.10576 14.4099 2.10576 14.38 2.11C14.2784 2.05174 14.1662 2.01434 14.05 2H10C8.34315 2 7 3.34315 7 5V6H6C4.34315 6 3 7.34315 3 9V19C3 20.6569 4.34315 22 6 22H14C15.6569 22 17 20.6569 17 19V18H18C19.6569 18 21 16.6569 21 15V9C21 9 21 9 21 8.94ZM15 5.41L17.59 8H16C15.4477 8 15 7.55228 15 7V5.41ZM15 19C15 19.5523 14.5523 20 14 20H6C5.44772 20 5 19.5523 5 19V9C5 8.44772 5.44772 8 6 8H7V15C7 16.6569 8.34315 18 10 18H15V19ZM19 15C19 15.5523 18.5523 16 18 16H10C9.44772 16 9 15.5523 9 15V5C9 4.44772 9.44772 4 10 4H13V7C13 8.65685 14.3431 10 16 10H19V15Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/cross-filter-badge.svg b/superset-frontend/src/assets/images/icons/cross-filter-badge.svg deleted file mode 100644 index 89d123c1c35..00000000000 --- a/superset-frontend/src/assets/images/icons/cross-filter-badge.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> - <circle cx="12" cy="12" r="12" fill="transparent" /> - <path fill-rule="evenodd" clip-rule="evenodd" d="M16.6177 16.3979C18.957 14.0586 18.957 10.2519 16.6177 7.91263C14.2784 5.57335 10.4717 5.57335 8.13245 7.91263L7.07178 6.85197C9.99603 3.92773 14.7541 3.92773 17.6784 6.85197C20.6026 9.77621 20.6026 14.5343 17.6784 17.4586C14.7541 20.3828 9.99603 20.3828 7.07178 17.4586L8.13245 16.3979C10.4717 18.7372 14.2779 18.7377 16.6177 16.3979ZM4.50001 11.7499C4.50001 11.4738 4.72387 11.2499 5.00001 11.2499L6.75001 11.2499L6.75001 10.7499C6.75001 10.3379 7.22039 10.1027 7.55001 10.3499L9.75001 11.9999C9.86952 12.072 8.45348 13.0769 7.52541 13.7191C7.19597 13.947 6.75001 13.71 6.75001 13.3094L6.75001 12.7499H5.00001C4.72387 12.7499 4.50001 12.5261 4.50001 12.2499V11.7499ZM10.2538 10.034C11.4237 8.86404 13.327 8.86457 14.4964 10.034C15.6658 11.2033 15.6663 13.1067 14.4964 14.2766C13.3265 15.4465 11.4231 15.446 10.2538 14.2766L9.19311 15.3373C10.948 17.0921 13.8022 17.0921 15.5571 15.3373C17.3119 13.5824 17.3119 10.7282 15.5571 8.97329C13.8022 7.21843 10.948 7.21843 9.19311 8.97329L10.2538 10.034Z"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/current-rendered-tile.svg b/superset-frontend/src/assets/images/icons/current-rendered-tile.svg deleted file mode 100644 index 78f63014e5a..00000000000 --- a/superset-frontend/src/assets/images/icons/current-rendered-tile.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path d="M18.5717 6.14509H15.5717V5.00223C15.5717 4.92366 15.5074 4.85938 15.4289 4.85938H14.4289C14.3503 4.85938 14.286 4.92366 14.286 5.00223V6.14509H9.71457V5.00223C9.71457 4.92366 9.65028 4.85938 9.57171 4.85938H8.57171C8.49314 4.85938 8.42885 4.92366 8.42885 5.00223V6.14509H5.42885C5.11278 6.14509 4.85742 6.40045 4.85742 6.71652V18.5737C4.85742 18.8897 5.11278 19.1451 5.42885 19.1451H18.5717C18.8878 19.1451 19.1431 18.8897 19.1431 18.5737V6.71652C19.1431 6.40045 18.8878 6.14509 18.5717 6.14509ZM17.8574 17.8594H6.14314V7.4308H8.42885V8.28795C8.42885 8.36652 8.49314 8.4308 8.57171 8.4308H9.57171C9.65028 8.4308 9.71457 8.36652 9.71457 8.28795V7.4308H14.286V8.28795C14.286 8.36652 14.3503 8.4308 14.4289 8.4308H15.4289C15.5074 8.4308 15.5717 8.36652 15.5717 8.28795V7.4308H17.8574V17.8594ZM15.1431 10.3594H14.1574C14.0664 10.3594 13.9789 10.404 13.9253 10.4772L11.2306 14.1879L10.0753 12.5987C10.0217 12.5254 9.93599 12.4808 9.84314 12.4808H8.85742C8.74135 12.4808 8.67349 12.6129 8.74135 12.7076L10.9985 15.8147C11.0252 15.8513 11.0601 15.881 11.1005 15.9015C11.1408 15.922 11.1854 15.9326 11.2306 15.9326C11.2759 15.9326 11.3205 15.922 11.3608 15.9015C11.4012 15.881 11.4361 15.8513 11.4628 15.8147L15.2592 10.5879C15.3271 10.4915 15.2592 10.3594 15.1431 10.3594Z" fill="#666666"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/cursor_target.svg b/superset-frontend/src/assets/images/icons/cursor_target.svg deleted file mode 100644 index 99a81817de0..00000000000 --- a/superset-frontend/src/assets/images/icons/cursor_target.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M18.1573 17.864C21.2763 14.745 21.2763 9.66935 18.1573 6.5503C15.0382 3.43125 9.96264 3.43125 6.84359 6.5503L5.42938 5.13609C9.32836 1.2371 15.6725 1.2371 19.5715 5.13609C23.4705 9.03507 23.4705 15.3792 19.5715 19.2782C15.6725 23.1772 9.32836 23.1772 5.42938 19.2782L6.84359 17.864C9.96264 20.9831 15.0375 20.9838 18.1573 17.864ZM2.00035 11.5C2.00035 11.2239 2.2242 11 2.50035 11H5.00035L5.00035 10C5.00035 9.58798 5.47073 9.35279 5.80035 9.60001L9.00035 12C9.17125 12.1032 6.98685 13.637 5.77613 14.4703C5.44613 14.6975 5.00035 14.4601 5.00035 14.0595V13L2.50035 13C2.22421 13 2.00035 12.7761 2.00035 12.5L2.00035 11.5ZM9.67202 9.37873C11.2319 7.81885 13.7697 7.81956 15.3289 9.37873C16.888 10.9379 16.8887 13.4757 15.3289 15.0356C13.769 16.5955 11.2312 16.5948 9.67202 15.0356L8.2578 16.4498C10.5976 18.7896 14.4033 18.7896 16.7431 16.4498C19.0829 14.11 19.0829 10.3043 16.7431 7.96451C14.4033 5.6247 10.5976 5.6247 8.2578 7.96451L9.67202 9.37873Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/dataset_physical.svg b/superset-frontend/src/assets/images/icons/dataset_physical.svg deleted file mode 100644 index 28f46bb4ca9..00000000000 --- a/superset-frontend/src/assets/images/icons/dataset_physical.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M21 2.5H3C2.44772 2.5 2 2.94772 2 3.5V21.5C2 22.0523 2.44772 22.5 3 22.5H21C21.5523 22.5 22 22.0523 22 21.5V3.5C22 2.94772 21.5523 2.5 21 2.5ZM8 20.5H4V16.5H8V20.5ZM8 14.5H4V10.5H8V14.5ZM8 8.5H4V4.5H8V8.5ZM14 20.5H10V16.5H14V20.5ZM14 14.5H10V10.5H14V14.5ZM14 8.5H10V4.5H14V8.5ZM20 20.5H16V16.5H20V20.5ZM20 14.5H16V10.5H20V14.5ZM20 8.5H16V4.5H20V8.5Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/dataset_virtual.svg b/superset-frontend/src/assets/images/icons/dataset_virtual.svg deleted file mode 100644 index ca15dcb63d5..00000000000 --- a/superset-frontend/src/assets/images/icons/dataset_virtual.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> -<rect x="4" y="4.5" width="16" height="16" fill="#136478"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M21 2.5H3C2.44772 2.5 2 2.94772 2 3.5V21.5C2 22.0523 2.44772 22.5 3 22.5H21C21.5523 22.5 22 22.0523 22 21.5V3.5C22 2.94772 21.5523 2.5 21 2.5ZM8 20.5H4V16.5H8V20.5ZM8 14.5H4V10.5H8V14.5ZM8 8.5H4V4.5H8V8.5ZM14 20.5H10V16.5H14V20.5ZM14 14.5H10V10.5H14V14.5ZM14 8.5H10V4.5H14V8.5ZM20 20.5H16V16.5H20V20.5ZM20 14.5H16V10.5H20V14.5ZM20 8.5H16V4.5H20V8.5Z" fill="#A5DBE9"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/dataset_virtual_greyscale.svg b/superset-frontend/src/assets/images/icons/dataset_virtual_greyscale.svg deleted file mode 100644 index 927ee8462d2..00000000000 --- a/superset-frontend/src/assets/images/icons/dataset_virtual_greyscale.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<rect x="4" y="4" width="16" height="16" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M21 2H3C2.44772 2 2 2.44772 2 3V21C2 21.5523 2.44772 22 3 22H21C21.5523 22 22 21.5523 22 21V3C22 2.44772 21.5523 2 21 2ZM8 20H4V16H8V20ZM8 14H4V10H8V14ZM8 8H4V4H8V8ZM14 20H10V16H14V20ZM14 14H10V10H14V14ZM14 8H10V4H14V8ZM20 20H16V16H20V20ZM20 14H16V10H20V14ZM20 8H16V4H20V8Z" fill="#E0E0E0"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/default_db_image.svg b/superset-frontend/src/assets/images/icons/default_db_image.svg deleted file mode 100644 index f8892bb3124..00000000000 --- a/superset-frontend/src/assets/images/icons/default_db_image.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path opacity="0.4" fill-rule="evenodd" clip-rule="evenodd" d="M15.9942 14.9661C16.0473 14.9256 16.0843 14.893 16.1094 14.8686V12.3207C15.7158 12.5563 15.2568 12.7608 14.7565 12.9359C13.2501 13.4632 11.2149 13.7763 8.99998 13.7763C6.78508 13.7763 4.74988 13.4632 3.24347 12.9359C2.74318 12.7608 2.28418 12.5563 1.89058 12.3207V14.8686C1.91568 14.893 1.95268 14.9256 2.00578 14.9661C2.26078 15.1603 2.71837 15.3956 3.40987 15.6184C4.77707 16.059 6.75368 16.3544 8.99998 16.3544C11.2463 16.3544 13.2229 16.059 14.5901 15.6184C15.2816 15.3956 15.7392 15.1603 15.9942 14.9661ZM15.7503 10.8614C16.0622 10.6033 16.1094 10.4232 16.1094 10.3388V8.41454C15.7158 8.65004 15.2568 8.85464 14.7565 9.02974C13.2501 9.55694 11.2149 9.87004 8.99998 9.87004C6.78508 9.87004 4.74988 9.55694 3.24347 9.02974C2.74318 8.85464 2.28418 8.65004 1.89058 8.41454V10.3388C1.89058 10.4232 1.93777 10.6033 2.24967 10.8614C2.55707 11.1158 3.04418 11.3763 3.70798 11.6086C5.02918 12.071 6.90007 12.37 8.99998 12.37C11.0999 12.37 12.9708 12.071 14.292 11.6086C14.9558 11.3763 15.4429 11.1158 15.7503 10.8614ZM0.484375 6.43254V10.3388V15.0165C0.484375 16.5321 4.29698 17.7607 8.99998 17.7607C13.703 17.7607 17.5156 16.5321 17.5156 15.0165V10.3388V6.43254V3.31734C17.5156 1.80174 13.703 0.573242 8.99998 0.573242H8.99508H8.99018C4.29258 0.573242 0.484375 1.80174 0.484375 3.31734V6.43254ZM16.1094 6.43254V4.81964C14.59 5.56754 11.9689 6.06144 8.99018 6.06144C6.02428 6.06144 3.41288 5.57174 1.89058 4.82924V6.43254C1.89058 6.51694 1.93777 6.69714 2.24967 6.95524C2.55707 7.20954 3.04418 7.47004 3.70798 7.70244C5.02918 8.16484 6.90007 8.46384 8.99998 8.46384C11.0999 8.46384 12.9708 8.16484 14.292 7.70244C14.9558 7.47004 15.4429 7.20954 15.7503 6.95524C16.0622 6.69714 16.1094 6.51694 16.1094 6.43254ZM2.07487 3.31764C2.33937 3.50124 2.77558 3.71554 3.40748 3.91944C4.77268 4.35984 6.74668 4.65524 8.99018 4.65524C11.2337 4.65524 13.2078 4.35984 14.573 3.91944C15.2053 3.71544 15.6416 3.50104 15.9061 3.31734C15.6416 3.13364 15.2053 2.91924 14.573 2.71524C13.2087 2.27514 11.2366 1.97984 8.99508 1.97944C6.75078 1.97984 4.77607 2.27514 3.40987 2.71544C2.77677 2.91944 2.33977 3.13384 2.07487 3.31764ZM16.1561 14.8151C16.1565 14.8152 16.1546 14.8186 16.1493 14.8253C16.1532 14.8185 16.1558 14.8151 16.1561 14.8151ZM1.84998 3.50934C1.84668 3.51524 1.84438 3.51814 1.84408 3.51804H1.84398C1.84458 3.51684 1.84648 3.51394 1.84998 3.50934ZM1.84387 14.8151C1.84417 14.8151 1.84678 14.8185 1.85068 14.8253C1.84538 14.8186 1.84347 14.8152 1.84387 14.8151Z" fill="#444E7C"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/download.svg b/superset-frontend/src/assets/images/icons/download.svg deleted file mode 100644 index 732fe39bb71..00000000000 --- a/superset-frontend/src/assets/images/icons/download.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M8.29 11.29C8.10069 11.4778 7.9942 11.7334 7.9942 12C7.9942 12.2666 8.10069 12.5222 8.29 12.71L11.29 15.71C11.4778 15.8993 11.7334 16.0058 12 16.0058C12.2666 16.0058 12.5222 15.8993 12.71 15.71L15.71 12.71C16.1021 12.3179 16.1021 11.6821 15.71 11.29C15.3179 10.8979 14.6821 10.8979 14.29 11.29L13 12.59V3C13 2.44772 12.5523 2 12 2C11.4477 2 11 2.44772 11 3V12.59L9.71 11.29C9.52223 11.1007 9.26664 10.9942 9 10.9942C8.73336 10.9942 8.47777 11.1007 8.29 11.29ZM18 7H16C15.4477 7 15 7.44772 15 8C15 8.55228 15.4477 9 16 9H18C18.5523 9 19 9.44772 19 10V17C19 17.5523 18.5523 18 18 18H6C5.44772 18 5 17.5523 5 17V10C5 9.44772 5.44772 9 6 9H8C8.55228 9 9 8.55228 9 8C9 7.44772 8.55228 7 8 7H6C4.34315 7 3 8.34315 3 10V17C3 18.6569 4.34315 20 6 20H18C19.6569 20 21 18.6569 21 17V10C21 8.34315 19.6569 7 18 7Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/edit.svg b/superset-frontend/src/assets/images/icons/edit.svg deleted file mode 100644 index a732b45373e..00000000000 --- a/superset-frontend/src/assets/images/icons/edit.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M22 7.23999C22.0016 6.97418 21.8972 6.71871 21.71 6.52999L17.47 2.28999C17.2813 2.1028 17.0258 1.99845 16.76 1.99999C16.4942 1.99845 16.2387 2.1028 16.05 2.28999L13.22 5.11999L2.29002 16.05C2.10283 16.2387 1.99848 16.4942 2.00002 16.76V21C2.00002 21.5523 2.44773 22 3.00002 22H7.24002C7.523 22.0154 7.79922 21.91 8.00002 21.71L18.87 10.78L21.71 7.99999C21.8013 7.90307 21.8757 7.79152 21.93 7.66999C21.9397 7.59028 21.9397 7.5097 21.93 7.42999C21.9347 7.38344 21.9347 7.33654 21.93 7.28999L22 7.23999ZM6.83002 20H4.00002V17.17L13.93 7.23999L16.76 10.07L6.83002 20ZM18.17 8.65999L15.34 5.82999L16.76 4.41999L19.58 7.23999L18.17 8.65999Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/edit_alt.svg b/superset-frontend/src/assets/images/icons/edit_alt.svg deleted file mode 100644 index 0cf5c9280ad..00000000000 --- a/superset-frontend/src/assets/images/icons/edit_alt.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M5 18.5058H9.24C9.5058 18.5073 9.76128 18.403 9.95 18.2158L16.87 11.2858L19.71 8.5058C19.8993 8.31803 20.0058 8.06244 20.0058 7.7958C20.0058 7.52916 19.8993 7.27356 19.71 7.0858L15.47 2.7958C15.2822 2.60649 15.0266 2.5 14.76 2.5C14.4934 2.5 14.2378 2.60649 14.05 2.7958L11.23 5.6258L4.29 12.5558C4.10281 12.7445 3.99846 13 4 13.2658V17.5058C4 18.0581 4.44772 18.5058 5 18.5058ZM14.76 4.9158L17.59 7.7458L16.17 9.1658L13.34 6.3358L14.76 4.9158ZM6 13.6758L11.93 7.7458L14.76 10.5758L8.83 16.5058H6V13.6758ZM21 20.5058H3C2.44772 20.5058 2 20.9535 2 21.5058C2 22.0581 2.44772 22.5058 3 22.5058H21C21.5523 22.5058 22 22.0581 22 21.5058C22 20.9535 21.5523 20.5058 21 20.5058Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/email.svg b/superset-frontend/src/assets/images/icons/email.svg deleted file mode 100644 index 5eb707833da..00000000000 --- a/superset-frontend/src/assets/images/icons/email.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M19 4H5C3.34315 4 2 5.34315 2 7V17C2 18.6569 3.34315 20 5 20H19C20.6569 20 22 18.6569 22 17V7C22 5.34315 20.6569 4 19 4ZM5 6H19C19.5523 6 20 6.44772 20 7L12 11.88L4 7C4 6.44772 4.44772 6 5 6ZM20 17C20 17.5523 19.5523 18 19 18H5C4.44772 18 4 17.5523 4 17V9.28L11.48 13.85C11.7894 14.0286 12.1706 14.0286 12.48 13.85L20 9.28V17Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/error_solid.svg b/superset-frontend/src/assets/images/icons/error_solid.svg deleted file mode 100644 index b619c4876c8..00000000000 --- a/superset-frontend/src/assets/images/icons/error_solid.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> -<path id="Shape" fill-rule="evenodd" clip-rule="evenodd" d="M21.71 7.56L16.44 2.29C16.2484 2.10727 15.9948 2.00368 15.73 2H8.27C8.00523 2.00368 7.75163 2.10727 7.56 2.29L2.29 7.56C2.10727 7.75163 2.00368 8.00523 2 8.27V15.73C2.00368 15.9948 2.10727 16.2484 2.29 16.44L7.56 21.71C7.75163 21.8927 8.00523 21.9963 8.27 22H15.73C15.9948 21.9963 16.2484 21.8927 16.44 21.71L21.71 16.44C21.8927 16.2484 21.9963 15.9948 22 15.73V8.27C21.9963 8.00523 21.8927 7.75163 21.71 7.56Z" fill="currentColor"/> -<path id="Combined Shape" fill-rule="evenodd" clip-rule="evenodd" d="M11 8C11 7.44772 11.4477 7 12 7C12.5523 7 13 7.44772 13 8V12C13 12.5523 12.5523 13 12 13C11.4477 13 11 12.5523 11 12V8ZM11 16C11 15.4477 11.4477 15 12 15C12.5523 15 13 15.4477 13 16C13 16.5523 12.5523 17 12 17C11.4477 17 11 16.5523 11 16Z" fill="white"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/error_solid_small.svg b/superset-frontend/src/assets/images/icons/error_solid_small.svg deleted file mode 100644 index c28efde2eb7..00000000000 --- a/superset-frontend/src/assets/images/icons/error_solid_small.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M17.826 9.336L14.664 6.174C14.549 6.06436 14.3969 6.00221 14.238 6H9.762C9.60314 6.00221 9.45098 6.06436 9.336 6.174L6.174 9.336C6.06436 9.45098 6.00221 9.60314 6 9.762V14.238C6.00221 14.3969 6.06436 14.549 6.174 14.664L9.336 17.826C9.45098 17.9356 9.60314 17.9978 9.762 18H14.238C14.3969 17.9978 14.549 17.9356 14.664 17.826L17.826 14.664C17.9356 14.549 17.9978 14.3969 18 14.238V9.762C17.9978 9.60314 17.9356 9.45098 17.826 9.336Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M11 8.83333C11 8.3731 11.4477 8 12 8C12.5523 8 13 8.3731 13 8.83333V12.1667C13 12.6269 12.5523 13 12 13C11.4477 13 11 12.6269 11 12.1667V8.83333ZM11 15C11 14.4477 11.4477 14 12 14C12.5523 14 13 14.4477 13 15C13 15.5523 12.5523 16 12 16C11.4477 16 11 15.5523 11 15Z" fill="white"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/exclamation.svg b/superset-frontend/src/assets/images/icons/exclamation.svg deleted file mode 100644 index 40901f6b57b..00000000000 --- a/superset-frontend/src/assets/images/icons/exclamation.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 16.5C11.4477 16.5 11 16.9477 11 17.5C11 18.0523 11.4477 18.5 12 18.5C12.5523 18.5 13 18.0523 13 17.5C13 16.9477 12.5523 16.5 12 16.5ZM12 8.5C11.4477 8.5 11 8.94772 11 9.5V13.5C11 14.0523 11.4477 14.5 12 14.5C12.5523 14.5 13 14.0523 13 13.5V9.5C13 8.94772 12.5523 8.5 12 8.5Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/expand.svg b/superset-frontend/src/assets/images/icons/expand.svg deleted file mode 100644 index 02a26916c59..00000000000 --- a/superset-frontend/src/assets/images/icons/expand.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M7.29 11.29L11.29 7.29C11.5437 7.03634 11.9134 6.93728 12.2599 7.03012C12.6064 7.12297 12.877 7.39362 12.9699 7.74012C13.0627 8.08663 12.9637 8.45634 12.71 8.71L10.41 11H19C19.5523 11 20 11.4477 20 12C20 12.5523 19.5523 13 19 13H10.41L12.71 15.29C12.8993 15.4778 13.0058 15.7334 13.0058 16C13.0058 16.2666 12.8993 16.5222 12.71 16.71C12.5222 16.8993 12.2666 17.0058 12 17.0058C11.7334 17.0058 11.4778 16.8993 11.29 16.71L7.29 12.71C7.19896 12.6149 7.12759 12.5028 7.08 12.38C6.97998 12.1365 6.97998 11.8635 7.08 11.62C7.12759 11.4972 7.19896 11.3851 7.29 11.29ZM4 4C4.55229 4 5 4.44772 5 5V19C5 19.5523 4.55229 20 4 20C3.44772 20 3 19.5523 3 19V5C3 4.44772 3.44772 4 4 4Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/eye.svg b/superset-frontend/src/assets/images/icons/eye.svg deleted file mode 100644 index 262d9bb6d90..00000000000 --- a/superset-frontend/src/assets/images/icons/eye.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M21.9196 11.6C19.8996 6.91 16.0996 4 11.9996 4C7.89958 4 4.09958 6.91 2.07958 11.6C1.96827 11.8551 1.96827 12.1449 2.07958 12.4C4.09958 17.09 7.89958 20 11.9996 20C16.0996 20 19.8996 17.09 21.9196 12.4C22.0309 12.1449 22.0309 11.8551 21.9196 11.6ZM11.9996 18C8.82958 18 5.82958 15.71 4.09958 12C5.82958 8.29 8.82958 6 11.9996 6C15.1696 6 18.1696 8.29 19.8996 12C18.1696 15.71 15.1696 18 11.9996 18ZM11.9996 8C9.79044 8 7.99958 9.79086 7.99958 12C7.99958 14.2091 9.79044 16 11.9996 16C14.2087 16 15.9996 14.2091 15.9996 12C15.9996 10.9391 15.5782 9.92172 14.828 9.17157C14.0779 8.42143 13.0604 8 11.9996 8ZM11.9996 14C10.895 14 9.99958 13.1046 9.99958 12C9.99958 10.8954 10.895 10 11.9996 10C13.1041 10 13.9996 10.8954 13.9996 12C13.9996 13.1046 13.1041 14 11.9996 14Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/eye_slash.svg b/superset-frontend/src/assets/images/icons/eye_slash.svg deleted file mode 100644 index fad4969a45f..00000000000 --- a/superset-frontend/src/assets/images/icons/eye_slash.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M10.9402 6.08003C11.291 6.02626 11.6453 5.99951 12.0002 6.00003C15.1802 6.00003 18.1702 8.29002 19.9102 12C19.6441 12.5646 19.3435 13.1123 19.0102 13.64C18.9044 13.8038 18.8488 13.995 18.8502 14.19C18.8548 14.6385 19.1574 15.0291 19.5906 15.1455C20.0237 15.262 20.4814 15.0758 20.7102 14.69C21.1761 13.958 21.5808 13.1887 21.9202 12.39C22.0286 12.1379 22.0286 11.8522 21.9202 11.6C19.9002 6.91003 16.1002 4.00003 12.0002 4.00003C11.5309 3.99766 11.0623 4.03782 10.6002 4.12003C10.2429 4.18076 9.94522 4.42748 9.81918 4.76725C9.69315 5.10702 9.75795 5.48822 9.98918 5.76725C10.2204 6.04628 10.5829 6.18076 10.9402 6.12003V6.08003ZM3.71021 2.29003C3.45655 2.03637 3.08683 1.9373 2.74033 2.03015C2.39383 2.12299 2.12318 2.39364 2.03033 2.74015C1.93748 3.08665 2.03655 3.45637 2.29021 3.71003L5.39021 6.80002C3.97578 8.16155 2.85007 9.79401 2.08021 11.6C1.9689 11.8551 1.9689 12.145 2.08021 12.4C4.10021 17.09 7.90021 20 12.0002 20C13.7973 19.9876 15.552 19.4525 17.0502 18.46L20.2902 21.71C20.478 21.8993 20.7336 22.0058 21.0002 22.0058C21.2668 22.0058 21.5224 21.8993 21.7102 21.71C21.8995 21.5223 22.006 21.2667 22.006 21C22.006 20.7334 21.8995 20.4778 21.7102 20.29L3.71021 2.29003ZM10.0702 11.48L12.5202 13.93C12.3512 13.9785 12.176 14.0021 12.0002 14C10.8956 14 10.0002 13.1046 10.0002 12C9.99816 11.8242 10.0217 11.649 10.0702 11.48ZM12.0002 18C8.82021 18 5.83021 15.71 4.10021 12C4.7463 10.5738 5.66328 9.2866 6.80021 8.21003L8.57021 10C7.71623 11.5586 7.99304 13.4938 9.24973 14.7505C10.5064 16.0072 12.4416 16.284 14.0002 15.43L15.5902 17C14.5013 17.6409 13.2636 17.9857 12.0002 18Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/favorite-selected.svg b/superset-frontend/src/assets/images/icons/favorite-selected.svg deleted file mode 100644 index 83985610ca7..00000000000 --- a/superset-frontend/src/assets/images/icons/favorite-selected.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M19.9731 9.67407C19.8701 9.38097 19.6008 9.17499 19.2861 9.14856L14.7403 8.49755L12.7031 4.44246C12.5696 4.17187 12.2903 4 11.984 4C11.6778 4 11.3985 4.17187 11.265 4.44246L9.22779 8.48971L4.68199 9.14856C4.38034 9.19065 4.12934 9.39753 4.03488 9.68192C3.9485 9.95951 4.02533 10.2612 4.2346 10.4663L7.5341 13.6037L6.73519 18.0588C6.67696 18.359 6.80168 18.6651 7.05476 18.8431C7.30116 19.0161 7.626 19.0373 7.89361 18.898L11.984 16.8038L16.0585 18.9059C16.1706 18.968 16.2972 19.0004 16.426 19C16.5952 19.0006 16.7603 18.9484 16.8973 18.851C17.1504 18.673 17.2751 18.3669 17.2169 18.0666L16.418 13.6115L19.7175 10.4741C19.9529 10.2783 20.0524 9.96685 19.9731 9.67407Z" fill="#FBC700"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/favorite-unselected.svg b/superset-frontend/src/assets/images/icons/favorite-unselected.svg deleted file mode 100644 index 0a4054756d3..00000000000 --- a/superset-frontend/src/assets/images/icons/favorite-unselected.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M19.9731 9.67407C19.8701 9.38097 19.6008 9.17499 19.2861 9.14856L14.7403 8.49755L12.7031 4.44246C12.5696 4.17187 12.2903 4 11.984 4C11.6778 4 11.3985 4.17187 11.265 4.44246L9.22779 8.48971L4.68199 9.14856C4.38034 9.19065 4.12934 9.39753 4.03488 9.68192C3.9485 9.95951 4.02533 10.2612 4.2346 10.4663L7.5341 13.6037L6.73519 18.0588C6.67696 18.359 6.80168 18.6651 7.05476 18.8431C7.30116 19.0161 7.626 19.0373 7.89361 18.898L11.984 16.8038L16.0585 18.9059C16.1706 18.968 16.2972 19.0004 16.426 19C16.5952 19.0006 16.7603 18.9484 16.8973 18.851C17.1504 18.673 17.2751 18.3669 17.2169 18.0666L16.418 13.6115L19.7175 10.4741C19.9529 10.2783 20.0524 9.96685 19.9731 9.67407ZM14.2593 12.9043L14.8172 16.0154L12.901 15.0264L11.9875 14.5551L9.13324 16.0165L9.5027 13.9567L9.69282 12.8965L7.454 10.7677L9.51467 10.469L10.5458 10.3196L11.983 7.46432L12.9531 9.39539L13.4223 10.3292L16.5034 10.7705L14.2593 12.9043Z" fill="#B2B2B2"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/favorite_small_selected.svg b/superset-frontend/src/assets/images/icons/favorite_small_selected.svg deleted file mode 100644 index 9ce5802aecf..00000000000 --- a/superset-frontend/src/assets/images/icons/favorite_small_selected.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M17.3089 10.7827C17.2402 10.5873 17.0607 10.45 16.8509 10.4324L13.8203 9.99837L12.4622 7.29497C12.3732 7.11458 12.187 7 11.9828 7C11.7787 7 11.5925 7.11458 11.5035 7.29497L10.1453 9.99314L7.11482 10.4324C6.91372 10.4604 6.74639 10.5984 6.68341 10.7879C6.62582 10.973 6.67705 11.1742 6.81656 11.3108L9.01622 13.4024L8.48362 16.3725C8.44479 16.5727 8.52794 16.7768 8.69666 16.8954C8.86093 17.0107 9.07749 17.0249 9.2559 16.932L11.9828 15.5359L14.6991 16.9372C14.7739 16.9786 14.8583 17.0003 14.9441 17C15.057 17.0004 15.167 16.9656 15.2584 16.9006C15.4271 16.782 15.5102 16.5779 15.4714 16.3777L14.9388 13.4077L17.1385 11.3161C17.2954 11.1855 17.3618 10.9779 17.3089 10.7827Z" fill="#FBC700"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/field_abc.svg b/superset-frontend/src/assets/images/icons/field_abc.svg deleted file mode 100644 index ce519516c88..00000000000 --- a/superset-frontend/src/assets/images/icons/field_abc.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M5.91015 16.1406C4.76953 16.1406 3.86328 15.4687 3.86328 14.2969C3.86328 12.9219 5.07812 12.6758 6.1914 12.5312C7.28515 12.3906 7.73828 12.4141 7.73828 11.9687C7.73828 11.1914 7.32812 10.7344 6.47265 10.7344C5.59375 10.7344 5.11328 11.2031 4.91016 11.6406L4.03516 11.3281C4.50391 10.2344 5.53515 9.92187 6.4414 9.92187C7.20703 9.92187 8.66015 10.1406 8.66015 12.0469V16H7.73828V15.1875H7.6914C7.5039 15.5781 6.95703 16.1406 5.91015 16.1406ZM6.05078 15.3125C7.14453 15.3125 7.73828 14.5781 7.73828 13.8281V12.9844C7.58203 13.1719 6.53515 13.2812 6.14453 13.3281C5.42578 13.4219 4.78516 13.6406 4.78516 14.3437C4.78516 14.9844 5.3164 15.3125 6.05078 15.3125ZM9.79766 16V8H10.7195V10.9531H10.7977C11.0008 10.6406 11.3602 9.92187 12.532 9.92187C14.0477 9.92187 15.0945 11.125 15.0945 13.0156C15.0945 14.9219 14.0477 16.125 12.5477 16.125C11.3914 16.125 11.0008 15.4062 10.7977 15.0781H10.6883V16H9.79766ZM10.7039 13C10.7039 14.3594 11.3133 15.2969 12.4227 15.2969C13.5789 15.2969 14.1727 14.2812 14.1727 13C14.1727 11.7344 13.5945 10.75 12.4227 10.75C11.2977 10.75 10.7039 11.6562 10.7039 13ZM18.3883 16.125C16.7008 16.125 15.6695 14.8281 15.6695 13.0312C15.6695 11.2031 16.7477 9.92187 18.3727 9.92187C19.6383 9.92187 20.5914 10.6719 20.7477 11.7969H19.8258C19.6852 11.25 19.2008 10.75 18.3883 10.75C17.3102 10.75 16.5914 11.6406 16.5914 13C16.5914 14.3906 17.2945 15.2969 18.3883 15.2969C19.107 15.2969 19.6539 14.9062 19.8258 14.25H20.7477C20.5914 15.3125 19.7164 16.125 18.3883 16.125Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/field_boolean.svg b/superset-frontend/src/assets/images/icons/field_boolean.svg deleted file mode 100644 index a804e7d9faa..00000000000 --- a/superset-frontend/src/assets/images/icons/field_boolean.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12.0005 4H11.0005V20H12.0005V4ZM15.248 12.4746C15.248 14.8184 16.1611 16.166 17.748 16.166C19.3301 16.166 20.2383 14.8281 20.2383 12.4893C20.2383 10.1553 19.3154 8.78809 17.748 8.78809C16.1709 8.78809 15.248 10.1504 15.248 12.4746ZM5.5791 9.93066V16H6.45801V8.9541H5.58398L3.70898 10.3018V11.2295L5.50098 9.93066H5.5791ZM17.748 15.3994C18.7881 15.3994 19.3545 14.3643 19.3545 12.4746C19.3545 10.6045 18.7783 9.55957 17.748 9.55957C16.7178 9.55957 16.1318 10.6143 16.1318 12.4746C16.1318 14.3594 16.708 15.3994 17.748 15.3994Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/field_date.svg b/superset-frontend/src/assets/images/icons/field_date.svg deleted file mode 100644 index cf796fab70b..00000000000 --- a/superset-frontend/src/assets/images/icons/field_date.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M15 7H9V7.5C9 7.77614 8.77614 8 8.5 8C8.22386 8 8 7.77614 8 7.5V7H6.5C5.67157 7 5 7.67157 5 8.5V11H19V8.5C19 7.67157 18.3284 7 17.5 7H16V7.5C16 7.77614 15.7761 8 15.5 8C15.2239 8 15 7.77614 15 7.5V7ZM16 6H17.5C18.8807 6 20 7.11929 20 8.5V16.5074C20 17.8881 18.8807 19.0074 17.5 19.0074H6.5C5.11929 19.0074 4 17.8881 4 16.5074V8.5C4 7.11929 5.11929 6 6.5 6H8V5.5C8 5.22386 8.22386 5 8.5 5C8.77614 5 9 5.22386 9 5.5V6H15V5.5C15 5.22386 15.2239 5 15.5 5C15.7761 5 16 5.22386 16 5.5V6ZM5 12V16.5074C5 17.3358 5.67157 18.0074 6.5 18.0074H17.5C18.3284 18.0074 19 17.3358 19 16.5074V12H5Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/field_derived.svg b/superset-frontend/src/assets/images/icons/field_derived.svg deleted file mode 100644 index 00e2115bf48..00000000000 --- a/superset-frontend/src/assets/images/icons/field_derived.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M6.98828 10.8086L5.95703 15.6484C5.77344 16.5156 5.38672 17.2246 4.79688 17.7754C4.20703 18.3262 3.59961 18.6016 2.97461 18.6016C2.63086 18.6016 2.37793 18.5361 2.21582 18.4053C2.05371 18.2744 1.97266 18.1094 1.97266 17.9102C1.97266 17.7422 2.02344 17.5938 2.125 17.4648C2.22656 17.3359 2.37305 17.2715 2.56445 17.2715C2.68555 17.2715 2.79199 17.2988 2.88379 17.3535C2.97559 17.4082 3.05664 17.4766 3.12695 17.5586C3.18164 17.625 3.24316 17.7148 3.31152 17.8281C3.37988 17.9414 3.43945 18.0391 3.49023 18.1211C3.79102 18.0977 4.04785 17.8945 4.26074 17.5117C4.47363 17.1289 4.6582 16.582 4.81445 15.8711L5.89258 10.8086H4.75L4.87305 10.2754H6.00391L6.08594 9.87695C6.17969 9.42383 6.32812 9.01563 6.53125 8.65234C6.73438 8.28906 6.96484 7.98047 7.22266 7.72656C7.47656 7.47656 7.76465 7.28027 8.08691 7.1377C8.40918 6.99512 8.71875 6.92383 9.01562 6.92383C9.35938 6.92383 9.6123 6.98926 9.77441 7.12012C9.93652 7.25098 10.0176 7.41601 10.0176 7.61523C10.0176 7.7832 9.96973 7.93164 9.87402 8.06055C9.77832 8.18945 9.62891 8.25391 9.42578 8.25391C9.30469 8.25391 9.19922 8.22754 9.10938 8.1748C9.01953 8.12207 8.93945 8.05273 8.86914 7.9668C8.79102 7.86914 8.72852 7.77734 8.68164 7.69141C8.63477 7.60547 8.57617 7.50977 8.50586 7.4043C8.23633 7.41602 7.99805 7.59375 7.79102 7.9375C7.58398 8.28125 7.39649 8.85351 7.22852 9.6543L7.09961 10.2754H8.57031L8.44727 10.8086H6.98828ZM9.21289 13.0703C9.21289 11.3125 9.66211 9.88672 10.5996 8.64648H11.3125C10.6191 9.53516 10.0771 11.4199 10.0771 13.0703C10.0771 14.7305 10.6143 16.6104 11.3125 17.499H10.5996C9.66211 16.2588 9.21289 14.833 9.21289 13.0703ZM14.501 14.0273H14.4229L13.1729 16.0146H12.2207L14.0225 13.3828L12.2012 10.751H13.2021L14.4521 12.709H14.5303L15.7656 10.751H16.7178L14.9307 13.3486L16.7422 16.0146H15.7461L14.501 14.0273ZM19.7305 13.0752C19.7305 14.833 19.2812 16.2588 18.3438 17.499H17.6309C18.3242 16.6104 18.8662 14.7256 18.8662 13.0752C18.8662 11.415 18.3291 9.53516 17.6309 8.64648H18.3438C19.2812 9.88672 19.7305 11.3125 19.7305 13.0752Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/field_num.svg b/superset-frontend/src/assets/images/icons/field_num.svg deleted file mode 100644 index 69b6aa2e337..00000000000 --- a/superset-frontend/src/assets/images/icons/field_num.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M10 8H11V10H13V8H14V10H16V11H14V13H16V14H14V16H13V14H11V16H10V14H8V13H10V11H8V10H10V8ZM13 13V11H11V13H13Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/field_struct.svg b/superset-frontend/src/assets/images/icons/field_struct.svg deleted file mode 100644 index 8877592f565..00000000000 --- a/superset-frontend/src/assets/images/icons/field_struct.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M4.95708 11.9012C5.80974 11.9813 6.22738 12.3817 6.22738 13.1506V14.7256C6.22738 15.5798 6.558 15.9269 7.37587 15.9269H7.60789V16.6797H7.28886C5.91995 16.6797 5.2761 16.087 5.2761 14.843V13.4816C5.2761 12.6273 4.95708 12.3444 4 12.3444V11.33C4.95708 11.33 5.2761 11.047 5.2761 10.1927V8.83663C5.2761 7.59263 5.91995 7 7.28886 7H7.60789V7.7528H7.37587C6.558 7.7528 6.22738 8.09984 6.22738 8.95408V10.5238C6.22738 11.2926 5.80974 11.693 4.95708 11.7731V11.9012ZM11.8086 17H11.0603L11.6114 13.9621H12.7193L11.8086 17ZM19.0429 11.7784C18.1903 11.6983 17.7726 11.2979 17.7726 10.5291V8.95408C17.7726 8.09984 17.442 7.7528 16.6241 7.7528H16.3921V7H16.7111C18.08 7 18.7239 7.59263 18.7239 8.83663V10.1981C18.7239 11.0523 19.0429 11.3353 20 11.3353V12.3497C19.0429 12.3497 18.7239 12.6327 18.7239 13.4869V14.843C18.7239 16.087 18.08 16.6797 16.7111 16.6797H16.3921V15.9269H16.6241C17.442 15.9269 17.7726 15.5798 17.7726 14.7256V13.1559C17.7726 12.3871 18.1903 11.9867 19.0429 11.9066V11.7784Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/file.svg b/superset-frontend/src/assets/images/icons/file.svg deleted file mode 100644 index 5484d710ba4..00000000000 --- a/superset-frontend/src/assets/images/icons/file.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M20 8.94C19.9896 8.84813 19.9695 8.75763 19.94 8.67V8.58C19.8919 8.47718 19.8278 8.38267 19.75 8.3L13.75 2.3C13.6673 2.22222 13.5728 2.15808 13.47 2.11H13.38L13.06 2H7C5.34315 2 4 3.34315 4 5V19C4 20.6569 5.34315 22 7 22H17C18.6569 22 20 20.6569 20 19V9C20 9 20 9 20 8.94ZM14 5.41L16.59 8H14V5.41ZM18 19C18 19.5523 17.5523 20 17 20H7C6.44772 20 6 19.5523 6 19V5C6 4.44772 6.44772 4 7 4H12V9C12 9.55228 12.4477 10 13 10H18V19Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/filter.svg b/superset-frontend/src/assets/images/icons/filter.svg deleted file mode 100644 index 6ce4a8f1e63..00000000000 --- a/superset-frontend/src/assets/images/icons/filter.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M9.69241 18.976C9.69241 19.895 10.417 20.64 11.3109 20.64H12.9293C13.8232 20.64 14.5478 19.895 14.5478 18.976C14.5478 18.057 13.8232 17.312 12.9293 17.312H11.3109C10.417 17.312 9.69241 18.057 9.69241 18.976ZM3.21856 4C2.32472 4 1.6001 4.74501 1.6001 5.664C1.6001 6.58299 2.32472 7.328 3.21856 7.328H21.0216C21.9155 7.328 22.6401 6.58299 22.6401 5.664C22.6401 4.74501 21.9155 4 21.0216 4H3.21856ZM6.45548 12.32C6.45548 13.239 7.1801 13.984 8.07394 13.984H16.1663C17.0601 13.984 17.7847 13.239 17.7847 12.32C17.7847 11.401 17.0601 10.656 16.1663 10.656H8.07394C7.1801 10.656 6.45548 11.401 6.45548 12.32Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/filter_small.svg b/superset-frontend/src/assets/images/icons/filter_small.svg deleted file mode 100644 index f762e26de0e..00000000000 --- a/superset-frontend/src/assets/images/icons/filter_small.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M10.5 16C10.5 16.5523 10.9477 17 11.5 17H12.5C13.0523 17 13.5 16.5523 13.5 16C13.5 15.4477 13.0523 15 12.5 15H11.5C10.9477 15 10.5 15.4477 10.5 16ZM6.5 7C5.94772 7 5.5 7.44772 5.5 8C5.5 8.55228 5.94772 9 6.5 9H17.5C18.0523 9 18.5 8.55228 18.5 8C18.5 7.44772 18.0523 7 17.5 7H6.5ZM8.5 12C8.5 12.5523 8.94772 13 9.5 13H14.5C15.0523 13 15.5 12.5523 15.5 12C15.5 11.4477 15.0523 11 14.5 11H9.5C8.94772 11 8.5 11.4477 8.5 12Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/folder.svg b/superset-frontend/src/assets/images/icons/folder.svg deleted file mode 100644 index 969153876ef..00000000000 --- a/superset-frontend/src/assets/images/icons/folder.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M19 5.49999H12.72L12.4 4.49999C11.9748 3.29734 10.8356 2.49507 9.56 2.49999H5C3.34315 2.49999 2 3.84314 2 5.49999V18.5C2 20.1568 3.34315 21.5 5 21.5H19C20.6569 21.5 22 20.1568 22 18.5V8.49999C22 6.84314 20.6569 5.49999 19 5.49999ZM20 18.5C20 19.0523 19.5523 19.5 19 19.5H5C4.44772 19.5 4 19.0523 4 18.5V5.49999C4 4.94771 4.44772 4.49999 5 4.49999H9.56C9.98992 4.49888 10.3724 4.77268 10.51 5.17999L11.05 6.81999C11.1876 7.2273 11.5701 7.5011 12 7.49999H19C19.5523 7.49999 20 7.94771 20 8.49999V18.5Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/function_x.svg b/superset-frontend/src/assets/images/icons/function_x.svg deleted file mode 100644 index 0f1f746a9dc..00000000000 --- a/superset-frontend/src/assets/images/icons/function_x.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="16" height="11" viewBox="0 0 16 11" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M4.82355 4.0072L3.96417 8.04041C3.81118 8.76307 3.48891 9.35388 2.99738 9.81287C2.50584 10.2719 1.99966 10.5013 1.47882 10.5013C1.19236 10.5013 0.981588 10.4468 0.846497 10.3378C0.711405 10.2287 0.64386 10.0912 0.64386 9.92517C0.64386 9.7852 0.686177 9.6615 0.770813 9.55408C0.855449 9.44666 0.977518 9.39295 1.13702 9.39295C1.23794 9.39295 1.32664 9.41573 1.40314 9.4613C1.47963 9.50688 1.54718 9.56384 1.60577 9.6322C1.65135 9.68754 1.70262 9.76241 1.75958 9.85681C1.81655 9.95121 1.86619 10.0326 1.90851 10.101C2.15916 10.0814 2.37319 9.91215 2.5506 9.59314C2.72801 9.27413 2.88181 8.8184 3.01202 8.22595L3.91046 4.0072H2.95831L3.06085 3.56287H4.00323L4.07159 3.23084C4.14972 2.85323 4.27342 2.51306 4.44269 2.21033C4.61196 1.90759 4.80402 1.65043 5.01886 1.43884C5.23045 1.23051 5.47052 1.06694 5.73907 0.94812C6.00763 0.829304 6.2656 0.769897 6.513 0.769897C6.79946 0.769897 7.01023 0.824422 7.14532 0.933472C7.28042 1.04252 7.34796 1.18005 7.34796 1.34607C7.34796 1.48604 7.30809 1.60974 7.22833 1.71716C7.14858 1.82459 7.02407 1.8783 6.8548 1.8783C6.75389 1.8783 6.666 1.85632 6.59113 1.81238C6.51626 1.76843 6.44952 1.71065 6.39093 1.63904C6.32583 1.55766 6.27374 1.48116 6.23468 1.40955C6.19562 1.33793 6.14679 1.25818 6.0882 1.17029C5.86358 1.18005 5.66502 1.32816 5.49249 1.61462C5.31997 1.90108 5.16372 2.37797 5.02374 3.04529L4.91632 3.56287H6.14191L6.03937 4.0072H4.82355ZM6.67739 5.89197C6.67739 4.42712 7.05174 3.23897 7.83299 2.20544H8.42706C7.84926 2.946 7.3976 4.51664 7.3976 5.89197C7.3976 7.27543 7.84519 8.842 8.42706 9.58256H7.83299C7.05174 8.54903 6.67739 7.36088 6.67739 5.89197ZM11.0841 6.68949H11.019L9.97736 8.34558H9.1839L10.6854 6.15239L9.16762 3.95919H10.0018L11.0434 5.59086H11.1085L12.138 3.95919H12.9315L11.4422 6.1239L12.9518 8.34558H12.1217L11.0841 6.68949ZM15.442 5.89604C15.442 7.36088 15.0677 8.54903 14.2864 9.58256H13.6924C14.2702 8.842 14.7218 7.27136 14.7218 5.89604C14.7218 4.51257 14.2742 2.946 13.6924 2.20544H14.2864C15.0677 3.23897 15.442 4.42712 15.442 5.89604Z" fill="#323232"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/gear.svg b/superset-frontend/src/assets/images/icons/gear.svg deleted file mode 100644 index f76f97f473a..00000000000 --- a/superset-frontend/src/assets/images/icons/gear.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M21.32 9.55L19.43 8.92L20.32 7.14C20.5049 6.75817 20.4287 6.30123 20.13 6L18 3.87C17.697 3.56672 17.2344 3.49029 16.85 3.68L15.07 4.57L14.44 2.68C14.3036 2.27617 13.9262 2.00317 13.5 2H10.5C10.0701 1.99889 9.68758 2.27269 9.55 2.68L8.92 4.57L7.14 3.68C6.75817 3.49511 6.30123 3.57126 6 3.87L3.87 6C3.56672 6.30298 3.49029 6.76557 3.68 7.15L4.57 8.93L2.68 9.56C2.27617 9.69639 2.00317 10.0738 2 10.5V13.5C1.99889 13.9299 2.27269 14.3124 2.68 14.45L4.57 15.08L3.68 16.86C3.49511 17.2418 3.57126 17.6988 3.87 18L6 20.13C6.30298 20.4333 6.76557 20.5097 7.15 20.32L8.93 19.43L9.56 21.32C9.69758 21.7273 10.0801 22.0011 10.51 22H13.51C13.9399 22.0011 14.3224 21.7273 14.46 21.32L15.09 19.43L16.87 20.32C17.2492 20.5001 17.7006 20.4243 18 20.13L20.13 18C20.4333 17.697 20.5097 17.2344 20.32 16.85L19.43 15.07L21.32 14.44C21.7238 14.3036 21.9968 13.9262 22 13.5V10.5C22.0011 10.0701 21.7273 9.68758 21.32 9.55ZM20 12.78L18.8 13.18C18.2415 13.3612 17.7908 13.7786 17.5675 14.3216C17.3441 14.8646 17.3706 15.4783 17.64 16L18.21 17.14L17.11 18.24L16 17.64C15.4811 17.3815 14.8756 17.3608 14.3403 17.5834C13.805 17.806 13.3927 18.2498 13.21 18.8L12.81 20H11.22L10.82 18.8C10.6388 18.2415 10.2214 17.7908 9.67842 17.5675C9.13543 17.3441 8.52171 17.3706 8 17.64L6.86 18.21L5.76 17.11L6.36 16C6.62938 15.4783 6.6559 14.8646 6.43254 14.3216C6.20918 13.7786 5.7585 13.3612 5.2 13.18L4 12.78V11.22L5.2 10.82C5.7585 10.6388 6.20918 10.2214 6.43254 9.67842C6.6559 9.13543 6.62938 8.52171 6.36 8L5.79 6.89L6.89 5.79L8 6.36C8.52171 6.62938 9.13543 6.6559 9.67842 6.43254C10.2214 6.20918 10.6388 5.7585 10.82 5.2L11.22 4H12.78L13.18 5.2C13.3612 5.7585 13.7786 6.20918 14.3216 6.43254C14.8646 6.6559 15.4783 6.62938 16 6.36L17.14 5.79L18.24 6.89L17.64 8C17.3815 8.51888 17.3608 9.1244 17.5834 9.65969C17.806 10.195 18.2498 10.6074 18.8 10.79L20 11.19V12.78ZM12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16C14.2091 16 16 14.2091 16 12C16 10.9391 15.5786 9.92172 14.8284 9.17158C14.0783 8.42143 13.0609 8 12 8ZM12 14C10.8954 14 10 13.1046 10 12C10 10.8954 10.8954 10 12 10C13.1046 10 14 10.8954 14 12C14 13.1046 13.1046 14 12 14Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/grid.svg b/superset-frontend/src/assets/images/icons/grid.svg deleted file mode 100644 index b128c3fe504..00000000000 --- a/superset-frontend/src/assets/images/icons/grid.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M21 2H3C2.44772 2 2 2.44772 2 3V21C2 21.5523 2.44772 22 3 22H21C21.5523 22 22 21.5523 22 21V3C22 2.44772 21.5523 2 21 2ZM11 20H4V13H11V20ZM11 11H4V4H11V11ZM20 20H13V13H20V20ZM20 11H13V4H20V11Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/image.svg b/superset-frontend/src/assets/images/icons/image.svg deleted file mode 100644 index dd06cb303c7..00000000000 --- a/superset-frontend/src/assets/images/icons/image.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M19 4H5C3.34315 4 2 5.34315 2 7V17C2 18.6569 3.34315 20 5 20H19C20.6569 20 22 18.6569 22 17V7C22 5.34315 20.6569 4 19 4ZM5 18C4.44772 18 4 17.5523 4 17V14.58L7.3 11.29C7.68884 10.9089 8.31116 10.9089 8.7 11.29L15.41 18H5ZM20 17C20 17.5523 19.5523 18 19 18H18.23L14.42 14.17L15.3 13.29C15.6888 12.9089 16.3112 12.9089 16.7 13.29L20 16.58V17ZM20 13.76L18.12 11.89C16.9357 10.7522 15.0643 10.7522 13.88 11.89L13 12.77L10.12 9.89C8.93567 8.75217 7.06432 8.75217 5.88 9.89L4 11.76V7C4 6.44772 4.44772 6 5 6H19C19.5523 6 20 6.44772 20 7V13.76Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/import.svg b/superset-frontend/src/assets/images/icons/import.svg deleted file mode 100644 index 582900382b9..00000000000 --- a/superset-frontend/src/assets/images/icons/import.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M15.2917 10.295L13.0017 12.595L13.0017 3.00499C13.0017 2.4527 12.554 2.00499 12.0017 2.00499C11.4495 2.00499 11.0017 2.4527 11.0017 3.00499L11.0017 12.595L8.71175 10.295C8.52398 10.1057 8.26838 9.99919 8.00175 9.99919C7.73511 9.99919 7.47951 10.1057 7.29175 10.295C7.10243 10.4828 6.99595 10.7383 6.99595 11.005C6.99595 11.2716 7.10243 11.5272 7.29175 11.715L11.2917 15.715C11.3868 15.806 11.499 15.8774 11.6217 15.925C11.8652 16.025 12.1383 16.025 12.3817 15.925C12.5045 15.8774 12.6166 15.806 12.7117 15.715L16.7117 11.715C16.9654 11.4613 17.0645 11.0916 16.9716 10.7451C16.8788 10.3986 16.6081 10.128 16.2616 10.0351C15.9151 9.94226 15.5454 10.0413 15.2917 10.295Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M21 12C20.4477 12 20 12.4477 20 13V19C20 19.5523 19.5523 20 19 20H5C4.44772 20 4 19.5523 4 19V13C4 12.4477 3.55228 12 3 12C2.44772 12 2 12.4477 2 13V19C2 20.6569 3.34315 22 5 22H19C20.6569 22 22 20.6569 22 19V13C22 12.4477 21.5523 12 21 12Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/info-solid.svg b/superset-frontend/src/assets/images/icons/info-solid.svg deleted file mode 100644 index 2ac0b766822..00000000000 --- a/superset-frontend/src/assets/images/icons/info-solid.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 9.34784 20.9464 6.8043 19.0711 4.92893C17.1957 3.05357 14.6522 2 12 2Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M11.6203 7.08002C11.8637 6.98 12.1368 6.98 12.3803 7.08002C12.503 7.12761 12.6152 7.19898 12.7103 7.29002C12.893 7.48165 12.9966 7.73525 13.0003 8.00002C12.9986 8.3326 12.8317 8.6426 12.555 8.82709C12.2783 9.01157 11.9279 9.04641 11.6203 8.92002C11.4991 8.86938 11.3875 8.79835 11.2903 8.71002C11.1031 8.5213 10.9987 8.26582 11.0003 8.00002C10.9969 7.86884 11.0243 7.7387 11.0803 7.62002C11.1309 7.49883 11.2019 7.38722 11.2903 7.29002C11.3854 7.19898 11.4975 7.12761 11.6203 7.08002ZM12.0003 11H11V12H11.0003V16H11V17H12.0003H15V16H13.0003V12L13 11.9762V11H12.0003Z" fill="white"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/info.svg b/superset-frontend/src/assets/images/icons/info.svg deleted file mode 100644 index 6d1820568fb..00000000000 --- a/superset-frontend/src/assets/images/icons/info.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M11 12H10V11H12C12.5523 11 13 11.4477 13 12V16H14V17H12H10V16H11V12ZM12.38 7.08C12.1365 6.97998 11.8635 6.97998 11.62 7.08C11.4972 7.12759 11.3851 7.19896 11.29 7.29C11.2017 7.3872 11.1306 7.49882 11.08 7.62C11.024 7.73868 10.9966 7.86882 11 8C10.9985 8.2658 11.1028 8.52128 11.29 8.71C11.3872 8.79833 11.4988 8.86936 11.62 8.92C11.9276 9.04639 12.278 9.01156 12.5547 8.82707C12.8314 8.64258 12.9983 8.33258 13 8C12.9963 7.73523 12.8927 7.48163 12.71 7.29C12.6149 7.19896 12.5028 7.12759 12.38 7.08ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 9.34784 20.9464 6.8043 19.0711 4.92893C17.1957 3.05357 14.6522 2 12 2ZM12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 14.1217 19.1571 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/info_solid_small.svg b/superset-frontend/src/assets/images/icons/info_solid_small.svg deleted file mode 100644 index ea18a0b3812..00000000000 --- a/superset-frontend/src/assets/images/icons/info_solid_small.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 16C11.4477 16 11 15.6269 11 15.1667V12H10V11H12C12.5523 11 13 11.3731 13 11.8333V15.1667C13 15.6269 12.5523 16 12 16ZM11 9C11 9.55228 11.4477 10 12 10C12.5523 10 13 9.55228 13 9C13 8.44772 12.5523 8 12 8C11.4477 8 11 8.44772 11 9Z" fill="white"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/join.svg b/superset-frontend/src/assets/images/icons/join.svg deleted file mode 100644 index c1b2d9cf4b9..00000000000 --- a/superset-frontend/src/assets/images/icons/join.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M21.9209 11.62C21.8733 11.4972 21.8019 11.3851 21.7109 11.29L17.7109 7.28996C17.3188 6.89784 16.683 6.89784 16.2909 7.28996C15.8988 7.68209 15.8988 8.31784 16.2909 8.70996L18.5909 11H5.41087L7.71087 8.70996C7.96453 8.45631 8.0636 8.08659 7.97075 7.74009C7.87791 7.39358 7.60725 7.12293 7.26075 7.03009C6.91425 6.93724 6.54453 7.03631 6.29087 7.28996L2.29087 11.29C2.19983 11.3851 2.12847 11.4972 2.08087 11.62C1.98085 11.8634 1.98085 12.1365 2.08087 12.38C2.12847 12.5027 2.19983 12.6149 2.29087 12.71L6.29087 16.71C6.47864 16.8993 6.73424 17.0058 7.00087 17.0058C7.26751 17.0058 7.52311 16.8993 7.71087 16.71C7.90019 16.5222 8.00667 16.2666 8.00667 16C8.00667 15.7333 7.90019 15.4777 7.71087 15.29L5.41087 13H18.5909L16.2909 15.29C16.1016 15.4777 15.9951 15.7333 15.9951 16C15.9951 16.2666 16.1016 16.5222 16.2909 16.71C16.4786 16.8993 16.7342 17.0058 17.0009 17.0058C17.2675 17.0058 17.5231 16.8993 17.7109 16.71L21.7109 12.71C21.8019 12.6149 21.8733 12.5027 21.9209 12.38C22.0209 12.1365 22.0209 11.8634 21.9209 11.62Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/keyboard.svg b/superset-frontend/src/assets/images/icons/keyboard.svg deleted file mode 100644 index 7b7801242e4..00000000000 --- a/superset-frontend/src/assets/images/icons/keyboard.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M6.21 13.29C6.11613 13.1974 6.00364 13.1258 5.88 13.08C5.63654 12.98 5.36346 12.98 5.12 13.08C4.86877 13.1709 4.67092 13.3688 4.58 13.62C4.40164 14.0387 4.52847 14.525 4.88859 14.8032C5.24871 15.0815 5.75129 15.0815 6.11141 14.8032C6.47153 14.525 6.59836 14.0387 6.42 13.62C6.37241 13.4972 6.30104 13.3851 6.21 13.29ZM13.5 11H14.5C15.0523 11 15.5 10.5523 15.5 10C15.5 9.44772 15.0523 9 14.5 9H13.5C12.9477 9 12.5 9.44772 12.5 10C12.5 10.5523 12.9477 11 13.5 11ZM9.5 11H10.5C11.0523 11 11.5 10.5523 11.5 10C11.5 9.44772 11.0523 9 10.5 9H9.5C8.94772 9 8.5 9.44772 8.5 10C8.5 10.5523 8.94772 11 9.5 11ZM6.5 9H5.5C4.94772 9 4.5 9.44772 4.5 10C4.5 10.5523 4.94772 11 5.5 11H6.5C7.05228 11 7.5 10.5523 7.5 10C7.5 9.44772 7.05228 9 6.5 9ZM20 5H4C2.34315 5 1 6.34315 1 8V16C1 17.6569 2.34315 19 4 19H20C21.6569 19 23 17.6569 23 16V8C23 6.34315 21.6569 5 20 5ZM21 16C21 16.5523 20.5523 17 20 17H4C3.44772 17 3 16.5523 3 16V8C3 7.44772 3.44772 7 4 7H20C20.5523 7 21 7.44772 21 8V16ZM15 13H9C8.44772 13 8 13.4477 8 14C8 14.5523 8.44772 15 9 15H15C15.5523 15 16 14.5523 16 14C16 13.4477 15.5523 13 15 13ZM18.5 9H17.5C16.9477 9 16.5 9.44772 16.5 10C16.5 10.5523 16.9477 11 17.5 11H18.5C19.0523 11 19.5 10.5523 19.5 10C19.5 9.44772 19.0523 9 18.5 9ZM19.21 13.29C19.1149 13.199 19.0028 13.1276 18.88 13.08C18.6365 12.98 18.3635 12.98 18.12 13.08C17.9964 13.1258 17.8839 13.1974 17.79 13.29C17.699 13.3851 17.6276 13.4972 17.58 13.62C17.4205 13.9945 17.504 14.4284 17.7911 14.717C18.0782 15.0056 18.5116 15.0914 18.887 14.9339C19.2623 14.7764 19.5048 14.4071 19.5 14C19.5034 13.8688 19.476 13.7387 19.42 13.62C19.3724 13.4972 19.301 13.3851 19.21 13.29Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/lightbulb.svg b/superset-frontend/src/assets/images/icons/lightbulb.svg deleted file mode 100644 index 8df86d48717..00000000000 --- a/superset-frontend/src/assets/images/icons/lightbulb.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M17.09 2.82002C15.2274 1.2881 12.7731 0.67819 10.41 1.16002C7.23261 1.80183 4.75657 4.29762 4.14001 7.48002C3.69428 9.84222 4.32484 12.2802 5.86001 14.13C6.56369 14.9241 6.96704 15.9395 7.00001 17V20C7.00001 21.6569 8.34315 23 10 23H14C15.6569 23 17 21.6569 17 20V17.19C17.0336 16.0192 17.4637 14.8944 18.22 14C20.978 10.5884 20.4739 5.59202 17.09 2.80002V2.82002ZM15 20C15 20.5523 14.5523 21 14 21H10C9.44772 21 9.00001 20.5523 9.00001 20V19H15V20ZM16.67 12.76C15.6645 13.9526 15.0779 15.4421 15 17H13V14C13 13.4477 12.5523 13 12 13C11.4477 13 11 13.4477 11 14V17H9.00001C8.97362 15.4681 8.40695 13.9948 7.40001 12.84C6.04859 11.2208 5.64656 9.01097 6.3411 7.01955C7.03563 5.02813 8.72475 3.5476 10.79 3.12002C12.557 2.75619 14.394 3.20678 15.7921 4.34697C17.1902 5.48717 18.001 7.19593 18 9.00002C18.0074 10.3699 17.5371 11.6995 16.67 12.76Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/line-chart-tile.svg b/superset-frontend/src/assets/images/icons/line-chart-tile.svg deleted file mode 100644 index c6b6b4e4034..00000000000 --- a/superset-frontend/src/assets/images/icons/line-chart-tile.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path d="M18.8805 17.0006H6.5948V5.8577C6.5948 5.77913 6.53051 5.71484 6.45194 5.71484H5.45194C5.37337 5.71484 5.30908 5.77913 5.30908 5.8577V18.1434C5.30908 18.222 5.37337 18.2863 5.45194 18.2863H18.8805C18.9591 18.2863 19.0234 18.222 19.0234 18.1434V17.1434C19.0234 17.0648 18.9591 17.0006 18.8805 17.0006ZM8.48408 14.2452C8.53944 14.3006 8.62873 14.3006 8.68587 14.2452L11.1555 11.7881L13.4341 14.0809C13.4894 14.1363 13.5805 14.1363 13.6359 14.0809L18.5537 9.16484C18.6091 9.10949 18.6091 9.01841 18.5537 8.96306L17.8466 8.25591C17.8197 8.22933 17.7835 8.21441 17.7457 8.21441C17.7079 8.21441 17.6716 8.22933 17.6448 8.25591L13.5377 12.3613L11.2627 10.072C11.2358 10.0454 11.1995 10.0305 11.1618 10.0305C11.124 10.0305 11.0877 10.0454 11.0609 10.072L7.77873 13.3345C7.75214 13.3613 7.73723 13.3976 7.73723 13.4354C7.73723 13.4732 7.75214 13.5094 7.77873 13.5363L8.48408 14.2452Z" fill="#666666"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/link.svg b/superset-frontend/src/assets/images/icons/link.svg deleted file mode 100644 index 515ac2beebd..00000000000 --- a/superset-frontend/src/assets/images/icons/link.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M4.22181 19.7782C2.26919 17.8256 2.26919 14.6598 4.22181 12.7071L7.05024 9.87871C7.44076 9.48819 8.07393 9.48819 8.46445 9.87871C8.85498 10.2692 8.85498 10.9024 8.46445 11.2929L5.63603 14.1214C4.46445 15.2929 4.46445 17.1924 5.63603 18.364C6.8076 19.5356 8.70709 19.5356 9.87867 18.364L12.7071 15.5356C13.0976 15.145 13.7308 15.145 14.1213 15.5356C14.5118 15.9261 14.5118 16.5593 14.1213 16.9498L11.2929 19.7782C9.34026 21.7308 6.17443 21.7308 4.22181 19.7782ZM19.7782 4.22186C17.8255 2.26924 14.6597 2.26924 12.7071 4.22186L9.87867 7.05029C9.48814 7.44081 9.48814 8.07398 9.87867 8.4645C10.2692 8.85503 10.9024 8.85503 11.2929 8.4645L14.1213 5.63607C15.2929 4.4645 17.1924 4.4645 18.3639 5.63607C19.5355 6.80765 19.5355 8.70714 18.3639 9.87871L15.5355 12.7071C15.145 13.0977 15.145 13.7308 15.5355 14.1214C15.926 14.5119 16.5592 14.5119 16.9497 14.1214L19.7782 11.2929C21.7308 9.34031 21.7308 6.17448 19.7782 4.22186ZM8.46445 14.1214C8.07393 14.5119 8.07393 15.145 8.46445 15.5356C8.85498 15.9261 9.48814 15.9261 9.87867 15.5356L15.5355 9.87871C15.926 9.48819 15.926 8.85503 15.5355 8.4645C15.145 8.07398 14.5118 8.07398 14.1213 8.4645L8.46445 14.1214Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/list.svg b/superset-frontend/src/assets/images/icons/list.svg deleted file mode 100644 index c31be33c670..00000000000 --- a/superset-frontend/src/assets/images/icons/list.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M3.71023 16.29C3.61513 16.199 3.50298 16.1276 3.38023 16.08C3.13677 15.98 2.86369 15.98 2.62023 16.08C2.49748 16.1276 2.38534 16.199 2.29023 16.29C2.19919 16.3851 2.12783 16.4972 2.08023 16.62C1.92364 16.9924 2.00649 17.4224 2.29023 17.71C2.38743 17.7983 2.49905 17.8694 2.62023 17.92C2.86227 18.027 3.13819 18.027 3.38023 17.92C3.50142 17.8694 3.61303 17.7983 3.71023 17.71C3.99398 17.4224 4.07683 16.9924 3.92023 16.62C3.87264 16.4972 3.80127 16.3851 3.71023 16.29ZM7.00023 8H21.0002C21.5525 8 22.0002 7.55228 22.0002 7C22.0002 6.44772 21.5525 6 21.0002 6H7.00023C6.44795 6 6.00023 6.44772 6.00023 7C6.00023 7.55228 6.44795 8 7.00023 8ZM3.71023 11.29C3.42267 11.0063 2.99263 10.9234 2.62023 11.08C2.49905 11.1306 2.38743 11.2017 2.29023 11.29C2.19919 11.3851 2.12783 11.4972 2.08023 11.62C1.97326 11.862 1.97326 12.138 2.08023 12.38C2.13087 12.5012 2.2019 12.6128 2.29023 12.71C2.38743 12.7983 2.49905 12.8694 2.62023 12.92C2.86227 13.027 3.13819 13.027 3.38023 12.92C3.50142 12.8694 3.61303 12.7983 3.71023 12.71C3.79856 12.6128 3.86959 12.5012 3.92023 12.38C4.02721 12.138 4.02721 11.862 3.92023 11.62C3.87264 11.4972 3.80127 11.3851 3.71023 11.29ZM21.0002 11H7.00023C6.44795 11 6.00023 11.4477 6.00023 12C6.00023 12.5523 6.44795 13 7.00023 13H21.0002C21.5525 13 22.0002 12.5523 22.0002 12C22.0002 11.4477 21.5525 11 21.0002 11ZM3.71023 6.29C3.61513 6.19896 3.50298 6.12759 3.38023 6.08C3.00784 5.9234 2.57779 6.00626 2.29023 6.29C2.2019 6.3872 2.13087 6.49882 2.08023 6.62C1.97326 6.86204 1.97326 7.13796 2.08023 7.38C2.13087 7.50118 2.2019 7.6128 2.29023 7.71C2.38743 7.79833 2.49905 7.86936 2.62023 7.92C2.99263 8.0766 3.42267 7.99374 3.71023 7.71C3.79856 7.6128 3.86959 7.50118 3.92023 7.38C4.02721 7.13796 4.02721 6.86204 3.92023 6.62C3.86959 6.49882 3.79856 6.3872 3.71023 6.29ZM21.0002 16H7.00023C6.44795 16 6.00023 16.4477 6.00023 17C6.00023 17.5523 6.44795 18 7.00023 18H21.0002C21.5525 18 22.0002 17.5523 22.0002 17C22.0002 16.4477 21.5525 16 21.0002 16Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/list_view.svg b/superset-frontend/src/assets/images/icons/list_view.svg deleted file mode 100644 index 9d33b74157b..00000000000 --- a/superset-frontend/src/assets/images/icons/list_view.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M3.71023 16.29C3.61513 16.199 3.50298 16.1276 3.38023 16.08C3.13677 15.98 2.86369 15.98 2.62023 16.08C2.49748 16.1276 2.38534 16.199 2.29023 16.29C2.19919 16.3851 2.12783 16.4972 2.08023 16.62C1.92364 16.9924 2.00649 17.4224 2.29023 17.71C2.38743 17.7983 2.49905 17.8694 2.62023 17.92C2.86227 18.027 3.13819 18.027 3.38023 17.92C3.50142 17.8694 3.61303 17.7983 3.71023 17.71C3.99398 17.4224 4.07683 16.9924 3.92023 16.62C3.87264 16.4972 3.80127 16.3851 3.71023 16.29ZM7.00023 8H21.0002C21.5525 8 22.0002 7.55228 22.0002 7C22.0002 6.44772 21.5525 6 21.0002 6H7.00023C6.44795 6 6.00023 6.44772 6.00023 7C6.00023 7.55228 6.44795 8 7.00023 8ZM3.71023 11.29C3.42267 11.0063 2.99263 10.9234 2.62023 11.08C2.49905 11.1306 2.38743 11.2017 2.29023 11.29C2.19919 11.3851 2.12783 11.4972 2.08023 11.62C1.97326 11.862 1.97326 12.138 2.08023 12.38C2.13087 12.5012 2.2019 12.6128 2.29023 12.71C2.38743 12.7983 2.49905 12.8694 2.62023 12.92C2.86227 13.027 3.13819 13.027 3.38023 12.92C3.50142 12.8694 3.61303 12.7983 3.71023 12.71C3.79856 12.6128 3.86959 12.5012 3.92023 12.38C4.02721 12.138 4.02721 11.862 3.92023 11.62C3.87264 11.4972 3.80127 11.3851 3.71023 11.29ZM21.0002 11H7.00023C6.44795 11 6.00023 11.4477 6.00023 12C6.00023 12.5523 6.44795 13 7.00023 13H21.0002C21.5525 13 22.0002 12.5523 22.0002 12C22.0002 11.4477 21.5525 11 21.0002 11ZM3.71023 6.29C3.61513 6.19896 3.50298 6.12759 3.38023 6.08C3.00784 5.9234 2.57779 6.00626 2.29023 6.29C2.2019 6.3872 2.13087 6.49882 2.08023 6.62C1.97326 6.86204 1.97326 7.13796 2.08023 7.38C2.13087 7.50118 2.2019 7.6128 2.29023 7.71C2.38743 7.79833 2.49905 7.86936 2.62023 7.92C2.99263 8.0766 3.42267 7.99374 3.71023 7.71C3.79856 7.6128 3.86959 7.50118 3.92023 7.38C4.02721 7.13796 4.02721 6.86204 3.92023 6.62C3.86959 6.49882 3.79856 6.3872 3.71023 6.29ZM21.0002 16H7.00023C6.44795 16 6.00023 16.4477 6.00023 17C6.00023 17.5523 6.44795 18 7.00023 18H21.0002C21.5525 18 22.0002 17.5523 22.0002 17C22.0002 16.4477 21.5525 16 21.0002 16Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/location.svg b/superset-frontend/src/assets/images/icons/location.svg deleted file mode 100644 index 830ad90053d..00000000000 --- a/superset-frontend/src/assets/images/icons/location.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C7.58172 2 4 5.58172 4 10C4 15.4 11.05 21.5 11.35 21.76C11.7242 22.0801 12.2758 22.0801 12.65 21.76C13 21.5 20 15.4 20 10C20 5.58172 16.4183 2 12 2ZM12 19.65C9.87 17.65 6 13.34 6 10C6 6.68629 8.68629 4 12 4C15.3137 4 18 6.68629 18 10C18 13.34 14.13 17.66 12 19.65ZM12 6C9.79086 6 8 7.79086 8 10C8 12.2091 9.79086 14 12 14C14.2091 14 16 12.2091 16 10C16 8.93913 15.5786 7.92172 14.8284 7.17157C14.0783 6.42143 13.0609 6 12 6ZM12 12C10.8954 12 10 11.1046 10 10C10 8.89543 10.8954 8 12 8C13.1046 8 14 8.89543 14 10C14 11.1046 13.1046 12 12 12Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/lock_locked.svg b/superset-frontend/src/assets/images/icons/lock_locked.svg deleted file mode 100644 index 192974687b1..00000000000 --- a/superset-frontend/src/assets/images/icons/lock_locked.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 13C11.3765 12.9927 10.8143 13.3745 10.5912 13.9568C10.3681 14.5391 10.5312 15.1988 11 15.61V17C11 17.5523 11.4477 18 12 18C12.5523 18 13 17.5523 13 17V15.61C13.4688 15.1988 13.6319 14.5391 13.4088 13.9568C13.1857 13.3745 12.6235 12.9927 12 13ZM17 9V7C17 4.23858 14.7614 2 12 2C9.23858 2 7 4.23858 7 7V9C5.34315 9 4 10.3431 4 12V19C4 20.6569 5.34315 22 7 22H17C18.6569 22 20 20.6569 20 19V12C20 10.3431 18.6569 9 17 9ZM9 7C9 5.34315 10.3431 4 12 4C13.6569 4 15 5.34315 15 7V9H9V7ZM18 19C18 19.5523 17.5523 20 17 20H7C6.44772 20 6 19.5523 6 19V12C6 11.4477 6.44772 11 7 11H17C17.5523 11 18 11.4477 18 12V19Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/lock_unlocked.svg b/superset-frontend/src/assets/images/icons/lock_unlocked.svg deleted file mode 100644 index f7768d89c87..00000000000 --- a/superset-frontend/src/assets/images/icons/lock_unlocked.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 13C11.3765 12.9927 10.8143 13.3745 10.5912 13.9568C10.3681 14.5391 10.5312 15.1988 11 15.61V17C11 17.5523 11.4477 18 12 18C12.5523 18 13 17.5523 13 17V15.61C13.4688 15.1988 13.6319 14.5391 13.4088 13.9568C13.1857 13.3745 12.6235 12.9927 12 13ZM17 9H9V7C8.99702 5.78561 9.72645 4.68921 10.8477 4.22276C11.9689 3.75631 13.2608 4.01183 14.12 4.87C14.4959 5.25407 14.7649 5.72983 14.9 6.25C14.9893 6.59655 15.2567 6.86912 15.6015 6.96505C15.9463 7.06097 16.316 6.96567 16.5715 6.71505C16.827 6.46442 16.9293 6.09655 16.84 5.75C16.6122 4.8848 16.1603 4.09494 15.53 3.46C14.0989 2.03339 11.9498 1.60841 10.0835 2.38296C8.2171 3.15751 7.00043 4.97931 7 7V9C5.34315 9 4 10.3431 4 12V19C4 20.6569 5.34315 22 7 22H17C18.6569 22 20 20.6569 20 19V12C20 10.3431 18.6569 9 17 9ZM18 19C18 19.5523 17.5523 20 17 20H7C6.44772 20 6 19.5523 6 19V12C6 11.4477 6.44772 11 7 11H17C17.5523 11 18 11.4477 18 12V19Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/map.svg b/superset-frontend/src/assets/images/icons/map.svg deleted file mode 100644 index c8bcf692f57..00000000000 --- a/superset-frontend/src/assets/images/icons/map.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M22.32 5.05L16.32 3.05H16.25C16.2035 3.04532 16.1566 3.04532 16.11 3.05H15.88H15.75H15.68L10 5L4.32 3.05C4.01493 2.94941 3.6801 3.00149 3.42 3.19C3.15781 3.37668 3.00149 3.67814 3 4V18C2.99889 18.4299 3.27269 18.8124 3.68 18.95L9.68 20.95C9.88145 21.0157 10.0986 21.0157 10.3 20.95L16 19.05L21.68 21C21.7862 21.0144 21.8938 21.0144 22 21C22.2091 21.0029 22.4132 20.9361 22.58 20.81C22.8422 20.6233 22.9985 20.3219 23 20V6C23.0011 5.57009 22.7273 5.18757 22.32 5.05ZM9 18.61L5 17.28V5.39L9 6.72V18.61ZM15 17.28L11 18.61V6.72L15 5.39V17.28ZM21 18.61L17 17.28V5.39L21 6.72V18.61Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/message.svg b/superset-frontend/src/assets/images/icons/message.svg deleted file mode 100644 index 57ac4a6b743..00000000000 --- a/superset-frontend/src/assets/images/icons/message.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M20.3393 9.32001L6.33928 2.32001C5.20731 1.75662 3.84362 1.96344 2.92961 2.83713C2.0156 3.71082 1.7475 5.06379 2.25928 6.22001L4.65928 11.59C4.76928 11.8523 4.76928 12.1477 4.65928 12.41L2.25928 17.78C1.84623 18.7079 1.93074 19.7818 2.48386 20.6337C3.03698 21.4856 3.98358 21.9998 4.99928 22C5.46751 21.9953 5.92877 21.886 6.34928 21.68L20.3493 14.68C21.362 14.1705 22.0011 13.1337 22.0011 12C22.0011 10.8663 21.362 9.82948 20.3493 9.32001H20.3393ZM19.4493 12.89L5.44928 19.89C5.0728 20.0708 4.62362 19.9986 4.32279 19.7089C4.02196 19.4192 3.93284 18.973 4.09928 18.59L6.48928 13.22C6.52022 13.1483 6.54693 13.0748 6.56928 13H13.4593C14.0116 13 14.4593 12.5523 14.4593 12C14.4593 11.4477 14.0116 11 13.4593 11H6.56928C6.54693 10.9252 6.52022 10.8517 6.48928 10.78L4.09928 5.41001C3.93284 5.02698 4.02196 4.58085 4.32279 4.29116C4.62362 4.00147 5.0728 3.92924 5.44928 4.11001L19.4493 11.11C19.7832 11.2811 19.9933 11.6248 19.9933 12C19.9933 12.3753 19.7832 12.7189 19.4493 12.89Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/minus.svg b/superset-frontend/src/assets/images/icons/minus.svg deleted file mode 100644 index 22e07440348..00000000000 --- a/superset-frontend/src/assets/images/icons/minus.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 9.34784 20.9464 6.8043 19.0711 4.92893C17.1957 3.05357 14.6522 2 12 2ZM12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 14.1217 19.1571 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20ZM16 11H8C7.44772 11 7 11.4477 7 12C7 12.5523 7.44772 13 8 13H16C16.5523 13 17 12.5523 17 12C17 11.4477 16.5523 11 16 11Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/minus_solid.svg b/superset-frontend/src/assets/images/icons/minus_solid.svg deleted file mode 100644 index f34bb7127d9..00000000000 --- a/superset-frontend/src/assets/images/icons/minus_solid.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 9.34784 20.9464 6.8043 19.0711 4.92893C17.1957 3.05357 14.6522 2 12 2Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M16 11H8C7.44772 11 7 11.4477 7 12C7 12.5523 7.44772 13 8 13H16C16.5523 13 17 12.5523 17 12C17 11.4477 16.5523 11 16 11Z" fill="white"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/more_horiz.svg b/superset-frontend/src/assets/images/icons/more_horiz.svg deleted file mode 100644 index 5a66fe35c79..00000000000 --- a/superset-frontend/src/assets/images/icons/more_horiz.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 10C10.8954 10 10 10.8954 10 12C10 13.1046 10.8954 14 12 14C13.1046 14 14 13.1046 14 12C14 10.8954 13.1046 10 12 10ZM5 10C3.89543 10 3 10.8954 3 12C3 13.1046 3.89543 14 5 14C6.10457 14 7 13.1046 7 12C7 10.8954 6.10457 10 5 10ZM19 10C17.8954 10 17 10.8954 17 12C17 13.1046 17.8954 14 19 14C20.1046 14 21 13.1046 21 12C21 10.8954 20.1046 10 19 10Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/more_vert.svg b/superset-frontend/src/assets/images/icons/more_vert.svg deleted file mode 100644 index 2fbe6287d86..00000000000 --- a/superset-frontend/src/assets/images/icons/more_vert.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M10 12C10 13.1046 10.8954 14 12 14C13.1046 14 14 13.1046 14 12C14 10.8954 13.1046 10 12 10C10.8954 10 10 10.8954 10 12ZM10 19C10 20.1046 10.8954 21 12 21C13.1046 21 14 20.1046 14 19C14 17.8954 13.1046 17 12 17C10.8954 17 10 17.8954 10 19ZM10 5C10 6.10457 10.8954 7 12 7C13.1046 7 14 6.10457 14 5C14 3.89543 13.1046 3 12 3C10.8954 3 10 3.89543 10 5Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/move.svg b/superset-frontend/src/assets/images/icons/move.svg deleted file mode 100644 index bec9182e645..00000000000 --- a/superset-frontend/src/assets/images/icons/move.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M7 7H9V9H7V7ZM7 11H9V13H7V11ZM11 11H13V13H11V11ZM17 11H15V13H17V11ZM9 15H7V17H9V15ZM13 15H11V17H13V15ZM15 15H17V17H15V15ZM11 7H13V9H11V7ZM17 7H15V9H17V7Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/nav_charts.svg b/superset-frontend/src/assets/images/icons/nav_charts.svg deleted file mode 100644 index e4faf06745b..00000000000 --- a/superset-frontend/src/assets/images/icons/nav_charts.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M21 20H4V3H3V21H21V20Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M17 4C16.4477 4 16 4.44772 16 5V18C16 18.5523 16.4477 19 17 19H18C18.5523 19 19 18.5523 19 18V5C19 4.44772 18.5523 4 18 4H17ZM11 8C11 7.44772 11.4477 7 12 7H13C13.5523 7 14 7.44772 14 8V18C14 18.5523 13.5523 19 13 19H12C11.4477 19 11 18.5523 11 18V8ZM6 11C6 10.4477 6.44772 10 7 10H8C8.55228 10 9 10.4477 9 11V18C9 18.5523 8.55228 19 8 19H7C6.44772 19 6 18.5523 6 18V11Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/nav_dashboard.svg b/superset-frontend/src/assets/images/icons/nav_dashboard.svg deleted file mode 100644 index b14b337114f..00000000000 --- a/superset-frontend/src/assets/images/icons/nav_dashboard.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M2.00003 14C2.00003 8.47715 6.47718 4 12 4C14.6522 4 17.1957 5.05357 19.0711 6.92893C20.9465 8.8043 22 11.3478 22 14C22.005 15.9806 21.4163 17.9172 20.31 19.56C20.1238 19.8356 19.8127 20.0005 19.48 20C19.2806 20.0004 19.0856 19.9412 18.92 19.83C18.6996 19.6817 18.5473 19.4518 18.4966 19.191C18.446 18.9302 18.5012 18.66 18.65 18.44C20.8822 15.1022 20.2942 10.6268 17.2756 7.97879C14.257 5.33082 9.7431 5.33082 6.72447 7.97879C3.70584 10.6268 3.11785 15.1022 5.35003 18.44C5.65931 18.8984 5.53843 19.5207 5.08003 19.83C4.62163 20.1393 3.99931 20.0184 3.69003 19.56C2.58375 17.9172 1.99511 15.9806 2.00003 14ZM12.51 13.07L15.29 10.29C15.6822 9.89788 16.3179 9.89788 16.71 10.29C17.1022 10.6821 17.1022 11.3179 16.71 11.71L13.93 14.49C13.9743 14.6565 13.9978 14.8278 14 15C14 16.1046 13.1046 17 12 17C11.8278 16.9978 11.6565 16.9743 11.49 16.93L10.71 17.71C10.5223 17.8993 10.2667 18.0058 10 18.0058C9.73339 18.0058 9.4778 17.8993 9.29003 17.71C9.10072 17.5222 8.99423 17.2666 8.99423 17C8.99423 16.7334 9.10072 16.4778 9.29003 16.29L10.07 15.51C10.0258 15.3435 10.0023 15.1722 10 15C10 13.8954 10.8955 13 12 13C12.1723 13.0022 12.3436 13.0257 12.51 13.07Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/nav_data.svg b/superset-frontend/src/assets/images/icons/nav_data.svg deleted file mode 100644 index 96fe26eeb31..00000000000 --- a/superset-frontend/src/assets/images/icons/nav_data.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M8 2H16C18.2091 2 20 3.79086 20 6V18C20 20.2091 18.2091 22 16 22H8C5.79086 22 4 20.2091 4 18V6C4 3.79086 5.79086 2 8 2ZM16 20C17.1046 20 18 19.1046 18 18V15.44C17.396 15.8036 16.705 15.997 16 16H8C7.29504 15.997 6.60399 15.8036 6 15.44V18C6 19.1046 6.89543 20 8 20H16ZM16 14C17.1046 14 18 13.1046 18 12V9.44C17.396 9.80355 16.705 9.99705 16 10H8C7.29504 9.99705 6.60399 9.80355 6 9.44V12C6 13.1046 6.89543 14 8 14H16ZM8 8H16C17.1046 8 18 7.10457 18 6C18 4.89543 17.1046 4 16 4H8C6.89543 4 6 4.89543 6 6C6 7.10457 6.89543 8 8 8ZM8 11C7.44772 11 7 11.4477 7 12C7 12.5523 7.44772 13 8 13C8.55228 13 9 12.5523 9 12C9 11.4477 8.55228 11 8 11ZM8 17C7.44772 17 7 17.4477 7 18C7 18.5523 7.44772 19 8 19C8.55228 19 9 18.5523 9 18C9 17.4477 8.55228 17 8 17Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/nav_explore.svg b/superset-frontend/src/assets/images/icons/nav_explore.svg deleted file mode 100644 index 7775d9b73b9..00000000000 --- a/superset-frontend/src/assets/images/icons/nav_explore.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2.5C6.47715 2.5 2 6.97715 2 12.5C2 18.0228 6.47715 22.5 12 22.5C17.5228 22.5 22 18.0228 22 12.5C22 9.84784 20.9464 7.3043 19.0711 5.42893C17.1957 3.55357 14.6522 2.5 12 2.5ZM13 20.43V19.5C13 18.9477 12.5523 18.5 12 18.5C11.4477 18.5 11 18.9477 11 19.5V20.43C7.37981 19.9709 4.52909 17.1202 4.07 13.5H5C5.55228 13.5 6 13.0523 6 12.5C6 11.9477 5.55228 11.5 5 11.5H4.07C4.52909 7.87981 7.37981 5.02909 11 4.57V5.5C11 6.05228 11.4477 6.5 12 6.5C12.5523 6.5 13 6.05228 13 5.5V4.57C16.6202 5.02909 19.4709 7.87981 19.93 11.5H19C18.4477 11.5 18 11.9477 18 12.5C18 13.0523 18.4477 13.5 19 13.5H19.93C19.4709 17.1202 16.6202 19.9709 13 20.43Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M10.1399 10.1701L15.1399 8.05005C15.5147 7.89198 15.9479 7.97671 16.2356 8.26436C16.5232 8.552 16.608 8.98523 16.4499 9.36005L14.3299 14.3601C14.2289 14.5931 14.043 14.7791 13.8099 14.8801L8.80989 17.0001C8.68491 17.0594 8.54826 17.0902 8.40989 17.0901C8.14612 17.0863 7.89452 16.9785 7.70989 16.7901C7.42189 16.5006 7.33877 16.0652 7.49989 15.6901L9.61989 10.6901C9.72088 10.457 9.9068 10.271 10.1399 10.1701ZM10.3699 14.1501L12.6499 13.1501L13.6499 10.8701L11.3699 11.8701L10.3699 14.1501Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/nav_home.svg b/superset-frontend/src/assets/images/icons/nav_home.svg deleted file mode 100644 index 2c02850d1fa..00000000000 --- a/superset-frontend/src/assets/images/icons/nav_home.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M20.0001 8.02393L14.0001 2.76393C12.8613 1.74536 11.1389 1.74536 10.0001 2.76393L4.0001 8.02393C3.35754 8.5986 2.99324 9.42191 3.00009 10.2839V19.0239C3.00009 20.6808 4.34324 22.0239 6.00009 22.0239H18.0001C19.6569 22.0239 21.0001 20.6808 21.0001 19.0239V10.2739C21.0041 9.41539 20.64 8.59629 20.0001 8.02393ZM14.0001 20.0239H10.0001V15.0239C10.0001 14.4716 10.4478 14.0239 11.0001 14.0239H13.0001C13.5524 14.0239 14.0001 14.4716 14.0001 15.0239V20.0239ZM19.0001 19.0239C19.0001 19.5762 18.5524 20.0239 18.0001 20.0239H16.0001V15.0239C16.0001 13.3671 14.6569 12.0239 13.0001 12.0239H11.0001C9.34324 12.0239 8.00009 13.3671 8.00009 15.0239V20.0239H6.0001C5.44781 20.0239 5.0001 19.5762 5.0001 19.0239V10.2739C5.00046 9.9867 5.12431 9.7135 5.3401 9.52393L11.3401 4.27393C11.7176 3.94229 12.2826 3.94229 12.6601 4.27393L18.6601 9.52393C18.8759 9.7135 18.9997 9.9867 19.0001 10.2739V19.0239Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/nav_lab.svg b/superset-frontend/src/assets/images/icons/nav_lab.svg deleted file mode 100644 index 340d4d9e52f..00000000000 --- a/superset-frontend/src/assets/images/icons/nav_lab.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M15.0001 8.73L20.1101 17.49H20.0701C20.6105 18.4176 20.614 19.5631 20.0794 20.494C19.5448 21.4249 18.5536 21.9992 17.4801 22H6.48015C5.40669 21.9992 4.41548 21.4249 3.88089 20.494C3.34631 19.5631 3.34984 18.4176 3.89015 17.49L9.00015 8.73V4H8.00015C7.44786 4 7.00015 3.55228 7.00015 3C7.00015 2.44772 7.44786 2 8.00015 2H16.0001C16.5524 2 17.0001 2.44772 17.0001 3C17.0001 3.55228 16.5524 4 16.0001 4H15.0001V8.73ZM11.0001 9C10.9966 9.17268 10.9483 9.3415 10.8601 9.49L10.0001 11H14.0001L13.1401 9.5C13.0503 9.34857 13.002 9.17609 13.0001 9V4H11.0001V9ZM17.5201 19.99C17.8753 19.9879 18.2026 19.7975 18.3801 19.49V19.5C18.5588 19.1906 18.5588 18.8094 18.3801 18.5L15.1801 13H8.83015L5.66015 18.49C5.48151 18.7994 5.48151 19.1806 5.66015 19.49C5.8377 19.7975 6.16503 19.9879 6.52015 19.99H17.5201ZM10.0001 15C9.44786 15 9.00015 15.4477 9.00015 16C9.00015 16.5523 9.44786 17 10.0001 17C10.5524 17 11.0001 16.5523 11.0001 16C11.0001 15.4477 10.5524 15 10.0001 15ZM14.0001 16C13.4479 16 13.0001 16.4477 13.0001 17C13.0001 17.5523 13.4479 18 14.0001 18C14.5524 18 15.0001 17.5523 15.0001 17C15.0001 16.4477 14.5524 16 14.0001 16Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/note.svg b/superset-frontend/src/assets/images/icons/note.svg deleted file mode 100644 index 01819bbbb9d..00000000000 --- a/superset-frontend/src/assets/images/icons/note.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M16 14H8C7.44772 14 7 14.4477 7 15C7 15.5523 7.44772 16 8 16H16C16.5523 16 17 15.5523 17 15C17 14.4477 16.5523 14 16 14ZM16 10H10C9.44772 10 9 10.4477 9 11C9 11.5523 9.44772 12 10 12H16C16.5523 12 17 11.5523 17 11C17 10.4477 16.5523 10 16 10ZM20 4H17V3C17 2.44772 16.5523 2 16 2C15.4477 2 15 2.44772 15 3V4H13V3C13 2.44772 12.5523 2 12 2C11.4477 2 11 2.44772 11 3V4H9V3C9 2.44772 8.55228 2 8 2C7.44772 2 7 2.44772 7 3V4H4C3.44772 4 3 4.44772 3 5V19C3 20.6569 4.34315 22 6 22H18C19.6569 22 21 20.6569 21 19V5C21 4.44772 20.5523 4 20 4ZM19 19C19 19.5523 18.5523 20 18 20H6C5.44772 20 5 19.5523 5 19V6H7V7C7 7.55228 7.44772 8 8 8C8.55228 8 9 7.55228 9 7V6H11V7C11 7.55228 11.4477 8 12 8C12.5523 8 13 7.55228 13 7V6H15V7C15 7.55228 15.4477 8 16 8C16.5523 8 17 7.55228 17 7V6H19V19Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/paperclip.svg b/superset-frontend/src/assets/images/icons/paperclip.svg deleted file mode 100644 index c3df450333d..00000000000 --- a/superset-frontend/src/assets/images/icons/paperclip.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M19.0797 12.42L12.8997 18.61C11.2178 20.1047 8.66232 20.0295 7.07126 18.4384C5.48019 16.8474 5.40496 14.2919 6.89968 12.61L14.8997 4.61C15.8916 3.66778 17.4478 3.66778 18.4397 4.61C19.408 5.59134 19.408 7.16867 18.4397 8.15L11.5397 15.04C11.3539 15.2401 11.0755 15.3258 10.8094 15.265C10.5432 15.2041 10.3297 15.0059 10.2494 14.745C10.169 14.4841 10.2339 14.2001 10.4197 14L15.5497 8.88C15.9418 8.48788 15.9418 7.85212 15.5497 7.46C15.1576 7.06788 14.5218 7.06788 14.1297 7.46L8.99968 12.6C8.48121 13.1145 8.1896 13.8146 8.1896 14.545C8.1896 15.2754 8.48121 15.9756 8.99968 16.49C10.0888 17.5275 11.8005 17.5275 12.8897 16.49L19.7797 9.59C21.4318 7.81694 21.3831 5.05394 19.6694 3.34027C17.9557 1.6266 15.1927 1.57785 13.4197 3.23L5.41968 11.23C3.17845 13.7123 3.28846 17.519 5.66932 19.8678C8.05018 22.2165 11.8581 22.2748 14.3097 20L20.4997 13.82C20.7533 13.5663 20.8524 13.1966 20.7596 12.8501C20.6667 12.5036 20.3961 12.233 20.0496 12.1401C19.7031 12.0473 19.3333 12.1463 19.0797 12.4V12.42Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/pie-chart-tile.svg b/superset-frontend/src/assets/images/icons/pie-chart-tile.svg deleted file mode 100644 index 3bd3bf74df4..00000000000 --- a/superset-frontend/src/assets/images/icons/pie-chart-tile.svg +++ /dev/null @@ -1,28 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> - <g clip-path="url(#clip0_1714_70879)"> - <path d="M18.952 12.1055H12.5591V5.7126C12.5591 5.63402 12.4948 5.56974 12.4162 5.56974H11.952C11.0139 5.5682 10.0848 5.75216 9.21816 6.11103C8.35148 6.4699 7.56431 6.99659 6.90195 7.66081C6.24965 8.3111 5.7299 9.08193 5.37159 9.93045C4.99875 10.8105 4.80742 11.7568 4.80909 12.7126C4.80756 13.6506 4.99151 14.5797 5.35038 15.4464C5.70925 16.3131 6.23595 17.1002 6.90016 17.7626C7.55552 18.418 8.31981 18.934 9.16981 19.293C10.0499 19.6658 10.9962 19.8571 11.952 19.8555C12.89 19.857 13.8191 19.673 14.6857 19.3142C15.5524 18.9553 16.3396 18.4286 17.002 17.7644C17.6573 17.109 18.1734 16.3447 18.5323 15.4947C18.9052 14.6147 19.0965 13.6684 19.0948 12.7126V12.2483C19.0948 12.1697 19.0305 12.1055 18.952 12.1055ZM16.1252 16.9233C15.5722 17.472 14.9164 17.9061 14.1954 18.2009C13.4744 18.4957 12.7023 18.6453 11.9234 18.6412C10.3502 18.634 8.87159 18.018 7.75909 16.9055C6.63945 15.7858 6.02338 14.2965 6.02338 12.7126C6.02338 11.1287 6.63945 9.63938 7.75909 8.51974C8.73409 7.54474 9.98945 6.9501 11.3448 6.81438V13.3197H17.8502C17.7127 14.6822 17.1127 15.9447 16.1252 16.9233ZM20.5234 11.1126L20.477 10.609C20.3252 8.96438 19.5948 7.4126 18.4198 6.24117C17.244 5.06759 15.6954 4.34128 14.0412 4.1876L13.5359 4.14117C13.452 4.13402 13.3805 4.19831 13.3805 4.28224V11.1412C13.3805 11.2197 13.4448 11.284 13.5234 11.284L20.3805 11.2662C20.4645 11.2662 20.5305 11.1947 20.5234 11.1126ZM14.5912 10.0733V5.49117C15.7161 5.72661 16.7484 6.2837 17.5627 7.09474C18.3787 7.90902 18.9377 8.94474 19.1698 10.0608L14.5912 10.0733Z" fill="#666666"/> - </g> - <defs> - <clipPath id="clip0_1714_70879"> - <rect width="16" height="16" fill="white" transform="translate(4.6665 4)"/> - </clipPath> - </defs> -</svg> diff --git a/superset-frontend/src/assets/images/icons/placeholder.svg b/superset-frontend/src/assets/images/icons/placeholder.svg deleted file mode 100644 index bf1ed56064a..00000000000 --- a/superset-frontend/src/assets/images/icons/placeholder.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<rect x="2" y="2" width="20" height="20" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/plus.svg b/superset-frontend/src/assets/images/icons/plus.svg deleted file mode 100644 index 539379e884d..00000000000 --- a/superset-frontend/src/assets/images/icons/plus.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 9.34784 20.9464 6.8043 19.0711 4.92893C17.1957 3.05357 14.6522 2 12 2ZM12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 14.1217 19.1571 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20ZM16 11H13V8C13 7.44772 12.5523 7 12 7C11.4477 7 11 7.44772 11 8V11H8C7.44772 11 7 11.4477 7 12C7 12.5523 7.44772 13 8 13H11V16C11 16.5523 11.4477 17 12 17C12.5523 17 13 16.5523 13 16V13H16C16.5523 13 17 12.5523 17 12C17 11.4477 16.5523 11 16 11Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/plus_large.svg b/superset-frontend/src/assets/images/icons/plus_large.svg deleted file mode 100644 index 4ffdb6912b3..00000000000 --- a/superset-frontend/src/assets/images/icons/plus_large.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M19 11H13V5C13 4.44772 12.5523 4 12 4C11.4477 4 11 4.44772 11 5V11H5C4.44772 11 4 11.4477 4 12C4 12.5523 4.44772 13 5 13H11V19C11 19.5523 11.4477 20 12 20C12.5523 20 13 19.5523 13 19V13H19C19.5523 13 20 12.5523 20 12C20 11.4477 19.5523 11 19 11Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/plus_small.svg b/superset-frontend/src/assets/images/icons/plus_small.svg deleted file mode 100644 index efe61a5082d..00000000000 --- a/superset-frontend/src/assets/images/icons/plus_small.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M16 11H13V8C13 7.44772 12.5523 7 12 7C11.4477 7 11 7.44772 11 8V11H8C7.44772 11 7 11.4477 7 12C7 12.5523 7.44772 13 8 13H11V16C11 16.5523 11.4477 17 12 17C12.5523 17 13 16.5523 13 16V13H16C16.5523 13 17 12.5523 17 12C17 11.4477 16.5523 11 16 11Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/plus_solid.svg b/superset-frontend/src/assets/images/icons/plus_solid.svg deleted file mode 100644 index 3601cdf8b77..00000000000 --- a/superset-frontend/src/assets/images/icons/plus_solid.svg +++ /dev/null @@ -1,22 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 9.34784 20.9464 6.8043 19.0711 4.92893C17.1957 3.05357 14.6522 2 12 2Z" fill="currentColor"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M16 11H13V8C13 7.44772 12.5523 7 12 7C11.4477 7 11 7.44772 11 8V11H8C7.44772 11 7 11.4477 7 12C7 12.5523 7.44772 13 8 13H11V16C11 16.5523 11.4477 17 12 17C12.5523 17 13 16.5523 13 16V13H16C16.5523 13 17 12.5523 17 12C17 11.4477 16.5523 11 16 11Z" fill="white"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/refresh.svg b/superset-frontend/src/assets/images/icons/refresh.svg deleted file mode 100644 index 6e5fc9eab69..00000000000 --- a/superset-frontend/src/assets/images/icons/refresh.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M18.328 14.808H14.704C14.2622 14.808 13.904 15.1662 13.904 15.608C13.904 16.0498 14.2622 16.408 14.704 16.408H16.624C14.8187 18.2946 12.0484 18.8953 9.62382 17.9258C7.19929 16.9563 5.60683 14.6112 5.6 12C5.6 11.5582 5.24183 11.2 4.8 11.2C4.35817 11.2 4 11.5582 4 12C4.00864 15.193 5.91511 18.075 8.85019 19.3322C11.7853 20.5893 15.1868 19.9808 17.504 17.784V19.2C17.504 19.6418 17.8622 20 18.304 20C18.7458 20 19.104 19.6418 19.104 19.2V15.6C19.0999 15.1705 18.7573 14.8209 18.328 14.808ZM12 4C9.94911 4.00585 7.97879 4.79913 6.496 6.216V4.8C6.496 4.35817 6.13783 4 5.696 4C5.25417 4 4.896 4.35817 4.896 4.8V8.4C4.896 8.84183 5.25417 9.2 5.696 9.2H9.296C9.73783 9.2 10.096 8.84183 10.096 8.4C10.096 7.95817 9.73783 7.6 9.296 7.6H7.376C9.18027 5.71445 11.9487 5.11328 14.3725 6.08069C16.7963 7.0481 18.3899 9.39029 18.4 12C18.4 12.4418 18.7582 12.8 19.2 12.8C19.6418 12.8 20 12.4418 20 12C20 9.87827 19.1571 7.84344 17.6569 6.34315C16.1566 4.84285 14.1217 4 12 4Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/save.svg b/superset-frontend/src/assets/images/icons/save.svg deleted file mode 100644 index 1000d61e456..00000000000 --- a/superset-frontend/src/assets/images/icons/save.svg +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M4 4V20H20V7.82843L17 4.82843V6C17 7.10457 16.1046 8 15 8H9C7.89543 8 7 7.10457 7 6V4H4ZM9 4H15V6H9V4ZM15 2H17L22 7V20C22 21.1046 21.1046 22 20 22H4C2.89543 22 2 21.1046 2 20V4C2 2.89543 2.89543 2 4 2H7H9H15ZM14 14C14 15.1046 13.1046 16 12 16C10.8954 16 10 15.1046 10 14C10 12.8954 10.8954 12 12 12C13.1046 12 14 12.8954 14 14ZM16 14C16 16.2091 14.2091 18 12 18C9.79086 18 8 16.2091 8 14C8 11.7909 9.79086 10 12 10C14.2091 10 16 11.7909 16 14Z" fill="currentColor"/> -</svg> diff --git a/superset-frontend/src/assets/images/icons/search.svg b/superset-frontend/src/assets/images/icons/search.svg deleted file mode 100644 index e3796880a45..00000000000 --- a/superset-frontend/src/assets/images/icons/search.svg +++ /dev/null @@ -1,27 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> - <title>Icon / Search@1.5x - - - - - - - diff --git a/superset-frontend/src/assets/images/icons/server.svg b/superset-frontend/src/assets/images/icons/server.svg deleted file mode 100644 index f7842a8298d..00000000000 --- a/superset-frontend/src/assets/images/icons/server.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/superset-frontend/src/assets/images/icons/share.svg b/superset-frontend/src/assets/images/icons/share.svg deleted file mode 100644 index fc8a48266c9..00000000000 --- a/superset-frontend/src/assets/images/icons/share.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - diff --git a/superset-frontend/src/assets/images/icons/sql.svg b/superset-frontend/src/assets/images/icons/sql.svg deleted file mode 100644 index a15a5cb2542..00000000000 --- a/superset-frontend/src/assets/images/icons/sql.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/superset-frontend/src/assets/images/icons/offline.svg b/superset-frontend/src/assets/images/icons/square.svg similarity index 83% rename from superset-frontend/src/assets/images/icons/offline.svg rename to superset-frontend/src/assets/images/icons/square.svg index b11359678f2..5241c95f615 100644 --- a/superset-frontend/src/assets/images/icons/offline.svg +++ b/superset-frontend/src/assets/images/icons/square.svg @@ -16,6 +16,6 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> - - + + diff --git a/superset-frontend/src/assets/images/icons/table-chart-tile.svg b/superset-frontend/src/assets/images/icons/table-chart-tile.svg deleted file mode 100644 index 9a99419d556..00000000000 --- a/superset-frontend/src/assets/images/icons/table-chart-tile.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - diff --git a/superset-frontend/src/assets/images/icons/table.svg b/superset-frontend/src/assets/images/icons/table.svg deleted file mode 100644 index fca912377e4..00000000000 --- a/superset-frontend/src/assets/images/icons/table.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/superset-frontend/src/assets/images/icons/tag.svg b/superset-frontend/src/assets/images/icons/tag.svg deleted file mode 100644 index 2abb55d326c..00000000000 --- a/superset-frontend/src/assets/images/icons/tag.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/superset-frontend/src/assets/images/icons/tags.svg b/superset-frontend/src/assets/images/icons/tags.svg deleted file mode 100644 index 413b57aaead..00000000000 --- a/superset-frontend/src/assets/images/icons/tags.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/superset-frontend/src/assets/images/icons/trash.svg b/superset-frontend/src/assets/images/icons/trash.svg deleted file mode 100644 index 870af73b93e..00000000000 --- a/superset-frontend/src/assets/images/icons/trash.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/superset-frontend/src/assets/images/icons/triangle_change.svg b/superset-frontend/src/assets/images/icons/triangle_change.svg deleted file mode 100644 index f06c145618b..00000000000 --- a/superset-frontend/src/assets/images/icons/triangle_change.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/superset-frontend/src/assets/images/icons/triangle_up.svg b/superset-frontend/src/assets/images/icons/triangle_up.svg deleted file mode 100644 index e8cfa2476f5..00000000000 --- a/superset-frontend/src/assets/images/icons/triangle_up.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/superset-frontend/src/assets/images/icons/up-level.svg b/superset-frontend/src/assets/images/icons/up-level.svg deleted file mode 100644 index 29e2eaafb69..00000000000 --- a/superset-frontend/src/assets/images/icons/up-level.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/superset-frontend/src/assets/images/icons/user.svg b/superset-frontend/src/assets/images/icons/user.svg deleted file mode 100644 index 774c9be767d..00000000000 --- a/superset-frontend/src/assets/images/icons/user.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/superset-frontend/src/assets/images/icons/warning.svg b/superset-frontend/src/assets/images/icons/warning.svg deleted file mode 100644 index cfe3b089a99..00000000000 --- a/superset-frontend/src/assets/images/icons/warning.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/superset-frontend/src/assets/images/icons/warning_solid.svg b/superset-frontend/src/assets/images/icons/warning_solid.svg deleted file mode 100644 index 118955914f5..00000000000 --- a/superset-frontend/src/assets/images/icons/warning_solid.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/superset-frontend/src/assets/images/icons/x-large.svg b/superset-frontend/src/assets/images/icons/x-large.svg deleted file mode 100644 index d96e5e02de6..00000000000 --- a/superset-frontend/src/assets/images/icons/x-large.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/superset-frontend/src/assets/images/icons/x-small.svg b/superset-frontend/src/assets/images/icons/x-small.svg deleted file mode 100644 index 6d2fb53b7e3..00000000000 --- a/superset-frontend/src/assets/images/icons/x-small.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/superset-frontend/src/components/AlteredSliceTag/index.tsx b/superset-frontend/src/components/AlteredSliceTag/index.tsx index 9af6ae46bd9..a12d035e964 100644 --- a/superset-frontend/src/components/AlteredSliceTag/index.tsx +++ b/superset-frontend/src/components/AlteredSliceTag/index.tsx @@ -219,7 +219,7 @@ const AlteredSliceTag: FC = props => { () => ( } + icon={} className="label" type="warning" onClick={() => {}} diff --git a/superset-frontend/src/components/Chart/DrillBy/DrillByMenuItems.test.tsx b/superset-frontend/src/components/Chart/DrillBy/DrillByMenuItems.test.tsx index e8f51764ad4..ad3da909b2f 100644 --- a/superset-frontend/src/components/Chart/DrillBy/DrillByMenuItems.test.tsx +++ b/superset-frontend/src/components/Chart/DrillBy/DrillByMenuItems.test.tsx @@ -87,16 +87,20 @@ const renderMenu = ({ ); const expectDrillByDisabled = async (tooltipContent: string) => { - const drillByMenuItem = screen.getByRole('menuitem', { - name: 'Drill by', - }); + const drillByMenuItem = screen + .getAllByRole('menuitem') + .find(menuItem => within(menuItem).queryByText('Drill by')); + expect(drillByMenuItem).toBeDefined(); expect(drillByMenuItem).toBeVisible(); expect(drillByMenuItem).toHaveAttribute('aria-disabled', 'true'); - const tooltipTrigger = within(drillByMenuItem).getByTestId('tooltip-trigger'); - userEvent.hover(tooltipTrigger as HTMLElement); - const tooltip = await screen.findByRole('tooltip', { name: tooltipContent }); + const tooltipTrigger = within(drillByMenuItem!).getByTestId( + 'tooltip-trigger', + ); + userEvent.hover(tooltipTrigger as HTMLElement); + + const tooltip = await screen.findByRole('tooltip', { name: tooltipContent }); expect(tooltip).toBeInTheDocument(); }; diff --git a/superset-frontend/src/components/Chart/DrillBy/DrillByMenuItems.tsx b/superset-frontend/src/components/Chart/DrillBy/DrillByMenuItems.tsx index b054ff02d62..4752d9b6c10 100644 --- a/superset-frontend/src/components/Chart/DrillBy/DrillByMenuItems.tsx +++ b/superset-frontend/src/components/Chart/DrillBy/DrillByMenuItems.tsx @@ -292,7 +292,7 @@ export const DrillByMenuItems = ({ diff --git a/superset-frontend/src/components/Chart/DrillDetail/DrillDetailMenuItems.test.tsx b/superset-frontend/src/components/Chart/DrillDetail/DrillDetailMenuItems.test.tsx index da2d295c77e..4f661a1e463 100644 --- a/superset-frontend/src/components/Chart/DrillDetail/DrillDetailMenuItems.test.tsx +++ b/superset-frontend/src/components/Chart/DrillDetail/DrillDetailMenuItems.test.tsx @@ -195,11 +195,11 @@ const expectMenuItemDisabled = async ( * "Drill to detail" item should be enabled and open the correct modal */ const expectDrillToDetailEnabled = async () => { - const drillToDetailMenuItem = screen.getByRole('menuitem', { - name: 'Drill to detail', - }); - - await expectMenuItemEnabled(drillToDetailMenuItem); + const drillToDetailMenuItem = screen + .getAllByRole('menuitem') + .find(menuItem => within(menuItem).queryByText('Drill to detail')); + expect(drillToDetailMenuItem).toBeDefined(); + await expectMenuItemEnabled(drillToDetailMenuItem!); await expectDrillToDetailModal('Drill to detail'); }; @@ -207,11 +207,12 @@ const expectDrillToDetailEnabled = async () => { * "Drill to detail" item should be present and disabled */ const expectDrillToDetailDisabled = async (tooltipContent?: string) => { - const drillToDetailMenuItem = screen.getByRole('menuitem', { - name: 'Drill to detail', - }); + const drillToDetailMenuItem = screen + .getAllByRole('menuitem') + .find(menuItem => within(menuItem).queryByText('Drill to detail')); - await expectMenuItemDisabled(drillToDetailMenuItem, tooltipContent); + expect(drillToDetailMenuItem).toBeDefined(); + await expectMenuItemDisabled(drillToDetailMenuItem!, tooltipContent); }; /** @@ -229,12 +230,11 @@ const expectNoDrillToDetailBy = async () => { * "Drill to detail by" submenu should be present and enabled */ const expectDrillToDetailByEnabled = async () => { - const drillToDetailBy = screen.getByRole('menuitem', { - name: 'Drill to detail by', - }); - - await expectMenuItemEnabled(drillToDetailBy); - userEvent.hover(drillToDetailBy); + const drillToDetailBy = screen + .getAllByRole('menuitem') + .find(menuItem => within(menuItem).queryByText('Drill to detail by')); + await expectMenuItemEnabled(drillToDetailBy!); + userEvent.hover(drillToDetailBy!); const submenus = await screen.findAllByTestId('drill-to-detail-by-submenu'); @@ -245,11 +245,10 @@ const expectDrillToDetailByEnabled = async () => { * "Drill to detail by" submenu should be present and disabled */ const expectDrillToDetailByDisabled = async (tooltipContent?: string) => { - const drillToDetailBySubmenuItem = screen.getByRole('menuitem', { - name: 'Drill to detail by', - }); - - await expectMenuItemDisabled(drillToDetailBySubmenuItem, tooltipContent); + const drillToDetailBySubmenuItem = screen + .getAllByRole('menuitem') + .find(menuItem => within(menuItem).queryByText('Drill to detail by')); + await expectMenuItemDisabled(drillToDetailBySubmenuItem!, tooltipContent); }; /** diff --git a/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.stories.tsx b/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.stories.tsx index 861e25f5ce4..73880a7ac98 100644 --- a/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.stories.tsx +++ b/superset-frontend/src/components/CopyToClipboard/CopyToClipboard.stories.tsx @@ -16,7 +16,6 @@ * specific language governing permissions and limitations * under the License. */ -import { useTheme } from '@superset-ui/core'; import Button from 'src/components/Button'; import Icons from 'src/components/Icons'; import ToastContainer from 'src/components/MessageToasts/ToastContainer'; @@ -28,10 +27,9 @@ export default { }; export const InteractiveCopyToClipboard = ({ copyNode, ...rest }: any) => { - const theme = useTheme(); let node = ; if (copyNode === 'Icon') { - node = ; + node = ; } else if (copyNode === 'Text') { node = Copy; } diff --git a/superset-frontend/src/components/DatabaseSelector/DatabaseSelector.test.tsx b/superset-frontend/src/components/DatabaseSelector/DatabaseSelector.test.tsx index 00d2924b5bd..62e0092b006 100644 --- a/superset-frontend/src/components/DatabaseSelector/DatabaseSelector.test.tsx +++ b/superset-frontend/src/components/DatabaseSelector/DatabaseSelector.test.tsx @@ -225,7 +225,7 @@ test('Refresh should work', async () => { }); // click schema reload - userEvent.click(screen.getByRole('button', { name: 'refresh' })); + userEvent.click(screen.getByRole('button', { name: 'sync' })); await waitFor(() => { expect(fetchMock.calls(databaseApiRoute).length).toBe(1); diff --git a/superset-frontend/src/components/Datasource/CollectionTable.tsx b/superset-frontend/src/components/Datasource/CollectionTable.tsx index 23f725b0a42..22e9df44f3a 100644 --- a/superset-frontend/src/components/Datasource/CollectionTable.tsx +++ b/superset-frontend/src/components/Datasource/CollectionTable.tsx @@ -152,6 +152,9 @@ const StyledButtonWrapper = styled.span` ${({ theme }) => ` margin-top: ${theme.gridUnit * 3}px; margin-left: ${theme.gridUnit * 3}px; + button>span>:first-of-type { + margin-right: 0; + } `} `; @@ -427,13 +430,14 @@ export default class CRUDCollection extends PureComponent< data-test="crud-delete-option" className="text-primary" > - , ); @@ -486,12 +490,10 @@ export default class CRUDCollection extends PureComponent< onClick={this.onAddItem} data-test="add-item-button" > - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {' '} + /> {t('Add item')} diff --git a/superset-frontend/src/components/Datasource/DatasourceEditor.jsx b/superset-frontend/src/components/Datasource/DatasourceEditor.jsx index 40205b854cc..94620563908 100644 --- a/superset-frontend/src/components/Datasource/DatasourceEditor.jsx +++ b/superset-frontend/src/components/Datasource/DatasourceEditor.jsx @@ -137,6 +137,9 @@ const StyledButtonWrapper = styled.span` ${({ theme }) => ` margin-top: ${theme.gridUnit * 3}px; margin-left: ${theme.gridUnit * 3}px; + button>span>:first-of-type { + margin-right: 0; + } `} `; @@ -964,16 +967,26 @@ class DatasourceEditor extends PureComponent { ); } - renderSourceFieldset(theme) { + renderSourceFieldset() { const { datasource } = this.state; return (
{this.state.isEditMode ? ( - + css` + margin: auto ${theme.gridUnit}px auto 0; + `} + /> ) : ( - + ({ + margin: `auto ${theme.gridUnit}px auto 0`, + })} + /> )} {!this.state.isEditMode && ( @@ -1380,9 +1393,7 @@ class DatasourceEditor extends PureComponent { className="sync-from-source" disabled={this.state.isEditMode} > - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {' '} + {t('Sync columns from source')} diff --git a/superset-frontend/src/components/Datasource/DatasourceEditor.test.jsx b/superset-frontend/src/components/Datasource/DatasourceEditor.test.jsx index 4739f46e619..c748fd86cda 100644 --- a/superset-frontend/src/components/Datasource/DatasourceEditor.test.jsx +++ b/superset-frontend/src/components/Datasource/DatasourceEditor.test.jsx @@ -169,7 +169,7 @@ describe('DatasourceEditor', () => { }); it('Source Tab: edit mode', () => { - const getLockBtn = screen.getByRole('img', { name: /lock-locked/i }); + const getLockBtn = screen.getByRole('img', { name: /lock/i }); userEvent.click(getLockBtn); const physicalRadioBtn = screen.getByRole('radio', { name: /physical \(table or view\)/i, @@ -182,7 +182,7 @@ describe('DatasourceEditor', () => { }); it('Source Tab: readOnly mode', () => { - const getLockBtn = screen.getByRole('img', { name: /lock-locked/i }); + const getLockBtn = screen.getByRole('img', { name: /lock/i }); expect(getLockBtn).toBeInTheDocument(); const physicalRadioBtn = screen.getByRole('radio', { name: /physical \(table or view\)/i, diff --git a/superset-frontend/src/components/Datasource/DatasourceModal.tsx b/superset-frontend/src/components/Datasource/DatasourceModal.tsx index 33cd820677e..e25f4d349aa 100644 --- a/superset-frontend/src/components/Datasource/DatasourceModal.tsx +++ b/superset-frontend/src/components/Datasource/DatasourceModal.tsx @@ -27,8 +27,11 @@ import { getClientErrorObject, t, SupersetError, + useTheme, + css, } from '@superset-ui/core'; +import Icons from 'src/components/Icons'; import Modal from 'src/components/Modal'; import AsyncEsmComponent from 'src/components/AsyncEsmComponent'; import ErrorMessageWithStackTrace from 'src/components/ErrorMessage/ErrorMessageWithStackTrace'; @@ -101,6 +104,7 @@ const DatasourceModal: FunctionComponent = ({ onHide, show, }) => { + const theme = useTheme(); const dispatch = useDispatch(); const [currentDatasource, setCurrentDatasource] = useState(datasource); const currencies = useSelector< @@ -298,6 +302,13 @@ const DatasourceModal: FunctionComponent = ({ onHide={onHide} title={ + {t('Edit Dataset ')} {currentDatasource.table_name} diff --git a/superset-frontend/src/components/Dropdown/index.tsx b/superset-frontend/src/components/Dropdown/index.tsx index 1fdca2e75d2..faf12c09733 100644 --- a/superset-frontend/src/components/Dropdown/index.tsx +++ b/superset-frontend/src/components/Dropdown/index.tsx @@ -91,7 +91,7 @@ const RenderIcon = ( ) => { const component = iconOrientation === IconOrientation.Horizontal ? ( - + ) : ( ); diff --git a/superset-frontend/src/components/DropdownButton/index.tsx b/superset-frontend/src/components/DropdownButton/index.tsx index 84ffd5fe28b..7f9f184dbde 100644 --- a/superset-frontend/src/components/DropdownButton/index.tsx +++ b/superset-frontend/src/components/DropdownButton/index.tsx @@ -21,6 +21,7 @@ import { type ComponentProps } from 'react'; import { Dropdown } from 'antd-v5'; import { Tooltip, TooltipPlacement } from 'src/components/Tooltip'; import { kebabCase } from 'lodash'; +import { css, useTheme } from '@superset-ui/core'; export type DropdownButtonProps = ComponentProps & { tooltip?: string; @@ -34,8 +35,43 @@ export const DropdownButton = ({ children, ...rest }: DropdownButtonProps) => { + const theme = useTheme(); + const { type: buttonType } = rest; + // divider implementation for default (non-primary) buttons + const defaultBtnCss = css` + ${(!buttonType || buttonType === 'default') && + `.antd5-dropdown-trigger { + position: relative; + &:before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 1px; + height: 100%; + background-color: ${theme.colors.grayscale.light2}; + } + .anticon { + vertical-align: middle; + } + }`} + `; const button = ( - + {children} ); diff --git a/superset-frontend/src/components/DropdownContainer/DropdownContainer.test.tsx b/superset-frontend/src/components/DropdownContainer/DropdownContainer.test.tsx index 95b8f6274c1..d5475c01d5e 100644 --- a/superset-frontend/src/components/DropdownContainer/DropdownContainer.test.tsx +++ b/superset-frontend/src/components/DropdownContainer/DropdownContainer.test.tsx @@ -61,7 +61,10 @@ test('renders a dropdown trigger when overflowing', async () => { test('renders a dropdown trigger with custom icon', async () => { await mockOverflowingIndex(3, async () => { render( - } />, + } + />, ); expect( await screen.findByRole('img', { name: 'link' }), diff --git a/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.test.tsx b/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.test.tsx index 9a2b0f103ce..21b82cf20c6 100644 --- a/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.test.tsx +++ b/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.test.tsx @@ -43,7 +43,7 @@ test('should render', () => { test('should render warning icon', () => { render(); expect( - screen.getByRole('img', { name: 'warning-solid' }), + screen.getByRole('img', { name: 'exclamation-circle' }), ).toBeInTheDocument(); }); @@ -53,7 +53,9 @@ test('should render error icon', () => { level: 'error' as ErrorLevel, }; render(); - expect(screen.getByRole('img', { name: 'error-solid' })).toBeInTheDocument(); + expect( + screen.getByRole('img', { name: 'exclamation-circle' }), + ).toBeInTheDocument(); }); test('should render the error title', () => { diff --git a/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.tsx b/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.tsx index 39ae7489700..acebb720f4b 100644 --- a/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.tsx +++ b/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.tsx @@ -58,11 +58,7 @@ export default function BasicErrorAlert({ return ( - {level === 'error' ? ( - - ) : ( - - )} + {title}

{body}

diff --git a/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx b/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx index ac52d0cd3fe..8e0d3ea513c 100644 --- a/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx +++ b/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx @@ -19,8 +19,7 @@ import { useState } from 'react'; import { Tooltip } from 'src/components/Tooltip'; import Modal from 'src/components/Modal'; -// eslint-disable-next-line no-restricted-imports -import { ExclamationCircleOutlined, WarningOutlined } from '@ant-design/icons'; // TODO: Use src/components/Icons +import Icons from 'src/components/Icons'; import Alert from 'src/components/Alert'; import { t, useTheme } from '@superset-ui/core'; @@ -65,7 +64,11 @@ const ErrorAlert: React.FC = ({ const theme = useTheme(); const renderTrigger = () => { const icon = - type === 'warning' ? : ; + type === 'warning' ? ( + + ) : ( + + ); const color = type === 'warning' ? theme.colors.warning.base : theme.colors.error.base; return ( diff --git a/superset-frontend/src/components/ErrorMessage/IssueCode.tsx b/superset-frontend/src/components/ErrorMessage/IssueCode.tsx index f862f3589e4..35cf3ec8d9b 100644 --- a/superset-frontend/src/components/ErrorMessage/IssueCode.tsx +++ b/superset-frontend/src/components/ErrorMessage/IssueCode.tsx @@ -16,12 +16,16 @@ * specific language governing permissions and limitations * under the License. */ +import Icons from 'src/components/Icons'; +import { useTheme } from '@superset-ui/core'; + interface IssueCodeProps { code: number; message: string; } export default function IssueCode({ code, message }: IssueCodeProps) { + const theme = useTheme(); return ( <> {message}{' '} @@ -31,9 +35,7 @@ export default function IssueCode({ code, message }: IssueCodeProps) { target="_blank" aria-label="Superset docs link" > - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + ); diff --git a/superset-frontend/src/components/FaveStar/FaveStar.test.tsx b/superset-frontend/src/components/FaveStar/FaveStar.test.tsx index 5c2cb1fc0a6..f8c63500f6a 100644 --- a/superset-frontend/src/components/FaveStar/FaveStar.test.tsx +++ b/superset-frontend/src/components/FaveStar/FaveStar.test.tsx @@ -32,9 +32,7 @@ test('render right content', async () => { const { rerender, findByRole } = render(); expect(screen.getByRole('button')).toBeInTheDocument(); - expect( - screen.getByRole('img', { name: 'favorite-selected' }), - ).toBeInTheDocument(); + expect(screen.getByRole('img', { name: 'starred' })).toBeInTheDocument(); expect(props.saveFaveStar).toHaveBeenCalledTimes(0); userEvent.click(screen.getByRole('button')); @@ -42,9 +40,7 @@ test('render right content', async () => { expect(props.saveFaveStar).toHaveBeenCalledWith(props.itemId, true); rerender(); - expect( - await findByRole('img', { name: 'favorite-unselected' }), - ).toBeInTheDocument(); + expect(await findByRole('img', { name: 'unstarred' })).toBeInTheDocument(); expect(props.saveFaveStar).toHaveBeenCalledTimes(1); userEvent.click(screen.getByRole('button')); @@ -83,9 +79,7 @@ test('Call fetchFaveStar on first render and on itemId change', async () => { }; const { rerender, findByRole } = render(); - expect( - await findByRole('img', { name: 'favorite-unselected' }), - ).toBeInTheDocument(); + expect(await findByRole('img', { name: 'unstarred' })).toBeInTheDocument(); expect(props.fetchFaveStar).toHaveBeenCalledTimes(1); expect(props.fetchFaveStar).toHaveBeenCalledWith(props.itemId); diff --git a/superset-frontend/src/components/FaveStar/index.tsx b/superset-frontend/src/components/FaveStar/index.tsx index 49c7a71cd07..262be12df3b 100644 --- a/superset-frontend/src/components/FaveStar/index.tsx +++ b/superset-frontend/src/components/FaveStar/index.tsx @@ -19,7 +19,7 @@ import { useCallback, useEffect, MouseEvent } from 'react'; -import { css, t, styled } from '@superset-ui/core'; +import { css, t, styled, useTheme } from '@superset-ui/core'; import { Tooltip } from 'src/components/Tooltip'; import Icons from 'src/components/Icons'; @@ -46,6 +46,7 @@ const FaveStar = ({ saveFaveStar, fetchFaveStar, }: FaveStarProps) => { + const theme = useTheme(); useEffect(() => { fetchFaveStar?.(itemId); }, [fetchFaveStar, itemId]); @@ -66,7 +67,19 @@ const FaveStar = ({ data-test="fave-unfave-icon" role="button" > - {isStarred ? : } + {isStarred ? ( + + ) : ( + + )} ); diff --git a/superset-frontend/src/components/IconTooltip/IconTooltip.stories.tsx b/superset-frontend/src/components/IconTooltip/IconTooltip.stories.tsx index 875d6375e8e..2e5f3a280a1 100644 --- a/superset-frontend/src/components/IconTooltip/IconTooltip.stories.tsx +++ b/superset-frontend/src/components/IconTooltip/IconTooltip.stories.tsx @@ -17,6 +17,7 @@ * under the License. */ import Icons from 'src/components/Icons'; +import { css, useTheme } from '@superset-ui/core'; import { IconTooltip, Props } from '.'; export default { @@ -38,10 +39,16 @@ const PLACEMENTS = [ 'topRight', ]; +const theme = useTheme(); + export const InteractiveIconTooltip = (args: Props) => ( -
+
- +
); diff --git a/superset-frontend/src/components/Icons/AntdEnhanced.tsx b/superset-frontend/src/components/Icons/AntdEnhanced.tsx index 90d7da612b8..42c9ad74639 100644 --- a/superset-frontend/src/components/Icons/AntdEnhanced.tsx +++ b/superset-frontend/src/components/Icons/AntdEnhanced.tsx @@ -24,16 +24,24 @@ import { AlignLeftOutlined, AlignRightOutlined, ApartmentOutlined, + AppstoreOutlined, + AreaChartOutlined, ArrowRightOutlined, BarChartOutlined, BellOutlined, BookOutlined, - CaretDownOutlined, - CalendarOutlined, CaretUpOutlined, + CaretDownOutlined, + CaretLeftOutlined, + CaretRightOutlined, + CalendarOutlined, CheckOutlined, + CheckCircleOutlined, + CheckCircleFilled, CheckSquareOutlined, CloseOutlined, + CloseCircleOutlined, + ClockCircleOutlined, ColumnWidthOutlined, CommentOutlined, ConsoleSqlOutlined, @@ -42,24 +50,37 @@ import { DatabaseOutlined, DeleteFilled, DownSquareOutlined, + DeleteOutlined, DownOutlined, DownloadOutlined, EditOutlined, + EllipsisOutlined, ExclamationCircleOutlined, + ExclamationCircleFilled, EyeOutlined, EyeInvisibleOutlined, FallOutlined, + FieldTimeOutlined, FileImageOutlined, FileOutlined, + FileTextOutlined, FireOutlined, FullscreenExitOutlined, FullscreenOutlined, FundProjectionScreenOutlined, + FunctionOutlined, InfoCircleOutlined, + InfoCircleFilled, + InsertRowAboveOutlined, InsertRowBelowOutlined, LineChartOutlined, + LinkOutlined, + MailOutlined, + MinusCircleOutlined, LoadingOutlined, MonitorOutlined, + MoreOutlined, + PieChartOutlined, PicCenterOutlined, PlusCircleOutlined, PlusOutlined, @@ -68,33 +89,54 @@ import { SaveOutlined, SearchOutlined, SettingOutlined, + StarOutlined, + StarFilled, StopOutlined, SyncOutlined, + TagOutlined, TagsOutlined, + TableOutlined, + LockOutlined, UnlockOutlined, + UploadOutlined, UpOutlined, UserOutlined, + VerticalAlignBottomOutlined, + VerticalAlignTopOutlined, VerticalLeftOutlined, VerticalRightOutlined, + NumberOutlined, + ThunderboltOutlined, + FilterOutlined, + UnorderedListOutlined, + WarningOutlined, } from '@ant-design/icons'; -import { StyledIcon } from './Icon'; -import IconType from './IconType'; +import { IconType } from './types'; +import { BaseIconComponent } from './BaseIcon'; const AntdIcons = { AlignCenterOutlined, AlignLeftOutlined, AlignRightOutlined, ApartmentOutlined, + AppstoreOutlined, + AreaChartOutlined, ArrowRightOutlined, BarChartOutlined, BellOutlined, BookOutlined, - CaretDownOutlined, - CalendarOutlined, CaretUpOutlined, + CaretDownOutlined, + CaretLeftOutlined, + CaretRightOutlined, + CalendarOutlined, CheckOutlined, + CheckCircleOutlined, + CheckCircleFilled, CheckSquareOutlined, CloseOutlined, + CloseCircleOutlined, + ClockCircleOutlined, ColumnWidthOutlined, CommentOutlined, ConsoleSqlOutlined, @@ -103,24 +145,37 @@ const AntdIcons = { DatabaseOutlined, DeleteFilled, DownSquareOutlined, + DeleteOutlined, DownOutlined, DownloadOutlined, EditOutlined, + EllipsisOutlined, ExclamationCircleOutlined, + ExclamationCircleFilled, EyeOutlined, EyeInvisibleOutlined, FallOutlined, + FieldTimeOutlined, FileImageOutlined, FileOutlined, + FileTextOutlined, FireOutlined, FullscreenExitOutlined, FullscreenOutlined, FundProjectionScreenOutlined, + FunctionOutlined, InfoCircleOutlined, + InfoCircleFilled, + InsertRowAboveOutlined, InsertRowBelowOutlined, LineChartOutlined, + LinkOutlined, LoadingOutlined, + MailOutlined, + MinusCircleOutlined, MonitorOutlined, + MoreOutlined, + PieChartOutlined, PicCenterOutlined, PlusCircleOutlined, PlusOutlined, @@ -129,25 +184,39 @@ const AntdIcons = { SaveOutlined, SearchOutlined, SettingOutlined, + StarOutlined, + StarFilled, StopOutlined, SyncOutlined, + TagOutlined, TagsOutlined, + TableOutlined, + LockOutlined, + UploadOutlined, UnlockOutlined, UpOutlined, UserOutlined, + VerticalAlignBottomOutlined, + VerticalAlignTopOutlined, VerticalLeftOutlined, VerticalRightOutlined, + NumberOutlined, + ThunderboltOutlined, + FilterOutlined, + UnorderedListOutlined, + WarningOutlined, }; const AntdEnhancedIcons = Object.keys(AntdIcons) .filter(k => !k.includes('TwoTone')) .map(k => ({ - [k]: (props: IconType) => { - const whatRole = props?.onClick ? 'button' : 'img'; - // @ts-ignore TODO(hainenber): fix the type compatiblity between - // StyledIcon component prop and AntdIcon values - return ; - }, + [k]: (props: IconType) => ( + + ), })) .reduce((l, r) => ({ ...l, ...r })); diff --git a/superset-frontend/src/components/Icons/BaseIcon.tsx b/superset-frontend/src/components/Icons/BaseIcon.tsx new file mode 100644 index 00000000000..68167d3cd00 --- /dev/null +++ b/superset-frontend/src/components/Icons/BaseIcon.tsx @@ -0,0 +1,97 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { css, useTheme } from '@superset-ui/core'; +import { AntdIconType, BaseIconProps, CustomIconType, IconType } from './types'; + +const genAriaLabel = (fileName: string) => { + const name = fileName.replace(/_/g, '-'); // Replace underscores with dashes + const words = name.split(/(?=[A-Z])/); // Split at uppercase letters + + if (words.length === 2) { + return words[0].toLowerCase(); + } + + if (words.length >= 3) { + return `${words[0].toLowerCase()}-${words[1].toLowerCase()}`; + } + + return name.toLowerCase(); +}; + +export const BaseIconComponent: React.FC< + BaseIconProps & Omit +> = ({ + component: Component, + iconColor, + iconSize, + viewBox, + customIcons, + ...rest +}) => { + const theme = useTheme(); + const iconCss = css` + color: ${iconColor || theme.colors.grayscale.base}; + font-size: ${iconSize + ? `${theme.typography.sizes[iconSize] || theme.typography.sizes.m}px` + : '24px'}; + `; + const whatRole = rest?.onClick ? 'button' : 'img'; + const ariaLabel = genAriaLabel(rest.fileName || ''); + + return customIcons ? ( + + + + ) : ( + + ); +}; diff --git a/superset-frontend/src/components/Icons/Icon.tsx b/superset-frontend/src/components/Icons/Icon.tsx index 7e299cc5206..3c27ca64707 100644 --- a/superset-frontend/src/components/Icons/Icon.tsx +++ b/superset-frontend/src/components/Icons/Icon.tsx @@ -18,44 +18,14 @@ */ import { FC, SVGProps, useEffect, useRef, useState } from 'react'; -// eslint-disable-next-line no-restricted-imports -import AntdIcon from '@ant-design/icons'; -import { styled } from '@superset-ui/core'; import TransparentIcon from 'src/assets/images/icons/transparent.svg'; -import IconType from './IconType'; +import { IconType } from './types'; +import { BaseIconComponent } from './BaseIcon'; -const AntdIconComponent = ({ - // eslint-disable-next-line @typescript-eslint/no-unused-vars - iconColor, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - iconSize, - viewBox, - ...rest -}: Omit) => ( - -); - -export const StyledIcon = styled(AntdIconComponent)` - ${({ iconColor }) => iconColor && `color: ${iconColor};`}; - span { - // Fixing alignement on some of the icons - line-height: 0px; - } - font-size: ${({ iconSize, theme }) => - iconSize - ? `${theme.typography.sizes[iconSize] || theme.typography.sizes.m}px` - : '24px'}; -`; - -export interface IconProps extends IconType { - fileName: string; -} - -export const Icon = (props: IconProps) => { - const { fileName, ...iconProps } = props; +export const Icon = (props: IconType) => { const [, setLoaded] = useState(false); const ImportedSVG = useRef>>(); - const name = fileName.replace('_', '-'); + const { fileName } = props; useEffect(() => { let cancelled = false; @@ -73,14 +43,10 @@ export const Icon = (props: IconProps) => { }; }, [fileName, ImportedSVG]); - const whatRole = props?.onClick ? 'button' : 'img'; - return ( - ); }; diff --git a/superset-frontend/src/components/Icons/Icons.stories.tsx b/superset-frontend/src/components/Icons/Icons.stories.tsx index 280b2e768ad..017be295213 100644 --- a/superset-frontend/src/components/Icons/Icons.stories.tsx +++ b/superset-frontend/src/components/Icons/Icons.stories.tsx @@ -20,7 +20,7 @@ import { useState } from 'react'; import { styled, supersetTheme } from '@superset-ui/core'; import { Input } from 'antd-v5'; import Icons from '.'; -import IconType from './IconType'; +import IconType from './types'; import Icon from './Icon'; export default { @@ -106,7 +106,7 @@ InteractiveIcons.argTypes = { iconSize: { defaultValue: 'xl', control: { type: 'inline-radio' }, - options: ['s', 'l', 'm', 'xl', 'xxl'], + options: ['s', 'm', 'l', 'xl', 'xxl'], }, iconColor: { defaultValue: null, diff --git a/superset-frontend/src/components/Icons/index.tsx b/superset-frontend/src/components/Icons/index.tsx index ee09aceb10c..eb3fa51605b 100644 --- a/superset-frontend/src/components/Icons/index.tsx +++ b/superset-frontend/src/components/Icons/index.tsx @@ -21,156 +21,42 @@ import { FC } from 'react'; import { startCase } from 'lodash'; import AntdEnhancedIcons from './AntdEnhanced'; import Icon from './Icon'; -import IconType from './IconType'; +import IconType from './types'; const IconFileNames = [ - 'alert', - 'alert_solid', - 'alert_solid_small', - 'area-chart-tile', - 'bar-chart-tile', + // to keep custom + 'ballot', 'big-number-chart-tile', 'binoculars', - 'bolt', - 'bolt_small', - 'bolt_small_run', - 'calendar', - 'cancel', - 'cancel_solid', - 'cancel-x', - 'card_view', - 'cards', - 'cards_locked', - 'caret_down', - 'caret_left', - 'caret_right', - 'caret_up', + 'category', 'certified', - 'check', 'checkbox-half', 'checkbox-off', 'checkbox-on', - 'circle_check', - 'circle_check_solid', - 'circle', - 'clock', - 'close', - 'code', - 'cog', - 'collapse', - 'color_palette', - 'current-rendered-tile', - 'components', - 'copy', - 'cursor_target', - 'database', - 'dataset_physical', - 'dataset_virtual_greyscale', - 'dataset_virtual', - 'download', + 'circle_solid', 'drag', - 'edit_alt', - 'edit', - 'email', + 'error_solid_small_red', 'error', - 'error_solid', - 'error_solid_small', - 'exclamation', - 'expand', - 'eye', - 'eye_slash', - 'favorite-selected', - 'favorite_small_selected', - 'favorite-unselected', - 'field_abc', - 'field_boolean', - 'field_date', - 'field_derived', - 'field_num', - 'field_struct', - 'file', - 'filter', - 'filter_small', - 'folder', 'full', - 'function_x', - 'gear', - 'grid', - 'image', - 'import', - 'info', - 'info-solid', - 'info_solid_small', - 'join', - 'keyboard', 'layers', - 'lightbulb', - 'line-chart-tile', - 'link', - 'list', - 'list_view', - 'location', - 'lock_locked', - 'lock_unlocked', - 'map', - 'message', - 'minus', - 'minus_solid', - 'more_horiz', - 'more_vert', - 'move', - 'nav_charts', - 'nav_dashboard', - 'nav_data', - 'nav_explore', - 'nav_home', - 'nav_lab', - 'note', - 'offline', - 'paperclip', - 'pie-chart-tile', - 'placeholder', - 'plus', - 'plus_large', - 'plus_small', - 'plus_solid', 'queued', - 'refresh', + 'redo', 'running', - 'save', - 'sql', - 'search', - 'server', - 'share', 'slack', + 'square', 'sort_asc', 'sort_desc', 'sort', - 'table', - 'table-chart-tile', - 'tag', - 'trash', - 'triangle_change', + 'transparent', 'triangle_down', - 'triangle_up', - 'up-level', - 'user', - 'warning', - 'warning_solid', - 'x-large', - 'x-small', - 'tags', - 'ballot', - 'category', 'undo', - 'redo', ]; const iconOverrides: Record> = {}; IconFileNames.forEach(fileName => { const keyName = startCase(fileName).replace(/ /g, ''); iconOverrides[keyName] = (props: IconType) => ( - + ); }); diff --git a/superset-frontend/src/components/Icons/IconType.ts b/superset-frontend/src/components/Icons/types.ts similarity index 66% rename from superset-frontend/src/components/Icons/IconType.ts rename to superset-frontend/src/components/Icons/types.ts index b055cb06bc1..4d6a4255720 100644 --- a/superset-frontend/src/components/Icons/IconType.ts +++ b/superset-frontend/src/components/Icons/types.ts @@ -16,13 +16,24 @@ * specific language governing permissions and limitations * under the License. */ -// eslint-disable-next-line no-restricted-imports -import { IconComponentProps } from '@ant-design/icons/lib/components/Icon'; +import Icon, { + IconComponentProps, +} from '@ant-design/icons/lib/components/Icon'; +import { ComponentType, SVGProps } from 'react'; -type AntdIconType = IconComponentProps; -type IconType = AntdIconType & { +export type AntdIconProps = IconComponentProps; +export type IconType = AntdIconProps & { iconColor?: string; iconSize?: 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'; + fileName?: string; + customIcons?: boolean; }; +export type CustomIconType = ComponentType>; +export type AntdIconType = typeof Icon; + +export interface BaseIconProps { + component: CustomIconType | AntdIconType; +} + export default IconType; diff --git a/superset-frontend/src/components/InfoTooltip/index.tsx b/superset-frontend/src/components/InfoTooltip/index.tsx index 8437251de37..3ade7f0efa0 100644 --- a/superset-frontend/src/components/InfoTooltip/index.tsx +++ b/superset-frontend/src/components/InfoTooltip/index.tsx @@ -17,7 +17,7 @@ * under the License. */ -import { styled, useTheme } from '@superset-ui/core'; +import { styled, useTheme, css } from '@superset-ui/core'; import { Tooltip } from 'src/components/Tooltip'; import Icons from 'src/components/Icons'; import { ActionType } from 'src/types/Action'; @@ -61,7 +61,15 @@ const defaultOverlayStyle = { fontSize: '12px', lineHeight: '16px', }; - +const InfoIconContainer = styled.div` + ${({ theme }) => css` + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + margin-left: ${theme.gridUnit}px; + `} +`; const defaultColor = 'rgba(0,0,0,0.9)'; export default function InfoTooltip({ @@ -86,7 +94,15 @@ export default function InfoTooltip({ overlayStyle={overlayStyle} color={bgColor} > - + + + ); } diff --git a/superset-frontend/src/components/Label/reusable/DatasetTypeLabel.tsx b/superset-frontend/src/components/Label/reusable/DatasetTypeLabel.tsx index 7379665583c..e1f7fe75c7c 100644 --- a/superset-frontend/src/components/Label/reusable/DatasetTypeLabel.tsx +++ b/superset-frontend/src/components/Label/reusable/DatasetTypeLabel.tsx @@ -18,7 +18,7 @@ */ import Icons from 'src/components/Icons'; import Label from 'src/components/Label'; -import { t } from '@superset-ui/core'; +import { t, useTheme } from '@superset-ui/core'; // Define the prop types for DatasetTypeLabel interface DatasetTypeLabelProps { @@ -28,11 +28,15 @@ interface DatasetTypeLabelProps { const SIZE = 's'; // Define the size as a constant const DatasetTypeLabel: React.FC = ({ datasetType }) => { + const theme = useTheme(); const label: string = datasetType === 'physical' ? t('Physical') : t('Virtual'); const icon = datasetType === 'physical' ? ( - + ) : ( ); diff --git a/superset-frontend/src/components/Label/reusable/PublishedLabel.tsx b/superset-frontend/src/components/Label/reusable/PublishedLabel.tsx index a73be8609e6..ddff92e0107 100644 --- a/superset-frontend/src/components/Label/reusable/PublishedLabel.tsx +++ b/superset-frontend/src/components/Label/reusable/PublishedLabel.tsx @@ -18,7 +18,7 @@ */ import Icons from 'src/components/Icons'; import Label from 'src/components/Label'; -import { t } from '@superset-ui/core'; +import { t, useTheme } from '@superset-ui/core'; // Define props for the PublishedLabel component interface PublishedLabelProps { @@ -30,11 +30,15 @@ const PublishedLabel: React.FC = ({ isPublished, onClick, }) => { + const theme = useTheme(); const label = isPublished ? t('Published') : t('Draft'); const icon = isPublished ? ( - + ) : ( - + ); const labelType = isPublished ? 'primary' : 'secondary'; diff --git a/superset-frontend/src/components/LastUpdated/LastUpdated.test.tsx b/superset-frontend/src/components/LastUpdated/LastUpdated.test.tsx index f020a47448c..3e54656f123 100644 --- a/superset-frontend/src/components/LastUpdated/LastUpdated.test.tsx +++ b/superset-frontend/src/components/LastUpdated/LastUpdated.test.tsx @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -import { fireEvent, render } from 'spec/helpers/testing-library'; +import { fireEvent, render, screen } from 'spec/helpers/testing-library'; import LastUpdated from '.'; @@ -27,11 +27,13 @@ test('renders the base component (no refresh)', () => { expect(getByText(/^Last Updated .+$/)).toBeInTheDocument(); }); -test('renders a refresh action', async () => { +test('renders a refresh action', () => { const mockAction = jest.fn(); - const { getByLabelText } = render( - , - ); - fireEvent.click(getByLabelText('refresh')); + render(); + + const button = screen.getByRole('button'); + expect(button).toBeInTheDocument(); + + fireEvent.click(button); expect(mockAction).toHaveBeenCalled(); }); diff --git a/superset-frontend/src/components/LastUpdated/index.tsx b/superset-frontend/src/components/LastUpdated/index.tsx index db7618dcf8e..f108d336805 100644 --- a/superset-frontend/src/components/LastUpdated/index.tsx +++ b/superset-frontend/src/components/LastUpdated/index.tsx @@ -24,7 +24,7 @@ import { } from 'react'; import { extendedDayjs } from 'src/utils/dates'; -import { t, styled } from '@superset-ui/core'; +import { t, styled, css } from '@superset-ui/core'; import Icons from 'src/components/Icons'; import dayjs from 'dayjs'; @@ -49,14 +49,15 @@ const TextStyles = styled.span` color: ${({ theme }) => theme.colors.grayscale.base}; `; -const Refresh = styled(Icons.Refresh)` - color: ${({ theme }) => theme.colors.primary.base}; +const RefreshIcon = styled(Icons.SyncOutlined)` + ${({ theme }) => ` width: auto; - height: ${({ theme }) => theme.gridUnit * 5}px; + height: ${theme.gridUnit * 5}px; position: relative; - top: ${({ theme }) => theme.gridUnit}px; - left: ${({ theme }) => theme.gridUnit}px; + top: ${theme.gridUnit}px; + left: ${theme.gridUnit}px; cursor: pointer; +`}; `; export const LastUpdated: FunctionComponent = ({ @@ -81,7 +82,15 @@ export const LastUpdated: FunctionComponent = ({ return ( {t('Last Updated %s', timeSince.isValid() ? timeSince.calendar() : '--')} - {update && } + {update && ( + + )} ); }; diff --git a/superset-frontend/src/components/ListView/ActionsBar.tsx b/superset-frontend/src/components/ListView/ActionsBar.tsx index 2fd04d5cb55..d9d61701335 100644 --- a/superset-frontend/src/components/ListView/ActionsBar.tsx +++ b/superset-frontend/src/components/ListView/ActionsBar.tsx @@ -72,7 +72,7 @@ export default function ActionsBar({ actions }: ActionsBarProps) { data-test={action.label} onClick={action.onClick} > - + ); diff --git a/superset-frontend/src/components/ListView/Filters/Search.tsx b/superset-frontend/src/components/ListView/Filters/Search.tsx index 85f099f16d6..da0243310af 100644 --- a/superset-frontend/src/components/ListView/Filters/Search.tsx +++ b/superset-frontend/src/components/ListView/Filters/Search.tsx @@ -24,9 +24,9 @@ import { ChangeEvent, } from 'react'; -import { t, styled } from '@superset-ui/core'; +import { t, styled, useTheme, css } from '@superset-ui/core'; import Icons from 'src/components/Icons'; -import { Input } from 'src/components/Input'; +import { Input as AntdInput } from 'src/components/Input'; import { SELECT_WIDTH } from 'src/components/ListView/utils'; import { FormLabel } from 'src/components/Form'; import InfoTooltip from 'src/components/InfoTooltip'; @@ -43,8 +43,8 @@ const Container = styled.div` width: ${SELECT_WIDTH}px; `; -const SearchIcon = styled(Icons.Search)` - color: ${({ theme }) => theme.colors.grayscale.light1}; +const StyledInput = styled(AntdInput)` + border-radius: ${({ theme }) => theme.gridUnit}px; `; function SearchFilter( @@ -57,6 +57,7 @@ function SearchFilter( }: SearchHeaderProps, ref: RefObject, ) { + const theme = useTheme(); const [value, setValue] = useState(initialValue || ''); const handleSubmit = () => { if (value) { @@ -79,11 +80,18 @@ function SearchFilter( return ( - {Header} - {toolTipDescription && ( - - )} - + {Header} + {toolTipDescription && ( + + )} +
+ } + prefix={ + + } /> ); diff --git a/superset-frontend/src/components/ListView/ListView.tsx b/superset-frontend/src/components/ListView/ListView.tsx index 948029eafeb..3249d0b0a7e 100644 --- a/superset-frontend/src/components/ListView/ListView.tsx +++ b/superset-frontend/src/components/ListView/ListView.tsx @@ -187,7 +187,7 @@ const ViewModeToggle = ({ }} className={cx('toggle-button', { active: mode === 'card' })} > - +
- +
); diff --git a/superset-frontend/src/components/ListViewCard/ListViewCard.stories.tsx b/superset-frontend/src/components/ListViewCard/ListViewCard.stories.tsx index 61d2c70a31c..61ff54d60ba 100644 --- a/superset-frontend/src/components/ListViewCard/ListViewCard.stories.tsx +++ b/superset-frontend/src/components/ListViewCard/ListViewCard.stories.tsx @@ -74,15 +74,15 @@ export const SupersetListViewCard = ({ dropdownRender={() => ( - Delete + Delete - Edit + Edit )} > - + } diff --git a/superset-frontend/src/components/Menu/index.tsx b/superset-frontend/src/components/Menu/index.tsx index 81374c82975..aea3909f660 100644 --- a/superset-frontend/src/components/Menu/index.tsx +++ b/superset-frontend/src/components/Menu/index.tsx @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -import { styled } from '@superset-ui/core'; +import { styled, css } from '@superset-ui/core'; import { ReactElement } from 'react'; import { Menu as AntdMenu } from 'antd-v5'; import { MenuProps as AntdMenuProps } from 'antd-v5/es/menu'; @@ -81,61 +81,61 @@ const StyledMenu = styled(AntdMenu)` `; const StyledNav = styled(AntdMenu)` - display: flex; - align-items: center; - height: 100%; - gap: 0; - &.antd5-menu-horizontal > .antd5-menu-item { - height: 100%; + ${({ theme }) => css` display: flex; align-items: center; - margin: 0; - border-bottom: 2px solid transparent; - padding: ${({ theme }) => theme.gridUnit * 2}px - ${({ theme }) => theme.gridUnit * 4}px; - &:hover { - background-color: ${({ theme }) => theme.colors.primary.light5}; + height: 100%; + gap: 0; + &.antd5-menu-horizontal > .antd5-menu-item { + height: 100%; + display: flex; + align-items: center; + margin: 0; border-bottom: 2px solid transparent; - & a:after { - opacity: 1; - width: 100%; + padding: ${theme.gridUnit * 2}px ${theme.gridUnit * 4}px; + &:hover { + background-color: ${theme.colors.primary.light5}; + border-bottom: 2px solid transparent; + & a:after { + opacity: 1; + width: 100%; + } } } - } - &.antd5-menu-horizontal > .antd5-menu-item-selected { - box-sizing: border-box; - border-bottom: 2px solid ${({ theme }) => theme.colors.primary.base}; - } + &.antd5-menu-horizontal > .antd5-menu-item-selected { + box-sizing: border-box; + border-bottom: 2px solid ${theme.colors.primary.base}; + } + `} `; const StyledSubMenu = styled(AntdMenu.SubMenu)` - .antd5-menu-submenu-open, - .antd5-menu-submenu-active { - .antd5-menu-submenu-title { - &:after { - opacity: 1; - width: calc(100% - 1); + ${({ theme }) => css` + .antd5-menu-submenu-open, + .antd5-menu-submenu-active { + .antd5-menu-submenu-title { + &:after { + opacity: 1; + width: calc(100% - 1); + } } } - } - .antd5-dropdown-menu-submenu-title { - align-items: center; - } - .antd5-menu-submenu-title { - display: flex; - flex-direction: row-reverse; - &:after { - content: ''; - position: absolute; - bottom: -3px; - left: 50%; - width: 0; - height: 3px; - opacity: 0; - transform: translateX(-50%); - transition: all ${({ theme }) => theme.transitionTiming}s; + .antd5-menu-submenu-title { + display: flex; + flex-direction: row-reverse; + &:after { + content: ''; + position: absolute; + bottom: -3px; + left: 50%; + width: 0; + height: 3px; + opacity: 0; + transform: translateX(-50%); + transition: all ${theme.transitionTiming}s; + } } - } + `} `; export type MenuMode = AntdMenuProps['mode']; diff --git a/superset-frontend/src/components/MessageToasts/Toast.tsx b/superset-frontend/src/components/MessageToasts/Toast.tsx index a9bc4f8a7bb..96d90634296 100644 --- a/superset-frontend/src/components/MessageToasts/Toast.tsx +++ b/superset-frontend/src/components/MessageToasts/Toast.tsx @@ -24,18 +24,26 @@ import Icons from 'src/components/Icons'; import { ToastType, ToastMeta } from './types'; const ToastContainer = styled.div` - display: flex; - justify-content: center; - align-items: center; + ${({ theme }) => css` + display: flex; + justify-content: center; + align-items: center; - span { - padding: 0 11px; - } + span { + padding: 0 ${theme.gridUnit * 2}px; + } + + .toast__close, + .toast__close span { + padding: 0; + } + `} `; -const StyledIcon = (theme: SupersetTheme) => css` +const notificationStyledIcon = (theme: SupersetTheme) => css` min-width: ${theme.gridUnit * 5}px; color: ${theme.colors.grayscale.base}; + margin-right: 0; `; interface ToastPresenterProps { @@ -77,16 +85,18 @@ export default function Toast({ toast, onCloseToast }: ToastPresenterProps) { }, [handleClosePress, toast.duration]); let className = 'toast--success'; - let icon = StyledIcon(theme)} />; + let icon = ( + notificationStyledIcon(theme)} /> + ); if (toast.toastType === ToastType.Warning) { - icon = ; + icon = ; className = 'toast--warning'; } else if (toast.toastType === ToastType.Danger) { - icon = ; + icon = ; className = 'toast--danger'; } else if (toast.toastType === ToastType.Info) { - icon = ; + icon = ; className = 'toast--info'; } @@ -98,10 +108,9 @@ export default function Toast({ toast, onCloseToast }: ToastPresenterProps) { > {icon} - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - { case MetadataType.Table: return { - icon: Icons.Table, + icon: Icons.InsertRowAboveOutlined, title: contentType.title, tooltip: contentType.title, }; diff --git a/superset-frontend/src/components/Modal/Modal.tsx b/superset-frontend/src/components/Modal/Modal.tsx index 4678e29ce47..a5215860863 100644 --- a/superset-frontend/src/components/Modal/Modal.tsx +++ b/superset-frontend/src/components/Modal/Modal.tsx @@ -26,8 +26,7 @@ import { useState, } from 'react'; import { isNil } from 'lodash'; -import { styled, t } from '@superset-ui/core'; -import { css } from '@emotion/react'; +import { css, styled, t } from '@superset-ui/core'; import { Modal as AntdModal, ModalProps as AntdModalProps, diff --git a/superset-frontend/src/components/PageHeaderWithActions/index.tsx b/superset-frontend/src/components/PageHeaderWithActions/index.tsx index 68c33d78c7e..8880ab00718 100644 --- a/superset-frontend/src/components/PageHeaderWithActions/index.tsx +++ b/superset-frontend/src/components/PageHeaderWithActions/index.tsx @@ -93,7 +93,7 @@ const buttonsStyles = (theme: SupersetTheme) => css` align-items: center; padding-left: ${theme.gridUnit * 2}px; - & .fave-unfave-icon { + & .anticon-star { padding: 0 ${theme.gridUnit}px; &:first-of-type { @@ -168,7 +168,7 @@ export const PageHeaderWithActions = ({ placement={tooltipProps?.placement} data-test="actions-trigger" > - diff --git a/superset-frontend/src/components/Popover/Popover.test.tsx b/superset-frontend/src/components/Popover/Popover.test.tsx index d31cd986005..6dcfe2c544d 100644 --- a/superset-frontend/src/components/Popover/Popover.test.tsx +++ b/superset-frontend/src/components/Popover/Popover.test.tsx @@ -58,7 +58,7 @@ test('it should render content when not visible but forceRender=true', () => { test('renders with icon child', async () => { render( - Click me + Click me , ); expect(await screen.findByRole('img')).toBeInTheDocument(); diff --git a/superset-frontend/src/components/PopoverDropdown/index.tsx b/superset-frontend/src/components/PopoverDropdown/index.tsx index 41812ea13f5..b781ff6ce47 100644 --- a/superset-frontend/src/components/PopoverDropdown/index.tsx +++ b/superset-frontend/src/components/PopoverDropdown/index.tsx @@ -110,9 +110,12 @@ const PopoverDropdown = (props: PopoverDropdownProps) => { >
{selected && renderButton(selected)} -
diff --git a/superset-frontend/src/components/PopoverSection/index.tsx b/superset-frontend/src/components/PopoverSection/index.tsx index a36f8c6471a..9a687357d8c 100644 --- a/superset-frontend/src/components/PopoverSection/index.tsx +++ b/superset-frontend/src/components/PopoverSection/index.tsx @@ -17,7 +17,7 @@ * under the License. */ import { MouseEventHandler, ReactNode } from 'react'; -import { useTheme } from '@superset-ui/core'; +import { css, useTheme } from '@superset-ui/core'; import { Tooltip } from 'src/components/Tooltip'; import Icons from 'src/components/Icons'; @@ -48,24 +48,30 @@ export default function PopoverSection({ role="button" tabIndex={0} onClick={onSelect} - css={{ - display: 'flex', - alignItems: 'center', - cursor: onSelect ? 'pointer' : 'default', - }} + css={css` + display: flex; + align-items: center; + cursor: ${onSelect ? 'pointer' : 'default'}; + `} > {title} {info && ( - - + )} -
{children}
diff --git a/superset-frontend/src/components/Radio/Radio.stories.tsx b/superset-frontend/src/components/Radio/Radio.stories.tsx index 4329322b409..5155c7d23ca 100644 --- a/superset-frontend/src/components/Radio/Radio.stories.tsx +++ b/superset-frontend/src/components/Radio/Radio.stories.tsx @@ -17,12 +17,8 @@ * under the License. */ import { Space } from 'src/components/Space'; -import { - BarChartOutlined, - DotChartOutlined, - LineChartOutlined, - PieChartOutlined, -} from '@ant-design/icons'; +import Icons from 'src/components/Icons'; +import { css } from '@superset-ui/core'; import { Radio, RadioProps, RadioGroupWrapperProps } from './index'; export default { @@ -116,7 +112,11 @@ RadioGroupWithOptionsStory.args = { value: 1, label: ( - + LineChart ), @@ -125,7 +125,11 @@ RadioGroupWithOptionsStory.args = { value: 2, label: ( - + DotChart ), @@ -134,7 +138,11 @@ RadioGroupWithOptionsStory.args = { value: 3, label: ( - + BarChart ), @@ -143,7 +151,11 @@ RadioGroupWithOptionsStory.args = { value: 4, label: ( - + PieChart ), diff --git a/superset-frontend/src/components/RefreshLabel/index.tsx b/superset-frontend/src/components/RefreshLabel/index.tsx index 887805d6eb2..1fb7771f4f7 100644 --- a/superset-frontend/src/components/RefreshLabel/index.tsx +++ b/superset-frontend/src/components/RefreshLabel/index.tsx @@ -34,7 +34,7 @@ const RefreshLabel = ({ }: RefreshLabelProps) => { // eslint-disable-next-line @typescript-eslint/no-unused-vars const IconWithoutRef = forwardRef((props: IconType, ref: any) => ( - + )); return ( diff --git a/superset-frontend/src/components/Select/AsyncSelect.tsx b/superset-frontend/src/components/Select/AsyncSelect.tsx index 5004a49a8ba..29c6fd1283e 100644 --- a/superset-frontend/src/components/Select/AsyncSelect.tsx +++ b/superset-frontend/src/components/Select/AsyncSelect.tsx @@ -88,7 +88,8 @@ import { customTagRender } from './CustomTag'; const Error = ({ error }: { error: string }) => ( - {error} + {' '} + {error} ); diff --git a/superset-frontend/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx b/superset-frontend/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx index ba91d167dda..fe43fd8954c 100644 --- a/superset-frontend/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx +++ b/superset-frontend/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx @@ -78,7 +78,7 @@ function HeaderWithRadioGroup(props: HeaderWithRadioGroupProps) { iconSize="m" iconColor={theme.colors.grayscale.light1} css={css` - margin-top: 3px; // we need exactly 3px to align the icon + margin-top: ${theme.gridUnit * 0.75}px; margin-right: ${theme.gridUnit}px; `} onClick={() => setPopoverVisible(true)} diff --git a/superset-frontend/src/components/TableSelector/index.tsx b/superset-frontend/src/components/TableSelector/index.tsx index cfb7d5f818d..a46be828229 100644 --- a/superset-frontend/src/components/TableSelector/index.tsx +++ b/superset-frontend/src/components/TableSelector/index.tsx @@ -126,9 +126,9 @@ export const TableOption = ({ table }: { table: Table }) => { return ( {type === 'view' ? ( - + ) : ( - + )} {extra?.certification && ( theme.colors.grayscale.base}; `; export const EditableTabs = Object.assign(StyledEditableTabs, { @@ -136,7 +136,7 @@ EditableTabs.defaultProps = { }; EditableTabs.TabPane.defaultProps = { - closeIcon: , + closeIcon: , }; export const StyledLineEditableTabs = styled(EditableTabs)` diff --git a/superset-frontend/src/components/Tags/Tag.tsx b/superset-frontend/src/components/Tags/Tag.tsx index e8bba93742e..063000b0fba 100644 --- a/superset-frontend/src/components/Tags/Tag.tsx +++ b/superset-frontend/src/components/Tags/Tag.tsx @@ -22,8 +22,7 @@ import TagType from 'src/types/TagType'; import { Tag as AntdTag } from 'antd-v5'; import { useMemo } from 'react'; import { Tooltip } from 'src/components/Tooltip'; -// eslint-disable-next-line no-restricted-imports -import { CloseOutlined } from '@ant-design/icons'; // TODO: Use src/components/Icons +import Icons from 'src/components/Icons'; const StyledTag = styled(AntdTag)` ${({ theme }) => ` @@ -32,7 +31,9 @@ const StyledTag = styled(AntdTag)` `}; `; -export const CustomCloseIcon = ; +export const CustomCloseIcon = ( + +); const MAX_DISPLAY_CHAR = 20; diff --git a/superset-frontend/src/components/Timer/index.tsx b/superset-frontend/src/components/Timer/index.tsx index f0ae3cf059a..00d7c1a7514 100644 --- a/superset-frontend/src/components/Timer/index.tsx +++ b/superset-frontend/src/components/Timer/index.tsx @@ -17,7 +17,7 @@ * under the License. */ import { useEffect, useRef, useState } from 'react'; -import { styled } from '@superset-ui/core'; +import { styled, useTheme } from '@superset-ui/core'; import Label, { Type } from 'src/components/Label'; import Icons from 'src/components/Icons'; @@ -41,9 +41,25 @@ export default function Timer({ startTime, status = 'success', }: TimerProps) { + const theme = useTheme(); const [clockStr, setClockStr] = useState('00:00:00.00'); const timer = useRef>(); + const getIconColor = (status: Type) => { + const { colors } = theme; + + const colorMap: Record = { + success: colors.success.dark2, + warning: colors.warning.dark2, + danger: colors.error.dark2, + info: colors.info.dark2, + default: colors.grayscale.dark1, + primary: colors.primary.dark2, + secondary: colors.secondary.dark2, + }; + + return colorMap[status] || colors.grayscale.dark1; + }; useEffect(() => { const stopTimer = () => { if (timer.current) { @@ -69,7 +85,16 @@ export default function Timer({ }, [endTime, isRunning, startTime]); return ( - } type={status} role="timer"> + + } + type={status} + role="timer" + > {clockStr} ); diff --git a/superset-frontend/src/components/Tooltip/Tooltip.test.tsx b/superset-frontend/src/components/Tooltip/Tooltip.test.tsx index f8c7dea3ad2..95f66e6e743 100644 --- a/superset-frontend/src/components/Tooltip/Tooltip.test.tsx +++ b/superset-frontend/src/components/Tooltip/Tooltip.test.tsx @@ -56,7 +56,7 @@ test('renders with theme', () => { test('renders with icon child', async () => { render( - Hover me + Hover me , ); userEvent.hover(screen.getByRole('img')); diff --git a/superset-frontend/src/components/WarningIconWithTooltip/index.tsx b/superset-frontend/src/components/WarningIconWithTooltip/index.tsx index 546047728ca..94638d49234 100644 --- a/superset-frontend/src/components/WarningIconWithTooltip/index.tsx +++ b/superset-frontend/src/components/WarningIconWithTooltip/index.tsx @@ -37,7 +37,7 @@ function WarningIconWithTooltip({ id="warning-tooltip" title={} > - - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + {t('Create a new chart')} } @@ -239,9 +243,10 @@ class DashboardGrid extends PureComponent { )} buttonText={ <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + {t('Create a new chart')} } @@ -362,4 +367,4 @@ class DashboardGrid extends PureComponent { DashboardGrid.propTypes = propTypes; DashboardGrid.defaultProps = defaultProps; -export default DashboardGrid; +export default withTheme(DashboardGrid); diff --git a/superset-frontend/src/dashboard/components/DeleteComponentButton.tsx b/superset-frontend/src/dashboard/components/DeleteComponentButton.tsx index 87e38c0e345..9c1231c1274 100644 --- a/superset-frontend/src/dashboard/components/DeleteComponentButton.tsx +++ b/superset-frontend/src/dashboard/components/DeleteComponentButton.tsx @@ -27,6 +27,8 @@ type DeleteComponentButtonProps = { const DeleteComponentButton: FC = ({ onDelete, -}) => } />; +}) => ( + } /> +); export default DeleteComponentButton; diff --git a/superset-frontend/src/dashboard/components/FiltersBadge/DetailsPanel/DetailsPanel.test.tsx b/superset-frontend/src/dashboard/components/FiltersBadge/DetailsPanel/DetailsPanel.test.tsx index 512751bf54f..d1090b0ed97 100644 --- a/superset-frontend/src/dashboard/components/FiltersBadge/DetailsPanel/DetailsPanel.test.tsx +++ b/superset-frontend/src/dashboard/components/FiltersBadge/DetailsPanel/DetailsPanel.test.tsx @@ -60,7 +60,7 @@ const createProps = () => ({ ] as Indicator[], appliedIndicators: [ { - column: 'country_name', + column: 'Country_name', name: 'Country', value: [], status: 'UNSET', @@ -124,11 +124,13 @@ test('Should render "appliedCrossFilterIndicators"', async () => { await screen.findByText('Applied cross-filters (1)'), ).toBeInTheDocument(); expect( - screen.getByRole('button', { name: 'Clinical Stage' }), + screen.getByRole('button', { name: 'search Clinical Stage' }), ).toBeInTheDocument(); expect(props.onHighlightFilterSource).toHaveBeenCalledTimes(0); - userEvent.click(screen.getByRole('button', { name: 'Clinical Stage' })); + userEvent.click( + screen.getByRole('button', { name: 'search Clinical Stage' }), + ); expect(props.onHighlightFilterSource).toHaveBeenCalledTimes(1); expect(props.onHighlightFilterSource).toHaveBeenCalledWith([ 'ROOT_ID', @@ -155,10 +157,12 @@ test('Should render "appliedIndicators"', async () => { userEvent.hover(screen.getByTestId('details-panel-content')); expect(await screen.findByText('Applied filters (1)')).toBeInTheDocument(); - expect(screen.getByRole('button', { name: 'Country' })).toBeInTheDocument(); + expect( + screen.getByRole('button', { name: 'search Country' }), + ).toBeInTheDocument(); expect(props.onHighlightFilterSource).toHaveBeenCalledTimes(0); - userEvent.click(screen.getByRole('button', { name: 'Country' })); + userEvent.click(screen.getByRole('button', { name: 'search Country' })); expect(props.onHighlightFilterSource).toHaveBeenCalledTimes(1); expect(props.onHighlightFilterSource).toHaveBeenCalledWith([ 'ROOT_ID', @@ -166,7 +170,7 @@ test('Should render "appliedIndicators"', async () => { 'TAB-BCIJF4NvgQ', 'ROW-xSeNAspgw', 'CHART-eirDduqb1A', - 'LABEL-country_name', + 'LABEL-Country_name', ]); }); @@ -239,8 +243,12 @@ test('Arrow key navigation switches focus between indicators', () => { ); // Query the indicators - const firstIndicator = screen.getByRole('button', { name: 'Clinical Stage' }); - const secondIndicator = screen.getByRole('button', { name: 'Age Group' }); + const firstIndicator = screen.getByRole('button', { + name: 'search Clinical Stage', + }); + const secondIndicator = screen.getByRole('button', { + name: 'search Age Group', + }); // Focus the first indicator firstIndicator.focus(); diff --git a/superset-frontend/src/dashboard/components/FiltersBadge/FilterIndicator/FilterIndicator.test.tsx b/superset-frontend/src/dashboard/components/FiltersBadge/FilterIndicator/FilterIndicator.test.tsx index 0f08005060f..edf9c173734 100644 --- a/superset-frontend/src/dashboard/components/FiltersBadge/FilterIndicator/FilterIndicator.test.tsx +++ b/superset-frontend/src/dashboard/components/FiltersBadge/FilterIndicator/FilterIndicator.test.tsx @@ -41,7 +41,7 @@ test('Should render', () => { render(); expect( - screen.getByRole('button', { name: 'Vaccine Approach' }), + screen.getByRole('button', { name: 'search Vaccine Approach' }), ).toBeInTheDocument(); expect(screen.getByRole('img')).toBeInTheDocument(); }); @@ -51,7 +51,9 @@ test('Should call "onClick"', () => { render(); expect(props.onClick).toHaveBeenCalledTimes(0); - userEvent.click(screen.getByRole('button', { name: 'Vaccine Approach' })); + userEvent.click( + screen.getByRole('button', { name: 'search Vaccine Approach' }), + ); expect(props.onClick).toHaveBeenCalledTimes(1); }); @@ -62,7 +64,7 @@ test('Should render "value"', () => { expect( screen.getByRole('button', { - name: 'Vaccine Approach: any, string', + name: 'search Vaccine Approach: any, string', }), ).toBeInTheDocument(); }); diff --git a/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx b/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx index 57413ffd23a..5f544d69969 100644 --- a/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx +++ b/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx @@ -309,7 +309,7 @@ export const FiltersBadge = ({ chartId }: FiltersBadgeProps) => { tabIndex={0} onKeyDown={handleKeyDown} > - + { test('should render the unselected fave icon', () => { setup(); expect(fetchFaveStar).toHaveBeenCalled(); - expect( - screen.getByRole('img', { name: 'favorite-unselected' }), - ).toBeInTheDocument(); + expect(screen.getByRole('img', { name: 'unstarred' })).toBeInTheDocument(); }); test('should render the selected fave icon', () => { @@ -350,9 +348,7 @@ test('should render the selected fave icon', () => { }, }; setup(favedState); - expect( - screen.getByRole('img', { name: 'favorite-selected' }), - ).toBeInTheDocument(); + expect(screen.getByRole('img', { name: 'starred' })).toBeInTheDocument(); }); test('should NOT render the fave icon on anonymous user', () => { @@ -360,17 +356,17 @@ test('should NOT render the fave icon on anonymous user', () => { user: undefined, }; setup(anonymousUserState); - expect(() => - screen.getByRole('img', { name: 'favorite-unselected' }), - ).toThrow('Unable to find'); - expect(() => screen.getByRole('img', { name: 'favorite-selected' })).toThrow( + expect(() => screen.getByRole('img', { name: 'unstarred' })).toThrow( + 'Unable to find', + ); + expect(() => screen.getByRole('img', { name: 'starred' })).toThrow( 'Unable to find', ); }); test('should fave', async () => { setup(); - const fave = screen.getByRole('img', { name: 'favorite-unselected' }); + const fave = screen.getByRole('img', { name: 'unstarred' }); expect(saveFaveStar).not.toHaveBeenCalled(); userEvent.click(fave); expect(saveFaveStar).toHaveBeenCalledTimes(1); @@ -392,7 +388,7 @@ test('should toggle the edit mode', () => { test('should render the dropdown icon', () => { setup(); - expect(screen.getByRole('img', { name: 'more-horiz' })).toBeInTheDocument(); + expect(screen.getByRole('img', { name: 'ellipsis' })).toBeInTheDocument(); }); test('should refresh the charts', async () => { diff --git a/superset-frontend/src/dashboard/components/Header/index.jsx b/superset-frontend/src/dashboard/components/Header/index.jsx index 1324d785cd1..4c1cb49ab82 100644 --- a/superset-frontend/src/dashboard/components/Header/index.jsx +++ b/superset-frontend/src/dashboard/components/Header/index.jsx @@ -26,6 +26,7 @@ import { FeatureFlag, t, getExtensionsRegistry, + useTheme, } from '@superset-ui/core'; import { Global } from '@emotion/react'; import { shallowEqual, useDispatch, useSelector } from 'react-redux'; @@ -142,6 +143,9 @@ const undoRedoDisabled = theme => css` const saveBtnStyle = theme => css` min-width: ${theme.gridUnit * 17}px; height: ${theme.gridUnit * 8}px; + span > :first-of-type { + margin-right: 0; + } `; const discardBtnStyle = theme => css` @@ -157,6 +161,7 @@ const discardChanges = () => { }; const Header = () => { + const theme = useTheme(); const dispatch = useDispatch(); const [didNotifyMaxUndoHistoryToast, setDidNotifyMaxUndoHistoryToast] = useState(false); @@ -647,6 +652,10 @@ const Header = () => { data-test="header-save-button" aria-label={t('Save')} > + {t('Save')} diff --git a/superset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.test.tsx b/superset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.test.tsx index 05670e011a4..bed0db06078 100644 --- a/superset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.test.tsx +++ b/superset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.test.tsx @@ -220,9 +220,8 @@ describe('PropertiesModal', () => { await screen.findByTestId('dashboard-edit-properties-form'), ).toBeInTheDocument(); - expect( - screen.getByRole('dialog', { name: 'Dashboard properties' }), - ).toBeInTheDocument(); + expect(screen.getByRole('dialog')).toBeInTheDocument(); + expect(screen.getByText('Dashboard properties')).toBeInTheDocument(); expect( screen.getByRole('heading', { name: 'Basic information' }), diff --git a/superset-frontend/src/dashboard/components/PropertiesModal/index.tsx b/superset-frontend/src/dashboard/components/PropertiesModal/index.tsx index 4831ece8a5b..acf3013ceb3 100644 --- a/superset-frontend/src/dashboard/components/PropertiesModal/index.tsx +++ b/superset-frontend/src/dashboard/components/PropertiesModal/index.tsx @@ -33,6 +33,7 @@ import { SupersetClient, t, getClientErrorObject, + css, } from '@superset-ui/core'; import Modal from 'src/components/Modal'; @@ -721,7 +722,11 @@ const PropertiesModal = ({ { within(screen.getByTestId('scoping-list-panel')) .getByText('chart 4') .closest('div')!, - ).getByLabelText('trash'), + ).getByLabelText('delete'), ); expect( within(screen.getByTestId('scoping-list-panel')).queryByText('chart 4'), diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingTreePanel.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingTreePanel.tsx index abd8b439859..997340cc6e5 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingTreePanel.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingTreePanel.tsx @@ -118,7 +118,6 @@ const ChartSelect = ({ span { line-height: 0; diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBar.test.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBar.test.tsx index 2aa54067042..5cca08fd913 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBar.test.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBar.test.tsx @@ -76,9 +76,9 @@ const getModalTestId = testWithId(FILTERS_CONFIG_MODAL_TEST_ID, true); const FILTER_NAME = 'Time filter 1'; const addFilterFlow = async () => { - // open filter config modal + // open filter config modals userEvent.click(screen.getByTestId(getTestId('collapsable'))); - userEvent.click(screen.getByLabelText('gear')); + userEvent.click(screen.getByLabelText('setting')); userEvent.click(screen.getByText('Add or edit filters')); // select filter userEvent.click(screen.getByText('Value')); @@ -200,7 +200,9 @@ describe('FilterBar', () => { it('should render the collapse icon', () => { renderWrapper(); - expect(screen.getByRole('img', { name: 'collapse' })).toBeInTheDocument(); + expect( + screen.getByRole('img', { name: 'vertical-align' }), + ).toBeInTheDocument(); }); it('should render the filter icon', () => { @@ -210,7 +212,9 @@ describe('FilterBar', () => { it('should toggle', () => { renderWrapper(); - const collapse = screen.getByRole('img', { name: 'collapse' }); + const collapse = screen.getByRole('img', { + name: 'vertical-align', + }); expect(toggleFiltersBar).not.toHaveBeenCalled(); userEvent.click(collapse); expect(toggleFiltersBar).toHaveBeenCalled(); diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/FilterBarSettings.test.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/FilterBarSettings.test.tsx index 66fdb812b29..9c566410e91 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/FilterBarSettings.test.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/FilterBarSettings.test.tsx @@ -77,14 +77,14 @@ beforeEach(() => { test('Dropdown trigger renders', async () => { await setup(); - expect(screen.getByLabelText('gear')).toBeVisible(); + expect(screen.getByLabelText('setting')).toBeVisible(); }); test('Dropdown trigger renders with dashboard edit permissions', async () => { await setup({ dash_edit_perm: true, }); - expect(screen.getByRole('img', { name: 'gear' })).toBeInTheDocument(); + expect(screen.getByRole('img', { name: 'setting' })).toBeInTheDocument(); }); test('Dropdown trigger does not render without dashboard edit permissions', async () => { @@ -92,12 +92,17 @@ test('Dropdown trigger does not render without dashboard edit permissions', asyn dash_edit_perm: false, }); - expect(screen.queryByRole('img', { name: 'gear' })).not.toBeInTheDocument(); + expect( + screen.queryByRole('img', { name: 'setting' }), + ).not.toBeInTheDocument(); }); test('Popover shows cross-filtering option on by default', async () => { await setup(); - userEvent.click(screen.getByLabelText('gear')); + const settingsButton = screen.getByRole('button', { + name: 'setting', + }); + userEvent.click(settingsButton); expect(screen.getByText('Enable cross-filtering')).toBeInTheDocument(); expect(screen.getByRole('checkbox')).toBeChecked(); }); @@ -107,19 +112,25 @@ test('Can enable/disable cross-filtering', async () => { result: {}, }); await setup(); - userEvent.click(screen.getByLabelText('gear')); + const settingsButton = screen.getByRole('button', { + name: 'setting', + }); + userEvent.click(settingsButton); const initialCheckbox = screen.getByRole('checkbox'); expect(initialCheckbox).toBeChecked(); userEvent.click(initialCheckbox); - userEvent.click(screen.getByLabelText('gear')); + userEvent.click(screen.getByLabelText('setting')); expect(screen.getByRole('checkbox')).not.toBeChecked(); }); test('Popover opens with "Vertical" selected', async () => { await setup(); - userEvent.click(screen.getByLabelText('gear')); + const settingsButton = screen.getByRole('button', { + name: 'setting', + }); + userEvent.click(settingsButton); userEvent.hover(screen.getByText('Orientation of filter bar')); expect(await screen.findByText('Vertical (Left)')).toBeInTheDocument(); expect(screen.getByText('Horizontal (Top)')).toBeInTheDocument(); @@ -130,7 +141,10 @@ test('Popover opens with "Vertical" selected', async () => { test('Popover opens with "Horizontal" selected', async () => { await setup({ filterBarOrientation: FilterBarOrientation.Horizontal }); - userEvent.click(screen.getByLabelText('gear')); + const settingsButton = screen.getByRole('button', { + name: 'setting', + }); + userEvent.click(settingsButton); userEvent.hover(screen.getByText('Orientation of filter bar')); expect(await screen.findByText('Vertical (Left)')).toBeInTheDocument(); expect(screen.getByText('Horizontal (Top)')).toBeInTheDocument(); @@ -150,7 +164,11 @@ test('On selection change, send request and update checked value', async () => { }); await setup(); - userEvent.click(screen.getByLabelText('gear')); + + const settingsButton = screen.getByRole('button', { + name: 'setting', + }); + userEvent.click(settingsButton); userEvent.hover(screen.getByText('Orientation of filter bar')); const verticalItem = await screen.findByText('Vertical (Left)'); @@ -160,7 +178,7 @@ test('On selection change, send request and update checked value', async () => { userEvent.click(screen.getByText('Horizontal (Top)')); - userEvent.click(screen.getByLabelText('gear')); + userEvent.click(settingsButton); userEvent.hover(screen.getByText('Orientation of filter bar')); const horizontalItem = await screen.findByText('Horizontal (Top)'); @@ -180,7 +198,7 @@ test('On selection change, send request and update checked value', async () => { ); await waitFor(() => { - userEvent.click(screen.getByLabelText('gear')); + userEvent.click(screen.getByRole('button', { name: 'setting' })); userEvent.hover(screen.getByText('Orientation of filter bar')); const updatedHorizontalItem = screen.getByText('Horizontal (Top)'); expect( @@ -198,8 +216,9 @@ test('On failed request, restore previous selection', async () => { const dangerToastSpy = jest.spyOn(mockedMessageActions, 'addDangerToast'); await setup(); - const gearIcon = await screen.findByLabelText('gear'); - userEvent.click(gearIcon); + const SettingsIcon = screen.getByRole('img', { name: /setting/i }); + + userEvent.click(SettingsIcon); const orientationMenu = await screen.findByText('Orientation of filter bar'); userEvent.hover(orientationMenu); @@ -227,7 +246,7 @@ test('On failed request, restore previous selection', async () => { }); // Reopen menu and verify selection rolled back - userEvent.click(gearIcon); + userEvent.click(SettingsIcon); userEvent.hover(orientationMenu); // Wait for menu items and verify state diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/index.tsx index c5ff4d59cd2..277a2bcfcb7 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/index.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/index.tsx @@ -19,7 +19,7 @@ import { useCallback, useMemo, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; -import { styled, t, useTheme } from '@superset-ui/core'; +import { styled, t, useTheme, css } from '@superset-ui/core'; import { MenuProps } from 'src/components/Menu'; import { FilterBarOrientation, RootState } from 'src/dashboard/types'; import { @@ -68,8 +68,8 @@ const isOrientation = (o: SelectedKey): o is FilterBarOrientation => o === FilterBarOrientation.Vertical || o === FilterBarOrientation.Horizontal; const FilterBarSettings = () => { - const dispatch = useDispatch(); const theme = useTheme(); + const dispatch = useDispatch(); const isCrossFiltersEnabled = useSelector( ({ dashboardInfo }) => dashboardInfo.crossFiltersEnabled, ); @@ -211,7 +211,15 @@ const FilterBarSettings = () => { {t('Vertical (Left)')} {selectedFilterBarOrientation === - FilterBarOrientation.Vertical && } + FilterBarOrientation.Vertical && ( + + )} ), }, @@ -221,7 +229,14 @@ const FilterBarSettings = () => { {t('Horizontal (Top)')} {selectedFilterBarOrientation === - FilterBarOrientation.Horizontal && } + FilterBarOrientation.Horizontal && ( + + )} ), }, @@ -252,10 +267,15 @@ const FilterBarSettings = () => { }} trigger={['click']} > - diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControl.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControl.tsx index 9d6274a5662..08bc03fb8b4 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControl.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControl.tsx @@ -34,7 +34,7 @@ import { FilterControlProps } from './types'; import { FilterCardPlacement } from '../../FilterCard/types'; import { useIsFilterInScope } from '../../state'; -const StyledIcon = styled.div` +const FilterStyledIcon = styled.div` position: absolute; right: 0; `; @@ -264,7 +264,7 @@ const FilterControl = ({ {filter.description?.trim() && ( )} - {icon} + {icon} ), [ diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx index a1741dbc9c8..a1c69fcfd7b 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx @@ -234,7 +234,7 @@ const FilterControls: FC = ({ { { test('should render the expand button', () => { const mockedProps = createProps(); render(
, { useRedux: true }); - expect(screen.getByRole('button', { name: 'expand' })).toBeInTheDocument(); + expect( + screen.getByRole('button', { name: 'vertical-align' }), + ).toBeInTheDocument(); }); test('should toggle', () => { const mockedProps = createProps(); render(
, { useRedux: true }); - const expandBtn = screen.getByRole('button', { name: 'expand' }); + const expandBtn = screen.getByRole('button', { + name: 'vertical-align', + }); expect(mockedProps.toggleFiltersBar).not.toHaveBeenCalled(); userEvent.click(expandBtn); expect(mockedProps.toggleFiltersBar).toHaveBeenCalled(); diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx index 0d6887f0c5c..8183d772052 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx @@ -17,7 +17,7 @@ * under the License. */ /* eslint-disable no-param-reassign */ -import { css, styled, t, useTheme } from '@superset-ui/core'; +import { css, styled, t } from '@superset-ui/core'; import { memo, FC } from 'react'; import Icons from 'src/components/Icons'; import Button from 'src/components/Button'; @@ -65,25 +65,26 @@ type HeaderProps = { toggleFiltersBar: (arg0: boolean) => void; }; -const Header: FC = ({ toggleFiltersBar }) => { - const theme = useTheme(); - - return ( - - - {t('Filters')} - - toggleFiltersBar(false)} - > - - - - - ); -}; +const Header: FC = ({ toggleFiltersBar }) => ( + + + {t('Filters')} + + toggleFiltersBar(false)} + > + + + + +); export default memo(Header); diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx index 686320c81cb..4d1f955c04e 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx @@ -30,7 +30,7 @@ import { FC, } from 'react'; import cx from 'classnames'; -import { styled, t } from '@superset-ui/core'; +import { styled, t, useTheme } from '@superset-ui/core'; import Icons from 'src/components/Icons'; import Loading from 'src/components/Loading'; import { EmptyState } from 'src/components/EmptyState'; @@ -97,17 +97,6 @@ const CollapsedBar = styled.div<{ offset: number }>` `} `; -const StyledCollapseIcon = styled(Icons.Collapse)` - ${({ theme }) => ` - color: ${theme.colors.primary.base}; - margin-bottom: ${theme.gridUnit * 3}px; - `} -`; - -const StyledFilterIcon = styled(Icons.Filter)` - color: ${({ theme }) => theme.colors.grayscale.base}; -`; - const FilterBarEmptyStateContainer = styled.div` margin-top: ${({ theme }) => theme.gridUnit * 8}px; `; @@ -132,6 +121,7 @@ const VerticalFilterBar: FC = ({ toggleFiltersBar, width, }) => { + const theme = useTheme(); const [isScrolling, setIsScrolling] = useState(false); const timeout = useRef(); @@ -205,11 +195,17 @@ const VerticalFilterBar: FC = ({ role="button" offset={offset} > - - diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/DependenciesRow.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/DependenciesRow.tsx index 73f14018c4b..60fa99f3c52 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/DependenciesRow.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/DependenciesRow.tsx @@ -88,7 +88,7 @@ export const DependenciesRow = memo(({ filter }: FilterCardRowProps) => { 'Filter only displays values relevant to selections made in other filters.', )} > - test('filter card title, type, scope, dependencies', () => { renderContent(); expect(screen.getByText('Native filter 1')).toBeVisible(); - expect(screen.getByLabelText('filter-small')).toBeVisible(); + expect(screen.getByLabelText('filter')).toBeVisible(); expect(screen.getByText('Filter type')).toBeVisible(); expect(screen.getByText('Select filter')).toBeVisible(); diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/NameRow.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/NameRow.tsx index 9346a72ab56..1463f918f3f 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/NameRow.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/NameRow.tsx @@ -54,7 +54,8 @@ export const NameRow = ({ `} > - css` margin-right: ${theme.gridUnit}px; `} @@ -70,7 +71,7 @@ export const NameRow = ({ hidePopover(); }} > - css` diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx index 47713e69cad..f16ceba6bcf 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx @@ -48,7 +48,6 @@ const DragIcon = styled(Icons.Drag, { })` ${({ isDragging, theme }) => ` font-size: ${theme.typography.sizes.m}px; - margin-top: 15px; cursor: ${isDragging ? 'grabbing' : 'grab'}; padding-left: ${theme.gridUnit}px; `} diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitleContainer.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitleContainer.tsx index 495009f0d0f..8accde195f1 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitleContainer.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitleContainer.tsx @@ -18,7 +18,7 @@ */ import { forwardRef, ReactNode } from 'react'; -import { styled, t } from '@superset-ui/core'; +import { styled, t, useTheme } from '@superset-ui/core'; import Icons from 'src/components/Icons'; import { FilterRemoval } from './types'; import DraggableFilter from './DraggableFilter'; @@ -51,11 +51,7 @@ export const FilterTitle = styled.div` `} `; -const StyledTrashIcon = styled(Icons.Trash)` - color: ${({ theme }) => theme.colors.grayscale.light3}; -`; - -const StyledWarning = styled(Icons.Warning)` +const StyledWarning = styled(Icons.ExclamationCircleOutlined)` color: ${({ theme }) => theme.colors.error.base}; &.anticon { margin-left: auto; @@ -94,6 +90,7 @@ const FilterTitleContainer = forwardRef( }, ref, ) => { + const theme = useTheme(); const renderComponent = (id: string) => { const isRemoved = !!removedFilters[id]; const isErrored = erroredFilters.includes(id); @@ -142,7 +139,9 @@ const FilterTitleContainer = forwardRef(
{isRemoved ? null : ( - { event.stopPropagation(); onRemove(id); diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx index 0a76a5264fc..501ee8a9523 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx @@ -109,7 +109,12 @@ const FilterTitlePane: FC = ({
diff --git a/superset-frontend/src/explore/components/ExploreViewContainer/index.jsx b/superset-frontend/src/explore/components/ExploreViewContainer/index.jsx index 4f06231bc65..fa9279d0e20 100644 --- a/superset-frontend/src/explore/components/ExploreViewContainer/index.jsx +++ b/superset-frontend/src/explore/components/ExploreViewContainer/index.jsx @@ -635,10 +635,13 @@ function ExploreViewContainer(props) { className="action-button" onClick={toggleCollapse} > - @@ -661,10 +664,13 @@ function ExploreViewContainer(props) { > - diff --git a/superset-frontend/src/explore/components/ExportToCSVDropdown/index.tsx b/superset-frontend/src/explore/components/ExportToCSVDropdown/index.tsx index cc7fd23d308..4307a6bca24 100644 --- a/superset-frontend/src/explore/components/ExportToCSVDropdown/index.tsx +++ b/superset-frontend/src/explore/components/ExportToCSVDropdown/index.tsx @@ -74,13 +74,13 @@ export const ExportToCSVDropdown = ({ {t('Original')} - + {t('Pivoted')} - + diff --git a/superset-frontend/src/explore/components/PropertiesModal/PropertiesModal.test.tsx b/superset-frontend/src/explore/components/PropertiesModal/PropertiesModal.test.tsx index 4d1dc67c1de..cbe8f925402 100644 --- a/superset-frontend/src/explore/components/PropertiesModal/PropertiesModal.test.tsx +++ b/superset-frontend/src/explore/components/PropertiesModal/PropertiesModal.test.tsx @@ -159,13 +159,11 @@ test('Should render when show:true', async () => { const props = createProps(); renderModal(props); - // Wait for modal to be fully rendered and animated await waitFor( () => { - const modal = screen.getByRole('dialog', { - name: 'Edit Chart Properties', - }); + const modal = screen.getByRole('dialog'); expect(modal).toBeInTheDocument(); + expect(modal).toHaveTextContent('Edit Chart Properties'); expect(modal).not.toHaveClass('ant-zoom-appear'); }, { timeout: 3000 }, diff --git a/superset-frontend/src/explore/components/PropertiesModal/index.tsx b/superset-frontend/src/explore/components/PropertiesModal/index.tsx index fccf71e8135..dba9031e81e 100644 --- a/superset-frontend/src/explore/components/PropertiesModal/index.tsx +++ b/superset-frontend/src/explore/components/PropertiesModal/index.tsx @@ -33,7 +33,10 @@ import { FeatureFlag, getClientErrorObject, ensureIsArray, + useTheme, + css, } from '@superset-ui/core'; +import Icons from 'src/components/Icons'; import Chart, { Slice } from 'src/types/Chart'; import withToasts from 'src/components/MessageToasts/withToasts'; import { loadTags } from 'src/components/Tags/utils'; @@ -67,6 +70,7 @@ function PropertiesModal({ show, addSuccessToast, }: PropertiesModalProps) { + const theme = useTheme(); const [submitting, setSubmitting] = useState(false); const [form] = AntdForm.useForm(); // values of form inputs @@ -245,7 +249,17 @@ function PropertiesModal({ + + {t('Edit Chart Properties')} + + } footer={ <> ) : ( diff --git a/superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerTreeItem.tsx b/superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerTreeItem.tsx index 283c2b3fb09..a92cc98fe37 100644 --- a/superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerTreeItem.tsx +++ b/superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerTreeItem.tsx @@ -16,8 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -// eslint-disable-next-line no-restricted-imports -import { CloseOutlined, RightOutlined } from '@ant-design/icons'; // TODO: Use src/components/Icons +import Icons from 'src/components/Icons'; // eslint-disable-next-line no-restricted-imports import { Button, Tag } from 'antd'; // TODO: Remove antd import { FC } from 'react'; @@ -41,7 +40,7 @@ export const LayerTreeItem: FC = ({ diff --git a/superset-frontend/src/features/cssTemplates/CssTemplateModal.tsx b/superset-frontend/src/features/cssTemplates/CssTemplateModal.tsx index 43163c8e25f..e325b08fd38 100644 --- a/superset-frontend/src/features/cssTemplates/CssTemplateModal.tsx +++ b/superset-frontend/src/features/cssTemplates/CssTemplateModal.tsx @@ -18,11 +18,10 @@ */ import { FunctionComponent, useState, useEffect, ChangeEvent } from 'react'; -import { styled, t } from '@superset-ui/core'; +import { css, styled, t, useTheme } from '@superset-ui/core'; import { useSingleViewResource } from 'src/views/CRUD/hooks'; import Icons from 'src/components/Icons'; -import { StyledIcon } from 'src/views/CRUD/utils'; import Modal from 'src/components/Modal'; import withToasts from 'src/components/MessageToasts/withToasts'; import { CssEditor } from 'src/components/AsyncAceEditor'; @@ -43,36 +42,40 @@ type CssTemplateStringKeys = keyof Pick< OnlyKeyWithType >; -const StyledCssTemplateTitle = styled.div` - margin: ${({ theme }) => theme.gridUnit * 2}px auto - ${({ theme }) => theme.gridUnit * 4}px auto; -`; +const StyledCssTemplateTitle = styled.div( + ({ theme }) => css` + margin: ${theme.gridUnit * 2}px auto ${theme.gridUnit * 4}px auto; + `, +); const StyledCssEditor = styled(CssEditor)` - border-radius: ${({ theme }) => theme.borderRadius}px; - border: 1px solid ${({ theme }) => theme.colors.secondary.light2}; + ${({ theme }) => css` + border-radius: ${theme.borderRadius}px; + border: 1px solid ${theme.colors.secondary.light2}; + `} `; -const TemplateContainer = styled.div` - margin-bottom: ${({ theme }) => theme.gridUnit * 10}px; +const TemplateContainer = styled.div( + ({ theme }) => css` + margin-bottom: ${theme.gridUnit * 10}px; - .control-label { - margin-bottom: ${({ theme }) => theme.gridUnit * 2}px; - } + .control-label { + margin-bottom: ${theme.gridUnit * 2}px; + } - .required { - margin-left: ${({ theme }) => theme.gridUnit / 2}px; - color: ${({ theme }) => theme.colors.error.base}; - } + .required { + margin-left: ${theme.gridUnit / 2}px; + color: ${theme.colors.error.base}; + } - input[type='text'] { - padding: ${({ theme }) => theme.gridUnit * 1.5}px - ${({ theme }) => theme.gridUnit * 2}px; - border: 1px solid ${({ theme }) => theme.colors.grayscale.light2}; - border-radius: ${({ theme }) => theme.gridUnit}px; - width: 50%; - } -`; + input[type='text'] { + padding: ${theme.gridUnit * 1.5}px ${theme.gridUnit * 2}px; + border: 1px solid ${theme.colors.grayscale.light2}; + border-radius: ${theme.gridUnit}px; + width: 50%; + } + `, +); const CssTemplateModal: FunctionComponent = ({ addDangerToast, @@ -81,6 +84,7 @@ const CssTemplateModal: FunctionComponent = ({ show, cssTemplate = null, }) => { + const theme = useTheme(); const [disableSave, setDisableSave] = useState(true); const [currentCssTemplate, setCurrentCssTemplate] = useState(null); @@ -230,9 +234,19 @@ const CssTemplateModal: FunctionComponent = ({ title={

{isEditMode ? ( - + ) : ( - + )} {isEditMode ? t('Edit CSS template properties') diff --git a/superset-frontend/src/features/dashboards/DashboardCard.tsx b/superset-frontend/src/features/dashboards/DashboardCard.tsx index 5a4c991ec27..edfd28f6d09 100644 --- a/superset-frontend/src/features/dashboards/DashboardCard.tsx +++ b/superset-frontend/src/features/dashboards/DashboardCard.tsx @@ -22,7 +22,6 @@ import { isFeatureEnabled, FeatureFlag, t, - useTheme, SupersetClient, } from '@superset-ui/core'; import { CardStyles } from 'src/views/CRUD/utils'; @@ -67,9 +66,6 @@ function DashboardCard({ const canEdit = hasPerm('can_write'); const canDelete = hasPerm('can_write'); const canExport = hasPerm('can_export'); - - const theme = useTheme(); - const [thumbnailUrl, setThumbnailUrl] = useState(null); const [fetchingThumbnail, setFetchingThumbnail] = useState(false); @@ -109,7 +105,7 @@ function DashboardCard({ onClick={() => openDashboardEditModal?.(dashboard)} data-test="dashboard-card-option-edit-button" > - {t('Edit')} + {t('Edit')} )} @@ -122,7 +118,7 @@ function DashboardCard({ className="action-button" data-test="dashboard-card-option-export-button" > - {t('Export')} + {t('Export')} )} @@ -135,7 +131,7 @@ function DashboardCard({ onClick={() => onDelete(dashboard)} data-test="dashboard-card-option-delete-button" > - {t('Delete')} + {t('Delete')} )} @@ -182,7 +178,7 @@ function DashboardCard({ )} menu} trigger={['hover', 'click']}> diff --git a/superset-frontend/src/features/databases/DatabaseModal/DatabaseConnectionForm/EncryptedField.tsx b/superset-frontend/src/features/databases/DatabaseModal/DatabaseConnectionForm/EncryptedField.tsx index 6bddee3c922..93b9ce7cb3d 100644 --- a/superset-frontend/src/features/databases/DatabaseModal/DatabaseConnectionForm/EncryptedField.tsx +++ b/superset-frontend/src/features/databases/DatabaseModal/DatabaseConnectionForm/EncryptedField.tsx @@ -109,14 +109,14 @@ export const EncryptedField = ({ > {!fileToUpload && ( )} {fileToUpload && (
{ />, ); - const infoTooltipTrigger = screen.getByRole('img', { - name: 'info-solid_small', - }); + const infoTooltipTrigger = screen.getByTestId('info-tooltip-icon'); expect(infoTooltipTrigger).toBeInTheDocument(); userEvent.hover(infoTooltipTrigger); diff --git a/superset-frontend/src/features/databases/DatabaseModal/index.test.tsx b/superset-frontend/src/features/databases/DatabaseModal/index.test.tsx index a7da99d191b..4a0dd068d62 100644 --- a/superset-frontend/src/features/databases/DatabaseModal/index.test.tsx +++ b/superset-frontend/src/features/databases/DatabaseModal/index.test.tsx @@ -668,7 +668,10 @@ describe('DatabaseModal', () => { }); // - Basic/Advanced tabs const basicTab = screen.getByRole('tab', { name: /basic/i }); - const advancedTab = screen.getByRole('tab', { name: /advanced/i }); + const advancedTab = await screen.findByRole('tab', { name: /advanced/i }); + const advancedTabPanel = await screen.findByRole('tabpanel', { + name: /advanced/i, + }); // - Advanced tabs const sqlLabTab = screen.getByRole('tab', { name: /right sql lab adjust how this database will interact with sql lab\./i, @@ -677,9 +680,10 @@ describe('DatabaseModal', () => { const checkboxOffSVGs = screen.getAllByRole('img', { name: /checkbox-off/i, }); - const tooltipIcons = screen.getAllByRole('img', { - name: /info-solid_small/i, + const tooltipIcons = within(advancedTabPanel).getAllByRole('img', { + name: /info-tooltip/i, }); + const exposeInSQLLabCheckbox = screen.getByRole('checkbox', { name: /expose database in sql lab/i, }); diff --git a/superset-frontend/src/features/databases/DatabaseModal/index.tsx b/superset-frontend/src/features/databases/DatabaseModal/index.tsx index 1244b526550..055c97ebd96 100644 --- a/superset-frontend/src/features/databases/DatabaseModal/index.tsx +++ b/superset-frontend/src/features/databases/DatabaseModal/index.tsx @@ -21,6 +21,8 @@ import { styled, SupersetTheme, getExtensionsRegistry, + css, + useTheme, } from '@superset-ui/core'; import { @@ -49,6 +51,7 @@ import withToasts from 'src/components/MessageToasts/withToasts'; import ValidatedInput from 'src/components/Form/LabeledErrorBoundInput'; import ErrorMessageWithStackTrace from 'src/components/ErrorMessage/ErrorMessageWithStackTrace'; import ErrorAlert from 'src/components/ImportModal/ErrorAlert'; +import Icons from 'src/components/Icons'; import { testDatabaseConnection, useSingleViewResource, @@ -561,6 +564,7 @@ const DatabaseModal: FunctionComponent = ({ databaseId, dbEngine, }) => { + const theme = useTheme(); const [db, setDB] = useReducer< Reducer | null, DBReducerActionType> >(dbReducer, null); @@ -1831,7 +1835,24 @@ const DatabaseModal: FunctionComponent = ({ centered show={show} title={ -

{isEditMode ? t('Edit database') : t('Connect a database')}

+

+ {isEditMode ? ( + + ) : ( + + )} + {isEditMode ? t('Edit database') : t('Connect a database')} +

} footer={modalFooter} maskClosable={false} @@ -1992,7 +2013,17 @@ const DatabaseModal: FunctionComponent = ({ width="500px" centered show={show} - title={

{t('Connect a database')}

} + title={ +

+ + {t('Connect a database')} +

+ } footer={renderModalFooter()} maskClosable={false} > diff --git a/superset-frontend/src/features/databases/DatabaseModal/styles.ts b/superset-frontend/src/features/databases/DatabaseModal/styles.ts index 83d00e1d49c..7c2718f8d85 100644 --- a/superset-frontend/src/features/databases/DatabaseModal/styles.ts +++ b/superset-frontend/src/features/databases/DatabaseModal/styles.ts @@ -131,10 +131,12 @@ export const infoTooltip = (theme: SupersetTheme) => css` svg { margin-bottom: ${theme.gridUnit * 0.25}px; } + display: flex; `; export const toggleStyle = (theme: SupersetTheme) => css` padding-left: ${theme.gridUnit * 2}px; + padding-right: ${theme.gridUnit * 2}px; `; export const formScrollableStyles = (theme: SupersetTheme) => css` diff --git a/superset-frontend/src/features/databases/UploadDataModel/index.tsx b/superset-frontend/src/features/databases/UploadDataModel/index.tsx index 46e9b33f39a..8235049283d 100644 --- a/superset-frontend/src/features/databases/UploadDataModel/index.tsx +++ b/superset-frontend/src/features/databases/UploadDataModel/index.tsx @@ -43,9 +43,8 @@ import { Select, Upload, } from 'src/components'; -// eslint-disable-next-line no-restricted-imports -import { UploadOutlined } from '@ant-design/icons'; -import { Input, InputNumber } from 'src/components/Input'; // TODO: Use src/components/Icons +import Icons from 'src/components/Icons'; +import { Input, InputNumber } from 'src/components/Input'; import rison from 'rison'; // eslint-disable-next-line no-restricted-imports import { UploadChangeParam, UploadFile } from 'antd/lib/upload/interface'; // TODO: Remove antd @@ -635,7 +634,7 @@ const UploadDataModal: FunctionComponent = ({ > ); diff --git a/superset-frontend/src/features/datasets/AddDataset/LeftPanel/LeftPanel.test.tsx b/superset-frontend/src/features/datasets/AddDataset/LeftPanel/LeftPanel.test.tsx index fe60f5d2d50..a9f36e74ac6 100644 --- a/superset-frontend/src/features/datasets/AddDataset/LeftPanel/LeftPanel.test.tsx +++ b/superset-frontend/src/features/datasets/AddDataset/LeftPanel/LeftPanel.test.tsx @@ -324,5 +324,5 @@ test('renders a warning icon when a table name has a preexisting dataset', async userEvent.type(tableSelect, 'Sheet2'); // Sheet2 should now show the warning icon - expect(screen.getByRole('img', { name: 'alert-solid' })).toBeInTheDocument(); + expect(screen.getByRole('img', { name: 'warning' })).toBeInTheDocument(); }); diff --git a/superset-frontend/src/features/home/ActivityTable.tsx b/superset-frontend/src/features/home/ActivityTable.tsx index 3eb35598ac2..c6a6d2359a2 100644 --- a/superset-frontend/src/features/home/ActivityTable.tsx +++ b/superset-frontend/src/features/home/ActivityTable.tsx @@ -81,13 +81,13 @@ const getEntityTitle = (entity: ActivityObject) => { }; const getEntityIcon = (entity: ActivityObject) => { - if ('sql' in entity) return ; + if ('sql' in entity) return ; const url = 'item_url' in entity ? entity.item_url : entity.url; if (url?.includes('dashboard')) { - return ; + return ; } if (url?.includes('explore')) { - return ; + return ; } return null; }; diff --git a/superset-frontend/src/features/home/ChartTable.tsx b/superset-frontend/src/features/home/ChartTable.tsx index 1836362ce7a..38ec8642594 100644 --- a/superset-frontend/src/features/home/ChartTable.tsx +++ b/superset-frontend/src/features/home/ChartTable.tsx @@ -17,7 +17,7 @@ * under the License. */ import { useEffect, useMemo, useState } from 'react'; -import { t } from '@superset-ui/core'; +import { t, useTheme } from '@superset-ui/core'; import { useChartEditModal, useFavoriteStatus, @@ -44,6 +44,7 @@ import Chart from 'src/types/Chart'; import handleResourceExport from 'src/utils/export'; import Loading from 'src/components/Loading'; import ErrorBoundary from 'src/components/ErrorBoundary'; +import Icons from 'src/components/Icons'; import EmptyState from './EmptyState'; import { WelcomeTable } from './types'; import SubMenu from './SubMenu'; @@ -69,6 +70,7 @@ function ChartTable({ otherTabFilters, otherTabTitle, }: ChartTableProps) { + const theme = useTheme(); const history = useHistory(); const initialTab = getItem( LocalStorageKeys.HomepageChartFilter, @@ -186,9 +188,11 @@ function ChartTable({ { name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + {t('Chart')} ), diff --git a/superset-frontend/src/features/home/DashboardTable.test.tsx b/superset-frontend/src/features/home/DashboardTable.test.tsx index b574187bed5..d7400254ff6 100644 --- a/superset-frontend/src/features/home/DashboardTable.test.tsx +++ b/superset-frontend/src/features/home/DashboardTable.test.tsx @@ -267,7 +267,7 @@ describe('DashboardTable', () => { ); const moreOptionsButton = screen.getAllByRole('img', { - name: 'more-vert', + name: 'more', })[0]; await userEvent.click(moreOptionsButton); @@ -311,7 +311,7 @@ describe('DashboardTable', () => { { store }, ); - const moreOptionsButton = screen.getAllByLabelText('more-vert')[0]; + const moreOptionsButton = screen.getAllByLabelText('more')[0]; await userEvent.click(moreOptionsButton); await waitFor(() => { diff --git a/superset-frontend/src/features/home/DashboardTable.tsx b/superset-frontend/src/features/home/DashboardTable.tsx index dda1febcfef..56a65a5cb40 100644 --- a/superset-frontend/src/features/home/DashboardTable.tsx +++ b/superset-frontend/src/features/home/DashboardTable.tsx @@ -17,7 +17,7 @@ * under the License. */ import { useEffect, useMemo, useState } from 'react'; -import { SupersetClient, t } from '@superset-ui/core'; +import { SupersetClient, t, useTheme } from '@superset-ui/core'; import { useFavoriteStatus, useListViewResource } from 'src/views/CRUD/hooks'; import { Dashboard, DashboardTableProps, TableTab } from 'src/views/CRUD/types'; import handleResourceExport from 'src/utils/export'; @@ -40,6 +40,7 @@ import Loading from 'src/components/Loading'; import DeleteModal from 'src/components/DeleteModal'; import PropertiesModal from 'src/dashboard/components/PropertiesModal'; import DashboardCard from 'src/features/dashboards/DashboardCard'; +import Icons from 'src/components/Icons'; import EmptyState from './EmptyState'; import SubMenu from './SubMenu'; import { WelcomeTable } from './types'; @@ -54,6 +55,7 @@ function DashboardTable({ otherTabFilters, otherTabTitle, }: DashboardTableProps) { + const theme = useTheme(); const history = useHistory(); const defaultTab = getItem( LocalStorageKeys.HomepageDashboardFilter, @@ -186,9 +188,10 @@ function DashboardTable({ { name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + {t('Dashboard')} ), diff --git a/superset-frontend/src/features/home/LanguagePicker.tsx b/superset-frontend/src/features/home/LanguagePicker.tsx index 61c6a2a107d..da181d3821f 100644 --- a/superset-frontend/src/features/home/LanguagePicker.tsx +++ b/superset-frontend/src/features/home/LanguagePicker.tsx @@ -17,11 +17,10 @@ * under the License. */ import { MainNav as Menu } from 'src/components/Menu'; -import { styled } from '@superset-ui/core'; +import { styled, css, useTheme } from '@superset-ui/core'; import Icons from 'src/components/Icons'; const { SubMenu } = Menu; - export interface Languages { [key: string]: { flag: string; @@ -57,15 +56,23 @@ const StyledFlag = styled.i` export default function LanguagePicker(props: LanguagePickerProps) { const { locale, languages, ...rest } = props; + const theme = useTheme(); return (
} - icon={} + icon={} {...rest} > {Object.keys(languages).map(langKey => ( diff --git a/superset-frontend/src/features/home/Menu.tsx b/superset-frontend/src/features/home/Menu.tsx index ebcff4a023c..4d24fcb4328 100644 --- a/superset-frontend/src/features/home/Menu.tsx +++ b/superset-frontend/src/features/home/Menu.tsx @@ -17,7 +17,7 @@ * under the License. */ import { useState, useEffect } from 'react'; -import { styled } from '@superset-ui/core'; +import { styled, css } from '@superset-ui/core'; import { debounce } from 'lodash'; import { getUrlParam } from 'src/utils/urlUtils'; import { Row, Col, Grid } from 'src/components'; @@ -120,13 +120,23 @@ const StyledHeader = styled.header` const { SubMenu } = MainNav; const StyledSubMenu = styled(SubMenu)` - &.antd5-menu-submenu-active { + ${({ theme }) => css` + [data-icon="caret-down"] { + color: ${theme.colors.grayscale.base}; + font-size: ${theme.typography.sizes.xs}px; + margin-left: ${theme.gridUnit}px; + } + &.antd5-menu-submenu { + padding: ${theme.gridUnit * 2}px ${theme.gridUnit * 4}px; + display: flex; + align-items: center; + height: 100%; &.antd5-menu-submenu-active { .antd5-menu-title-content { - color: ${({ theme }) => theme.colors.primary.base}; + color: ${theme.colors.primary.base}; } } + `} `; - const { useBreakpoint } = Grid; export function Menu({ @@ -212,7 +222,13 @@ export function Menu({ : } + icon={ + showMenu === 'inline' ? ( + <> + ) : ( + + ) + } > {childs?.map((child: MenuObjectChildProps | string, index1: number) => { if (typeof child === 'string' && child === '-' && label !== 'Data') { diff --git a/superset-frontend/src/features/home/RightMenu.tsx b/superset-frontend/src/features/home/RightMenu.tsx index 453942574ac..d798d037e71 100644 --- a/superset-frontend/src/features/home/RightMenu.tsx +++ b/superset-frontend/src/features/home/RightMenu.tsx @@ -67,9 +67,6 @@ const versionInfoStyles = (theme: SupersetTheme) => css` font-size: ${theme.typography.sizes.xs}px; white-space: nowrap; `; -const StyledI = styled.div` - color: ${({ theme }) => theme.colors.primary.dark1}; -`; const styledDisabled = (theme: SupersetTheme) => css` color: ${theme.colors.grayscale.light1}; @@ -110,11 +107,18 @@ const styledChildMenu = (theme: SupersetTheme) => css` const { SubMenu } = Menu; const StyledSubMenu = styled(SubMenu)` - &.antd5-menu-submenu-active { - .antd5-menu-title-content { - color: ${({ theme }) => theme.colors.primary.base}; + ${({ theme }) => css` + [data-icon='caret-down'] { + color: ${theme.colors.grayscale.base}; + font-size: ${theme.typography.sizes.xxs}px; + margin-left: ${theme.gridUnit}px; } - } + &.antd5-menu-submenu-active { + .antd5-menu-title-content { + color: ${theme.colors.primary.base}; + } + } + `} `; const RightMenu = ({ @@ -402,6 +406,10 @@ const RightMenu = ({ )} + } - icon={} + icon={} > {dropdownItems?.map?.(menu => { const canShowChild = menu.childs?.some( @@ -479,7 +490,7 @@ const RightMenu = ({ } + icon={} > {settings?.map?.((section, index) => [ diff --git a/superset-frontend/src/features/home/SavedQueries.tsx b/superset-frontend/src/features/home/SavedQueries.tsx index be5a36dbdac..7258e6d4017 100644 --- a/superset-frontend/src/features/home/SavedQueries.tsx +++ b/superset-frontend/src/features/home/SavedQueries.tsx @@ -18,7 +18,7 @@ */ import { useCallback, useState } from 'react'; import { Link } from 'react-router-dom'; -import { styled, SupersetClient, t, useTheme } from '@superset-ui/core'; +import { styled, SupersetClient, t, useTheme, css } from '@superset-ui/core'; import SyntaxHighlighter from 'react-syntax-highlighter/dist/cjs/light'; import sql from 'react-syntax-highlighter/dist/cjs/languages/hljs/sql'; import github from 'react-syntax-highlighter/dist/cjs/styles/hljs/github'; @@ -207,6 +207,13 @@ const SavedQueries = ({ } }} > + {t('Share')} {canDelete && ( @@ -257,10 +264,23 @@ const SavedQueries = ({ buttons={[ { name: ( - - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + + {t('SQL Query')} ), @@ -326,9 +346,7 @@ const SavedQueries = ({ trigger={['click', 'hover']} > diff --git a/superset-frontend/src/features/home/SubMenu.tsx b/superset-frontend/src/features/home/SubMenu.tsx index af1df5a59a3..7f917a14a85 100644 --- a/superset-frontend/src/features/home/SubMenu.tsx +++ b/superset-frontend/src/features/home/SubMenu.tsx @@ -19,7 +19,7 @@ import { ReactNode, useState, useEffect, FunctionComponent } from 'react'; import { Link, useHistory } from 'react-router-dom'; -import { styled, SupersetTheme, css, t } from '@superset-ui/core'; +import { styled, SupersetTheme, css, t, useTheme } from '@superset-ui/core'; import cx from 'classnames'; import { Tooltip } from 'src/components/Tooltip'; import { debounce } from 'lodash'; @@ -154,6 +154,7 @@ const { SubMenu } = MainNav; const SubMenuComponent: FunctionComponent = props => { const [showMenu, setMenu] = useState('horizontal'); const [navRightStyle, setNavRightStyle] = useState('nav-right'); + const theme = useTheme(); let hasHistory = true; // If no parent component exists, useHistory throws an error @@ -232,9 +233,16 @@ const SubMenuComponent: FunctionComponent = props => { {props.dropDownLinks?.map((link, i) => ( } + icon={} popupOffset={[10, 20]} className="dropdown-menu-links" > diff --git a/superset-frontend/src/features/queries/SyntaxHighlighterCopy.tsx b/superset-frontend/src/features/queries/SyntaxHighlighterCopy.tsx index ac5943b6c77..b144d71c41f 100644 --- a/superset-frontend/src/features/queries/SyntaxHighlighterCopy.tsx +++ b/superset-frontend/src/features/queries/SyntaxHighlighterCopy.tsx @@ -78,7 +78,7 @@ export default function SyntaxHighlighterCopy({ } return ( - { diff --git a/superset-frontend/src/features/reports/ReportModal/HeaderReportDropdown/index.tsx b/superset-frontend/src/features/reports/ReportModal/HeaderReportDropdown/index.tsx index 9f052328098..ad2b2fa8624 100644 --- a/superset-frontend/src/features/reports/ReportModal/HeaderReportDropdown/index.tsx +++ b/superset-frontend/src/features/reports/ReportModal/HeaderReportDropdown/index.tsx @@ -273,10 +273,10 @@ export default function HeaderReportDropDown({ className="action-button action-schedule-report" onClick={() => showReportModal()} > - + ) : ( - menu() + menu() ); return <>{canAddReports() && (useTextMenu ? textMenu() : iconMenu())}; } diff --git a/superset-frontend/src/features/reports/ReportModal/index.tsx b/superset-frontend/src/features/reports/ReportModal/index.tsx index 59f9263a32a..aa84619eba5 100644 --- a/superset-frontend/src/features/reports/ReportModal/index.tsx +++ b/superset-frontend/src/features/reports/ReportModal/index.tsx @@ -225,7 +225,7 @@ function ReportModal({ const wrappedTitle = ( - + {isEditMode ? t('Edit email report') : t('Schedule a new email report')} diff --git a/superset-frontend/src/features/rls/RowLevelSecurityModal.tsx b/superset-frontend/src/features/rls/RowLevelSecurityModal.tsx index a64d99dd51a..6f155afe840 100644 --- a/superset-frontend/src/features/rls/RowLevelSecurityModal.tsx +++ b/superset-frontend/src/features/rls/RowLevelSecurityModal.tsx @@ -17,13 +17,7 @@ * under the License. */ -import { - css, - styled, - SupersetClient, - SupersetTheme, - t, -} from '@superset-ui/core'; +import { css, styled, SupersetClient, useTheme, t } from '@superset-ui/core'; import Modal from 'src/components/Modal'; import { useCallback, useEffect, useMemo, useState } from 'react'; import Icons from 'src/components/Icons'; @@ -54,55 +48,53 @@ const StyledModal = styled(Modal)` } `; -const StyledIcon = (theme: SupersetTheme) => css` - margin: auto ${theme.gridUnit * 2}px auto 0; - color: ${theme.colors.grayscale.base}; -`; - const StyledSectionContainer = styled.div` - display: flex; - flex-direction: column; - padding: ${({ theme }) => - `${theme.gridUnit * 3}px ${theme.gridUnit * 4}px ${theme.gridUnit * 2}px`}; - - label, - .control-label { - display: inline-block; - font-size: ${({ theme }) => theme.typography.sizes.s}px; - color: ${({ theme }) => theme.colors.grayscale.base}; - vertical-align: middle; - } - - .info-solid-small { - vertical-align: middle; - padding-bottom: ${({ theme }) => theme.gridUnit / 2}px; - } -`; - -const StyledInputContainer = styled.div` - display: flex; - flex-direction: column; - margin: ${({ theme }) => theme.gridUnit}px; - margin-bottom: ${({ theme }) => theme.gridUnit * 4}px; - - .input-container { + ${({ theme }) => css` display: flex; - align-items: center; + flex-direction: column; + padding: ${theme.gridUnit * 3}px ${theme.gridUnit * 4}px + ${theme.gridUnit * 2}px; - > div { - width: 100%; + label, + .control-label { + display: flex; + font-size: ${theme.typography.sizes.s}px; + color: ${theme.colors.grayscale.base}; + align-items: center; } - } - input, - textarea { - flex: 1 1 auto; - } + .info-solid-small { + vertical-align: middle; + padding-bottom: ${theme.gridUnit / 2}px; + } + `} +`; +const StyledInputContainer = styled.div` + ${({ theme }) => css` + display: flex; + flex-direction: column; + margin: ${theme.gridUnit}px; + margin-bottom: ${theme.gridUnit * 4}px; - .required { - margin-left: ${({ theme }) => theme.gridUnit / 2}px; - color: ${({ theme }) => theme.colors.error.base}; - } + .input-container { + display: flex; + align-items: center; + + > div { + width: 100%; + } + } + + input, + textarea { + flex: 1 1 auto; + } + + .required { + margin-left: ${theme.gridUnit / 2}px; + color: ${theme.colors.error.base}; + } + `} `; const StyledTextArea = styled(TextArea)` @@ -130,6 +122,7 @@ const DEFAULT_RULE = { }; function RowLevelSecurityModal(props: RowLevelSecurityModalProps) { + const theme = useTheme(); const { rule, addDangerToast, addSuccessToast, onHide, show } = props; const [currentRule, setCurrentRule] = useState({ @@ -342,9 +335,18 @@ function RowLevelSecurityModal(props: RowLevelSecurityModalProps) { title={

{isEditMode ? ( - + ) : ( - + )} {isEditMode ? t('Edit Rule') : t('Add Rule')}

diff --git a/superset-frontend/src/features/tags/TagCard.tsx b/superset-frontend/src/features/tags/TagCard.tsx index ca6260df943..0bf1008f464 100644 --- a/superset-frontend/src/features/tags/TagCard.tsx +++ b/superset-frontend/src/features/tags/TagCard.tsx @@ -17,7 +17,7 @@ * under the License. */ import { Link } from 'react-router-dom'; -import { isFeatureEnabled, FeatureFlag, t, useTheme } from '@superset-ui/core'; +import { isFeatureEnabled, FeatureFlag, t } from '@superset-ui/core'; import { CardStyles } from 'src/views/CRUD/utils'; import { Dropdown } from 'src/components/Dropdown'; import { Menu } from 'src/components/Menu'; @@ -59,7 +59,6 @@ function TagCard({ refreshData(); }; - const theme = useTheme(); const menu = ( {canDelete && ( @@ -81,7 +80,7 @@ function TagCard({ onClick={confirmDelete} data-test="dashboard-card-option-delete-button" > - {t('Delete')} + {t('Delete')} )} @@ -111,7 +110,7 @@ function TagCard({ > menu} trigger={['click', 'hover']}> diff --git a/superset-frontend/src/pages/AlertReportList/index.tsx b/superset-frontend/src/pages/AlertReportList/index.tsx index 33355f0c4a7..c33743fb0c2 100644 --- a/superset-frontend/src/pages/AlertReportList/index.tsx +++ b/superset-frontend/src/pages/AlertReportList/index.tsx @@ -21,6 +21,8 @@ import { useState, useMemo, useEffect, useCallback } from 'react'; import { useHistory } from 'react-router-dom'; import { t, + css, + useTheme, SupersetClient, makeApi, styled, @@ -55,6 +57,7 @@ import AlertReportModal from 'src/features/alerts/AlertReportModal'; import { AlertObject, AlertState } from 'src/features/alerts/types'; import { ModifiedInfo } from 'src/components/AuditInfo'; import { QueryObjectColumns } from 'src/views/CRUD/types'; +import Icons from 'src/components/Icons'; const extensionsRegistry = getExtensionsRegistry(); @@ -109,6 +112,7 @@ function AlertList({ user, addSuccessToast, }: AlertListProps) { + const theme = useTheme(); const title = isReportEnabled ? t('Report') : t('Alert'); const titlePlural = isReportEnabled ? t('reports') : t('alerts'); const pathName = isReportEnabled ? 'Reports' : 'Alerts'; @@ -371,7 +375,7 @@ function AlertList({ label: 'execution-log-action', tooltip: t('Execution log'), placement: 'bottom', - icon: 'Note', + icon: 'FileTextOutlined', onClick: handleGotoExecutionLog, } : null, @@ -380,7 +384,7 @@ function AlertList({ label: allowEdit ? 'edit-action' : 'preview-action', tooltip: allowEdit ? t('Edit') : t('View'), placement: 'bottom', - icon: allowEdit ? 'Edit' : 'Binoculars', + icon: allowEdit ? 'EditOutlined' : 'Binoculars', onClick: handleEdit, } : null, @@ -389,7 +393,7 @@ function AlertList({ label: 'delete-action', tooltip: t('Delete'), placement: 'bottom', - icon: 'Trash', + icon: 'DeleteOutlined', onClick: handleDelete, } : null, @@ -417,9 +421,15 @@ function AlertList({ subMenuButtons.push({ name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {title} + + {title} ), buttonStyle: 'primary', @@ -443,9 +453,16 @@ function AlertList({ buttonAction: () => handleAlertEdit(null), buttonText: canCreate ? ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {title}{' '} + + {title}{' '} ) : null, }; diff --git a/superset-frontend/src/pages/AnnotationLayerList/index.tsx b/superset-frontend/src/pages/AnnotationLayerList/index.tsx index 5871c1f1116..652dff17632 100644 --- a/superset-frontend/src/pages/AnnotationLayerList/index.tsx +++ b/superset-frontend/src/pages/AnnotationLayerList/index.tsx @@ -19,7 +19,7 @@ import { useMemo, useState } from 'react'; import rison from 'rison'; -import { t, SupersetClient } from '@superset-ui/core'; +import { t, SupersetClient, useTheme, css } from '@superset-ui/core'; import { Link, useHistory } from 'react-router-dom'; import { useListViewResource } from 'src/views/CRUD/hooks'; import { createFetchRelated, createErrorHandler } from 'src/views/CRUD/utils'; @@ -37,6 +37,7 @@ import AnnotationLayerModal from 'src/features/annotationLayers/AnnotationLayerM import { AnnotationLayerObject } from 'src/features/annotationLayers/types'; import { ModifiedInfo } from 'src/components/AuditInfo'; import { QueryObjectColumns } from 'src/views/CRUD/types'; +import Icons from 'src/components/Icons'; const PAGE_SIZE = 25; @@ -55,6 +56,7 @@ function AnnotationLayersList({ addSuccessToast, user, }: AnnotationLayersListProps) { + const theme = useTheme(); const { state: { loading, @@ -177,7 +179,7 @@ function AnnotationLayersList({ label: 'edit-action', tooltip: t('Edit template'), placement: 'bottom', - icon: 'Edit', + icon: 'EditOutlined', onClick: handleEdit, } : null, @@ -186,7 +188,7 @@ function AnnotationLayersList({ label: 'delete-action', tooltip: t('Delete template'), placement: 'bottom', - icon: 'Trash', + icon: 'DeleteOutlined', onClick: handleDelete, } : null, @@ -214,9 +216,14 @@ function AnnotationLayersList({ subMenuButtons.push({ name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Annotation layer')} + + {t('Annotation layer')} ), buttonStyle: 'primary', @@ -273,9 +280,11 @@ function AnnotationLayersList({ buttonAction: () => handleAnnotationLayerEdit(null), buttonText: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Annotation layer')} + + {t('Annotation layer')} ), }; diff --git a/superset-frontend/src/pages/AnnotationList/index.tsx b/superset-frontend/src/pages/AnnotationList/index.tsx index 8947a40ff5a..171204e9cd0 100644 --- a/superset-frontend/src/pages/AnnotationList/index.tsx +++ b/superset-frontend/src/pages/AnnotationList/index.tsx @@ -22,6 +22,7 @@ import { useParams, Link, useHistory } from 'react-router-dom'; import { css, t, + useTheme, styled, SupersetClient, getClientErrorObject, @@ -40,6 +41,7 @@ import { createErrorHandler } from 'src/views/CRUD/utils'; import { AnnotationObject } from 'src/features/annotations/types'; import AnnotationModal from 'src/features/annotations/AnnotationModal'; +import Icons from 'src/components/Icons'; const PAGE_SIZE = 25; @@ -67,6 +69,7 @@ function AnnotationList({ addDangerToast, addSuccessToast, }: AnnotationListProps) { + const theme = useTheme(); const { annotationLayerId }: any = useParams(); const { state: { @@ -200,14 +203,14 @@ function AnnotationList({ label: 'edit-action', tooltip: t('Edit annotation'), placement: 'bottom', - icon: 'Edit', + icon: 'EditOutlined', onClick: handleEdit, }, { label: 'delete-action', tooltip: t('Delete annotation'), placement: 'bottom', - icon: 'Trash', + icon: 'DeleteOutlined', onClick: handleDelete, }, ]; @@ -226,9 +229,15 @@ function AnnotationList({ subMenuButtons.push({ name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Annotation')} + + {t('Annotation')} ), buttonStyle: 'primary', @@ -261,9 +270,15 @@ function AnnotationList({ }, buttonText: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Annotation')} + + {t('Annotation')} ), }; diff --git a/superset-frontend/src/pages/ChartCreation/ChartCreation.test.tsx b/superset-frontend/src/pages/ChartCreation/ChartCreation.test.tsx index 2e318ea4ae5..1a37d2e12e6 100644 --- a/superset-frontend/src/pages/ChartCreation/ChartCreation.test.tsx +++ b/superset-frontend/src/pages/ChartCreation/ChartCreation.test.tsx @@ -23,10 +23,18 @@ import { userEvent, waitFor, } from 'spec/helpers/testing-library'; +import { ReactElement } from 'react'; import fetchMock from 'fetch-mock'; import { createMemoryHistory } from 'history'; import { ChartCreation } from 'src/pages/ChartCreation'; import { UserWithPermissionsAndRoles } from 'src/types/bootstrapTypes'; +import { supersetTheme, ThemeProvider } from '@superset-ui/core'; + +const renderWithTheme = (component: ReactElement, renderOptions = {}) => + render( + {component}, + renderOptions, + ); jest.mock('src/components/DynamicPlugins', () => ({ usePluginContext: () => ({ @@ -92,8 +100,13 @@ const renderOptions = { }; async function renderComponent(user = mockUser) { - render( - null} {...routeProps} />, + renderWithTheme( + null} + theme={supersetTheme} + {...routeProps} + />, renderOptions, ); await waitFor(() => new Promise(resolve => setTimeout(resolve, 0))); diff --git a/superset-frontend/src/pages/ChartCreation/index.tsx b/superset-frontend/src/pages/ChartCreation/index.tsx index d3d9ee5e5d8..17fa9908e13 100644 --- a/superset-frontend/src/pages/ChartCreation/index.tsx +++ b/superset-frontend/src/pages/ChartCreation/index.tsx @@ -26,6 +26,7 @@ import { SupersetClient, t, } from '@superset-ui/core'; +import { withTheme, Theme } from '@emotion/react'; import { getUrlParam } from 'src/utils/urlUtils'; import { FilterPlugins, URL_PARAMS } from 'src/constants'; import { Link, withRouter, RouteComponentProps } from 'react-router-dom'; @@ -44,10 +45,12 @@ import { Dataset, DatasetSelectLabel, } from 'src/features/datasets/DatasetSelectLabel'; +import Icons from 'src/components/Icons'; export interface ChartCreationProps extends RouteComponentProps { user: UserWithPermissionsAndRoles; addSuccessToast: (arg: string) => void; + theme: Theme; } export type ChartCreationState = { @@ -291,12 +294,13 @@ export class ChartCreation extends PureComponent< } render() { + const { theme } = this.props; const isButtonDisabled = this.isBtnDisabled(); const VIEW_INSTRUCTIONS_TEXT = t('view instructions'); const datasetHelpText = this.state.canCreateDataset ? ( - {t('Add a dataset')}{' '} + {t('Add a dataset')} {t('or')}{' '} {`${VIEW_INSTRUCTIONS_TEXT} `} - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + . @@ -320,9 +322,7 @@ export class ChartCreation extends PureComponent< target="_blank" > {`${VIEW_INSTRUCTIONS_TEXT} `} - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - + . @@ -387,4 +387,4 @@ export class ChartCreation extends PureComponent< } } -export default withRouter(withToasts(ChartCreation)); +export default withRouter(withToasts(withTheme(ChartCreation))); diff --git a/superset-frontend/src/pages/ChartList/ChartList.test.jsx b/superset-frontend/src/pages/ChartList/ChartList.test.jsx index 3da03f035b5..6641c5a92d6 100644 --- a/superset-frontend/src/pages/ChartList/ChartList.test.jsx +++ b/superset-frontend/src/pages/ChartList/ChartList.test.jsx @@ -178,25 +178,31 @@ describe('ChartList', () => { // Find and click list view toggle const listViewToggle = await screen.findByRole('img', { - name: 'list-view', + name: 'unordered-list', }); const listViewButton = listViewToggle.closest('[role="button"]'); fireEvent.click(listViewButton); // Wait for list view to be active await waitFor(() => { - const listViewToggle = screen.getByRole('img', { name: 'list-view' }); + const listViewToggle = screen.getByRole('img', { + name: 'unordered-list', + }); expect(listViewToggle.closest('[role="button"]')).toHaveClass('active'); }); // Find and click card view toggle - const cardViewToggle = screen.getByRole('img', { name: 'card-view' }); + const cardViewToggle = screen.getByRole('img', { + name: 'appstore', + }); const cardViewButton = cardViewToggle.closest('[role="button"]'); fireEvent.click(cardViewButton); // Wait for card view to be active await waitFor(() => { - const cardViewToggle = screen.getByRole('img', { name: 'card-view' }); + const cardViewToggle = screen.getByRole('img', { + name: 'appstore', + }); expect(cardViewToggle.closest('[role="button"]')).toHaveClass('active'); }); }); @@ -209,7 +215,7 @@ describe('ChartList', () => { // Switch to list view const listViewToggle = await screen.findByRole('img', { - name: 'list-view', + name: 'unordered-list', }); const listViewButton = listViewToggle.closest('[role="button"]'); fireEvent.click(listViewButton); @@ -235,7 +241,7 @@ describe('ChartList', () => { // Switch to list view const listViewToggle = await screen.findByRole('img', { - name: 'list-view', + name: 'unordered-list', }); const listViewButton = listViewToggle.closest('[role="button"]'); fireEvent.click(listViewButton); @@ -246,7 +252,9 @@ describe('ChartList', () => { }); // Click delete button - const deleteButtons = await screen.findAllByTestId('trash'); + const deleteButtons = await screen.findAllByRole('button', { + name: 'delete', + }); fireEvent.click(deleteButtons[0]); // Verify modal appears @@ -261,7 +269,7 @@ describe('ChartList', () => { // Switch to list view const listViewToggle = await screen.findByRole('img', { - name: 'list-view', + name: 'unordered-list', }); const listViewButton = listViewToggle.closest('[role="button"]'); fireEvent.click(listViewButton); @@ -274,7 +282,7 @@ describe('ChartList', () => { // Wait for favorite stars to appear await waitFor(() => { const favoriteStars = screen.getAllByRole('img', { - name: 'favorite-selected', + name: 'starred', }); expect(favoriteStars.length).toBeGreaterThan(0); }); @@ -314,7 +322,7 @@ describe('ChartList - anonymous view', () => { // Switch to list view const listViewToggle = await screen.findByRole('img', { - name: 'list-view', + name: 'unordered-list', }); const listViewButton = listViewToggle.closest('[role="button"]'); fireEvent.click(listViewButton); diff --git a/superset-frontend/src/pages/ChartList/index.tsx b/superset-frontend/src/pages/ChartList/index.tsx index 3e962aaf999..b2158b09a2b 100644 --- a/superset-frontend/src/pages/ChartList/index.tsx +++ b/superset-frontend/src/pages/ChartList/index.tsx @@ -24,6 +24,8 @@ import { styled, SupersetClient, t, + useTheme, + css, } from '@superset-ui/core'; import { useState, useMemo, useCallback } from 'react'; import rison from 'rison'; @@ -157,6 +159,7 @@ const StyledActions = styled.div` `; function ChartList(props: ChartListProps) { + const theme = useTheme(); const { addDangerToast, addSuccessToast, @@ -479,13 +482,12 @@ function ChartList(props: ChartListProps) { placement="bottom" > - + )} @@ -503,7 +505,7 @@ function ChartList(props: ChartListProps) { className="action-button" onClick={handleExport} > - + )} @@ -519,7 +521,7 @@ function ChartList(props: ChartListProps) { className="action-button" onClick={openEditModal} > - + )} @@ -760,9 +762,14 @@ function ChartList(props: ChartListProps) { subMenuButtons.push({ name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Chart')} + + {t('Chart')} ), buttonStyle: 'primary', @@ -778,7 +785,10 @@ function ChartList(props: ChartListProps) { title={t('Import charts')} placement="bottomRight" > - + ), buttonStyle: 'link', diff --git a/superset-frontend/src/pages/CssTemplateList/index.tsx b/superset-frontend/src/pages/CssTemplateList/index.tsx index fd75f3ef236..e1853ad89ed 100644 --- a/superset-frontend/src/pages/CssTemplateList/index.tsx +++ b/superset-frontend/src/pages/CssTemplateList/index.tsx @@ -18,7 +18,7 @@ */ import { useMemo, useState } from 'react'; -import { t, SupersetClient } from '@superset-ui/core'; +import { t, SupersetClient, useTheme, css } from '@superset-ui/core'; import rison from 'rison'; import { useListViewResource } from 'src/views/CRUD/hooks'; @@ -37,6 +37,7 @@ import CssTemplateModal from 'src/features/cssTemplates/CssTemplateModal'; import { TemplateObject } from 'src/features/cssTemplates/types'; import { ModifiedInfo } from 'src/components/AuditInfo'; import { QueryObjectColumns } from 'src/views/CRUD/types'; +import Icons from 'src/components/Icons'; const PAGE_SIZE = 25; @@ -55,6 +56,7 @@ function CssTemplatesList({ addSuccessToast, user, }: CssTemplatesListProps) { + const theme = useTheme(); const { state: { loading, @@ -155,7 +157,7 @@ function CssTemplatesList({ label: 'edit-action', tooltip: t('Edit template'), placement: 'bottom', - icon: 'Edit', + icon: 'EditOutlined', onClick: handleEdit, } : null, @@ -164,7 +166,7 @@ function CssTemplatesList({ label: 'delete-action', tooltip: t('Delete template'), placement: 'bottom', - icon: 'Trash', + icon: 'DeleteOutlined', onClick: handleDelete, } : null, @@ -196,9 +198,15 @@ function CssTemplatesList({ subMenuButtons.push({ name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('CSS template')} + + {t('CSS template')} ), buttonStyle: 'primary', diff --git a/superset-frontend/src/pages/DashboardList/DashboardList.test.jsx b/superset-frontend/src/pages/DashboardList/DashboardList.test.jsx index 3ea08cbe10f..29409fe1c51 100644 --- a/superset-frontend/src/pages/DashboardList/DashboardList.test.jsx +++ b/superset-frontend/src/pages/DashboardList/DashboardList.test.jsx @@ -146,11 +146,11 @@ describe('DashboardList', () => { await screen.findByTestId('dashboard-list-view'); // Initially in card view - const cardViewIcon = screen.getByRole('img', { name: 'card-view' }); + const cardViewIcon = screen.getByRole('img', { name: 'appstore' }); expect(cardViewIcon).toBeInTheDocument(); // Switch to table view - const listViewIcon = screen.getByRole('img', { name: 'list-view' }); + const listViewIcon = screen.getByRole('img', { name: 'appstore' }); const listViewButton = listViewIcon.closest('[role="button"]'); fireEvent.click(listViewButton); @@ -166,7 +166,9 @@ describe('DashboardList', () => { await screen.findByText('title 0'); // Find and click the first more options button - const moreIcons = await screen.findAllByRole('img', { name: 'more-vert' }); + const moreIcons = await screen.findAllByRole('img', { + name: 'more', + }); fireEvent.click(moreIcons[0]); // Click edit from the dropdown @@ -186,7 +188,9 @@ describe('DashboardList', () => { await screen.findByText('title 0'); // Find and click the first more options button - const moreIcons = await screen.findAllByRole('img', { name: 'more-vert' }); + const moreIcons = await screen.findAllByRole('img', { + name: 'more', + }); fireEvent.click(moreIcons[0]); // Click delete from the dropdown diff --git a/superset-frontend/src/pages/DashboardList/index.tsx b/superset-frontend/src/pages/DashboardList/index.tsx index 6d5753e0160..3543cde0f00 100644 --- a/superset-frontend/src/pages/DashboardList/index.tsx +++ b/superset-frontend/src/pages/DashboardList/index.tsx @@ -22,6 +22,8 @@ import { styled, SupersetClient, t, + css, + useTheme, } from '@superset-ui/core'; import { useSelector } from 'react-redux'; import { useState, useMemo, useCallback } from 'react'; @@ -138,7 +140,7 @@ const DASHBOARD_COLUMNS_TO_FETCH = [ function DashboardList(props: DashboardListProps) { const { addDangerToast, addSuccessToast, user } = props; - + const theme = useTheme(); const { roles } = useSelector( state => state.user, ); @@ -440,7 +442,10 @@ function DashboardList(props: DashboardListProps) { className="action-button" onClick={confirmDelete} > - + )} @@ -458,7 +463,7 @@ function DashboardList(props: DashboardListProps) { className="action-button" onClick={handleExport} > - + )} @@ -474,7 +479,7 @@ function DashboardList(props: DashboardListProps) { className="action-button" onClick={handleEdit} > - + )} @@ -680,9 +685,15 @@ function DashboardList(props: DashboardListProps) { subMenuButtons.push({ name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Dashboard')} + + {t('Dashboard')} ), buttonStyle: 'primary', @@ -698,7 +709,7 @@ function DashboardList(props: DashboardListProps) { title={t('Import dashboards')} placement="bottomRight" > - + ), buttonStyle: 'link', diff --git a/superset-frontend/src/pages/DatabaseList/index.tsx b/superset-frontend/src/pages/DatabaseList/index.tsx index 5e9f7a23740..3d15141d71f 100644 --- a/superset-frontend/src/pages/DatabaseList/index.tsx +++ b/superset-frontend/src/pages/DatabaseList/index.tsx @@ -21,6 +21,8 @@ import { styled, SupersetClient, t, + useTheme, + css, } from '@superset-ui/core'; import { useState, useMemo, useEffect } from 'react'; import rison from 'rison'; @@ -79,14 +81,6 @@ interface DatabaseListProps { }; } -const IconCheck = styled(Icons.Check)` - color: ${({ theme }) => theme.colors.grayscale.dark1}; -`; - -const IconCancelX = styled(Icons.CancelX)` - color: ${({ theme }) => theme.colors.grayscale.light1}; -`; - const Actions = styled.div` color: ${({ theme }) => theme.colors.grayscale.base}; @@ -97,7 +91,18 @@ const Actions = styled.div` `; function BooleanDisplay({ value }: { value: Boolean }) { - return value ? : ; + const theme = useTheme(); + return value ? ( + + ) : ( + + ); } function DatabaseList({ @@ -106,6 +111,7 @@ function DatabaseList({ addSuccessToast, user, }: DatabaseListProps) { + const theme = useTheme(); const { state: { loading, @@ -317,9 +323,14 @@ function DatabaseList({ 'data-test': 'btn-create-database', name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Database')}{' '} + + {t('Database')} ), buttonStyle: 'primary', @@ -490,7 +501,7 @@ function DatabaseList({ title={t('Delete database')} placement="bottom" > - + )} @@ -506,7 +517,7 @@ function DatabaseList({ className="action-button" onClick={handleExport} > - + )} @@ -523,7 +534,7 @@ function DatabaseList({ className="action-button" onClick={handleEdit} > - + )} @@ -540,7 +551,7 @@ function DatabaseList({ className="action-button" onClick={handleSync} > - + )} diff --git a/superset-frontend/src/pages/DatasetList/index.tsx b/superset-frontend/src/pages/DatasetList/index.tsx index a2cac3b0369..5ae4bdb5ee6 100644 --- a/superset-frontend/src/pages/DatasetList/index.tsx +++ b/superset-frontend/src/pages/DatasetList/index.tsx @@ -20,6 +20,8 @@ import { getExtensionsRegistry, styled, SupersetClient, + useTheme, + css, t, } from '@superset-ui/core'; import { FunctionComponent, useState, useMemo, useCallback, Key } from 'react'; @@ -82,25 +84,27 @@ const FlexRowContainer = styled.div` `; const Actions = styled.div` - color: ${({ theme }) => theme.colors.grayscale.base}; + ${({ theme }) => css` + color: ${theme.colors.grayscale.base}; - .disabled { - svg, - i { - &:hover { - path { - fill: ${({ theme }) => theme.colors.grayscale.light1}; + .disabled { + svg, + i { + &:hover { + path { + fill: ${theme.colors.grayscale.light1}; + } } } + color: ${theme.colors.grayscale.light1}; + .antd5-menu-item:hover { + cursor: default; + } + &::after { + color: ${theme.colors.grayscale.light1}; + } } - color: ${({ theme }) => theme.colors.grayscale.light1}; - .antd5-menu-item:hover { - cursor: default; - } - &::after { - color: ${({ theme }) => theme.colors.grayscale.light1}; - } - } + `} `; type Dataset = { @@ -140,6 +144,7 @@ const DatasetList: FunctionComponent = ({ user, }) => { const history = useHistory(); + const theme = useTheme(); const { state: { loading, @@ -421,7 +426,7 @@ const DatasetList: FunctionComponent = ({ className="action-button" onClick={handleDelete} > - + )} @@ -437,7 +442,7 @@ const DatasetList: FunctionComponent = ({ className="action-button" onClick={handleExport} > - + )} @@ -459,7 +464,7 @@ const DatasetList: FunctionComponent = ({ className={allowEdit ? 'action-button' : 'disabled'} onClick={allowEdit ? handleEdit : undefined} > - + )} @@ -475,7 +480,7 @@ const DatasetList: FunctionComponent = ({ className="action-button" onClick={handleDuplicate} > - + )} @@ -624,9 +629,14 @@ const DatasetList: FunctionComponent = ({ buttonArr.push({ name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Dataset')}{' '} + + {t('Dataset')} ), onClick: () => { @@ -642,7 +652,10 @@ const DatasetList: FunctionComponent = ({ title={t('Import datasets')} placement="bottomRight" > - + ), buttonStyle: 'link', diff --git a/superset-frontend/src/pages/QueryHistoryList/index.tsx b/superset-frontend/src/pages/QueryHistoryList/index.tsx index a5967118bbb..20d610e27dd 100644 --- a/superset-frontend/src/pages/QueryHistoryList/index.tsx +++ b/superset-frontend/src/pages/QueryHistoryList/index.tsx @@ -19,6 +19,7 @@ import { useMemo, useState, useCallback, ReactElement } from 'react'; import { Link, useHistory } from 'react-router-dom'; import { + css, QueryState, styled, SupersetClient, @@ -159,7 +160,13 @@ function QueryList({ addDangerToast }: QueryListProps) { }; if (status === QueryState.Success) { statusConfig.name = ( - + ); statusConfig.label = t('Success'); } else if ( @@ -167,7 +174,8 @@ function QueryList({ addDangerToast }: QueryListProps) { status === QueryState.Stopped ) { statusConfig.name = ( - + ); statusConfig.label = t('Offline'); } else if ( status === QueryState.Scheduled || status === QueryState.Pending ) { - statusConfig.name = ( - - ); + statusConfig.name = ; statusConfig.label = t('Scheduled'); } return ( @@ -352,7 +358,7 @@ function QueryList({ addDangerToast }: QueryListProps) { }: any) => ( - + ), diff --git a/superset-frontend/src/pages/RowLevelSecurityList/index.tsx b/superset-frontend/src/pages/RowLevelSecurityList/index.tsx index f3b211f95d8..8a2383772c6 100644 --- a/superset-frontend/src/pages/RowLevelSecurityList/index.tsx +++ b/superset-frontend/src/pages/RowLevelSecurityList/index.tsx @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -import { t, styled, SupersetClient } from '@superset-ui/core'; +import { t, styled, SupersetClient, useTheme, css } from '@superset-ui/core'; import { useMemo, useState } from 'react'; import ConfirmStatusChange from 'src/components/ConfirmStatusChange'; import Icons from 'src/components/Icons'; @@ -55,6 +55,7 @@ function RowLevelSecurityList(props: RLSProps) { const { addDangerToast, addSuccessToast, user } = props; const [ruleModalOpen, setRuleModalOpen] = useState(false); const [currentRule, setCurrentRule] = useState(null); + const theme = useTheme(); const { state: { @@ -193,7 +194,10 @@ function RowLevelSecurityList(props: RLSProps) { className="action-button" onClick={confirmDelete} > - + )} @@ -211,7 +215,7 @@ function RowLevelSecurityList(props: RLSProps) { className="action-button" onClick={handleEdit} > - + )} @@ -246,9 +250,16 @@ function RowLevelSecurityList(props: RLSProps) { buttonAction: () => handleRuleEdit(null), buttonText: canEdit ? ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {'Rule'}{' '} + + {t('Rule')} ) : null, }; @@ -314,9 +325,16 @@ function RowLevelSecurityList(props: RLSProps) { subMenuButtons.push({ name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Rule')} + + {t('Rule')} ), buttonStyle: 'primary', diff --git a/superset-frontend/src/pages/SavedQueryList/SavedQueryList.test.jsx b/superset-frontend/src/pages/SavedQueryList/SavedQueryList.test.jsx index cf01d043a35..0edb6d67c2e 100644 --- a/superset-frontend/src/pages/SavedQueryList/SavedQueryList.test.jsx +++ b/superset-frontend/src/pages/SavedQueryList/SavedQueryList.test.jsx @@ -142,7 +142,7 @@ describe('SavedQueryList', () => { const deleteInput = screen.getByTestId('delete-modal-input'); fireEvent.change(deleteInput, { target: { value: 'DELETE' } }); - const confirmButton = screen.getByRole('button', { name: /delete/i }); + const confirmButton = screen.getByTestId('modal-confirm-button'); fireEvent.click(confirmButton); // Verify API call diff --git a/superset-frontend/src/pages/SavedQueryList/index.tsx b/superset-frontend/src/pages/SavedQueryList/index.tsx index c68654a519c..bfae5047210 100644 --- a/superset-frontend/src/pages/SavedQueryList/index.tsx +++ b/superset-frontend/src/pages/SavedQueryList/index.tsx @@ -23,6 +23,8 @@ import { styled, SupersetClient, t, + css, + useTheme, } from '@superset-ui/core'; import { useCallback, useMemo, useState, MouseEvent } from 'react'; import { Link, useHistory } from 'react-router-dom'; @@ -102,6 +104,7 @@ function SavedQueryList({ addSuccessToast, user, }: SavedQueryListProps) { + const theme = useTheme(); const { state: { loading, @@ -195,10 +198,24 @@ function SavedQueryList({ subMenuButtons.push({ name: ( - - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Query')} + + + {t('Query')} ), buttonStyle: 'primary', @@ -213,7 +230,7 @@ function SavedQueryList({ placement="bottomRight" data-test="import-tooltip-test" > - + ), buttonStyle: 'link', @@ -425,28 +442,28 @@ function SavedQueryList({ label: 'edit-action', tooltip: t('Edit query'), placement: 'bottom', - icon: 'Edit', + icon: 'EditOutlined', onClick: handleEdit, }, { label: 'copy-action', tooltip: t('Copy query URL'), placement: 'bottom', - icon: 'Copy', + icon: 'CopyOutlined', onClick: handleCopy, }, canExport && { label: 'export-action', tooltip: t('Export query'), placement: 'bottom', - icon: 'Share', + icon: 'UploadOutlined', onClick: handleExport, }, canDelete && { label: 'delete-action', tooltip: t('Delete query'), placement: 'bottom', - icon: 'Trash', + icon: 'DeleteOutlined', onClick: handleDelete, }, ].filter(item => !!item); diff --git a/superset-frontend/src/pages/Tags/index.tsx b/superset-frontend/src/pages/Tags/index.tsx index 138b1e8a44a..95e782bd748 100644 --- a/superset-frontend/src/pages/Tags/index.tsx +++ b/superset-frontend/src/pages/Tags/index.tsx @@ -17,7 +17,13 @@ * under the License. */ import { useMemo, useState } from 'react'; -import { isFeatureEnabled, FeatureFlag, t } from '@superset-ui/core'; +import { + isFeatureEnabled, + FeatureFlag, + t, + useTheme, + css, +} from '@superset-ui/core'; import { Actions, createErrorHandler, @@ -59,6 +65,7 @@ interface TagListProps { function TagList(props: TagListProps) { const { addDangerToast, addSuccessToast, user } = props; const { userId } = user; + const theme = useTheme(); const initialFilters = useMemo( () => [ @@ -135,10 +142,16 @@ function TagList(props: TagListProps) { buttonAction: () => setShowTagModal(true), buttonText: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {' '} - {'Create a new Tag'}{' '} + + Create a new Tag ), }; @@ -218,7 +231,10 @@ function TagList(props: TagListProps) { className="action-button" onClick={confirmDelete} > - + )} @@ -236,7 +252,7 @@ function TagList(props: TagListProps) { className="action-button" onClick={handleEdit} > - + )} @@ -324,9 +340,14 @@ function TagList(props: TagListProps) { subMenuButtons.push({ name: ( <> - {/* TODO: Remove fa-icon */} - {/* eslint-disable-next-line icons/no-fa-icons-usage */} - {t('Tag')} + {' '} + {t('Tag')} ), buttonStyle: 'primary', diff --git a/superset-frontend/src/views/CRUD/utils.tsx b/superset-frontend/src/views/CRUD/utils.tsx index 86075e30a91..c72de7d4380 100644 --- a/superset-frontend/src/views/CRUD/utils.tsx +++ b/superset-frontend/src/views/CRUD/utils.tsx @@ -18,12 +18,10 @@ */ import { - css, logging, styled, SupersetClient, SupersetClientResponse, - SupersetTheme, getClientErrorObject, t, lruCache, @@ -387,11 +385,6 @@ export const CardStyles = styled.div` } `; -export const StyledIcon = (theme: SupersetTheme) => css` - margin: auto ${theme.gridUnit * 2}px auto 0; - color: ${theme.colors.grayscale.base}; -`; - export /* eslint-disable no-underscore-dangle */ const isNeedsPassword = (payload: any) => typeof payload === 'object' && From 4dd318ca68e7768ad7387110c6b8981b0e11724c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 16:25:15 -0700 Subject: [PATCH 22/28] =?UTF-8?q?chore(=F0=9F=A6=BE):=20bump=20python=20fl?= =?UTF-8?q?ask-appbuilder=20subpackage(s)=20(#31251)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: GitHub Action Co-authored-by: Maxime Beauchemin --- requirements/base.in | 4 +++ requirements/base.txt | 39 +++++++++++++++--------- requirements/development.txt | 56 +++++++++++++++++++++-------------- requirements/translations.txt | 2 +- 4 files changed, 64 insertions(+), 37 deletions(-) diff --git a/requirements/base.in b/requirements/base.in index abae3a15078..accdd2fce91 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -23,3 +23,7 @@ numexpr>=2.9.0 # 5.0.0 has a sensitive deprecation used in other libs # -> https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst#500-2024-10-31 async_timeout>=4.0.0,<5.0.0 + +# Known issue with 6.7.0 breaking a unit test, probably easy to fix, but will require +# a bit of attention to bump. +apispec>=6.0.0,<6.7.0 diff --git a/requirements/base.txt b/requirements/base.txt index 871b9566c8f..603429671fc 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,22 +4,25 @@ alembic==1.15.1 # via flask-migrate amqp==5.3.1 # via kombu -apispec==6.3.0 - # via flask-appbuilder +apispec==6.6.1 + # via + # -r requirements/base.in + # flask-appbuilder apsw==3.46.0.0 # via shillelagh async-timeout==4.0.3 # via # -r requirements/base.in # redis -attrs==24.2.0 +attrs==25.2.0 # via # cattrs # jsonschema # outcome + # referencing # requests-cache # trio -babel==2.16.0 +babel==2.17.0 # via flask-babel backoff==2.2.1 # via apache-superset (pyproject.toml) @@ -86,7 +89,7 @@ cryptography==44.0.2 # pyopenssl defusedxml==0.7.1 # via odfpy -deprecated==1.2.15 +deprecated==1.2.18 # via limits deprecation==2.1.0 # via apache-superset (pyproject.toml) @@ -125,7 +128,7 @@ flask-compress==1.17 # via apache-superset (pyproject.toml) flask-jwt-extended==4.7.1 # via flask-appbuilder -flask-limiter==3.8.0 +flask-limiter==3.11.0 # via flask-appbuilder flask-login==0.6.3 # via @@ -155,7 +158,6 @@ greenlet==3.1.1 # via # apache-superset (pyproject.toml) # shillelagh - # sqlalchemy gunicorn==23.0.0 # via apache-superset (pyproject.toml) h11==0.14.0 @@ -173,7 +175,7 @@ idna==3.10 # trio importlib-metadata==8.6.1 # via apache-superset (pyproject.toml) -importlib-resources==6.4.5 +importlib-resources==6.5.2 # via limits isodate==0.7.2 # via apache-superset (pyproject.toml) @@ -187,8 +189,10 @@ jinja2==3.1.6 # flask-babel jsonpath-ng==1.7.0 # via apache-superset (pyproject.toml) -jsonschema==4.17.3 +jsonschema==4.23.0 # via flask-appbuilder +jsonschema-specifications==2024.10.1 + # via jsonschema kombu==5.4.2 # via celery korean-lunar-calendar==0.3.1 @@ -209,7 +213,7 @@ markupsafe==3.0.2 # mako # werkzeug # wtforms -marshmallow==3.23.1 +marshmallow==3.26.1 # via # flask-appbuilder # marshmallow-sqlalchemy @@ -280,7 +284,7 @@ pyasn1-modules==0.4.1 # via google-auth pycparser==2.22 # via cffi -pygments==2.18.0 +pygments==2.19.1 # via rich pyjwt==2.10.1 # via @@ -293,8 +297,6 @@ pyopenssl==25.0.0 # via shillelagh pyparsing==3.2.1 # via apache-superset (pyproject.toml) -pyrsistent==0.20.0 - # via jsonschema pysocks==1.7.1 # via urllib3 python-dateutil==2.9.0.post0 @@ -323,6 +325,10 @@ pyyaml==6.0.2 # apispec redis==4.6.0 # via apache-superset (pyproject.toml) +referencing==0.36.2 + # via + # jsonschema + # jsonschema-specifications requests==2.32.2 # via # requests-cache @@ -331,6 +337,10 @@ requests-cache==1.2.0 # via shillelagh rich==13.9.4 # via flask-limiter +rpds-py==0.23.1 + # via + # jsonschema + # referencing rsa==4.9 # via google-auth selenium==4.27.1 @@ -386,6 +396,7 @@ typing-extensions==4.12.2 # flask-limiter # limits # pyopenssl + # referencing # rich # selenium # shillelagh @@ -418,7 +429,7 @@ werkzeug==3.1.3 # flask-appbuilder # flask-jwt-extended # flask-login -wrapt==1.17.0 +wrapt==1.17.2 # via deprecated wsproto==1.2.0 # via trio-websocket diff --git a/requirements/development.txt b/requirements/development.txt index 5a155d2e519..1317a2970c4 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -10,7 +10,7 @@ amqp==5.3.1 # via # -c requirements/base.txt # kombu -apispec==6.3.0 +apispec==6.6.1 # via # -c requirements/base.txt # flask-appbuilder @@ -22,15 +22,16 @@ async-timeout==4.0.3 # via # -c requirements/base.txt # redis -attrs==24.2.0 +attrs==25.2.0 # via # -c requirements/base.txt # cattrs # jsonschema # outcome + # referencing # requests-cache # trio -babel==2.16.0 +babel==2.17.0 # via # -c requirements/base.txt # flask-babel @@ -151,7 +152,7 @@ defusedxml==0.7.1 # via # -c requirements/base.txt # odfpy -deprecated==1.2.15 +deprecated==1.2.18 # via # -c requirements/base.txt # limits @@ -223,7 +224,7 @@ flask-jwt-extended==4.7.1 # via # -c requirements/base.txt # flask-appbuilder -flask-limiter==3.8.0 +flask-limiter==3.11.0 # via # -c requirements/base.txt # flask-appbuilder @@ -317,7 +318,6 @@ greenlet==3.1.1 # apache-superset # gevent # shillelagh - # sqlalchemy grpcio==1.68.0 # via # apache-superset @@ -358,7 +358,7 @@ importlib-metadata==8.6.1 # via # -c requirements/base.txt # apache-superset -importlib-resources==6.4.5 +importlib-resources==6.5.2 # via # -c requirements/base.txt # limits @@ -383,15 +383,19 @@ jsonpath-ng==1.7.0 # via # -c requirements/base.txt # apache-superset -jsonschema==4.17.3 +jsonschema==4.23.0 # via # -c requirements/base.txt # flask-appbuilder - # jsonschema-spec # openapi-schema-validator # openapi-spec-validator -jsonschema-spec==0.1.6 +jsonschema-path==0.3.4 # via openapi-spec-validator +jsonschema-specifications==2024.10.1 + # via + # -c requirements/base.txt + # jsonschema + # openapi-schema-validator kiwisolver==1.4.7 # via matplotlib kombu==5.4.2 @@ -428,7 +432,7 @@ markupsafe==3.0.2 # mako # werkzeug # wtforms -marshmallow==3.23.1 +marshmallow==3.26.1 # via # -c requirements/base.txt # flask-appbuilder @@ -478,9 +482,9 @@ odfpy==1.4.1 # via # -c requirements/base.txt # pandas -openapi-schema-validator==0.4.4 +openapi-schema-validator==0.6.3 # via openapi-spec-validator -openapi-spec-validator==0.5.6 +openapi-spec-validator==0.7.1 # via apache-superset openpyxl==3.1.5 # via @@ -533,7 +537,7 @@ parsedatetime==2.6 # -c requirements/base.txt # apache-superset pathable==0.4.3 - # via jsonschema-spec + # via jsonschema-path pgsanity==0.2.9 # via # -c requirements/base.txt @@ -613,7 +617,7 @@ pydruid==0.6.9 # via apache-superset pyfakefs==5.3.5 # via apache-superset -pygments==2.18.0 +pygments==2.19.1 # via # -c requirements/base.txt # rich @@ -640,10 +644,6 @@ pyparsing==3.2.1 # -c requirements/base.txt # apache-superset # matplotlib -pyrsistent==0.20.0 - # via - # -c requirements/base.txt - # jsonschema pysocks==1.7.1 # via # -c requirements/base.txt @@ -698,19 +698,25 @@ pyyaml==6.0.2 # -c requirements/base.txt # apache-superset # apispec - # jsonschema-spec + # jsonschema-path # pre-commit redis==4.6.0 # via # -c requirements/base.txt # apache-superset +referencing==0.36.2 + # via + # -c requirements/base.txt + # jsonschema + # jsonschema-path + # jsonschema-specifications requests==2.32.2 # via # -c requirements/base.txt # docker # google-api-core # google-cloud-bigquery - # jsonschema-spec + # jsonschema-path # pydruid # pyhive # requests-cache @@ -729,6 +735,11 @@ rich==13.9.4 # via # -c requirements/base.txt # flask-limiter +rpds-py==0.23.1 + # via + # -c requirements/base.txt + # jsonschema + # referencing rsa==4.9 # via # -c requirements/base.txt @@ -840,6 +851,7 @@ typing-extensions==4.12.2 # flask-limiter # limits # pyopenssl + # referencing # rich # selenium # shillelagh @@ -885,7 +897,7 @@ werkzeug==3.1.3 # flask-appbuilder # flask-jwt-extended # flask-login -wrapt==1.17.0 +wrapt==1.17.2 # via # -c requirements/base.txt # deprecated diff --git a/requirements/translations.txt b/requirements/translations.txt index cc863d50fc0..1cd3ce84d76 100644 --- a/requirements/translations.txt +++ b/requirements/translations.txt @@ -1,4 +1,4 @@ # This file was autogenerated by uv via the following command: # uv pip compile requirements/translations.in -o requirements/translations.txt -babel==2.16.0 +babel==2.17.0 # via -r requirements/translations.in From b26c373f4d622883f7ba6525b45df5aecc9bd5a1 Mon Sep 17 00:00:00 2001 From: CharlesNkdl <100453363+CharlesNkdl@users.noreply.github.com> Date: Wed, 19 Mar 2025 01:31:23 +0100 Subject: [PATCH 23/28] chore(lang): update and fix french translations (#32711) --- .../translations/fr/LC_MESSAGES/messages.po | 4841 ++++++++--------- 1 file changed, 2213 insertions(+), 2628 deletions(-) diff --git a/superset/translations/fr/LC_MESSAGES/messages.po b/superset/translations/fr/LC_MESSAGES/messages.po index d2f70f2568f..b8724e187af 100644 --- a/superset/translations/fr/LC_MESSAGES/messages.po +++ b/superset/translations/fr/LC_MESSAGES/messages.po @@ -18,42 +18,42 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-07-30 17:32-0600\n" -"PO-Revision-Date: 2021-11-16 17:33+0100\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" +"PO-Revision-Date: 2025-03-17 23:32+0100\n" +"Last-Translator: \n" "Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Generated-By: Babel 2.15.0\n" +"X-Generator: Poedit 3.5\n" msgid "" "\n" -" The cumulative option allows you to see how your data " -"accumulates over different\n" -" values. When enabled, the histogram bars represent the " -"running total of frequencies\n" -" up to each bin. This helps you understand how likely it " -"is to encounter values\n" -" below a certain point. Keep in mind that enabling " -"cumulative doesn't change your\n" -" original data, it just changes the way the histogram is " -"displayed." +" The cumulative option allows you to see how your data accumulates " +"over different\n" +" values. When enabled, the histogram bars represent the running " +"total of frequencies\n" +" up to each bin. This helps you understand how likely it is to " +"encounter values\n" +" below a certain point. Keep in mind that enabling cumulative " +"doesn't change your\n" +" original data, it just changes the way the histogram is displayed." msgstr "" msgid "" "\n" -" The normalize option transforms the histogram values into" -" proportions or\n" -" probabilities by dividing each bin's count by the total " -"count of data points.\n" -" This normalization process ensures that the resulting " -"values sum up to 1,\n" -" enabling a relative comparison of the data's distribution" -" and providing a\n" -" clearer understanding of the proportion of data points " -"within each bin." +" The normalize option transforms the histogram values into " +"proportions or\n" +" probabilities by dividing each bin's count by the total count of " +"data points.\n" +" This normalization process ensures that the resulting values sum " +"up to 1,\n" +" enabling a relative comparison of the data's distribution and " +"providing a\n" +" clearer understanding of the proportion of data points within each " +"bin." msgstr "" msgid "" @@ -81,22 +81,20 @@ msgid " (excluded)" msgstr " (exclu)" msgid "" -" Set the opacity to 0 if you do not want to override the color specified " -"in the GeoJSON" +" Set the opacity to 0 if you do not want to override the color specified in the " +"GeoJSON" msgstr "" -" Réglez l’opacité à 0 si vous ne voulez pas remplacer la couleur " -"spécifiée dans le GeoJSON" +" Réglez l’opacité à 0 si vous ne voulez pas remplacer la couleur spécifiée dans le " +"GeoJSON" -#, fuzzy msgid " a dashboard OR " -msgstr " un tableau de bord OU" +msgstr " un tableau de bord OU " -#, fuzzy msgid " a new one" -msgstr " une nouvelle" +msgstr " un nouveau" msgid " expression which needs to adhere to the " -msgstr " expression qui doit adhérer au" +msgstr " expression qui doit adhérer au " msgid " source code of Superset's sandboxed parser" msgstr " code source de l'analyseur de bac à sable du standard Superset" @@ -104,47 +102,40 @@ msgstr " code source de l'analyseur de bac à sable du standard Superset" msgid "" " standard to ensure that the lexicographical ordering\n" " coincides with the chronological ordering. If the\n" -" timestamp format does not adhere to the ISO 8601 " -"standard\n" +" timestamp format does not adhere to the ISO 8601 standard\n" " you will need to define an expression and type for\n" -" transforming the string into a date or timestamp. " -"Note\n" -" currently time zones are not supported. If time is " -"stored\n" -" in epoch format, put `epoch_s` or `epoch_ms`. If no" -" pattern\n" -" is specified we fall back to using the optional " -"defaults on a per\n" +" transforming the string into a date or timestamp. Note\n" +" currently time zones are not supported. If time is stored\n" +" in epoch format, put `epoch_s` or `epoch_ms`. If no pattern\n" +" is specified we fall back to using the optional defaults on " +"a per\n" " database/column name level via the extra parameter." msgstr "" -" afin de garantir que l'ordre lexicographique coïncide avec l'ordre " -"chronologique. Si le format de l'horodatage n'est pas conforme à la norme" -" ISO 8601, vous devrez définir une expression et un type pour transformer" -" la chaîne en date ou en horodatage. Notez que les fuseaux horaires ne " -"sont pas pris en charge actuellement. Si l'heure est stockée au format " -"epoch, mettez `epoch_s` ou `epoch_ms`. Si aucun modèle n'est spécifié, " -"nous utilisons les valeurs par défaut optionnelles au niveau de chaque " -"base de données/nom de colonne via le paramètre supplémentaire." +" afin de garantir que l'ordre lexicographique coïncide avec l'ordre chronologique. " +"Si le format de l'horodatage n'est pas conforme à la norme ISO 8601, vous devrez " +"définir une expression et un type pour transformer la chaîne en date ou en " +"horodatage. Notez que les fuseaux horaires ne sont pas pris en charge " +"actuellement. Si l'heure est stockée au format epoch, mettez `epoch_s` ou " +"`epoch_ms`. Si aucun modèle n'est spécifié, nous utilisons les valeurs par défaut " +"optionnelles au niveau de chaque base de données/nom de colonne via le paramètre " +"supplémentaire." -#, fuzzy msgid " to add calculated columns" msgstr " pour ajouter des colonnes calculées" -#, fuzzy msgid " to add metrics" msgstr " pour ajouter une mesure" -#, fuzzy msgid " to edit or add columns and metrics." msgstr " pour modifier ou ajouter des colonnes et des mesures." msgid " to mark a column as a time column" -msgstr " pour marquer une colonne comme colonne de temps" +msgstr " pour marquer une colonne comme colonne temporelle" msgid " to open SQL Lab. From there you can save the query as a dataset." msgstr "" -" pour ouvrir SQL Lab. À partir de là, vous pouvez enregistrer la requête " -"sous forme de ensemble de données." +" pour ouvrir SQL Lab. À partir de là, vous pouvez enregistrer la requête sous " +"forme d'ensemble de données." msgid " to visualize your data." msgstr " pour visualiser vos données." @@ -152,23 +143,23 @@ msgstr " pour visualiser vos données." msgid "!= (Is not equal)" msgstr "!= (N'est pas égal)" -#, fuzzy, python-format +#, python-format msgid "% calculation" -msgstr "Choisir un type de calcul" +msgstr "% calcul" -#, fuzzy, python-format +#, python-format msgid "% of parent" -msgstr "Parent" +msgstr "% de parent" -#, fuzzy, python-format +#, python-format msgid "% of total" -msgstr "Afficher le total" +msgstr "% du total" #, python-format msgid "%(dialect)s cannot be used as a data source for security reasons." msgstr "" -"%(dialect)s ne peut pas être utilisé comme source de données pour des " -"raisons de sécurité." +"%(dialect)s ne peut pas être utilisé comme source de données pour des raisons de " +"sécurité." #, fuzzy, python-format msgid "" @@ -181,9 +172,9 @@ msgstr "%(message)sCela peut être déclenché par :%(issues)s" msgid "%(name)s.csv" msgstr "%(name)s.csv" -#, fuzzy, python-format +#, python-format msgid "%(name)s.pdf" -msgstr "%(name)s.csv" +msgstr "%(name)s.pdf" #, python-format msgid "%(object)s does not exist in this database." @@ -193,17 +184,17 @@ msgstr "%(object)s n'existe pas dans cette base de données." msgid "%(other)s charts will appear here" msgstr "%(other)s graphiques apparaîtront ici" -#, fuzzy, python-format +#, python-format msgid "%(other)s dashboards will appear here" -msgstr "%(other)s tableaux de bord apparaîtront ici" +msgstr "%(other)s tableaux de bord apparaîtront ici" #, fuzzy, python-format msgid "%(other)s recents will appear here" msgstr "%(other)s récents apparaîtront ici" -#, fuzzy, python-format +#, python-format msgid "%(other)s saved queries will appear here" -msgstr "%(other)s requêtes sauvegardées apparaîtront ici" +msgstr "%(other)s requêtes sauvegardées apparaîtront ici" #, python-format msgid "%(prefix)s %(title)s" @@ -211,33 +202,37 @@ msgstr "%(prefix)s %(title)s" #, python-format msgid "" -"%(report_type)s schedule frequency exceeding limit. Please configure a " -"schedule with a minimum interval of %(minimum_interval)d minutes per " -"execution." +"%(report_type)s schedule frequency exceeding limit. Please configure a schedule " +"with a minimum interval of %(minimum_interval)d minutes per execution." msgstr "" +"%(report_type)s schedule frequency exceeding limit. Please configure a schedule " +"with a minimum interval of %(minimum_interval)d minutes per execution." #, python-format msgid "%(rows)d rows returned" msgstr "%(rows)d lignes retournées" -#, fuzzy, python-format +#, python-format msgid "" "%(subtitle)s\n" "This may be triggered by:\n" " %(issue)s" -msgstr "%(subtitle)sCela peut être déclenché par : %(issue)s" +msgstr "" +"%(subtitle)s\n" +"Cela peut être déclenché par:\n" +"%(issue)s" -#, fuzzy, python-format +#, python-format msgid "%(suggestion)s instead of \"%(undefinedParameter)s?\"" msgid_plural "" -"%(firstSuggestions)s or %(lastSuggestion)s instead of " -"\"%(undefinedParameter)s\"?" -msgstr[0] "%(suggestion)s au lieu de « %(undefinedParameter)s? »" +"%(firstSuggestions)s or %(lastSuggestion)s instead of \"%(undefinedParameter)s\"?" +msgstr[0] "%(suggestion)s au lieu de \"%(undefinedParameter)s?\"" msgstr[1] "" +"%(firstSuggestions)s ou %(lastSuggestion)s au lieu de \"%(undefinedParameter)s\"?" -#, fuzzy, python-format +#, python-format msgid "%(type)s File" -msgstr "%(prefix)s %(title)s" +msgstr "%(type)s Fichier" #, python-format msgid "" @@ -245,14 +240,15 @@ msgid "" "Please recheck your query.\n" "Exception: %(ex)s" msgstr "" -"%(validator)s n'a pas pu vérifier votre requête.Merci de vérifier à " -"nouveau votre requête.Exception: %(ex)s" +"%(validator)s n'a pas pu vérifier votre requête.\n" +"Merci de vérifier à nouveau votre requête.\n" +"Exception: %(ex)s" #, python-format msgid "%s Error" msgstr "%s Erreur" -#, fuzzy, python-format +#, python-format msgid "%s PASSWORD" msgstr "%s MOT DE PASSE" @@ -294,37 +290,39 @@ msgstr "%s colonne(s)" #, python-format msgid "%s ineligible item(s) are hidden" -msgstr "%s article(s) non éligible(s) sont caché(s)." +msgstr "%s article(s) non éligible(s) sont caché(s)" #, python-format msgid "" -"%s items could not be tagged because you don’t have edit permissions to " -"all selected objects." +"%s items could not be tagged because you don’t have edit permissions to all " +"selected objects." msgstr "" +"%s objets n'ont pas pu être taggés parce que vous n'avez pas les permissions sur " +"tout les objets sélectionnés." #, python-format msgid "%s operator(s)" msgstr "%s opérateur(s)" -#, fuzzy, python-format +#, python-format msgid "%s option" msgid_plural "%s options" -msgstr[0] "%s option(s)" -msgstr[1] "" +msgstr[0] "%s option" +msgstr[1] "%s options" #, python-format msgid "%s option(s)" msgstr "%s option(s)" -#, fuzzy, python-format +#, python-format msgid "%s recipients" -msgstr "récents" +msgstr "%s destinataires" -#, fuzzy, python-format +#, python-format msgid "%s row" msgid_plural "%s rows" msgstr[0] "%s rangée" -msgstr[1] "" +msgstr[1] "%s rangées" #, python-format msgid "%s saved metric(s)" @@ -352,9 +350,9 @@ msgid "(no description, click to see stack trace)" msgstr "(aucune description, cliquez pour voir le suivi de la pile)" msgid "), and they become available in your SQL (example:" -msgstr "), et ils deviennent disponibles dans votre SQL (exemple :" +msgstr "), et ils deviennent disponibles dans votre SQL (exemple:" -#, fuzzy, python-format +#, python-format msgid "" "*%(name)s*\n" "\n" @@ -362,7 +360,13 @@ msgid "" "\n" " Error: %(text)s\n" " " -msgstr "*%(name)s*%(description)sErreur : %(text)s" +msgstr "" +"*%(name)s*\n" +"\n" +" %(description)s\n" +"\n" +" Erreur : %(text)s\n" +" " #, python-format msgid "" @@ -373,20 +377,27 @@ msgid "" "<%(url)s|Explore in Superset>\n" "\n" "%(table)s\n" -msgstr "*%(name)s*%(description)s<%(url)s|Explore in Superset>%(table)s" +msgstr "" +"*%(name)s*\n" +"\n" +"%(description)s\n" +"\n" +"<%(url)s|Explorer dans Superset>\n" +"\n" +"%(table)s\n" #, python-format msgid "+ %s more" msgstr "+ %s plus" msgid "" -"-- Note: Unless you save your query, these tabs will NOT persist if you " -"clear your cookies or change browsers.\n" +"-- Note: Unless you save your query, these tabs will NOT persist if you clear your " +"cookies or change browsers.\n" "\n" msgstr "" -"-- Remarque : À moins que vous ne sauvegardiez votre requête, ces onglets" -" ne persisteront PAS si vous effacez vos témoins ou si vous changez de " -"navigateur." +"-- Remarque: À moins que vous ne sauvegardiez votre requête, ces onglets ne " +"persisteront PAS si vous effacez vos témoins ou si vous changez de navigateur.\n" +"\n" msgid "0 Selected" msgstr "0 sélectionné" @@ -394,7 +405,6 @@ msgstr "0 sélectionné" msgid "1 calendar day frequency" msgstr "Fréquence d’un jour civil" -#, fuzzy msgid "1 day" msgstr "1 jour" @@ -404,7 +414,6 @@ msgstr "Il y a 1 jour" msgid "1 hour" msgstr "1 heure" -#, fuzzy msgid "1 hourly frequency" msgstr "Fréquence de 1 heure" @@ -414,9 +423,8 @@ msgstr "1 minute" msgid "1 minutely frequency" msgstr "Fréquence de 1 minute" -#, fuzzy msgid "1 month ago" -msgstr "Mois" +msgstr "Il y a 1 mois" msgid "1 month end frequency" msgstr "Fréquence de fin de mois" @@ -424,22 +432,18 @@ msgstr "Fréquence de fin de mois" msgid "1 month start frequency" msgstr "Fréquence de début de mois" -#, fuzzy msgid "1 week" msgstr "1 semaine" msgid "1 week ago" msgstr "Il y a 1 semaine" -#, fuzzy msgid "1 week starting Monday (freq=W-MON)" msgstr "1 semaine débutant le lundi (freq=W-MON)" -#, fuzzy msgid "1 week starting Sunday (freq=W-SUN)" msgstr "1 semaine débutant le dimanche (freq=W-SUN)" -#, fuzzy msgid "1 year" msgstr "1 an" @@ -457,7 +461,6 @@ msgstr "Fréquence de début d’année" msgid "10 minute" msgstr "10 minutes" -#, fuzzy msgid "104 weeks" msgstr "104 semaines" @@ -467,7 +470,6 @@ msgstr "Il y a 104 semaines" msgid "15 minute" msgstr "15 minutes" -#, fuzzy msgid "156 weeks" msgstr "156 semaines" @@ -489,9 +491,8 @@ msgstr "1M" msgid "1T" msgstr "1T" -#, fuzzy msgid "2 years" -msgstr "2 ans" +msgstr "2 ans" msgid "2 years ago" msgstr "Il y a 2 ans" @@ -502,7 +503,6 @@ msgstr "2/98 centiles" msgid "22" msgstr "22" -#, fuzzy msgid "28 days" msgstr "28 jours" @@ -512,11 +512,9 @@ msgstr "Il y a 28 jours" msgid "2D" msgstr "2D" -#, fuzzy msgid "3 letter code of the country" msgstr "Code à 3 lettres du pays" -#, fuzzy msgid "3 years" msgstr "3 ans" @@ -526,7 +524,6 @@ msgstr "Il y a 3 ans" msgid "30 days" msgstr "30 jours" -#, fuzzy msgid "30 days ago" msgstr "Il y a 30 jours" @@ -557,18 +554,15 @@ msgstr "5 minutes" msgid "5 second" msgstr "5 secondes" -#, fuzzy msgid "5 seconds" msgstr "5 secondes" -#, fuzzy msgid "52 weeks" msgstr "52 semaines" msgid "52 weeks ago" msgstr "Il y a 52 semaines" -#, fuzzy msgid "52 weeks starting Monday (freq=52W-MON)" msgstr "52 semaines débutant le lundi (freq=52W-MON)" @@ -581,7 +575,6 @@ msgstr "60 jours" msgid "7 calendar day frequency" msgstr "Fréquence de 7 jours civils" -#, fuzzy msgid "7 days" msgstr "7 jours" @@ -604,23 +597,20 @@ msgid "<= (Smaller or equal)" msgstr "<= (Plus petit ou égal)" msgid "" -msgstr "" +msgstr "" -#, fuzzy msgid "" -msgstr "" +msgstr "" -#, fuzzy msgid "" -msgstr "" +msgstr "" #, fuzzy msgid "" msgstr "" -#, fuzzy msgid "" -msgstr "" +msgstr "" msgid "== (Is equal)" msgstr "== (est égal)" @@ -631,101 +621,93 @@ msgstr "> (plus grand que)" msgid ">= (Larger or equal)" msgstr ">= (plus grand ou égal)" -#, fuzzy msgid "A Big Number" msgstr "Gros nombre" -#, fuzzy msgid "A comma separated list of columns that should be parsed as dates" msgstr "" -"Une liste de colonnes séparées par des virgules qui doivent être " -"analysées comme des dates." +"Une liste de colonnes séparées par des virgules qui doivent être analysées comme " +"des dates" #, fuzzy msgid "A comma-separated list of schemas that files are allowed to upload to." msgstr "" -"Une liste de schémas séparés par des virgules autorisés pour le " -"téléversement." +"Une liste de schémas séparés par des virgules autorisés pour le téléversement." msgid "A database port is required when connecting via SSH Tunnel." -msgstr "" +msgstr "Un port de base de donnée est requis lors de la connexion en SSH." msgid "A database with the same name already exists." msgstr "Une base de données avec le même nom existe déjà." -#, fuzzy msgid "" -"A dictionary with column names and their data types if you need to change" -" the defaults. Example: {\"user_id\":\"int\"}. Check Python's Pandas " -"library for supported data types." +"A dictionary with column names and their data types if you need to change the " +"defaults. Example: {\"user_id\":\"int\"}. Check Python's Pandas library for " +"supported data types." msgstr "" -"Un dictionnaire avec des noms de colonne et leurs types de données si " -"vous devez modifier les valeurs par défaut. Exemple : {« user_id » :« " -"integer »}" +"Un dictionnaire avec des noms de colonne et leurs types de données si vous devez " +"modifier les valeurs par défaut. Exemple : {\"user_id\":\"integer\"}. " +"Renseignement disponible sur la librairie Pandas de Python pour les types de " +"données supportés." msgid "" -"A full URL pointing to the location of the built plugin (could be hosted " -"on a CDN for example)" +"A full URL pointing to the location of the built plugin (could be hosted on a CDN " +"for example)" msgstr "" -"Une URL complète désignant le lieu du plugiciel (pourrait être hébergé " -"sur un CDN par exemple)" +"Une URL complète désignant le lieu du plugiciel (pourrait être hébergé sur un CDN " +"par exemple)" msgid "A handlebars template that is applied to the data" -msgstr "Un modèle de guidon appliqué aux données" +msgstr "Un modèle de Handlebars appliqué aux données" msgid "A human-friendly name" msgstr "Un nom facile à comprendre" msgid "" -"A list of domain names that can embed this dashboard. Leaving this field " -"empty will allow embedding from any domain." +"A list of domain names that can embed this dashboard. Leaving this field empty " +"will allow embedding from any domain." msgstr "" -"Une liste de noms de domaine qui peuvent intégrer ce tableau de bord. " -"Laisser ce champ vide permettra l’intégration à partir de n’importe quel " -"domaine." +"Une liste de noms de domaine qui peuvent intégrer ce tableau de bord. Laisser ce " +"champ vide permettra l’intégration à partir de n’importe quel domaine." -#, fuzzy msgid "A list of tags that have been applied to this chart." -msgstr "Une liste de balises qui ont été appliquées à ce graphique." +msgstr "Une liste de tags qui ont été appliquées à ce graphique." msgid "A list of users who can alter the chart. Searchable by name or username." msgstr "" -"Une liste d'utilisateurs qui peuvent modifier le graphique. Il est " -"possible de chercher par nom de graphique ou d'utilisateur." +"Une liste d'utilisateurs qui peuvent modifier le graphique. Il est possible de " +"chercher par nom de graphique ou d'utilisateur." msgid "A map of the world, that can indicate values in different countries." msgstr "Une carte du monde qui peut indiquer des valeurs dans différents pays." msgid "" -"A map that takes rendering circles with a variable radius at " -"latitude/longitude coordinates" +"A map that takes rendering circles with a variable radius at latitude/longitude " +"coordinates" msgstr "" -"Une carte qui représente des cercles d'un rayon variable à des " -"coordonnées de latitude/longitude." +"Une carte qui représente des cercles d'un rayon variable à des coordonnées de " +"latitude/longitude" msgid "A metric to use for color" msgstr "Une mesure à utiliser pour la couleur" -#, fuzzy msgid "A new chart and dashboard will be created." -msgstr "Le tableau de bord n'a pas pu être créé." +msgstr "Un nouveau graphique et tableau de bord vont être créés." -#, fuzzy msgid "A new chart will be created." -msgstr "Le graphique n'a pas pu être créé." +msgstr "Un nouveau graphique va être créé." -#, fuzzy msgid "A new dashboard will be created." -msgstr "Le tableau de bord n'a pas pu être créé." +msgstr "Un nouveau tableau de bord va être créé." msgid "" -"A polar coordinate chart where the circle is broken into wedges of equal " -"angle, and the value represented by any wedge is illustrated by its area," -" rather than its radius or sweep angle." +"A polar coordinate chart where the circle is broken into wedges of equal angle, " +"and the value represented by any wedge is illustrated by its area, rather than its " +"radius or sweep angle." msgstr "" -"Un tableau de coordonnées polaires où le cercle est divisé en coins " -"d’angle égal et où la valeur représentée par n’importe quel coin est " -"illustrée par sa zone, plutôt que par son rayon ou son angle de balayage." +"Un tableau de coordonnées polaires où le cercle est divisé en coins d’angle égal " +"et où la valeur représentée par n’importe quel coin est illustrée par sa zone, " +"plutôt que par son rayon ou son angle de balayage." msgid "A readable URL for your dashboard" msgstr "Une URL lisible pour votre tableau de bord" @@ -733,27 +715,27 @@ msgstr "Une URL lisible pour votre tableau de bord" msgid "A reference to the [Time] configuration, taking granularity into account" msgstr "Une référence à la configuration [Time] prends la granularité en compte" -#, fuzzy, python-format +#, python-format msgid "A report named \"%(name)s\" already exists" -msgstr "Un rapport nommé « %(name)s » existe déjà" +msgstr "Un rapport nommé \"%(name)s\" existe déjà" msgid "A reusable dataset will be saved with your chart." msgstr "Un ensemble de données réutilisable sera enregistré avec votre graphique." msgid "" -"A set of parameters that become available in the query using Jinja " -"templating syntax" +"A set of parameters that become available in the query using Jinja templating " +"syntax" msgstr "" -"Un ensemble de paramètre qui seront disponible dans la requête utilisant " -"la syntaxe du modèle Jinja" +"Un ensemble de paramètre qui seront disponible dans la requête utilisant la " +"syntaxe du modèle Jinja" msgid "" -"A time series chart that visualizes how a related metric from multiple " -"groups vary over time. Each group is visualized using a different color." +"A time series chart that visualizes how a related metric from multiple groups vary " +"over time. Each group is visualized using a different color." msgstr "" -"Un graphique de séries temporelles qui visualise comment une mesure " -"connexe de plusieurs groupes varie au fil du temps. Chaque groupe est " -"visualisé en utilisant une couleur différente." +"Un graphique de séries temporelles qui visualise comment une mesure connexe de " +"plusieurs groupes varie au fil du temps. Chaque groupe est visualisé en utilisant " +"une couleur différente." msgid "A timeout occurred while executing the query." msgstr "Un dépassement de délai s'est produit lors de l'exécution de la requête." @@ -771,13 +753,16 @@ msgid "A valid color scheme is required" msgstr "Un jeu de couleur valide doit être fourni" msgid "" -"A waterfall chart is a form of data visualization that helps in " -"understanding\n" -" the cumulative effect of sequentially introduced positive or " -"negative values.\n" -" These intermediate values can either be time based or category " -"based." +"A waterfall chart is a form of data visualization that helps in understanding\n" +" the cumulative effect of sequentially introduced positive or negative " +"values.\n" +" These intermediate values can either be time based or category based." msgstr "" +"Un graphique en cascade est une forme de visualisation de donnée qui aide à " +"comprendre\n" +" l'effet cumulé de valeur positive ou négative introduite " +"séquentiellement.\n" +" Ces valeurs intermédiaires peuvent être temporelles ou catégoriques." msgid "APPLY" msgstr "APPLIQUER" @@ -794,7 +779,6 @@ msgstr "AUG" msgid "AXIS TITLE MARGIN" msgstr "MARGE DU TITRE DE L'AXE" -#, fuzzy msgid "AXIS TITLE POSITION" msgstr "POSITION DU TITRE DE L'AXE" @@ -814,7 +798,7 @@ msgid "Action Log" msgstr "Journaux d'actions" msgid "Actions" -msgstr "Actions " +msgstr "Actions" msgid "Active" msgstr "Actif" @@ -849,13 +833,11 @@ msgstr "Ajouter" msgid "Add Alert" msgstr "Ajouter une alerte" -#, fuzzy msgid "Add BCC Recipients" -msgstr "récents" +msgstr "Ajouter un destinataire de la copie cachée (Cci)" -#, fuzzy msgid "Add CC Recipients" -msgstr "récents" +msgstr "Ajouter un destinataire de la copie (Cc)" msgid "Add CSS template" msgstr "Ajouter un modèle CSS" @@ -887,7 +869,7 @@ msgid "Add Rule" msgstr "Ajouter une règle" msgid "Add Tag" -msgstr "" +msgstr "Ajouter un tag" msgid "Add a Plugin" msgstr "Ajouter un plugiciel" @@ -928,16 +910,16 @@ msgstr "Ajouter une méthode de notification" msgid "Add calculated columns to dataset in \"Edit datasource\" modal" msgstr "" -"Ajouter des colonnes calculées au ensemble de données dans le modal « " -"Modifier la source de données »" +"Ajouter des colonnes calculées au ensemble de données dans le modal « Modifier la " +"source de données »" msgid "Add calculated temporal columns to dataset in \"Edit datasource\" modal" msgstr "" -"Ajouter des colonnes temporelles calculées au ensemble de données dans le" -" modal « Modifier la source de données »" +"Ajouter des colonnes temporelles calculées au ensemble de données dans le modal " +"« Modifier la source de données »" msgid "Add color for positive/negative change" -msgstr "" +msgstr "Ajouter une couleur pour les changements positifs/négatifs" msgid "Add cross-filter" msgstr "Ajouter un filtre croisé" @@ -947,13 +929,14 @@ msgstr "Ajouter une portée personnalisée" msgid "Add dataset columns here to group the pivot table columns." msgstr "" +"Ajouter des colonnes du jeu de données pour agglomérer les colonnes de la table " +"pivot." msgid "Add delivery method" msgstr "Ajouter méthode de livraison" -#, fuzzy msgid "Add description of your tag" -msgstr "Ecrire une description à votre requête" +msgstr "Ecrire une description à votre tag" #, fuzzy msgid "Add extra connection information." @@ -964,22 +947,24 @@ msgstr "Ajouter un filtre" msgid "" "Add filter clauses to control the filter's source query,\n" -" though only in the context of the autocomplete i.e., " -"these conditions\n" -" do not impact how the filter is applied to the " -"dashboard. This is useful\n" -" when you want to improve the query's performance by " -"only scanning a subset\n" -" of the underlying data or limit the available values " -"displayed in the filter." +" though only in the context of the autocomplete i.e., these " +"conditions\n" +" do not impact how the filter is applied to the dashboard. This " +"is useful\n" +" when you want to improve the query's performance by only " +"scanning a subset\n" +" of the underlying data or limit the available values displayed " +"in the filter." msgstr "" -"AjouteR des clauses de filtre pour contrôler la requête source du filtre," -" mais uniquement dans le contexte de la saisie semi-automatique, " -"c'est-à-dire que ces conditions n'ont pas d'impact sur la manière dont le" -" filtre est appliqué au tableau de bord. Cela est utile lorsque vous " -"souhaitez améliorer les performances de la requête en n'analysant qu'un " -"sous-ensemble des données sous-jacentes ou en limitant les valeurs " -"disponibles affichées dans le filtre." +"Ajouter des clauses de filtre pour contrôler la requête source du filtre,\n" +" mais uniquement dans le contexte de la saisie semi-" +"automatique, c'est-à-dire que ces conditions\n" +" n'ont pas d'impact sur la manière dont le filtre est appliqué " +"au tableau de bord. Cela est utile\n" +" lorsque vous souhaitez améliorer les performances de la " +"requête en n'analysant qu'un sous-ensemble\n" +" des données sous-jacentes ou limiter les valeurs disponibles " +"affichées dans le filtre." msgid "Add filters and dividers" msgstr "Ajouter un filtre ou des diviseurs" @@ -992,8 +977,8 @@ msgstr "Ajouter une mesure" msgid "Add metrics to dataset in \"Edit datasource\" modal" msgstr "" -"Ajouter des mesures au ensemble de données dans le modal « Modifier la " -"source de données »" +"Ajouter des mesures au ensemble de données dans le modal « Modifier la source de " +"données »" msgid "Add new color formatter" msgstr "Ajouter un nouveau formateur de couleur" @@ -1011,15 +996,13 @@ msgid "Add sheet" msgstr "Ajouter une feuille" msgid "Add tag to entities" -msgstr "" +msgstr "Ajouter un tag à des entités" -#, fuzzy msgid "Add the name of the chart" msgstr "Ajouter le nom du graphique" -#, fuzzy msgid "Add the name of the dashboard" -msgstr "Modifier le tableau de bord" +msgstr "Ajouter le nom du tableau de bord" msgid "Add to dashboard" msgstr "Ajouter au tableau de bord" @@ -1030,13 +1013,12 @@ msgstr "Ajouter/modifier les filtres" msgid "Added" msgstr "Ajouté" -#, fuzzy, python-format +#, python-format msgid "Added to 1 dashboard" msgid_plural "Added to %s dashboards" msgstr[0] "Ajouté à 1 tableau de bord" -msgstr[1] "" +msgstr[1] "Ajoutés à %s tableaux de bords" -#, fuzzy msgid "Additional Parameters" msgstr "Paramètres supplémentaires" @@ -1046,18 +1028,15 @@ msgstr "Des champs supplémentaires peuvent être requis" msgid "Additional information" msgstr "Informations supplémentaires" -#, fuzzy msgid "Additional metadata" msgstr "Métadonnées supplémentaires" -#, fuzzy msgid "Additional padding for legend." -msgstr "Remplissage supplémentaire pour la légende." +msgstr "Marge supplémentaire pour la légende." msgid "Additional parameters" msgstr "Paramètres supplémentaires" -#, fuzzy msgid "Additional settings." msgstr "Informations supplémentaires." @@ -1069,19 +1048,21 @@ msgid "Additive" msgstr "Additif" msgid "" -"Adds color to the chart symbols based on the positive or negative change " -"from the comparison value." +"Adds color to the chart symbols based on the positive or negative change from the " +"comparison value." msgstr "" msgid "" -"Adjust column settings such as specifying the columns to read, how " -"duplicates are handled, column data types, and more." +"Adjust column settings such as specifying the columns to read, how duplicates are " +"handled, column data types, and more." msgstr "" msgid "" -"Adjust how spaces, blank lines, null values are handled and other file " -"wide settings." +"Adjust how spaces, blank lines, null values are handled and other file wide " +"settings." msgstr "" +"Ajuster comment les espaces, lignes blanches, valeurs nulles sont gérés et autre " +"paramètres de large fichier." msgid "Adjust how this database will interact with SQL Lab." msgstr "Ajuster la façon dont cette base de données interagira avec SQL Lab." @@ -1092,82 +1073,68 @@ msgstr "Ajuster les paramètres de performance de cette base de données." msgid "Advanced" msgstr "Avancé" -#, fuzzy msgid "Advanced Analytics" msgstr "Analyses avancées" -#, fuzzy msgid "Advanced Data type" msgstr "Type de données avancées" msgid "Advanced analytics" msgstr "Analyses avancées" -#, fuzzy msgid "Advanced analytics Query A" msgstr "Analyses avancées Requête A" -#, fuzzy msgid "Advanced analytics Query B" msgstr "Analyses avancées Requête B" -#, fuzzy msgid "Advanced analytics post processing" msgstr "Analyses avancées" -#, fuzzy msgid "Advanced data type" msgstr "Type de données avancées" msgid "Advanced-Analytics" msgstr "Analyses avancées" -#, fuzzy msgid "After" msgstr "Après" -#, fuzzy msgid "Aggregate" -msgstr "Agrégat" +msgstr "Agrégger" -#, fuzzy msgid "Aggregate Mean" msgstr "Moyenne agrégée" -#, fuzzy msgid "Aggregate Sum" msgstr "Somme agrégée" msgid "" -"Aggregate function applied to the list of points in each cluster to " -"produce the cluster label." +"Aggregate function applied to the list of points in each cluster to produce the " +"cluster label." msgstr "" -"Fonction d'agrégation appliquée à la liste des points de chaque " -"regroupement pour produire l'étiquette de regroupement." +"Fonction d'agrégation appliquée à la liste des points de chaque regroupement pour " +"produire l'étiquette de regroupement." msgid "" -"Aggregate function to apply when pivoting and computing the total rows " -"and columns" +"Aggregate function to apply when pivoting and computing the total rows and columns" msgstr "" -"Fonction d’agrégation à appliquer lors du pivotement et du calcul du " -"total des lignes et des colonnes" +"Fonction d’agrégation à appliquer lors du pivotement et du calcul du total des " +"lignes et des colonnes" msgid "" -"Aggregates data within the boundary of grid cells and maps the aggregated" -" values to a dynamic color scale" +"Aggregates data within the boundary of grid cells and maps the aggregated values " +"to a dynamic color scale" msgstr "" -"Agrége les données dans les limites des cellules de la grille et fait " -"correspondre les valeurs agrégées à une échelle de couleurs dynamique." +"Agrége les données dans les limites des cellules de la grille et fait correspondre " +"les valeurs agrégées à une échelle de couleurs dynamique" -#, fuzzy msgid "Aggregation" -msgstr "agrégat" +msgstr "Aggregation" -#, fuzzy msgid "Aggregation function" -msgstr "Fonctions d’agrégat" +msgstr "Fonctions d’agrégation" -#, fuzzy msgid "Alert" msgstr "Alerte" @@ -1177,9 +1144,8 @@ msgstr "Alerte déclenchée, -période de grâce" msgid "Alert condition" msgstr "Condition d'alerte" -#, fuzzy msgid "Alert contents" -msgstr "Contenu de cellule" +msgstr "Contenu de l'alerte" msgid "Alert ended grace period." msgstr "L'alerte a mis fin à la période de grâce." @@ -1193,9 +1159,8 @@ msgstr "Alerte déclenchée pendant la période de grâce." msgid "Alert found an error while executing a query." msgstr "L'alerte a détecté une erreur lors de l'exécution d'une requête." -#, fuzzy msgid "Alert is active" -msgstr "Rapports par courriel actifs" +msgstr "Alerte actives" msgid "Alert name" msgstr "Nom de l'alerte" @@ -1209,16 +1174,16 @@ msgstr "La requête d’alerte a retourné une valeur non numérique." msgid "Alert query returned more than one column." msgstr "La requête d’alerte a retourné plus d'une colonne." -#, fuzzy, python-format +#, python-format msgid "Alert query returned more than one column. %(num_cols)s columns returned" -msgstr "La requête a retourné plus d'une colonne. %s colonnes retournées" +msgstr "La requête a retourné plus d'une colonne. %(num_cols)s colonnes retournées" msgid "Alert query returned more than one row." msgstr "La requête d’alerte a retourné plus d'une rangée." -#, fuzzy, python-format +#, python-format msgid "Alert query returned more than one row. %(num_rows)s rows returned" -msgstr "La requête a retourné plus d'une ligne. %s lignes retournées" +msgstr "La requête a retourné plus d'une ligne. %(num_rows)s lignes retournées" msgid "Alert running" msgstr "Alerte en cours" @@ -1233,7 +1198,7 @@ msgid "Alerts" msgstr "Alertes" msgid "Alerts & Reports" -msgstr "Alertes et rapports" +msgstr "Alertes et Rapports" msgid "Alerts & reports" msgstr "Alertes et rapports" @@ -1256,7 +1221,6 @@ msgstr "Tous les graphiques/champ d'application mondial" msgid "All filters" msgstr "Tous les filtres" -#, fuzzy msgid "All panels" msgstr "Tous les panneaux" @@ -1285,8 +1249,8 @@ msgid "Allow changing catalogs" msgstr "" msgid "" -"Allow column names to be changed to case insensitive format, if supported" -" (e.g. Oracle, Snowflake)." +"Allow column names to be changed to case insensitive format, if supported (e.g. " +"Oracle, Snowflake)." msgstr "" msgid "Allow columns to be rearranged" @@ -1302,27 +1266,25 @@ msgid "Allow data manipulation language" msgstr "Autoriser le langage de manipulation des données" msgid "" -"Allow end user to drag-and-drop column headers to rearrange them. Note " -"their changes won't persist for the next time they open the chart." +"Allow end user to drag-and-drop column headers to rearrange them. Note their " +"changes won't persist for the next time they open the chart." msgstr "" -"Permettre à l’utilisateur·rice final·e de glisser-déposer les en-têtes de" -" colonne pour les réorganiser. Notez que leurs changements ne " -"persisteront pas la prochaine fois qu’ils ouvriront le tableau." +"Permettre à l’utilisateur·rice final·e de glisser-déposer les en-têtes de colonne " +"pour les réorganiser. Notez que leurs changements ne persisteront pas la prochaine " +"fois qu’ils ouvriront le tableau." -#, fuzzy msgid "Allow file uploads to database" -msgstr "Sélectionner un fichier Excel à charger dans une base de données." +msgstr "Autoriser des téléchargements de fichier vers la base de donnée" msgid "" -"Allow manipulation of the database using non-SELECT statements such as " -"UPDATE, DELETE, CREATE, etc." +"Allow manipulation of the database using non-SELECT statements such as UPDATE, " +"DELETE, CREATE, etc." msgstr "" -"Permettre la manipulation de la base de données en utilisant des " -"instructionsnon SELECT comme UPDATE, DELETE, CREATE, etc." +"Permettre la manipulation de la base de données en utilisant des instructionsnon " +"SELECT comme UPDATE, DELETE, CREATE, etc." -#, fuzzy msgid "Allow node selections" -msgstr "Autoriséer les sélections multiples" +msgstr "Autoriser les sélections multiples" msgid "Allow sending multiple polygons as a filter event" msgstr "Autoriser l’envoi de plusieurs polygones comme événement de filtre" @@ -1334,11 +1296,10 @@ msgid "Allow this database to be queried in SQL Lab" msgstr "Autoriser cette base de données à être requêtées dans SQL Lab" msgid "" -"Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in" -" SQL Lab" +"Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in SQL Lab" msgstr "" -"Autoriser les utilisateurs à lancer des expression non-SELECT (UPDATE, " -"DELETE, CREATE, etc.) dans SQL Lab" +"Autoriser les utilisateurs à lancer des expression non-SELECT (UPDATE, DELETE, " +"CREATE, etc.) dans SQL Lab" msgid "Allowed Domains (comma separated)" msgstr "Domaines autorisés (séparés par des virgules)" @@ -1348,45 +1309,40 @@ msgstr "Alphabétique" msgid "" "Also known as a box and whisker plot, this visualization compares the " -"distributions of a related metric across multiple groups. The box in the " -"middle emphasizes the mean, median, and inner 2 quartiles. The whiskers " -"around each box visualize the min, max, range, and outer 2 quartiles." +"distributions of a related metric across multiple groups. The box in the middle " +"emphasizes the mean, median, and inner 2 quartiles. The whiskers around each box " +"visualize the min, max, range, and outer 2 quartiles." msgstr "" "Également connue sous le nom de diagramme en boîte à moustaches, cette " -"visualisation compare les distributions d'une mesure connexe au sein de " -"plusieurs groupes. La boîte du milieu met l'accent sur la moyenne, la " -"médiane et les deux quartiles intérieurs. Les moustaches autour de chaque" -" boîte visualisent le minimum, le maximum, l'étendue et les deux " -"quartiles extérieurs." +"visualisation compare les distributions d'une mesure connexe au sein de plusieurs " +"groupes. La boîte du milieu met l'accent sur la moyenne, la médiane et les deux " +"quartiles intérieurs. Les moustaches autour de chaque boîte visualisent le " +"minimum, le maximum, l'étendue et les deux quartiles extérieurs." msgid "Altered" msgstr "Modifié" -#, fuzzy msgid "Always filter main datetime column" -msgstr "Colonne Datetime principale" +msgstr "Toujours filtrer sur la colonne temporelle principale" -#, fuzzy msgid "An Error Occurred" -msgstr "Un erreur s'est produite" +msgstr "Une erreur s'est produite" -#, fuzzy, python-format +#, python-format msgid "An alert named \"%(name)s\" already exists" -msgstr "Le ensemble de données « %(name)s » existe déjà" +msgstr "Une alerte nommée « %(name)s » existe déjà" msgid "" -"An enclosed time range (both start and end) must be specified when using " -"a Time Comparison." +"An enclosed time range (both start and end) must be specified when using a Time " +"Comparison." msgstr "" -"Une période délimitée (à la fois début et fin) doit être spécifiée quand " -"on utilise une comparaison de temps." +"Une période délimitée (à la fois début et fin) doit être spécifiée quand on " +"utilise une comparaison temporelle." -msgid "" -"An engine must be specified when passing individual parameters to a " -"database." +msgid "An engine must be specified when passing individual parameters to a database." msgstr "" -"Un moteur doit être fournit lorsque l'on passe des paramètres individuels" -" à la base de données." +"Un moteur doit être fournit lorsque l'on passe des paramètres individuels à la " +"base de données." msgid "An error has occurred" msgstr "Une erreur est survenue" @@ -1409,14 +1365,12 @@ msgid "" "An error occurred while collapsing the table schema. Please contact your " "administrator." msgstr "" -"Une erreur s'est produite en repliant le schéma du tableau. Veuillez " -"contacter votre administrateur." +"Une erreur s'est produite en repliant le schéma du tableau. Veuillez contacter " +"votre administrateur." #, fuzzy, python-format msgid "An error occurred while creating %ss: %s" -msgstr "" -"Une erreur s'est produite durant la récupération des jeux de données %ss:" -" %s" +msgstr "Une erreur s'est produite durant la récupération des jeux de données %ss: %s" msgid "An error occurred while creating the data source" msgstr "Une erreur s'est produite durant la création de la source de donnée" @@ -1433,8 +1387,8 @@ msgid "" "An error occurred while expanding the table schema. Please contact your " "administrator." msgstr "" -"Une erreur s'est produite en développant le schéma du tableau. Veuillez " -"contacter votre administrateur." +"Une erreur s'est produite en développant le schéma du tableau. Veuillez contacter " +"votre administrateur." #, fuzzy, python-format msgid "An error occurred while fetching %s info: %s" @@ -1446,20 +1400,19 @@ msgstr "Une erreur s'est produite durant la récupération des informations %ss msgid "An error occurred while fetching available CSS templates" msgstr "" -"Une erreur s'est produite lors de l'extraction des modèles de CSS " -"disponibles" +"Une erreur s'est produite lors de l'extraction des modèles de CSS disponibles" #, python-format msgid "An error occurred while fetching chart owners values: %s" msgstr "" -"Une erreur s'est produite lors de l'extraction des valeurs des " -"propriétaires de graphiques : %s" +"Une erreur s'est produite lors de l'extraction des valeurs des propriétaires de " +"graphiques : %s" #, python-format msgid "An error occurred while fetching dashboard owner values: %s" msgstr "" -"Une erreur s'est produite lors de l'extraction des valeurs du " -"propriétaire du tableau de bord : %s" +"Une erreur s'est produite lors de l'extraction des valeurs du propriétaire du " +"tableau de bord : %s" #, fuzzy msgid "An error occurred while fetching dashboards" @@ -1472,8 +1425,7 @@ msgstr "Une erreur s'est produite durant la récupération des informations : % #, python-format msgid "An error occurred while fetching database related data: %s" msgstr "" -"Une erreur s'est produite lors de la récupération des données de la base " -": %s" +"Une erreur s'est produite lors de la récupération des données de la base : %s" #, python-format msgid "An error occurred while fetching database values: %s" @@ -1484,31 +1436,30 @@ msgstr "" #, python-format msgid "An error occurred while fetching dataset datasource values: %s" msgstr "" -"Une erreur s'est produite lors de la récupération de l’ensemble de " -"données relatives à la source de données : %s" +"Une erreur s'est produite lors de la récupération de l’ensemble de données " +"relatives à la source de données : %s" #, python-format msgid "An error occurred while fetching dataset owner values: %s" msgstr "" -"Une erreur s'est produite lors de la récupération des valeurs de " -"l’ensemble de données : %s" +"Une erreur s'est produite lors de la récupération des valeurs de l’ensemble de " +"données : %s" msgid "An error occurred while fetching dataset related data" msgstr "" -"Une erreur s'est produite lors de l'extraction des données relatives à " -"l'ensemble de données" +"Une erreur s'est produite lors de l'extraction des données relatives à l'ensemble " +"de données" #, python-format msgid "An error occurred while fetching dataset related data: %s" msgstr "" -"Une erreur s'est produite lors de la récupération des données relatives " -"au ensemble de données : %s" +"Une erreur s'est produite lors de la récupération des données relatives au " +"ensemble de données : %s" #, python-format msgid "An error occurred while fetching datasets: %s" msgstr "" -"Une erreur s'est produite lors de l'extraction des ensembles de données. " -": %s" +"Une erreur s'est produite lors de l'extraction des ensembles de données. : %s" msgid "An error occurred while fetching function names." msgstr "Une erreur s'est produite lors de la recherche des noms de fonctions." @@ -1516,8 +1467,7 @@ msgstr "Une erreur s'est produite lors de la recherche des noms de fonctions." #, fuzzy, python-format msgid "An error occurred while fetching owners values: %s" msgstr "" -"Une erreur s'est produite lors de la recherche des valeurs des " -"propriétaires : %s" +"Une erreur s'est produite lors de la recherche des valeurs des propriétaires : %s" #, python-format msgid "An error occurred while fetching schema values: %s" @@ -1530,17 +1480,16 @@ msgid "An error occurred while fetching table metadata" msgstr "Une erreur s'est produite lors de l'extraction des métadonnées du tableau" msgid "" -"An error occurred while fetching table metadata. Please contact your " -"administrator." +"An error occurred while fetching table metadata. Please contact your administrator." msgstr "" -"Une erreur s'est produite lors de l'extraction des métadonnées du " -"tableau. Veuillez contacter votre administrateur." +"Une erreur s'est produite lors de l'extraction des métadonnées du tableau. " +"Veuillez contacter votre administrateur." #, python-format msgid "An error occurred while fetching user values: %s" msgstr "" -"Une erreur s'est produite lors de l'extraction des valeurs de " -"l’utilisateur·rice : %s" +"Une erreur s'est produite lors de l'extraction des valeurs de l’utilisateur·rice : " +"%s" #, fuzzy, python-format msgid "An error occurred while importing %s: %s" @@ -1549,8 +1498,8 @@ msgstr "Une erreur s'est produite lors de l'importation de %s : %s" #, fuzzy msgid "An error occurred while loading dashboard information." msgstr "" -"Une erreur s'est produite lors du chargement des informations relatives " -"au tableau de bord." +"Une erreur s'est produite lors du chargement des informations relatives au tableau " +"de bord." msgid "An error occurred while loading the SQL" msgstr "Une erreur s'est produite durant le chargement de SQL" @@ -1568,15 +1517,15 @@ msgstr "Une erreur s'est produite lors de la suppression des journaux " msgid "An error occurred while removing query. Please contact your administrator." msgstr "" -"Une erreur s'est produite lors de la suppression de la requête. Veuillez " -"contacter votre administrateur." +"Une erreur s'est produite lors de la suppression de la requête. Veuillez contacter " +"votre administrateur." msgid "" "An error occurred while removing the table schema. Please contact your " "administrator." msgstr "" -"Une erreur s'est produite lors de la suppression du tableau. Veuillez " -"contacter votre administrateur." +"Une erreur s'est produite lors de la suppression du tableau. Veuillez contacter " +"votre administrateur." #, fuzzy, python-format msgid "An error occurred while rendering the visualization: %s" @@ -1587,14 +1536,12 @@ msgid "An error occurred while starring this chart" msgstr "Une erreur s'est produite lors de la mise en ligne de ce graphique" msgid "" -"An error occurred while storing your query in the backend. To avoid " -"losing your changes, please save your query using the \"Save Query\" " -"button." +"An error occurred while storing your query in the backend. To avoid losing your " +"changes, please save your query using the \"Save Query\" button." msgstr "" -"Une erreur s'est produite lors de l'enregistrement de votre requête dans " -"le programme dorsal. Pour éviter de perdre vos modifications, veuillez " -"enregistrer votre requête en utilisant le bouton « Enregistrer la requête" -" »." +"Une erreur s'est produite lors de l'enregistrement de votre requête dans le " +"programme dorsal. Pour éviter de perdre vos modifications, veuillez enregistrer " +"votre requête en utilisant le bouton « Enregistrer la requête »." #, fuzzy msgid "An error occurred while updating the value." @@ -1641,7 +1588,7 @@ msgid "Annotation could not be updated." msgstr "L'annotation n'a pas pu être mise à jour." msgid "Annotation layer" -msgstr "Couche d'annotations " +msgstr "Couche d'annotations" msgid "Annotation layer could not be created." msgstr "La couche d'annotations n'a pas pu être créée." @@ -1736,21 +1683,21 @@ msgid "" "Any color palette selected here will override the colors applied to this " "dashboard's individual charts" msgstr "" -"Une palette de couleur sélectionnée ici écrasera les couleurs appliquées " -"aux graphiques de ce tableau de bord" +"Une palette de couleur sélectionnée ici écrasera les couleurs appliquées aux " +"graphiques de ce tableau de bord" msgid "Any databases that allow connections via SQL Alchemy URIs can be added. " msgstr "" -"Toutes les bases de données qui permettent des connexions par le biais " -"des URI SQL Alchemy peuvent être ajoutées. " +"Toutes les bases de données qui permettent des connexions par le biais des URI SQL " +"Alchemy peuvent être ajoutées. " msgid "" -"Any databases that allow connections via SQL Alchemy URIs can be added. " -"Learn about how to connect a database driver " +"Any databases that allow connections via SQL Alchemy URIs can be added. Learn " +"about how to connect a database driver " msgstr "" -"Toutes les bases de données qui permettent des connexions par le biais " -"des URI SQL Alchemy peuvent être ajoutées. Découvrez comment connecter un" -" pilote de base de données " +"Toutes les bases de données qui permettent des connexions par le biais des URI SQL " +"Alchemy peuvent être ajoutées. Découvrez comment connecter un pilote de base de " +"données " #, fuzzy, python-format msgid "Applied cross-filters (%d)" @@ -1769,12 +1716,12 @@ msgid "Applied filters: %s" msgstr "Filtres appliqués : (%s)" msgid "" -"Applied rolling window did not return any data. Please make sure the " -"source query satisfies the minimum periods defined in the rolling window." +"Applied rolling window did not return any data. Please make sure the source query " +"satisfies the minimum periods defined in the rolling window." msgstr "" -"La fenêtre roulante appliquée n'a renvoyé aucune donnée. Veuillez vous " -"assurer que la requête source respecte les périodes minimales définies " -"dans la fenêtre glissante." +"La fenêtre roulante appliquée n'a renvoyé aucune donnée. Veuillez vous assurer que " +"la requête source respecte les périodes minimales définies dans la fenêtre " +"glissante." msgid "Apply" msgstr "Appliquer" @@ -1882,13 +1829,12 @@ msgid "Area chart opacity" msgstr "Opacité du graphique en aires" msgid "" -"Area charts are similar to line charts in that they represent variables " -"with the same scale, but area charts stack the metrics on top of each " -"other." +"Area charts are similar to line charts in that they represent variables with the " +"same scale, but area charts stack the metrics on top of each other." msgstr "" -"Les graphiques en aires sont semblables aux diagrammes linéaires, car ils" -" représentent des variables avec la même échelle, mais les graphiques en " -"aires empilent les mesures les unes sur les autres." +"Les graphiques en aires sont semblables aux diagrammes linéaires, car ils " +"représentent des variables avec la même échelle, mais les graphiques en aires " +"empilent les mesures les unes sur les autres." #, fuzzy msgid "Arrow" @@ -2011,8 +1957,8 @@ msgstr "Graphique en barres (hérité)" msgid "Bar Charts are used to show metrics as a series of bars." msgstr "" -"Les graphiques à barres sont utilisés pour afficher les mesures sous " -"forme de série de barres." +"Les graphiques à barres sont utilisés pour afficher les mesures sous forme de " +"série de barres." #, fuzzy msgid "Bar Values" @@ -2086,9 +2032,7 @@ msgid "Bottom left" msgstr "En bas à gauche" msgid "Bottom margin, in pixels, allowing for more room for axis labels" -msgstr "" -"Marge inférieure, en pixels, offrant plus d’espace pour les étiquettes " -"d’axe" +msgstr "Marge inférieure, en pixels, offrant plus d’espace pour les étiquettes d’axe" #, fuzzy msgid "Bottom right" @@ -2098,56 +2042,55 @@ msgid "Bottom to Top" msgstr "De bas en haut" msgid "" -"Bounds for numerical X axis. Not applicable for temporal or categorical " -"axes. When left empty, the bounds are dynamically defined based on the " -"min/max of the data. Note that this feature will only expand the axis " -"range. It won't narrow the data's extent." -msgstr "" - -msgid "" -"Bounds for the Y-axis. When left empty, the bounds are dynamically " -"defined based on the min/max of the data. Note that this feature will " -"only expand the axis range. It won't narrow the data's extent." -msgstr "" -"Limites de l'axe des ordonnées. Lorsqu'elles sont laissées vides, les " -"limites sont définies dynamiquement sur la base des valeurs min/max des " -"données. Notez que cette fonction ne fait qu'étendre la plage de l'axe. " -"Elle ne réduira pas l'étendue des données." - -msgid "" -"Bounds for the axis. When left empty, the bounds are dynamically defined " -"based on the min/max of the data. Note that this feature will only expand" -" the axis range. It won't narrow the data's extent." -msgstr "" -"Limites de l'axe. Lorsqu'elles sont laissées vides, les limites sont " -"définies dynamiquement sur la base des valeurs min/max des données. Notez" -" que cette fonction ne fait qu'étendre la plage de l'axe. Elle ne réduira" -" pas l'étendue des données." - -msgid "" -"Bounds for the primary Y-axis. When left empty, the bounds are " -"dynamically defined based on the min/max of the data. Note that this " -"feature will only expand the axis range. It won't narrow the data's " +"Bounds for numerical X axis. Not applicable for temporal or categorical axes. When " +"left empty, the bounds are dynamically defined based on the min/max of the data. " +"Note that this feature will only expand the axis range. It won't narrow the data's " "extent." msgstr "" -"Limites de l'axe des ordonnées principal. Lorsqu'elles sont laissées " -"vides, les limites sont définies dynamiquement sur la base des valeurs " -"min/max des données. Notez que cette fonction ne fait qu'étendre la plage" -" de l'axe. Elle ne réduira pas l'étendue des données." + +msgid "" +"Bounds for the Y-axis. When left empty, the bounds are dynamically defined based " +"on the min/max of the data. Note that this feature will only expand the axis " +"range. It won't narrow the data's extent." +msgstr "" +"Limites de l'axe des ordonnées. Lorsqu'elles sont laissées vides, les limites sont " +"définies dynamiquement sur la base des valeurs min/max des données. Notez que " +"cette fonction ne fait qu'étendre la plage de l'axe. Elle ne réduira pas l'étendue " +"des données." + +msgid "" +"Bounds for the axis. When left empty, the bounds are dynamically defined based on " +"the min/max of the data. Note that this feature will only expand the axis range. " +"It won't narrow the data's extent." +msgstr "" +"Limites de l'axe. Lorsqu'elles sont laissées vides, les limites sont définies " +"dynamiquement sur la base des valeurs min/max des données. Notez que cette " +"fonction ne fait qu'étendre la plage de l'axe. Elle ne réduira pas l'étendue des " +"données." + +msgid "" +"Bounds for the primary Y-axis. When left empty, the bounds are dynamically defined " +"based on the min/max of the data. Note that this feature will only expand the axis " +"range. It won't narrow the data's extent." +msgstr "" +"Limites de l'axe des ordonnées principal. Lorsqu'elles sont laissées vides, les " +"limites sont définies dynamiquement sur la base des valeurs min/max des données. " +"Notez que cette fonction ne fait qu'étendre la plage de l'axe. Elle ne réduira pas " +"l'étendue des données." msgid "" "Bounds for the secondary Y-axis. Only works when Independent Y-axis\n" -" bounds are enabled. When left empty, the bounds are " -"dynamically defined\n" -" based on the min/max of the data. Note that this feature " -"will only expand\n" +" bounds are enabled. When left empty, the bounds are dynamically " +"defined\n" +" based on the min/max of the data. Note that this feature will only " +"expand\n" " the axis range. It won't narrow the data's extent." msgstr "" -"Limites de l'axe secondaire des ordonnées. Ne fonctionne que si les " -"limites de l'axe Y indépendant sont activées. Si cette option n'est pas " -"activée, les limites sont définies dynamiquement sur la base des valeurs " -"min/max des données. Notez que cette fonction ne fait qu'étendre la plage" -" de l'axe. Elle ne réduira pas l'étendue des données." +"Limites de l'axe secondaire des ordonnées. Ne fonctionne que si les limites de " +"l'axe Y indépendant sont activées. Si cette option n'est pas activée, les limites " +"sont définies dynamiquement sur la base des valeurs min/max des données. Notez que " +"cette fonction ne fait qu'étendre la plage de l'axe. Elle ne réduira pas l'étendue " +"des données." #, fuzzy msgid "Box Plot" @@ -2159,8 +2102,7 @@ msgstr "Ventilations" msgid "" "Breaks down the series by the category specified in this control.\n" -" This can help viewers understand how each category affects the " -"overall value." +" This can help viewers understand how each category affects the overall value." msgstr "" msgid "Bubble Chart" @@ -2212,16 +2154,15 @@ msgid "Business Data Type" msgstr "Type de données commerciales" msgid "" -"By default, each filter loads at most 1000 choices at the initial page " -"load. Check this box if you have more than 1000 filter values and want to" -" enable dynamically searching that loads filter values as users type (may" -" add stress to your database)." +"By default, each filter loads at most 1000 choices at the initial page load. Check " +"this box if you have more than 1000 filter values and want to enable dynamically " +"searching that loads filter values as users type (may add stress to your database)." msgstr "" -"Par défaut, chaque filtre charge au maximum 1000 choix lors du chargement" -" initial de la page. Cochez cette case si vous avez plus de 1000 valeurs " -"de filtre et que vous souhaitez activer la recherche dynamique qui charge" -" les valeurs de filtre au fur et à mesure que les utilisateur·rice·s les " -"saisissent (ce qui risque d'alourdir votre base de données)." +"Par défaut, chaque filtre charge au maximum 1000 choix lors du chargement initial " +"de la page. Cochez cette case si vous avez plus de 1000 valeurs de filtre et que " +"vous souhaitez activer la recherche dynamique qui charge les valeurs de filtre au " +"fur et à mesure que les utilisateur·rice·s les saisissent (ce qui risque " +"d'alourdir votre base de données)." msgid "By key: use column names as sorting key" msgstr "Par clé : utilisez les noms de colonne comme clé de tri" @@ -2292,26 +2233,25 @@ msgid "CTAS & CVAS SCHEMA" msgstr "SCHÉMA CTAS ET CVAS" msgid "" -"CTAS (create table as select) can only be run with a query where the last" -" statement is a SELECT. Please make sure your query has a SELECT as its " -"last statement. Then, try running your query again." +"CTAS (create table as select) can only be run with a query where the last " +"statement is a SELECT. Please make sure your query has a SELECT as its last " +"statement. Then, try running your query again." msgstr "" -"CTAS (create table as select) n'a pas d'instruction SELECT à la fin. " -"Assurez-vous que la requête a bien un SELECT en dernière instruction. " -"Puis essayez d'exécuter votre requête à nouveau." +"CTAS (create table as select) n'a pas d'instruction SELECT à la fin. Assurez-vous " +"que la requête a bien un SELECT en dernière instruction. Puis essayez d'exécuter " +"votre requête à nouveau." msgid "CTAS Schema" msgstr "Schéma CTAS" msgid "" -"CVAS (create view as select) can only be run with a query with a single " -"SELECT statement. Please make sure your query has only a SELECT " -"statement. Then, try running your query again." +"CVAS (create view as select) can only be run with a query with a single SELECT " +"statement. Please make sure your query has only a SELECT statement. Then, try " +"running your query again." msgstr "" -"CVAS (create view as select) ne peut être exécuté qu'avec une requête " -"comportant une seule instruction SELECT. Assurez-vous que votre requête " -"ne comporte qu'une seule instruction SELECT. Essayez ensuite d'exécuter à" -" nouveau votre requête." +"CVAS (create view as select) ne peut être exécuté qu'avec une requête comportant " +"une seule instruction SELECT. Assurez-vous que votre requête ne comporte qu'une " +"seule instruction SELECT. Essayez ensuite d'exécuter à nouveau votre requête." msgid "CVAS (create view as select) query has more than one statement." msgstr "La requête CVAS (create view as select) comporte plus d'une instruction." @@ -2363,9 +2303,7 @@ msgid "Calendar Heatmap" msgstr "Carte thermique du calendrier" msgid "Can not move top level tab into nested tabs" -msgstr "" -"Impossible de déplacer l'onglet de premier niveau dans les onglets " -"imbriqués" +msgstr "Impossible de déplacer l'onglet de premier niveau dans les onglets imbriqués" msgid "Can select multiple values" msgstr "Peut selectionner plusieurs valeurs" @@ -2384,8 +2322,8 @@ msgstr "Impossible d'accéder à la requête" msgid "Cannot delete a database that has datasets attached" msgstr "" -"Impossible de supprimer une base de données à laquelle sont attachés des " -"ensembles de données" +"Impossible de supprimer une base de données à laquelle sont attachés des ensembles " +"de données" msgid "Cannot have multiple credentials for the SSH Tunnel" msgstr "Impossible d'avoir plusieurs identifiants pour le tunnel SSH" @@ -2500,20 +2438,20 @@ msgid "Changing one or more of these dashboards is forbidden" msgstr "Modifier ce tableau de bord est interdit" msgid "" -"Changing the dataset may break the chart if the chart relies on columns " -"or metadata that does not exist in the target dataset" +"Changing the dataset may break the chart if the chart relies on columns or " +"metadata that does not exist in the target dataset" msgstr "" -"La modification de l'ensemble de données peut briser le graphique si " -"celui-ci repose sur des colonnes ou des métadonnées qui n'existent pas " -"dans l'ensemble de données cible." +"La modification de l'ensemble de données peut briser le graphique si celui-ci " +"repose sur des colonnes ou des métadonnées qui n'existent pas dans l'ensemble de " +"données cible" msgid "" -"Changing these settings will affect all charts using this dataset, " -"including charts owned by other people." +"Changing these settings will affect all charts using this dataset, including " +"charts owned by other people." msgstr "" -"La modification de ces paramètres affectera tous les graphiques qui " -"utilisent cet ensemble de données, y compris les graphiques qui " -"appartiennent à d'autres personnes." +"La modification de ces paramètres affectera tous les graphiques qui utilisent cet " +"ensemble de données, y compris les graphiques qui appartiennent à d'autres " +"personnes." msgid "Changing this Dashboard is forbidden" msgstr "Modifier ce tableau de bord est interdit" @@ -2618,8 +2556,8 @@ msgstr "Le graphique n'existe pas" msgid "Chart has no query context saved. Please save the chart again." msgstr "" -"Le graphique n'a pas de contexte de requête sauvegardé. Veuillez sauver " -"le graphique à nouveau." +"Le graphique n'a pas de contexte de requête sauvegardé. Veuillez sauver le " +"graphique à nouveau." #, fuzzy msgid "Chart height" @@ -2671,7 +2609,7 @@ msgid "Chart width" msgstr "Largeur du graphique" msgid "Charts" -msgstr "Graphiques :" +msgstr "Graphiques" msgid "Charts could not be deleted." msgstr "Les graphiques n'ont pas pu être supprimés." @@ -2680,25 +2618,23 @@ msgid "Check for sorting ascending" msgstr "Cocher pour trier par ordre croissant" msgid "" -"Check if the Rose Chart should use segment area instead of segment radius" -" for proportioning" +"Check if the Rose Chart should use segment area instead of segment radius for " +"proportioning" msgstr "" -"Vérifiez si le diagramme en rose doit utiliser la surface du segment au " -"lieu du rayon du segment pour le calcul des proportions." +"Vérifiez si le diagramme en rose doit utiliser la surface du segment au lieu du " +"rayon du segment pour le calcul des proportions" msgid "Check out this chart in dashboard:" msgstr "Vérifiez ce graphique dans le tableau de bord :" msgid "Check out this chart: " -msgstr "Vérifiez ce graphique :" +msgstr "Vérifiez ce graphique: " msgid "Check out this dashboard: " -msgstr "Vérifiez ce tableau de bord :" +msgstr "Vérifiez ce tableau de bord: " msgid "Check to force date partitions to have the same height" -msgstr "" -"Cochez cette case pour forcer les partitions de date à avoir la même " -"hauteur" +msgstr "Cochez cette case pour forcer les partitions de date à avoir la même hauteur" msgid "Child label position" msgstr "Position de l’étiquette enfant" @@ -2769,15 +2705,11 @@ msgid "Choose notification method and recipients." msgstr "Ajouter une méthode de notification" msgid "Choose one of the available databases from the panel on the left." -msgstr "" -"Choisissez l’une des bases de données disponibles dans le panneau de " -"gauche." +msgstr "Choisissez l’une des bases de données disponibles dans le panneau de gauche." #, fuzzy msgid "Choose one of the available databases on the left panel." -msgstr "" -"Choisissez l’une des bases de données disponibles dans le panneau de " -"gauche." +msgstr "Choisissez l’une des bases de données disponibles dans le panneau de gauche." #, fuzzy msgid "Choose sheet name" @@ -2799,21 +2731,19 @@ msgstr "Choisissez la source de vos annotations" #, fuzzy msgid "" -"Choose values that should be treated as null. Warning: Hive database " -"supports only a single value" +"Choose values that should be treated as null. Warning: Hive database supports only " +"a single value" msgstr "" -"Liste Json des valeurs qui doivent être traitées comme nulles. Exemples :" -" [« »] pour les chaînes vides, [« None », « N/A »], [« nan », « null »]. " -"Attention : La base de données Hive ne prend en charge qu'une seule " -"valeur" +"Liste Json des valeurs qui doivent être traitées comme nulles. Exemples : [« »] " +"pour les chaînes vides, [« None », « N/A »], [« nan », « null »]. Attention : La " +"base de données Hive ne prend en charge qu'une seule valeur" msgid "" -"Choose whether a country should be shaded by the metric, or assigned a " -"color based on a categorical color palette" +"Choose whether a country should be shaded by the metric, or assigned a color based " +"on a categorical color palette" msgstr "" -"Choisissez si un pays doit être ombré par la mesure ou si une couleur " -"doit lui être attribuée sur la base d'une palette de couleurs " -"catégorielles." +"Choisissez si un pays doit être ombré par la mesure ou si une couleur doit lui " +"être attribuée sur la base d'une palette de couleurs catégorielles" msgid "Chord Diagram" msgstr "Diagramme d'accord" @@ -2839,22 +2769,21 @@ msgstr "Circulaire" msgid "Classic chart that visualizes how metrics change over time." msgstr "" -"Graphique classique qui visualise comment les mesures changent au fil du " -"temps." +"Graphique classique qui visualise comment les mesures changent au fil du temps." msgid "" -"Classic row-by-column spreadsheet like view of a dataset. Use tables to " -"showcase a view into the underlying data or to show aggregated metrics." +"Classic row-by-column spreadsheet like view of a dataset. Use tables to showcase a " +"view into the underlying data or to show aggregated metrics." msgstr "" -"Vue classique d'un ensemble de données, rangée par colonne, à la manière " -"d'une feuille de calcul. Utilisez les tableaux pour présenter une vue des" -" données sous-jacentes ou pour montrer des mesures agrégées." +"Vue classique d'un ensemble de données, rangée par colonne, à la manière d'une " +"feuille de calcul. Utilisez les tableaux pour présenter une vue des données sous-" +"jacentes ou pour montrer des mesures agrégées." msgid "Clause" msgstr "Clause" msgid "Clear" -msgstr "Effacer " +msgstr "Effacer" msgid "Clear all" msgstr "Effacer tout" @@ -2869,15 +2798,15 @@ msgstr "Forme claire" msgid "Click on \"+Add/Edit Filters\" button to create new dashboard filters" msgstr "" -"Cliquez sur le bouton « +Ajouter/modifier des filtres » pour créer de " -"nouveaux filtres de tableau de bord." +"Cliquez sur le bouton « +Ajouter/modifier des filtres » pour créer de nouveaux " +"filtres de tableau de bord" msgid "" -"Click on \"Create chart\" button in the control panel on the left to " -"preview a visualization or" +"Click on \"Create chart\" button in the control panel on the left to preview a " +"visualization or" msgstr "" -"Cliquez sur le bouton « Créer un graphique » dans le panneau de commande " -"à gauche pour prévisualiser une visualisation ou" +"Cliquez sur le bouton « Créer un graphique » dans le panneau de commande à gauche " +"pour prévisualiser une visualisation ou" msgid "Click the lock to make changes." msgstr "Cliquez sur le cadenas pour effectuer des modifications." @@ -2886,19 +2815,18 @@ msgid "Click the lock to prevent further changes." msgstr "Cliquez sur le cadenas pour empêcher toute modification ultérieure." msgid "" -"Click this link to switch to an alternate form that allows you to input " -"the SQLAlchemy URL for this database manually." +"Click this link to switch to an alternate form that allows you to input the " +"SQLAlchemy URL for this database manually." msgstr "" -"Cliquez sur ce lien pour basculer sur un autre formulaire qui vous " -"permettra d'entrer manuellement l'URL SQLAlchemy pour cette base de " -"données." +"Cliquez sur ce lien pour basculer sur un autre formulaire qui vous permettra " +"d'entrer manuellement l'URL SQLAlchemy pour cette base de données." msgid "" -"Click this link to switch to an alternate form that exposes only the " -"required fields needed to connect this database." +"Click this link to switch to an alternate form that exposes only the required " +"fields needed to connect this database." msgstr "" -"Cliquez sur ce lien pour basculer sur un autre formulaire qui ne montrera" -" que les champs nécessaires pour se connecter à cette base de données." +"Cliquez sur ce lien pour basculer sur un autre formulaire qui ne montrera que les " +"champs nécessaires pour se connecter à cette base de données." msgid "Click to add a contour" msgstr "" @@ -3010,12 +2938,11 @@ msgid "Color scheme" msgstr "Schéma de couleurs" msgid "" -"Color will be shaded based the normalized (0% to 100%) value of a given " -"cell against the other cells in the selected range: " +"Color will be shaded based the normalized (0% to 100%) value of a given cell " +"against the other cells in the selected range: " msgstr "" -"La couleur sera ombrée en fonction de la valeur normalisée (0 % à 100 %) " -"d'une cellule donnée par rapport aux autres cellules de la plage " -"sélectionnée : " +"La couleur sera ombrée en fonction de la valeur normalisée (0 % à 100 %) d'une " +"cellule donnée par rapport aux autres cellules de la plage sélectionnée : " #, fuzzy msgid "Color: " @@ -3028,12 +2955,10 @@ msgid "Column" msgstr "Colonne" #, python-format -msgid "" -"Column \"%(column)s\" is not numeric or does not exists in the query " -"results." +msgid "Column \"%(column)s\" is not numeric or does not exists in the query results." msgstr "" -"La colonne « %(column)s » n'est pas numérique ou n'existe pas dans les " -"résultats de requêtes." +"La colonne « %(column)s » n'est pas numérique ou n'existe pas dans les résultats " +"de requêtes." #, fuzzy msgid "Column Configuration" @@ -3048,11 +2973,10 @@ msgid "Column Formatting" msgstr "Informations additionnelles" msgid "" -"Column containing ISO 3166-2 codes of region/province/department in your " -"table." +"Column containing ISO 3166-2 codes of region/province/department in your table." msgstr "" -"Colonne contenant les codes ISO 3166-2 de la région/province/service dans" -" votre tableau." +"Colonne contenant les codes ISO 3166-2 de la région/province/service dans votre " +"tableau." msgid "Column containing latitude data" msgstr "Colonne contenant des données de latitude" @@ -3091,11 +3015,10 @@ msgstr "Sélection d'une colonne" #, fuzzy msgid "" -"Column to use as the index of the dataframe. If None is given, Index " -"label is used." +"Column to use as the index of the dataframe. If None is given, Index label is used." msgstr "" -"Colonne à utiliser pour les étiquettes de rangée de l'image de données. " -"Laissez vide s'il n'y a pas de colonne d'index." +"Colonne à utiliser pour les étiquettes de rangée de l'image de données. Laissez " +"vide s'il n'y a pas de colonne d'index." #, fuzzy msgid "Columnar Upload" @@ -3144,32 +3067,31 @@ msgid "Combine metrics" msgstr "Combiner les mesures" msgid "" -"Comma-separated color picks for the intervals, e.g. 1,2,4. Integers " -"denote colors from the chosen color scheme and are 1-indexed. Length must" -" be matching that of interval bounds." +"Comma-separated color picks for the intervals, e.g. 1,2,4. Integers denote colors " +"from the chosen color scheme and are 1-indexed. Length must be matching that of " +"interval bounds." msgstr "" -"Choix de couleurs séparés par des virgules pour les intervalles, par " -"exemple 1,2,4. Les nombres entiers désignent les couleurs de la palette " -"de couleurs choisie et sont indexés par 1. La longueur doit correspondre " -"à celle des limites de l'intervalle." +"Choix de couleurs séparés par des virgules pour les intervalles, par exemple " +"1,2,4. Les nombres entiers désignent les couleurs de la palette de couleurs " +"choisie et sont indexés par 1. La longueur doit correspondre à celle des limites " +"de l'intervalle." msgid "" -"Comma-separated interval bounds, e.g. 2,4,5 for intervals 0-2, 2-4 and " -"4-5. Last number should match the value provided for MAX." +"Comma-separated interval bounds, e.g. 2,4,5 for intervals 0-2, 2-4 and 4-5. Last " +"number should match the value provided for MAX." msgstr "" -"Limites des intervalles séparées par des virgules, par exemple 2,4,5 pour" -" les intervalles 0-2, 2-4 et 4-5. Le dernier chiffre doit correspondre à " -"la valeur fournie pour MAX." +"Limites des intervalles séparées par des virgules, par exemple 2,4,5 pour les " +"intervalles 0-2, 2-4 et 4-5. Le dernier chiffre doit correspondre à la valeur " +"fournie pour MAX." msgid "Comparator option" msgstr "Option comparateur" msgid "" -"Compare multiple time series charts (as sparklines) and related metrics " -"quickly." +"Compare multiple time series charts (as sparklines) and related metrics quickly." msgstr "" -"Comparez rapidement plusieurs graphiques de séries temporelles (sous " -"forme de lignes d'étincelles) et des mesures connexes." +"Comparez rapidement plusieurs graphiques de séries temporelles (sous forme de " +"lignes d'étincelles) et des mesures connexes." msgid "Compare results with other time periods." msgstr "" @@ -3178,29 +3100,25 @@ msgid "Compare the same summarized metric across multiple groups." msgstr "Comparez la même mesure résumée entre plusieurs groupes." msgid "" -"Compares how a metric changes over time between different groups. Each " -"group is mapped to a row and change over time is visualized bar lengths " -"and color." +"Compares how a metric changes over time between different groups. Each group is " +"mapped to a row and change over time is visualized bar lengths and color." msgstr "" -"Compare l'évolution d'une mesure dans le temps entre différents groupes. " -"Chaque groupe est associé à une ligne et l'évolution dans le temps est " -"visualisée par la longueur des barres et la couleur." +"Compare l'évolution d'une mesure dans le temps entre différents groupes. Chaque " +"groupe est associé à une ligne et l'évolution dans le temps est visualisée par la " +"longueur des barres et la couleur." msgid "" -"Compares metrics from different categories using bars. Bar lengths are " -"used to indicate the magnitude of each value and color is used to " -"differentiate groups." +"Compares metrics from different categories using bars. Bar lengths are used to " +"indicate the magnitude of each value and color is used to differentiate groups." msgstr "" -"Compare les mesures de différentes catégories à l'aide de barres. La " -"longueur des barres est utilisée pour indiquer l'ampleur de chaque valeur" -" et la couleur est utilisée pour différencier les groupes." +"Compare les mesures de différentes catégories à l'aide de barres. La longueur des " +"barres est utilisée pour indiquer l'ampleur de chaque valeur et la couleur est " +"utilisée pour différencier les groupes." msgid "" -"Compares the lengths of time different activities take in a shared " -"timeline view." +"Compares the lengths of time different activities take in a shared timeline view." msgstr "" -"Comparez la durée de différentes activités dans une vue chronologique " -"partagée." +"Comparez la durée de différentes activités dans une vue chronologique partagée." msgid "Comparison" msgstr "Comparaison" @@ -3244,7 +3162,7 @@ msgid "Configuration" msgstr "Configuration" msgid "Configure Advanced Time Range " -msgstr "Configuration de la plage horaire avancée" +msgstr "Configuration de la plage horaire avancée " #, fuzzy msgid "Configure Time Range: Current..." @@ -3267,8 +3185,7 @@ msgstr "Configurer les bases de votre couche d'annotations." msgid "Configure this dashboard to embed it into an external web application." msgstr "" -"Configurez ce tableau de bord pour l’intégrer dans une application Web " -"externe." +"Configurez ce tableau de bord pour l’intégrer dans une application Web externe." msgid "Configure your how you overlay is displayed here." msgstr "Configurer comment votre superposition est affichée ici." @@ -3345,10 +3262,10 @@ msgid "Control" msgstr "Colonne" msgid "Control labeled " -msgstr "Contrôle libellé" +msgstr "Contrôle libellé " msgid "Controls labeled " -msgstr "Contrôles libellés" +msgstr "Contrôles libellés " msgid "Copied to clipboard!" msgstr "Copié vers le presse-papier!" @@ -3390,8 +3307,7 @@ msgstr "Copier le lien de la requête vers le presse-papier" #, fuzzy msgid "Copy the identifier of the account you are trying to connect to." msgstr "" -"Copier le nom de la base de données à laquelle vous essayez de vous " -"connecter." +"Copier le nom de la base de données à laquelle vous essayez de vous connecter." msgid "Copy the name of the HTTP Path of your cluster." msgstr "Copiez le nom du chemin HTTP de votre grappe." @@ -3399,8 +3315,7 @@ msgstr "Copiez le nom du chemin HTTP de votre grappe." #, fuzzy msgid "Copy the name of the database you are trying to connect to." msgstr "" -"Copiez le nom de la base de données à laquelle vous essayez de vous " -"connecter." +"Copiez le nom de la base de données à laquelle vous essayez de vous connecter." msgid "Copy to Clipboard" msgstr "Copier vers le presse-papier" @@ -3436,7 +3351,7 @@ msgstr "Impossible de charger le pilote de la base de données : {}" #, python-format msgid "Could not resolve hostname: \"%(host)s\"." -msgstr "Impossible de résoudre le nom d'hôte : « %(host)s »" +msgstr "Impossible de résoudre le nom d'hôte:\"%(host)s\"." #, fuzzy msgid "Count" @@ -3488,8 +3403,8 @@ msgid "" "Create a dataset to begin visualizing your data as a chart or go to\n" " SQL Lab to query your data." msgstr "" -"Créer un ensemble de données pour commencer à visualiser vos données sous" -" forme de graphique ou aller à SQL Lab pour interroger vos données." +"Créer un ensemble de données pour commencer à visualiser vos données sous forme de " +"graphique ou aller à SQL Lab pour interroger vos données." msgid "Create a new chart" msgstr "Créer un nouveau graphique" @@ -3548,8 +3463,8 @@ msgstr "Cramoisi" msgid "Cross-filter will be applied to all of the charts that use this dataset." msgstr "" -"Le filtre croisé sera appliqué à tous les graphiques qui utilisent cet " -"ensemble de données." +"Le filtre croisé sera appliqué à tous les graphiques qui utilisent cet ensemble de " +"données." #, fuzzy msgid "Cross-filtering is not enabled for this dashboard." @@ -3630,8 +3545,8 @@ msgstr "SQL personnalisé" msgid "Custom SQL ad-hoc metrics are not enabled for this dataset" msgstr "" -"Les mesures SQL ponctuelles personnalisées ne sont pas activées pour cet " -"ensemble de données" +"Les mesures SQL ponctuelles personnalisées ne sont pas activées pour cet ensemble " +"de données" msgid "Custom SQL fields cannot contain sub-queries." msgstr "Les champs SQL personnalisés ne peuvent pas contenir de sous-requêtes." @@ -3662,14 +3577,13 @@ msgid "Customize Metrics" msgstr "Personnaliser les mesures" msgid "" -"Customize chart metrics or columns with currency symbols as prefixes or " -"suffixes. Choose a symbol from dropdown or type your own." +"Customize chart metrics or columns with currency symbols as prefixes or suffixes. " +"Choose a symbol from dropdown or type your own." msgstr "" -"Les graphiques en aires de séries temporelles sont similaires aux " -"graphiques en lignes dans la mesure où ils représentent des variables " -"avec la même échelle, mais les graphiques en aires empilent les mesures " -"les unes sur les autres. Dans Superset, un graphique en aires peut être " -"en flux, en pile ou en expansion." +"Les graphiques en aires de séries temporelles sont similaires aux graphiques en " +"lignes dans la mesure où ils représentent des variables avec la même échelle, mais " +"les graphiques en aires empilent les mesures les unes sur les autres. Dans " +"Superset, un graphique en aires peut être en flux, en pile ou en expansion." #, fuzzy msgid "Customize columns" @@ -3691,12 +3605,11 @@ msgid "D3 format syntax: https://github.com/d3/d3-format" msgstr "Syntaxe au format D3 : https://github.com/d3/d3-format" msgid "" -"D3 number format for numbers between -1.0 and 1.0, useful when you want " -"to have different significant digits for small and large numbers" +"D3 number format for numbers between -1.0 and 1.0, useful when you want to have " +"different significant digits for small and large numbers" msgstr "" -"Format D3 pour les nombres compris entre -1,0 et 1,0, utile lorsque vous " -"souhaitez avoir des chiffres significatifs différents pour les petits et " -"les grands nombres." +"Format D3 pour les nombres compris entre -1,0 et 1,0, utile lorsque vous souhaitez " +"avoir des chiffres significatifs différents pour les petits et les grands nombres" msgid "D3 time format for datetime columns" msgstr "Format d'heure D3 pour les colonnes d’horodatage" @@ -3738,7 +3651,7 @@ msgid "Dark mode" msgstr "Mode sombre" msgid "Dashboard" -msgstr "Tableau de bord " +msgstr "Tableau de bord" #, fuzzy, python-format msgid "Dashboard [%s] just got created and chart [%s] was added to it" @@ -3776,14 +3689,13 @@ msgstr "Schéma du tableau de bord" msgid "" "Dashboard time range filters apply to temporal columns defined in\n" -" the filter section of each chart. Add temporal columns to the " -"chart\n" +" the filter section of each chart. Add temporal columns to the chart\n" " filters to have this dashboard filter impact those charts." msgstr "" -"Les filtres d'intervalle de temps du tableau de bord s'appliquent aux " -"colonnes temporelles définies dans la section filtre de chaque graphique." -" Ajoutez des colonnes temporelles aux filtres des graphiques pour que ce " -"filtre de tableau de bord ait un impact sur ces graphiques." +"Les filtres d'intervalle de temps du tableau de bord s'appliquent aux colonnes " +"temporelles définies dans la section filtre de chaque graphique. Ajoutez des " +"colonnes temporelles aux filtres des graphiques pour que ce filtre de tableau de " +"bord ait un impact sur ces graphiques." #, fuzzy msgid "Dashboard title" @@ -3825,21 +3737,19 @@ msgid "Data Zoom" msgstr "Zoom des données" msgid "" -"Data could not be deserialized from the results backend. The storage " -"format might have changed, rendering the old data stake. You need to re-" -"run the original query." +"Data could not be deserialized from the results backend. The storage format might " +"have changed, rendering the old data stake. You need to re-run the original query." msgstr "" -"Les données n'ont pas pu être désérialisées à partir du programme dorsal " -"des résultats. Le format de stockage peut avoir changé, rendant les " -"anciennes données inutilisables. Vous devez réexécuter la requête " -"initiale." +"Les données n'ont pas pu être désérialisées à partir du programme dorsal des " +"résultats. Le format de stockage peut avoir changé, rendant les anciennes données " +"inutilisables. Vous devez réexécuter la requête initiale." msgid "" -"Data could not be retrieved from the results backend. You need to re-run " -"the original query." +"Data could not be retrieved from the results backend. You need to re-run the " +"original query." msgstr "" -"Les données n'ont pas pu être extraites du programme dorsal des " -"résultats. Vous devez réexécuter la requête initiale." +"Les données n'ont pas pu être extraites du programme dorsal des résultats. Vous " +"devez réexécuter la requête initiale." #, fuzzy, python-format msgid "Data for %s" @@ -3852,7 +3762,7 @@ msgid "Data refreshed" msgstr "Données rafraîchies" msgid "Data type" -msgstr "Type de données :" +msgstr "Type de données" msgid "DataFrame include at least one series" msgstr "DataFrame doit comprendre au moins une série" @@ -3897,9 +3807,8 @@ msgid "" "Database driver for importing maybe not installed. Visit the Superset " "documentation page for installation instructions: " msgstr "" -"Le pilote de la base de données pour l'importation n'est peut-être pas " -"installé. Visitez la page de documentation Superset pour les instructions" -" d'installation : " +"Le pilote de la base de données pour l'importation n'est peut-être pas installé. " +"Visitez la page de documentation Superset pour les instructions d'installation : " msgid "Database error" msgstr "Erreur de base de données" @@ -4008,18 +3917,16 @@ msgid "Datasets" msgstr "Ensembles de données" msgid "" -"Datasets can be created from database tables or SQL queries. Select a " -"database table to the left or " +"Datasets can be created from database tables or SQL queries. Select a database " +"table to the left or " msgstr "" -"Les ensembles de données peuvent être créés à partir de tableaux de base " -"de données ou de requêtes SQL. Sélectionnez un tableau de base de données" -" à gauche ou " +"Les ensembles de données peuvent être créés à partir de tableaux de base de " +"données ou de requêtes SQL. Sélectionnez un tableau de base de données à gauche ou " msgid "" -"Datasets can have a main temporal column (main_dttm_col), but can also " -"have secondary time columns. When this attribute is true, whenever the " -"secondary columns are filtered, the same filter is applied to the main " -"datetime column." +"Datasets can have a main temporal column (main_dttm_col), but can also have " +"secondary time columns. When this attribute is true, whenever the secondary " +"columns are filtered, the same filter is applied to the main datetime column." msgstr "" #, fuzzy @@ -4065,11 +3972,11 @@ msgid "Datetime Format" msgstr "Format d’horodatage" msgid "" -"Datetime column not provided as part table configuration and is required " -"by this type of chart" +"Datetime column not provided as part table configuration and is required by this " +"type of chart" msgstr "" -"La colonne d'horodatage n'est pas fournie dans le cadre de la " -"configuration du tableau et est requise par ce type de graphique." +"La colonne d'horodatage n'est pas fournie dans le cadre de la configuration du " +"tableau et est requise par ce type de graphique" msgid "Datetime format" msgstr "Format d’horodatage" @@ -4085,9 +3992,7 @@ msgid "Days %s" msgstr "Jours %s" msgid "Db engine did not return all queried columns" -msgstr "" -"Le moteur de base de données n'a pas retourné toutes les colonnes " -"demandées." +msgstr "Le moteur de base de données n'a pas retourné toutes les colonnes demandées" #, fuzzy msgid "Deactivate" @@ -4160,8 +4065,8 @@ msgstr "URL par défaut" msgid "Default URL to redirect to when accessing from the dataset list page" msgstr "" -"URL par défaut vers laquelle rediriger l'accès à partir de la page de la " -"liste des ensembles de données" +"URL par défaut vers laquelle rediriger l'accès à partir de la page de la liste des " +"ensembles de données" msgid "Default Value" msgstr "Valeur par défaut" @@ -4179,61 +4084,58 @@ msgid "Default longitude" msgstr "Longitude par défaut" msgid "" -"Default minimal column width in pixels, actual width may still be larger " -"than this if other columns don't need much space" +"Default minimal column width in pixels, actual width may still be larger than this " +"if other columns don't need much space" msgstr "" -"Largeur minimale par défaut de la colonne en pixels, la largeur réelle " -"peut être supérieure à cette valeur si les autres colonnes n'ont pas " -"besoin de beaucoup d'espace." +"Largeur minimale par défaut de la colonne en pixels, la largeur réelle peut être " +"supérieure à cette valeur si les autres colonnes n'ont pas besoin de beaucoup " +"d'espace" msgid "Default value is required" msgstr "La valeur par défaut est requise" msgid "Default value must be set when \"Filter has default value\" is checked" msgstr "" -"La valeur par défaut doit être définie lorsque l'option « Le filtre a une" -" valeur par défaut » est cochée." +"La valeur par défaut doit être définie lorsque l'option « Le filtre a une valeur " +"par défaut » est cochée" msgid "Default value must be set when \"Filter value is required\" is checked" msgstr "" -"La valeur par défaut doit être définie lorsque l'option « Valeur du " -"filtre requise » est cochée." +"La valeur par défaut doit être définie lorsque l'option « Valeur du filtre " +"requise » est cochée" msgid "" -"Default value set automatically when \"Select first filter value by " -"default\" is checked" +"Default value set automatically when \"Select first filter value by default\" is " +"checked" msgstr "" -"La valeur par défaut est définie automatiquement lorsque l'option « " -"Sélectionner la première valeur de filtre par défaut » est cochée." +"La valeur par défaut est définie automatiquement lorsque l'option « Sélectionner " +"la première valeur de filtre par défaut » est cochée" msgid "" -"Define a function that receives the input and outputs the content for a " -"tooltip" +"Define a function that receives the input and outputs the content for a tooltip" msgstr "" -"Définissez une fonction qui reçoit l'entrée et produit le contenu d'une " -"info-bulle" +"Définissez une fonction qui reçoit l'entrée et produit le contenu d'une info-bulle" msgid "Define a function that returns a URL to navigate to when user clicks" msgstr "" -"Définissez une fonction qui renvoie une URL vers laquelle naviguer " -"lorsque l'utilisateur·rice clique." +"Définissez une fonction qui renvoie une URL vers laquelle naviguer lorsque " +"l'utilisateur·rice clique" msgid "" "Define a javascript function that receives the data array used in the " -"visualization and is expected to return a modified version of that array." -" This can be used to alter properties of the data, filter, or enrich the " -"array." +"visualization and is expected to return a modified version of that array. This can " +"be used to alter properties of the data, filter, or enrich the array." msgstr "" -"Définissez une fonction javascript qui reçoit le tableau de données " -"utilisé dans la visualisation et qui doit renvoyer une version modifiée " -"de ce tableau. Cette fonction peut être utilisée pour modifier les " -"propriétés des données, filtrer ou enrichir le tableau." +"Définissez une fonction javascript qui reçoit le tableau de données utilisé dans " +"la visualisation et qui doit renvoyer une version modifiée de ce tableau. Cette " +"fonction peut être utilisée pour modifier les propriétés des données, filtrer ou " +"enrichir le tableau." msgid "" -"Define contour layers. Isolines represent a collection of line segments " -"that serparate the area above and below a given threshold. Isobands " -"represent a collection of polygons that fill the are containing values in" -" a given threshold range." +"Define contour layers. Isolines represent a collection of line segments that " +"serparate the area above and below a given threshold. Isobands represent a " +"collection of polygons that fill the are containing values in a given threshold " +"range." msgstr "" msgid "Define delivery schedule, timezone, and frequency settings." @@ -4243,11 +4145,10 @@ msgid "Define the database, SQL query, and triggering conditions for alert." msgstr "" msgid "" -"Defines a rolling window function to apply, works along with the " -"[Periods] text box" +"Defines a rolling window function to apply, works along with the [Periods] text box" msgstr "" -"Définit une fonction de fenêtre roulante à appliquer, fonctionne avec la " -"zone de texte [Périodes]." +"Définit une fonction de fenêtre roulante à appliquer, fonctionne avec la zone de " +"texte [Périodes]" msgid "Defines how each series is broken down" msgstr "Définit la manière dont chaque série est décomposée" @@ -4257,41 +4158,40 @@ msgstr "Définit la taille de la grille en pixels" #, fuzzy msgid "" -"Defines the grouping of entities. Each series is represented by a " -"specific color in the chart." +"Defines the grouping of entities. Each series is represented by a specific color " +"in the chart." msgstr "" -"Définit le regroupement d'entités. Chaque série est représentée par une " -"couleur spécifique sur le graphique et masquée/affichée en cliquant sur " -"sa légende" +"Définit le regroupement d'entités. Chaque série est représentée par une couleur " +"spécifique sur le graphique et masquée/affichée en cliquant sur sa légende" msgid "" -"Defines the grouping of entities. Each series is shown as a specific " -"color on the chart and has a legend toggle" +"Defines the grouping of entities. Each series is shown as a specific color on the " +"chart and has a legend toggle" msgstr "" -"Définit le regroupement des entités. Chaque série est affichée dans une " -"couleur spécifique sur le graphique et dispose d'une légende à bascule." +"Définit le regroupement des entités. Chaque série est affichée dans une couleur " +"spécifique sur le graphique et dispose d'une légende à bascule" msgid "" -"Defines the size of the rolling window function, relative to the time " -"granularity selected" +"Defines the size of the rolling window function, relative to the time granularity " +"selected" msgstr "" -"Définit la taille de la fonction de fenêtre roulante, par rapport à la " -"granularité temporelle sélectionnée." +"Définit la taille de la fonction de fenêtre roulante, par rapport à la granularité " +"temporelle sélectionnée" msgid "" -"Defines the value that determines the boundary between different regions " -"or levels in the data " +"Defines the value that determines the boundary between different regions or levels " +"in the data " msgstr "" msgid "" -"Defines whether the step should appear at the beginning, middle or end " -"between two data points" +"Defines whether the step should appear at the beginning, middle or end between two " +"data points" msgstr "" -"Définit si le pas doit apparaître au début, au milieu ou à la fin entre " -"deux points de données." +"Définit si le pas doit apparaître au début, au milieu ou à la fin entre deux " +"points de données" msgid "Delete" -msgstr "Supprimer " +msgstr "Supprimer" #, python-format msgid "Delete %s?" @@ -4409,11 +4309,11 @@ msgid "Deleted: %s" msgstr "%s supprimé" msgid "" -"Deleting a tab will remove all content within it. You may still reverse " -"this action with the" +"Deleting a tab will remove all content within it. You may still reverse this " +"action with the" msgstr "" -"La suppression d’un onglet supprimera tout le contenu qu’il contient. " -"Vous pouvez toujours annuler cette action avec le" +"La suppression d’un onglet supprimera tout le contenu qu’il contient. Vous pouvez " +"toujours annuler cette action avec le" msgid "Delimited long & lat single column" msgstr "Colonne unique délimitée en long et en lat" @@ -4439,7 +4339,7 @@ msgid "Deprecated" msgstr "Déclassé" msgid "Description" -msgstr "Description :" +msgstr "Description" msgid "Description (this can be seen in the list)" msgstr "Description (cela peut être vu dans la liste)" @@ -4464,11 +4364,10 @@ msgid "Determines how whiskers and outliers are calculated." msgstr "Détermine le mode de calcul des moustaches et des valeurs aberrantes." msgid "" -"Determines whether or not this dashboard is visible in the list of all " -"dashboards" +"Determines whether or not this dashboard is visible in the list of all dashboards" msgstr "" -"Détermine si ce tableau de bord est visible ou non dans la liste de tous " -"les tableaux de bord." +"Détermine si ce tableau de bord est visible ou non dans la liste de tous les " +"tableaux de bord" #, fuzzy msgid "Diamond" @@ -4500,9 +4399,9 @@ msgid "Dimensions" msgstr "Dimensions" msgid "" -"Dimensions contain qualitative values such as names, dates, or " -"geographical data. Use dimensions to categorize, segment, and reveal the " -"details in your data. Dimensions affect the level of detail in the view." +"Dimensions contain qualitative values such as names, dates, or geographical data. " +"Use dimensions to categorize, segment, and reveal the details in your data. " +"Dimensions affect the level of detail in the view." msgstr "" msgid "Directed Force Layout" @@ -4516,14 +4415,12 @@ msgid "Disable SQL Lab data preview queries" msgstr "Désactiver les requêtes de prévisualisation des données de SQL Lab" msgid "" -"Disable data preview when fetching table metadata in SQL Lab. Useful to " -"avoid browser performance issues when using databases with very wide " -"tables." +"Disable data preview when fetching table metadata in SQL Lab. Useful to avoid " +"browser performance issues when using databases with very wide tables." msgstr "" -"Désactiver la prévisualisation des données lorsque vous récupérez les " -"métadonnées des tableaux dans SQL Lab. Utile pour éviter les problèmes de" -" performance du navigateur lors de l'utilisation de bases de données avec" -" des tables très larges." +"Désactiver la prévisualisation des données lorsque vous récupérez les métadonnées " +"des tableaux dans SQL Lab. Utile pour éviter les problèmes de performance du " +"navigateur lors de l'utilisation de bases de données avec des tables très larges." #, fuzzy msgid "Disable drill to detail" @@ -4565,16 +4462,15 @@ msgid "Display configuration" msgstr "Configuration d'affichage" msgid "" -"Display metrics side by side within each column, as opposed to each " -"column being displayed side by side for each metric." +"Display metrics side by side within each column, as opposed to each column being " +"displayed side by side for each metric." msgstr "" -"Affichez les mesures côte à côte dans chaque colonne, au lieu d'afficher " -"chaque colonne côte à côte pour chaque mesure." +"Affichez les mesures côte à côte dans chaque colonne, au lieu d'afficher chaque " +"colonne côte à côte pour chaque mesure." msgid "" -"Display percents in the label and tooltip as the percent of the total " -"value, from the first step of the funnel, or from the previous step in " -"the funnel." +"Display percents in the label and tooltip as the percent of the total value, from " +"the first step of the funnel, or from the previous step in the funnel." msgstr "" msgid "Display row level subtotal" @@ -4588,16 +4484,15 @@ msgid "Display settings" msgstr "Paramètres d'affichage" msgid "" -"Displays connections between entities in a graph structure. Useful for " -"mapping relationships and showing which nodes are important in a network." -" Graph charts can be configured to be force-directed or circulate. If " -"your data has a geospatial component, try the deck.gl Arc chart." +"Displays connections between entities in a graph structure. Useful for mapping " +"relationships and showing which nodes are important in a network. Graph charts can " +"be configured to be force-directed or circulate. If your data has a geospatial " +"component, try the deck.gl Arc chart." msgstr "" -"Affiche les connexions entre les entités dans une structure graphique. " -"Utile pour cartographier les relations et montrer quels nœuds sont " -"importants dans un réseau. Les graphiques peuvent être configurés pour " -"être dirigés par la force ou circuler. Si vos données ont une composante " -"géospatiale, essayez le graphique Arc de deck.gl." +"Affiche les connexions entre les entités dans une structure graphique. Utile pour " +"cartographier les relations et montrer quels nœuds sont importants dans un réseau. " +"Les graphiques peuvent être configurés pour être dirigés par la force ou circuler. " +"Si vos données ont une composante géospatiale, essayez le graphique Arc de deck.gl." #, fuzzy msgid "Distribute across" @@ -4655,24 +4550,22 @@ msgstr "Glissez-déposer des composants dans cet onglet" msgid "Draw a marker on data points. Only applicable for line types." msgstr "" -"Tracer un marqueur sur les points de données. Ne s’applique qu’aux types " -"de ligne." +"Tracer un marqueur sur les points de données. Ne s’applique qu’aux types de ligne." msgid "Draw area under curves. Only applicable for line types." msgstr "Tracer une zone sous les courbes. Ne s’applique qu’aux types de ligne." msgid "Draw line from Pie to label when labels outside?" msgstr "" -"Tracer une ligne entre le diagramme circulaire et l'étiquette lorsque les" -" étiquettes sont à l'extérieur?" +"Tracer une ligne entre le diagramme circulaire et l'étiquette lorsque les " +"étiquettes sont à l'extérieur?" msgid "Draw split lines for minor axis ticks" msgstr "Tracer des lignes de séparation pour les points de repère de l'axe mineur" msgid "Draw split lines for minor y-axis ticks" msgstr "" -"Tracer des lignes séparées pour les points de repère de l’axe des " -"ordonnées mineur" +"Tracer des lignes séparées pour les points de repère de l’axe des ordonnées mineur" msgid "Drill by" msgstr "Explorer par" @@ -4695,19 +4588,18 @@ msgstr "Détail Explorer par" msgid "Drill to detail by value is not yet supported for this chart type." msgstr "" -"La valeur Explorer par n'est pas encore prise en charge pour ce type de " -"graphique" +"La valeur Explorer par n'est pas encore prise en charge pour ce type de graphique." msgid "" -"Drill to detail is disabled because this chart does not group data by " -"dimension value." +"Drill to detail is disabled because this chart does not group data by dimension " +"value." msgstr "" -"L'option Explorer par est désactivée car ce graphique ne regroupe pas les" -" données par valeur de dimension." +"L'option Explorer par est désactivée car ce graphique ne regroupe pas les données " +"par valeur de dimension." msgid "" -"Drill to detail is disabled for this database. Change the database " -"settings to enable it." +"Drill to detail is disabled for this database. Change the database settings to " +"enable it." msgstr "" #, python-format @@ -4743,11 +4635,11 @@ msgstr "Nom(s) de colonne dupliqué : %(columns)s" #, python-format msgid "" -"Duplicate column/metric labels: %(labels)s. Please make sure all columns " -"and metrics have a unique label." +"Duplicate column/metric labels: %(labels)s. Please make sure all columns and " +"metrics have a unique label." msgstr "" -"Étiquettes de colonnes/mesures en double : %(labels)s. Veillez à ce que " -"toutes les colonnes et tous les indicateurs aient un libellé unique." +"Étiquettes de colonnes/mesures en double : %(labels)s. Veillez à ce que toutes les " +"colonnes et tous les indicateurs aient un libellé unique." #, fuzzy msgid "Duplicate dataset" @@ -4761,69 +4653,63 @@ msgstr "Durée" #, fuzzy msgid "" -"Duration (in seconds) of the caching timeout for charts of this database." -" A timeout of 0 indicates that the cache never expires, and -1 bypasses " -"the cache. Note this defaults to the global timeout if undefined." +"Duration (in seconds) of the caching timeout for charts of this database. A " +"timeout of 0 indicates that the cache never expires, and -1 bypasses the cache. " +"Note this defaults to the global timeout if undefined." msgstr "" -"Durée (en secondes) du délai de mise en cache des graphiques de cette " -"base de données. Un délai de 0 indique que le cache n'expire jamais, et " -"-1 permet de contourner le cache. Notez que cette valeur correspond par " -"défaut à la durée globale si elle n'est pas définie." +"Durée (en secondes) du délai de mise en cache des graphiques de cette base de " +"données. Un délai de 0 indique que le cache n'expire jamais, et -1 permet de " +"contourner le cache. Notez que cette valeur correspond par défaut à la durée " +"globale si elle n'est pas définie." msgid "" -"Duration (in seconds) of the caching timeout for charts of this database." -" A timeout of 0 indicates that the cache never expires. Note this " -"defaults to the global timeout if undefined." +"Duration (in seconds) of the caching timeout for charts of this database. A " +"timeout of 0 indicates that the cache never expires. Note this defaults to the " +"global timeout if undefined." msgstr "" -"Durée (en secondes) du délai de mise en cache des graphiques de cette " -"base de données. Un délai de 0 indique que le cache n'expire jamais. " -"Notez que ce délai est remplacé par défaut par le délai global s'il n'est" -" pas défini." +"Durée (en secondes) du délai de mise en cache des graphiques de cette base de " +"données. Un délai de 0 indique que le cache n'expire jamais. Notez que ce délai " +"est remplacé par défaut par le délai global s'il n'est pas défini." msgid "" -"Duration (in seconds) of the caching timeout for this chart. Note this " -"defaults to the datasource/table timeout if undefined." +"Duration (in seconds) of the caching timeout for this chart. Note this defaults to " +"the datasource/table timeout if undefined." msgstr "" -"Durée (en secondes) du délai de mise en cache pour ce graphique. Notez " -"que ce délai est par défaut celui de la source de données/table s'il " -"n'est pas défini." +"Durée (en secondes) du délai de mise en cache pour ce graphique. Notez que ce " +"délai est par défaut celui de la source de données/table s'il n'est pas défini." #, fuzzy msgid "" -"Duration (in seconds) of the caching timeout for this chart. Set to -1 to" -" bypass the cache. Note this defaults to the dataset's timeout if " -"undefined." +"Duration (in seconds) of the caching timeout for this chart. Set to -1 to bypass " +"the cache. Note this defaults to the dataset's timeout if undefined." msgstr "" -"Durée (en secondes) du délai de mise en cache pour ce graphique. " -"Définissez -1 pour contourner le cache. Notez que cette valeur correspond" -" par défaut au délai d'attente de l’ensemble de données s'il n'est pas " -"défini." +"Durée (en secondes) du délai de mise en cache pour ce graphique. Définissez -1 " +"pour contourner le cache. Notez que cette valeur correspond par défaut au délai " +"d'attente de l’ensemble de données s'il n'est pas défini." msgid "" -"Duration (in seconds) of the caching timeout for this table. A timeout of" -" 0 indicates that the cache never expires. Note this defaults to the " -"database timeout if undefined." +"Duration (in seconds) of the caching timeout for this table. A timeout of 0 " +"indicates that the cache never expires. Note this defaults to the database timeout " +"if undefined." msgstr "" -"Durée (en secondes) du délai de mise en cache de ce tableau. Un délai de " -"0 indique que le cache n'expire jamais. Notez que cette valeur correspond" -" par défaut au délai d'attente de la base de données s'il n'est pas " -"défini." +"Durée (en secondes) du délai de mise en cache de ce tableau. Un délai de 0 indique " +"que le cache n'expire jamais. Notez que cette valeur correspond par défaut au " +"délai d'attente de la base de données s'il n'est pas défini." msgid "" -"Duration (in seconds) of the metadata caching timeout for schemas of this" -" database. If left unset, the cache never expires." +"Duration (in seconds) of the metadata caching timeout for schemas of this " +"database. If left unset, the cache never expires." msgstr "" -"Durée (en secondes) du délai de mise en cache des métadonnées pour les " -"schémas de cette base de données. Si cette valeur n'est pas définie, le " -"cache n'expire jamais." +"Durée (en secondes) du délai de mise en cache des métadonnées pour les schémas de " +"cette base de données. Si cette valeur n'est pas définie, le cache n'expire jamais." msgid "" -"Duration (in seconds) of the metadata caching timeout for tables of this " -"database. If left unset, the cache never expires. " +"Duration (in seconds) of the metadata caching timeout for tables of this database. " +"If left unset, the cache never expires. " msgstr "" -"Durée (en secondes) du délai de mise en cache des métadonnées pour les " -"tableaux de cette base de données. Si cette valeur n'est pas définie, le " -"cache n'expire jamais. " +"Durée (en secondes) du délai de mise en cache des métadonnées pour les tableaux de " +"cette base de données. Si cette valeur n'est pas définie, le cache n'expire " +"jamais. " msgid "Duration in ms (1.40008 => 1ms 400µs 80ns)" msgstr "Durée en ms (1.40008 => 1ms 400µs 80ns)" @@ -4900,7 +4786,7 @@ msgid "Edit Dashboard" msgstr "Modifier le tableau de bord" msgid "Edit Database" -msgstr "Modifier l’ensemble de données " +msgstr "Modifier la base de données" msgid "Edit Dataset " msgstr "Modifier l’ensemble de données " @@ -4949,7 +4835,7 @@ msgid "Edit dashboard" msgstr "Modifier le tableau de bord" msgid "Edit database" -msgstr "Modifier la base de données " +msgstr "Modifier la base de données" msgid "Edit dataset" msgstr "Modifier l’ensemble de données" @@ -4993,11 +4879,11 @@ msgstr "Le nom d’utilisateur « %(username)s » ou le mot de passe est incor #, python-format msgid "" -"Either the username \"%(username)s\", password, or database name " -"\"%(database)s\" is incorrect." +"Either the username \"%(username)s\", password, or database name \"%(database)s\" " +"is incorrect." msgstr "" -"L'utilisateur « %(username)s », le mot de passe, ou le nom de la base de " -"données « %(database)s » est incorrect." +"L'utilisateur « %(username)s », le mot de passe, ou le nom de la base de données " +"« %(database)s » est incorrect." msgid "Either the username or the password is wrong." msgstr "Le nom d’utilisateur ou le mot de passe est incorrect." @@ -5060,8 +4946,8 @@ msgstr "Rangée vide" #, fuzzy msgid "Enable 'Allow file uploads to database' in any database's settings" msgstr "" -"Activez l'option « Autoriser le chargement de données » dans les " -"paramètres de la base de données" +"Activez l'option « Autoriser le chargement de données » dans les paramètres de la " +"base de données" msgid "Enable Filter Select" msgstr "Activer le filtre de sélection" @@ -5098,12 +4984,12 @@ msgid "Enable server side pagination of results (experimental feature)" msgstr "Activer la pagination des résultats côté serveur (fonction expérimentale)" msgid "" -"Encountered invalid NULL spatial entry," -" please consider filtering those " -"out" +"Encountered invalid NULL spatial entry, " +"please consider filtering those out" msgstr "" -"Une entrée spatiale NULL invalide a été rencontrée, veuillez envisager de" -" filtrer ces entrées." +"Une entrée spatiale NULL invalide a été " +"rencontrée, veuillez envisager de filtrer " +"ces entrées" msgid "End" msgstr "Fin" @@ -5138,11 +5024,11 @@ msgid "Engine Parameters" msgstr "Paramètres de moteur" msgid "" -"Engine spec \"InvalidEngine\" does not support being configured via " -"individual parameters." +"Engine spec \"InvalidEngine\" does not support being configured via individual " +"parameters." msgstr "" -"La spécification de moteur « InvalidEngine » ne permet pas d'être " -"configurée via des paramètres individuels." +"La spécification de moteur « InvalidEngine » ne permet pas d'être configurée via " +"des paramètres individuels." msgid "Enter CA_BUNDLE" msgstr "Saisir CA_BUNDLE" @@ -5195,8 +5081,8 @@ msgstr "Erreur" #, fuzzy msgid "Error Fetching Tagged Objects" msgstr "" -"Désolé, une erreur s'est produite lors de la récupération des " -"informations de cette base de données : %s" +"Désolé, une erreur s'est produite lors de la récupération des informations de " +"cette base de données : %s" #, python-format msgid "Error in jinja expression in HAVING clause: %(msg)s" @@ -5213,13 +5099,13 @@ msgstr "Erreur d'expression jinja dans la clause WHERE : %(msg)s" #, python-format msgid "Error in jinja expression in fetch values predicate: %(msg)s" msgstr "" -"Erreur dans l'expression jinja dans la réupération du prédicat des " -"valeurs : %(msg)s" +"Erreur dans l'expression jinja dans la réupération du prédicat des valeurs : " +"%(msg)s" msgid "Error loading chart datasources. Filters may not work correctly." msgstr "" -"Erreur au chargement des source de données du graphique Les filtres " -"peuvent mal fonctionner." +"Erreur au chargement des source de données du graphique Les filtres peuvent mal " +"fonctionner." msgid "Error message" msgstr "Message d'erreur" @@ -5251,8 +5137,7 @@ msgstr "Une erreur s'est produite durant la récupération des données : %s" #, python-format msgid "Error while rendering virtual dataset query: %(msg)s" msgstr "" -"Erreur durant le rendu de la requête de l’ensemble de données virtuel : " -"%(msg)s" +"Erreur durant le rendu de la requête de l’ensemble de données virtuel : %(msg)s" #, python-format msgid "Error: %(error)s" @@ -5368,19 +5253,18 @@ msgstr "Étendre la barre d'outils" msgid "" "Expects a formula with depending time parameter 'x'\n" -" in milliseconds since epoch. mathjs is used to evaluate the " -"formulas.\n" +" in milliseconds since epoch. mathjs is used to evaluate the formulas.\n" " Example: '2x+5'" msgstr "" -"Attend une formule avec un paramètre de temps dépendant « x » en " -"millisecondes depuis l'époque. mathjs est utilisé pour évaluer les " -"formules. Exemple : « 2x+5 »" +"Attend une formule avec un paramètre de temps dépendant « x » en millisecondes " +"depuis l'époque. mathjs est utilisé pour évaluer les formules. Exemple : " +"« 2x+5 »" msgid "Experimental" msgstr "Expérimental" msgid "Explore" -msgstr "explorer" +msgstr "Explorer" #, python-format msgid "Explore - %(table)s" @@ -5460,16 +5344,16 @@ msgid "Extra data for JS" msgstr "Données supplémentaires pour JS" msgid "" -"Extra data to specify table metadata. Currently supports metadata of the " -"format: `{ \"certification\": { \"certified_by\": \"Data Platform Team\"," -" \"details\": \"This table is the source of truth.\" }, " -"\"warning_markdown\": \"This is a warning.\" }`." +"Extra data to specify table metadata. Currently supports metadata of the format: " +"`{ \"certification\": { \"certified_by\": \"Data Platform Team\", \"details\": " +"\"This table is the source of truth.\" }, \"warning_markdown\": \"This is a " +"warning.\" }`." msgstr "" -"Données supplémentaires pour spécifier les métadonnées du tableau. " -"Actuellement, les métadonnées sont prises en charge dans le format " -"suivant : `{ « certification »: { « certified_by »: « Data Platform Team " -"», « details »: « Ce tableau est la source de la vérité. » }, « " -"warning_markdown »: « Ceci est un avertissement. » }`." +"Données supplémentaires pour spécifier les métadonnées du tableau. Actuellement, " +"les métadonnées sont prises en charge dans le format suivant : " +"`{ « certification »: { « certified_by »: « Data Platform Team », « details »: " +"« Ce tableau est la source de la vérité. » }, « warning_markdown »: « Ceci est un " +"avertissement. » }`." #, python-format msgid "Extra field cannot be decoded by JSON. %(msg)s" @@ -5480,11 +5364,11 @@ msgstr "Paramètres supplémentaires à utiliser dans les modèles de requêtes #, fuzzy msgid "" -"Extra parameters that any plugins can choose to set for use in Jinja " -"templated queries" +"Extra parameters that any plugins can choose to set for use in Jinja templated " +"queries" msgstr "" -"Paramètres supplémentaires que les plugiciels peuvent choisir de définir " -"pour être utilisés dans les requêtes modèles de Jinja." +"Paramètres supplémentaires que les plugiciels peuvent choisir de définir pour être " +"utilisés dans les requêtes modèles de Jinja." #, fuzzy msgid "Extra url parameters for use in Jinja templated queries" @@ -5620,8 +5504,7 @@ msgstr "Couleur de remplissage" msgid "Fill all required fields to enable \"Default Value\"" msgstr "" -"Remplissez tous les champs obligatoires pour activer la « valeur par " -"défaut »" +"Remplissez tous les champs obligatoires pour activer la « valeur par défaut »" #, fuzzy msgid "Fill method" @@ -5662,8 +5545,8 @@ msgstr "Nom du filtre" msgid "Filter only displays values relevant to selections made in other filters." msgstr "" -"Le filtre n'affiche que les valeurs pertinentes après les sélections " -"effectuées dans d'autres filtres." +"Le filtre n'affiche que les valeurs pertinentes après les sélections effectuées " +"dans d'autres filtres." msgid "Filter results" msgstr "Filtrer les résultats" @@ -5687,7 +5570,7 @@ msgid "Filterable" msgstr "Filtrable" msgid "Filters" -msgstr "Filtres " +msgstr "Filtres" msgid "Filters by columns" msgstr "Filtres par colonne" @@ -5697,34 +5580,31 @@ msgstr "Filtres par mesure" msgid "Filters for comparison must have a value" msgstr "" -"Représente les mesures individuelles pour chaque ligne de données " -"verticalement et les relie par une ligne. Ce graphique est utile pour " -"comparer plusieurs mesures sur l'ensemble des échantillons ou des lignes " -"de données." +"Représente les mesures individuelles pour chaque ligne de données verticalement et " +"les relie par une ligne. Ce graphique est utile pour comparer plusieurs mesures " +"sur l'ensemble des échantillons ou des lignes de données" #, python-format msgid "Filters out of scope (%d)" msgstr "Filtres hors de portée (%d)" msgid "" -"Filters with the same group key will be ORed together within the group, " -"while different filter groups will be ANDed together. Undefined group " -"keys are treated as unique groups, i.e. are not grouped together. For " -"example, if a table has three filters, of which two are for departments " -"Finance and Marketing (group key = 'department'), and one refers to the " -"region Europe (group key = 'region'), the filter clause would apply the " -"filter (department = 'Finance' OR department = 'Marketing') AND (region =" -" 'Europe')." +"Filters with the same group key will be ORed together within the group, while " +"different filter groups will be ANDed together. Undefined group keys are treated " +"as unique groups, i.e. are not grouped together. For example, if a table has three " +"filters, of which two are for departments Finance and Marketing (group key = " +"'department'), and one refers to the region Europe (group key = 'region'), the " +"filter clause would apply the filter (department = 'Finance' OR department = " +"'Marketing') AND (region = 'Europe')." msgstr "" -"Les filtres d'un groupe qui ont la même clé vont se combiner avec des OR," -" alors que des filtres de groupes différents vont se combiner avec des " -"AND. Les groupes qui ont une clé indéfinie sont traités comme des groupes" -" uniques, c'est-à-dire qu'ils ne sont pas regroupés. Par exemple, si une " -"table a 3 filtres dont 2 sont pour les départements Finance et Marketing " -"(clé de groupe « department », et 1 se réfère à la région Europe (clé de " -"groupe = « region »), la clause du filtre qui s'appliquerait serait " -"(department = « Finance » OR department = « Marketing ») AND (region = « " -"Europe »)." +"Les filtres d'un groupe qui ont la même clé vont se combiner avec des OR, alors " +"que des filtres de groupes différents vont se combiner avec des AND. Les groupes " +"qui ont une clé indéfinie sont traités comme des groupes uniques, c'est-à-dire " +"qu'ils ne sont pas regroupés. Par exemple, si une table a 3 filtres dont 2 sont " +"pour les départements Finance et Marketing (clé de groupe « department », et 1 se " +"réfère à la région Europe (clé de groupe = « region »), la clause du filtre qui " +"s'appliquerait serait (department = « Finance » OR department = « Marketing ») AND " +"(region = « Europe »)." #, fuzzy msgid "Find" @@ -5737,12 +5617,11 @@ msgid "First" msgstr "Premier" msgid "" -"Fix the trend line to the full time range specified in case filtered " -"results do not include the start or end dates" +"Fix the trend line to the full time range specified in case filtered results do " +"not include the start or end dates" msgstr "" -"Corrigez la ligne de tendance à la plage de temps complète spécifiée au " -"cas où les résultats filtrés n’incluraient pas les dates de début ou de " -"fin" +"Corrigez la ligne de tendance à la plage de temps complète spécifiée au cas où les " +"résultats filtrés n’incluraient pas les dates de début ou de fin" #, fuzzy msgid "Fix to selected Time Range" @@ -5770,8 +5649,8 @@ msgstr "Taille de la police" msgid "Font size for axis labels, detail value and other text elements" msgstr "" -"Taille de la police pour les étiquettes d’axe, la valeur de détail et " -"d’autres éléments de texte" +"Taille de la police pour les étiquettes d’axe, la valeur de détail et d’autres " +"éléments de texte" msgid "Font size for the biggest value in the list" msgstr "Taille de police pour la plus grande valeur de la liste" @@ -5780,47 +5659,46 @@ msgid "Font size for the smallest value in the list" msgstr "Taille de police pour la plus petite valeur de la liste" msgid "" -"For Bigquery, Presto and Postgres, shows a button to compute cost before " -"running a query." +"For Bigquery, Presto and Postgres, shows a button to compute cost before running a " +"query." msgstr "" -"Pour Presto et Postgres, affiche un bouton pour calculer le coût avant " -"d'exécuter une requête." +"Pour Presto et Postgres, affiche un bouton pour calculer le coût avant d'exécuter " +"une requête." msgid "" -"For Trino, describe full schemas of nested ROW types, expanding them with" -" dotted paths" +"For Trino, describe full schemas of nested ROW types, expanding them with dotted " +"paths" msgstr "" msgid "For further instructions, consult the" msgstr "Pour obtenir des instructions supplémentaires, consultez" msgid "" -"For more information about objects are in context in the scope of this " -"function, refer to the" +"For more information about objects are in context in the scope of this function, " +"refer to the" msgstr "" -"Pour obtenir de plus amples renseignements sur les objets dans le " -"contexte de la portée de cette fonction, reportez-vous au" +"Pour obtenir de plus amples renseignements sur les objets dans le contexte de la " +"portée de cette fonction, reportez-vous au" msgid "" -"For regular filters, these are the roles this filter will be applied to. " -"For base filters, these are the roles that the filter DOES NOT apply to, " -"e.g. Admin if admin should see all data." +"For regular filters, these are the roles this filter will be applied to. For base " +"filters, these are the roles that the filter DOES NOT apply to, e.g. Admin if " +"admin should see all data." msgstr "" -"Pour les filtres réguliers, il s'agit des rôles auxquels le filtre " -"s'applique. Pour les filtres de base, il s'agit des rôles auxquels le " -"filtre ne s'applique PAS, par exemple Admin si l'administrateur doit voir" -" toutes les données." +"Pour les filtres réguliers, il s'agit des rôles auxquels le filtre s'applique. " +"Pour les filtres de base, il s'agit des rôles auxquels le filtre ne s'applique " +"PAS, par exemple Admin si l'administrateur doit voir toutes les données." #, fuzzy msgid "Force" msgstr "Force" msgid "" -"Force all tables and views to be created in this schema when clicking " -"CTAS or CVAS in SQL Lab." +"Force all tables and views to be created in this schema when clicking CTAS or CVAS " +"in SQL Lab." msgstr "" -"Forcez la création de toutes les tables et vues dans ce schéma lorsque " -"vous cliquez sur CTAS ou CVAS dans SQL Lab." +"Forcez la création de toutes les tables et vues dans ce schéma lorsque vous " +"cliquez sur CTAS ou CVAS dans SQL Lab." #, fuzzy msgid "Force categorical" @@ -5856,21 +5734,21 @@ msgstr "Vert forêt" msgid "Form data not found in cache, reverting to chart metadata." msgstr "" -"Les données du formulaire n'ont pas été trouvées dans le cache, les " -"métadonnées du graphique ont été rétablies." +"Les données du formulaire n'ont pas été trouvées dans le cache, les métadonnées du " +"graphique ont été rétablies." msgid "Form data not found in cache, reverting to dataset metadata." msgstr "" -"Les données du formulaire n'ont pas été trouvées dans l’ensemble de " -"données, les métadonnées du graphique ont été rétablies." +"Les données du formulaire n'ont pas été trouvées dans l’ensemble de données, les " +"métadonnées du graphique ont été rétablies." #, fuzzy msgid "Format SQL" msgstr "Format D3" msgid "" -"Format data labels. Use variables: {name}, {value}, {percent}. \\n " -"represents a new line. ECharts compatibility:\n" +"Format data labels. Use variables: {name}, {value}, {percent}. \\n represents a " +"new line. ECharts compatibility:\n" "{a} (series), {b} (name), {c} (value), {d} (percentage)" msgstr "" @@ -5981,8 +5859,7 @@ msgstr "" msgid "Go to the edit mode to configure the dashboard and add charts" msgstr "" -"Allez dans l'edition pour configurer le tableau de bord et ajouter des " -"graphiques" +"Allez dans l'edition pour configurer le tableau de bord et ajouter des graphiques" msgid "Gold" msgstr "Or" @@ -6057,12 +5934,12 @@ msgid "Hard value bounds applied for color coding." msgstr "" msgid "" -"Hard value bounds applied for color coding. Is only relevant and applied " -"when the normalization is applied against the whole heatmap." +"Hard value bounds applied for color coding. Is only relevant and applied when the " +"normalization is applied against the whole heatmap." msgstr "" -"Limites de valeurs dures appliquées pour le codage des couleurs. N'est " -"pertinent et appliqué que lorsque la normalisation est appliquée à " -"l'ensemble de la carte thermique." +"Limites de valeurs dures appliquées pour le codage des couleurs. N'est pertinent " +"et appliqué que lorsque la normalisation est appliquée à l'ensemble de la carte " +"thermique." #, fuzzy msgid "Has created by" @@ -6165,25 +6042,23 @@ msgstr "Heures de décalage" msgid "How do you want to enter service account credentials?" msgstr "" -"Comment voulez-vous entrer les informations de connexion du compte de " -"service?" +"Comment voulez-vous entrer les informations de connexion du compte de service?" msgid "How many buckets should the data be grouped in." -msgstr "Combien de groupes de données doivent être regroupés?" +msgstr "Combien de groupes de données doivent être regroupés." msgid "How many periods into the future do we want to predict" -msgstr "Combien de périodes voulons-nous prévoir?" +msgstr "Combien de périodes voulons-nous prévoir" msgid "" -"How to display time shifts: as individual lines; as the difference " -"between the main time series and each time shift; as the percentage " -"change; or as the ratio between series and time shifts." +"How to display time shifts: as individual lines; as the difference between the " +"main time series and each time shift; as the percentage change; or as the ratio " +"between series and time shifts." msgstr "" -"Comment afficher les décalages temporels : sous forme de lignes " -"individuelles; sous forme de différence entre la série temporelle " -"principale et chaque décalage temporel; sous forme de pourcentage de " -"variation; ou sous forme de rapport entre les séries et les décalages " -"temporels." +"Comment afficher les décalages temporels : sous forme de lignes individuelles; " +"sous forme de différence entre la série temporelle principale et chaque décalage " +"temporel; sous forme de pourcentage de variation; ou sous forme de rapport entre " +"les séries et les décalages temporels." msgid "Huge" msgstr "Énorme" @@ -6202,32 +6077,28 @@ msgid "Id of root node of the tree." msgstr "ID du nœud racine de l'arborescence." msgid "" -"If Presto or Trino, all the queries in SQL Lab are going to be executed " -"as the currently logged on user who must have permission to run them. If " -"Hive and hive.server2.enable.doAs is enabled, will run the queries as " -"service account, but impersonate the currently logged on user via " -"hive.server2.proxy.user property." +"If Presto or Trino, all the queries in SQL Lab are going to be executed as the " +"currently logged on user who must have permission to run them. If Hive and hive." +"server2.enable.doAs is enabled, will run the queries as service account, but " +"impersonate the currently logged on user via hive.server2.proxy.user property." msgstr "" -"Dans le cas de Presto ou Trino, toutes les requêtes dans SQL Lab seront " -"exécutées en tant qu'utilisateur·rice connecté·e qui doit avoir la " -"permission de les exécuter. Si Hive et hive.server2.enable.doAs sont " -"activés, les requêtes seront exécutées en tant que compte de service, " -"mais en usurpant l'identité de l'utilisateur·rice connecté·e via la " -"propriété hive.server2.proxy.user." +"Dans le cas de Presto ou Trino, toutes les requêtes dans SQL Lab seront exécutées " +"en tant qu'utilisateur·rice connecté·e qui doit avoir la permission de les " +"exécuter. Si Hive et hive.server2.enable.doAs sont activés, les requêtes seront " +"exécutées en tant que compte de service, mais en usurpant l'identité de " +"l'utilisateur·rice connecté·e via la propriété hive.server2.proxy.user." msgid "" -"If Presto, all the queries in SQL Lab are going to be executed as the " -"currently logged on user who must have permission to run them.
If " -"Hive and hive.server2.enable.doAs is enabled, will run the queries as " -"service account, but impersonate the currently logged on user via " -"hive.server2.proxy.user property." +"If Presto, all the queries in SQL Lab are going to be executed as the currently " +"logged on user who must have permission to run them.
If Hive and hive.server2." +"enable.doAs is enabled, will run the queries as service account, but impersonate " +"the currently logged on user via hive.server2.proxy.user property." msgstr "" -"Dans le cas de Presto, toutes les requêtes dans SQL Lab seront exécutées " -"en tant qu'utilisateur·rice connecté·e qui doit avoir la permission de " -"les exécuter.
Si Hive et hive.server2.enable.doAs sont activés, les " -"requêtes seront exécutées en tant que compte de service, mais en usurpant" -" l'identité de l'utilisateur·rice connecté·e via la propriété " -"hive.server2.proxy.user." +"Dans le cas de Presto, toutes les requêtes dans SQL Lab seront exécutées en tant " +"qu'utilisateur·rice connecté·e qui doit avoir la permission de les exécuter.
Si Hive et hive.server2.enable.doAs sont activés, les requêtes seront exécutées " +"en tant que compte de service, mais en usurpant l'identité de l'utilisateur·rice " +"connecté·e via la propriété hive.server2.proxy.user." #, fuzzy msgid "If Table Already Exists" @@ -6237,20 +6108,20 @@ msgid "If a metric is specified, sorting will be done based on the metric value" msgstr "Si une mesure est définie, le tri sera basé sur sa valeur" msgid "" -"If enabled, this control sorts the results/values descending, otherwise " -"it sorts the results ascending." +"If enabled, this control sorts the results/values descending, otherwise it sorts " +"the results ascending." msgstr "" msgid "If selected, please set the schemas allowed for csv upload in Extra." msgstr "" -"Si sélectionné, veuillez indiquer les schémas permis pour le " -"téléversement csv dans Extra." +"Si sélectionné, veuillez indiquer les schémas permis pour le téléversement csv " +"dans Extra." #, fuzzy msgid "Ignore cache when generating report" msgstr "" -"L'exécution de la planification de rapport a échoué à la génération de la" -" copie d'écran." +"L'exécution de la planification de rapport a échoué à la génération de la copie " +"d'écran." msgid "Ignore null locations" msgstr "Ignorer les emplacements nuls" @@ -6266,8 +6137,8 @@ msgstr "Échec du téléchargement de l’image, veuillez actualiser et réessay msgid "Impersonate logged in user (Presto, Trino, Drill, Hive, and GSheets)" msgstr "" -"Se faire passer pour l'utilisateur·rice connecté·e (Presto, Trino, Drill," -" Hive, and GSheets)" +"Se faire passer pour l'utilisateur·rice connecté·e (Presto, Trino, Drill, Hive, " +"and GSheets)" msgid "Impersonate the logged on user" msgstr "Se faire passer pour l'utilisateur·rice connecté·e" @@ -6317,12 +6188,12 @@ msgid "Import saved query failed for an unknown reason." msgstr "L'import de la requête sauvegardée a échoué pour une raison inconnue." msgid "" -"Important! Select this if the table is not already sorted by entity id, " -"else there is no guarantee that all events for each entity are returned." +"Important! Select this if the table is not already sorted by entity id, else there " +"is no guarantee that all events for each entity are returned." msgstr "" -"Important! Sélectionnez cette option si le tableau n’est pas déjà triée " -"par ID d’entité, sinon il n’y a aucune garantie que tous les événements " -"pour chaque entité sont retournés." +"Important! Sélectionnez cette option si le tableau n’est pas déjà triée par ID " +"d’entité, sinon il n’y a aucune garantie que tous les événements pour chaque " +"entité sont retournés." #, fuzzy msgid "In" @@ -6378,13 +6249,12 @@ msgstr "Rayon intérieur du trou du beigne" msgid "Input custom width in pixels" msgstr "" -"Visualise les mots dans une colonne qui apparaît le plus souvent. La " -"police plus grosse correspond à une fréquence plus élevée." +"Visualise les mots dans une colonne qui apparaît le plus souvent. La police plus " +"grosse correspond à une fréquence plus élevée" msgid "Input field supports custom rotation. e.g. 30 for 30°" msgstr "" -"Le champ d’entrée prend en charge la rotation personnalisée, p. ex., 30 " -"pour 30°" +"Le champ d’entrée prend en charge la rotation personnalisée, p. ex., 30 pour 30°" #, fuzzy msgid "Intensity" @@ -6399,8 +6269,7 @@ msgstr "Le rayon d’intensité est le rayon auquel le poids est distribué" msgid "Intensity is the value multiplied by the weight to obtain the final weight" msgstr "" -"L’intensité est la valeur multipliée par le poids pour obtenir le poids " -"final" +"L’intensité est la valeur multipliée par le poids pour obtenir le poids final" #, fuzzy msgid "Interval" @@ -6430,11 +6299,11 @@ msgstr "Intensité" #, fuzzy msgid "" -"Invalid Connection String: Expecting String of the form " -"'ocient://user:pass@host:port/database'." +"Invalid Connection String: Expecting String of the form 'ocient://user:pass@host:" +"port/database'." msgstr "" -"Chaîne de connexion non valide : la chaîne attendue est de la forme « " -"ocient://user:pass@host:port/database »." +"Chaîne de connexion non valide : la chaîne attendue est de la forme « ocient://" +"user:pass@host:port/database »." msgid "Invalid JSON" msgstr "JSON invalide" @@ -6448,23 +6317,20 @@ msgstr "Certificat invalide" #, fuzzy msgid "" -"Invalid connection string, a valid string usually follows: " -"backend+driver://user:password@database-host/database-name" +"Invalid connection string, a valid string usually follows: backend+driver://user:" +"password@database-host/database-name" msgstr "" -"Chaine de connexion incorrecte, une chaine correcte s'écrit " -"habituellement : « backend+driver://user:password@database-host/database-" -"name »" +"Chaine de connexion incorrecte, une chaine correcte s'écrit habituellement : " +"« backend+driver://user:password@database-host/database-name »" msgid "" -"Invalid connection string, a valid string usually " -"follows:'DRIVER://USER:PASSWORD@DB-HOST/DATABASE-" -"NAME'

Example:'postgresql://user:password@your-postgres-" -"db/database'

" +"Invalid connection string, a valid string usually follows:'DRIVER://USER:" +"PASSWORD@DB-HOST/DATABASE-NAME'

Example:'postgresql://user:password@your-" +"postgres-db/database'

" msgstr "" -"Chaine de connexion incorrecte, une chaine correcte s'écrit " -"habituellement : « DRIVER://USER:PASSWORD@DB-HOST/DATABASE-NAME " -"»

Exemple : « postgresql://user:password@your-postgres-db/database " -"»

" +"Chaine de connexion incorrecte, une chaine correcte s'écrit habituellement : " +"« DRIVER://USER:PASSWORD@DB-HOST/DATABASE-NAME »

Exemple : « postgresql://user:" +"password@your-postgres-db/database »

" msgid "Invalid cron expression" msgstr "Expression CRON invalide" @@ -6474,12 +6340,7 @@ msgid "Invalid cumulative operator: %(operator)s" msgstr "Operateur cumulatif invalide : %(operator)s" msgid "Invalid currency code in saved metrics" -msgstr "" -"Sélectionnez les graphiques auxquels vous souhaitez appliquer des filtres" -" croisés lorsque vous interagissez avec ce graphique. Vous pouvez " -"sélectionner «Tous les graphiques» pour appliquer des filtres à tous les " -"graphiques qui utilisent le même ensemble de données ou contiennent le " -"même nom de colonne dans le tableau de bord." +msgstr "Code de devise invalide dans les métriques sauvegardés" msgid "Invalid date/timestamp format" msgstr "Format d’horodatage invalide" @@ -6528,7 +6389,7 @@ msgstr "Type de résultat invalide : %(result_type)s" #, python-format msgid "Invalid rolling_type: %(type)s" -msgstr "rolling_type invalide : %(type)s" +msgstr "Le rolling_type est invalide: %(type)s" #, fuzzy, python-format msgid "Invalid spatial point encountered: %(latlong)s" @@ -6559,17 +6420,17 @@ msgid "Is custom tag" msgstr "Configurer un intervalle de temps personnalisée" msgid "Is dimension" -msgstr "est une Dimension" +msgstr "Est une Dimension" #, fuzzy msgid "Is false" msgstr "est faux" msgid "Is favorite" -msgstr "est favori" +msgstr "Est favori" msgid "Is filterable" -msgstr "est filtrable" +msgstr "Est filtrable" #, fuzzy msgid "Is not null" @@ -6580,13 +6441,13 @@ msgid "Is null" msgstr "est nul" msgid "Is tagged" -msgstr "est étiqueté" +msgstr "Est étiqueté" msgid "Is temporal" -msgstr "est temporel" +msgstr "Est temporel" msgid "Is true" -msgstr "est vrai" +msgstr "Est vrai" #, fuzzy msgid "Isoband" @@ -6599,8 +6460,7 @@ msgstr "Hors ligne" #, fuzzy msgid "Issue 1000 - The dataset is too large to query." msgstr "" -"Problème 1000 - L'ensemble de données est trop volumineux pour être " -"interrogé." +"Problème 1000 - L'ensemble de données est trop volumineux pour être interrogé." #, fuzzy msgid "Issue 1001 - The database is under an unusual load." @@ -6626,19 +6486,17 @@ msgid "JSON metadata is invalid!" msgstr "Les méta-données JSON ne sont pas valides" msgid "" -"JSON string containing additional connection configuration. This is used " -"to provide connection information for systems like Hive, Presto and " -"BigQuery which do not conform to the username:password syntax normally " -"used by SQLAlchemy." +"JSON string containing additional connection configuration. This is used to " +"provide connection information for systems like Hive, Presto and BigQuery which do " +"not conform to the username:password syntax normally used by SQLAlchemy." msgstr "" "Chaîne JSON qui contient des informations de configuration de connexion " -"supplémentaires. Ceci est utilisé pour fournir des informations de " -"connexion pour des systèmes comme Hive, Presto et BigQuery qui ne se " -"conforment pas à la syntaxe utilisateur : normalement utilisée par " -"SQLAlchemy." +"supplémentaires. Ceci est utilisé pour fournir des informations de connexion pour " +"des systèmes comme Hive, Presto et BigQuery qui ne se conforment pas à la syntaxe " +"utilisateur : normalement utilisée par SQLAlchemy." msgid "JUL" -msgstr "JUIL." +msgstr "JUIL" msgid "JUN" msgstr "JUIN" @@ -6816,11 +6674,11 @@ msgid "Layout type of tree" msgstr "Type de disposition de l’arbre" msgid "" -"Leaf nodes that represent fewer than this number of events will be " -"initially hidden in the visualization" +"Leaf nodes that represent fewer than this number of events will be initially " +"hidden in the visualization" msgstr "" -"Les nœuds feuille qui représentent moins que ce nombre d’événements " -"seront initialement masqués dans la visualisation" +"Les nœuds feuille qui représentent moins que ce nombre d’événements seront " +"initialement masqués dans la visualisation" msgid "Least recently modified" msgstr "Dernière modification en date" @@ -6833,9 +6691,7 @@ msgid "Left Margin" msgstr "Marge gauche" msgid "Left margin, in pixels, allowing for more room for axis labels" -msgstr "" -"Marge inférieure, en pixels, offrant plus d’espace pour les étiquettes " -"d’axe" +msgstr "Marge inférieure, en pixels, offrant plus d’espace pour les étiquettes d’axe" msgid "Left to Right" msgstr "Gauche à droite" @@ -6899,12 +6755,11 @@ msgid "Limit type" msgstr "Type de limite" msgid "" -"Limiting rows may result in incomplete data and misleading charts. " -"Consider filtering or grouping source/target names instead." +"Limiting rows may result in incomplete data and misleading charts. Consider " +"filtering or grouping source/target names instead." msgstr "" -"Limiter les rangées peut entraîner des données incomplètes et des " -"graphiques trompeurs. Envisagez plutôt de filtrer ou de regrouper les " -"noms de source/cible." +"Limiter les rangées peut entraîner des données incomplètes et des graphiques " +"trompeurs. Envisagez plutôt de filtrer ou de regrouper les noms de source/cible." #, fuzzy msgid "Limits the number of cells that get retrieved." @@ -6914,27 +6769,25 @@ msgid "Limits the number of rows that get displayed." msgstr "Limite le nombre de lignes qui sont affichées." msgid "" -"Limits the number of series that get displayed. A joined subquery (or an " -"extra phase where subqueries are not supported) is applied to limit the " -"number of series that get fetched and rendered. This feature is useful " -"when grouping by high cardinality column(s) though does increase the " -"query complexity and cost." +"Limits the number of series that get displayed. A joined subquery (or an extra " +"phase where subqueries are not supported) is applied to limit the number of series " +"that get fetched and rendered. This feature is useful when grouping by high " +"cardinality column(s) though does increase the query complexity and cost." msgstr "" -"Limite le nombre de séries affichées. Une sous-requête associée (ou une " -"phase supplémentaire dans laquelle les sous-requêtes ne sont pas prises " -"en charge) est appliquée pour limiter le nombre de séries qui sont " -"récupérées et affichées. Cette fonctionnalité est utile lors du " -"regroupement par colonne(s) de cardinalité(s) élevée(s) bien que cela " -"augmente la complexité et le coût de la requête." +"Limite le nombre de séries affichées. Une sous-requête associée (ou une phase " +"supplémentaire dans laquelle les sous-requêtes ne sont pas prises en charge) est " +"appliquée pour limiter le nombre de séries qui sont récupérées et affichées. Cette " +"fonctionnalité est utile lors du regroupement par colonne(s) de cardinalité(s) " +"élevée(s) bien que cela augmente la complexité et le coût de la requête." msgid "" -"Limits the number of the rows that are computed in the query that is the " -"source of the data used for this chart." +"Limits the number of the rows that are computed in the query that is the source of " +"the data used for this chart." msgstr "" -"Définissez une fonction javascript qui reçoit le tableau de données " -"utilisé dans la visualisation et qui doit renvoyer une version modifiée " -"de ce tableau. Cette fonction peut être utilisée pour modifier les " -"propriétés des données, filtrer ou enrichir le tableau." +"Définissez une fonction javascript qui reçoit le tableau de données utilisé dans " +"la visualisation et qui doit renvoyer une version modifiée de ce tableau. Cette " +"fonction peut être utilisée pour modifier les propriétés des données, filtrer ou " +"enrichir le tableau." #, fuzzy msgid "Line" @@ -6948,16 +6801,15 @@ msgid "Line Style" msgstr "Style de ligne" msgid "" -"Line chart is used to visualize measurements taken over a given category." -" Line chart is a type of chart which displays information as a series of " -"data points connected by straight line segments. It is a basic type of " -"chart common in many fields." +"Line chart is used to visualize measurements taken over a given category. Line " +"chart is a type of chart which displays information as a series of data points " +"connected by straight line segments. It is a basic type of chart common in many " +"fields." msgstr "" -"Le graphique linéaire est utilisé pour visualiser les mesures prises sur " -"une catégorie donnée. Le graphique linéaire est un type de graphique qui " -"affiche les informations sous forme de série de points de données reliés " -"par des segments linéaires. Il s’agit d’un type de tableau de base commun" -" dans de nombreux champs." +"Le graphique linéaire est utilisé pour visualiser les mesures prises sur une " +"catégorie donnée. Le graphique linéaire est un type de graphique qui affiche les " +"informations sous forme de série de points de données reliés par des segments " +"linéaires. Il s’agit d’un type de tableau de base commun dans de nombreux champs." msgid "Line interpolation as defined by d3.js" msgstr "Interpolation de lignes telle que définie par d3.js" @@ -6995,9 +6847,7 @@ msgid "List Unique Values" msgstr "Liste des valeurs uniques" msgid "List of extra columns made available in JavaScript functions" -msgstr "" -"Liste des colonnes supplémentaires disponibles dans les fonctions " -"JavaScript" +msgstr "Liste des colonnes supplémentaires disponibles dans les fonctions JavaScript" msgid "List of n+1 values for bucketing metric into n buckets." msgstr "Liste des valeurs n+1 pour le classement des mesures en n seaux." @@ -7058,9 +6908,7 @@ msgid "Logarithmic scale on secondary y-axis" msgstr "Échelle logarithmique sur axe des ordonnées secondaire" msgid "Logarithmic x-axis" -msgstr "" -"Taille minimale du rayon du cercle, en pixels. Lorsque le niveau de zoom " -"change, cela permet de s'assurer que le cercle respecte ce rayon minimal." +msgstr "Axe X logarithmique" msgid "Logarithmic y-axis" msgstr "Axe des ordonnées logarithmique" @@ -7126,22 +6974,18 @@ msgid "Main Datetime Column" msgstr "Colonne principale d’horodatage" msgid "" -"Make sure that the controls are configured properly and the datasource " -"contains data for the selected time range" +"Make sure that the controls are configured properly and the datasource contains " +"data for the selected time range" msgstr "" -"Assurez-vous que les commandes sont configurées correctement et que la " -"source de données contient des données pour la plage de temps " -"sélectionnée" +"Assurez-vous que les commandes sont configurées correctement et que la source de " +"données contient des données pour la plage de temps sélectionnée" msgid "Make the x-axis categorical" msgstr "" -msgid "" -"Malformed request. slice_id or table_name and db_name arguments are " -"expected" +msgid "Malformed request. slice_id or table_name and db_name arguments are expected" msgstr "" -"Requête malformée. Les arguments slice_id ou table_name et db_name sont " -"attendus" +"Requête malformée. Les arguments slice_id ou table_name et db_name sont attendus" msgid "Manage" msgstr "Gérer" @@ -7184,8 +7028,8 @@ msgstr "Marge" msgid "Mark a column as temporal in \"Edit datasource\" modal" msgstr "" -"Marquer une colonne comme temporelle dans le modal « Modifier la source " -"de données »" +"Marquer une colonne comme temporelle dans le modal « Modifier la source de " +"données »" #, fuzzy msgid "Marker" @@ -7234,11 +7078,11 @@ msgid "Maximum Radius" msgstr "Rayon maximal" msgid "" -"Maximum radius size of the circle, in pixels. As the zoom level changes, " -"this insures that the circle respects this maximum radius." +"Maximum radius size of the circle, in pixels. As the zoom level changes, this " +"insures that the circle respects this maximum radius." msgstr "" -"Taille maximale du rayon du cercle, en pixels. Lorsque le niveau de zoom " -"change, cela permet de s'assurer que le cercle respecte ce rayon maximal." +"Taille maximale du rayon du cercle, en pixels. Lorsque le niveau de zoom change, " +"cela permet de s'assurer que le cercle respecte ce rayon maximal." #, fuzzy msgid "Maximum value" @@ -7261,18 +7105,14 @@ msgid "Median" msgstr "Médiane" msgid "" -"Median edge width, the thickest edge will be 4 times thicker than the " -"thinnest." +"Median edge width, the thickest edge will be 4 times thicker than the thinnest." msgstr "" -"Largeur médiane du bord, le bord le plus épais sera 4 fois plus épais que" -" le bord le plus mince." +"Largeur médiane du bord, le bord le plus épais sera 4 fois plus épais que le bord " +"le plus mince." -msgid "" -"Median node size, the largest node will be 4 times larger than the " -"smallest" +msgid "Median node size, the largest node will be 4 times larger than the smallest" msgstr "" -"Taille du nœud médiane, le plus grand nœud sera 4 fois plus grand que le " -"plus petit" +"Taille du nœud médiane, le plus grand nœud sera 4 fois plus grand que le plus petit" #, fuzzy msgid "Median values" @@ -7370,30 +7210,28 @@ msgstr "Mesure utilisée pour contrôler la hauteur" #, fuzzy msgid "" -"Metric used to define how the top series are sorted if a series or cell " -"limit is present. If undefined reverts to the first metric (where " -"appropriate)." +"Metric used to define how the top series are sorted if a series or cell limit is " +"present. If undefined reverts to the first metric (where appropriate)." msgstr "" -"Mesure utilisée pour définir comment les séries principales sont triées " -"si une limite de série ou de cellule est définie. Si indéfini, la " -"première mesure sera utilisée (si approprié)." +"Mesure utilisée pour définir comment les séries principales sont triées si une " +"limite de série ou de cellule est définie. Si indéfini, la première mesure sera " +"utilisée (si approprié)." msgid "" -"Metric used to define how the top series are sorted if a series or row " -"limit is present. If undefined reverts to the first metric (where " -"appropriate)." +"Metric used to define how the top series are sorted if a series or row limit is " +"present. If undefined reverts to the first metric (where appropriate)." msgstr "" -"Mesure utilisée pour définir comment les séries principales sont triées " -"si une limite de série ou de rangée est définie. Si indéfini, la première" -" mesure sera utilisée (si approprié)." +"Mesure utilisée pour définir comment les séries principales sont triées si une " +"limite de série ou de rangée est définie. Si indéfini, la première mesure sera " +"utilisée (si approprié)." #, fuzzy msgid "" -"Metric used to order the limit if a series limit is present. If undefined" -" reverts to the first metric (where appropriate)." +"Metric used to order the limit if a series limit is present. If undefined reverts " +"to the first metric (where appropriate)." msgstr "" -"Mesure utilisée pour ordonner la limite si une limite de série est " -"présente. Si indéfini, la première mesure sera utilisée (si approprié)." +"Mesure utilisée pour ordonner la limite si une limite de série est présente. Si " +"indéfini, la première mesure sera utilisée (si approprié)." msgid "Metrics" msgstr "Mesures" @@ -7443,11 +7281,11 @@ msgid "Minimum leaf node event count" msgstr "Nombre minimum d'événements dans les nœuds de feuilles" msgid "" -"Minimum radius size of the circle, in pixels. As the zoom level changes, " -"this insures that the circle respects this minimum radius." +"Minimum radius size of the circle, in pixels. As the zoom level changes, this " +"insures that the circle respects this minimum radius." msgstr "" -"Taille minimale du rayon du cercle, en pixels. Lorsque le niveau de zoom " -"change, cela permet de s'assurer que le cercle respecte ce rayon minimal." +"Taille minimale du rayon du cercle, en pixels. Lorsque le niveau de zoom change, " +"cela permet de s'assurer que le cercle respecte ce rayon minimal." msgid "Minimum threshold in percentage points for showing labels." msgstr "Seuil minimum en points de pourcentage pour afficher les étiquettes." @@ -7557,11 +7395,10 @@ msgid "Multiple filtering" msgstr "Filtrage multiple" msgid "" -"Multiple formats accepted, look the geopy.points Python library for more " -"details" +"Multiple formats accepted, look the geopy.points Python library for more details" msgstr "" -"Plusieurs formats sont acceptés, consultez la bibliothèque Python " -"geopy.points pour plus de détails." +"Plusieurs formats sont acceptés, consultez la bibliothèque Python geopy.points " +"pour plus de détails" #, fuzzy msgid "Multiplier" @@ -7596,14 +7433,14 @@ msgid "My metric" msgstr "Ma mesure" msgid "N/A" -msgstr "S. O." +msgstr "S.O." #, fuzzy msgid "NOT GROUPED BY" msgstr "NOT GROUPED BY" msgid "NOV" -msgstr "Nov." +msgstr "NOV" msgid "NOW" msgstr "MAINTENANT" @@ -7776,8 +7613,8 @@ msgstr "Aucune donnée" msgid "No data after filtering or data is NULL for the latest time record" msgstr "" -"Pas de données après le filtrage ou données NULLES pour le dernier " -"enregistrement temporel" +"Pas de données après le filtrage ou données NULLES pour le dernier enregistrement " +"temporel" msgid "No data in file" msgstr "Pas de données dans le fichier" @@ -7789,10 +7626,7 @@ msgid "No description available." msgstr "Aucune description disponible." msgid "No entities have this tag currently assigned" -msgstr "" -"Nous ne pouvons pas nous connecter à votre base de données. Cliquez sur " -"«Voir plus» pour obtenir des renseignements fournis par la base de " -"données qui pourraient aider à résoudre le problème." +msgstr "Aucune entité n'a actuellement ce tag assigné" msgid "No filter" msgstr "Aucun filtre" @@ -7843,14 +7677,14 @@ msgid "No results were returned for this query" msgstr "Aucun résultat n'a été obtenu pour cette requête" msgid "" -"No results were returned for this query. If you expected results to be " -"returned, ensure any filters are configured properly and the datasource " -"contains data for the selected time range." +"No results were returned for this query. If you expected results to be returned, " +"ensure any filters are configured properly and the datasource contains data for " +"the selected time range." msgstr "" -"Aucun résultat n'a été renvoyé pour cette requête. Si vous vous attendiez" -" à ce que des résultats soient renvoyés, assurez-vous que les filtres " -"sont configurés correctement et que la source de données contient des " -"données pour la période sélectionnée." +"Aucun résultat n'a été renvoyé pour cette requête. Si vous vous attendiez à ce que " +"des résultats soient renvoyés, assurez-vous que les filtres sont configurés " +"correctement et que la source de données contient des données pour la période " +"sélectionnée." #, fuzzy msgid "No rows were returned for this dataset" @@ -7873,12 +7707,12 @@ msgid "No saved queries yet" msgstr "Aucune requête sauvegardée pour l'instant" msgid "No stored results found, you need to re-run your query" -msgstr "Aucun résultat stocké n'a été trouvé, vous devez réexécuter votre requête." +msgstr "Aucun résultat stocké n'a été trouvé, vous devez réexécuter votre requête" msgid "No such column found. To filter on a metric, try the Custom SQL tab." msgstr "" -"Aucune colonne de ce type n'a été trouvée. Pour filtrer sur une mesure, " -"essayez l'onglet Custom SQL." +"Aucune colonne de ce type n'a été trouvée. Pour filtrer sur une mesure, essayez " +"l'onglet Custom SQL." #, fuzzy msgid "No table columns" @@ -7896,8 +7730,8 @@ msgstr "Aucun validateur trouvé (configuré pour le moteur)" #, fuzzy, python-format msgid "" -"No validator named %(validator_name)s found (configured for the " -"%(engine_spec)s engine)" +"No validator named %(validator_name)s found (configured for the %(engine_spec)s " +"engine)" msgstr "Aucun validateur trouvé (configuré pour le moteur)" msgid "Node label position" @@ -8011,14 +7845,12 @@ msgstr "Format des numéros" msgid "" "Number bounds used for color encoding from red to blue.\n" -" Reverse the numbers for blue to red. To get pure red or " -"blue,\n" +" Reverse the numbers for blue to red. To get pure red or blue,\n" " you can enter either only min or max." msgstr "" -"Bornes numériques utilisées pour le codage des couleurs du rouge au bleu." -" Inversez les nombres pour le bleu vers le rouge. Pour " -"obtenir un rouge ou un bleu pur, vous pouvez saisir uniquement min ou " -"max." +"Bornes numériques utilisées pour le codage des couleurs du rouge au " +"bleu. Inversez les nombres pour le bleu vers le rouge. Pour obtenir " +"un rouge ou un bleu pur, vous pouvez saisir uniquement min ou max." #, fuzzy msgid "Number format" @@ -8045,11 +7877,11 @@ msgid "Number of decimal places with which to display p-values" msgstr "Nombre de décimales pour l'affichage des valeurs p" msgid "" -"Number of periods to compare against. You can use negative numbers to " -"compare from the beginning of the time range." +"Number of periods to compare against. You can use negative numbers to compare from " +"the beginning of the time range." msgstr "" -"Utiliser les mesures comme groupe de niveau supérieur pour les colonnes " -"ou les lignes" +"Nombre de période à comparer. Vous pouvez utiliser des nombres négatifs pour " +"comparer au début de l'intervalle temporel." msgid "Number of periods to ratio against" msgstr "Nombre de périodes à rapporter" @@ -8066,13 +7898,10 @@ msgstr "Nombre de segments divisés sur l'axe" msgid "Number of steps to take between ticks when displaying the X scale" msgstr "" -"Nombre de pas entre les points de repère lors de l'affichage de l'échelle" -" des X" +"Nombre de pas entre les points de repère lors de l'affichage de l'échelle des X" msgid "Number of steps to take between ticks when displaying the Y scale" -msgstr "" -"Nombre de pas entre les points de repère lors de l'affichage de l'échelle" -" Y" +msgstr "Nombre de pas entre les points de repère lors de l'affichage de l'échelle Y" #, fuzzy msgid "Numeric column used to calculate the histogram." @@ -8107,20 +7936,19 @@ msgid "On dashboards" msgstr "tableaux de bord " msgid "" -"One or many columns to group by. High cardinality groupings should " -"include a series limit to limit the number of fetched and rendered " -"series." +"One or many columns to group by. High cardinality groupings should include a " +"series limit to limit the number of fetched and rendered series." msgstr "" -"Une ou plusieurs colonnes à regrouper. Les regroupements à forte " -"cardinalité doivent inclure une limite de séries afin de limiter le " -"nombre de séries recherchées et rendues." +"Une ou plusieurs colonnes à regrouper. Les regroupements à forte cardinalité " +"doivent inclure une limite de séries afin de limiter le nombre de séries " +"recherchées et rendues." msgid "" -"One or many controls to group by. If grouping, latitude and longitude " -"columns must be present." +"One or many controls to group by. If grouping, latitude and longitude columns must " +"be present." msgstr "" -"Un ou plusieurs contrôles à regrouper. En cas de regroupement, les " -"colonnes de latitude et de longitude doivent être présentes." +"Un ou plusieurs contrôles à regrouper. En cas de regroupement, les colonnes de " +"latitude et de longitude doivent être présentes." msgid "One or many controls to pivot as columns" msgstr "Un ou plusieurs contrôles à pivoter en tant que colonnes" @@ -8148,8 +7976,8 @@ msgstr "Une ou plusieurs mesures n'existent pas" msgid "One or more parameters needed to configure a database are missing." msgstr "" -"Un ou plusieurs paramètres nécessaires à la configuration d'une base de " -"données sont manquants." +"Un ou plusieurs paramètres nécessaires à la configuration d'une base de données " +"sont manquants." #, fuzzy msgid "One or more parameters specified in the query are malformed." @@ -8172,23 +8000,23 @@ msgstr "Seules les instructions « SELECT » sont autorisées" msgid "Only applies when \"Label Type\" is not set to a percentage." msgstr "" -"S'applique uniquement lorsque le « Type d'étiquette » n'est pas réglé sur" -" un pourcentage." +"S'applique uniquement lorsque le « Type d'étiquette » n'est pas réglé sur un " +"pourcentage." msgid "Only applies when \"Label Type\" is set to show values." msgstr "" -"Ne s'applique que lorsque le « Type d'étiquette » est réglé sur " -"l'affichage des valeurs." +"Ne s'applique que lorsque le « Type d'étiquette » est réglé sur l'affichage des " +"valeurs." msgid "Only selected panels will be affected by this filter" msgstr "Seuls les panneaux sélectionnés seront affectés par ce filtre" msgid "" -"Only show the total value on the stacked chart, and not show on the " -"selected category" +"Only show the total value on the stacked chart, and not show on the selected " +"category" msgstr "" -"N'affichez que la valeur totale sur le graphique empilé, et pas sur la " -"catégorie sélectionnée." +"N'affichez que la valeur totale sur le graphique empilé, et pas sur la catégorie " +"sélectionnée" msgid "Only single queries supported" msgstr "Seules les requêtes uniques sont prises en charge" @@ -8201,9 +8029,7 @@ msgid "Opacity" msgstr "Opacité" msgid "Opacity of Area Chart. Also applies to confidence band." -msgstr "" -"Opacité du graphique en aires. S'applique également à la bande de " -"confiance." +msgstr "Opacité du graphique en aires. S'applique également à la bande de confiance." msgid "Opacity of all clusters, points, and labels. Between 0 and 1." msgstr "Opacité de tous les groupes, points et étiquettes. Entre 0 et 1." @@ -8227,16 +8053,16 @@ msgid "Open query in SQL Lab" msgstr "Ouvrir une requête dans SQL Lab" msgid "" -"Operate the database in asynchronous mode, meaning that the queries are " -"executed on remote workers as opposed to on the web server itself. This " -"assumes that you have a Celery worker setup as well as a results backend." -" Refer to the installation docs for more information." +"Operate the database in asynchronous mode, meaning that the queries are executed " +"on remote workers as opposed to on the web server itself. This assumes that you " +"have a Celery worker setup as well as a results backend. Refer to the installation " +"docs for more information." msgstr "" -"Exploiter la base de données en mode asynchrone, ce qui signifie que les " -"requêtes sont exécutées sur des travailleurs distants plutôt que sur le " -"serveur web lui-même. Cela suppose que vous disposiez d'un collaborateur " -"Celery ainsi que d'un programme dorsal de résultats. Reportez-vous à la " -"documentation d'installation pour plus d'informations." +"Exploiter la base de données en mode asynchrone, ce qui signifie que les requêtes " +"sont exécutées sur des travailleurs distants plutôt que sur le serveur web lui-" +"même. Cela suppose que vous disposiez d'un collaborateur Celery ainsi que d'un " +"programme dorsal de résultats. Reportez-vous à la documentation d'installation " +"pour plus d'informations." msgid "Operator" msgstr "Opérateur" @@ -8246,11 +8072,11 @@ msgid "Operator undefined for aggregator: %(name)s" msgstr "Opérateur indéfini pour l'agrégat : %(name)s" msgid "" -"Optional CA_BUNDLE contents to validate HTTPS requests. Only available on" -" certain database engines." +"Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain " +"database engines." msgstr "" -"Contenu CA_BUNDLE optionnel pour valider les requêtes HTTPS. Disponible " -"uniquement sur certains moteurs de base de données." +"Contenu CA_BUNDLE optionnel pour valider les requêtes HTTPS. Disponible uniquement " +"sur certains moteurs de base de données." #, fuzzy msgid "Optional d3 date format string" @@ -8272,8 +8098,8 @@ msgstr "Options" msgid "Or choose from a list of other databases we support:" msgstr "" -"Ou choisissez parmi une liste d'autres bases de données que nous prenons " -"en charge :" +"Ou choisissez parmi une liste d'autres bases de données que nous prenons en " +"charge :" msgid "Order by entity id" msgstr "Ordre par ID d’entité" @@ -8336,45 +8162,45 @@ msgid "Overlap" msgstr "Carte du monde" msgid "" -"Overlay one or more timeseries from a relative time period. Expects " -"relative time deltas in natural language (example: 24 hours, 7 days, 52 " -"weeks, 365 days). Free text is supported." +"Overlay one or more timeseries from a relative time period. Expects relative time " +"deltas in natural language (example: 24 hours, 7 days, 52 weeks, 365 days). Free " +"text is supported." msgstr "" -"Superposez une ou plusieurs séries temporelles à partir d'une période de " -"temps relative. Les deltas temporels relatifs doivent être exprimés en " -"langage naturel (exemple : 24 heures, 7 jours, 52 semaines, 365 jours). " -"Le texte libre est pris en charge." +"Superposez une ou plusieurs séries temporelles à partir d'une période de temps " +"relative. Les deltas temporels relatifs doivent être exprimés en langage naturel " +"(exemple : 24 heures, 7 jours, 52 semaines, 365 jours). Le texte libre est pris en " +"charge." #, fuzzy msgid "" -"Overlay one or more timeseries from a relative time period. Expects " -"relative time deltas in natural language (example: 24 hours, 7 days, 52 " -"weeks, 365 days). Free text is supported." +"Overlay one or more timeseries from a relative time period. Expects relative time " +"deltas in natural language (example: 24 hours, 7 days, 52 weeks, 365 days). Free " +"text is supported." msgstr "" -"Superposez une ou plusieurs séries temporelles à partir d'une période de " -"temps relative. Les deltas temporels relatifs doivent être exprimés en " -"langage naturel (exemple : 24 heures, 7 jours, 52 semaines, 365 jours). " -"Le texte libre est pris en charge." +"Superposez une ou plusieurs séries temporelles à partir d'une période de temps " +"relative. Les deltas temporels relatifs doivent être exprimés en langage naturel " +"(exemple : 24 heures, 7 jours, 52 semaines, 365 jours). Le texte libre est pris en " +"charge." #, fuzzy msgid "" -"Overlay results from a relative time period. Expects relative time deltas" -" in natural language (example: 24 hours, 7 days, 52 weeks, 365 days). " -"Free text is supported. Use \"Inherit range from time filters\" to shift " -"the comparison time range by the same length as your time range and use " -"\"Custom\" to set a custom comparison range." +"Overlay results from a relative time period. Expects relative time deltas in " +"natural language (example: 24 hours, 7 days, 52 weeks, 365 days). Free text is " +"supported. Use \"Inherit range from time filters\" to shift the comparison time " +"range by the same length as your time range and use \"Custom\" to set a custom " +"comparison range." msgstr "" -"Superposez une ou plusieurs séries temporelles à partir d'une période de " -"temps relative. Les deltas temporels relatifs doivent être exprimés en " -"langage naturel (exemple : 24 heures, 7 jours, 52 semaines, 365 jours). " -"Le texte libre est pris en charge." +"Superposez une ou plusieurs séries temporelles à partir d'une période de temps " +"relative. Les deltas temporels relatifs doivent être exprimés en langage naturel " +"(exemple : 24 heures, 7 jours, 52 semaines, 365 jours). Le texte libre est pris en " +"charge." msgid "" -"Overlays a hexagonal grid on a map, and aggregates data within the " -"boundary of each cell." +"Overlays a hexagonal grid on a map, and aggregates data within the boundary of " +"each cell." msgstr "" -"Superpose une grille hexagonale sur une carte et agrège les données à " -"l'intérieur du périmètre de chaque cellule." +"Superpose une grille hexagonale sur une carte et agrège les données à l'intérieur " +"du périmètre de chaque cellule." #, fuzzy msgid "Override time grain" @@ -8415,16 +8241,16 @@ msgstr "Les propriétaires ne sont pas valides" msgid "Owners is a list of users who can alter the dashboard." msgstr "" -"Les propriétaires est une liste d'utilisateur·rice·s qui peuvent modifier" -" le tableau de bord." +"Les propriétaires est une liste d'utilisateur·rice·s qui peuvent modifier le " +"tableau de bord." msgid "" -"Owners is a list of users who can alter the dashboard. Searchable by name" -" or username." +"Owners is a list of users who can alter the dashboard. Searchable by name or " +"username." msgstr "" -"Les propriétaires sont une liste des utilisateurs qui peuvent modifier le" -" tableau de bord. Il est possible d'effectuer une recherche par nom ou " -"par nom d'utilisateur." +"Les propriétaires sont une liste des utilisateurs qui peuvent modifier le tableau " +"de bord. Il est possible d'effectuer une recherche par nom ou par nom " +"d'utilisateur." msgid "Page length" msgstr "Longueur de la page" @@ -8479,11 +8305,11 @@ msgid "Partition Threshold" msgstr "Seuil de partition" msgid "" -"Partitions whose height to parent height proportions are below this value" -" are pruned" +"Partitions whose height to parent height proportions are below this value are " +"pruned" msgstr "" -"Les partitions dont les proportions de hauteur par rapport à la hauteur " -"du parent sont inférieures à cette valeur sont élaguées." +"Les partitions dont les proportions de hauteur par rapport à la hauteur du parent " +"sont inférieures à cette valeur sont élaguées" msgid "Password" msgstr "Mot de passe" @@ -8494,8 +8320,7 @@ msgstr "Coller la clé privée ici" #, fuzzy msgid "Paste content of service credentials JSON file here" msgstr "" -"Collez le contenu du fichier JSON des informations d'identification du " -"service ici" +"Collez le contenu du fichier JSON des informations d'identification du service ici" msgid "Paste the shareable Google Sheet URL here" msgstr "Coller ici l'URL partageable de Google Sheet" @@ -8576,8 +8401,8 @@ msgstr "Ensemble de données physiques" msgid "Pick a dimension from which categorical colors are defined" msgstr "" -"Choisissez une dimension à partir de laquelle les couleurs catégorielles " -"sont définies." +"Choisissez une dimension à partir de laquelle les couleurs catégorielles sont " +"définies" msgid "Pick a metric for x, y and size" msgstr "Choisissez une mesure pour x, y et la taille" @@ -8593,7 +8418,7 @@ msgid "Pick a nickname for how the database will display in Superset." msgstr "Choisissez un surnom pour l'affichage de la base de données dans Superset." msgid "Pick a set of deck.gl charts to layer on top of one another" -msgstr "Choisissez un ensemble de graphiques deck.gl à superposer." +msgstr "Choisissez un ensemble de graphiques deck.gl à superposer" msgid "Pick a title for you annotation." msgstr "Choisissez un titre pour votre annotation." @@ -8608,12 +8433,11 @@ msgid "Pick exactly 2 columns as [Source / Target]" msgstr "Choisissez exactement deux colonnes comme [Source / Cible]" msgid "" -"Pick one or more columns that should be shown in the annotation. If you " -"don't select a column all of them will be shown." +"Pick one or more columns that should be shown in the annotation. If you don't " +"select a column all of them will be shown." msgstr "" -"Choisissez une ou plusieurs colonnes qui doivent être affichées dans " -"l'annotation. Si vous ne sélectionnez pas de colonne, toutes les colonnes" -" seront affichées." +"Choisissez une ou plusieurs colonnes qui doivent être affichées dans l'annotation. " +"Si vous ne sélectionnez pas de colonne, toutes les colonnes seront affichées." msgid "Pick your favorite markup language" msgstr "Choisissez votre langage de balisage préféré" @@ -8663,39 +8487,37 @@ msgid "Please DO NOT overwrite the \"filter_scopes\" key." msgstr "Veuillez NE PAS écraser la touche « filter_scopes »." msgid "" -"Please check your query and confirm that all template parameters are " -"surround by double braces, for example, \"{{ ds }}\". Then, try running " -"your query again." +"Please check your query and confirm that all template parameters are surround by " +"double braces, for example, \"{{ ds }}\". Then, try running your query again." msgstr "" -"Veuillez vérifier votre requête et confirmer que tous les paramètres du " -"modèle sont entourés de doubles accolades, par exemple, « {{ ds }} ». " -"Essayez ensuite d'exécuter à nouveau votre requête." +"Veuillez vérifier votre requête et confirmer que tous les paramètres du modèle " +"sont entourés de doubles accolades, par exemple, « {{ ds }} ». Essayez ensuite " +"d'exécuter à nouveau votre requête." #, python-format msgid "" -"Please check your query for syntax errors at or near " -"\"%(syntax_error)s\". Then, try running your query again." +"Please check your query for syntax errors at or near \"%(syntax_error)s\". Then, " +"try running your query again." msgstr "" -"Veuillez corriger une erreur de syntaxe dans la requête près de « " -"%(syntax_error)s ». Puis essayez de relancer la requête." +"Veuillez corriger une erreur de syntaxe dans la requête près de " +"« %(syntax_error)s ». Puis essayez de relancer la requête." #, python-format msgid "" -"Please check your query for syntax errors near \"%(server_error)s\". " -"Then, try running your query again." +"Please check your query for syntax errors near \"%(server_error)s\". Then, try " +"running your query again." msgstr "" -"Veuillez corriger une erreur de syntaxe dans la requête près de « " -"%(server_error)s ». Puis essayez de relancer la requête." +"Veuillez corriger une erreur de syntaxe dans la requête près de " +"« %(server_error)s ». Puis essayez de relancer la requête." #, fuzzy msgid "" -"Please check your template parameters for syntax errors and make sure " -"they match across your SQL query and Set Parameters. Then, try running " -"your query again." +"Please check your template parameters for syntax errors and make sure they match " +"across your SQL query and Set Parameters. Then, try running your query again." msgstr "" -"Veuillez vérifier que les paramètres de votre modèle ne comportent pas " -"d'erreurs de syntaxe et qu'ils correspondent à votre requête SQL et à vos" -" paramètres. Essayez ensuite d'exécuter à nouveau votre requête." +"Veuillez vérifier que les paramètres de votre modèle ne comportent pas d'erreurs " +"de syntaxe et qu'ils correspondent à votre requête SQL et à vos paramètres. " +"Essayez ensuite d'exécuter à nouveau votre requête." #, fuzzy msgid "Please choose at least one groupby" @@ -8717,7 +8539,7 @@ msgid "Please re-enter the password." msgstr "Veuillez saisir à nouveau le mot de passe." msgid "Please re-export your file and try importing again" -msgstr "Veuillez réexporter votre fichier et réessayer l'importation." +msgstr "Veuillez réexporter votre fichier et réessayer l'importation" #, fuzzy msgid "Please reach out to the Chart Owner for assistance." @@ -8730,23 +8552,20 @@ msgstr "Veuillez enregistrer la requête pour pouvoir la partager" msgid "Please save your chart first, then try creating a new email report." msgstr "" -"Veuillez d'abord enregistrer votre graphique, puis essayez de créer un " -"nouveau rapport par courriel." +"Veuillez d'abord enregistrer votre graphique, puis essayez de créer un nouveau " +"rapport par courriel." msgid "Please save your dashboard first, then try creating a new email report." msgstr "" -"Veuillez d'abord sauvegarder votre tableau de bord, puis essayez de créer" -" un nouveau rapport par courriel." +"Veuillez d'abord sauvegarder votre tableau de bord, puis essayez de créer un " +"nouveau rapport par courriel." msgid "Please select both a Dataset and a Chart type to proceed" msgstr "" -"Veuillez sélectionner un ensemble de données et un type de graphique pour" -" continuer." +"Veuillez sélectionner un ensemble de données et un type de graphique pour continuer" #, python-format -msgid "" -"Please specify the Dataset ID for the ``%(name)s`` metric in the Jinja " -"macro." +msgid "Please specify the Dataset ID for the ``%(name)s`` metric in the Jinja macro." msgstr "" msgid "Please use 3 different metric labels" @@ -8754,18 +8573,17 @@ msgstr "Utilisez 3 libellés de mesure différents" msgid "Plot the distance (like flight paths) between origin and destination." msgstr "" -"Tracez la distance (comme les trajectoires de vol) entre le point " -"d'origine et la destination." +"Tracez la distance (comme les trajectoires de vol) entre le point d'origine et la " +"destination." msgid "" -"Plots the individual metrics for each row in the data vertically and " -"links them together as a line. This chart is useful for comparing " -"multiple metrics across all of the samples or rows in the data." +"Plots the individual metrics for each row in the data vertically and links them " +"together as a line. This chart is useful for comparing multiple metrics across all " +"of the samples or rows in the data." msgstr "" -"Représente les mesures individuelles pour chaque ligne de données " -"verticalement et les relie par une ligne. Ce graphique est utile pour " -"comparer plusieurs mesures sur l'ensemble des échantillons ou des lignes " -"de données." +"Représente les mesures individuelles pour chaque ligne de données verticalement et " +"les relie par une ligne. Ce graphique est utile pour comparer plusieurs mesures " +"sur l'ensemble des échantillons ou des lignes de données." msgid "Plugins" msgstr "Plugiciels" @@ -8799,8 +8617,8 @@ msgstr "Points" msgid "Points and clusters will update as the viewport is being changed" msgstr "" -"Les points et les grappes seront mis à jour au fur et à mesure de la " -"modification de la fenêtre de visualisation." +"Les points et les grappes seront mis à jour au fur et à mesure de la modification " +"de la fenêtre de visualisation" #, fuzzy msgid "Polygon Column" @@ -8862,14 +8680,13 @@ msgid "Pre-filter is required" msgstr "Un préfiltre est requis" msgid "" -"Predicate applied when fetching distinct value to populate the filter " -"control component. Supports jinja template syntax. Applies only when " -"`Enable Filter Select` is on." +"Predicate applied when fetching distinct value to populate the filter control " +"component. Supports jinja template syntax. Applies only when `Enable Filter " +"Select` is on." msgstr "" -"Prédicat appliqué lors de l'extraction d'une valeur distincte pour " -"remplir le composant de contrôle du filtre. Supporte la syntaxe des " -"modèles jinja. Ne s'applique que lorsque l'option « Activer la sélection " -"du filtre » est activée." +"Prédicat appliqué lors de l'extraction d'une valeur distincte pour remplir le " +"composant de contrôle du filtre. Supporte la syntaxe des modèles jinja. Ne " +"s'applique que lorsque l'option « Activer la sélection du filtre » est activée." #, fuzzy msgid "Predictive" @@ -9134,21 +8951,21 @@ msgstr "Registres bruts" msgid "Recently created charts, dashboards, and saved queries will appear here" msgstr "" -"Les graphiques, tableaux de bord et requêtes sauvegardés qui ont été " -"récemment créés apparaîtront ici" +"Les graphiques, tableaux de bord et requêtes sauvegardés qui ont été récemment " +"créés apparaîtront ici" msgid "Recently edited charts, dashboards, and saved queries will appear here" msgstr "" -"Les graphiques, tableaux de bord et requêtes modifiés qui ont été " -"récemment modifiés apparaîtront ici" +"Les graphiques, tableaux de bord et requêtes modifiés qui ont été récemment " +"modifiés apparaîtront ici" msgid "Recently modified" msgstr "Dernière modification" msgid "Recently viewed charts, dashboards, and saved queries will appear here" msgstr "" -"Les graphiques, tableaux de bord et requêtes consultés qui ont été " -"récemment modifiés apparaîtront ici" +"Les graphiques, tableaux de bord et requêtes consultés qui ont été récemment " +"modifiés apparaîtront ici" msgid "Recents" msgstr "Récents" @@ -9171,8 +8988,8 @@ msgstr "" msgid "Redirects to this endpoint when clicking on the table from the table list" msgstr "" -"Redirige vers ce point de terminaison lorsque l'on clique sur le tableau " -"dans la liste des tableaux." +"Redirige vers ce point de terminaison lorsque l'on clique sur le tableau dans la " +"liste des tableaux." msgid "Redo the action" msgstr "Refaire l’action" @@ -9181,16 +8998,15 @@ msgid "Reduce X ticks" msgstr "Réduire X points de repère" msgid "" -"Reduces the number of X-axis ticks to be rendered. If true, the x-axis " -"will not overflow and labels may be missing. If false, a minimum width " -"will be applied to columns and the width may overflow into an horizontal " -"scroll." +"Reduces the number of X-axis ticks to be rendered. If true, the x-axis will not " +"overflow and labels may be missing. If false, a minimum width will be applied to " +"columns and the width may overflow into an horizontal scroll." msgstr "" -"Réduit le nombre de points de repère de l’axe des abscisses à afficher. " -"Si la valeur est définie à True, l’axe des abscisses ne débordera pas et " -"des étiquettes pourraient être manquantes. Si elle est fausse, une " -"largeur minimale sera appliquée aux colonnes et la largeur pourrait " -"déborder dans un défilement horizontal." +"Réduit le nombre de points de repère de l’axe des abscisses à afficher. Si la " +"valeur est définie à True, l’axe des abscisses ne débordera pas et des étiquettes " +"pourraient être manquantes. Si elle est fausse, une largeur minimale sera " +"appliquée aux colonnes et la largeur pourrait déborder dans un défilement " +"horizontal." msgid "Refer to the" msgstr "Se référer à" @@ -9233,16 +9049,16 @@ msgstr "Régulier" #, fuzzy msgid "" "Regular filters add where clauses to queries if a user belongs to a role " -"referenced in the filter, base filters apply filters to all queries " -"except the roles defined in the filter, and can be used to define what " -"users can see if no RLS filters within a filter group apply to them." +"referenced in the filter, base filters apply filters to all queries except the " +"roles defined in the filter, and can be used to define what users can see if no " +"RLS filters within a filter group apply to them." msgstr "" "Les filtres réguliers ajoutent des clauses WHERE aux requêtes si un·e " -"utilisateur·rice appartient à un profil référencé dans le filtre. Les " -"filtres de base appliquent les filtres à toutes les requêtes sauf pour " -"les profils définis dans le filtre, et peuvent être utilisés pour définir" -" ce que les utilisateur·rice·s peuvent voir si aucun filtre RLS au sein " -"d'un groupe de filtres ne s'appliquent à eux." +"utilisateur·rice appartient à un profil référencé dans le filtre. Les filtres de " +"base appliquent les filtres à toutes les requêtes sauf pour les profils définis " +"dans le filtre, et peuvent être utilisés pour définir ce que les " +"utilisateur·rice·s peuvent voir si aucun filtre RLS au sein d'un groupe de filtres " +"ne s'appliquent à eux." #, fuzzy msgid "Relational" @@ -9322,34 +9138,30 @@ msgstr "La planification de rapport n'a pas être supprimée." msgid "Report Schedule execution failed when generating a csv." msgstr "" -"L'exécution de la planification de rapport a échoué à la génération d'un " -"csv." +"L'exécution de la planification de rapport a échoué à la génération d'un csv." msgid "Report Schedule execution failed when generating a dataframe." msgstr "" -"L'exécution de la planification de rapport a échoué à la génération d'un " -"cadre de données." +"L'exécution de la planification de rapport a échoué à la génération d'un cadre de " +"données." #, fuzzy msgid "Report Schedule execution failed when generating a pdf." msgstr "" -"L'exécution de la planification de rapport a échoué à la génération d'un " -"csv." +"L'exécution de la planification de rapport a échoué à la génération d'un csv." msgid "Report Schedule execution failed when generating a screenshot." msgstr "" -"L'exécution de la planification de rapport a échoué à la génération d'une" -" capture d’écran." +"L'exécution de la planification de rapport a échoué à la génération d'une capture " +"d’écran." msgid "Report Schedule execution got an unexpected error." msgstr "" -"L'exécution de la planification de rapport a rencontré une erreur " -"inattendue." +"L'exécution de la planification de rapport a rencontré une erreur inattendue." msgid "Report Schedule is still working, refusing to re-compute." msgstr "" -"La planification de rapport est toujours en cours d'exécution, recalcul " -"refusé." +"La planification de rapport est toujours en cours d'exécution, recalcul refusé." msgid "Report Schedule log prune failed." msgstr "Échec de l’élagage du journal du planification de rapport." @@ -9475,8 +9287,8 @@ msgstr "Le programme dorsal des résultats n'est pas configuré." msgid "Results backend needed for asynchronous queries is not configured." msgstr "" -"Le programme dorsal des résultats pour les requêtes asynchrones n'est pas" -" configuré." +"Le programme dorsal des résultats pour les requêtes asynchrones n'est pas " +"configuré." msgid "Return to specific datetime." msgstr "Retour à l’horodatage spécifique." @@ -9486,7 +9298,7 @@ msgid "Reverse Lat & Long" msgstr "Inverser la latitude et la longitude" msgid "Reverse lat/long " -msgstr "Inverser la latitude et la longitude" +msgstr "Inverser la latitude et la longitude " msgid "Rich Tooltip" msgstr "Infobulle détaillée" @@ -9517,8 +9329,8 @@ msgstr "Valeur droite" msgid "Right-click on a dimension value to drill to detail by that value." msgstr "" -"Cliquez avec le bouton droit de la souris sur une valeur de dimension " -"pour obtenir des informations détaillées sur cette valeur." +"Cliquez avec le bouton droit de la souris sur une valeur de dimension pour obtenir " +"des informations détaillées sur cette valeur." msgid "Role" msgstr "Rôle" @@ -9528,25 +9340,25 @@ msgstr "Rôles" #, fuzzy msgid "" -"Roles is a list which defines access to the dashboard. Granting a role " -"access to a dashboard will bypass dataset level checks. If no roles are " -"defined, regular access permissions apply." +"Roles is a list which defines access to the dashboard. Granting a role access to a " +"dashboard will bypass dataset level checks. If no roles are defined, regular " +"access permissions apply." msgstr "" -"Les rôles sont une liste qui définit l'accès au tableau de bord. En " -"accordant à un rôle l'accès à un tableau de bord, les contrôles au niveau" -" de l'ensemble de données seront contournés. Si aucun rôle n'est défini, " -"les autorisations d'accès normales s'appliquent." +"Les rôles sont une liste qui définit l'accès au tableau de bord. En accordant à un " +"rôle l'accès à un tableau de bord, les contrôles au niveau de l'ensemble de " +"données seront contournés. Si aucun rôle n'est défini, les autorisations d'accès " +"normales s'appliquent." #, fuzzy msgid "" -"Roles is a list which defines access to the dashboard. Granting a role " -"access to a dashboard will bypass dataset level checks.If no roles are " -"defined, regular access permissions apply." +"Roles is a list which defines access to the dashboard. Granting a role access to a " +"dashboard will bypass dataset level checks.If no roles are defined, regular access " +"permissions apply." msgstr "" -"Les rôles sont une liste qui définit l'accès au tableau de bord. En " -"accordant à un rôle l'accès à un tableau de bord, les contrôles au niveau" -" de l'ensemble de données seront contournés. Si aucun rôle n'est défini, " -"les autorisations d'accès normales s'appliquent." +"Les rôles sont une liste qui définit l'accès au tableau de bord. En accordant à un " +"rôle l'accès à un tableau de bord, les contrôles au niveau de l'ensemble de " +"données seront contournés. Si aucun rôle n'est défini, les autorisations d'accès " +"normales s'appliquent." #, fuzzy msgid "Rolling Function" @@ -9592,13 +9404,10 @@ msgid "Row Level Security" msgstr "Sécurité au niveau de la rangée" #, fuzzy -msgid "" -"Row containing the headers to use as column names (0 is first line of " -"data)." +msgid "Row containing the headers to use as column names (0 is first line of data)." msgstr "" -"Rangée contenant les en-têtes à utiliser comme noms de colonnes (0 est la" -" première ligne de données). Laissez vide s'il n'y a pas de ligne d'en-" -"tête" +"Rangée contenant les en-têtes à utiliser comme noms de colonnes (0 est la première " +"ligne de données). Laissez vide s'il n'y a pas de ligne d'en-tête" msgid "Row limit" msgstr "Nombre de rangées maximum" @@ -9696,20 +9505,20 @@ msgstr "Vue SQL Lab" #, python-format msgid "" "SQL Lab uses your browser's local storage to store queries and results.\n" -"Currently, you are using %(currentUsage)s KB out of %(maxStorage)d KB " -"storage space.\n" +"Currently, you are using %(currentUsage)s KB out of %(maxStorage)d KB storage " +"space.\n" "To keep SQL Lab from crashing, please delete some query tabs.\n" -"You can re-access these queries by using the Save feature before you " -"delete the tab.\n" +"You can re-access these queries by using the Save feature before you delete the " +"tab.\n" "Note that you will need to close other SQL Lab windows before you do this." msgstr "" -"SQL Lab utilise le stockage local de votre navigateur pour stocker les " -"requêtes et les résultats. Actuellement, vous utilisez %(currentUsage)s " -"ko sur %(maxStorage)d ko à partir de l’espace de stockage. Pour éviter " -"que SQL Lab ne tombe en panne, veuillez supprimer certains onglets de " -"requête. Vous pouvez accéder à nouveau à ces requêtes en utilisant la " -"fonction Enregistrer avant de supprimer l’onglet. Veuillez noter que vous" -" devrez fermer les autres fenêtres de SQL Lab avant de le faire." +"SQL Lab utilise le stockage local de votre navigateur pour stocker les requêtes et " +"les résultats. Actuellement, vous utilisez %(currentUsage)s ko sur %(maxStorage)d " +"ko à partir de l’espace de stockage. Pour éviter que SQL Lab ne tombe en panne, " +"veuillez supprimer certains onglets de requête. Vous pouvez accéder à nouveau à " +"ces requêtes en utilisant la fonction Enregistrer avant de supprimer l’onglet. " +"Veuillez noter que vous devrez fermer les autres fenêtres de SQL Lab avant de le " +"faire." msgid "SQL Query" msgstr "Requête SQL" @@ -9877,8 +9686,8 @@ msgstr "Enregistrer la requête pour permettre cette fonction" msgid "Save this query as a virtual dataset to continue exploring" msgstr "" -"Enregistrez cette requête en tant qu’ensemble de données virtuel pour " -"continuer à explorer" +"Enregistrez cette requête en tant qu’ensemble de données virtuel pour continuer à " +"explorer" msgid "Saved" msgstr "Enregistré" @@ -9918,13 +9727,12 @@ msgid "Scatter Plot" msgstr "Deck.gl - Diagramme de dispersion" msgid "" -"Scatter Plot has the horizontal axis in linear units, and the points are " -"connected in order. It shows a statistical relationship between two " -"variables." +"Scatter Plot has the horizontal axis in linear units, and the points are connected " +"in order. It shows a statistical relationship between two variables." msgstr "" -"Le diagramme de dispersion a l’axe horizontal en unités linéaires et les " -"points sont connectés dans l’ordre. Il montre une relation statistique " -"entre deux variables." +"Le diagramme de dispersion a l’axe horizontal en unités linéaires et les points " +"sont connectés dans l’ordre. Il montre une relation statistique entre deux " +"variables." msgid "Schedule" msgstr "Planifier" @@ -9964,8 +9772,8 @@ msgstr "Délai d'attente pour le cache du schéma dépassé" msgid "Schema, as used only in some databases like Postgres, Redshift and DB2" msgstr "" -"Schéma, utilisé uniquement dans certaines bases de données comme " -"Postgres, Redshift et DB2" +"Schéma, utilisé uniquement dans certaines bases de données comme Postgres, " +"Redshift et DB2" #, fuzzy msgid "Schemas allowed for File upload" @@ -9988,9 +9796,7 @@ msgid "Scroll" msgstr "Défiler" msgid "Scroll down to the bottom to enable overwriting changes. " -msgstr "" -"Faites défiler vers le bas pour activer les modifications de " -"remplacement. " +msgstr "Faites défiler vers le bas pour activer les modifications de remplacement. " msgid "Search" msgstr "Rechercher" @@ -10039,8 +9845,7 @@ msgstr "Mesure secondaire" msgid "Secondary currency format" msgstr "" -"Nombre de pas entre les points de repère lors de l'affichage de l'échelle" -" des X" +"Nombre de pas entre les points de repère lors de l'affichage de l'échelle des X" msgid "Secondary y-axis Bounds" msgstr "Limites secondaires de l'axe des ordonnées" @@ -10113,9 +9918,7 @@ msgstr "Supprimer la base de données" #, fuzzy msgid "Select a database table and create dataset" -msgstr "" -"Sélectionner une tableau de base de données et créer un ensemble de " -"données" +msgstr "Sélectionner une tableau de base de données et créer un ensemble de données" #, fuzzy msgid "Select a database table." @@ -10149,8 +9952,8 @@ msgid "Select a metric to display on the right axis" msgstr "Choisir une mesure pour l'axe de droite" msgid "" -"Select a metric to display. You can use an aggregation function on a " -"column or write custom SQL to create a metric." +"Select a metric to display. You can use an aggregation function on a column or " +"write custom SQL to create a metric." msgstr "" #, fuzzy @@ -10166,11 +9969,11 @@ msgid "Select a sheet name from the uploaded file" msgstr "Sélectionner une base de données vers laquelle téléverser le fichier" msgid "" -"Select a time grain for the visualization. The grain is the time interval" -" represented by a single point on the chart." +"Select a time grain for the visualization. The grain is the time interval " +"represented by a single point on the chart." msgstr "" -"La valeur par défaut est définie automatiquement lorsque l'option " -"«Sélectionner la première valeur de filtre par défaut» est cochée" +"Sélectionner une période temporelle pour la visualisation. La période est " +"l'intervalle temporel représenté par un seul point dans le graphique." msgid "Select a visualization type" msgstr "Selectionner un type de visualisation" @@ -10216,8 +10019,7 @@ msgid "Select column" msgstr "Sélectionner une colonne" msgid "" -"Select columns that will be displayed in the table. You can multiselect " -"columns." +"Select columns that will be displayed in the table. You can multiselect columns." msgstr "" #, fuzzy @@ -10247,18 +10049,16 @@ msgstr "Supprimer la base de données" #, fuzzy msgid "Select database or type to search databases" msgstr "" -"Sélectionner une base de données ou un type de base de données pour " -"effectuer une recherche" +"Sélectionner une base de données ou un type de base de données pour effectuer une " +"recherche" msgid "" -"Select databases require additional fields to be completed in the " -"Advanced tab to successfully connect the database. Learn what " -"requirements your databases has " +"Select databases require additional fields to be completed in the Advanced tab to " +"successfully connect the database. Learn what requirements your databases has " msgstr "" -"Certaines bases de données exigent que des champs supplémentaires soient " -"remplis dans l'onglet Avancé pour que la connexion à la base de données " -"soit réussie. Découvrez quelles sont les exigences de votre base de " -"données" +"Certaines bases de données exigent que des champs supplémentaires soient remplis " +"dans l'onglet Avancé pour que la connexion à la base de données soit réussie. " +"Découvrez quelles sont les exigences de votre base de données " #, fuzzy msgid "Select dataset source" @@ -10282,23 +10082,22 @@ msgid "Select format" msgstr "Format de courriel" msgid "" -"Select one or many metrics to display, that will be displayed in the " -"percentages of total. Percentage metrics will be calculated only from " -"data within the row limit. You can use an aggregation function on a " -"column or write custom SQL to create a percentage metric." +"Select one or many metrics to display, that will be displayed in the percentages " +"of total. Percentage metrics will be calculated only from data within the row " +"limit. You can use an aggregation function on a column or write custom SQL to " +"create a percentage metric." msgstr "" msgid "" -"Select one or many metrics to display. You can use an aggregation " -"function on a column or write custom SQL to create a metric." +"Select one or many metrics to display. You can use an aggregation function on a " +"column or write custom SQL to create a metric." msgstr "" msgid "Select operator" msgstr "Sélectionner l'opérateur" -#, fuzzy msgid "Select or type a custom value..." -msgstr "Sélectionner ou renseigner une valeur" +msgstr "Sélectionner ou renseigner une valeur personnalisé..." msgid "Select or type a value" msgstr "Sélectionner ou renseigner une valeur" @@ -10341,31 +10140,29 @@ msgid "Select the Annotation Layer you would like to use." msgstr "Sélectionner la couche d'annotation que vous souhaitez utiliser." msgid "" -"Select the charts to which you want to apply cross-filters in this " -"dashboard. Deselecting a chart will exclude it from being filtered when " -"applying cross-filters from any chart on the dashboard. You can select " -"\"All charts\" to apply cross-filters to all charts that use the same " -"dataset or contain the same column name in the dashboard." +"Select the charts to which you want to apply cross-filters in this dashboard. " +"Deselecting a chart will exclude it from being filtered when applying cross-" +"filters from any chart on the dashboard. You can select \"All charts\" to apply " +"cross-filters to all charts that use the same dataset or contain the same column " +"name in the dashboard." msgstr "" -"Sélectionnez les graphiques auxquels vous souhaitez appliquer des filtres" -" croisés dans ce tableau de bord. Si vous désélectionnez un graphique, il" -" ne sera pas filtré lors de l'application de filtres croisés à partir de " -"n'importe quel graphique du tableau de bord. Vous pouvez sélectionner « " -"Tous les graphiques » pour appliquer des filtres croisés à tous les " -"graphiques qui utilisent le même ensemble de données ou contiennent le " -"même nom de colonne dans le tableau de bord." +"Sélectionnez les graphiques auxquels vous souhaitez appliquer des filtres croisés " +"dans ce tableau de bord. Si vous désélectionnez un graphique, il ne sera pas " +"filtré lors de l'application de filtres croisés à partir de n'importe quel " +"graphique du tableau de bord. Vous pouvez sélectionner « Tous les graphiques » " +"pour appliquer des filtres croisés à tous les graphiques qui utilisent le même " +"ensemble de données ou contiennent le même nom de colonne dans le tableau de bord." msgid "" -"Select the charts to which you want to apply cross-filters when " -"interacting with this chart. You can select \"All charts\" to apply " -"filters to all charts that use the same dataset or contain the same " -"column name in the dashboard." +"Select the charts to which you want to apply cross-filters when interacting with " +"this chart. You can select \"All charts\" to apply filters to all charts that use " +"the same dataset or contain the same column name in the dashboard." msgstr "" -"Sélectionnez les graphiques auxquels vous souhaitez appliquer des filtres" -" croisés lorsque vous interagissez avec ce graphique. Vous pouvez " -"sélectionner « Tous les graphiques » pour appliquer des filtres à tous " -"les graphiques qui utilisent le même ensemble de données ou contiennent " -"le même nom de colonne dans le tableau de bord." +"Sélectionnez les graphiques auxquels vous souhaitez appliquer des filtres croisés " +"lorsque vous interagissez avec ce graphique. Vous pouvez sélectionner « Tous les " +"graphiques » pour appliquer des filtres à tous les graphiques qui utilisent le " +"même ensemble de données ou contiennent le même nom de colonne dans le tableau de " +"bord." #, fuzzy msgid "Select the geojson column" @@ -10379,12 +10176,11 @@ msgstr "Sélectionner les colonnes numériques pour dessiner l’histogramme" #, python-format msgid "" -"Select values in highlighted field(s) in the control panel. Then run the " -"query by clicking on the %s button." +"Select values in highlighted field(s) in the control panel. Then run the query by " +"clicking on the %s button." msgstr "" -"Sélectionnez les valeurs dans le ou les champ(s) en surbrillance dans le " -"panneau de commande. Exécutez ensuite la requête en cliquant sur le " -"bouton %s." +"Sélectionnez les valeurs dans le ou les champ(s) en surbrillance dans le panneau " +"de commande. Exécutez ensuite la requête en cliquant sur le bouton %s." #, fuzzy msgid "Selecting a database is required" @@ -10476,12 +10272,11 @@ msgstr "" msgid "" "Sets the hierarchy levels of the chart. Each level is\n" -" represented by one ring with the innermost circle as the top of " -"the hierarchy." +" represented by one ring with the innermost circle as the top of the " +"hierarchy." msgstr "" -"Définit les niveaux de hiérarchie du graphique. Chaque niveau est " -"représenté par un anneau, le cercle le plus à l'intérieur étant le sommet" -" de la hiérarchie." +"Définit les niveaux de hiérarchie du graphique. Chaque niveau est représenté par " +"un anneau, le cercle le plus à l'intérieur étant le sommet de la hiérarchie." msgid "Settings" msgstr "Paramètres" @@ -10520,25 +10315,25 @@ msgid "Short description must be unique for this layer" msgstr "La description courte doit être unique pour cette couche" msgid "" -"Should daily seasonality be applied. An integer value will specify " -"Fourier order of seasonality." +"Should daily seasonality be applied. An integer value will specify Fourier order " +"of seasonality." msgstr "" "La saisonnalité quotidienne doit-elle être appliquée? Une valeur entière " "spécifiera l'ordre Fourier de la saisonnalité." msgid "" -"Should weekly seasonality be applied. An integer value will specify " -"Fourier order of seasonality." +"Should weekly seasonality be applied. An integer value will specify Fourier order " +"of seasonality." msgstr "" -"La saisonnalité hebdomadaire doit-elle être appliquée? Une valeur entière" -" spécifiera l'ordre Fourier de la saisonnalité." +"La saisonnalité hebdomadaire doit-elle être appliquée? Une valeur entière " +"spécifiera l'ordre Fourier de la saisonnalité." msgid "" -"Should yearly seasonality be applied. An integer value will specify " -"Fourier order of seasonality." +"Should yearly seasonality be applied. An integer value will specify Fourier order " +"of seasonality." msgstr "" -"La saisonnalité annuelle doit-elle être appliquée? Une valeur entière " -"spécifiera l'ordre Fourier de la saisonnalité." +"La saisonnalité annuelle doit-elle être appliquée? Une valeur entière spécifiera " +"l'ordre Fourier de la saisonnalité." msgid "Show" msgstr "Afficher" @@ -10624,12 +10419,12 @@ msgid "Show Y-axis" msgstr "Afficher l’axe des ordonnées" msgid "" -"Show Y-axis on the sparkline. Will display the manually set min/max if " -"set or min/max values in the data otherwise." +"Show Y-axis on the sparkline. Will display the manually set min/max if set or min/" +"max values in the data otherwise." msgstr "" -"Afficher l’axe des ordonnées sur la ligne de la bougie. Les valeurs " -"min/max définies manuellement s’afficheront si elles sont définies ou " -"autrement min/max dans les données." +"Afficher l’axe des ordonnées sur la ligne de la bougie. Les valeurs min/max " +"définies manuellement s’afficheront si elles sont définies ou autrement min/max " +"dans les données." #, fuzzy msgid "Show all columns" @@ -10658,20 +10453,18 @@ msgstr "Afficher le total des colonnes" msgid "Show data points as circle markers on the lines" msgstr "" -"Afficher les points de données sous forme de marqueurs circulaires sur " -"les lignes" +"Afficher les points de données sous forme de marqueurs circulaires sur les lignes" #, fuzzy msgid "Show empty columns" msgstr "Afficher les colonnes libres" msgid "" -"Show hierarchical relationships of data, with the value represented by " -"area, showing proportion and contribution to the whole." +"Show hierarchical relationships of data, with the value represented by area, " +"showing proportion and contribution to the whole." msgstr "" -"Afficher les relations hiérarchiques des données, avec la valeur " -"représentée par aire, montrant la proportion et la contribution à " -"l’ensemble." +"Afficher les relations hiérarchiques des données, avec la valeur représentée par " +"aire, montrant la proportion et la contribution à l’ensemble." msgid "Show info tooltip" msgstr "Afficher l'info-bulle" @@ -10735,53 +10528,50 @@ msgid "Show the value on top of the bar" msgstr "Afficher la valeur en haut de la barre" msgid "" -"Show total aggregations of selected metrics. Note that row limit does not" -" apply to the result." +"Show total aggregations of selected metrics. Note that row limit does not apply to " +"the result." msgstr "" -"Afficher les agrégats totaux des mesures sélectionnées. Notez que la " -"limite de ligne ne s’applique pas au résultat." +"Afficher les agrégats totaux des mesures sélectionnées. Notez que la limite de " +"ligne ne s’applique pas au résultat." msgid "" -"Showcases a single metric front-and-center. Big number is best used to " -"call attention to a KPI or the one thing you want your audience to focus " -"on." +"Showcases a single metric front-and-center. Big number is best used to call " +"attention to a KPI or the one thing you want your audience to focus on." msgstr "" -"Présente une seule mesure au premier plan. Il est préférable d’utiliser " -"un grand chiffre pour attirer l’attention sur un ICR ou sur la chose sur " -"laquelle vous voulez que votre public se concentre." +"Présente une seule mesure au premier plan. Il est préférable d’utiliser un grand " +"chiffre pour attirer l’attention sur un ICR ou sur la chose sur laquelle vous " +"voulez que votre public se concentre." msgid "" -"Showcases a single number accompanied by a simple line chart, to call " -"attention to an important metric along with its change over time or other" -" dimension." +"Showcases a single number accompanied by a simple line chart, to call attention to " +"an important metric along with its change over time or other dimension." msgstr "" -"Présente un seul chiffre accompagné d’un graphique linéaire simple pour " -"attirer l’attention sur une mesure importante ainsi que son changement au" -" fil du temps ou d’autres dimensions." +"Présente un seul chiffre accompagné d’un graphique linéaire simple pour attirer " +"l’attention sur une mesure importante ainsi que son changement au fil du temps ou " +"d’autres dimensions." msgid "" -"Showcases how a metric changes as the funnel progresses. This classic " -"chart is useful for visualizing drop-off between stages in a pipeline or " -"lifecycle." +"Showcases how a metric changes as the funnel progresses. This classic chart is " +"useful for visualizing drop-off between stages in a pipeline or lifecycle." msgstr "" -"Montre comment une mesure change au fur et à mesure que l’entonnoir " -"progresse. Ce graphique classique est utile pour visualiser la baisse " -"entre les étapes d'un pipeline ou d'un cycle de vie." +"Montre comment une mesure change au fur et à mesure que l’entonnoir progresse. Ce " +"graphique classique est utile pour visualiser la baisse entre les étapes d'un " +"pipeline ou d'un cycle de vie." msgid "" -"Showcases the flow or link between categories using thickness of chords. " -"The value and corresponding thickness can be different for each side." +"Showcases the flow or link between categories using thickness of chords. The value " +"and corresponding thickness can be different for each side." msgstr "" -"Met en évidence le flux ou le lien entre les catégories en utilisant " -"l'épaisseur des accords. La valeur et l'épaisseur correspondante peuvent " -"être différentes pour chaque côté." +"Met en évidence le flux ou le lien entre les catégories en utilisant l'épaisseur " +"des accords. La valeur et l'épaisseur correspondante peuvent être différentes pour " +"chaque côté." msgid "" -"Showcases the progress of a single metric against a given target. The " -"higher the fill, the closer the metric is to the target." +"Showcases the progress of a single metric against a given target. The higher the " +"fill, the closer the metric is to the target." msgstr "" -"Affiche la progression d’une seule mesure par rapport à une cible donnée." -" Plus le remplissage est élevé, plus la mesure est proche de la cible." +"Affiche la progression d’une seule mesure par rapport à une cible donnée. Plus le " +"remplissage est élevé, plus la mesure est proche de la cible." #, python-format msgid "Showing %s of %s" @@ -10801,8 +10591,7 @@ msgstr "Simple" msgid "Simple ad-hoc metrics are not enabled for this dataset" msgstr "" -"Les mesures ponctuelles simples ne sont pas activées pour cet ensemble de" -" données" +"Les mesures ponctuelles simples ne sont pas activées pour cet ensemble de données" #, fuzzy msgid "Single" @@ -10838,8 +10627,8 @@ msgstr "Sauter des rangées" #, fuzzy msgid "Skip blank lines rather than interpreting them as Not A Number values" msgstr "" -"Sauter les lignes vides au lieu des les interpréter comme des valeurs Pas" -" un nombre." +"Sauter les lignes vides au lieu des les interpréter comme des valeurs Pas un " +"nombre." #, fuzzy msgid "Skip rows" @@ -10862,12 +10651,11 @@ msgid "Smooth Line" msgstr "Ligne lisse" msgid "" -"Smooth-line is a variation of the line chart. Without angles and hard " -"edges, Smooth-line sometimes looks smarter and more professional." +"Smooth-line is a variation of the line chart. Without angles and hard edges, " +"Smooth-line sometimes looks smarter and more professional." msgstr "" -"La ligne lisse est une variation du graphique linéaire. Sans angles et " -"bords durs, la ligne lisse semble parfois plus intelligente et plus " -"professionnelle." +"La ligne lisse est une variation du graphique linéaire. Sans angles et bords durs, " +"la ligne lisse semble parfois plus intelligente et plus professionnelle." msgid "Solid" msgstr "Solide" @@ -10876,8 +10664,8 @@ msgid "Some roles do not exist" msgstr "Des profils n'existent pas" msgid "" -"Something went wrong with embedded authentication. Check the dev console " -"for details." +"Something went wrong with embedded authentication. Check the dev console for " +"details." msgstr "" #, fuzzy @@ -10887,13 +10675,13 @@ msgstr "Une erreur est survenue." #, python-format msgid "Sorry there was an error fetching database information: %s" msgstr "" -"Désolé, une erreur s'est produite lors de la récupération des " -"informations de cette base de données : %s" +"Désolé, une erreur s'est produite lors de la récupération des informations de " +"cette base de données : %s" msgid "Sorry there was an error fetching saved charts: " msgstr "" "Désolé, une erreur s'est produite lors de la récupération des graphiques " -"sauvegardés :" +"sauvegardés: " msgid "Sorry, An error occurred" msgstr "Désolé, une erreur s'est produite" @@ -10912,9 +10700,7 @@ msgstr "Désolé, une erreur inconnue s'est produite." #, fuzzy msgid "Sorry, something went wrong. Embedding could not be deactivated." -msgstr "" -"Désolé, un problème s'est produit. L'intégration n'a pas pu être " -"désactivée." +msgstr "Désolé, un problème s'est produit. L'intégration n'a pas pu être désactivée." #, fuzzy msgid "Sorry, something went wrong. Please try again." @@ -10973,7 +10759,7 @@ msgid "Sort Y Axis" msgstr "Trier l’axe des ordonnées" msgid "Sort ascending" -msgstr "Trier par ordre croissant " +msgstr "Trier par ordre croissant" msgid "Sort bars by x labels." msgstr "Trier les barres par étiquettes x." @@ -10997,7 +10783,7 @@ msgid "Sort columns by" msgstr "Trier les colonne par" msgid "Sort descending" -msgstr "Trier par ordre décroissant " +msgstr "Trier par ordre décroissant" msgid "Sort filter values" msgstr "Trier les valeurs de filtre" @@ -11016,7 +10802,7 @@ msgid "Sort type" msgstr "Trier par type" msgid "Source" -msgstr "Source :" +msgstr "Source" #, fuzzy msgid "Source / Target" @@ -11046,11 +10832,11 @@ msgstr "Spécifiezrle nom pour le schéma CREATE VIEW AS dans : public" #, fuzzy msgid "" -"Specify the database version. This is used with Presto for query cost " -"estimation, and Dremio for syntax changes, among others." +"Specify the database version. This is used with Presto for query cost estimation, " +"and Dremio for syntax changes, among others." msgstr "" -"Spécifier la version de la base de données. Ceci doit être utilisé avec " -"Presto afin d'autoriser l'estimation du coût de requête." +"Spécifier la version de la base de données. Ceci doit être utilisé avec Presto " +"afin d'autoriser l'estimation du coût de requête." #, fuzzy msgid "Split number" @@ -11125,12 +10911,10 @@ msgstr "Date de début incluse de l'intervalle de temps" msgid "Start y-axis at 0" msgstr "Commencer l’axe des ordonnées à 0" -msgid "" -"Start y-axis at zero. Uncheck to start y-axis at minimum value in the " -"data." +msgid "Start y-axis at zero. Uncheck to start y-axis at minimum value in the data." msgstr "" -"Commencer l’axe des ordonnées à zéro. Décochez pour démarrer l’axe des " -"ordonnées à la valeur minimale dans les données." +"Commencer l’axe des ordonnées à zéro. Décochez pour démarrer l’axe des ordonnées à " +"la valeur minimale dans les données." #, fuzzy msgid "Started" @@ -11167,16 +10951,14 @@ msgid "Stepped Line" msgstr "Ligne en escalier" msgid "" -"Stepped-line graph (also called step chart) is a variation of line chart " -"but with the line forming a series of steps between data points. A step " -"chart can be useful when you want to show the changes that occur at " -"irregular intervals." +"Stepped-line graph (also called step chart) is a variation of line chart but with " +"the line forming a series of steps between data points. A step chart can be useful " +"when you want to show the changes that occur at irregular intervals." msgstr "" -"Le graphique à lignes en escalier (également appelé graphique à étapes) " -"est une variation du graphique linéaire, mais la ligne formant une série " -"d’étapes entre les points de données. Un tableau des étapes peut être " -"utile lorsque vous voulez afficher les changements qui se produisent à " -"des intervalles irréguliers." +"Le graphique à lignes en escalier (également appelé graphique à étapes) est une " +"variation du graphique linéaire, mais la ligne formant une série d’étapes entre " +"les points de données. Un tableau des étapes peut être utile lorsque vous voulez " +"afficher les changements qui se produisent à des intervalles irréguliers." msgid "Stop" msgstr "Arrêter" @@ -11322,14 +11104,13 @@ msgid "Swap rows and columns" msgstr "Échanger les rangées et les colonnes" msgid "" -"Swiss army knife for visualizing data. Choose between step, line, " -"scatter, and bar charts. This viz type has many customization options as " -"well." +"Swiss army knife for visualizing data. Choose between step, line, scatter, and bar " +"charts. This viz type has many customization options as well." msgstr "" -"Couteau suisse pour la visualisation des données. Vous avez le choix " -"entre des diagrammes en escalier, des diagrammes linéaires, des " -"diagrammes de dispersion et des diagrammes à barres. Ce type d'affichage " -"dispose également de nombreuses options de personnalisation." +"Couteau suisse pour la visualisation des données. Vous avez le choix entre des " +"diagrammes en escalier, des diagrammes linéaires, des diagrammes de dispersion et " +"des diagrammes à barres. Ce type d'affichage dispose également de nombreuses " +"options de personnalisation." #, fuzzy msgid "Symbol" @@ -11346,13 +11127,12 @@ msgid "Sync columns from source" msgstr "Synchroniser les colonnes de la source" msgid "Syntax" -msgstr "Syntaxe :" +msgstr "Syntaxe" #, python-format msgid "Syntax Error: %(qualifier)s input \"%(input)s\" expecting \"%(expected)s" msgstr "" -"Erreur de syntaxe : %(qualifier)s entrée « %(input)s » en attente « " -"%(expected)s" +"Erreur de syntaxe : %(qualifier)s entrée « %(input)s » en attente « %(expected)s" msgid "TABLES" msgstr "TABLEAUX" @@ -11396,12 +11176,12 @@ msgid "" "Table [%(table)s] could not be found, please double check your database " "connection, schema, and table name" msgstr "" -"La tableau [%(table_name)s] n'a pu être trouvé, vérifiez à nouveau votre " -"connexion à votre base de données, le schéma et le nom du tableau" +"La tableau [%(table_name)s] n'a pu être trouvé, vérifiez à nouveau votre connexion " +"à votre base de données, le schéma et le nom du tableau" msgid "" -"Table already exists. You can change your 'if table already exists' " -"strategy to append or replace or provide a different Table Name to use." +"Table already exists. You can change your 'if table already exists' strategy to " +"append or replace or provide a different Table Name to use." msgstr "" msgid "Table cache timeout" @@ -11419,11 +11199,11 @@ msgid "Table or View \"%(table)s\" does not exist." msgstr "Le tableau ou la vue « %(table)s » n'existe pas." msgid "" -"Table that visualizes paired t-tests, which are used to understand " -"statistical differences between groups." +"Table that visualizes paired t-tests, which are used to understand statistical " +"differences between groups." msgstr "" -"Tableau qui visualise les tests T appariés, qui sont utilisés pour " -"comprendre les différences statistiques entre les groupes." +"Tableau qui visualise les tests T appariés, qui sont utilisés pour comprendre les " +"différences statistiques entre les groupes." msgid "Tables" msgstr "Tableaux" @@ -11484,11 +11264,11 @@ msgid "Tags" msgstr "Balises" msgid "" -"Take your data points, and group them into \"bins\" to see where the " -"densest areas of information lie" +"Take your data points, and group them into \"bins\" to see where the densest areas " +"of information lie" msgstr "" -"Prenez vos points de données et regroupez-les en « rectangles » pour voir" -" où se trouvent les zones d’information les plus denses" +"Prenez vos points de données et regroupez-les en « rectangles » pour voir où se " +"trouvent les zones d’information les plus denses" #, fuzzy msgid "Target" @@ -11513,20 +11293,19 @@ msgid "Template parameters" msgstr "Paramètres du modèle" msgid "" -"Templated link, it's possible to include {{ metric }} or other values " -"coming from the controls." +"Templated link, it's possible to include {{ metric }} or other values coming from " +"the controls." msgstr "" -"Lien template, il est possible d'inclure {{ metric }} or autres valeurs " -"provenant de ces contrôles." +"Lien template, il est possible d'inclure {{ metric }} or autres valeurs provenant " +"de ces contrôles." msgid "" -"Terminate running queries when browser window closed or navigated to " -"another page. Available for Presto, Hive, MySQL, Postgres and Snowflake " -"databases." +"Terminate running queries when browser window closed or navigated to another page. " +"Available for Presto, Hive, MySQL, Postgres and Snowflake databases." msgstr "" -"Arrête les requêtes en cours quand la fenêtre du navigateur est fermée ou" -" quand change pour un autre page. Disponibles pour les bases de données " -"Presto, Hive, MySQL, Postgres et Snowflake." +"Arrête les requêtes en cours quand la fenêtre du navigateur est fermée ou quand " +"change pour un autre page. Disponibles pour les bases de données Presto, Hive, " +"MySQL, Postgres et Snowflake." msgid "Test Connection" msgstr "Test de connexion" @@ -11551,38 +11330,36 @@ msgid "The API response from %s does not match the IDatabaseTable interface." msgstr "La réponse API de %s ne correspond pas à l’interface IDatabaseTable." msgid "" -"The CSS for individual dashboards can be altered here, or in the " -"dashboard view where changes are immediately visible" +"The CSS for individual dashboards can be altered here, or in the dashboard view " +"where changes are immediately visible" msgstr "" -"Le Css pour certains tableaux de bords peut être modifié ici, ou dans la " -"vue de tableau de bord pour que les changement soient visibles " -"immédiatement" +"Le Css pour certains tableaux de bords peut être modifié ici, ou dans la vue de " +"tableau de bord pour que les changement soient visibles immédiatement" msgid "" -"The CTAS (create table as select) doesn't have a SELECT statement at the " -"end. Please make sure your query has a SELECT as its last statement. " -"Then, try running your query again." +"The CTAS (create table as select) doesn't have a SELECT statement at the end. " +"Please make sure your query has a SELECT as its last statement. Then, try running " +"your query again." msgstr "" -"La requête CTAS (create table as select) ne comporte pas d'instruction " -"SELECT à la fin. Assurez-vous que votre requête comporte une instruction " -"SELECT à la fin. Ensuite, essayez d'exécuter à nouveau votre requête." +"La requête CTAS (create table as select) ne comporte pas d'instruction SELECT à la " +"fin. Assurez-vous que votre requête comporte une instruction SELECT à la fin. " +"Ensuite, essayez d'exécuter à nouveau votre requête." msgid "" -"The GeoJsonLayer takes in GeoJSON formatted data and renders it as " -"interactive polygons, lines and points (circles, icons and/or texts)." +"The GeoJsonLayer takes in GeoJSON formatted data and renders it as interactive " +"polygons, lines and points (circles, icons and/or texts)." msgstr "" -"La couche GeoJsonLayer reçoit des données au format GeoJSON et les " -"restitue sous forme de polygones, de lignes et de points interactifs " -"(cercles, icônes et/ou textes)." +"La couche GeoJsonLayer reçoit des données au format GeoJSON et les restitue sous " +"forme de polygones, de lignes et de points interactifs (cercles, icônes et/ou " +"textes)." msgid "The SQL is invalid and cannot be parsed." msgstr "" msgid "" -"The Sankey chart visually tracks the movement and transformation of " -"values across\n" -" system stages. Nodes represent stages, connected by links " -"depicting value flow. Node\n" +"The Sankey chart visually tracks the movement and transformation of values across\n" +" system stages. Nodes represent stages, connected by links depicting " +"value flow. Node\n" " height corresponds to the visualized metric, providing a clear " "representation of\n" " value distribution and transformation." @@ -11595,14 +11372,13 @@ msgid "The X-axis is not on the filters list" msgstr "L’axe des absisses ne figure pas dans la liste des filtres" msgid "" -"The X-axis is not on the filters list which will prevent it from being " -"used in\n" -" time range filters in dashboards. Would you like to add it to" -" the filters list?" +"The X-axis is not on the filters list which will prevent it from being used in\n" +" time range filters in dashboards. Would you like to add it to the " +"filters list?" msgstr "" -"L’axe des absisses ne figure pas dans la liste des filtres, ce qui " -"l’empêchera d’être utilisé dans les filtres de plage de temps dans les " -"tableaux de bord. Voulez-vous l’ajouter à la liste des filtres?" +"L’axe des absisses ne figure pas dans la liste des filtres, ce qui l’empêchera " +"d’être utilisé dans les filtres de plage de temps dans les tableaux de bord. " +"Voulez-vous l’ajouter à la liste des filtres?" msgid "The annotation has been saved" msgstr "Cette annotation a été sauvegardée" @@ -11611,11 +11387,11 @@ msgid "The annotation has been updated" msgstr "Cette annotation a été modifiée" msgid "" -"The category of source nodes used to assign colors. If a node is " -"associated with more than one category, only the first will be used." +"The category of source nodes used to assign colors. If a node is associated with " +"more than one category, only the first will be used." msgstr "" -"La catégorie de nœuds sources utilisée pour attribuer des couleurs. Si un" -" nœud est associé à plus d’une catégorie, seul le premier sera utilisé." +"La catégorie de nœuds sources utilisée pour attribuer des couleurs. Si un nœud est " +"associé à plus d’une catégorie, seul le premier sera utilisé." #, fuzzy msgid "The chart datasource does not exist" @@ -11629,21 +11405,19 @@ msgid "The chart query context does not exist" msgstr "Le graphique n'existe pas" msgid "" -"The classic. Great for showing how much of a company each investor gets, " -"what demographics follow your blog, or what portion of the budget goes to" -" the military industrial complex.\n" +"The classic. Great for showing how much of a company each investor gets, what " +"demographics follow your blog, or what portion of the budget goes to the military " +"industrial complex.\n" "\n" -" Pie charts can be difficult to interpret precisely. If clarity of" -" relative proportion is important, consider using a bar or other chart " -"type instead." +" Pie charts can be difficult to interpret precisely. If clarity of relative " +"proportion is important, consider using a bar or other chart type instead." msgstr "" -"Le classique. Il est idéal pour montrer la part de chaque investisseur " -"dans la société, les groupes démographiques qui suivent votre blog ou la " -"part du budget allouée au complexe militaro-industriel. Les " -"diagrammes circulaires peuvent être difficiles à interpréter avec " -"précision. Si la clarté des proportions relatives est importante, " -"envisagez plutôt d'utiliser un diagramme à barres ou un autre type de " -"diagramme." +"Le classique. Il est idéal pour montrer la part de chaque investisseur dans la " +"société, les groupes démographiques qui suivent votre blog ou la part du budget " +"allouée au complexe militaro-industriel. Les diagrammes circulaires peuvent " +"être difficiles à interpréter avec précision. Si la clarté des proportions " +"relatives est importante, envisagez plutôt d'utiliser un diagramme à barres ou un " +"autre type de diagramme." msgid "The color for points and clusters in RGB" msgstr "La couleur des points et des grappes en RVB" @@ -11663,9 +11437,8 @@ msgid "" "The color scheme is determined by the related dashboard.\n" " Edit the color scheme in the dashboard properties." msgstr "" -"La palette de couleurs est déterminée par le tableau de bord " -"correspondant. Modifiez la palette de couleurs dans les propriétés" -" du tableau de bord." +"La palette de couleurs est déterminée par le tableau de bord correspondant. " +"Modifiez la palette de couleurs dans les propriétés du tableau de bord." #, fuzzy msgid "The column header label" @@ -11681,11 +11454,9 @@ msgid "The column was deleted or renamed in the database." msgstr "La colonne a été supprimée ou renommée dans la base de données." msgid "" -"The country code standard that Superset should expect to find in the " -"[country] column" -msgstr "" -"Le code pays standard que Superset s'attend à trouver dans la colonne " -"[pays]." +"The country code standard that Superset should expect to find in the [country] " +"column" +msgstr "Le code pays standard que Superset s'attend à trouver dans la colonne [pays]" msgid "The dashboard has been saved" msgstr "Ce tableau de bord a été sauvegardé" @@ -11694,31 +11465,29 @@ msgid "The data source seems to have been deleted" msgstr "La source de données semble avoir été effacée" msgid "" -"The data type that was inferred by the database. It may be necessary to " -"input a type manually for expression-defined columns in some cases. In " -"most case users should not need to alter this." +"The data type that was inferred by the database. It may be necessary to input a " +"type manually for expression-defined columns in some cases. In most case users " +"should not need to alter this." msgstr "" -"Le type de donnée inféré par la base de données. Il peut être nécessaire " -"de le rentrer manuellement pour les colonnes définissant des expressions " -"dans certains cas. Dans la plupart des cas il n'est pas nécessaire de le " -"modifier." +"Le type de donnée inféré par la base de données. Il peut être nécessaire de le " +"rentrer manuellement pour les colonnes définissant des expressions dans certains " +"cas. Dans la plupart des cas il n'est pas nécessaire de le modifier." #, python-format msgid "" -"The database %s is linked to %s charts that appear on %s dashboards and " -"users have %s SQL Lab tabs using this database open. Are you sure you " -"want to continue? Deleting the database will break those objects." +"The database %s is linked to %s charts that appear on %s dashboards and users have " +"%s SQL Lab tabs using this database open. Are you sure you want to continue? " +"Deleting the database will break those objects." msgstr "" -"La base de données %s est liée à %s graphiques qui apparaissent sur %s " -"tableaux de bord et les utilisateurs ont des onglets %s SQL Lab ouverts " -"qui utilisent cette base de données. Êtes-vous sûr de vouloir continuer? " -"Supprimer la base de données brisera ces objets." +"La base de données %s est liée à %s graphiques qui apparaissent sur %s tableaux de " +"bord et les utilisateurs ont des onglets %s SQL Lab ouverts qui utilisent cette " +"base de données. Êtes-vous sûr de vouloir continuer? Supprimer la base de données " +"brisera ces objets." #, fuzzy msgid "The database columns that contains lines information" msgstr "" -"Les colonnes de la base de données qui contiennent les informations sur " -"les lignes" +"Les colonnes de la base de données qui contiennent les informations sur les lignes" #, fuzzy msgid "The database could not be found" @@ -11734,9 +11503,8 @@ msgid "" "The database referenced in this query was not found. Please contact an " "administrator for further assistance or try again." msgstr "" -"Impossible de trouver la base de données référencée dans cette requête. " -"Veuillez contacter un administrateur pour obtenir davantage d'aide ou " -"essayez à nouveau." +"Impossible de trouver la base de données référencée dans cette requête. Veuillez " +"contacter un administrateur pour obtenir davantage d'aide ou essayez à nouveau." msgid "The database returned an unexpected error." msgstr "La base de données a renvoyé une erreur inattendue." @@ -11753,13 +11521,12 @@ msgstr "Base de données introuvable." #, python-format msgid "" -"The dataset %s is linked to %s charts that appear on %s dashboards. Are " -"you sure you want to continue? Deleting the dataset will break those " -"objects." +"The dataset %s is linked to %s charts that appear on %s dashboards. Are you sure " +"you want to continue? Deleting the dataset will break those objects." msgstr "" -"L'ensemble de données %s est lié aux graphiques %s qui apparaissent dans " -"%s tableaux de bord. Êtes-vous sûr de vouloir continuer? La suppression " -"de l'ensemble de données brisera ces objets." +"L'ensemble de données %s est lié aux graphiques %s qui apparaissent dans %s " +"tableaux de bord. Êtes-vous sûr de vouloir continuer? La suppression de l'ensemble " +"de données brisera ces objets." msgid "The dataset associated with this chart no longer exists" msgstr "L’ensemble de donnée associé à ce graphique n'existe plus" @@ -11777,10 +11544,10 @@ msgid "" " here may affect other charts\n" " in undesirable ways." msgstr "" -"La configuration du jeu de donnée indiqué ici s'applique à" -" tous les graphiques utilisant ce ensemble de données. " -"Rappelez vous que changer ces paramètres peut affecter " -"d'autres graphiques de manière non voulue." +"La configuration du jeu de donnée indiqué ici s'applique à tous les " +"graphiques utilisant ce ensemble de données. Rappelez vous que " +"changer ces paramètres peut affecter d'autres " +"graphiques de manière non voulue." msgid "The dataset has been saved" msgstr "L’ensemble de données a été sauvegardé" @@ -11801,47 +11568,45 @@ msgid "The default schema that should be used for the connection." msgstr "" msgid "" -"The description can be displayed as widget headers in the dashboard view." -" Supports markdown." +"The description can be displayed as widget headers in the dashboard view. Supports " +"markdown." msgstr "" -"La description peut être affichée comme des widgets d'entête dans la vue " -"tableau de bord. Prend en charge le Markdown." +"La description peut être affichée comme des widgets d'entête dans la vue tableau " +"de bord. Prend en charge le Markdown." msgid "The distance between cells, in pixels" msgstr "La distance entre les cellules, en pixels" #, fuzzy msgid "" -"The duration of time in seconds before the cache is invalidated. Set to " -"-1 to bypass the cache." +"The duration of time in seconds before the cache is invalidated. Set to -1 to " +"bypass the cache." msgstr "" -"Durée en secondes avant l'invalidation du cache. La valeur -1 permet de " -"contourner le cache." +"Durée en secondes avant l'invalidation du cache. La valeur -1 permet de contourner " +"le cache." #, fuzzy msgid "The encoding format of the lines" msgstr "Mesure servant à trier les résultats" msgid "" -"The engine_params object gets unpacked into the sqlalchemy.create_engine " -"call." +"The engine_params object gets unpacked into the sqlalchemy.create_engine call." msgstr "" -"L'objet engine_params contient les paramètres envoyés à " -"sqlalchemy.create_engine appel." +"L'objet engine_params contient les paramètres envoyés à sqlalchemy.create_engine " +"appel." #, python-format msgid "" -"The following entries in `series_columns` are missing in `columns`: " -"%(columns)s. " +"The following entries in `series_columns` are missing in `columns`: %(columns)s. " msgstr "" -"Les entrées suivantes dans « series_columns » sont manquantes dans « " -"columns » : %(columns)s. " +"Les entrées suivantes dans « series_columns » sont manquantes dans « columns » : " +"%(columns)s. " #, python-format msgid "" "The following filters have the 'Select first filter value by default'\n" -" option checked and could not be loaded, which is " -"preventing the dashboard\n" +" option checked and could not be loaded, which is preventing " +"the dashboard\n" " from rendering: %s" msgstr "" @@ -11850,31 +11615,27 @@ msgstr "La fonction à utiliser lors de l’agrégation de points en groupes" msgid "" "The histogram chart displays the distribution of a dataset by\n" -" representing the frequency or count of values within different " -"ranges or bins.\n" -" It helps visualize patterns, clusters, and outliers in the data" -" and provides\n" +" representing the frequency or count of values within different ranges or " +"bins.\n" +" It helps visualize patterns, clusters, and outliers in the data and " +"provides\n" " insights into its shape, central tendency, and spread." msgstr "" #, python-format msgid "The host \"%(hostname)s\" might be down and can't be reached." -msgstr "" -"L'hôte « %(hostname)s » est peut-être hors-service et ne peut être " -"atteint." +msgstr "L'hôte « %(hostname)s » est peut-être hors-service et ne peut être atteint." #, python-format msgid "" -"The host \"%(hostname)s\" might be down, and can't be reached on port " -"%(port)s." +"The host \"%(hostname)s\" might be down, and can't be reached on port %(port)s." msgstr "" -"L'hôte « %(hostname)s » est peut-être hors-service et ne peut être " -"atteint sur le port %(port)s." +"L'hôte « %(hostname)s » est peut-être hors-service et ne peut être atteint sur le " +"port %(port)s." msgid "The host might be down, and can't be reached on the provided port." msgstr "" -"L'hôte est peut-être hors-service et ne peut être atteint sur le port " -"fourni." +"L'hôte est peut-être hors-service et ne peut être atteint sur le port fourni." #, python-format msgid "The hostname \"%(hostname)s\" cannot be resolved." @@ -11887,73 +11648,65 @@ msgid "The id of the active chart" msgstr "L'identifiant du graphique actif" msgid "" -"The list of charts associated with this table. By altering this " -"datasource, you may change how these associated charts behave. Also note " -"that charts need to point to a datasource, so this form will fail at " -"saving if removing charts from a datasource. If you want to change the " -"datasource for a chart, overwrite the chart from the 'explore view'" +"The list of charts associated with this table. By altering this datasource, you " +"may change how these associated charts behave. Also note that charts need to point " +"to a datasource, so this form will fail at saving if removing charts from a " +"datasource. If you want to change the datasource for a chart, overwrite the chart " +"from the 'explore view'" msgstr "" -"La liste des graphiques associés à ce tableau. En modifiant cette source " -"de données, vous pouvez changer le comportement des graphiques associés. " -"Notez également que les graphiques doivent pointer vers une source de " -"données, de sorte que ce formulaire échouera lors de l'enregistrement si " -"vous supprimez des graphiques d'une source de données. Si vous souhaitez " -"modifier la source de données d'un graphique, écrasez le graphique de la " -"« vue d'exploration »" +"La liste des graphiques associés à ce tableau. En modifiant cette source de " +"données, vous pouvez changer le comportement des graphiques associés. Notez " +"également que les graphiques doivent pointer vers une source de données, de sorte " +"que ce formulaire échouera lors de l'enregistrement si vous supprimez des " +"graphiques d'une source de données. Si vous souhaitez modifier la source de " +"données d'un graphique, écrasez le graphique de la « vue d'exploration »" msgid "The lower limit of the threshold range of the Isoband" msgstr "" msgid "The maximum number of events to return, equivalent to the number of rows" -msgstr "" -"Le nombre maximal d'événements à retourner, équivalent au nombre de " -"rangées" +msgstr "Le nombre maximal d'événements à retourner, équivalent au nombre de rangées" msgid "" -"The maximum number of subdivisions of each group; lower values are pruned" -" first" +"The maximum number of subdivisions of each group; lower values are pruned first" msgstr "" -"Le nombre maximal de subdivisions de chaque groupe; les valeurs " -"inférieures sont d’abord élaguées" +"Le nombre maximal de subdivisions de chaque groupe; les valeurs inférieures sont " +"d’abord élaguées" msgid "The maximum value of metrics. It is an optional configuration" msgstr "La valeur maximale des mesures. Il s’agit d’une configuration optionnelle" #, python-format msgid "" -"The metadata_params in Extra field is not configured correctly. The key " -"%(key)s is invalid." +"The metadata_params in Extra field is not configured correctly. The key %(key)s is " +"invalid." msgstr "" -"Le paramètre metadata_params dans Champ supplémentaire n'est pas " -"correctement configuré. La clé %(key)s est invalide." +"Le paramètre metadata_params dans Champ supplémentaire n'est pas correctement " +"configuré. La clé %(key)s est invalide." msgid "" -"The metadata_params in Extra field is not configured correctly. The key " -"%{key}s is invalid." +"The metadata_params in Extra field is not configured correctly. The key %{key}s is " +"invalid." msgstr "" -"Le paramètre metadata_params dans Champ supplémentaire n'est pas " -"correctement configuré. La clé %{key}s est invalide." +"Le paramètre metadata_params dans Champ supplémentaire n'est pas correctement " +"configuré. La clé %{key}s est invalide." + +msgid "The metadata_params object gets unpacked into the sqlalchemy.MetaData call." +msgstr "" +"L'objet metadata_params contient les paramètres envoyés à sqlalchemy. appel " +"MetaData." msgid "" -"The metadata_params object gets unpacked into the sqlalchemy.MetaData " -"call." +"The minimum number of rolling periods required to show a value. For instance if " +"you do a cumulative sum on 7 days you may want your \"Min Period\" to be 7, so " +"that all data points shown are the total of 7 periods. This will hide the \"ramp " +"up\" taking place over the first 7 periods" msgstr "" -"L'objet metadata_params contient les paramètres envoyés à sqlalchemy. " -"appel MetaData." - -msgid "" -"The minimum number of rolling periods required to show a value. For " -"instance if you do a cumulative sum on 7 days you may want your \"Min " -"Period\" to be 7, so that all data points shown are the total of 7 " -"periods. This will hide the \"ramp up\" taking place over the first 7 " -"periods" -msgstr "" -"Le nombre minimum de périodes glissantes requises pour afficher une " -"valeur. Par exemple, si vous effectuez une somme cumulative sur sept " -"jours, vous voudrez peut-être que votre « période minimale » soit de " -"sept, de sorte que tous les points de données affichés correspondent au " -"total de sept périodes. Cela cachera la « hausse » qui a lieu au cours " -"des sept premières périodes." +"Le nombre minimum de périodes glissantes requises pour afficher une valeur. Par " +"exemple, si vous effectuez une somme cumulative sur sept jours, vous voudrez peut-" +"être que votre \"période minimale\" soit de sept, de sorte que tous les points de " +"données affichés correspondent au total de sept périodes. Cela cachera la " +"\"hausse\" qui a lieu au cours des sept premières périodes" #, fuzzy msgid "The name of the rule must be unique" @@ -11967,45 +11720,42 @@ msgid "The number of bins for the histogram" msgstr "Sélectionner le nombre de rectangles pour l’histogramme" msgid "" -"The number of hours, negative or positive, to shift the time column. This" -" can be used to move UTC time to local time." +"The number of hours, negative or positive, to shift the time column. This can be " +"used to move UTC time to local time." msgstr "" -"Nombre d'heures, négatif ou positif, pour décaler la colonne de temps. " -"Cela peut être utilisé pour passer du temps UTC au temps local." +"Nombre d'heures, négatif ou positif, pour décaler la colonne de temps. Cela peut " +"être utilisé pour passer du temps UTC au temps local." #, python-format msgid "" -"The number of results displayed is limited to %(rows)d by the " -"configuration DISPLAY_MAX_ROW. Please add additional limits/filters or " -"download to csv to see more rows up to the %(limit)d limit." -msgstr "" -"Le nombre de résultats affichés est limité à %(rows)d par la " -"configuration DISPLAY_MAX_ROW. Veuillez ajouter des limites/filtres " -"supplémentaires ou télécharger en csv pour voir plus de rangées jusqu’à " -"la limite de %(limit)d." - -#, python-format -msgid "" -"The number of results displayed is limited to %(rows)d. Please add " -"additional limits/filters, download to csv, or contact an admin to see " +"The number of results displayed is limited to %(rows)d by the configuration " +"DISPLAY_MAX_ROW. Please add additional limits/filters or download to csv to see " "more rows up to the %(limit)d limit." msgstr "" -"Le nombre de résultats affichés est limité à %(rows)d. Veuillez ajouter " -"des limites/filtres supplémentaires, télécharger au format csv ou " -"contacter un administrateur pour voir plus de rangées jusqu'à la limite " -"%(limit)d." +"Le nombre de résultats affichés est limité à %(rows)d par la configuration " +"DISPLAY_MAX_ROW. Veuillez ajouter des limites/filtres supplémentaires ou " +"télécharger en csv pour voir plus de rangées jusqu’à la limite de %(limit)d." + +#, python-format +msgid "" +"The number of results displayed is limited to %(rows)d. Please add additional " +"limits/filters, download to csv, or contact an admin to see more rows up to the " +"%(limit)d limit." +msgstr "" +"Le nombre de résultats affichés est limité à %(rows)d. Veuillez ajouter des " +"limites/filtres supplémentaires, télécharger au format csv ou contacter un " +"administrateur pour voir plus de rangées jusqu'à la limite %(limit)d." #, fuzzy, python-format msgid "The number of rows displayed is limited to %(rows)d by the dropdown." msgstr "" -"Le nombre de rangées affichées est limité à %(rows)d par la liste " -"déroulante." +"Le nombre de rangées affichées est limité à %(rows)d par la liste déroulante." #, python-format msgid "The number of rows displayed is limited to %(rows)d by the limit dropdown." msgstr "" -"Le nombre de rangées affichées est limité à %(rows)d par la liste " -"déroulante de limite." +"Le nombre de rangées affichées est limité à %(rows)d par la liste déroulante de " +"limite." #, python-format msgid "The number of rows displayed is limited to %(rows)d by the query" @@ -12013,11 +11763,11 @@ msgstr "Le nombre de rangées affichées est limité à %(rows)d par la requête #, python-format msgid "" -"The number of rows displayed is limited to %(rows)d by the query and " -"limit dropdown." +"The number of rows displayed is limited to %(rows)d by the query and limit " +"dropdown." msgstr "" -"Le nombre de rangées affichées est limité à %(rows)d par la requête et " -"liste déroulante de limite." +"Le nombre de rangées affichées est limité à %(rows)d par la requête et liste " +"déroulante de limite." msgid "The number of seconds before expiring the cache" msgstr "Le nombre de secondes avant l'expiration du cache" @@ -12039,100 +11789,91 @@ msgid "The password provided when connecting to a database is not valid." msgstr "Le mot de passe fourni à une base de données est invalide." msgid "" -"The passwords for the databases below are needed in order to import them " -"together with the charts. Please note that the \"Secure Extra\" and " -"\"Certificate\" sections of the database configuration are not present in" -" export files, and should be added manually after the import if they are " -"needed." +"The passwords for the databases below are needed in order to import them together " +"with the charts. Please note that the \"Secure Extra\" and \"Certificate\" " +"sections of the database configuration are not present in export files, and should " +"be added manually after the import if they are needed." msgstr "" -"Les mots de passe pour les bases de données ci-dessous sont nécessaires " -"pour les importer en même temps que les graphiques. Notez que les " -"sections « Securité supplémentaire » et « Certificat » de la " -"configuration de la base de données ne sont pas présents dans les " -"fichiers d'export et doivent être ajoutés manuellement après l'import si " -"nécessaire." +"Les mots de passe pour les bases de données ci-dessous sont nécessaires pour les " +"importer en même temps que les graphiques. Notez que les sections « Securité " +"supplémentaire » et « Certificat » de la configuration de la base de données ne " +"sont pas présents dans les fichiers d'export et doivent être ajoutés manuellement " +"après l'import si nécessaire." msgid "" -"The passwords for the databases below are needed in order to import them " -"together with the dashboards. Please note that the \"Secure Extra\" and " -"\"Certificate\" sections of the database configuration are not present in" -" export files, and should be added manually after the import if they are " -"needed." +"The passwords for the databases below are needed in order to import them together " +"with the dashboards. Please note that the \"Secure Extra\" and \"Certificate\" " +"sections of the database configuration are not present in export files, and should " +"be added manually after the import if they are needed." msgstr "" -"Les mots de passe pour les bases de données ci-dessous sont nécessaires " -"pour les importer en même temps que les tableaux de bord. Notez que les " -"sections « Securité supplémentaire » et « Certificat » de la " -"configuration de la base de données ne sont pas présents dans les " -"fichiers d'export et doivent être ajoutés manuellement après l'import si " -"nécessaire." +"Les mots de passe pour les bases de données ci-dessous sont nécessaires pour les " +"importer en même temps que les tableaux de bord. Notez que les sections « Securité " +"supplémentaire » et « Certificat » de la configuration de la base de données ne " +"sont pas présents dans les fichiers d'export et doivent être ajoutés manuellement " +"après l'import si nécessaire." #, fuzzy msgid "" -"The passwords for the databases below are needed in order to import them " -"together with the datasets. Please note that the \"Secure Extra\" and " -"\"Certificate\" sections of the database configuration are not present in" -" export files, and should be added manually after the import if they are " -"needed." +"The passwords for the databases below are needed in order to import them together " +"with the datasets. Please note that the \"Secure Extra\" and \"Certificate\" " +"sections of the database configuration are not present in export files, and should " +"be added manually after the import if they are needed." msgstr "" -"Les mots de passe pour les bases de données ci-dessous sont nécessaires " -"pour les importer en même temps que les ensembles de données. Notez que " -"les sections « Securité supplémentaire » et « Certificat » de la " -"configuration de la base de données ne sont pas présents dans les " -"fichiers d'export et doivent être ajoutés manuellement après l'import si " -"nécessaire." +"Les mots de passe pour les bases de données ci-dessous sont nécessaires pour les " +"importer en même temps que les ensembles de données. Notez que les sections " +"« Securité supplémentaire » et « Certificat » de la configuration de la base de " +"données ne sont pas présents dans les fichiers d'export et doivent être ajoutés " +"manuellement après l'import si nécessaire." msgid "" -"The passwords for the databases below are needed in order to import them " -"together with the saved queries. Please note that the \"Secure Extra\" " -"and \"Certificate\" sections of the database configuration are not " -"present in export files, and should be added manually after the import if" -" they are needed." +"The passwords for the databases below are needed in order to import them together " +"with the saved queries. Please note that the \"Secure Extra\" and \"Certificate\" " +"sections of the database configuration are not present in export files, and should " +"be added manually after the import if they are needed." msgstr "" -"Les mots de passe pour les bases de données ci-dessous sont nécessaires " -"pour les importer en même temps que les requêtes enregistrées. Notez que " -"les sections « Securité supplémentaire » et « Certificat » de la " -"configuration de la base de données ne sont pas présents dans les " -"fichiers d'export et doivent être ajoutés manuellement après l'import si " -"nécessaire." +"Les mots de passe pour les bases de données ci-dessous sont nécessaires pour les " +"importer en même temps que les requêtes enregistrées. Notez que les sections " +"« Securité supplémentaire » et « Certificat » de la configuration de la base de " +"données ne sont pas présents dans les fichiers d'export et doivent être ajoutés " +"manuellement après l'import si nécessaire." #, fuzzy msgid "" -"The passwords for the databases below are needed in order to import them." -" Please note that the \"Secure Extra\" and \"Certificate\" sections of " -"the database configuration are not present in explore files and should be" -" added manually after the import if they are needed." +"The passwords for the databases below are needed in order to import them. Please " +"note that the \"Secure Extra\" and \"Certificate\" sections of the database " +"configuration are not present in explore files and should be added manually after " +"the import if they are needed." msgstr "" -"Les mots de passe des bases de données ci-dessous sont nécessaires pour " -"les importer. Veuillez noter que les sections « Securité supplémentaire »" -" et « Certificat » de la configuration de la base de données ne sont pas " -"présentes dans les fichiers d'exploration et doivent être ajoutées " -"manuellement après l'importation si elles sont nécessaires." +"Les mots de passe des bases de données ci-dessous sont nécessaires pour les " +"importer. Veuillez noter que les sections « Securité supplémentaire » et " +"« Certificat » de la configuration de la base de données ne sont pas présentes " +"dans les fichiers d'exploration et doivent être ajoutées manuellement après " +"l'importation si elles sont nécessaires." msgid "The pattern of timestamp format. For strings use " -msgstr "Le modèle de format d'horodatage. Pour les chaînes, utilisez" +msgstr "Le modèle de format d'horodatage. Pour les chaînes de caractères, utilisez " msgid "" "The periodicity over which to pivot time. Users can provide\n" " \"Pandas\" offset alias.\n" -" Click on the info bubble for more details on accepted " -"\"freq\" expressions." +" Click on the info bubble for more details on accepted \"freq\" " +"expressions." msgstr "" -"La périodicité sur laquelle pivoter le temps. Les utilisateurs peuvent " -"fournir un alias de décalage « Pandas ». Cliquez sur la bulle " -"d'information pour plus de détails sur les expressions « freq » " -"acceptées." +"La périodicité sur laquelle pivoter le temps. Les utilisateurs peuvent fournir un " +"alias de décalage « Pandas ». Cliquez sur la bulle d'information pour " +"plus de détails sur les expressions « freq » acceptées." msgid "The pixel radius" msgstr "Rayon des pixels" msgid "" -"The pointer to a physical table (or view). Keep in mind that the chart is" -" associated to this Superset logical table, and this logical table points" -" the physical table referenced here." +"The pointer to a physical table (or view). Keep in mind that the chart is " +"associated to this Superset logical table, and this logical table points the " +"physical table referenced here." msgstr "" -"Pointeur vers une table physique (ou une vue). Gardez à l'esprit que le " -"graphique est associé à ce tableau logique Superset et que ce tableau " -"logique pointe vers le tableau physique décrit ici." +"Pointeur vers une table physique (ou une vue). Gardez à l'esprit que le graphique " +"est associé à ce tableau logique Superset et que ce tableau logique pointe vers le " +"tableau physique décrit ici." msgid "The port is closed." msgstr "Le port est fermé." @@ -12142,8 +11883,7 @@ msgstr "Le numéro de port est invalide." msgid "The primary metric is used to define the arc segment sizes" msgstr "" -"La mesure principale est utilisée pour définir les tailles des segments " -"d’arc" +"La mesure principale est utilisée pour définir les tailles des segments d’arc" #, fuzzy msgid "The provided table was not found in the provided database" @@ -12153,11 +11893,11 @@ msgid "The query associated with the results was deleted." msgstr "La requête associée aux résutlats a été supprimée." msgid "" -"The query associated with these results could not be found. You need to " -"re-run the original query." +"The query associated with these results could not be found. You need to re-run the " +"original query." msgstr "" -"La requête associée à ces résultats n'a pas pu être trouvée. Vous devez " -"réexécuter la requête originale." +"La requête associée à ces résultats n'a pas pu être trouvée. Vous devez réexécuter " +"la requête originale." msgid "The query contains one or more malformed template parameters." msgstr "Cette requête contient un ou plusieurs paramètres de modèle malformés." @@ -12167,12 +11907,12 @@ msgstr "La requête ne peut pas être chargée" #, fuzzy, python-format msgid "" -"The query estimation was killed after %(sqllab_timeout)s seconds. It " -"might be too complex, or the database might be under heavy load." +"The query estimation was killed after %(sqllab_timeout)s seconds. It might be too " +"complex, or the database might be under heavy load." msgstr "" -"L’estimation de requête a été interrompue après %(sqllab_timeout)s " -"secondes. Elle est peut-être trop complexe ou la base de donnée est " -"soumise à une charge trop importante." +"L’estimation de requête a été interrompue après %(sqllab_timeout)s secondes. Elle " +"est peut-être trop complexe ou la base de donnée est soumise à une charge trop " +"importante." msgid "The query has a syntax error." msgstr "La requête a une erreur de syntaxe." @@ -12182,30 +11922,27 @@ msgstr "La requête n'a pas retourné de résultat" #, python-format msgid "" -"The query was killed after %(sqllab_timeout)s seconds. It might be too " -"complex, or the database might be under heavy load." +"The query was killed after %(sqllab_timeout)s seconds. It might be too complex, or " +"the database might be under heavy load." msgstr "" -"La requête a été interrompue après %(sqllab_timeout)s secondes. Elle est " -"peut-être trop complexe ou la base de donnée est soumise à une charge " -"trop importante." +"La requête a été interrompue après %(sqllab_timeout)s secondes. Elle est peut-être " +"trop complexe ou la base de donnée est soumise à une charge trop importante." msgid "" -"The radius (in pixels) the algorithm uses to define a cluster. Choose 0 " -"to turn off clustering, but beware that a large number of points (>1000) " -"will cause lag." +"The radius (in pixels) the algorithm uses to define a cluster. Choose 0 to turn " +"off clustering, but beware that a large number of points (>1000) will cause lag." msgstr "" -"Rayon (en pixels) utilisé par l’algorithme pour définir une grappe. " -"Choisissez 0 pour désactiver la mise en grappe, mais faites attention, " -"car un grand nombre de points (>1 000) causera un décalage." +"Rayon (en pixels) utilisé par l’algorithme pour définir une grappe. Choisissez 0 " +"pour désactiver la mise en grappe, mais faites attention, car un grand nombre de " +"points (>1 000) causera un décalage." msgid "" -"The radius of individual points (ones that are not in a cluster). Either " -"a numerical column or `Auto`, which scales the point based on the largest" -" cluster" +"The radius of individual points (ones that are not in a cluster). Either a " +"numerical column or `Auto`, which scales the point based on the largest cluster" msgstr "" -"Le rayon des points individuels (ceux qui ne sont pas dans une grappe). " -"Une colonne numérique ou « Auto », qui met à l’échelle le point en " -"fonction de la plus grande grappe" +"Le rayon des points individuels (ceux qui ne sont pas dans une grappe). Une " +"colonne numérique ou « Auto », qui met à l’échelle le point en fonction de la plus " +"grande grappe" msgid "The report has been created" msgstr "Le rapport a été créé" @@ -12215,46 +11952,41 @@ msgid "The report will be sent to your email at" msgstr "Les rapports planifiés seront envoyés à votre adresse courriel à" msgid "" -"The result of this query must be a value capable of numeric " -"interpretation e.g. 1, 1.0, or \"1\" (compatible with Python's float() " -"function)." +"The result of this query must be a value capable of numeric interpretation e.g. 1, " +"1.0, or \"1\" (compatible with Python's float() function)." msgstr "" msgid "The results backend no longer has the data from the query." msgstr "Le programme dorsal des résultats n'a plus les données de la requête." msgid "" -"The results stored in the backend were stored in a different format, and " -"no longer can be deserialized." +"The results stored in the backend were stored in a different format, and no longer " +"can be deserialized." msgstr "" -"Les résultats stockés dans le programme dorsal le sont dans un format " -"différent et ne peuvent plus être déserialisés." +"Les résultats stockés dans le programme dorsal le sont dans un format différent et " +"ne peuvent plus être déserialisés." msgid "The rich tooltip shows a list of all series for that point in time" -msgstr "" -"L’infobulle détaillée affiche une liste de toutes les séries pour ce " -"moment" +msgstr "L’infobulle détaillée affiche une liste de toutes les séries pour ce moment" -msgid "" -"The row limit set for the chart was reached. The chart may show partial " -"data." +msgid "The row limit set for the chart was reached. The chart may show partial data." msgstr "" #, python-format msgid "" -"The schema \"%(schema)s\" does not exist. A valid schema must be used to " -"run this query." +"The schema \"%(schema)s\" does not exist. A valid schema must be used to run this " +"query." msgstr "" -"Le schéma « %(schema)s » n'existe pas. Un schéma valide doit être utilisé" -" pour cette requête." +"Le schéma « %(schema)s » n'existe pas. Un schéma valide doit être utilisé pour " +"cette requête." #, python-format msgid "" -"The schema \"%(schema_name)s\" does not exist. A valid schema must be " -"used to run this query." +"The schema \"%(schema_name)s\" does not exist. A valid schema must be used to run " +"this query." msgstr "" -"Le schéma « %(schema_name)s » n'existe pas. Un schéma valide doit être " -"utilisé pour cette requête." +"Le schéma « %(schema_name)s » n'existe pas. Un schéma valide doit être utilisé " +"pour cette requête." msgid "The schema of the submitted payload is invalid." msgstr "" @@ -12289,89 +12021,85 @@ msgstr "Les données utiles soumises ont un schéma incorrect." #, python-format msgid "" -"The table \"%(table)s\" does not exist. A valid table must be used to run" -" this query." +"The table \"%(table)s\" does not exist. A valid table must be used to run this " +"query." msgstr "" -"Le tableau « %(table)s » n'existe pas. Un tableau valide doit être " -"utilisé pour cette requête." +"Le tableau « %(table)s » n'existe pas. Un tableau valide doit être utilisé pour " +"cette requête." #, python-format msgid "" -"The table \"%(table_name)s\" does not exist. A valid table must be used " -"to run this query." +"The table \"%(table_name)s\" does not exist. A valid table must be used to run " +"this query." msgstr "" -"Le tableau « %(table_name)s » n'existe pas. Un tableau valide doit être " -"utilisé pour cette requête." +"Le tableau « %(table_name)s » n'existe pas. Un tableau valide doit être utilisé " +"pour cette requête." msgid "" -"The table was created. As part of this two-phase configuration process, " -"you should now click the edit button by the new table to configure it." +"The table was created. As part of this two-phase configuration process, you should " +"now click the edit button by the new table to configure it." msgstr "" -"Le tableau a été créé. Dans le cadre de cette configuration en deux " -"étapes, vous devez maintenant cliquer sur le bouton d'édition du nouveau " -"tableau pour la configurer." +"Le tableau a été créé. Dans le cadre de cette configuration en deux étapes, vous " +"devez maintenant cliquer sur le bouton d'édition du nouveau tableau pour la " +"configurer." msgid "The table was deleted or renamed in the database." msgstr "Le tableau a été supprimé ou renommé dans la base de données." msgid "" -"The time column for the visualization. Note that you can define arbitrary" -" expression that return a DATETIME column in the table. Also note that " -"the filter below is applied against this column or expression" +"The time column for the visualization. Note that you can define arbitrary " +"expression that return a DATETIME column in the table. Also note that the filter " +"below is applied against this column or expression" msgstr "" "La colonne temps pour la visualisation. Notez que vous pouvez définir " -"arbitrairement l'expression que retourne la colonne DATETIME dans le " -"tableau. Veuillez aussi noter que le filtre ci-dessous est appliqué à " -"cette colonne ou expression" +"arbitrairement l'expression que retourne la colonne DATETIME dans le tableau. " +"Veuillez aussi noter que le filtre ci-dessous est appliqué à cette colonne ou " +"expression" msgid "" -"The time granularity for the visualization. Note that you can type and " -"use simple natural language as in `10 seconds`, `1 day` or `56 weeks`" +"The time granularity for the visualization. Note that you can type and use simple " +"natural language as in `10 seconds`, `1 day` or `56 weeks`" msgstr "" -"La granularité temporelle pour la visualisation. Noter que vous pouvez " -"taper et utiliser le langage naturel comme « 10 secondes », « 1 jour » ou" -" « 56 semaines »" +"La granularité temporelle pour la visualisation. Noter que vous pouvez taper et " +"utiliser le langage naturel comme « 10 secondes », « 1 jour » ou « 56 semaines »" msgid "" -"The time granularity for the visualization. Note that you can type and " -"use simple natural language as in `10 seconds`,`1 day` or `56 weeks`" +"The time granularity for the visualization. Note that you can type and use simple " +"natural language as in `10 seconds`,`1 day` or `56 weeks`" msgstr "" -"La granularité temporelle pour la visualisation. Noter que vous pouvez " -"taper et utiliser le langage naturel comme « 10 secondes », « 1 jour » ou" -" « 56 semaines »" +"La granularité temporelle pour la visualisation. Noter que vous pouvez taper et " +"utiliser le langage naturel comme « 10 secondes », « 1 jour » ou « 56 semaines »" msgid "" -"The time granularity for the visualization. This applies a date " -"transformation to alter your time column and defines a new time " -"granularity. The options here are defined on a per database engine basis " -"in the Superset source code." +"The time granularity for the visualization. This applies a date transformation to " +"alter your time column and defines a new time granularity. The options here are " +"defined on a per database engine basis in the Superset source code." msgstr "" -"Le granularité de temps pour la visualisation. Ceci applique une " -"transformation de date pour modifier votre colonne de temps et définit " -"une nouvelle granularité de temps. Les options ici sont définies pour " -"chaque type de SGBD dans le code source de Superset." +"Le granularité de temps pour la visualisation. Ceci applique une transformation de " +"date pour modifier votre colonne de temps et définit une nouvelle granularité de " +"temps. Les options ici sont définies pour chaque type de SGBD dans le code source " +"de Superset." msgid "" -"The time range for the visualization. All relative times, e.g. \"Last " -"month\", \"Last 7 days\", \"now\", etc. are evaluated on the server using" -" the server's local time (sans timezone). All tooltips and placeholder " -"times are expressed in UTC (sans timezone). The timestamps are then " -"evaluated by the database using the engine's local timezone. Note one can" -" explicitly set the timezone per the ISO 8601 format if specifying either" -" the start and/or end time." +"The time range for the visualization. All relative times, e.g. \"Last month\", " +"\"Last 7 days\", \"now\", etc. are evaluated on the server using the server's " +"local time (sans timezone). All tooltips and placeholder times are expressed in " +"UTC (sans timezone). The timestamps are then evaluated by the database using the " +"engine's local timezone. Note one can explicitly set the timezone per the ISO 8601 " +"format if specifying either the start and/or end time." msgstr "" -"L'intervalle de temps pour la visualisation. Tous les temps relatifs, par" -" exemple « Mois dernier », « 7 derniers jours », « maintenant », etc. " -"sont évalués sur le serveur en utilisant l'heure locale du serveur (sans " -"fuseau horaire). Toutes les infobulles et les heures des « espaces " -"réservés » sont exprimées en UTC (sans fuseau). Les horodatages sont " -"alors évalués par la base données en utilisant le fuseau horaire local du" -" serveur. Notez que l'on peut indiquer explicitement la fuseau horaire " -"dans le format ISO 8601 quand on spécifie l'heure de début et/ou de fin." +"L'intervalle de temps pour la visualisation. Tous les temps relatifs, par exemple " +"« Mois dernier », « 7 derniers jours », « maintenant », etc. sont évalués sur le " +"serveur en utilisant l'heure locale du serveur (sans fuseau horaire). Toutes les " +"infobulles et les heures des « espaces réservés » sont exprimées en UTC (sans " +"fuseau). Les horodatages sont alors évalués par la base données en utilisant le " +"fuseau horaire local du serveur. Notez que l'on peut indiquer explicitement la " +"fuseau horaire dans le format ISO 8601 quand on spécifie l'heure de début et/ou de " +"fin." msgid "" -"The time unit for each block. Should be a smaller unit than " -"domain_granularity. Should be larger or equal to Time Grain" +"The time unit for each block. Should be a smaller unit than domain_granularity. " +"Should be larger or equal to Time Grain" msgstr "" "L’unité de temps pour chaque bloc. Doit être une unité plus petite que " "domain_granularity. Doit être plus grand ou égal au fragment de temps" @@ -12393,8 +12121,8 @@ msgstr "L'utilisateur·rice semble avoir été effacé·e" msgid "The user/password combination is not valid (Incorrect password for user)." msgstr "" -"La combinaison utilisateur·rice/mot de passe n'est pas valide (mot de " -"passe incorrect pour l’utilisateur·rice)." +"La combinaison utilisateur·rice/mot de passe n'est pas valide (mot de passe " +"incorrect pour l’utilisateur·rice)." #, python-format msgid "The username \"%(username)s\" does not exist." @@ -12402,8 +12130,8 @@ msgstr "L’utilisateur·rice « %(username)s » n'existe pas." msgid "The username provided when connecting to a database is not valid." msgstr "" -"Le nom d'utilisateur·rice fourni lors de la connexion à une base de " -"données n'est pas valide." +"Le nom d'utilisateur·rice fourni lors de la connexion à une base de données n'est " +"pas valide." msgid "The way the ticks are laid out on the X-axis" msgstr "La façon dont les points de repères sont disposés sur l’axe des absisses" @@ -12439,37 +12167,36 @@ msgid "There are unsaved changes." msgstr "Il existe des changements non enregistrés." msgid "" -"There is a syntax error in the SQL query. Perhaps there was a misspelling" -" or a typo." +"There is a syntax error in the SQL query. Perhaps there was a misspelling or a " +"typo." msgstr "" -"Il y a une erreur de syntaxe dans la requête SQL. Peut-être une faute de " -"frappe." +"Il y a une erreur de syntaxe dans la requête SQL. Peut-être une faute de frappe." msgid "" -"There is no chart definition associated with this component, could it " -"have been deleted?" +"There is no chart definition associated with this component, could it have been " +"deleted?" msgstr "" -"Il n'y a pas de définition de graphique associé à ce composant. A-t-il " -"été supprimé?" +"Il n'y a pas de définition de graphique associé à ce composant. A-t-il été " +"supprimé?" msgid "" -"There is not enough space for this component. Try decreasing its width, " -"or increasing the destination width." +"There is not enough space for this component. Try decreasing its width, or " +"increasing the destination width." msgstr "" -"Espace insuffisant pour ce composant. Diminuez sa largeur ou augmentez la" -" largeur de destination." +"Espace insuffisant pour ce composant. Diminuez sa largeur ou augmentez la largeur " +"de destination." #, fuzzy msgid "There was an error fetching dataset" msgstr "" -"Désolé, une erreur s'est produite lors de la récupération des " -"informations de cet ensemble de données" +"Désolé, une erreur s'est produite lors de la récupération des informations de cet " +"ensemble de données" #, fuzzy msgid "There was an error fetching dataset's related objects" msgstr "" -"Désolé, une erreur s'est produite lors de la récupération des " -"informations de cette base de données : " +"Désolé, une erreur s'est produite lors de la récupération des informations de " +"cette base de données : " #, fuzzy, python-format msgid "There was an error fetching the favorite status: %s" @@ -12490,8 +12217,8 @@ msgstr "Une erreur s'est produite lors de la récupération des données de grap #, fuzzy msgid "There was an error loading the dataset metadata" msgstr "" -"Une erreur s'est produite lors du chargement des métadonnées de " -"l'ensemble de données" +"Une erreur s'est produite lors du chargement des métadonnées de l'ensemble de " +"données" msgid "There was an error loading the schemas" msgstr "Une erreur s'est produite lors de la récupération des schémas" @@ -12501,9 +12228,7 @@ msgstr "Une erreur s'est produite lors de la récupération des tableaux" #, fuzzy, python-format msgid "There was an error saving the favorite status: %s" -msgstr "" -"Une erreur s'est produite lors de l'enregistrement du statut de favori : " -"%s" +msgstr "Une erreur s'est produite lors de l'enregistrement du statut de favori : %s" msgid "There was an error with your request" msgstr "Il y avait une erreur avec vore requête" @@ -12523,17 +12248,15 @@ msgstr "Il y a eu un problème lors de la suppression des %s sélectionné(e)s  #, python-format msgid "There was an issue deleting the selected annotations: %s" msgstr "" -"Il y a eu un problème lors de la suppression des annotations " -"sélectionnées : %s" +"Il y a eu un problème lors de la suppression des annotations sélectionnées : %s" #, python-format msgid "There was an issue deleting the selected charts: %s" msgstr "" -"Il y a eu un problème lors de la suppression des graphiques sélectionnés " -": %s" +"Il y a eu un problème lors de la suppression des graphiques sélectionnés : %s" msgid "There was an issue deleting the selected dashboards: " -msgstr "Il y a eu un problème lors de la suppression des graphiques sélectionnés :" +msgstr "Il y a eu un problème lors de la suppression des graphiques sélectionnés: " #, python-format msgid "There was an issue deleting the selected datasets: %s" @@ -12543,21 +12266,15 @@ msgstr "" #, python-format msgid "There was an issue deleting the selected layers: %s" -msgstr "" -"Il y a eu un problème lors de la suppression des couches sélectionnées : " -"%s" +msgstr "Il y a eu un problème lors de la suppression des couches sélectionnées : %s" #, python-format msgid "There was an issue deleting the selected queries: %s" -msgstr "" -"Il y a eu un problème lors de la suppression des requêtes sélectionnées :" -" %s" +msgstr "Il y a eu un problème lors de la suppression des requêtes sélectionnées : %s" #, python-format msgid "There was an issue deleting the selected templates: %s" -msgstr "" -"Il y a eu un problème lors de la suppression des modèles sélectionnées : " -"%s" +msgstr "Il y a eu un problème lors de la suppression des modèles sélectionnées : %s" #, python-format msgid "There was an issue deleting: %s" @@ -12570,21 +12287,19 @@ msgstr "Il y a eu un problème de duplication de l'ensemble de données." #, fuzzy, python-format msgid "There was an issue duplicating the selected datasets: %s" msgstr "" -"Il y a eu un problème de duplication des ensembles de données " -"sélectionnés : %s" +"Il y a eu un problème de duplication des ensembles de données sélectionnés : %s" msgid "There was an issue favoriting this dashboard." msgstr "Il y a eu un problème pour mettre ce tableau de bord en favori." msgid "There was an issue fetching reports attached to this dashboard." msgstr "" -"Désolé, une erreur s'est produite lors de la récupération des rapports de" -" ce tableau de bord." +"Désolé, une erreur s'est produite lors de la récupération des rapports de ce " +"tableau de bord." msgid "There was an issue fetching the favorite status of this dashboard." msgstr "" -"Il y a eu un problème pour récupérer le statut de favori de ce tableau de" -" bord." +"Il y a eu un problème pour récupérer le statut de favori de ce tableau de bord." #, fuzzy, python-format msgid "There was an issue fetching your chart: %s" @@ -12593,62 +12308,56 @@ msgstr "Une erreur s'est produite lors de la récupération de votre graphique : #, fuzzy, python-format msgid "There was an issue fetching your dashboards: %s" msgstr "" -"Une erreur s'est produite lors de la récupération de vos tableaux de bord" -" : %s" +"Une erreur s'est produite lors de la récupération de vos tableaux de bord : %s" #, python-format msgid "There was an issue fetching your recent activity: %s" msgstr "" -"Une erreur s'est produite lors de lors de la récupération de votre " -"activité récente : %s" +"Une erreur s'est produite lors de lors de la récupération de votre activité " +"récente : %s" #, fuzzy, python-format msgid "There was an issue fetching your saved queries: %s" msgstr "" -"Une erreur s'est produite lors de la récupération de vos requêtes " -"sauvegardées : %s" +"Une erreur s'est produite lors de la récupération de vos requêtes sauvegardées : %s" #, python-format msgid "There was an issue previewing the selected query %s" msgstr "" -"Il y a eu un problème lors de la prévisualisation de la requête " -"sélectionnée %s" +"Il y a eu un problème lors de la prévisualisation de la requête sélectionnée %s" #, python-format msgid "There was an issue previewing the selected query. %s" msgstr "Il y a eu un problème de prévisualisation de la requête sélectionnée. %s" msgid "" -"There's a loop in your Sankey, please provide a tree. Here's a faulty " -"link: {}" +"There's a loop in your Sankey, please provide a tree. Here's a faulty link: {}" msgstr "" -"Il y a une boucle dans votre Sankey, veuillez fournir un arbre. Voici un " -"lien erroné : {}" +"Il y a une boucle dans votre Sankey, veuillez fournir un arbre. Voici un lien " +"erroné : {}" -#, fuzzy msgid "These are the datasets this filter will be applied to." -msgstr "Ce sont les tables sur lesquelles vont s'appliquer les filtres." +msgstr "Ce sont les jeux de données sur lesquelles vont s'appliquer les filtres." msgid "" -"These parameters are generated dynamically when clicking the save or " -"overwrite button in the explore view. This JSON object is exposed here " -"for reference and for power users who may want to alter specific " -"parameters." +"These parameters are generated dynamically when clicking the save or overwrite " +"button in the explore view. This JSON object is exposed here for reference and for " +"power users who may want to alter specific parameters." msgstr "" -"Ces paramètres sont générés dynamiquement lorsque vous cliquez sur le " -"bouton d'enregistrement ou d'écrasement dans la vue d'exploration. Cet " -"objet JSON est exposé ici à titre de référence et pour les utilisateurs " -"expérimentés qui souhaiteraient modifier des paramètres spécifiques." +"Ces paramètres sont générés dynamiquement lorsque vous cliquez sur le bouton " +"d'enregistrement ou d'écrasement dans la vue d'exploration. Cet objet JSON est " +"exposé ici à titre de référence et pour les utilisateurs expérimentés qui " +"souhaiteraient modifier des paramètres spécifiques." msgid "" -"This JSON object is generated dynamically when clicking the save or " -"overwrite button in the dashboard view. It is exposed here for reference " -"and for power users who may want to alter specific parameters." +"This JSON object is generated dynamically when clicking the save or overwrite " +"button in the dashboard view. It is exposed here for reference and for power users " +"who may want to alter specific parameters." msgstr "" -"Cet objet JSON est généré dynamiquement lorsque vous cliquez sur le " -"bouton enregistrer ou écraser dans la vue du tableau de bord. Il est " -"exposé ici à titre de référence et pour les utilisateurs expérimentés qui" -" souhaitent modifier des paramètres spécifiques." +"Cet objet JSON est généré dynamiquement lorsque vous cliquez sur le bouton " +"enregistrer ou écraser dans la vue du tableau de bord. Il est exposé ici à titre " +"de référence et pour les utilisateurs expérimentés qui souhaitent modifier des " +"paramètres spécifiques." #, python-format msgid "This action will permanently delete %s." @@ -12667,43 +12376,39 @@ msgid "" "This can be either an IP address (e.g. 127.0.0.1) or a domain name (e.g. " "mydatabase.com)." msgstr "" -"Cela peut être soit une adresse IP (ex 127.0.0.1) ou un nom de domaine " -"(ex mydatabase.com)." +"Cela peut être soit une adresse IP (ex 127.0.0.1) ou un nom de domaine (ex " +"mydatabase.com)." msgid "" -"This chart applies cross-filters to charts whose datasets contain columns" -" with the same name." +"This chart applies cross-filters to charts whose datasets contain columns with the " +"same name." msgstr "" -"Ce graphique applique des filtres croisés aux graphiques dont les " -"ensembles de données contiennent des colonnes du même nom." +"Ce graphique applique des filtres croisés aux graphiques dont les ensembles de " +"données contiennent des colonnes du même nom." msgid "This chart has been moved to a different filter scope." msgstr "Ce graphique a été déplacé vers un autre champ de filtrage." msgid "This chart is managed externally, and can't be edited in Superset" -msgstr "" -"Ce graphique est géré à l’externe et ne peut pas être modifié dans " -"Superset" +msgstr "Ce graphique est géré à l’externe et ne peut pas être modifié dans Superset" msgid "This chart might be incompatible with the filter (datasets don't match)" msgstr "" -"Ce graphique peut être incompatible avec le filtre (les ensembles de " -"données ne correspondent pas)" +"Ce graphique peut être incompatible avec le filtre (les ensembles de données ne " +"correspondent pas)" msgid "" -"This chart type is not supported when using an unsaved query as a chart " -"source. " +"This chart type is not supported when using an unsaved query as a chart source. " msgstr "" -"Ce type de graphique n'est pas pris en charge lors de l'utilisation d'une" -" requête non enregistrée comme source graphique. " +"Ce type de graphique n'est pas pris en charge lors de l'utilisation d'une requête " +"non enregistrée comme source graphique. " msgid "" "This color scheme is being overridden by custom label colors.\n" " Check the JSON metadata in the Advanced settings" msgstr "" "Ce schéma de couleurs est remplacé par des couleurs d’étiquettes " -"personnalisées. Vérifiez les métadonnées JSON dans les paramètres " -"avancés" +"personnalisées. Vérifiez les métadonnées JSON dans les paramètres avancés" msgid "This column might be incompatible with current dataset" msgstr "Cette colonne peut être incompatible avec l’ensemble de données actuel" @@ -12712,67 +12417,61 @@ msgid "This column must contain date/time information." msgstr "Cette colonne doit contenir une information date/heure." msgid "" -"This control filters the whole chart based on the selected time range. " -"All relative times, e.g. \"Last month\", \"Last 7 days\", \"now\", etc. " -"are evaluated on the server using the server's local time (sans " -"timezone). All tooltips and placeholder times are expressed in UTC (sans " -"timezone). The timestamps are then evaluated by the database using the " -"engine's local timezone. Note one can explicitly set the timezone per the" -" ISO 8601 format if specifying either the start and/or end time." +"This control filters the whole chart based on the selected time range. All " +"relative times, e.g. \"Last month\", \"Last 7 days\", \"now\", etc. are evaluated " +"on the server using the server's local time (sans timezone). All tooltips and " +"placeholder times are expressed in UTC (sans timezone). The timestamps are then " +"evaluated by the database using the engine's local timezone. Note one can " +"explicitly set the timezone per the ISO 8601 format if specifying either the start " +"and/or end time." msgstr "" -"Définissez une fonction qui reçoit l'entrée et produit le contenu d'une " -"info-bulle" +"Définissez une fonction qui reçoit l'entrée et produit le contenu d'une info-bulle." msgid "" "This controls whether the \"time_range\" field from the current\n" " view should be passed down to the chart containing the " "annotation data." msgstr "" -"Cela contrôle si le champ « time_range » de la vue actuelle doit être " -"transmis au graphique contenant les données d'annotation." +"Cela contrôle si le champ « time_range » de la vue actuelle doit être transmis au " +"graphique contenant les données d'annotation." msgid "" "This controls whether the time grain field from the current\n" " view should be passed down to the chart containing the " "annotation data." msgstr "" -"Cela contrôle si le champ de fragment de temps de la vue actuelle doit " -"être transmis au graphique contenant les données d'annotation." +"Cela contrôle si le champ de fragment de temps de la vue actuelle doit être " +"transmis au graphique contenant les données d'annotation." #, python-format msgid "" -"This dashboard is currently auto refreshing; the next auto refresh will " -"be in %s." +"This dashboard is currently auto refreshing; the next auto refresh will be in %s." msgstr "" -"Ce tableau de bord est en train de se rafraîchir automatiquement; le " -"prochain rafraîchissement sera dans %s." +"Ce tableau de bord est en train de se rafraîchir automatiquement; le prochain " +"rafraîchissement sera dans %s." msgid "This dashboard is managed externally, and can't be edited in Superset" msgstr "" -"Ce tableau de bord est géré à l’externe et ne peut pas être modifié dans " -"Superset" +"Ce tableau de bord est géré à l’externe et ne peut pas être modifié dans Superset" msgid "" -"This dashboard is not published which means it will not show up in the " -"list of dashboards. Favorite it to see it there or access it by using the" -" URL directly." +"This dashboard is not published which means it will not show up in the list of " +"dashboards. Favorite it to see it there or access it by using the URL directly." msgstr "" -"Ce tableau de bord n'est pas publié, il ne sera pas visible dans la liste" -" des tableaux de bord. Rendez le favori pour le voir ici ou utilisez son " -"URL pour y avoir accès." +"Ce tableau de bord n'est pas publié, il ne sera pas visible dans la liste des " +"tableaux de bord. Rendez le favori pour le voir ici ou utilisez son URL pour y " +"avoir accès." msgid "" -"This dashboard is not published, it will not show up in the list of " -"dashboards. Click here to publish this dashboard." +"This dashboard is not published, it will not show up in the list of dashboards. " +"Click here to publish this dashboard." msgstr "" -"Ce tableau de bord n'est pas publié, il ne sera pas visible dans la liste" -" des tableaux de bord. Cliquez ici pour publier ce tableau de bord." +"Ce tableau de bord n'est pas publié, il ne sera pas visible dans la liste des " +"tableaux de bord. Cliquez ici pour publier ce tableau de bord." -#, fuzzy msgid "This dashboard is now hidden" msgstr "Ce tableau de bord est maintenant caché" -#, fuzzy msgid "This dashboard is now published" msgstr "Ce tableau de bord est maintenant publié" @@ -12780,31 +12479,30 @@ msgid "This dashboard is published. Click to make it a draft." msgstr "Ce tableau de bord est publié. Cliquez pour en faire un brouillon." msgid "" -"This dashboard is ready to embed. In your application, pass the following" -" id to the SDK:" +"This dashboard is ready to embed. In your application, pass the following id to " +"the SDK:" msgstr "" -"Ce tableau de bord est prêt à être intégré. Dans votre application, " -"transmettez l’identifiant suivant au SDK :" +"Ce tableau de bord est prêt à être intégré. Dans votre application, transmettez " +"l’identifiant suivant au SDK :" msgid "This dashboard was saved successfully." msgstr "Ce Tableau de Bord a été sauvegardé avec succès." msgid "This database is managed externally, and can't be edited in Superset" msgstr "" -"Cette base de données est gérée à l’externe et ne peut pas être modifiée " -"dans Superset" +"Cette base de données est gérée à l’externe et ne peut pas être modifiée dans " +"Superset" msgid "" -"This database table does not contain any data. Please select a different " -"table." +"This database table does not contain any data. Please select a different table." msgstr "" -"Cette table de base de données ne contient aucune donnée. Veuillez " -"sélectionner un autre tableau." +"Cette table de base de données ne contient aucune donnée. Veuillez sélectionner un " +"autre tableau." msgid "This dataset is managed externally, and can't be edited in Superset" msgstr "" -"Cet ensemble de données est géré à l'externe et ne peut pas être modifié " -"dans Superset" +"Cet ensemble de données est géré à l'externe et ne peut pas être modifié dans " +"Superset" msgid "This dataset is not used to power any charts." msgstr "Cet ensemble de données n'est pas utilisé pour alimenter des graphiques." @@ -12813,86 +12511,82 @@ msgid "This defines the element to be plotted on the chart" msgstr "Ceci définit l'élément à tracer sur le graphique" msgid "" -"This field is used as a unique identifier to attach the calculated " -"dimension to charts. It is also used as the alias in the SQL query." +"This field is used as a unique identifier to attach the calculated dimension to " +"charts. It is also used as the alias in the SQL query." msgstr "" "La saisonnalité quotidienne doit-elle être appliquée? Une valeur entière " "spécifiera l'ordre Fourier de la saisonnalité." msgid "" -"This field is used as a unique identifier to attach the metric to charts." -" It is also used as the alias in the SQL query." +"This field is used as a unique identifier to attach the metric to charts. It is " +"also used as the alias in the SQL query." msgstr "" msgid "" -"This fields acts a Superset view, meaning that Superset will run a query " -"against this string as a subquery." +"This fields acts a Superset view, meaning that Superset will run a query against " +"this string as a subquery." msgstr "" -"Ce champ agit comme une vue Superset, ce qui signifie que Superset " -"exécutera une requête sur cette chaîne en tant que sous-requête." +"Ce champ agit comme une vue Superset, ce qui signifie que Superset exécutera une " +"requête sur cette chaîne en tant que sous-requête." msgid "This filter might be incompatible with current dataset" -msgstr "Ce filtre pourrait être incompatible avec l’ensemble de données actuel." +msgstr "Ce filtre pourrait être incompatible avec l’ensemble de données actuel" msgid "This functionality is disabled in your environment for security reasons." msgstr "" -"Cette fonctionnalité est désactivée dans votre environnement pour des " -"raisons de sécurité." +"Cette fonctionnalité est désactivée dans votre environnement pour des raisons de " +"sécurité." msgid "" -"This is the condition that will be added to the WHERE clause. For " -"example, to only return rows for a particular client, you might define a " -"regular filter with the clause `client_id = 9`. To display no rows unless" -" a user belongs to a RLS filter role, a base filter can be created with " -"the clause `1 = 0` (always false)." +"This is the condition that will be added to the WHERE clause. For example, to only " +"return rows for a particular client, you might define a regular filter with the " +"clause `client_id = 9`. To display no rows unless a user belongs to a RLS filter " +"role, a base filter can be created with the clause `1 = 0` (always false)." msgstr "" -"Ceci est la condition qui sera ajoutée à la clause WHERE. Par exemple, " -"pour ne retourner que les lignes d'un client particulier, vous pouvez " -"définir un filtre régulier avec la clause « client_id = 9 ». Pour " -"n'afficher aucune ligne sauf pour les utilisateur·rice·s qui " -"appartiennent à un role de filtre RLS, un filtre de base peut être créé " -"avec la clause « 1 = 0 » (toujours faux)." +"Ceci est la condition qui sera ajoutée à la clause WHERE. Par exemple, pour ne " +"retourner que les lignes d'un client particulier, vous pouvez définir un filtre " +"régulier avec la clause « client_id = 9 ». Pour n'afficher aucune ligne sauf pour " +"les utilisateur·rice·s qui appartiennent à un role de filtre RLS, un filtre de " +"base peut être créé avec la clause « 1 = 0 » (toujours faux)." msgid "" -"This json object describes the positioning of the widgets in the " -"dashboard. It is dynamically generated when adjusting the widgets size " -"and positions by using drag & drop in the dashboard view" +"This json object describes the positioning of the widgets in the dashboard. It is " +"dynamically generated when adjusting the widgets size and positions by using drag " +"& drop in the dashboard view" msgstr "" -"Cet objet json décrit le positionnement des widgets dans le tableau de " -"bord. Il est généré dynamiquement lors de l'ajustement de la taille et de" -" la position des widgets par glisser-déposer dans la vue du tableau de " -"bord." +"Cet objet json décrit le positionnement des widgets dans le tableau de bord. Il " +"est généré dynamiquement lors de l'ajustement de la taille et de la position des " +"widgets par glisser-déposer dans la vue du tableau de bord" msgid "This markdown component has an error." msgstr "Ce composant markdown comporte une erreur." msgid "This markdown component has an error. Please revert your recent changes." msgstr "" -"Ce composant markdown comporte une erreur. Reprenez vos modifications " -"récentes." +"Ce composant markdown comporte une erreur. Reprenez vos modifications récentes." msgid "This may be triggered by:" msgstr "Cela peut être déclenché par :" #, fuzzy msgid "" -"This metric is used to define row selection criteria (how the rows are " -"sorted) if a series or row limit is present. If not defined, it reverts " -"to the first metric (where appropriate)." +"This metric is used to define row selection criteria (how the rows are sorted) if " +"a series or row limit is present. If not defined, it reverts to the first metric " +"(where appropriate)." msgstr "" -"Métrique utilisée pour définir comment les séries principales sont triées" -" si une limite de série ou de ligne est définie. Si indéfini, la première" -" métrique sera utilisée (si approprié)." +"Métrique utilisée pour définir comment les séries principales sont triées si une " +"limite de série ou de ligne est définie. Si indéfini, la première métrique sera " +"utilisée (si approprié)." msgid "This metric might be incompatible with current dataset" -msgstr "Cette mesure pourrait être incompatible avec l’ensemble de données actuel." +msgstr "Cette mesure pourrait être incompatible avec l’ensemble de données actuel" msgid "This option has been disabled by the administrator." -msgstr "" +msgstr "Cette option a été désactivée par les administrateurs." msgid "" -"This page is intended to be embedded in an iframe, but it looks like that" -" is not the case." +"This page is intended to be embedded in an iframe, but it looks like that is not " +"the case." msgstr "" #, fuzzy @@ -12900,38 +12594,37 @@ msgid "" "This section allows you to configure how to use the slice\n" " to generate annotations." msgstr "" -"Cette section vous permet de configurer l'utilisation de la tranche pour " -"générer des annotations." +"Cette section vous permet de configurer l'utilisation de la tranche pour générer " +"des annotations." msgid "" -"This section contains options that allow for advanced analytical post " -"processing of query results" +"This section contains options that allow for advanced analytical post processing " +"of query results" msgstr "" -"Cette section contient des options qui permettent un post-traitement " -"analytique avancé des résultats de la requête." +"Cette section contient des options qui permettent un post-traitement analytique " +"avancé des résultats de la requête" msgid "This section contains validation errors" msgstr "Cette section contient des erreurs de validation" msgid "" -"This session has encountered an interruption, and some controls may not " -"work as intended. If you are the developer of this app, please check that" -" the guest token is being generated correctly." +"This session has encountered an interruption, and some controls may not work as " +"intended. If you are the developer of this app, please check that the guest token " +"is being generated correctly." msgstr "" -"Cette session a été interrompue et certaines commandes peuvent ne pas " -"fonctionner comme prévu. Si vous êtes le développeur·euse de cette " -"application, veuillez vérifier que le jeton d'invité est généré " -"correctement." +"Cette session a été interrompue et certaines commandes peuvent ne pas fonctionner " +"comme prévu. Si vous êtes le développeur·euse de cette application, veuillez " +"vérifier que le jeton d'invité est généré correctement." msgid "This table already has a dataset" msgstr "Ce tableau contient déjà un ensemble de données" msgid "" -"This table already has a dataset associated with it. You can only " -"associate one dataset with a table.\n" +"This table already has a dataset associated with it. You can only associate one " +"dataset with a table.\n" msgstr "" -"Ce tableau est déjà associé à un ensemble de données. Vous ne pouvez " -"associer qu'un seul ensemble de données à un tableau." +"Ce tableau est déjà associé à un ensemble de données. Vous ne pouvez associer " +"qu'un seul ensemble de données à un tableau.\n" msgid "This value should be greater than the left target value" msgstr "Cette valeur devrait être plus grande que la valeur cible de gauche" @@ -12952,9 +12645,9 @@ msgstr[0] "Cela a été déclenché par :" msgstr[1] "" msgid "" -"This will be applied to the whole table. Arrows (↑ and ↓) will be added " -"to main columns for increase and decrease. Basic conditional formatting " -"can be overwritten by conditional formatting below." +"This will be applied to the whole table. Arrows (↑ and ↓) will be added to main " +"columns for increase and decrease. Basic conditional formatting can be overwritten " +"by conditional formatting below." msgstr "" msgid "This will remove your current embed configuration." @@ -12999,8 +12692,8 @@ msgstr "Fragment de temps" #, fuzzy msgid "Time Grain must be specified when using Time Shift." msgstr "" -"Une période délimitée (à la fois début et fin) doit être spécifiée quand " -"on utilise une Comparaison de temps." +"Une période délimitée (à la fois début et fin) doit être spécifiée quand on " +"utilise une Comparaison de temps." #, fuzzy msgid "Time Granularity" @@ -13077,16 +12770,16 @@ msgid "" "Time delta in natural language\n" " (example: 24 hours, 7 days, 56 weeks, 365 days)" msgstr "" -"Delta temporel dans le langage naturel (exemple : 24 heures, 7 jours, 56 " -"semaines, 365 jours)" +"Delta temporel dans le langage naturel (exemple : 24 heures, 7 jours, 56 semaines, " +"365 jours)" #, python-format msgid "" "Time delta is ambiguous. Please specify [%(human_readable)s ago] or " "[%(human_readable)s later]." msgstr "" -"Le delta temporel est ambigu. Veuillez spécifier [%(human_readable)s ago]" -" ou [%(human_readable)s later]." +"Le delta temporel est ambigu. Veuillez spécifier [%(human_readable)s ago] ou " +"[%(human_readable)s later]." msgid "Time filter" msgstr "Filtre de temps" @@ -13141,8 +12834,8 @@ msgid "" "Time string is ambiguous. Please specify [%(human_readable)s ago] or " "[%(human_readable)s later]." msgstr "" -"La chaîne temporelle est ambigue. Veuillez spécifier [%(human_readable)s " -"ago] ou [%(human_readable)s later]." +"La chaîne temporelle est ambigue. Veuillez spécifier [%(human_readable)s ago] ou " +"[%(human_readable)s later]." #, fuzzy msgid "Time-series Area Chart (legacy)" @@ -13187,7 +12880,7 @@ msgid "Tiny" msgstr "Minuscule" msgid "Title" -msgstr "Objet :" +msgstr "Titre" msgid "Title Column" msgstr "Colonne de titre" @@ -13262,13 +12955,13 @@ msgid "Transformable" msgstr "Transformable" msgid "Transparent" -msgstr "--> Transparent :" +msgstr "Transparent" msgid "Transpose pivot" msgstr "Pivot de transposition" msgid "Treat values as categorical." -msgstr "" +msgstr "Traiter les valeurs comme catégoriques." #, fuzzy msgid "Tree Chart" @@ -13308,19 +13001,19 @@ msgid "Truncate X Axis" msgstr "Trier les métriques" msgid "" -"Truncate X Axis. Can be overridden by specifying a min or max bound. Only" -" applicable for numerical X axis." +"Truncate X Axis. Can be overridden by specifying a min or max bound. Only " +"applicable for numerical X axis." msgstr "" -"Marquer une colonne comme temporelle dans le modal «Modifier la source de" -" données»" +"Tronquer l'axe X. Peut être surpasser en spécifiant une limite min ou max. " +"Seulement applicable sur les axes X numériques." msgid "Truncate Y Axis" msgstr "Tronquer l’axe des absisses" msgid "Truncate Y Axis. Can be overridden by specifying a min or max bound." msgstr "" -"Tronquer l’axe des ordonnées. Peut être modifié en spécifiant une limite " -"minimale ou maximale." +"Tronquer l’axe des ordonnées. Peut être modifié en spécifiant une limite minimale " +"ou maximale." msgid "Truncate long cells to the \"min width\" set above" msgstr "Tronquer les cellules longues à la « largeur minimale » définie ci-dessus" @@ -13330,8 +13023,8 @@ msgstr "Tronquer la date spécifiée à la précision spécifiée par l'unité d msgid "Try applying different filters or ensuring your datasource has data" msgstr "" -"Essayez d’appliquer différents filtres ou de vous assurer que votre " -"source de données contient des données" +"Essayez d’appliquer différents filtres ou de vous assurer que votre source de " +"données contient des données" #, fuzzy msgid "Try different criteria to display results." @@ -13388,7 +13081,7 @@ msgid "URL slug" msgstr "Logotype URL" msgid "Unable to calculate such a date delta" -msgstr "" +msgstr "Impossible de calculer un delta de date comme celui-ci" #, python-format msgid "Unable to connect to catalog named \"%(catalog_name)s\"." @@ -13399,16 +13092,15 @@ msgid "Unable to connect to database \"%(database)s\"." msgstr "Impossible de se connecter à la base de données « %(database)s »." msgid "" -"Unable to connect. Verify that the following roles are set on the service" -" account: \"BigQuery Data Viewer\", \"BigQuery Metadata Viewer\", " -"\"BigQuery Job User\" and the following permissions are set " -"\"bigquery.readsessions.create\", \"bigquery.readsessions.getData\"" +"Unable to connect. Verify that the following roles are set on the service account: " +"\"BigQuery Data Viewer\", \"BigQuery Metadata Viewer\", \"BigQuery Job User\" and " +"the following permissions are set \"bigquery.readsessions.create\", \"bigquery." +"readsessions.getData\"" msgstr "" -"Impossible de se connecter. Vérifiez que les rôles suivants sont définis " -"sur le compte de service : « BigQuery Data Viewer », « BigQuery Metadata " -"Viewer », « BigQuery Job User » et que les permissions suivantes sont " -"définies « bigquery.readsessions.create », « " -"bigquery.readsessions.getData »" +"Impossible de se connecter. Vérifiez que les rôles suivants sont définis sur le " +"compte de service : « BigQuery Data Viewer », « BigQuery Metadata Viewer », " +"« BigQuery Job User » et que les permissions suivantes sont définies « bigquery." +"readsessions.create », « bigquery.readsessions.getData »" msgid "Unable to create chart without a query id." msgstr "Impossible de créer un graphique sans ID de requête." @@ -13424,8 +13116,7 @@ msgid "Unable to find such a holiday: [%(holiday)s]" msgstr "Impossible de trouver un tel congé : [%(holiday)s]" msgid "" -"Unable to load columns for the selected table. Please select a different " -"table." +"Unable to load columns for the selected table. Please select a different table." msgstr "" "Impossible de charger les colonnes pour le tableau sélectionné. Veuillez " "sélectionner un autre tableau." @@ -13435,28 +13126,28 @@ msgid "Unable to load dashboard" msgstr "Ajouté à 1 tableau de bord" msgid "" -"Unable to migrate query editor state to backend. Superset will retry " -"later. Please contact your administrator if this problem persists." +"Unable to migrate query editor state to backend. Superset will retry later. Please " +"contact your administrator if this problem persists." msgstr "" -"Impossible de migrer l'état de l'éditeur de requêtes dans le programme " -"dorsal. Superset réessayera plus tard. Veuillez contacter votre " -"administrateur si le problème persiste." +"Impossible de migrer l'état de l'éditeur de requêtes dans le programme dorsal. " +"Superset réessayera plus tard. Veuillez contacter votre administrateur si le " +"problème persiste." msgid "" -"Unable to migrate query state to backend. Superset will retry later. " -"Please contact your administrator if this problem persists." +"Unable to migrate query state to backend. Superset will retry later. Please " +"contact your administrator if this problem persists." msgstr "" -"Impossible de migrer l'état de la requête vers le programme dorsal. " -"Superset réessayera plus tard. Veuillez contacter votre administrateur si" -" ce problème persiste." +"Impossible de migrer l'état de la requête vers le programme dorsal. Superset " +"réessayera plus tard. Veuillez contacter votre administrateur si ce problème " +"persiste." msgid "" -"Unable to migrate table schema state to backend. Superset will retry " -"later. Please contact your administrator if this problem persists." +"Unable to migrate table schema state to backend. Superset will retry later. Please " +"contact your administrator if this problem persists." msgstr "" -"Impossible de migrer l'état du schéma de tableau vers le programme " -"dorsal. Superset réessayera plus tard. Veuillez contacter votre " -"administrateur si ce problème persiste." +"Impossible de migrer l'état du schéma de tableau vers le programme dorsal. " +"Superset réessayera plus tard. Veuillez contacter votre administrateur si ce " +"problème persiste." msgid "Unable to retrieve dashboard colors" msgstr "Impossible de récupérer les couleurs du tableau de bord" @@ -13479,8 +13170,8 @@ msgstr "Erreur inattendue" msgid "Unexpected error occurred, please check your logs for details" msgstr "" -"Une erreur inattendue s'est produite, veuillez consulter vos journaux " -"pour plus de détails." +"Une erreur inattendue s'est produite, veuillez consulter vos journaux pour plus de " +"détails" #, fuzzy msgid "Unexpected error: " @@ -13503,7 +13194,7 @@ msgstr "Hôte MySQL \"%(hostname)s\" inconnu." #, python-format msgid "Unknown MySQL server host \"%(hostname)s\"." -msgstr "Hôte inconnu du serveur MySQL « %(hostname)s »" +msgstr "Hôte inconnu du serveur MySQL \"%(hostname)s\"." #, fuzzy, python-format msgid "Unknown OceanBase server host \"%(hostname)s\"." @@ -13619,13 +13310,12 @@ msgstr "Téléverser un fichier Excel vers la base de données" msgid "Upload JSON file" msgstr "Téléverser un fichier JSON" -#, fuzzy msgid "Upload a file to a database." -msgstr "Téléverser un fichier vers la base de données" +msgstr "Téléverser un fichier vers la base de données." #, python-format msgid "Upload a file with a valid extension. Valid: [%s]" -msgstr "" +msgstr "Téléverser un fichier avec une extension valide. Valide: [%s]" #, fuzzy msgid "Upload file to database" @@ -13675,9 +13365,8 @@ msgstr "Utiliser une échelle de journalisation pour l’axe des ordonnées" msgid "Use an encrypted connection to the database" msgstr "Utiliser une connexion cryptée vers la base de données" -#, fuzzy msgid "Use an ssh tunnel connection to the database" -msgstr "Utiliser une connexion cryptée vers la base de données" +msgstr "Utiliser une connexion par tunnel SSH vers la base de données" #, python-format msgid "" @@ -13690,16 +13379,16 @@ msgstr "" msgid "Use date formatting even when metric value is not a timestamp" msgstr "" -"Utiliser le formatage de la date même lorsque la valeur mesure n'est pas " -"un horodatage" +"Utiliser le formatage de la date même lorsque la valeur mesure n'est pas un " +"horodatage" msgid "Use legacy datasource editor" msgstr "Utiliser l'ancien éditeur de source de données" msgid "Use metrics as a top level group for columns or for rows" msgstr "" -"Utiliser les mesures comme groupe de niveau supérieur pour les colonnes " -"ou les lignes" +"Utiliser les mesures comme groupe de niveau supérieur pour les colonnes ou les " +"lignes" msgid "Use only a single value." msgstr "N’utiliser qu’une seule valeur." @@ -13708,11 +13397,10 @@ msgid "Use the Advanced Analytics options below" msgstr "Utiliser les options d’analyse avancée ci-dessous" msgid "" -"Use the JSON file you automatically downloaded when creating your service" -" account." +"Use the JSON file you automatically downloaded when creating your service account." msgstr "" -"Utiliser le fichier JSON que vous avez téléchargé automatiquement lors de" -" la création de votre compte de service." +"Utiliser le fichier JSON que vous avez téléchargé automatiquement lors de la " +"création de votre compte de service." #, fuzzy msgid "Use the edit button to change this field" @@ -13728,23 +13416,22 @@ msgid "Use this to define a static color for all circles" msgstr "Utiliser ceci pour définir une couleur statique pour tous les cercles" msgid "" -"Used internally to identify the plugin. Should be set to the package name" -" from the pluginʼs package.json" +"Used internally to identify the plugin. Should be set to the package name from the " +"pluginʼs package.json" msgstr "" -"Utilisé en interne pour identifier le plugiciel. Devrait être le nom du " -"paquet tiré de package.json du plugiciel" +"Utilisé en interne pour identifier le plugiciel. Devrait être le nom du paquet " +"tiré de package.json du plugiciel" msgid "" -"Used to summarize a set of data by grouping together multiple statistics " -"along two axes. Examples: Sales numbers by region and month, tasks by " -"status and assignee, active users by age and location. Not the most " -"visually stunning visualization, but highly informative and versatile." +"Used to summarize a set of data by grouping together multiple statistics along two " +"axes. Examples: Sales numbers by region and month, tasks by status and assignee, " +"active users by age and location. Not the most visually stunning visualization, " +"but highly informative and versatile." msgstr "" -"Utilisé pour résumer un ensemble de données en regroupant plusieurs " -"statistiques le long de deux axes. Exemples : Chiffre d'affaires par " -"région et par mois, tâches par statut et par " -"destinataire,utilisateur·rice·s actif·ve·s par âge et par lieu. Ce n'est " -"pas la visualisation la plus impressionnante, mais elle est très " +"Utilisé pour résumer un ensemble de données en regroupant plusieurs statistiques " +"le long de deux axes. Exemples : Chiffre d'affaires par région et par mois, tâches " +"par statut et par destinataire,utilisateur·rice·s actif·ve·s par âge et par lieu. " +"Ce n'est pas la visualisation la plus impressionnante, mais elle est très " "informative et polyvalente." msgid "User" @@ -13766,36 +13453,33 @@ msgstr "Username" #, fuzzy msgid "Users are not allowed to set a search path for security reasons." msgstr "" -"%(dialect)s ne peut pas être utilisé comme source de données pour des " -"raisons de sécurité." +"%(dialect)s ne peut pas être utilisé comme source de données pour des raisons de " +"sécurité." msgid "" -"Uses Gaussian Kernel Density Estimation to visualize spatial distribution" -" of data" +"Uses Gaussian Kernel Density Estimation to visualize spatial distribution of data" msgstr "" "Utilise l’estimation de la densité du noyau gaussien pour visualiser la " "distribution spatiale des données" msgid "" -"Uses a gauge to showcase progress of a metric towards a target. The " -"position of the dial represents the progress and the terminal value in " -"the gauge represents the target value." +"Uses a gauge to showcase progress of a metric towards a target. The position of " +"the dial represents the progress and the terminal value in the gauge represents " +"the target value." msgstr "" -"Utilise une jauge pour montrer la progression d’une mesure vers une " -"cible. La position du cadran représente la progression et la valeur de " -"borne dans la jauge représente la valeur cible." +"Utilise une jauge pour montrer la progression d’une mesure vers une cible. La " +"position du cadran représente la progression et la valeur de borne dans la jauge " +"représente la valeur cible." msgid "" -"Uses circles to visualize the flow of data through different stages of a " -"system. Hover over individual paths in the visualization to understand " -"the stages a value took. Useful for multi-stage, multi-group visualizing " -"funnels and pipelines." +"Uses circles to visualize the flow of data through different stages of a system. " +"Hover over individual paths in the visualization to understand the stages a value " +"took. Useful for multi-stage, multi-group visualizing funnels and pipelines." msgstr "" -"Utilise des cercles pour visualiser le flux de données à travers les " -"différentes étapes d’un système. Placez le curseur sur les chemins " -"individuels dans la visualisation pour comprendre les étapes qu’une " -"valeur a suivies. Utile pour la visualisation d’entonnoirs et de " -"pipelines à plusieurs étapes et groupes." +"Utilise des cercles pour visualiser le flux de données à travers les différentes " +"étapes d’un système. Placez le curseur sur les chemins individuels dans la " +"visualisation pour comprendre les étapes qu’une valeur a suivies. Utile pour la " +"visualisation d’entonnoirs et de pipelines à plusieurs étapes et groupes." msgid "Value" msgstr "Valeur" @@ -13842,11 +13526,11 @@ msgid "Values dependent on" msgstr "Valeurs dépendent de" msgid "" -"Values selected in other filters will affect the filter options to only " -"show relevant values" +"Values selected in other filters will affect the filter options to only show " +"relevant values" msgstr "" -"Les valeurs sélectionnées dans d'autres filtres affecteront les options " -"de filtrage afin de n'afficher que les valeurs pertinentes" +"Les valeurs sélectionnées dans d'autres filtres affecteront les options de " +"filtrage afin de n'afficher que les valeurs pertinentes" #, fuzzy msgid "Vehicle Types" @@ -13912,7 +13596,6 @@ msgstr "%s consulté" msgid "Viewport" msgstr "Viewport" -#, fuzzy msgid "Virtual" msgstr "Virtuel" @@ -13927,143 +13610,129 @@ msgstr "L’ensemble de données virtuel ne peut pas être vide" msgid "Virtual dataset query cannot consist of multiple statements" msgstr "" -"Une requête sur un ensemble de données virtuel ne peut pas être composée " -"de plusieurs instructions." +"Une requête sur un ensemble de données virtuel ne peut pas être composée de " +"plusieurs instructions" msgid "Virtual dataset query must be read-only" -msgstr "" -"L'interrogation de l'ensemble de données virtuel doit être en lecture " -"seule." +msgstr "L'interrogation de l'ensemble de données virtuel doit être en lecture seule" msgid "Visual Tweaks" msgstr "Modifications visuelles" -#, fuzzy msgid "Visual formatting" -msgstr "Formatage" +msgstr "Formatage visuel" msgid "Visualization Type" msgstr "Type de visualisation" msgid "" -"Visualize a parallel set of metrics across multiple groups. Each group is" -" visualized using its own line of points and each metric is represented " -"as an edge in the chart." +"Visualize a parallel set of metrics across multiple groups. Each group is " +"visualized using its own line of points and each metric is represented as an edge " +"in the chart." msgstr "" -"Visualisez un ensemble parallèle de mesures dans plusieurs groupes. " -"Chaque groupe est visualisé en utilisant sa propre ligne de points et " -"chaque mesure est représentée comme un bord dans le graphique." +"Visualisez un ensemble parallèle de mesures dans plusieurs groupes. Chaque groupe " +"est visualisé en utilisant sa propre ligne de points et chaque mesure est " +"représentée comme un bord dans le graphique." msgid "" -"Visualize a related metric across pairs of groups. Heatmaps excel at " -"showcasing the correlation or strength between two groups. Color is used " -"to emphasize the strength of the link between each pair of groups." +"Visualize a related metric across pairs of groups. Heatmaps excel at showcasing " +"the correlation or strength between two groups. Color is used to emphasize the " +"strength of the link between each pair of groups." msgstr "" -"Visualisez une mesure connexe entre les paires de groupes. Les cartes " -"thermiques excellent à mettre en valeur la corrélation ou la force entre " -"deux groupes. La couleur est utilisée pour souligner la force du lien " -"entre chaque paire de groupes." +"Visualisez une mesure connexe entre les paires de groupes. Les cartes thermiques " +"excellent à mettre en valeur la corrélation ou la force entre deux groupes. La " +"couleur est utilisée pour souligner la force du lien entre chaque paire de groupes." msgid "" -"Visualize geospatial data like 3D buildings, landscapes, or objects in " -"grid view." +"Visualize geospatial data like 3D buildings, landscapes, or objects in grid view." msgstr "" -"Visualisez des données géospatiales telles que des bâtiments, des " -"paysages ou des objets en 3D dans une vue grille." +"Visualisez des données géospatiales telles que des bâtiments, des paysages ou des " +"objets en 3D dans une vue grille." msgid "" -"Visualize how a metric changes over time using bars. Add a group by " -"column to visualize group level metrics and how they change over time." +"Visualize how a metric changes over time using bars. Add a group by column to " +"visualize group level metrics and how they change over time." msgstr "" -"Visualisez comment une mesure change au fil du temps à l’aide de barres. " -"Ajoutez un groupe par colonne pour visualiser les mesure au niveau du " -"groupe et la façon dont elles changent au fil du temps." +"Visualisez comment une mesure change au fil du temps à l’aide de barres. Ajoutez " +"un groupe par colonne pour visualiser les mesure au niveau du groupe et la façon " +"dont elles changent au fil du temps." + +msgid "Visualize multiple levels of hierarchy using a familiar tree-like structure." +msgstr "" +"Visualisez plusieurs niveaux de hiérarchie à l’aide d’une structure familière " +"semblable à un arbre." msgid "" -"Visualize multiple levels of hierarchy using a familiar tree-like " -"structure." +"Visualize two different series using the same x-axis. Note that both series can be " +"visualized with a different chart type (e.g. 1 using bars and 1 using a line)." msgstr "" -"Visualisez plusieurs niveaux de hiérarchie à l’aide d’une structure " -"familière semblable à un arbre." +"Visualisez deux séries différentes en utilisant le même axe des x. Notez que les " +"deux séries peuvent être visualisées avec un type de graphique différent (p. ex., " +"1 utilisant des barres et 1 utilisant une ligne)." msgid "" -"Visualize two different series using the same x-axis. Note that both " -"series can be visualized with a different chart type (e.g. 1 using bars " -"and 1 using a line)." +"Visualizes a metric across three dimensions of data in a single chart (X axis, Y " +"axis, and bubble size). Bubbles from the same group can be showcased using bubble " +"color." msgstr "" -"Visualisez deux séries différentes en utilisant le même axe des x. Notez " -"que les deux séries peuvent être visualisées avec un type de graphique " -"différent (p. ex., 1 utilisant des barres et 1 utilisant une ligne)." - -msgid "" -"Visualizes a metric across three dimensions of data in a single chart (X " -"axis, Y axis, and bubble size). Bubbles from the same group can be " -"showcased using bubble color." -msgstr "" -"Visualise une mesure sur trois dimensions de données dans un seul " -"graphique (axe des absisses, axe des ordonnées et taille des bulles). Les" -" bulles du même groupe peuvent être présentées en utilisant la couleur " -"des bulles." +"Visualise une mesure sur trois dimensions de données dans un seul graphique (axe " +"des absisses, axe des ordonnées et taille des bulles). Les bulles du même groupe " +"peuvent être présentées en utilisant la couleur des bulles." msgid "Visualizes connected points, which form a path, on a map." msgstr "Visualise les points connectés, qui forment un chemin, sur une carte." msgid "" -"Visualizes geographic areas from your data as polygons on a Mapbox " -"rendered map. Polygons can be colored using a metric." +"Visualizes geographic areas from your data as polygons on a Mapbox rendered map. " +"Polygons can be colored using a metric." msgstr "" -"Visualise les zones géographiques de vos données sous forme de polygones " -"sur une carte rendue par Mapbox. Les polygones peuvent être colorés à " -"l’aide d’une mesure." +"Visualise les zones géographiques de vos données sous forme de polygones sur une " +"carte rendue par Mapbox. Les polygones peuvent être colorés à l’aide d’une mesure." msgid "" -"Visualizes how a metric has changed over a time using a color scale and a" -" calendar view. Gray values are used to indicate missing values and the " -"linear color scheme is used to encode the magnitude of each day's value." +"Visualizes how a metric has changed over a time using a color scale and a calendar " +"view. Gray values are used to indicate missing values and the linear color scheme " +"is used to encode the magnitude of each day's value." msgstr "" -"Visualise la façon dont une mesure a changé au fil du temps à l’aide " -"d’une échelle de couleurs et d’une vue de calendrier. Les valeurs grises " -"sont utilisées pour indiquer les valeurs manquantes et le schéma de " -"couleurs linéaires est utilisé pour coder l’amplitude de la valeur de " -"chaque jour." +"Visualise la façon dont une mesure a changé au fil du temps à l’aide d’une échelle " +"de couleurs et d’une vue de calendrier. Les valeurs grises sont utilisées pour " +"indiquer les valeurs manquantes et le schéma de couleurs linéaires est utilisé " +"pour coder l’amplitude de la valeur de chaque jour." msgid "" -"Visualizes how a single metric varies across a country's principal " -"subdivisions (states, provinces, etc) on a choropleth map. Each " -"subdivision's value is elevated when you hover over the corresponding " -"geographic boundary." +"Visualizes how a single metric varies across a country's principal subdivisions " +"(states, provinces, etc) on a choropleth map. Each subdivision's value is elevated " +"when you hover over the corresponding geographic boundary." msgstr "" -"Visualise la façon dont une seule mesure varie entre les principales " -"subdivisions d’un pays (États, provinces, etc.) sur une carte de " -"choroplète. La valeur de chaque subdivision est élevée lorsque vous " -"survolez la limite géographique correspondante." +"Visualise la façon dont une seule mesure varie entre les principales subdivisions " +"d’un pays (États, provinces, etc.) sur une carte de choroplète. La valeur de " +"chaque subdivision est élevée lorsque vous survolez la limite géographique " +"correspondante." msgid "" -"Visualizes many different time-series objects in a single chart. This " -"chart is being deprecated and we recommend using the Time-series Chart " -"instead." +"Visualizes many different time-series objects in a single chart. This chart is " +"being deprecated and we recommend using the Time-series Chart instead." msgstr "" -"Visualise de nombreux objets de séries temporelles différents dans un " -"seul tableau. Ce graphique est en cours d’amortissement et nous vous " -"recommandons d’utiliser plutôt le graphique des séries temporelles." +"Visualise de nombreux objets de séries temporelles différents dans un seul " +"tableau. Ce graphique est en cours d’amortissement et nous vous recommandons " +"d’utiliser plutôt le graphique des séries temporelles." msgid "" -"Visualizes the flow of different group's values through different stages " -"of a system. New stages in the pipeline are visualized as nodes or " -"layers. The thickness of the bars or edges represent the metric being " -"visualized." +"Visualizes the flow of different group's values through different stages of a " +"system. New stages in the pipeline are visualized as nodes or layers. The " +"thickness of the bars or edges represent the metric being visualized." msgstr "" -"Visualise le flux des valeurs de différents groupes à travers les " -"différentes étapes d’un système. Les nouvelles étapes du pipeline sont " -"visualisées comme des nœuds ou des couches. L’épaisseur des barres ou des" -" bords représente la mesure visualisée." +"Visualise le flux des valeurs de différents groupes à travers les différentes " +"étapes d’un système. Les nouvelles étapes du pipeline sont visualisées comme des " +"nœuds ou des couches. L’épaisseur des barres ou des bords représente la mesure " +"visualisée." msgid "" "Visualizes the words in a column that appear the most often. Bigger font " "corresponds to higher frequency." msgstr "" -"Visualise les mots dans une colonne qui apparaît le plus souvent. La " -"police plus grosse correspond à une fréquence plus élevée." +"Visualise les mots dans une colonne qui apparaît le plus souvent. La police plus " +"grosse correspond à une fréquence plus élevée." msgid "Viz is missing a datasource" msgstr "Viz est une source de données manquante" @@ -14074,19 +13743,18 @@ msgstr "Type Viz" msgid "WED" msgstr "MER" -#, fuzzy, python-format +#, python-format msgid "Waiting on %s" -msgstr "Affichage de %s sur %s" +msgstr "En attente de %s" -#, fuzzy msgid "Waiting on database..." -msgstr "Gérer vos bases de données" +msgstr "En attente de la base de donnée..." msgid "Want to add a new database?" msgstr "Ajouter un nouvelle base de données?" msgid "Warning" -msgstr "Avertissement :" +msgstr "Avertissement" msgid "Warning Message" msgstr "Message d'avertissement" @@ -14095,45 +13763,37 @@ msgid "Warning!" msgstr "Attention!" msgid "" -"Warning! Changing the dataset may break the chart if the metadata does " -"not exist." +"Warning! Changing the dataset may break the chart if the metadata does not exist." msgstr "" -"Attention! Changer l’ensemble de données peut mettre en erreur le " -"graphique si la métadonnées n'existe pas." +"Attention! Changer l’ensemble de données peut mettre en erreur le graphique si la " +"métadonnées n'existe pas." -#, fuzzy msgid "Was unable to check your query" -msgstr "Impossible de vérifier votre demande" +msgstr "Impossible de vérifier votre requête" -#, fuzzy msgid "Waterfall Chart" -msgstr "Chercher tous les graphiques" +msgstr "Graphique en cascade" msgid "" -"We are unable to connect to your database. Click \"See more\" for " -"database-provided information that may help troubleshoot the issue." +"We are unable to connect to your database. Click \"See more\" for database-" +"provided information that may help troubleshoot the issue." msgstr "" -"Nous ne pouvons pas nous connecter à votre base de données. Cliquez sur «" -" Voir plus » pour obtenir des renseignements fournis par la base de " -"données qui pourraient aider à résoudre le problème." +"Nous ne pouvons pas nous connecter à votre base de données. Cliquez sur « Voir " +"plus » pour obtenir des renseignements fournis par la base de données qui " +"pourraient aider à résoudre le problème." #, python-format msgid "We can't seem to resolve column \"%(column)s\" at line %(location)s." -msgstr "" -"Nous ne pouvons résoudre la colonne « %(column)s » à la ligne " -"%(location)s." +msgstr "Nous ne pouvons résoudre la colonne « %(column)s » à la ligne %(location)s." #, python-format msgid "We can't seem to resolve the column \"%(column_name)s\"" msgstr "Nous ne pouvons résoudre la colonne « %(column_name)s »" #, python-format -msgid "" -"We can't seem to resolve the column \"%(column_name)s\" at line " -"%(location)s." +msgid "We can't seem to resolve the column \"%(column_name)s\" at line %(location)s." msgstr "" -"Nous ne pouvons résoudre la colonne « %(column_name)s » à la ligne " -"%(location)s." +"Nous ne pouvons résoudre la colonne « %(column_name)s » à la ligne %(location)s." #, python-format msgid "We have the following keys: %s" @@ -14142,20 +13802,18 @@ msgstr "Nous avons les clés suivantes : %s" msgid "We were unable to active or deactivate this report." msgstr "Nous n'avons pas pu activer ou désactiver ce rapport." -msgid "" -"We were unable to carry over any controls when switching to this new " -"dataset." +msgid "We were unable to carry over any controls when switching to this new dataset." msgstr "" -"Nous n’avons pas été en mesure de reporter les contrôles lors du passage " -"à ce nouvel ensemble de données." +"Nous n’avons pas été en mesure de reporter les contrôles lors du passage à ce " +"nouvel ensemble de données." #, python-format msgid "" -"We were unable to connect to your database named \"%(database)s\". Please" -" verify your database name and try again." +"We were unable to connect to your database named \"%(database)s\". Please verify " +"your database name and try again." msgstr "" -"Nous n'avons pas pu nous connecter à votre base de données « %(database)s" -" ». Veuillez vérfier le nom de la base et réessayez." +"Nous n'avons pas pu nous connecter à votre base de données « %(database)s ». " +"Veuillez vérfier le nom de la base et réessayez." msgid "Web" msgstr "Web" @@ -14194,33 +13852,36 @@ msgstr "Saisonnalité hebdomadaire" msgid "Weeks %s" msgstr "Semaines %s" -#, fuzzy msgid "Weight" -msgstr "Poid" +msgstr "Poids" -#, fuzzy, python-format +#, python-format msgid "" -"We’re having trouble loading these results. Queries are set to timeout " -"after %s second." +"We’re having trouble loading these results. Queries are set to timeout after %s " +"second." msgid_plural "" -"We’re having trouble loading these results. Queries are set to timeout " -"after %s seconds." +"We’re having trouble loading these results. Queries are set to timeout after %s " +"seconds." msgstr[0] "" -"Erreur au chargement de ces résultats. Les requêtes s'interrompent au " -"bout de %s secondes." +"Erreur au chargement de ces résultats. Les requêtes s'interrompent au bout de %s " +"secondes." msgstr[1] "" +"Erreur au chargement de ces résultats. Les requêtes s'interrompent au bout de %s " +"secondes." -#, fuzzy, python-format +#, python-format msgid "" -"We’re having trouble loading this visualization. Queries are set to " -"timeout after %s second." +"We’re having trouble loading this visualization. Queries are set to timeout after " +"%s second." msgid_plural "" -"We’re having trouble loading this visualization. Queries are set to " -"timeout after %s seconds." +"We’re having trouble loading this visualization. Queries are set to timeout after " +"%s seconds." msgstr[0] "" -"Nous avons des difficultés à charger cette visualisation. Les requêtes " -"sont paramétrées pour être interrompues au bout de %s seconde." +"Nous avons des difficultés à charger cette visualisation. Les requêtes sont " +"paramétrées pour être interrompues au bout de %s secondes." msgstr[1] "" +"Nous avons des difficultés à charger cette visualisation. Les requêtes sont " +"paramétrées pour être interrompues au bout de %s secondes." msgid "What should be shown as the label" msgstr "" @@ -14236,107 +13897,100 @@ msgid "What should happen if the table already exists" msgstr "Un ensemble de filtre avec ce tableau existe déjà" msgid "" -"When `Calculation type` is set to \"Percentage change\", the Y Axis " -"Format is forced to `.1%`" +"When `Calculation type` is set to \"Percentage change\", the Y Axis Format is " +"forced to `.1%`" msgstr "" -"Lorsque « Type de calcul » vaut « Pourcentage de changement », le format " -"de l'axe des ordonnées est à forcé à « .1% »" +"Lorsque « Type de calcul » vaut « Pourcentage de changement », le format de l'axe " +"des ordonnées est à forcé à « .1% »" msgid "When a secondary metric is provided, a linear color scale is used." msgstr "" -"Lorsqu’une mesure secondaire est fournie, une échelle de couleur linéaire" -" est utilisée." +"Lorsqu’une mesure secondaire est fournie, une échelle de couleur linéaire est " +"utilisée." msgid "" -"When allowing CREATE TABLE AS option in SQL Lab, this option forces the " -"table to be created in this schema" +"When allowing CREATE TABLE AS option in SQL Lab, this option forces the table to " +"be created in this schema" msgstr "" -"Quand l'option autoriser CREATE TABLE AS dans SQL Lab est cochée, cette " -"option force la création du tableau dans ce schéma" +"Quand l'option autoriser CREATE TABLE AS dans SQL Lab est cochée, cette option " +"force la création du tableau dans ce schéma" msgid "When checked, the map will zoom to your data after each query" msgstr "" -"Si cette option est cochée, la carte sera zoomée sur vos données après " -"chaque requête." +"Si cette option est cochée, la carte sera zoomée sur vos données après chaque " +"requête" msgid "When enabled, users are able to visualize SQL Lab results in Explore." msgstr "" -"Quand activé, les utilisateur·rice·s peuvent visualiser les résulats de " -"SQL Lab dans Explorer." +"Quand activé, les utilisateur·rice·s peuvent visualiser les résulats de SQL Lab " +"dans Explorer." msgid "When only a primary metric is provided, a categorical color scale is used." msgstr "" -"Lorsque seule une mesure primaire est fournie, une échelle de couleur " -"catégorique est utilisée." +"Lorsque seule une mesure primaire est fournie, une échelle de couleur catégorique " +"est utilisée." msgid "" -"When specifying SQL, the datasource acts as a view. Superset will use " -"this statement as a subquery while grouping and filtering on the " -"generated parent queries." +"When specifying SQL, the datasource acts as a view. Superset will use this " +"statement as a subquery while grouping and filtering on the generated parent " +"queries." msgstr "" -"Lorsque vous spécifiez SQL, la source de données agit comme une vue. " -"Superset utilisera cette déclaration comme une sous-requête tout en " -"regroupant et en filtrant les requêtes parentales générées." +"Lorsque vous spécifiez SQL, la source de données agit comme une vue. Superset " +"utilisera cette déclaration comme une sous-requête tout en regroupant et en " +"filtrant les requêtes parentales générées." msgid "" -"When the secondary temporal columns are filtered, apply the same filter " -"to the main datetime column." +"When the secondary temporal columns are filtered, apply the same filter to the " +"main datetime column." msgstr "" msgid "" -"When using \"Autocomplete filters\", this can be used to improve " -"performance of the query fetching the values. Use this option to apply a " -"predicate (WHERE clause) to the query selecting the distinct values from " -"the table. Typically the intent would be to limit the scan by applying a " -"relative time filter on a partitioned or indexed time-related field." +"When using \"Autocomplete filters\", this can be used to improve performance of " +"the query fetching the values. Use this option to apply a predicate (WHERE clause) " +"to the query selecting the distinct values from the table. Typically the intent " +"would be to limit the scan by applying a relative time filter on a partitioned or " +"indexed time-related field." msgstr "" -"Lorsque vous utilisez les « filtres de saisie semi-automatique », cette " -"option peut être utilisée pour améliorer les performances de la requête " -"qui récupère les valeurs. Utilisez cette option pour appliquer un " -"prédicat (clause WHERE) à la requête en sélectionnant les valeurs " -"distinctes du tableau. Généralement, l'objectif est de limiter l'analyse " -"en appliquant un filtre temporel relatif sur un champ temporel " -"partitionné ou indexé." +"Lorsque vous utilisez les « filtres de saisie semi-automatique », cette option " +"peut être utilisée pour améliorer les performances de la requête qui récupère les " +"valeurs. Utilisez cette option pour appliquer un prédicat (clause WHERE) à la " +"requête en sélectionnant les valeurs distinctes du tableau. Généralement, " +"l'objectif est de limiter l'analyse en appliquant un filtre temporel relatif sur " +"un champ temporel partitionné ou indexé." msgid "When using 'Group By' you are limited to use a single metric" msgstr "Quand vous utilisez « Grouper par » vous êtes limité à une seule mesure" msgid "When using other than adaptive formatting, labels may overlap" msgstr "" -"Lorsque vous utilisez un formatage autre que adaptatif, les étiquettes " -"peuvent se chevaucher" +"Lorsque vous utilisez un formatage autre que adaptatif, les étiquettes peuvent se " +"chevaucher" msgid "When using this option, default value can’t be set" msgstr "" -"Lorsque vous utilisez cette option, la valeur par défaut ne peut pas être" -" définie." +"Lorsque vous utilisez cette option, la valeur par défaut ne peut pas être définie" msgid "Whether the progress bar overlaps when there are multiple groups of data" msgstr "" -"Si la barre de progression se chevauche lorsqu’il y a plusieurs groupes " -"de données" +"Si la barre de progression se chevauche lorsqu’il y a plusieurs groupes de données" msgid "Whether the table was generated by the 'Visualize' flow in SQL Lab" msgstr "Si le tableau a été générée par le flux « Visualiser » dans SQL Lab" -msgid "" -"Whether this column is exposed in the `Filters` section of the explore " -"view." +msgid "Whether this column is exposed in the `Filters` section of the explore view." msgstr "" -"Si cette colonne est exposée dans la section « Filtres » de la vue " -"d'exploration." +"Si cette colonne est exposée dans la section « Filtres » de la vue d'exploration." msgid "" -"Whether to align background charts with both positive and negative values" -" at 0" +"Whether to align background charts with both positive and negative values at 0" msgstr "" -"Alignement ou non des graphiques d'arrière-plan avec des valeurs " -"positives et négatives à 0" +"Alignement ou non des graphiques d'arrière-plan avec des valeurs positives et " +"négatives à 0" msgid "Whether to align positive and negative values in cell bar chart at 0" msgstr "" -"Si les valeurs positives et négatives doivent être alignées sur 0 dans le" -" diagramme à barres de la cellule" +"Si les valeurs positives et négatives doivent être alignées sur 0 dans le " +"diagramme à barres de la cellule" msgid "Whether to always show the annotation label" msgstr "Indiquer si l'étiquette de l'annotation doit toujours être affichée" @@ -14346,26 +14000,22 @@ msgstr "Animation ou non de la progression et la valeur ou simplement les affich msgid "Whether to apply a normal distribution based on rank on the color scale" msgstr "" -"Application ou non d’une distribution normale en fonction du classement " -"sur l’échelle de couleurs" +"Application ou non d’une distribution normale en fonction du classement sur " +"l’échelle de couleurs" msgid "Whether to apply filter when items are clicked" msgstr "Application ou non du filtre lorsque vous cliquez sur les éléments" msgid "Whether to colorize numeric values by if they are positive or negative" msgstr "" -"Colorisation ou non des valeurs numériques si elles sont positives ou " -"négatives" +"Colorisation ou non des valeurs numériques si elles sont positives ou négatives" -msgid "" -"Whether to colorize numeric values by whether they are positive or " -"negative" +msgid "Whether to colorize numeric values by whether they are positive or negative" msgstr "" msgid "Whether to display a bar chart background in table columns" msgstr "" -"Affichage ou non d'un fond de diagramme à barres dans les colonnes du " -"tableau" +"Affichage ou non d'un fond de diagramme à barres dans les colonnes du tableau" msgid "Whether to display a legend for the chart" msgstr "Affichage ou non une légende pour le graphique" @@ -14383,11 +14033,11 @@ msgid "Whether to display the labels." msgstr "Afficher ou non des étiquettes." msgid "" -"Whether to display the labels. Note that the label only displays when the" -" 5% threshold." +"Whether to display the labels. Note that the label only displays when the 5% " +"threshold." msgstr "" -"Afficher ou non lesdesétiquettes. Notez que l’étiquette s’affiche " -"uniquement lorsque le seuil est de 5 %." +"Afficher ou non lesdesétiquettes. Notez que l’étiquette s’affiche uniquement " +"lorsque le seuil est de 5 %." msgid "Whether to display the legend (toggles)" msgstr "Affichage ou non de la légende (commutateurs)" @@ -14423,8 +14073,8 @@ msgstr "Affichage ou non de la ligne de tendance" msgid "Whether to enable changing graph position and scaling." msgstr "" -"Activation ou non de la modification de la position et de la mise à " -"l’échelle du graphique." +"Activation ou non de la modification de la position et de la mise à l’échelle du " +"graphique." msgid "Whether to enable node dragging in force layout mode." msgstr "Activation ou non du glissement de nœud en mode de disposition en force." @@ -14446,8 +14096,8 @@ msgstr "Indiquer si le pourcentage doit être inclus dans l'infobulle" msgid "Whether to include the time granularity as defined in the time section" msgstr "" -"Inclure ou non la granularité temporelle telle qu'elle est définie dans " -"la section temps" +"Inclure ou non la granularité temporelle telle qu'elle est définie dans la section " +"temps" #, fuzzy msgid "Whether to make the grid 3D" @@ -14457,12 +14107,11 @@ msgid "Whether to make the histogram cumulative" msgstr "Si l'histogramme doit être cumulatif" msgid "" -"Whether to make this column available as a [Time Granularity] option, " -"column has to be DATETIME or DATETIME-like" +"Whether to make this column available as a [Time Granularity] option, column has " +"to be DATETIME or DATETIME-like" msgstr "" -"Pour que cette colonne soit disponible en tant qu'option [Granularité " -"temporelle], la colonne doit être de type DATETIME ou semblable à " -"DATETIME." +"Pour que cette colonne soit disponible en tant qu'option [Granularité temporelle], " +"la colonne doit être de type DATETIME ou semblable à DATETIME" msgid "Whether to normalize the histogram" msgstr "Normaliser ou non l'histogramme" @@ -14471,27 +14120,25 @@ msgid "Whether to populate autocomplete filters options" msgstr "Remplir ou non les options des filtres d'autocomplétion" msgid "" -"Whether to populate the filter's dropdown in the explore view's filter " -"section with a list of distinct values fetched from the backend on the " -"fly" +"Whether to populate the filter's dropdown in the explore view's filter section " +"with a list of distinct values fetched from the backend on the fly" msgstr "" -"Remplir ou non la liste déroulante du filtre dans la section filtre de la" -" vue d'exploration avec une liste de valeurs distinctes récupérées à la " -"volée dans le backend." +"Remplir ou non la liste déroulante du filtre dans la section filtre de la vue " +"d'exploration avec une liste de valeurs distinctes récupérées à la volée dans le " +"backend" #, fuzzy msgid "Whether to show as Nightingale chart." msgstr "" -"Indiquer ou non s’il y a lieu de montrer la progression du graphique de " -"jauge" +"Indiquer ou non s’il y a lieu de montrer la progression du graphique de jauge" msgid "" -"Whether to show extra controls or not. Extra controls include things like" -" making mulitBar charts stacked or side by side." +"Whether to show extra controls or not. Extra controls include things like making " +"mulitBar charts stacked or side by side." msgstr "" -"Montrer ou non des contrôles supplémentaires. Les contrôles " -"supplémentaires comprennent des choses comme faire des tableaux à barres " -"multiples empilés ou côte à côte." +"Montrer ou non des contrôles supplémentaires. Les contrôles supplémentaires " +"comprennent des choses comme faire des tableaux à barres multiples empilés ou côte " +"à côte." msgid "Whether to show minor ticks on the axis" msgstr "Montrer ou non les taches mineures sur l'axe" @@ -14501,8 +14148,7 @@ msgstr "Montrer ou non le pointeur" msgid "Whether to show the progress of gauge chart" msgstr "" -"Indiquer ou non s’il y a lieu de montrer la progression du graphique de " -"jauge" +"Indiquer ou non s’il y a lieu de montrer la progression du graphique de jauge" msgid "Whether to show the split lines on the axis" msgstr "Indiquer ou non s’il faut afficher les lignes divisées sur l’axe" @@ -14517,18 +14163,17 @@ msgstr "Trier ou non par ordre décroissant ou croissant" #, fuzzy msgid "Whether to sort descending or ascending if a series limit is present" msgstr "" -"Trier ou non par ordre décroissant ou croissant en présence d'une limite " -"de série" +"Trier ou non par ordre décroissant ou croissant en présence d'une limite de série" msgid "Whether to sort results by the selected metric in descending order." msgstr "" -"Trier ou non les résultats par ordre décroissant en fonction de " -"l'indicateur sélectionné." +"Trier ou non les résultats par ordre décroissant en fonction de l'indicateur " +"sélectionné." msgid "Whether to sort tooltip by the selected metric in descending order." msgstr "" -"Trier ou non les infobulles par ordre décroissant en fonction de " -"l'indicateur sélectionné." +"Trier ou non les infobulles par ordre décroissant en fonction de l'indicateur " +"sélectionné." #, fuzzy msgid "Whether to truncate metrics" @@ -14538,7 +14183,7 @@ msgid "Which country to plot the map for?" msgstr "Pour quel pays représenter la carte?" msgid "Which relatives to highlight on hover" -msgstr "Quels sont les parents à mettre en évidence au survol?" +msgstr "Quels sont les parents à mettre en évidence au survol" msgid "Whisker/outlier options" msgstr "Options de moustaches et de valeurs aberrantes" @@ -14586,26 +14231,23 @@ msgid "Write a handlebars template to render the data" msgstr "Écrire un modèle handlebar pour afficher les données" msgid "X AXIS TITLE BOTTOM MARGIN" -msgstr "MARGE INFÉRIEURE DU TITRE DE L'AXE DES ABSISSES" +msgstr "MARGE INFÉRIEURE DU TITRE DE L'AXE DES ABSCISSES" msgid "X AXIS TITLE MARGIN" -msgstr "" +msgstr "MARGE DU TITRE DE L'AXE DES ABCISSES" msgid "X Axis" -msgstr "Axe des absisses" +msgstr "Axe des abscisses" -#, fuzzy msgid "X Axis Bounds" -msgstr "Filtrer par colonne" +msgstr "Limite de l'axe des abscisses" -#, fuzzy msgid "X Axis Format" -msgstr "Format de l'axe des absisses" +msgstr "Format de l'axe des abscisses" msgid "X Axis Label" -msgstr "Étiquette de l’axe des absisses" +msgstr "Étiquette de l’axe des abscisses" -#, fuzzy msgid "X Axis Title" msgstr "Titre de l’axe des absisses" @@ -14618,16 +14260,14 @@ msgstr "Disposition des points de repère X" msgid "X bounds" msgstr "Limites X" -#, fuzzy msgid "X-Axis Sort Ascending" -msgstr "Tri croissant sur l'axe des absisses" +msgstr "Tri croissant sur l'axe des abscisses" msgid "X-Axis Sort By" -msgstr "Axe des absisses – Trier par" +msgstr "Axe des abscisses – Trier par" -#, fuzzy msgid "X-axis" -msgstr "Axe des absisses" +msgstr "Axe des abscisses" #, fuzzy msgid "XScale Interval" @@ -14659,11 +14299,10 @@ msgid "Y Axis Title" msgstr "Titre de l’axe des ordonnées" msgid "Y Axis Title Margin" -msgstr "" +msgstr "Marge du titre de l'axe des ordonnées" -#, fuzzy msgid "Y Axis Title Position" -msgstr "dernière partition :" +msgstr "Position du titre de l'axe des ordonées" msgid "Y Log Scale" msgstr "Échelle logarithmique des ordonnées" @@ -14720,49 +14359,44 @@ msgid "You are adding tags to %s %ss" msgstr "" msgid "" -"You are importing one or more charts that already exist. Overwriting " -"might cause you to lose some of your work. Are you sure you want to " -"overwrite?" +"You are importing one or more charts that already exist. Overwriting might cause " +"you to lose some of your work. Are you sure you want to overwrite?" msgstr "" -"Vous importez une ou plusieurs cartes qui existent déjà. L'écrasement " -"pourrait vous faire perdre une partie de votre travail. Êtes-vous sûr de " -"vouloir les écraser?" +"Vous importez une ou plusieurs cartes qui existent déjà. L'écrasement pourrait " +"vous faire perdre une partie de votre travail. Êtes-vous sûr de vouloir les " +"écraser?" msgid "" -"You are importing one or more dashboards that already exist. Overwriting " -"might cause you to lose some of your work. Are you sure you want to " -"overwrite?" +"You are importing one or more dashboards that already exist. Overwriting might " +"cause you to lose some of your work. Are you sure you want to overwrite?" msgstr "" -"Vous importez un ou plusieurs tableaux de bord qui existent déjà. " -"L'écrasement pourrait vous faire perdre une partie de votre travail. " -"Êtes-vous sûr de vouloir les écraser?" +"Vous importez un ou plusieurs tableaux de bord qui existent déjà. L'écrasement " +"pourrait vous faire perdre une partie de votre travail. Êtes-vous sûr de vouloir " +"les écraser?" msgid "" -"You are importing one or more databases that already exist. Overwriting " -"might cause you to lose some of your work. Are you sure you want to " -"overwrite?" +"You are importing one or more databases that already exist. Overwriting might " +"cause you to lose some of your work. Are you sure you want to overwrite?" msgstr "" -"Vous importez une ou plusieurs bases de données qui existent déjà. " -"L'écrasement pourrait vous faire perdre une partie de votre travail. " -"Êtes-vous sûr de vouloir les écraser?" +"Vous importez une ou plusieurs bases de données qui existent déjà. L'écrasement " +"pourrait vous faire perdre une partie de votre travail. Êtes-vous sûr de vouloir " +"les écraser?" msgid "" -"You are importing one or more datasets that already exist. Overwriting " -"might cause you to lose some of your work. Are you sure you want to " -"overwrite?" +"You are importing one or more datasets that already exist. Overwriting might cause " +"you to lose some of your work. Are you sure you want to overwrite?" msgstr "" -"Vous importez un ou plusieurs ensembles de données qui existent déjà. " -"L'écrasement pourrait vous faire perdre une partie de votre travail. " -"Êtes-vous sûr de vouloir les écraser?" +"Vous importez un ou plusieurs ensembles de données qui existent déjà. L'écrasement " +"pourrait vous faire perdre une partie de votre travail. Êtes-vous sûr de vouloir " +"les écraser?" msgid "" -"You are importing one or more saved queries that already exist. " -"Overwriting might cause you to lose some of your work. Are you sure you " -"want to overwrite?" +"You are importing one or more saved queries that already exist. Overwriting might " +"cause you to lose some of your work. Are you sure you want to overwrite?" msgstr "" "Vous importez une ou plusieurs requêtes enregistrées qui existent déjà. " -"L'écrasement pourrait vous faire perdre une partie de votre travail. " -"Êtes-vous sûr de vouloir les écraser?" +"L'écrasement pourrait vous faire perdre une partie de votre travail. Êtes-vous sûr " +"de vouloir les écraser?" #, fuzzy msgid "You can" @@ -14777,46 +14411,41 @@ msgstr "Vous pouvez ajouter les composants dans le mode Éditer." msgid "You can also just click on the chart to apply cross-filter." msgstr "" -"Vous pouvez également cliquer sur le graphique pour appliquer le filtre " -"croisé." +"Vous pouvez également cliquer sur le graphique pour appliquer le filtre croisé." msgid "" -"You can choose to display all charts that you have access to or only the " -"ones you own.\n" -" Your filter selection will be saved and remain active until" -" you choose to change it." +"You can choose to display all charts that you have access to or only the ones you " +"own.\n" +" Your filter selection will be saved and remain active until you " +"choose to change it." msgstr "" -"Vous pouvez choisir d'afficher tous les graphiques auxquels vous avez " -"accès ou seulement ceux que vous possédez. Votre sélection de filtre sera" -" sauvegardée et restera active jusqu'à ce que vous décidiez de la " -"modifier." +"Vous pouvez choisir d'afficher tous les graphiques auxquels vous avez accès ou " +"seulement ceux que vous possédez. Votre sélection de filtre sera sauvegardée et " +"restera active jusqu'à ce que vous décidiez de la modifier." -msgid "" -"You can create a new chart or use existing ones from the panel on the " -"right" +msgid "You can create a new chart or use existing ones from the panel on the right" msgstr "" -"Vous pouvez créer un nouveau graphique ou utiliser des graphiques " -"existants dans le panneau de droite." +"Vous pouvez créer un nouveau graphique ou utiliser des graphiques existants dans " +"le panneau de droite" msgid "You can preview the list of dashboards in the chart settings dropdown." msgstr "" -"Vous pouvez prévisualiser la liste des tableaux de bord dans le menu " -"déroulant des paramètres du graphique." +"Vous pouvez prévisualiser la liste des tableaux de bord dans le menu déroulant des " +"paramètres du graphique." msgid "You can't apply cross-filter on this data point." msgstr "Vous ne pouvez pas appliquer de filtre croisé à ce point de données." msgid "" -"You cannot delete the last temporal filter as it's used for time range " -"filters in dashboards." +"You cannot delete the last temporal filter as it's used for time range filters in " +"dashboards." msgstr "" -"Vous ne pouvez pas supprimer le dernier filtre temporel, car il est " -"utilisé pour les filtres temporels dans les tableaux de bord." +"Vous ne pouvez pas supprimer le dernier filtre temporel, car il est utilisé pour " +"les filtres temporels dans les tableaux de bord." msgid "You cannot use 45° tick layout along with the time range filter" msgstr "" -"Vous ne pouvez pas utiliser la disposition de 45° avec le filtre de plage" -" de temps" +"Vous ne pouvez pas utiliser la disposition de 45° avec le filtre de plage de temps" #, fuzzy, python-format msgid "You do not have permission to edit this %s" @@ -14876,17 +14505,14 @@ msgstr "Vous n'avez pas les droits pour modifier ce tableau de bord" msgid "You don't have the rights to alter this title." msgstr "Vous n'avez pas les droits pour modifier ce titre." -#, fuzzy msgid "You don't have the rights to create a chart" -msgstr "Vous n'avez pas les droits pour modifier ce graphique" +msgstr "Vous n'avez pas les droits de créer un graphique" -#, fuzzy msgid "You don't have the rights to create a dashboard" -msgstr "Vous n'avez pas les droits pour modifier ce tableau de bord" +msgstr "Vous n'avez pas les droits de créer un tableau de bord" -#, fuzzy msgid "You don't have the rights to download as csv" -msgstr "Vous n'avez pas les droits pour télécharger au format csv" +msgstr "Vous n'avez pas les droits de télécharger au format csv" msgid "You have removed this filter." msgstr "Vous avez supprimé ce filtre." @@ -14896,24 +14522,23 @@ msgstr "Vous avez des modifications non enregistrées." #, python-format msgid "" -"You have used all %(historyLength)s undo slots and will not be able to " -"fully undo subsequent actions. You may save your current state to reset " -"the history." +"You have used all %(historyLength)s undo slots and will not be able to fully undo " +"subsequent actions. You may save your current state to reset the history." msgstr "" -"Vous avez utilisé tous les emplacements d%(historyLength)s'annulation et " -"ne pourrez pas annuler complètement les actions subséquentes. Vous pouvez" -" enregistrer votre état actuel pour réinitialiser l’historique." +"Vous avez utilisé tous les emplacements d%(historyLength)s'annulation et ne " +"pourrez pas annuler complètement les actions subséquentes. Vous pouvez enregistrer " +"votre état actuel pour réinitialiser l’historique." msgid "You may have an error in your SQL statement. {message}" -msgstr "" +msgstr "Vous avez possiblement une erreur dans votre requête SQL. {message}" msgid "" -"You must be a dataset owner in order to edit. Please reach out to a " -"dataset owner to request modifications or edit access." +"You must be a dataset owner in order to edit. Please reach out to a dataset owner " +"to request modifications or edit access." msgstr "" -"Vous devez être propriétaire d'un ensemble de données pour pouvoir le " -"modifier. Veuillez communiquer avec un propriétaire d’ensemble de données" -" pour demander des modifications ou modifier l’accès." +"Vous devez être propriétaire d'un ensemble de données pour pouvoir le modifier. " +"Veuillez communiquer avec un propriétaire d’ensemble de données pour demander des " +"modifications ou modifier l’accès." msgid "You must pick a name for the new dashboard" msgstr "Vous devez entrer un nom pour le nouveau tableau de Bord" @@ -14925,21 +14550,20 @@ msgid "You need to configure HTML sanitization to use CSS" msgstr "Vous devez configurer la désinfection HTML pour utiliser CSS" msgid "" -"You updated the values in the control panel, but the chart was not " -"updated automatically. Run the query by clicking on the \"Update chart\" " -"button or" +"You updated the values in the control panel, but the chart was not updated " +"automatically. Run the query by clicking on the \"Update chart\" button or" msgstr "" -"Vous avez mis à jour les valeurs dans le panneau de commande, mais le " -"graphique n’a pas été mis à jour automatiquement. Exécutez la requête en " -"cliquant sur le bouton « Mettre à jour le graphique » ou" +"Vous avez mis à jour les valeurs dans le panneau de commande, mais le graphique " +"n’a pas été mis à jour automatiquement. Exécutez la requête en cliquant sur le " +"bouton « Mettre à jour le graphique » ou" msgid "" -"You've changed datasets. Any controls with data (columns, metrics) that " -"match this new dataset have been retained." +"You've changed datasets. Any controls with data (columns, metrics) that match this " +"new dataset have been retained." msgstr "" -"Vous avez modifié les ensembles de données. Tous les contrôles contenant " -"des données (colonnes, mesures) qui correspondent à ce nouveau ensemble " -"de données ont été conservés." +"Vous avez modifié les ensembles de données. Tous les contrôles contenant des " +"données (colonnes, mesures) qui correspondent à ce nouveau ensemble de données ont " +"été conservés." msgid "Your chart is not up to date" msgstr "Votre graphique n’est pas à jour" @@ -14962,11 +14586,11 @@ msgid "Your query could not be updated" msgstr "Votre requête n'a pas pu être mise à jour" msgid "" -"Your query has been scheduled. To see details of your query, navigate to " -"Saved queries" +"Your query has been scheduled. To see details of your query, navigate to Saved " +"queries" msgstr "" -"Votre requête a été planifiée. Pour voir les détails de votre requête, " -"veuillez naviguer vers Requêtes sauvegardées" +"Votre requête a été planifiée. Pour voir les détails de votre requête, veuillez " +"naviguer vers Requêtes sauvegardées" #, fuzzy msgid "Your query was not properly saved" @@ -14982,7 +14606,7 @@ msgid "Your report could not be deleted" msgstr "Votre rapport n'a pas pu être supprimée" msgid "ZIP file contains multiple file types" -msgstr "" +msgstr "Fichier ZIP contient plusieurs type de fichier" #, fuzzy msgid "Zero imputation" @@ -14994,14 +14618,12 @@ msgstr "Zoom" msgid "Zoom level of the map" msgstr "Niveau de zoom de la carte" -#, fuzzy msgid "[ untitled dashboard ]" -msgstr "[tableau de bord sans titre]" +msgstr "[ tableau de bord sans titre ]" msgid "[Longitude] and [Latitude] columns must be present in [Group By]" msgstr "" -"Les colonnes [Longitude] et [Latitude] doivent êtres présentes dans " -"[Grouper par]" +"Les colonnes [Longitude] et [Latitude] doivent êtres présentes dans [Grouper par]" msgid "[Longitude] and [Latitude] must be set" msgstr "Les colonnes [Longitude] et [Latitude] doivent êtres définies" @@ -15023,13 +14645,12 @@ msgid "[desc]" msgstr "[décroissant]" msgid "" -"[optional] this secondary metric is used to define the color as a ratio " -"against the primary metric. When omitted, the color is categorical and " -"based on labels" +"[optional] this secondary metric is used to define the color as a ratio against " +"the primary metric. When omitted, the color is categorical and based on labels" msgstr "" -"[Facultatif] cette mesure secondaire est utilisée pour définir la couleur" -" en tant que rapport par rapport à la mesure primaire. Si elle est omise," -" la couleur est catégorique et basée sur des étiquettes." +"[Facultatif] cette mesure secondaire est utilisée pour définir la couleur en tant " +"que rapport par rapport à la mesure primaire. Si elle est omise, la couleur est " +"catégorique et basée sur des étiquettes" #, fuzzy msgid "[untitled]" @@ -15045,14 +14666,14 @@ msgid "`confidence_interval` must be between 0 and 1 (exclusive)" msgstr "« confidence_interval » doit être entre 0 et 1 (exclusif)" msgid "" -"`count` is COUNT(*) if a group by is used. Numerical columns will be " -"aggregated with the aggregator. Non-numerical columns will be used to " -"label points. Leave empty to get a count of points in each cluster." +"`count` is COUNT(*) if a group by is used. Numerical columns will be aggregated " +"with the aggregator. Non-numerical columns will be used to label points. Leave " +"empty to get a count of points in each cluster." msgstr "" -"« count » est COUNT(*) si un groupe par est utilisé. Les colonnes " -"numériques seront regroupées avec l’agrégateur. Les colonnes non " -"numériques seront utilisées pour étiqueter les points. Laissez vide pour " -"obtenir un compte de points dans chaque regroupement." +"« count » est COUNT(*) si un groupe par est utilisé. Les colonnes numériques " +"seront regroupées avec l’agrégateur. Les colonnes non numériques seront utilisées " +"pour étiqueter les points. Laissez vide pour obtenir un compte de points dans " +"chaque regroupement." msgid "`operation` property of post processing object undefined" msgstr "La propriété « operation » de l'objet de post-traitement est indéfinie" @@ -15060,11 +14681,11 @@ msgstr "La propriété « operation » de l'objet de post-traitement est indé msgid "`prophet` package not installed" msgstr "Paquet « prophet » non installée" -#, fuzzy msgid "" -"`rename_columns` must have the same length as `columns` + " -"`time_shift_columns`." -msgstr "« rename_columns » doit être de même longueur que « columns »." +"`rename_columns` must have the same length as `columns` + `time_shift_columns`." +msgstr "" +"\"rename_columns\" doit être de la même longueur que \"columns\" + " +"\"time_shift_columns\"." msgid "`row_limit` must be greater than or equal to 0" msgstr "« row_limit » doit être plus grand ou égal à 0" @@ -15076,7 +14697,7 @@ msgid "`width` must be greater or equal to 0" msgstr "« width » doit être plus grand ou égal à 0" msgid "add colors to cell bars for +/-" -msgstr "" +msgstr "ajouter des couleurs aux barres de cellules pour +/-" msgid "aggregate" msgstr "agrégat" @@ -15084,9 +14705,8 @@ msgstr "agrégat" msgid "alert" msgstr "alerte" -#, fuzzy msgid "alert condition" -msgstr "Condition d'alerte" +msgstr "condition d'alerte" #, fuzzy msgid "alert dark" @@ -15126,9 +14746,8 @@ msgstr "auto (lisse)" msgid "background" msgstr "contexte" -#, fuzzy msgid "basic conditional formatting" -msgstr "Formatage conditionnel" +msgstr "formatage conditionnel basique" #, fuzzy msgid "basis" @@ -15174,16 +14793,14 @@ msgstr "changement" msgid "chart" msgstr "graphique" -#, fuzzy msgid "charts" msgstr "graphiques" msgid "choose WHERE or HAVING..." msgstr "choisir WHERE ou HAVING..." -#, fuzzy msgid "clear all filters" -msgstr "purger tous les filtres" +msgstr "reinitialiser tous les filtres" msgid "click here" msgstr "cliquer ici" @@ -15197,46 +14814,39 @@ msgstr "code ISO 3166-1 alpha-3 (cca3)" msgid "code International Olympic Committee (cioc)" msgstr "code Comité international olympique (CCIO)" -#, fuzzy msgid "color scheme for comparison" -msgstr "Comparaison de temps" +msgstr "schéma de couleur pour comparaison" -#, fuzzy msgid "color type" -msgstr "Colorer par" +msgstr "type de couleur" msgid "column" msgstr "colonne" -#, fuzzy, python-format +#, python-format msgid "connecting to %(dbModelName)s" -msgstr "connexion à %(dbModelName)s." +msgstr "connexion à %(dbModelName)s" -#, fuzzy msgid "content type" -msgstr "Type du filtre" +msgstr "type de contenu" -#, fuzzy msgid "count" -msgstr "nombre" +msgstr "count" -#, fuzzy msgid "create" msgstr "créer" -#, fuzzy msgid "create a new chart" msgstr "créer un nouveau graphique" msgid "create dataset from SQL query" msgstr "créer un ensemble de données à partir d'une requête SQL" -#, fuzzy msgid "crontab" -msgstr "nombre" +msgstr "crontab" msgid "css" -msgstr "CSS" +msgstr "css" msgid "css_template" msgstr "css_template" @@ -15244,16 +14854,14 @@ msgstr "css_template" msgid "cumsum" msgstr "cumsum" -#, fuzzy msgid "cumulative" msgstr "cumulatif" msgid "dashboard" -msgstr "tableau de bord " +msgstr "tableau de bord" -#, fuzzy msgid "dashboards" -msgstr "tableaux de bord " +msgstr "tableaux de bord" msgid "database" msgstr "base de données" @@ -15261,12 +14869,11 @@ msgstr "base de données" msgid "dataset" msgstr "ensemble de données" -#, fuzzy msgid "dataset name" msgstr "nom de l’ensemble de données" msgid "date" -msgstr "Date" +msgstr "date" msgid "day" msgstr "jour" @@ -15333,16 +14940,14 @@ msgid "default" msgstr "défaut" msgid "delete" -msgstr "supprimer " +msgstr "supprimer" -#, fuzzy msgid "descendant" msgstr "décroissant" msgid "description" msgstr "description" -#, fuzzy msgid "deviation" msgstr "déviation" @@ -15367,19 +14972,17 @@ msgstr "p. ex., 5432" msgid "e.g. AccountAdmin" msgstr "p. ex., AccountAdmin" -#, fuzzy msgid "e.g. Analytics" -msgstr "p. ex., analyses" +msgstr "p. ex. Analyses" msgid "e.g. compute_wh" msgstr "p. ex. compute_wh" -#, fuzzy msgid "e.g. default" -msgstr "défaut" +msgstr "p. ex. défaut" msgid "e.g. hive_metastore" -msgstr "" +msgstr "p. ex. hive_metastore" msgid "e.g. param1=value1¶m2=value2" msgstr "p. ex. param1=value1¶m2=value2" @@ -15393,24 +14996,20 @@ msgstr "p. ex. world_population" msgid "e.g. xy12345.us-east-2.aws" msgstr "p. ex., xy12345.us-east-2.aws" -#, fuzzy msgid "e.g., a \"user id\" column" -msgstr "Colonnes des séries temporelles" +msgstr "p. ex. une colonne \"id utilisateur\"" msgid "edit mode" msgstr "mode edition" -#, fuzzy msgid "email subject" -msgstr "Sélectionner un objet" +msgstr "sujet d'email" -#, fuzzy msgid "entries" -msgstr "séries" +msgstr "entrées" -#, fuzzy msgid "error" -msgstr "Erreur" +msgstr "erreur" msgid "error dark" msgstr "erreur sombre" @@ -15468,16 +15067,12 @@ msgstr "icône de type de fonction" msgid "geohash (square)" msgstr "geohash (carré)" -#, fuzzy msgid "heatmap" msgstr "carte thermique" msgid "heatmap: values are normalized across the entire heatmap" -msgstr "" -"carte thermique : les valeurs sont normalisées sur toute la carte " -"thermique" +msgstr "carte thermique : les valeurs sont normalisées sur toute la carte thermique" -#, fuzzy msgid "here" msgstr "ici" @@ -15485,11 +15080,11 @@ msgid "hour" msgstr "heure" msgid "" -"image-rendering CSS attribute of the canvas object that defines how the " -"browser scales up the image" +"image-rendering CSS attribute of the canvas object that defines how the browser " +"scales up the image" msgstr "" -"attribut CSS de rendu d'image de l'objet toile qui définit la façon dont " -"le navigateur met à l'échelle l'image" +"attribut CSS de rendu d'image de l'objet toile qui définit la façon dont le " +"navigateur met à l'échelle l'image" msgid "in" msgstr "dans" @@ -15497,12 +15092,11 @@ msgstr "dans" msgid "in modal" msgstr "dans modal" -#, fuzzy msgid "invalid email" -msgstr "Clé de liaison permanente non valide" +msgstr "email invalide" msgid "is expected to be a Mapbox URL" -msgstr "" +msgstr "est attendu d'être une URL de Mapbox" msgid "is expected to be a number" msgstr "devrait être un nombre" @@ -15538,11 +15132,11 @@ msgid "log" msgstr "journal" msgid "" -"lower percentile must be greater than 0 and less than 100. Must be lower " -"than upper percentile." +"lower percentile must be greater than 0 and less than 100. Must be lower than " +"upper percentile." msgstr "" -"le percentile inférieur doit être plus grand que 0 et plus petit que 100 " -"et doit être plus petit que le percentile supérieur." +"le percentile inférieur doit être plus grand que 0 et plus petit que 100 et doit " +"être plus petit que le percentile supérieur." #, fuzzy msgid "max" @@ -15578,7 +15172,7 @@ msgid "monotone" msgstr "monotone" msgid "month" -msgstr "Mois" +msgstr "mois" msgid "more than {max} {name}" msgstr "plus de {max} {name}" @@ -15663,11 +15257,11 @@ msgid "percentile (exclusive)" msgstr "percentile (exclusif)" msgid "" -"percentiles must be a list or tuple with two numeric values, of which the" -" first is lower than the second value" +"percentiles must be a list or tuple with two numeric values, of which the first is " +"lower than the second value" msgstr "" -"percentiles doit être une liste ou un tuple avec deux valeurs numériques," -" dont la première est inférieure à la deuxième valeur" +"percentiles doit être une liste ou un tuple avec deux valeurs numériques, dont la " +"première est inférieure à la deuxième valeur" #, fuzzy msgid "permalink state not found" @@ -15677,7 +15271,7 @@ msgid "pixelated (Sharp)" msgstr "pixellisé (aiguisé)" msgid "pixels" -msgstr "" +msgstr "pixels" msgid "previous calendar month" msgstr "mois calendaire précédent" @@ -15696,7 +15290,7 @@ msgid "quarter" msgstr "trimestre" msgid "queries" -msgstr "requêtes " +msgstr "requêtes" msgid "query" msgstr "requête" @@ -15754,20 +15348,19 @@ msgid "series" msgstr "série" msgid "" -"series: Treat each series independently; overall: All series use the same" -" scale; change: Show changes compared to the first data point in each " -"series" +"series: Treat each series independently; overall: All series use the same scale; " +"change: Show changes compared to the first data point in each series" msgstr "" -"série : traiter chaque série indépendamment; dans l’ensemble : toutes les" -" séries utilisent la même échelle; changement : afficher les changements " -"par rapport au premier point de données de chaque série" +"série : traiter chaque série indépendamment; dans l’ensemble : toutes les séries " +"utilisent la même échelle; changement : afficher les changements par rapport au " +"premier point de données de chaque série" #, fuzzy msgid "shift start date" msgstr "Date de début" msgid "sql" -msgstr "" +msgstr "sql" #, fuzzy msgid "square" @@ -15820,9 +15413,8 @@ msgstr "syntaxe." msgid "tag" msgstr "balise" -#, fuzzy msgid "tags" -msgstr "Tags" +msgstr "tags" msgid "temporal type icon" msgstr "icône de type temporel" @@ -15847,11 +15439,11 @@ msgid "unknown type icon" msgstr "icône de type inconnu" msgid "" -"upper percentile must be greater than 0 and less than 100. Must be higher" -" than lower percentile." +"upper percentile must be greater than 0 and less than 100. Must be higher than " +"lower percentile." msgstr "" -"le centile supérieur doit être supérieur à 0 et inférieur à 100. Doit " -"être supérieur au percentile inférieur." +"le centile supérieur doit être supérieur à 0 et inférieur à 100. Doit être " +"supérieur au percentile inférieur." #, fuzzy msgid "use latest_partition template" @@ -15865,24 +15457,20 @@ msgstr "valeurs croissantes" msgid "value descending" msgstr "valeurs décroissantes" -#, fuzzy msgid "var" msgstr "var" -#, fuzzy msgid "variance" msgstr "variance" -#, fuzzy msgid "view instructions" msgstr "voir les instructions" msgid "virtual" msgstr "virtuel" -#, fuzzy msgid "viz type" -msgstr "Type Viz" +msgstr "type viz" msgid "was created" msgstr "a été créé" @@ -15890,17 +15478,14 @@ msgstr "a été créé" msgid "week" msgstr "semaine" -#, fuzzy msgid "week ending Saturday" msgstr "semaine se terminant le samedi" -#, fuzzy msgid "week starting Sunday" msgstr "semaine débutant le dimanche" -#, fuzzy msgid "working timeout" -msgstr "Délai d'exécution dépassé" +msgstr "délai d'exécution dépassé" msgid "x" msgstr "x" From 66c1a6a87567336e44ec36a1c7f9477c78c64de1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 18:52:00 -0700 Subject: [PATCH 24/28] =?UTF-8?q?chore(=F0=9F=A6=BE):=20bump=20python=20sq?= =?UTF-8?q?lglot=2026.1.3=20->=2026.11.1=20(#32745)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: GitHub Action --- requirements/base.txt | 3 ++- requirements/development.txt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 603429671fc..3f6c0cf2d12 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -158,6 +158,7 @@ greenlet==3.1.1 # via # apache-superset (pyproject.toml) # shillelagh + # sqlalchemy gunicorn==23.0.0 # via apache-superset (pyproject.toml) h11==0.14.0 @@ -374,7 +375,7 @@ sqlalchemy-utils==0.38.3 # via # apache-superset (pyproject.toml) # flask-appbuilder -sqlglot==26.1.3 +sqlglot==26.11.1 # via apache-superset (pyproject.toml) sqlparse==0.5.3 # via apache-superset (pyproject.toml) diff --git a/requirements/development.txt b/requirements/development.txt index 1317a2970c4..27774475e0b 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -318,6 +318,7 @@ greenlet==3.1.1 # apache-superset # gevent # shillelagh + # sqlalchemy grpcio==1.68.0 # via # apache-superset @@ -803,7 +804,7 @@ sqlalchemy-utils==0.38.3 # -c requirements/base.txt # apache-superset # flask-appbuilder -sqlglot==26.1.3 +sqlglot==26.11.1 # via # -c requirements/base.txt # apache-superset From 121e424a7fb6f2dcecd0adf54b89656f5dfe5035 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 18:52:19 -0700 Subject: [PATCH 25/28] =?UTF-8?q?chore(=F0=9F=A6=BE):=20bump=20python=20ce?= =?UTF-8?q?lery=20subpackage(s)=20(#32743)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: GitHub Action --- requirements/base.txt | 2 +- requirements/development.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 3f6c0cf2d12..02dc9d7a227 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -194,7 +194,7 @@ jsonschema==4.23.0 # via flask-appbuilder jsonschema-specifications==2024.10.1 # via jsonschema -kombu==5.4.2 +kombu==5.5.0 # via celery korean-lunar-calendar==0.3.1 # via holidays diff --git a/requirements/development.txt b/requirements/development.txt index 27774475e0b..5771b2b5b9e 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -399,7 +399,7 @@ jsonschema-specifications==2024.10.1 # openapi-schema-validator kiwisolver==1.4.7 # via matplotlib -kombu==5.4.2 +kombu==5.5.0 # via # -c requirements/base.txt # celery From 09ee3e2a1dfebf45e2554121a0648877636d6e1a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 18:52:34 -0700 Subject: [PATCH 26/28] =?UTF-8?q?chore(=F0=9F=A6=BE):=20bump=20python=20sh?= =?UTF-8?q?illelagh=20subpackage(s)=20(#31255)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: GitHub Action --- requirements/base.txt | 20 ++++++++++---------- requirements/development.txt | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 02dc9d7a227..45190f20fa5 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -8,13 +8,13 @@ apispec==6.6.1 # via # -r requirements/base.in # flask-appbuilder -apsw==3.46.0.0 +apsw==3.49.1.0 # via shillelagh async-timeout==4.0.3 # via # -r requirements/base.in # redis -attrs==25.2.0 +attrs==25.3.0 # via # cattrs # jsonschema @@ -40,13 +40,13 @@ cachelib==0.13.0 # via # flask-caching # flask-session -cachetools==5.5.0 +cachetools==5.5.2 # via google-auth cattrs==24.1.2 # via requests-cache celery==5.4.0 # via apache-superset (pyproject.toml) -certifi==2024.8.30 +certifi==2025.1.31 # via # requests # selenium @@ -54,7 +54,7 @@ cffi==1.17.1 # via # cryptography # pynacl -charset-normalizer==3.4.0 +charset-normalizer==3.4.1 # via requests click==8.1.8 # via @@ -152,7 +152,7 @@ geographiclib==2.0 # via geopy geopy==2.4.1 # via apache-superset (pyproject.toml) -google-auth==2.36.0 +google-auth==2.38.0 # via shillelagh greenlet==3.1.1 # via @@ -265,7 +265,7 @@ parsedatetime==2.6 # via apache-superset (pyproject.toml) pgsanity==0.2.9 # via apache-superset (pyproject.toml) -platformdirs==3.9.1 +platformdirs==4.3.6 # via requests-cache ply==3.11 # via jsonpath-ng @@ -330,11 +330,11 @@ referencing==0.36.2 # via # jsonschema # jsonschema-specifications -requests==2.32.2 +requests==2.32.3 # via # requests-cache # shillelagh -requests-cache==1.2.0 +requests-cache==1.2.1 # via shillelagh rich==13.9.4 # via flask-limiter @@ -346,7 +346,7 @@ rsa==4.9 # via google-auth selenium==4.27.1 # via apache-superset (pyproject.toml) -shillelagh==1.2.18 +shillelagh==1.3.5 # via apache-superset (pyproject.toml) simplejson==3.20.1 # via apache-superset (pyproject.toml) diff --git a/requirements/development.txt b/requirements/development.txt index 5771b2b5b9e..bb53cb94bee 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -14,7 +14,7 @@ apispec==6.6.1 # via # -c requirements/base.txt # flask-appbuilder -apsw==3.46.0.0 +apsw==3.49.1.0 # via # -c requirements/base.txt # shillelagh @@ -22,7 +22,7 @@ async-timeout==4.0.3 # via # -c requirements/base.txt # redis -attrs==25.2.0 +attrs==25.3.0 # via # -c requirements/base.txt # cattrs @@ -64,7 +64,7 @@ cachelib==0.13.0 # -c requirements/base.txt # flask-caching # flask-session -cachetools==5.5.0 +cachetools==5.5.2 # via # -c requirements/base.txt # google-auth @@ -76,7 +76,7 @@ celery==5.4.0 # via # -c requirements/base.txt # apache-superset -certifi==2024.8.30 +certifi==2025.1.31 # via # -c requirements/base.txt # requests @@ -88,7 +88,7 @@ cffi==1.17.1 # pynacl cfgv==3.4.0 # via pre-commit -charset-normalizer==3.4.0 +charset-normalizer==3.4.1 # via # -c requirements/base.txt # requests @@ -280,7 +280,7 @@ google-api-core==2.23.0 # google-cloud-core # pandas-gbq # sqlalchemy-bigquery -google-auth==2.36.0 +google-auth==2.38.0 # via # -c requirements/base.txt # google-api-core @@ -547,7 +547,7 @@ pillow==10.3.0 # via # apache-superset # matplotlib -platformdirs==3.9.1 +platformdirs==4.3.6 # via # -c requirements/base.txt # requests-cache @@ -711,7 +711,7 @@ referencing==0.36.2 # jsonschema # jsonschema-path # jsonschema-specifications -requests==2.32.2 +requests==2.32.3 # via # -c requirements/base.txt # docker @@ -724,7 +724,7 @@ requests==2.32.2 # requests-oauthlib # shillelagh # trino -requests-cache==1.2.0 +requests-cache==1.2.1 # via # -c requirements/base.txt # shillelagh @@ -758,7 +758,7 @@ setuptools==75.6.0 # pydata-google-auth # zope-event # zope-interface -shillelagh==1.2.18 +shillelagh==1.3.5 # via # -c requirements/base.txt # apache-superset From 29b62f7c0a5f04a95846bffa1f7f0032f4e8a1ec Mon Sep 17 00:00:00 2001 From: sowo Date: Wed, 19 Mar 2025 03:42:38 +0100 Subject: [PATCH 27/28] fix(contextmenu): uncaught TypeError (#28203) --- superset/common/query_context_processor.py | 27 +++++++++++++++++++ superset/common/query_object.py | 7 ++++- superset/connectors/sqla/models.py | 5 ++-- .../integration_tests/query_context_tests.py | 2 ++ .../common/test_query_object_factory.py | 27 ++++++++++++++++++- 5 files changed, 64 insertions(+), 4 deletions(-) diff --git a/superset/common/query_context_processor.py b/superset/common/query_context_processor.py index edf06e9d88c..509dcba5a71 100644 --- a/superset/common/query_context_processor.py +++ b/superset/common/query_context_processor.py @@ -49,6 +49,7 @@ from superset.exceptions import ( from superset.extensions import cache_manager, security_manager from superset.models.helpers import QueryResult from superset.models.sql_lab import Query +from superset.superset_typing import AdhocColumn, AdhocMetric from superset.utils import csv, excel from superset.utils.cache import generate_cache_key, set_and_log_cache from superset.utils.core import ( @@ -63,6 +64,8 @@ from superset.utils.core import ( get_column_names_from_metrics, get_metric_names, get_x_axis_label, + is_adhoc_column, + is_adhoc_metric, normalize_dttm_col, TIME_COMPARISON, ) @@ -180,6 +183,30 @@ class QueryContextProcessor: ] for col in cache.df.columns.values } + label_map.update( + { + column_name: [ + str(query_obj.columns[idx]) + if not is_adhoc_column(query_obj.columns[idx]) + else cast(AdhocColumn, query_obj.columns[idx])["sqlExpression"], + ] + for idx, column_name in enumerate(query_obj.column_names) + } + ) + label_map.update( + { + metric_name: [ + str(query_obj.metrics[idx]) + if not is_adhoc_metric(query_obj.metrics[idx]) + else str(cast(AdhocMetric, query_obj.metrics[idx])["sqlExpression"]) + if cast(AdhocMetric, query_obj.metrics[idx])["expressionType"] + == "SQL" + else metric_name, + ] + for idx, metric_name in enumerate(query_obj.metric_names) + if query_obj and query_obj.metrics + } + ) cache.df.columns = [unescape_separator(col) for col in cache.df.columns.values] return { diff --git a/superset/common/query_object.py b/superset/common/query_object.py index a9956d6f73f..40729109466 100644 --- a/superset/common/query_object.py +++ b/superset/common/query_object.py @@ -258,7 +258,12 @@ class QueryObject: # pylint: disable=too-many-instance-attributes @property def metric_names(self) -> list[str]: """Return metrics names (labels), coerce adhoc metrics to strings.""" - return get_metric_names(self.metrics or []) + return get_metric_names( + self.metrics or [], + self.datasource.verbose_map + if self.datasource and hasattr(self.datasource, "verbose_map") + else None, + ) @property def column_names(self) -> list[str]: diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index 6478fdf075d..4a006cd9f3a 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -424,7 +424,7 @@ class BaseDatasource(AuditMixinNullable, ImportExportMixin): # pylint: disable= # pull out all required metrics from the form_data for metric_param in METRIC_FORM_DATA_PARAMS: for metric in utils.as_list(form_data.get(metric_param) or []): - metric_names.add(utils.get_metric_name(metric)) + metric_names.add(utils.get_metric_name(metric, self.verbose_map)) if utils.is_adhoc_metric(metric): column_ = metric.get("column") or {} if column_name := column_.get("column_name"): @@ -476,6 +476,7 @@ class BaseDatasource(AuditMixinNullable, ImportExportMixin): # pylint: disable= metric for metric in data["metrics"] if metric["metric_name"] in metric_names + or metric["verbose_name"] in metric_names ] filtered_columns: list[Column] = [] @@ -1496,7 +1497,7 @@ class SqlaTable( :rtype: sqlalchemy.sql.column """ expression_type = metric.get("expressionType") - label = utils.get_metric_name(metric) + label = utils.get_metric_name(metric, self.verbose_map) if expression_type == utils.AdhocMetricExpressionType.SIMPLE: metric_column = metric.get("column") or {} diff --git a/tests/integration_tests/query_context_tests.py b/tests/integration_tests/query_context_tests.py index c744bb75a54..a56e8338352 100644 --- a/tests/integration_tests/query_context_tests.py +++ b/tests/integration_tests/query_context_tests.py @@ -786,6 +786,8 @@ def test_get_label_map(app_context, virtual_dataset_comma_in_column_value): "count, col2, row1": ["count", "col2, row1"], "count, col2, row2": ["count", "col2, row2"], "count, col2, row3": ["count", "col2, row3"], + "col2": ["col2"], + "count": ["count"], } diff --git a/tests/unit_tests/common/test_query_object_factory.py b/tests/unit_tests/common/test_query_object_factory.py index 4d54f77de88..8ff362dec36 100644 --- a/tests/unit_tests/common/test_query_object_factory.py +++ b/tests/unit_tests/common/test_query_object_factory.py @@ -40,7 +40,9 @@ def app_config() -> dict[str, Any]: @fixture def connector_registry() -> Mock: - return Mock(spec=["get_datasource"]) + mock = Mock(spec=["get_datasource"]) + mock.get_datasource().verbose_map = {"sum__num": "SUM", "unused": "UNUSED"} + return mock def apply_max_row_limit(limit: int, max_limit: Optional[int] = None) -> int: @@ -66,6 +68,11 @@ def raw_query_context() -> dict[str, Any]: return QueryContextGenerator().generate("birth_names") +@fixture +def metric_label_raw_query_context() -> dict[str, Any]: + return QueryContextGenerator().generate("birth_names:metric_labels") + + class TestQueryObjectFactory: def test_query_context_limit_and_offset_defaults( self, @@ -107,3 +114,21 @@ class TestQueryObjectFactory: raw_query_context["result_type"], **raw_query_object ) assert query_object.post_processing == [] + + def test_query_context_metric_names( + self, + query_object_factory: QueryObjectFactory, + raw_query_context: dict[str, Any], + ): + raw_query_context["queries"][0]["metrics"] = [ + {"label": "sum__num"}, + {"label": "num_girls"}, + {"label": "num_boys"}, + ] + raw_query_object = raw_query_context["queries"][0] + query_object = query_object_factory.create( + raw_query_context["result_type"], + datasource=raw_query_context["datasource"], + **raw_query_object, + ) + assert query_object.metric_names == ["SUM", "num_girls", "num_boys"] From 4f166a03f5814bcdc45ee9ade66e4dcb5f529b06 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 20:46:48 -0600 Subject: [PATCH 28/28] =?UTF-8?q?chore(=F0=9F=A6=BE):=20bump=20python=20sl?= =?UTF-8?q?ack-sdk=203.34.0=20->=203.35.0=20(#32742)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: GitHub Action --- requirements/base.txt | 2 +- requirements/development.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 45190f20fa5..2ccec3a9a06 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -356,7 +356,7 @@ six==1.17.0 # python-dateutil # url-normalize # wtforms-json -slack-sdk==3.34.0 +slack-sdk==3.35.0 # via apache-superset (pyproject.toml) sniffio==1.3.1 # via trio diff --git a/requirements/development.txt b/requirements/development.txt index bb53cb94bee..63453cb5a66 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -774,7 +774,7 @@ six==1.17.0 # rfc3339-validator # url-normalize # wtforms-json -slack-sdk==3.34.0 +slack-sdk==3.35.0 # via # -c requirements/base.txt # apache-superset