mirror of
https://github.com/apache/superset.git
synced 2026-05-13 03:45:12 +00:00
Compare commits
95 Commits
quote-exce
...
v0.20.4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
45ca04bdea | ||
|
|
50fa2667d7 | ||
|
|
091b8ca053 | ||
|
|
0b73278059 | ||
|
|
cb31711e47 | ||
|
|
c75c91c49e | ||
|
|
d76c7e14e4 | ||
|
|
531c88891b | ||
|
|
f25ca57fc9 | ||
|
|
0a0ccc05fd | ||
|
|
88217f3c9d | ||
|
|
aaff98412c | ||
|
|
356357a18a | ||
|
|
ba3277e937 | ||
|
|
6f9720c39f | ||
|
|
aa177ffe63 | ||
|
|
4f266d57aa | ||
|
|
eb959183ba | ||
|
|
9665158fc7 | ||
|
|
654701af4c | ||
|
|
73d21a87ae | ||
|
|
878c7f0267 | ||
|
|
cb78c778dd | ||
|
|
310558508e | ||
|
|
3daca8d251 | ||
|
|
28b01c5464 | ||
|
|
1fbdd21133 | ||
|
|
55a6c3a10a | ||
|
|
fc45647440 | ||
|
|
3bfead66c4 | ||
|
|
b54a97b5f0 | ||
|
|
931f69d6c7 | ||
|
|
ae8c6865c9 | ||
|
|
0133bab038 | ||
|
|
48c5ee4f8b | ||
|
|
9315a8838c | ||
|
|
592564b623 | ||
|
|
79aff6827c | ||
|
|
079e7327a2 | ||
|
|
48864ce8c7 | ||
|
|
2816a70af3 | ||
|
|
6af22a9cdd | ||
|
|
827fe06903 | ||
|
|
45815d8642 | ||
|
|
cf5c770adc | ||
|
|
638f82b46d | ||
|
|
e0e1eea9ce | ||
|
|
27c7240185 | ||
|
|
5ca2a8f670 | ||
|
|
2d60a2d48c | ||
|
|
b70c8ee7a8 | ||
|
|
a3fd7423b0 | ||
|
|
f679a18e82 | ||
|
|
77f3764fea | ||
|
|
1e0c04fc15 | ||
|
|
56b973f3cc | ||
|
|
3479574bd4 | ||
|
|
aa55751b1d | ||
|
|
6c2aade375 | ||
|
|
f51f19bcba | ||
|
|
1d44662b1d | ||
|
|
25f4226dbb | ||
|
|
dd1ba96adf | ||
|
|
d4888fa4af | ||
|
|
b3559f644c | ||
|
|
fe80fb1090 | ||
|
|
43efa05113 | ||
|
|
e5e3f9e210 | ||
|
|
468dfed416 | ||
|
|
3564740255 | ||
|
|
8020729ced | ||
|
|
deec63bb5b | ||
|
|
339d491dfc | ||
|
|
d66ac9f3f4 | ||
|
|
06fb330569 | ||
|
|
ce0e06a935 | ||
|
|
5006f97f70 | ||
|
|
24d001e498 | ||
|
|
eab888c63a | ||
|
|
3d3c09d299 | ||
|
|
97dde8c485 | ||
|
|
14682b9054 | ||
|
|
93ba8e16c3 | ||
|
|
dbcb473040 | ||
|
|
f0811c8863 | ||
|
|
0166db9663 | ||
|
|
c26f073134 | ||
|
|
45668e31fc | ||
|
|
529aed5da1 | ||
|
|
09802acf0d | ||
|
|
9224051b80 | ||
|
|
fd9d3301f6 | ||
|
|
68499a1199 | ||
|
|
f077323e6f | ||
|
|
7f2e752796 |
4
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
4
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
@@ -41,8 +41,8 @@ body:
|
||||
label: Superset version
|
||||
options:
|
||||
- master / latest-dev
|
||||
- "4.1.0"
|
||||
- "3.1.3"
|
||||
- "4.1.1"
|
||||
- "4.0.2"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
|
||||
8
.github/actions/setup-backend/action.yml
vendored
8
.github/actions/setup-backend/action.yml
vendored
@@ -42,12 +42,12 @@ runs:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
if [ "${{ inputs.install-superset }}" = "true" ]; then
|
||||
sudo apt-get update && sudo apt-get -y install libldap2-dev libsasl2-dev build-essential
|
||||
pip install --upgrade pip setuptools wheel
|
||||
sudo apt-get update && sudo apt-get -y install libldap2-dev libsasl2-dev
|
||||
pip install --upgrade pip setuptools wheel uv
|
||||
if [ "${{ inputs.requirements-type }}" = "dev" ]; then
|
||||
pip install -r requirements/development.txt
|
||||
uv pip install --system -r requirements/development.txt
|
||||
elif [ "${{ inputs.requirements-type }}" = "base" ]; then
|
||||
pip install -r requirements/base.txt
|
||||
uv pip install --system -r requirements/base.txt
|
||||
fi
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
32
.github/workflows/ephemeral-env.yml
vendored
32
.github/workflows/ephemeral-env.yml
vendored
@@ -35,22 +35,26 @@ jobs:
|
||||
|
||||
- name: Eval comment body for /testenv slash command
|
||||
uses: actions/github-script@v7
|
||||
env:
|
||||
COMMENT_BODY: ${{ github.event.inputs.comment_body || github.event.comment.body }}
|
||||
id: eval-body
|
||||
with:
|
||||
result-encoding: string
|
||||
script: |
|
||||
const pattern = /^\/testenv (up|down)/;
|
||||
const result = pattern.exec('${{ github.event.inputs.comment_body || github.event.comment.body }}');
|
||||
const result = pattern.exec(process.env.COMMENT_BODY || '');
|
||||
return result === null ? 'noop' : result[1];
|
||||
|
||||
- name: Looking for feature flags
|
||||
uses: actions/github-script@v7
|
||||
env:
|
||||
COMMENT_BODY: ${{ github.event.inputs.comment_body || github.event.comment.body }}
|
||||
id: eval-feature-flags
|
||||
with:
|
||||
script: |
|
||||
const pattern = /FEATURE_(\w+)=(\w+)/g;
|
||||
let results = [];
|
||||
[...'${{ github.event.inputs.comment_body || github.event.comment.body }}'.matchAll(pattern)].forEach(match => {
|
||||
[...process.env.COMMENT_BODY.matchAll(pattern)].forEach(match => {
|
||||
const config = {
|
||||
name: `SUPERSET_FEATURE_${match[1]}`,
|
||||
value: match[2],
|
||||
@@ -88,23 +92,25 @@ jobs:
|
||||
const action = '${{ steps.eval-body.outputs.result }}';
|
||||
const runId = context.runId;
|
||||
const workflowUrl = `${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/actions/runs/${runId}`;
|
||||
const body = action === 'noop'
|
||||
? `@${user} No ephemeral environment action detected. Please use '/testenv up' or '/testenv down'. [View workflow run](${workflowUrl}).`
|
||||
: `@${user} Processing your ephemeral environment request [here](${workflowUrl}).`;
|
||||
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issueNumber,
|
||||
body,
|
||||
});
|
||||
|
||||
const body = `@${user} Processing your ephemeral environment request [here](${workflowUrl}).`;
|
||||
if (action !== 'noop') {
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issueNumber,
|
||||
body,
|
||||
});
|
||||
}
|
||||
else {
|
||||
core.setFailed('No ephemeral environment action detected.');
|
||||
}
|
||||
|
||||
ephemeral-docker-build:
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.inputs.issue_number || github.event.issue.number || github.run_id }}-build
|
||||
cancel-in-progress: true
|
||||
needs: ephemeral-env-comment
|
||||
if: needs.ephemeral-env-comment.outputs.slash-command == 'up'
|
||||
name: ephemeral-docker-build
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
|
||||
2
.github/workflows/superset-frontend.yml
vendored
2
.github/workflows/superset-frontend.yml
vendored
@@ -73,7 +73,7 @@ jobs:
|
||||
working-directory: ./superset-frontend/packages/generator-superset
|
||||
run: npm run test
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: javascript
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
@@ -68,7 +68,7 @@ jobs:
|
||||
run: |
|
||||
./scripts/python_tests.sh
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,mysql
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
@@ -129,7 +129,7 @@ jobs:
|
||||
run: |
|
||||
./scripts/python_tests.sh
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,postgres
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
@@ -181,7 +181,7 @@ jobs:
|
||||
run: |
|
||||
./scripts/python_tests.sh
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,sqlite
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
@@ -77,7 +77,7 @@ jobs:
|
||||
run: |
|
||||
./scripts/python_tests.sh -m 'chart_data_flow or sql_json_flow'
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,presto
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
@@ -145,7 +145,7 @@ jobs:
|
||||
pip install -e .[hive]
|
||||
./scripts/python_tests.sh -m 'chart_data_flow or sql_json_flow'
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,hive
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
@@ -46,7 +46,7 @@ jobs:
|
||||
run: |
|
||||
pytest --durations-min=0.5 --cov-report= --cov=superset ./tests/common ./tests/unit_tests --cache-clear
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,unit
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
@@ -47,11 +47,12 @@ repos:
|
||||
hooks:
|
||||
- id: check-docstring-first
|
||||
- id: check-added-large-files
|
||||
exclude: ^.*\.(geojson)$|^docs/static/img/screenshots/.*
|
||||
exclude: ^.*\.(geojson)$|^docs/static/img/screenshots/.*|^superset-frontend/CHANGELOG\.md$
|
||||
- id: check-yaml
|
||||
exclude: ^helm/superset/templates/
|
||||
- id: debug-statements
|
||||
- id: end-of-file-fixer
|
||||
exclude: .*/lerna\.json$
|
||||
- id: trailing-whitespace
|
||||
exclude: ^.*\.(snap)
|
||||
args: ["--markdown-linebreak-ext=md"]
|
||||
|
||||
@@ -70,6 +70,7 @@ google-sheets.svg
|
||||
ibm-db2.svg
|
||||
postgresql.svg
|
||||
snowflake.svg
|
||||
ydb.svg
|
||||
|
||||
# docs-related
|
||||
erd.puml
|
||||
|
||||
179
Dockerfile
179
Dockerfile
@@ -20,44 +20,38 @@
|
||||
######################################################################
|
||||
ARG PY_VER=3.10-slim-bookworm
|
||||
|
||||
# if BUILDPLATFORM is null, set it to 'amd64' (or leave as is otherwise).
|
||||
# If BUILDPLATFORM is null, set it to 'amd64' (or leave as is otherwise).
|
||||
ARG BUILDPLATFORM=${BUILDPLATFORM:-amd64}
|
||||
FROM --platform=${BUILDPLATFORM} node:20-bullseye-slim AS superset-node
|
||||
|
||||
# Arguments for build configuration
|
||||
ARG NPM_BUILD_CMD="build"
|
||||
ARG BUILD_TRANSLATIONS="false" # Include translations in the final build
|
||||
ARG DEV_MODE="false" # Skip frontend build in dev mode
|
||||
ARG INCLUDE_CHROMIUM="true" # Include headless Chromium for alerts & reports
|
||||
ARG INCLUDE_FIREFOX="false" # Include headless Firefox if enabled
|
||||
|
||||
# Include translations in the final build. The default supports en only to
|
||||
# reduce complexity and weight for those only using en
|
||||
ARG BUILD_TRANSLATIONS="false"
|
||||
|
||||
# Used by docker-compose to skip the frontend build,
|
||||
# in dev we mount the repo and build the frontend inside docker
|
||||
ARG DEV_MODE="false"
|
||||
|
||||
# Include headless browsers? Allows for alerts, reports & thumbnails, but bloats the images
|
||||
ARG INCLUDE_CHROMIUM="true"
|
||||
ARG INCLUDE_FIREFOX="false"
|
||||
|
||||
# Somehow we need python3 + build-essential on this side of the house to install node-gyp
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install \
|
||||
-yqq --no-install-recommends \
|
||||
build-essential \
|
||||
python3 \
|
||||
zstd
|
||||
# Install system dependencies required for node-gyp
|
||||
RUN --mount=type=bind,source=./docker,target=/docker \
|
||||
/docker/apt-install.sh build-essential python3 zstd
|
||||
|
||||
# Define environment variables for frontend build
|
||||
ENV BUILD_CMD=${NPM_BUILD_CMD} \
|
||||
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
||||
# NPM ci first, as to NOT invalidate previous steps except for when package.json changes
|
||||
|
||||
RUN --mount=type=bind,target=/frontend-mem-nag.sh,src=./docker/frontend-mem-nag.sh \
|
||||
/frontend-mem-nag.sh
|
||||
# Run the frontend memory monitoring script
|
||||
RUN --mount=type=bind,source=./docker,target=/docker \
|
||||
/docker/frontend-mem-nag.sh
|
||||
|
||||
WORKDIR /app/superset-frontend
|
||||
# Creating empty folders to avoid errors when running COPY later on
|
||||
RUN mkdir -p /app/superset/static/assets
|
||||
RUN --mount=type=bind,target=./package.json,src=./superset-frontend/package.json \
|
||||
--mount=type=bind,target=./package-lock.json,src=./superset-frontend/package-lock.json \
|
||||
|
||||
# Create necessary folders to avoid errors in subsequent steps
|
||||
RUN mkdir -p /app/superset/static/assets \
|
||||
/app/superset/translations
|
||||
|
||||
# Mount package files and install dependencies if not in dev mode
|
||||
RUN --mount=type=bind,source=./superset-frontend/package.json,target=./package.json \
|
||||
--mount=type=bind,source=./superset-frontend/package-lock.json,target=./package-lock.json \
|
||||
if [ "$DEV_MODE" = "false" ]; then \
|
||||
npm ci; \
|
||||
else \
|
||||
@@ -66,33 +60,39 @@ RUN --mount=type=bind,target=./package.json,src=./superset-frontend/package.json
|
||||
|
||||
# Runs the webpack build process
|
||||
COPY superset-frontend /app/superset-frontend
|
||||
# This copies the .po files needed for translation
|
||||
RUN mkdir -p /app/superset/translations
|
||||
|
||||
|
||||
# Copy translation files
|
||||
COPY superset/translations /app/superset/translations
|
||||
|
||||
# Build the frontend if not in dev mode
|
||||
RUN if [ "$DEV_MODE" = "false" ]; then \
|
||||
BUILD_TRANSLATIONS=$BUILD_TRANSLATIONS npm run ${BUILD_CMD}; \
|
||||
else \
|
||||
echo "Skipping 'npm run ${BUILD_CMD}' in dev mode"; \
|
||||
fi
|
||||
|
||||
|
||||
# Compiles .json files from the .po files, then deletes the .po files
|
||||
# Compile .json files from .po translations (if required) and clean up .po files
|
||||
RUN if [ "$BUILD_TRANSLATIONS" = "true" ]; then \
|
||||
npm run build-translation; \
|
||||
else \
|
||||
echo "Skipping translations as requested by build flag"; \
|
||||
fi
|
||||
RUN rm /app/superset/translations/*/LC_MESSAGES/*.po
|
||||
RUN rm /app/superset/translations/messages.pot
|
||||
fi \
|
||||
# removing translations files regardless
|
||||
&& rm -rf /app/superset/translations/*/LC_MESSAGES/*.po \
|
||||
/app/superset/translations/messages.pot
|
||||
|
||||
|
||||
# Transition to Python base image
|
||||
FROM python:${PY_VER} AS python-base
|
||||
RUN pip install --no-cache-dir --upgrade setuptools pip uv
|
||||
|
||||
######################################################################
|
||||
# Final lean image...
|
||||
######################################################################
|
||||
FROM python-base AS lean
|
||||
|
||||
# Include translations in the final build. The default supports en only to
|
||||
# reduce complexity and weight for those only using en
|
||||
# Build argument for including translations
|
||||
ARG BUILD_TRANSLATIONS="false"
|
||||
|
||||
WORKDIR /app
|
||||
@@ -104,9 +104,16 @@ ENV LANG=C.UTF-8 \
|
||||
SUPERSET_HOME="/app/superset_home" \
|
||||
SUPERSET_PORT=8088
|
||||
|
||||
RUN mkdir -p ${PYTHONPATH} superset/static requirements superset-frontend apache_superset.egg-info requirements \
|
||||
# Set up necessary directories and user
|
||||
RUN --mount=type=bind,source=./docker,target=/docker \
|
||||
mkdir -p ${PYTHONPATH} \
|
||||
superset/static \
|
||||
requirements \
|
||||
superset-frontend \
|
||||
apache_superset.egg-info \
|
||||
requirements \
|
||||
&& useradd --user-group -d ${SUPERSET_HOME} -m --no-log-init --shell /bin/bash superset \
|
||||
&& apt-get update -qq && apt-get install -yqq --no-install-recommends \
|
||||
&& /docker/apt-install.sh \
|
||||
curl \
|
||||
libsasl2-dev \
|
||||
libsasl2-modules-gssapi-mit \
|
||||
@@ -117,58 +124,62 @@ RUN mkdir -p ${PYTHONPATH} superset/static requirements superset-frontend apache
|
||||
&& chown -R superset:superset ./* \
|
||||
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
|
||||
|
||||
# Copy required files for Python build
|
||||
COPY --chown=superset:superset pyproject.toml setup.py MANIFEST.in README.md ./
|
||||
# setup.py uses the version information in package.json
|
||||
COPY --chown=superset:superset superset-frontend/package.json superset-frontend/
|
||||
COPY --chown=superset:superset requirements/base.txt requirements/
|
||||
COPY --chown=superset:superset scripts/check-env.py scripts/
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
apt-get update -qq && apt-get install -yqq --no-install-recommends \
|
||||
build-essential \
|
||||
&& pip install --no-cache-dir --upgrade setuptools pip \
|
||||
&& pip install --no-cache-dir -r requirements/base.txt \
|
||||
&& apt-get autoremove -yqq --purge build-essential \
|
||||
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
|
||||
|
||||
# Copy the compiled frontend assets
|
||||
# Install Python dependencies using docker/pip-install.sh
|
||||
RUN --mount=type=bind,source=./docker,target=/docker \
|
||||
--mount=type=cache,target=/root/.cache/pip \
|
||||
/docker/pip-install.sh --requires-build-essential -r requirements/base.txt
|
||||
|
||||
# Copy the compiled frontend assets from the node image
|
||||
COPY --chown=superset:superset --from=superset-node /app/superset/static/assets superset/static/assets
|
||||
|
||||
## Lastly, let's install superset itself
|
||||
# Copy the main Superset source code
|
||||
COPY --chown=superset:superset superset superset
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
pip install --no-cache-dir -e .
|
||||
|
||||
# Copy the .json translations from the frontend layer
|
||||
# Install Superset itself using docker/pip-install.sh
|
||||
RUN --mount=type=bind,source=./docker,target=/docker \
|
||||
--mount=type=cache,target=/root/.cache/pip \
|
||||
/docker/pip-install.sh -e .
|
||||
|
||||
# Copy .json translations from the node image
|
||||
COPY --chown=superset:superset --from=superset-node /app/superset/translations superset/translations
|
||||
|
||||
# Compile translations for the backend - this generates .mo files, then deletes the .po files
|
||||
# Compile backend translations and clean up
|
||||
COPY ./scripts/translations/generate_mo_files.sh ./scripts/translations/
|
||||
RUN if [ "$BUILD_TRANSLATIONS" = "true" ]; then \
|
||||
./scripts/translations/generate_mo_files.sh \
|
||||
&& chown -R superset:superset superset/translations \
|
||||
&& rm superset/translations/messages.pot \
|
||||
&& rm superset/translations/*/LC_MESSAGES/*.po; \
|
||||
else \
|
||||
echo "Skipping translations as requested by build flag"; \
|
||||
fi
|
||||
&& chown -R superset:superset superset/translations; \
|
||||
fi \
|
||||
&& rm -rf superset/translations/messages.pot \
|
||||
superset/translations/*/LC_MESSAGES/*.po
|
||||
|
||||
# Add server run script
|
||||
COPY --chmod=755 ./docker/run-server.sh /usr/bin/
|
||||
USER superset
|
||||
|
||||
# Set user and healthcheck
|
||||
USER superset
|
||||
HEALTHCHECK CMD curl -f "http://localhost:${SUPERSET_PORT}/health"
|
||||
|
||||
# Expose port and set CMD
|
||||
EXPOSE ${SUPERSET_PORT}
|
||||
|
||||
CMD ["/usr/bin/run-server.sh"]
|
||||
|
||||
|
||||
######################################################################
|
||||
# Dev image...
|
||||
######################################################################
|
||||
FROM lean AS dev
|
||||
|
||||
USER root
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
|
||||
# Install dev dependencies
|
||||
RUN --mount=type=bind,source=./docker,target=/docker \
|
||||
/docker/apt-install.sh \
|
||||
libnss3 \
|
||||
libdbus-glib-1-2 \
|
||||
libgtk-3-0 \
|
||||
@@ -176,46 +187,46 @@ RUN apt-get update -qq \
|
||||
libasound2 \
|
||||
libxtst6 \
|
||||
git \
|
||||
pkg-config \
|
||||
&& rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/*
|
||||
pkg-config
|
||||
|
||||
# Install Playwright and its dependencies
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
pip install --no-cache-dir playwright
|
||||
RUN playwright install-deps
|
||||
uv pip install --system playwright \
|
||||
&& playwright install-deps
|
||||
|
||||
# Optionally install Chromium
|
||||
RUN if [ "$INCLUDE_CHROMIUM" = "true" ]; then \
|
||||
playwright install chromium; \
|
||||
else \
|
||||
echo "Skipping translations in dev mode"; \
|
||||
echo "Skipping Chromium installation in dev mode"; \
|
||||
fi
|
||||
|
||||
# Install GeckoDriver WebDriver
|
||||
ARG GECKODRIVER_VERSION=v0.34.0 \
|
||||
FIREFOX_VERSION=125.0.3
|
||||
|
||||
RUN if [ "$INCLUDE_FIREFOX" = "true" ]; then \
|
||||
apt-get update -qq \
|
||||
&& apt-get install -yqq --no-install-recommends wget bzip2 \
|
||||
# Install GeckoDriver WebDriver and Firefox (if required)
|
||||
ARG GECKODRIVER_VERSION=v0.34.0
|
||||
ARG FIREFOX_VERSION=125.0.3
|
||||
RUN --mount=type=bind,source=./docker,target=/docker \
|
||||
if [ "$INCLUDE_FIREFOX" = "true" ]; then \
|
||||
/docker/apt-install.sh wget bzip2 \
|
||||
&& wget -q https://github.com/mozilla/geckodriver/releases/download/${GECKODRIVER_VERSION}/geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz -O - | tar xfz - -C /usr/local/bin \
|
||||
&& wget -q https://download-installer.cdn.mozilla.net/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.bz2 -O - | tar xfj - -C /opt \
|
||||
&& ln -s /opt/firefox/firefox /usr/local/bin/firefox \
|
||||
&& apt-get autoremove -yqq --purge wget bzip2 && rm -rf /var/[log,tmp]/* /tmp/* /var/lib/apt/lists/* /var/cache/apt/archives/*; \
|
||||
else \
|
||||
echo "Skipping Firefox installation in dev mode"; \
|
||||
fi
|
||||
|
||||
# Installing mysql client os-level dependencies in dev image only because GPL
|
||||
RUN apt-get install -yqq --no-install-recommends \
|
||||
default-libmysqlclient-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
|
||||
# Install MySQL client dependencies
|
||||
RUN --mount=type=bind,source=./docker,target=/docker \
|
||||
/docker/apt-install.sh default-libmysqlclient-dev
|
||||
|
||||
# Copy development requirements and install them
|
||||
COPY --chown=superset:superset requirements/development.txt requirements/
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
apt-get update -qq && apt-get install -yqq --no-install-recommends \
|
||||
build-essential \
|
||||
&& pip install --no-cache-dir -r requirements/development.txt \
|
||||
&& apt-get autoremove -yqq --purge build-essential \
|
||||
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
|
||||
RUN --mount=type=bind,source=./docker,target=/docker \
|
||||
--mount=type=cache,target=/root/.cache/pip \
|
||||
/docker/pip-install.sh --requires-build-essential -r requirements/development.txt
|
||||
|
||||
USER superset
|
||||
|
||||
######################################################################
|
||||
# CI image...
|
||||
######################################################################
|
||||
|
||||
@@ -136,6 +136,7 @@ Here are some of the major database solutions that are supported:
|
||||
<img src="https://superset.apache.org/img/databases/oceanbase.svg" alt="oceanbase" border="0" width="220" />
|
||||
<img src="https://superset.apache.org/img/databases/sap-hana.png" alt="oceanbase" border="0" width="220" />
|
||||
<img src="https://superset.apache.org/img/databases/denodo.png" alt="denodo" border="0" width="200" />
|
||||
<img src="https://superset.apache.org/img/databases/ydb.svg" alt="ydb" border="0" width="200" />
|
||||
</p>
|
||||
|
||||
**A more comprehensive list of supported databases** along with the configuration instructions can be found [here](https://superset.apache.org/docs/configuration/databases).
|
||||
|
||||
@@ -24,9 +24,11 @@ assists people when migrating to a new version.
|
||||
|
||||
## Next
|
||||
|
||||
- [31198](https://github.com/apache/superset/pull/31198) Disallows by default the use of the following ClickHouse functions: "version", "currentDatabase", "hostName".
|
||||
- [29798](https://github.com/apache/superset/pull/29798) Since 3.1.0, the intial schedule for an alert or report was mistakenly offset by the specified timezone's relation to UTC. The initial schedule should now begin at the correct time.
|
||||
- [30021](https://github.com/apache/superset/pull/30021) The `dev` layer in our Dockerfile no long includes firefox binaries, only Chromium to reduce bloat/docker-build-time.
|
||||
- [30099](https://github.com/apache/superset/pull/30099) Translations are no longer included in the default docker image builds. If your environment requires translations, you'll want to set the docker build arg `BUILD_TRANSACTION=true`.
|
||||
- [31173](https://github.com/apache/superset/pull/31173) Modified `fetch_csrf_token` to align with HTTP standards, particularly regarding how cookies are handled. If you encounter any issues related to CSRF functionality, please report them as a new issue and reference this PR for context.
|
||||
|
||||
### Potential Downtime
|
||||
|
||||
|
||||
51
docker/apt-install.sh
Executable file
51
docker/apt-install.sh
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
# Ensure this script is run as root
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "This script must be run as root" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for required arguments
|
||||
if [[ $# -lt 1 ]]; then
|
||||
echo "Usage: $0 <package1> [<package2> ...]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Colors for better logging (optional)
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
RESET='\033[0m'
|
||||
|
||||
# Install packages with clean-up
|
||||
echo -e "${GREEN}Updating package lists...${RESET}"
|
||||
apt-get update -qq
|
||||
|
||||
echo -e "${GREEN}Installing packages: $@${RESET}"
|
||||
apt-get install -yqq --no-install-recommends "$@"
|
||||
|
||||
echo -e "${GREEN}Autoremoving unnecessary packages...${RESET}"
|
||||
apt-get autoremove -y
|
||||
|
||||
echo -e "${GREEN}Cleaning up package cache and metadata...${RESET}"
|
||||
apt-get clean
|
||||
rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/* /tmp/* /var/tmp/*
|
||||
|
||||
echo -e "${GREEN}Installation and cleanup complete.${RESET}"
|
||||
64
docker/pip-install.sh
Executable file
64
docker/pip-install.sh
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
# Default flag
|
||||
REQUIRES_BUILD_ESSENTIAL=false
|
||||
USE_CACHE=true
|
||||
|
||||
# Filter arguments
|
||||
ARGS=()
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--requires-build-essential)
|
||||
REQUIRES_BUILD_ESSENTIAL=true
|
||||
;;
|
||||
--no-cache)
|
||||
USE_CACHE=false
|
||||
;;
|
||||
*)
|
||||
ARGS+=("$arg")
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Install build-essential if required
|
||||
if $REQUIRES_BUILD_ESSENTIAL; then
|
||||
echo "Installing build-essential for package builds..."
|
||||
apt-get update -qq \
|
||||
&& apt-get install -yqq --no-install-recommends build-essential
|
||||
fi
|
||||
|
||||
# Choose whether to use pip cache
|
||||
if $USE_CACHE; then
|
||||
echo "Using pip cache..."
|
||||
uv pip install --system "${ARGS[@]}"
|
||||
else
|
||||
echo "Disabling pip cache..."
|
||||
uv pip install --system --no-cache-dir "${ARGS[@]}"
|
||||
fi
|
||||
|
||||
# Remove build-essential if it was installed
|
||||
if $REQUIRES_BUILD_ESSENTIAL; then
|
||||
echo "Removing build-essential to keep the image lean..."
|
||||
apt-get autoremove -yqq --purge build-essential \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
|
||||
fi
|
||||
|
||||
echo "Python packages installed successfully."
|
||||
@@ -53,11 +53,14 @@ To send alerts and reports to Slack channels, you need to create a new Slack App
|
||||
- `incoming-webhook`
|
||||
- `files:write`
|
||||
- `chat:write`
|
||||
- `channels:read`
|
||||
- `groups:read`
|
||||
4. At the top of the "OAuth and Permissions" section, click "install to workspace".
|
||||
5. Select a default channel for your app and continue.
|
||||
(You can post to any channel by inviting your Superset app into that channel).
|
||||
6. The app should now be installed in your workspace, and a "Bot User OAuth Access Token" should have been created. Copy that token in the `SLACK_API_TOKEN` variable of your `superset_config.py`.
|
||||
7. Restart the service (or run `superset init`) to pull in the new configuration.
|
||||
7. Ensure the feature flag `ALERT_REPORT_SLACK_V2` is set to True in `superset_config.py`
|
||||
8. Restart the service (or run `superset init`) to pull in the new configuration.
|
||||
|
||||
Note: when you configure an alert or a report, the Slack channel list takes channel names without the leading '#' e.g. use `alerts` instead of `#alerts`.
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@ are compatible with Superset.
|
||||
| [TimescaleDB](/docs/configuration/databases#timescaledb) | `pip install psycopg2` | `postgresql://<UserName>:<DBPassword>@<Database Host>:<Port>/<Database Name>` |
|
||||
| [Trino](/docs/configuration/databases#trino) | `pip install trino` | `trino://{username}:{password}@{hostname}:{port}/{catalog}` |
|
||||
| [Vertica](/docs/configuration/databases#vertica) | `pip install sqlalchemy-vertica-python` | `vertica+vertica_python://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
|
||||
| [YDB](/docs/configuration/databases#ydb) | `pip install ydb-sqlalchemy` | `ydb://{host}:{port}/{database_name}` |
|
||||
| [YugabyteDB](/docs/configuration/databases#yugabytedb) | `pip install psycopg2` | `postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
|
||||
---
|
||||
|
||||
@@ -1537,6 +1538,78 @@ Other parameters:
|
||||
- Load Balancer - Backup Host
|
||||
|
||||
|
||||
|
||||
#### YDB
|
||||
|
||||
The recommended connector library for [YDB](https://ydb.tech/) is
|
||||
[ydb-sqlalchemy](https://pypi.org/project/ydb-sqlalchemy/).
|
||||
|
||||
##### Connection String
|
||||
|
||||
The connection string for YDB looks like this:
|
||||
|
||||
```
|
||||
ydb://{host}:{port}/{database_name}
|
||||
```
|
||||
|
||||
##### Protocol
|
||||
You can specify `protocol` in the `Secure Extra` field at `Advanced / Security`:
|
||||
|
||||
```
|
||||
{
|
||||
"protocol": "grpcs"
|
||||
}
|
||||
```
|
||||
|
||||
Default is `grpc`.
|
||||
|
||||
|
||||
##### Authentication Methods
|
||||
###### Static Credentials
|
||||
To use `Static Credentials` you should provide `username`/`password` in the `Secure Extra` field at `Advanced / Security`:
|
||||
|
||||
```
|
||||
{
|
||||
"credentials": {
|
||||
"username": "...",
|
||||
"password": "..."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
###### Access Token Credentials
|
||||
To use `Access Token Credentials` you should provide `token` in the `Secure Extra` field at `Advanced / Security`:
|
||||
|
||||
```
|
||||
{
|
||||
"credentials": {
|
||||
"token": "...",
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
##### Service Account Credentials
|
||||
To use Service Account Credentials, you should provide `service_account_json` in the `Secure Extra` field at `Advanced / Security`:
|
||||
|
||||
```
|
||||
{
|
||||
"credentials": {
|
||||
"service_account_json": {
|
||||
"id": "...",
|
||||
"service_account_id": "...",
|
||||
"created_at": "...",
|
||||
"key_algorithm": "...",
|
||||
"public_key": "...",
|
||||
"private_key": "..."
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### YugabyteDB
|
||||
|
||||
[YugabyteDB](https://www.yugabyte.com/) is a distributed SQL database built on top of PostgreSQL.
|
||||
|
||||
@@ -32,7 +32,9 @@ cd superset
|
||||
Setting things up to squeeze a "hello world" into any part of Superset should be as simple as
|
||||
|
||||
```bash
|
||||
docker compose up
|
||||
# getting docker compose to fire up services, and rebuilding if some docker layers have changed
|
||||
# using the `--build` suffix may be slower and optional if layers like py dependencies haven't changed
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
Note that:
|
||||
@@ -70,6 +72,24 @@ documentation.
|
||||
configured to be secure.
|
||||
:::
|
||||
|
||||
### Nuking the postgres database
|
||||
|
||||
At times, it's possible to end up with your development database in a bad state, it's
|
||||
common while switching branches that contain migrations for instance, where the database
|
||||
version stamp that `alembic` manages is no longer available after switching branch.
|
||||
|
||||
In that case, the easy solution is to nuke the postgres db and start fresh. Note that the full
|
||||
state of the database will be gone after doing this, so be cautious.
|
||||
|
||||
```bash
|
||||
# first stop docker-compose if it's running
|
||||
docker-compose down
|
||||
# delete the volume containing the database
|
||||
docker volume rm superset_db_home
|
||||
# restart docker-compose, which will init a fresh database and load examples
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
## Installing Development Tools
|
||||
|
||||
:::note
|
||||
@@ -455,17 +475,6 @@ pre-commit install
|
||||
|
||||
A series of checks will now run when you make a git commit.
|
||||
|
||||
Alternatively, it is possible to run pre-commit via tox:
|
||||
|
||||
```bash
|
||||
tox -e pre-commit
|
||||
```
|
||||
|
||||
Or by running pre-commit manually:
|
||||
|
||||
```bash
|
||||
pre-commit run --all-files
|
||||
```
|
||||
|
||||
## Linting
|
||||
|
||||
@@ -474,8 +483,7 @@ pre-commit run --all-files
|
||||
We use [Pylint](https://pylint.org/) for linting which can be invoked via:
|
||||
|
||||
```bash
|
||||
# for python
|
||||
tox -e pylint
|
||||
pylint
|
||||
```
|
||||
|
||||
In terms of best practices please avoid blanket disabling of Pylint messages globally (via `.pylintrc`) or top-level within the file header, albeit there being a few exceptions. Disabling should occur inline as it prevents masking issues and provides context as to why said message is disabled.
|
||||
@@ -502,39 +510,108 @@ If using the eslint extension with vscode, put the following in your workspace `
|
||||
]
|
||||
```
|
||||
|
||||
|
||||
## GitHub Actions and `act`
|
||||
|
||||
:::tip
|
||||
`act` compatibility of Superset's GHAs is not fully tested. Running `act` locally may or may not
|
||||
work for different actions, and may require fine tunning and local secret-handling.
|
||||
For those more intricate GHAs that are tricky to run locally, we recommend iterating
|
||||
directly on GHA's infrastructure, by pushing directly on a branch and monitoring GHA logs.
|
||||
For more targetted iteration, see the `gh workflow run --ref {BRANCH}` subcommand of the GitHub CLI.
|
||||
:::
|
||||
|
||||
For automation and CI/CD, Superset makes extensive use of GitHub Actions (GHA). You
|
||||
can find all of the workflows and other assets under the `.github/` folder. This includes:
|
||||
- running the backend unit test suites (`tests/`)
|
||||
- running the frontend test suites (`superset-frontend/src/**.*.test.*`)
|
||||
- running our Cypress end-to-end tests (`superset-frontend/cypress-base/`)
|
||||
- linting the codebase, including all Python, Typescript and Javascript, yaml and beyond
|
||||
- checking for all sorts of other rules conventions
|
||||
|
||||
When you open a pull request (PR), the appropriate GitHub Actions (GHA) workflows will
|
||||
automatically run depending on the changes in your branch. It's perfectly reasonable
|
||||
(and required!) to rely on this automation. However, the downside is that it's mostly an
|
||||
all-or-nothing approach and doesn't provide much control to target specific tests or
|
||||
iterate quickly.
|
||||
|
||||
At times, it may be more convenient to run GHA workflows locally. For that purpose
|
||||
we use [act](https://github.com/nektos/act), a tool that allows you to run GitHub Actions (GHA)
|
||||
workflows locally. It simulates the GitHub Actions environment, enabling developers to
|
||||
test and debug workflows on their local machines before pushing changes to the repository. More
|
||||
on how to use it in the next section.
|
||||
|
||||
:::note
|
||||
In both GHA and `act`, we can run a more complex matrix for our tests, executing against different
|
||||
database engines (PostgreSQL, MySQL, SQLite) and different versions of Python.
|
||||
This enables us to ensure compatibility and stability across various environments.
|
||||
:::
|
||||
|
||||
### Using `act`
|
||||
|
||||
First, install `act` -> https://nektosact.com/
|
||||
|
||||
To list the workflows, simply:
|
||||
|
||||
```bash
|
||||
act --list
|
||||
```
|
||||
|
||||
To run a specific workflow:
|
||||
|
||||
```bash
|
||||
act pull_request --job {workflow_name} --secret GITHUB_TOKEN=$GITHUB_TOKEN --container-architecture linux/amd64
|
||||
```
|
||||
|
||||
In the example above, notice that:
|
||||
- we target a specific workflow, using `--job`
|
||||
- we pass a secret using `--secret`, as many jobs require read access (public) to the repo
|
||||
- we simulate a `pull_request` event by specifying it as the first arg,
|
||||
similarly, we could simulate a `push` event or something else
|
||||
- we specify `--container-architecture`, which tends to emulate GHA more reliably
|
||||
|
||||
:::note
|
||||
`act` is a rich tool that offers all sorts of features, allowing you to simulate different
|
||||
events (pull_request, push, ...), semantics around passing secrets where required and much
|
||||
more. For more information, refer to [act's documentation](https://nektosact.com/)
|
||||
:::
|
||||
|
||||
:::note
|
||||
Some jobs require secrets to interact with external systems and accounts that you may
|
||||
not have in your possession. In those cases you may have to rely on remote CI or parameterize the
|
||||
job further to target a different environment/sandbox or your own alongside the related
|
||||
secrets.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Testing
|
||||
|
||||
### Python Testing
|
||||
|
||||
All python tests are carried out in [tox](https://tox.readthedocs.io/en/latest/index.html)
|
||||
a standardized testing framework.
|
||||
All python tests can be run with any of the tox [environments](https://tox.readthedocs.io/en/latest/example/basic.html#a-simple-tox-ini-default-environments), via,
|
||||
#### Unit Tests
|
||||
|
||||
For unit tests located in `tests/unit_tests/`, it's usually easy to simply run the script locally using:
|
||||
|
||||
```bash
|
||||
tox -e <environment>
|
||||
pytest tests/unit_tests/*
|
||||
```
|
||||
|
||||
For example,
|
||||
#### Integration Tests
|
||||
|
||||
For more complex pytest-defined integration tests (not to be confused with our end-to-end Cypress tests), many tests will require having a working test environment. Some tests require a database, Celery, and potentially other services or libraries installed.
|
||||
|
||||
### Running Tests with `act`
|
||||
|
||||
To run integration tests locally using `act`, ensure you have followed the setup instructions from the [GitHub Actions and `act`](#github-actions-and-act) section. You can run specific workflows or jobs that include integration tests. For example:
|
||||
|
||||
```bash
|
||||
tox -e py38
|
||||
act --job test-python-38 --secret GITHUB_TOKEN=$GITHUB_TOKEN --event pull_request --container-architecture linux/amd64
|
||||
```
|
||||
|
||||
Alternatively, you can run all tests in a single file via,
|
||||
#### Running locally using a test script
|
||||
|
||||
```bash
|
||||
tox -e <environment> -- tests/test_file.py
|
||||
```
|
||||
|
||||
or for a specific test via,
|
||||
|
||||
```bash
|
||||
tox -e <environment> -- tests/test_file.py::TestClassName::test_method_name
|
||||
```
|
||||
|
||||
Note that the test environment uses a temporary directory for defining the
|
||||
SQLite databases which will be cleared each time before the group of test
|
||||
commands are invoked.
|
||||
There is also a utility script included in the Superset codebase to run Python integration tests. The [readme can be found here](https://github.com/apache/superset/tree/master/scripts/tests).
|
||||
|
||||
There is also a utility script included in the Superset codebase to run python integration tests. The [readme can be
|
||||
found here](https://github.com/apache/superset/tree/master/scripts/tests)
|
||||
@@ -545,7 +622,7 @@ To run all integration tests, for example, run this script from the root directo
|
||||
scripts/tests/run.sh
|
||||
```
|
||||
|
||||
You can run unit tests found in './tests/unit_tests' for example with pytest. It is a simple way to run an isolated test that doesn't need any database setup
|
||||
You can run unit tests found in `./tests/unit_tests` with pytest. It is a simple way to run an isolated test that doesn't need any database setup:
|
||||
|
||||
```bash
|
||||
pytest ./link_to_test.py
|
||||
@@ -568,7 +645,7 @@ npm run test -- path/to/file.js
|
||||
|
||||
### Integration Testing
|
||||
|
||||
We use [Cypress](https://www.cypress.io/) for integration tests. Tests can be run by `tox -e cypress`. To open Cypress and explore tests first setup and run test server:
|
||||
We use [Cypress](https://www.cypress.io/) for integration tests. To open Cypress and explore tests first setup and run test server:
|
||||
|
||||
```bash
|
||||
export SUPERSET_CONFIG=tests.integration_tests.superset_test_config
|
||||
@@ -619,7 +696,7 @@ If you already have launched Docker environment please use the following command
|
||||
|
||||
Launch environment:
|
||||
|
||||
`CYPRESS_CONFIG=true docker compose up`
|
||||
`CYPRESS_CONFIG=true docker compose up --build`
|
||||
|
||||
It will serve the backend and frontend on port 8088.
|
||||
|
||||
@@ -687,7 +764,7 @@ superset:
|
||||
Start Superset as usual
|
||||
|
||||
```bash
|
||||
docker compose up
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
Install the required libraries and packages to the docker container
|
||||
|
||||
@@ -170,31 +170,10 @@ npm run dev-server
|
||||
|
||||
### Python Testing
|
||||
|
||||
All python tests are carried out in [tox](https://tox.readthedocs.io/en/latest/index.html)
|
||||
a standardized testing framework.
|
||||
All python tests can be run with any of the tox [environments](https://tox.readthedocs.io/en/latest/example/basic.html#a-simple-tox-ini-default-environments), via,
|
||||
`pytest`, backend by docker-compose is how we recommend running tests locally.
|
||||
|
||||
```bash
|
||||
tox -e <environment>
|
||||
```
|
||||
|
||||
For example,
|
||||
|
||||
```bash
|
||||
tox -e py38
|
||||
```
|
||||
|
||||
Alternatively, you can run all tests in a single file via,
|
||||
|
||||
```bash
|
||||
tox -e <environment> -- tests/test_file.py
|
||||
```
|
||||
|
||||
or for a specific test via,
|
||||
|
||||
```bash
|
||||
tox -e <environment> -- tests/test_file.py::TestClassName::test_method_name
|
||||
```
|
||||
For a more complex test matrix (against different database backends, python versions, ...) you
|
||||
can rely on our GitHub Actions by simply opening a draft pull request.
|
||||
|
||||
Note that the test environment uses a temporary directory for defining the
|
||||
SQLite databases which will be cleared each time before the group of test
|
||||
@@ -246,13 +225,7 @@ npm run test -- path/to/file.js
|
||||
|
||||
### e2e Integration Testing
|
||||
|
||||
We use [Cypress](https://www.cypress.io/) for end-to-end integration
|
||||
tests. One easy option to get started quickly is to leverage `tox` to
|
||||
run the whole suite in an isolated environment.
|
||||
|
||||
```bash
|
||||
tox -e cypress
|
||||
```
|
||||
For e2e testing, we recommend that you use a `docker-compose` backed-setup
|
||||
|
||||
Alternatively, you can go lower level and set things up in your
|
||||
development environment by following these steps:
|
||||
@@ -598,17 +571,31 @@ pybabel compile -d superset/translations
|
||||
|
||||
### Python
|
||||
|
||||
We use [Pylint](https://pylint.org/) for linting which can be invoked via:
|
||||
We use [Pylint](https://pylint.org/) and [ruff](https://github.com/astral-sh/ruff)
|
||||
for linting which can be invoked via:
|
||||
|
||||
```bash
|
||||
# for python
|
||||
tox -e pylint
|
||||
```
|
||||
# Run pylint
|
||||
pylint superset/
|
||||
|
||||
# auto-reformat using ruff
|
||||
ruff format
|
||||
|
||||
# lint check with ruff
|
||||
ruff check
|
||||
|
||||
# lint fix with ruff
|
||||
ruff check --fix
|
||||
```
|
||||
|
||||
In terms of best practices please avoid blanket disabling of Pylint messages globally (via `.pylintrc`) or top-level within the file header, albeit there being a few exceptions. Disabling should occur inline as it prevents masking issues and provides context as to why said message is disabled.
|
||||
|
||||
Additionally, the Python code is auto-formatted using [Black](https://github.com/python/black) which
|
||||
is configured as a pre-commit hook. There are also numerous [editor integrations](https://black.readthedocs.io/en/stable/integrations/editors.html)
|
||||
In terms of best practices please avoid blanket disabling of Pylint messages globally
|
||||
(via `.pylintrc`) or top-level within the file header, albeit there being a few exceptions.
|
||||
Disabling should occur inline as it prevents masking issues and provides context as to why
|
||||
said message is disabled.
|
||||
|
||||
All this is configured to run in pre-commit hooks, which we encourage you to setup
|
||||
with `pre-commit install`
|
||||
|
||||
### TypeScript
|
||||
|
||||
|
||||
@@ -76,7 +76,8 @@ on latest base images using `docker compose build --pull`. In most cases though,
|
||||
### Option #1 - for an interactive development environment
|
||||
|
||||
```bash
|
||||
docker compose up
|
||||
# The --build argument insures all the layers are up-to-date
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
:::tip
|
||||
@@ -235,3 +236,11 @@ may want to find the exact hostname you want to use, for that you can do `ifconf
|
||||
Docker for you. Alternately if you don't even see the `docker0` interface try (if needed with sudo)
|
||||
`docker network inspect bridge` and see if there is an entry for `"Gateway"` and note the IP
|
||||
address.
|
||||
|
||||
## 4. To build or not to build
|
||||
|
||||
When running `docker compose up`, docker will build what is required behind the scene, but
|
||||
may use the docker cache if assets already exist. Running `docker compose build` prior to
|
||||
`docker compose up` or the equivalent shortcut `docker compose up --build` ensures that your
|
||||
docker images matche the definition in the repository. This should only apply to the main
|
||||
docker-compose.yml file (default) and not to the alternative methods defined above.
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
title: CVEs fixed by release
|
||||
sidebar_position: 2
|
||||
---
|
||||
#### Version 4.1.0
|
||||
|
||||
| CVE | Title | Affected |
|
||||
|:---------------|:-----------------------------------------------------------------------------------|---------:|
|
||||
| CVE-2024-53947 | Improper SQL authorisation, parse for specific postgres functions | < 4.1.0 |
|
||||
| CVE-2024-53948 | Error verbosity exposes metadata in analytics databases | < 4.1.0 |
|
||||
| CVE-2024-53949 | Lower privilege users are able to create Role when FAB_ADD_SECURITY_API is enabled | < 4.1.0 |
|
||||
|
||||
#### Version 4.0.2
|
||||
|
||||
| CVE | Title | Affected |
|
||||
|
||||
@@ -203,13 +203,18 @@ const config = {
|
||||
({
|
||||
docs: {
|
||||
sidebarPath: require.resolve('./sidebars.js'),
|
||||
editUrl: 'https://github.com/apache/superset/edit/master/docs',
|
||||
editUrl:
|
||||
({versionDocsDirPath, docPath}) => {
|
||||
if (docPath === 'intro.md') {
|
||||
return 'https://github.com/apache/superset/edit/master/README.md'
|
||||
}
|
||||
return `https://github.com/apache/superset/edit/master/docs/${versionDocsDirPath}/${docPath}`
|
||||
}
|
||||
},
|
||||
blog: {
|
||||
showReadingTime: true,
|
||||
// Please change this to your repo.
|
||||
editUrl:
|
||||
'https://github.com/facebook/docusaurus/edit/main/website/blog/',
|
||||
editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/blog/',
|
||||
},
|
||||
theme: {
|
||||
customCss: require.resolve('./src/styles/custom.css'),
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
"typecheck": "tsc"
|
||||
},
|
||||
"dependencies": {
|
||||
"@algolia/client-search": "^5.12.0",
|
||||
"@ant-design/icons": "^5.4.0",
|
||||
"@algolia/client-search": "^5.15.0",
|
||||
"@ant-design/icons": "^5.5.2",
|
||||
"@docsearch/react": "^3.6.3",
|
||||
"@docusaurus/core": "^3.5.2",
|
||||
"@docusaurus/plugin-client-redirects": "^3.5.2",
|
||||
@@ -29,12 +29,12 @@
|
||||
"@saucelabs/theme-github-codeblock": "^0.3.0",
|
||||
"@superset-ui/style": "^0.14.23",
|
||||
"@svgr/webpack": "^8.1.0",
|
||||
"antd": "^5.21.6",
|
||||
"antd": "^5.22.2",
|
||||
"buffer": "^6.0.3",
|
||||
"clsx": "^2.1.1",
|
||||
"docusaurus-plugin-less": "^2.0.2",
|
||||
"file-loader": "^6.2.0",
|
||||
"less": "^4.2.0",
|
||||
"less": "^4.2.1",
|
||||
"less-loader": "^11.0.0",
|
||||
"prism-react-renderer": "^2.4.0",
|
||||
"react": "^18.3.1",
|
||||
@@ -42,14 +42,14 @@
|
||||
"react-github-btn": "^1.4.0",
|
||||
"react-svg-pan-zoom": "^3.13.1",
|
||||
"stream": "^0.0.3",
|
||||
"swagger-ui-react": "^5.17.14",
|
||||
"swagger-ui-react": "^5.18.2",
|
||||
"url-loader": "^4.1.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "^3.5.2",
|
||||
"@docusaurus/tsconfig": "^3.5.2",
|
||||
"@docusaurus/module-type-aliases": "^3.6.3",
|
||||
"@docusaurus/tsconfig": "^3.6.3",
|
||||
"@types/react": "^18.3.12",
|
||||
"typescript": "^5.6.3",
|
||||
"typescript": "^5.7.2",
|
||||
"webpack": "^5.96.1"
|
||||
},
|
||||
"browserslist": {
|
||||
|
||||
20
docs/static/img/databases/ydb.svg
vendored
Normal file
20
docs/static/img/databases/ydb.svg
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
<svg width="753" height="274" viewBox="0 0 753 274" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_28_1297)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 53.8669C5 37.6466 29.6243 29 60 29C90.3757 29 115 37.6466 115 53.8669V138.133C115 154.353 90.3757 163 60 163C29.6243 163 5 154.353 5 138.133V53.8669Z" fill="#2399FF"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M175 53.8669C175 37.6466 199.624 29 230 29C260.376 29 285 37.6466 285 53.8669V138.133C285 154.353 260.376 163 230 163C199.624 163 175 154.353 175 138.133V53.8669Z" fill="#2399FF"/>
|
||||
<path d="M177 85H113V103H177V85Z" fill="#2399FF"/>
|
||||
<path d="M173 157H115L81 111H59L105 173H183L229 111H207L173 157Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M89 145.867C89 129.647 113.624 121 144 121C174.376 121 199 129.647 199 145.867V230.133C199 246.353 174.376 255 144 255C113.624 255 89 246.353 89 230.133V145.867Z" fill="#2399FF"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M108.783 136.779C100.111 140.552 99 144.237 99 146C99 147.763 100.111 151.448 108.783 155.221C117.076 158.829 129.435 161 144 161C158.565 161 170.924 158.829 179.217 155.221C187.889 151.448 189 147.763 189 146C189 144.237 187.889 140.552 179.218 136.779C170.924 133.171 158.565 131 144 131C129.435 131 117.076 133.171 108.783 136.779Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.7825 44.7792C16.1105 48.5515 15 52.2365 15 54C15 55.7635 16.1105 59.4485 24.7825 63.2208C33.0763 66.8287 45.4354 69 60 69C74.5646 69 86.9237 66.8287 95.2175 63.2208C103.889 59.4485 105 55.7635 105 54C105 52.2365 103.889 48.5515 95.2175 44.7792C86.9237 41.1713 74.5646 39 60 39C45.4354 39 33.0763 41.1713 24.7825 44.7792Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M194.783 44.7792C186.111 48.5515 185 52.2365 185 54C185 55.7635 186.111 59.4485 194.783 63.2208C203.076 66.8287 215.435 69 230 69C244.565 69 256.924 66.8287 265.217 63.2208C273.889 59.4485 275 55.7635 275 54C275 52.2365 273.889 48.5515 265.218 44.7792C256.924 41.1713 244.565 39 230 39C215.435 39 203.076 41.1713 194.783 44.7792Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M694.131 64H634.75V210H705.026C730.974 210 750.243 191.821 750.243 166.963C750.243 150.15 740.93 137.39 726.201 130.891C733.027 124.143 737.168 115.224 737.168 104.858C737.168 81.2033 718.875 64 694.131 64ZM660.899 85.791V123.925H691.951C702.482 123.925 711.019 115.389 711.019 104.858C711.019 94.3277 702.482 85.791 691.951 85.791H660.899ZM660.899 188.209V145.716H702.847C714.581 145.716 724.093 155.229 724.093 166.963C724.093 178.697 714.581 188.209 702.847 188.209H660.899Z" fill="black"/>
|
||||
<path d="M352.716 64.0039H382.134L419.179 128.287L456.223 64.0039H485.641L432.308 155.472V210.004H406.049V155.472L352.716 64.0039Z" fill="black"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M496.008 64.0039H546.127C589.713 64.0039 619.127 92.3289 619.127 137.004C619.127 181.679 589.713 210.004 546.127 210.004H496.008V64.0039ZM522.157 188.213V85.7949H543.948C573.32 85.7949 592.978 104.364 592.978 137.004C592.978 169.644 573.32 188.213 543.948 188.213H522.157Z" fill="black"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_28_1297">
|
||||
<rect width="753" height="274" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
1035
docs/yarn.lock
1035
docs/yarn.lock
File diff suppressed because it is too large
Load Diff
@@ -29,7 +29,7 @@ maintainers:
|
||||
- name: craig-rueda
|
||||
email: craig@craigrueda.com
|
||||
url: https://github.com/craig-rueda
|
||||
version: 0.13.4
|
||||
version: 0.13.5
|
||||
dependencies:
|
||||
- name: postgresql
|
||||
version: 12.1.6
|
||||
|
||||
@@ -23,7 +23,7 @@ NOTE: This file is generated by helm-docs: https://github.com/norwoodj/helm-docs
|
||||
|
||||
# superset
|
||||
|
||||

|
||||

|
||||
|
||||
Apache Superset is a modern, enterprise-ready business intelligence web application
|
||||
|
||||
@@ -105,6 +105,7 @@ On helm this can be set on `extraSecretEnv.SUPERSET_SECRET_KEY` or `configOverri
|
||||
| init.jobAnnotations."helm.sh/hook-delete-policy" | string | `"before-hook-creation"` | |
|
||||
| init.loadExamples | bool | `false` | |
|
||||
| init.podAnnotations | object | `{}` | |
|
||||
| init.podLabels | object | `{}` | |
|
||||
| init.podSecurityContext | object | `{}` | |
|
||||
| init.priorityClassName | string | `nil` | Set priorityClassName for init job pods |
|
||||
| init.resources | object | `{}` | |
|
||||
|
||||
@@ -23,8 +23,12 @@ kind: Job
|
||||
metadata:
|
||||
name: {{ template "superset.fullname" . }}-init-db
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.extraLabels }}
|
||||
labels:
|
||||
app: {{ template "superset.name" . }}
|
||||
chart: {{ template "superset.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
{{- if .Values.extraLabels }}
|
||||
{{- toYaml .Values.extraLabels | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.init.jobAnnotations }}
|
||||
@@ -37,6 +41,15 @@ spec:
|
||||
{{- if .Values.init.podAnnotations }}
|
||||
annotations: {{- toYaml .Values.init.podAnnotations | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if or .Values.extraLabels .Values.init.podLabels }}
|
||||
labels:
|
||||
{{- if .Values.extraLabels }}
|
||||
{{- toYaml .Values.extraLabels | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.init.podLabels }}
|
||||
{{- toYaml .Values.init.podLabels | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if or (.Values.serviceAccount.create) (.Values.serviceAccountName) }}
|
||||
serviceAccountName: {{ template "superset.serviceAccountName" . }}
|
||||
|
||||
@@ -778,6 +778,8 @@ init:
|
||||
extraContainers: []
|
||||
## Annotations to be added to init job pods
|
||||
podAnnotations: {}
|
||||
# Labels to be added to init job pods
|
||||
podLabels: {}
|
||||
podSecurityContext: {}
|
||||
containerSecurityContext: {}
|
||||
## Tolerations to be added to init job pods
|
||||
|
||||
171
pyproject.toml
171
pyproject.toml
@@ -55,6 +55,7 @@ dependencies = [
|
||||
"flask-wtf>=1.1.0, <2.0",
|
||||
"func_timeout",
|
||||
"geopy",
|
||||
"greenlet>=3.0.3, <=3.1.1",
|
||||
"gunicorn>=22.0.0; sys_platform != 'win32'",
|
||||
"hashids>=1.3.1, <2",
|
||||
# known issue with holidays 0.26.0 and above related to prophet lib #25017
|
||||
@@ -90,7 +91,9 @@ dependencies = [
|
||||
"slack_sdk>=3.19.0, <4",
|
||||
"sqlalchemy>=1.4, <2",
|
||||
"sqlalchemy-utils>=0.38.3, <0.39",
|
||||
"sqlglot>=25.24.0,<26",
|
||||
# known breaking changes in sqlglot 25.25.0
|
||||
#https://github.com/tobymao/sqlglot/blob/main/CHANGELOG.md#v25250---2024-10-14
|
||||
"sqlglot>=25.24.0,<25.25.0",
|
||||
"sqlparse>=0.5.0",
|
||||
"tabulate>=0.8.9, <0.9",
|
||||
"typing-extensions>=4, <5",
|
||||
@@ -176,11 +179,11 @@ netezza = ["nzalchemy>=11.0.2"]
|
||||
starrocks = ["starrocks>=1.0.0"]
|
||||
doris = ["pydoris>=1.0.0, <2.0.0"]
|
||||
oceanbase = ["oceanbase_py>=0.0.1"]
|
||||
ydb = ["ydb-sqlalchemy>=0.1.2"]
|
||||
development = [
|
||||
"docker",
|
||||
"flask-testing",
|
||||
"freezegun",
|
||||
"greenlet>=2.0.2",
|
||||
"grpcio>=1.55.3",
|
||||
"openapi-spec-validator",
|
||||
"parameterized",
|
||||
@@ -198,7 +201,6 @@ development = [
|
||||
"ruff",
|
||||
"sqloxide",
|
||||
"statsd",
|
||||
"tox",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
@@ -235,169 +237,6 @@ disallow_untyped_calls = false
|
||||
disallow_untyped_defs = false
|
||||
disable_error_code = "annotation-unchecked"
|
||||
|
||||
[tool.tox]
|
||||
legacy_tox_ini = """
|
||||
# Remember to start celery workers to run celery tests, e.g.
|
||||
# celery --app=superset.tasks.celery_app:app worker -Ofair -c 2
|
||||
[testenv]
|
||||
basepython = python3.10
|
||||
ignore_basepython_conflict = true
|
||||
commands =
|
||||
superset db upgrade
|
||||
superset init
|
||||
superset load-test-users
|
||||
# use -s to be able to use break pointers.
|
||||
# no args or tests/* can be passed as an argument to run all tests
|
||||
pytest -s {posargs}
|
||||
deps =
|
||||
-rrequirements/development.txt
|
||||
setenv =
|
||||
PYTHONPATH = {toxinidir}
|
||||
SUPERSET_TESTENV = true
|
||||
SUPERSET_CONFIG = tests.integration_tests.superset_test_config
|
||||
SUPERSET_HOME = {envtmpdir}
|
||||
mysql: SUPERSET__SQLALCHEMY_DATABASE_URI = mysql://mysqluser:mysqluserpassword@localhost/superset?charset=utf8
|
||||
postgres: SUPERSET__SQLALCHEMY_DATABASE_URI = postgresql+psycopg2://superset:superset@localhost/test
|
||||
sqlite: SUPERSET__SQLALCHEMY_DATABASE_URI = sqlite:////{envtmpdir}/superset.db
|
||||
sqlite: SUPERSET__SQLALCHEMY_EXAMPLES_URI = sqlite:////{envtmpdir}/examples.db
|
||||
mysql-presto: SUPERSET__SQLALCHEMY_DATABASE_URI = mysql://mysqluser:mysqluserpassword@localhost/superset?charset=utf8
|
||||
# docker run -p 8080:8080 --name presto starburstdata/presto
|
||||
mysql-presto: SUPERSET__SQLALCHEMY_EXAMPLES_URI = presto://localhost:8080/memory/default
|
||||
# based on https://github.com/big-data-europe/docker-hadoop
|
||||
# clone the repo & run docker compose up -d to test locally
|
||||
mysql-hive: SUPERSET__SQLALCHEMY_DATABASE_URI = mysql://mysqluser:mysqluserpassword@localhost/superset?charset=utf8
|
||||
mysql-hive: SUPERSET__SQLALCHEMY_EXAMPLES_URI = hive://localhost:10000/default
|
||||
# make sure that directory is accessible by docker
|
||||
hive: UPLOAD_FOLDER = /tmp/.superset/app/static/uploads/
|
||||
usedevelop = true
|
||||
allowlist_externals =
|
||||
npm
|
||||
pkill
|
||||
|
||||
[testenv:cypress]
|
||||
setenv =
|
||||
PYTHONPATH = {toxinidir}
|
||||
SUPERSET_TESTENV = true
|
||||
SUPERSET_CONFIG = tests.integration_tests.superset_test_config
|
||||
SUPERSET_HOME = {envtmpdir}
|
||||
commands =
|
||||
npm install -g npm@'>=6.5.0'
|
||||
pip install -e {toxinidir}/
|
||||
{toxinidir}/superset-frontend/cypress_build.sh
|
||||
commands_post =
|
||||
pkill -if "python {envbindir}/flask"
|
||||
|
||||
[testenv:cypress-dashboard]
|
||||
setenv =
|
||||
PYTHONPATH = {toxinidir}
|
||||
SUPERSET_TESTENV = true
|
||||
SUPERSET_CONFIG = tests.integration_tests.superset_test_config
|
||||
SUPERSET_HOME = {envtmpdir}
|
||||
commands =
|
||||
npm install -g npm@'>=6.5.0'
|
||||
pip install -e {toxinidir}/
|
||||
{toxinidir}/superset-frontend/cypress_build.sh dashboard
|
||||
commands_post =
|
||||
pkill -if "python {envbindir}/flask"
|
||||
|
||||
[testenv:cypress-explore]
|
||||
setenv =
|
||||
PYTHONPATH = {toxinidir}
|
||||
SUPERSET_TESTENV = true
|
||||
SUPERSET_CONFIG = tests.integration_tests.superset_test_config
|
||||
SUPERSET_HOME = {envtmpdir}
|
||||
commands =
|
||||
npm install -g npm@'>=6.5.0'
|
||||
pip install -e {toxinidir}/
|
||||
{toxinidir}/superset-frontend/cypress_build.sh explore
|
||||
commands_post =
|
||||
pkill -if "python {envbindir}/flask"
|
||||
|
||||
[testenv:cypress-sqllab]
|
||||
setenv =
|
||||
PYTHONPATH = {toxinidir}
|
||||
SUPERSET_TESTENV = true
|
||||
SUPERSET_CONFIG = tests.integration_tests.superset_test_config
|
||||
SUPERSET_HOME = {envtmpdir}
|
||||
commands =
|
||||
npm install -g npm@'>=6.5.0'
|
||||
pip install -e {toxinidir}/
|
||||
{toxinidir}/superset-frontend/cypress_build.sh sqllab
|
||||
commands_post =
|
||||
pkill -if "python {envbindir}/flask"
|
||||
|
||||
[testenv:cypress-sqllab-backend-persist]
|
||||
setenv =
|
||||
PYTHONPATH = {toxinidir}
|
||||
SUPERSET_TESTENV = true
|
||||
SUPERSET_CONFIG = tests.integration_tests.superset_test_config
|
||||
SUPERSET_HOME = {envtmpdir}
|
||||
commands =
|
||||
npm install -g npm@'>=6.5.0'
|
||||
pip install -e {toxinidir}/
|
||||
{toxinidir}/superset-frontend/cypress_build.sh sqllab
|
||||
commands_post =
|
||||
pkill -if "python {envbindir}/flask"
|
||||
|
||||
[testenv:eslint]
|
||||
changedir = {toxinidir}/superset-frontend
|
||||
commands =
|
||||
npm run lint
|
||||
deps =
|
||||
|
||||
[testenv:fossa]
|
||||
commands =
|
||||
{toxinidir}/scripts/fossa.sh
|
||||
deps =
|
||||
passenv = *
|
||||
|
||||
[testenv:javascript]
|
||||
commands =
|
||||
npm install -g npm@'>=6.5.0'
|
||||
{toxinidir}/superset-frontend/js_build.sh
|
||||
deps =
|
||||
|
||||
[testenv:license-check]
|
||||
commands =
|
||||
{toxinidir}/scripts/check_license.sh
|
||||
passenv = *
|
||||
whitelist_externals =
|
||||
{toxinidir}/scripts/check_license.sh
|
||||
deps =
|
||||
|
||||
[testenv:pre-commit]
|
||||
commands =
|
||||
pre-commit run --all-files
|
||||
deps =
|
||||
-rrequirements/development.txt
|
||||
skip_install = true
|
||||
|
||||
[testenv:pylint]
|
||||
commands =
|
||||
pylint superset
|
||||
deps =
|
||||
-rrequirements/development.txt
|
||||
|
||||
[testenv:thumbnails]
|
||||
setenv =
|
||||
SUPERSET_CONFIG = tests.integration_tests.superset_test_config_thumbnails
|
||||
deps =
|
||||
-rrequirements/development.txt
|
||||
|
||||
[tox]
|
||||
envlist =
|
||||
cypress-dashboard
|
||||
cypress-explore
|
||||
cypress-sqllab
|
||||
cypress-sqllab-backend-persist
|
||||
eslint
|
||||
fossa
|
||||
javascript
|
||||
license-check
|
||||
pre-commit
|
||||
pylint
|
||||
skipsdist = true
|
||||
"""
|
||||
[tool.ruff]
|
||||
# Exclude a variety of commonly ignored directories.
|
||||
exclude = [
|
||||
|
||||
@@ -20,3 +20,12 @@
|
||||
urllib3>=1.26.18
|
||||
werkzeug>=3.0.1
|
||||
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
|
||||
|
||||
# playwright requires greenlet==3.0.3
|
||||
# submitted a PR to relax deps in 11/2024
|
||||
# https://github.com/microsoft/playwright-python/pull/2669
|
||||
greenlet==3.0.3
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# SHA1:85649679306ea016e401f37adfbad832028d2e5f
|
||||
# SHA1:04f7e0860829f18926ea238354e6d4a6ab823d50
|
||||
#
|
||||
# This file is autogenerated by pip-compile-multi
|
||||
# To update, run:
|
||||
@@ -7,7 +7,7 @@
|
||||
#
|
||||
-e file:.
|
||||
# via -r requirements/base.in
|
||||
alembic==1.13.1
|
||||
alembic==1.14.0
|
||||
# via flask-migrate
|
||||
amqp==5.3.1
|
||||
# via kombu
|
||||
@@ -15,8 +15,10 @@ apispec[yaml]==6.3.0
|
||||
# via flask-appbuilder
|
||||
apsw==3.46.0.0
|
||||
# via shillelagh
|
||||
async-timeout==5.0.1
|
||||
# via redis
|
||||
async-timeout==4.0.3
|
||||
# via
|
||||
# -r requirements/base.in
|
||||
# redis
|
||||
attrs==24.2.0
|
||||
# via
|
||||
# cattrs
|
||||
@@ -153,8 +155,9 @@ google-auth==2.36.0
|
||||
# via shillelagh
|
||||
greenlet==3.0.3
|
||||
# via
|
||||
# -r requirements/base.in
|
||||
# apache-superset
|
||||
# shillelagh
|
||||
# sqlalchemy
|
||||
gunicorn==23.0.0
|
||||
# via apache-superset
|
||||
hashids==1.3.1
|
||||
@@ -167,7 +170,7 @@ idna==3.10
|
||||
# via
|
||||
# email-validator
|
||||
# requests
|
||||
importlib-metadata==7.1.0
|
||||
importlib-metadata==8.5.0
|
||||
# via apache-superset
|
||||
importlib-resources==6.4.5
|
||||
# via limits
|
||||
@@ -219,7 +222,7 @@ msgpack==1.0.8
|
||||
# via apache-superset
|
||||
msgspec==0.18.6
|
||||
# via flask-session
|
||||
nh3==0.2.18
|
||||
nh3==0.2.19
|
||||
# via apache-superset
|
||||
numba==0.60.0
|
||||
# via pandas
|
||||
@@ -283,7 +286,7 @@ pycparser==2.22
|
||||
# via cffi
|
||||
pygments==2.18.0
|
||||
# via rich
|
||||
pyjwt==2.10.0
|
||||
pyjwt==2.10.1
|
||||
# via
|
||||
# apache-superset
|
||||
# flask-appbuilder
|
||||
@@ -292,7 +295,7 @@ pynacl==1.5.0
|
||||
# via paramiko
|
||||
pyopenssl==24.2.1
|
||||
# via shillelagh
|
||||
pyparsing==3.1.2
|
||||
pyparsing==3.2.0
|
||||
# via apache-superset
|
||||
pyrsistent==0.20.0
|
||||
# via jsonschema
|
||||
@@ -361,7 +364,7 @@ sqlalchemy-utils==0.38.3
|
||||
# via
|
||||
# apache-superset
|
||||
# flask-appbuilder
|
||||
sqlglot==25.24.0
|
||||
sqlglot==25.24.5
|
||||
# via apache-superset
|
||||
sqlparse==0.5.2
|
||||
# via apache-superset
|
||||
|
||||
@@ -12,18 +12,10 @@
|
||||
# -r requirements/development.in
|
||||
astroid==3.1.0
|
||||
# via pylint
|
||||
boto3==1.34.112
|
||||
# via apache-superset
|
||||
botocore==1.34.112
|
||||
# via
|
||||
# boto3
|
||||
# s3transfer
|
||||
build==1.2.1
|
||||
# via pip-tools
|
||||
cfgv==3.4.0
|
||||
# via pre-commit
|
||||
chardet==5.2.0
|
||||
# via tox
|
||||
cmdstanpy==1.1.0
|
||||
# via prophet
|
||||
contourpy==1.0.7
|
||||
@@ -41,9 +33,7 @@ distlib==0.3.8
|
||||
docker==7.0.0
|
||||
# via apache-superset
|
||||
filelock==3.12.2
|
||||
# via
|
||||
# tox
|
||||
# virtualenv
|
||||
# via virtualenv
|
||||
flask-cors==4.0.0
|
||||
# via apache-superset
|
||||
flask-testing==0.8.1
|
||||
@@ -97,10 +87,6 @@ iniconfig==2.0.0
|
||||
# via pytest
|
||||
isort==5.12.0
|
||||
# via pylint
|
||||
jmespath==1.0.1
|
||||
# via
|
||||
# boto3
|
||||
# botocore
|
||||
jsonschema-spec==0.1.6
|
||||
# via openapi-spec-validator
|
||||
kiwisolver==1.4.7
|
||||
@@ -138,9 +124,7 @@ pip-tools==7.4.1
|
||||
playwright==1.42.0
|
||||
# via apache-superset
|
||||
pluggy==1.5.0
|
||||
# via
|
||||
# pytest
|
||||
# tox
|
||||
# via pytest
|
||||
pre-commit==4.0.1
|
||||
# via apache-superset
|
||||
progress==1.6
|
||||
@@ -176,8 +160,6 @@ pyinstrument==4.4.0
|
||||
# via apache-superset
|
||||
pylint==3.1.0
|
||||
# via apache-superset
|
||||
pyproject-api==1.8.0
|
||||
# via tox
|
||||
pyproject-hooks==1.2.0
|
||||
# via
|
||||
# build
|
||||
@@ -199,8 +181,6 @@ rfc3339-validator==0.1.4
|
||||
# via openapi-schema-validator
|
||||
ruff==0.8.0
|
||||
# via apache-superset
|
||||
s3transfer==0.10.1
|
||||
# via boto3
|
||||
sqlalchemy-bigquery==1.12.0
|
||||
# via apache-superset
|
||||
sqloxide==0.1.51
|
||||
@@ -213,15 +193,11 @@ tomli==2.1.0
|
||||
# coverage
|
||||
# pip-tools
|
||||
# pylint
|
||||
# pyproject-api
|
||||
# pytest
|
||||
# tox
|
||||
tomlkit==0.13.2
|
||||
# via pylint
|
||||
toposort==1.10
|
||||
# via pip-compile-multi
|
||||
tox==4.6.4
|
||||
# via apache-superset
|
||||
tqdm==4.67.1
|
||||
# via
|
||||
# cmdstanpy
|
||||
@@ -231,9 +207,7 @@ trino==0.330.0
|
||||
tzlocal==5.2
|
||||
# via trino
|
||||
virtualenv==20.23.1
|
||||
# via
|
||||
# pre-commit
|
||||
# tox
|
||||
# via pre-commit
|
||||
wheel==0.45.1
|
||||
# via pip-tools
|
||||
zope-event==5.0
|
||||
|
||||
@@ -95,15 +95,21 @@ def print_files(files: List[str]) -> None:
|
||||
print("\n".join([f"- {s}" for s in files]))
|
||||
|
||||
|
||||
def is_int(s: str) -> bool:
|
||||
return bool(re.match(r"^-?\d+$", s))
|
||||
|
||||
|
||||
def main(event_type: str, sha: str, repo: str) -> None:
|
||||
"""Main function to check for file changes based on event context."""
|
||||
print("SHA:", sha)
|
||||
print("EVENT_TYPE", event_type)
|
||||
files = None
|
||||
if event_type == "pull_request":
|
||||
pr_number = os.getenv("GITHUB_REF", "").split("/")[-2]
|
||||
files = fetch_changed_files_pr(repo, pr_number)
|
||||
print("PR files:")
|
||||
print_files(files)
|
||||
if is_int(pr_number):
|
||||
files = fetch_changed_files_pr(repo, pr_number)
|
||||
print("PR files:")
|
||||
print_files(files)
|
||||
|
||||
elif event_type == "push":
|
||||
files = fetch_changed_files_push(repo, sha)
|
||||
@@ -119,7 +125,7 @@ def main(event_type: str, sha: str, repo: str) -> None:
|
||||
changes_detected = {}
|
||||
for group, regex_patterns in PATTERNS.items():
|
||||
patterns_compiled = [re.compile(p) for p in regex_patterns]
|
||||
changes_detected[group] = event_type == "workflow_dispatch" or detect_changes(
|
||||
changes_detected[group] = files is None or detect_changes(
|
||||
files, patterns_compiled
|
||||
)
|
||||
|
||||
|
||||
6992
superset-frontend/CHANGELOG.md
Normal file
6992
superset-frontend/CHANGELOG.md
Normal file
File diff suppressed because it is too large
Load Diff
@@ -87,7 +87,7 @@ describe('Charts list', () => {
|
||||
visitChartList();
|
||||
cy.getBySel('count-crosslinks').should('be.visible');
|
||||
cy.getBySel('crosslinks').first().trigger('mouseover');
|
||||
cy.get('.ant-tooltip')
|
||||
cy.get('.antd5-tooltip')
|
||||
.contains('3 - Sample dashboard')
|
||||
.invoke('removeAttr', 'target')
|
||||
.click();
|
||||
|
||||
@@ -88,6 +88,9 @@ describe('Horizontal FilterBar', () => {
|
||||
cy.getBySel('horizontal-filterbar-empty')
|
||||
.contains('No filters are currently added to this dashboard.')
|
||||
.should('exist');
|
||||
cy.get(nativeFilters.filtersPanel.filterGear).click({
|
||||
force: true,
|
||||
});
|
||||
cy.getBySel('filter-bar__create-filter').should('exist');
|
||||
cy.getBySel('filterbar-action-buttons').should('exist');
|
||||
});
|
||||
@@ -120,7 +123,7 @@ describe('Horizontal FilterBar', () => {
|
||||
|
||||
cy.getBySel('form-item-value').should('have.length', 3);
|
||||
cy.viewport(768, 1024);
|
||||
cy.getBySel('form-item-value').should('have.length', 0);
|
||||
cy.getBySel('form-item-value').should('have.length', 1);
|
||||
openMoreFilters(false);
|
||||
cy.getBySel('form-item-value').should('have.length', 3);
|
||||
|
||||
|
||||
@@ -263,8 +263,10 @@ describe('Native filters', () => {
|
||||
});
|
||||
|
||||
it('User can expand / retract native filter sidebar on a dashboard', () => {
|
||||
cy.get(nativeFilters.addFilterButton.button).should('not.exist');
|
||||
expandFilterOnLeftPanel();
|
||||
cy.get(nativeFilters.filtersPanel.filterGear).click({
|
||||
force: true,
|
||||
});
|
||||
cy.get(nativeFilters.filterFromDashboardView.createFilterButton).should(
|
||||
'be.visible',
|
||||
);
|
||||
|
||||
@@ -228,6 +228,9 @@ export function collapseFilterOnLeftPanel() {
|
||||
************************************************************************* */
|
||||
export function enterNativeFilterEditModal(waitForDataset = true) {
|
||||
interceptDataset();
|
||||
cy.get(nativeFilters.filtersPanel.filterGear).click({
|
||||
force: true,
|
||||
});
|
||||
cy.get(nativeFilters.filterFromDashboardView.createFilterButton).click({
|
||||
force: true,
|
||||
});
|
||||
@@ -243,11 +246,7 @@ export function enterNativeFilterEditModal(waitForDataset = true) {
|
||||
* @summary helper for adding new filter
|
||||
************************************************************************* */
|
||||
export function clickOnAddFilterInModal() {
|
||||
cy.get(nativeFilters.addFilterButton.button).first().click();
|
||||
return cy
|
||||
.get(nativeFilters.addFilterButton.dropdownItem)
|
||||
.contains('Filter')
|
||||
.click({ force: true });
|
||||
return cy.get(nativeFilters.modal.addNewFilterButton).click({ force: true });
|
||||
}
|
||||
|
||||
/** ************************************************************************
|
||||
|
||||
@@ -99,16 +99,13 @@ describe('Color scheme control', () => {
|
||||
cy.get('.ant-select-selection-item .color-scheme-label').trigger(
|
||||
'mouseover',
|
||||
);
|
||||
cy.get('.color-scheme-tooltip').should('be.visible');
|
||||
cy.get('.color-scheme-tooltip').contains('Superset Colors');
|
||||
cy.get('.Control[data-test="color_scheme"]').scrollIntoView();
|
||||
cy.get('.Control[data-test="color_scheme"] input[type="search"]').focus();
|
||||
cy.focused().type('lyftColors{enter}');
|
||||
cy.get(
|
||||
'.Control[data-test="color_scheme"] .ant-select-selection-item [data-test="lyftColors"]',
|
||||
).should('exist');
|
||||
cy.get('.ant-select-selection-item .color-scheme-label').trigger(
|
||||
'mouseover',
|
||||
);
|
||||
cy.focused().type('lyftColors');
|
||||
cy.getBySel('lyftColors').should('exist');
|
||||
cy.getBySel('lyftColors').trigger('mouseover');
|
||||
cy.get('.color-scheme-tooltip').should('not.exist');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -62,7 +62,7 @@ describe('Visualization > Line', () => {
|
||||
'not.exist',
|
||||
);
|
||||
|
||||
cy.get('.ant-alert-warning').should('not.exist');
|
||||
cy.get('.antd5-alert-warning').should('not.exist');
|
||||
});
|
||||
|
||||
it('should allow negative values in Y bounds', () => {
|
||||
@@ -71,7 +71,7 @@ describe('Visualization > Line', () => {
|
||||
cy.get('#controlSections-tab-display').click();
|
||||
cy.get('span').contains('Y Axis Bounds').scrollIntoView();
|
||||
cy.get('input[placeholder="Min"]').type('-0.1', { delay: 100 });
|
||||
cy.get('.ant-alert-warning').should('not.exist');
|
||||
cy.get('.antd5-alert-warning').should('not.exist');
|
||||
});
|
||||
|
||||
it('should allow type to search color schemes and apply the scheme', () => {
|
||||
|
||||
@@ -94,7 +94,7 @@ export const databasesPage = {
|
||||
dbDropdown: '[class="ant-select-selection-search-input"]',
|
||||
dbDropdownMenu: '.rc-virtual-list-holder-inner',
|
||||
dbDropdownMenuItem: '[class="ant-select-item-option-content"]',
|
||||
infoAlert: '.ant-alert',
|
||||
infoAlert: '.antd5-alert',
|
||||
serviceAccountInput: '[name="credentials_info"]',
|
||||
connectionStep: {
|
||||
modal: '.ant-modal-content',
|
||||
@@ -103,7 +103,7 @@ export const databasesPage = {
|
||||
helperBottom: '.helper-bottom',
|
||||
postgresDatabase: '[name="database"]',
|
||||
dbInput: '[name="database_name"]',
|
||||
alertMessage: '.ant-alert-message',
|
||||
alertMessage: '.antd5-alert-message',
|
||||
errorField: '[role="alert"]',
|
||||
uploadJson: '[title="Upload JSON file"]',
|
||||
chooseFile: '[class="ant-btn input-upload-btn"]',
|
||||
@@ -140,7 +140,7 @@ export const sqlLabView = {
|
||||
tabsNavList: "[class='ant-tabs-nav-list']",
|
||||
tab: "[class='ant-tabs-tab-btn']",
|
||||
addTabButton: dataTestLocator('add-tab-icon'),
|
||||
tooltip: '.ant-tooltip-content',
|
||||
tooltip: '.antd5-tooltip-content',
|
||||
tabName: '.css-1suejie',
|
||||
schemaInput: '[data-test=DatabaseSelector] > :nth-child(2)',
|
||||
loadingIndicator: '.Select__loading-indicator',
|
||||
@@ -166,7 +166,7 @@ export const sqlLabView = {
|
||||
renderedTableHeader: '.ReactVirtualized__Table__headerRow',
|
||||
renderedTableRow: '.ReactVirtualized__Table__row',
|
||||
errorBody: '.error-body',
|
||||
alertMessage: '.ant-alert-message',
|
||||
alertMessage: '.antd5-alert-message',
|
||||
historyTable: {
|
||||
header: '[role=columnheader]',
|
||||
table: '.QueryTable',
|
||||
@@ -325,7 +325,7 @@ export const nativeFilters = {
|
||||
confirmCancelButton: dataTestLocator(
|
||||
'native-filter-modal-confirm-cancel-button',
|
||||
),
|
||||
alertXUnsavedFilters: '.ant-alert-message',
|
||||
alertXUnsavedFilters: '.antd5-alert-message',
|
||||
tabsList: {
|
||||
filterItemsContainer: dataTestLocator('filter-title-container'),
|
||||
tabsContainer: '[class="ant-tabs-nav-list"]',
|
||||
@@ -334,10 +334,8 @@ export const nativeFilters = {
|
||||
},
|
||||
addFilter: dataTestLocator('add-filter-button'),
|
||||
defaultValueCheck: '.ant-checkbox-checked',
|
||||
},
|
||||
addFilterButton: {
|
||||
button: `.ant-modal-content [data-test="new-dropdown-icon"]`,
|
||||
dropdownItem: '.ant-dropdown-menu-item',
|
||||
addNewFilterButton: dataTestLocator('add-new-filter-button'),
|
||||
addNewDividerButton: dataTestLocator('add-new-divider-button'),
|
||||
},
|
||||
filtersPanel: {
|
||||
filterName: dataTestLocator('filters-config-modal__name-input'),
|
||||
@@ -348,6 +346,7 @@ export const nativeFilters = {
|
||||
filterTypeInput: dataTestLocator('filters-config-modal__filter-type'),
|
||||
fieldInput: dataTestLocator('field-input'),
|
||||
filterTypeItem: '.ant-select-selection-item',
|
||||
filterGear: dataTestLocator('filterbar-orientation-icon'),
|
||||
},
|
||||
filterFromDashboardView: {
|
||||
filterValueInput: '[class="ant-select-selection-search-input"]',
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
{
|
||||
"npmClient": "npm",
|
||||
"packages": ["packages/*", "plugins/*", "src/setup/*"],
|
||||
"version": "0.18.25",
|
||||
"packages": [
|
||||
"packages/*",
|
||||
"plugins/*",
|
||||
"src/setup/*"
|
||||
],
|
||||
"version": "0.20.4",
|
||||
"ignoreChanges": [
|
||||
"**/*.md",
|
||||
"**/*.spec.tsx?",
|
||||
@@ -19,4 +23,4 @@
|
||||
}
|
||||
},
|
||||
"$schema": "node_modules/lerna/schemas/lerna-schema.json"
|
||||
}
|
||||
}
|
||||
6308
superset-frontend/package-lock.json
generated
6308
superset-frontend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -59,8 +59,8 @@
|
||||
"plugins:create-conventional-version": "npm run prune && lerna version --conventional-commits --create-release github --no-private --yes",
|
||||
"plugins:create-minor-version": "npm run prune && lerna version minor --no-private --yes",
|
||||
"plugins:create-patch-version": "npm run prune && lerna version patch --no-private --yes",
|
||||
"plugins:release-conventional": "npm run prune && lerna publish --conventional-commits --create-release github --yes",
|
||||
"plugins:release-from-tag": "npm run prune && lerna publish from-package --yes",
|
||||
"plugins:release-conventional": "npm run prune && npm run plugins:build && lerna publish --conventional-commits --create-release github --yes",
|
||||
"plugins:release-from-tag": "npm run prune && npm run plugins:build && lerna publish from-package --yes",
|
||||
"plugins:storybook": "cd packages/superset-ui-demo && npm run storybook",
|
||||
"prettier": "npm run _prettier -- --write",
|
||||
"prettier-check": "npm run _prettier -- --check",
|
||||
@@ -90,7 +90,7 @@
|
||||
"@rjsf/core": "^5.21.1",
|
||||
"@rjsf/utils": "^5.19.3",
|
||||
"@rjsf/validator-ajv8": "^5.22.3",
|
||||
"@scarf/scarf": "^1.3.0",
|
||||
"@scarf/scarf": "^1.4.0",
|
||||
"@superset-ui/chart-controls": "file:./packages/superset-ui-chart-controls",
|
||||
"@superset-ui/core": "file:./packages/superset-ui-core",
|
||||
"@superset-ui/legacy-plugin-chart-calendar": "file:./plugins/legacy-plugin-chart-calendar",
|
||||
@@ -167,7 +167,7 @@
|
||||
"prop-types": "^15.8.1",
|
||||
"query-string": "^6.13.7",
|
||||
"rc-trigger": "^5.3.4",
|
||||
"re-resizable": "^6.10.0",
|
||||
"re-resizable": "^6.10.1",
|
||||
"react": "^16.13.1",
|
||||
"react-ace": "^10.1.0",
|
||||
"react-checkbox-tree": "^1.8.0",
|
||||
@@ -217,7 +217,7 @@
|
||||
"@babel/cli": "^7.22.6",
|
||||
"@babel/compat-data": "^7.22.6",
|
||||
"@babel/core": "^7.23.9",
|
||||
"@babel/eslint-parser": "^7.23.10",
|
||||
"@babel/eslint-parser": "^7.25.9",
|
||||
"@babel/node": "^7.22.6",
|
||||
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
|
||||
@@ -259,6 +259,7 @@
|
||||
"@types/jquery": "^3.5.8",
|
||||
"@types/js-levenshtein": "^1.1.3",
|
||||
"@types/json-bigint": "^1.0.4",
|
||||
"@types/math-expression-evaluator": "^1.3.3",
|
||||
"@types/mousetrap": "^1.6.15",
|
||||
"@types/react": "^16.9.53",
|
||||
"@types/react-dom": "^16.9.8",
|
||||
@@ -268,7 +269,7 @@
|
||||
"@types/react-redux": "^7.1.10",
|
||||
"@types/react-router-dom": "^5.3.3",
|
||||
"@types/react-syntax-highlighter": "^15.5.13",
|
||||
"@types/react-table": "^7.7.19",
|
||||
"@types/react-table": "^7.7.20",
|
||||
"@types/react-transition-group": "^4.4.10",
|
||||
"@types/react-ultimate-pagination": "^1.2.4",
|
||||
"@types/react-virtualized-auto-sizer": "^1.0.4",
|
||||
@@ -292,7 +293,7 @@
|
||||
"css-minimizer-webpack-plugin": "^5.0.1",
|
||||
"enzyme": "^3.11.0",
|
||||
"enzyme-adapter-react-16": "^1.15.7",
|
||||
"esbuild": "^0.20.0",
|
||||
"esbuild": "^0.24.0",
|
||||
"esbuild-loader": "^4.2.2",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-config-airbnb": "^19.0.4",
|
||||
|
||||
@@ -1,27 +1,34 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
|
||||
# Change Log
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [0.20.0](https://github.com/apache/superset/compare/v2021.41.0...v0.20.0) (2024-09-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **dependencies:** stopping (and preventing) full lodash library import... now using only method level imports. ([#26710](https://github.com/apache/superset/issues/26710)) ([1d4b8b6](https://github.com/apache/superset/commit/1d4b8b69896776cf8831b8202e69424e14067011))
|
||||
- **generator:** add lockfile and fix styling issues ([#18073](https://github.com/apache/superset/issues/18073)) ([5bfe2d4](https://github.com/apache/superset/commit/5bfe2d47b0d46d6f561fdae6e803d6929ffe840b))
|
||||
- **generator:** more cleanup to plugin framework ([#18027](https://github.com/apache/superset/issues/18027)) ([8dea7f5](https://github.com/apache/superset/commit/8dea7f500bea194f55c15c9f1511a35b2c328cd6))
|
||||
- **plugin-generator:** Addresses linter errors in newly generated Superset plugin ([#23513](https://github.com/apache/superset/issues/23513)) ([de42c11](https://github.com/apache/superset/commit/de42c11f99355e5fba2c2162ff180ee273801766))
|
||||
|
||||
### Features
|
||||
|
||||
- **build:** uplift Lerna + replace insecure shortid with nanoid + uplift Yeoman-related packages + ESM-ize generator-superset ([#29419](https://github.com/apache/superset/issues/29419)) ([c30ca53](https://github.com/apache/superset/commit/c30ca534a38f624bfc87fcfa1c1161b542115822))
|
||||
|
||||
# [0.19.0](https://github.com/apache/superset/compare/v2021.41.0...v0.19.0) (2024-09-07)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **dependencies:** stopping (and preventing) full lodash library import... now using only method level imports. ([#26710](https://github.com/apache/superset/issues/26710)) ([1d4b8b6](https://github.com/apache/superset/commit/1d4b8b69896776cf8831b8202e69424e14067011))
|
||||
- **generator:** add lockfile and fix styling issues ([#18073](https://github.com/apache/superset/issues/18073)) ([5bfe2d4](https://github.com/apache/superset/commit/5bfe2d47b0d46d6f561fdae6e803d6929ffe840b))
|
||||
- **generator:** more cleanup to plugin framework ([#18027](https://github.com/apache/superset/issues/18027)) ([8dea7f5](https://github.com/apache/superset/commit/8dea7f500bea194f55c15c9f1511a35b2c328cd6))
|
||||
- **plugin-generator:** Addresses linter errors in newly generated Superset plugin ([#23513](https://github.com/apache/superset/issues/23513)) ([de42c11](https://github.com/apache/superset/commit/de42c11f99355e5fba2c2162ff180ee273801766))
|
||||
|
||||
### Features
|
||||
|
||||
- **build:** uplift Lerna + replace insecure shortid with nanoid + uplift Yeoman-related packages + ESM-ize generator-superset ([#29419](https://github.com/apache/superset/issues/29419)) ([c30ca53](https://github.com/apache/superset/commit/c30ca534a38f624bfc87fcfa1c1161b542115822))
|
||||
|
||||
# [0.18.0](https://github.com/apache-superset/superset-ui/compare/v0.17.87...v0.18.0) (2021-08-30)
|
||||
|
||||
**Note:** Version bump only for package @superset-ui/generator-superset
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@superset-ui/generator-superset",
|
||||
"version": "0.18.25",
|
||||
"version": "0.20.3",
|
||||
"description": "Scaffolder for Superset",
|
||||
"keywords": [
|
||||
"yeoman",
|
||||
@@ -36,8 +36,8 @@
|
||||
"devDependencies": {
|
||||
"cross-env": "^7.0.3",
|
||||
"fs-extra": "^11.2.0",
|
||||
"yeoman-test": "^8.3.0",
|
||||
"jest": "^29.7.0"
|
||||
"jest": "^29.7.0",
|
||||
"yeoman-test": "^8.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"npm": ">= 4.0.0",
|
||||
|
||||
@@ -1,27 +1,256 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
|
||||
# Change Log
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [0.20.0](https://github.com/apache/superset/compare/v2021.41.0...v0.20.0) (2024-09-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Adaptive formatting spelling ([#19359](https://github.com/apache/superset/issues/19359)) ([dc769a9](https://github.com/apache/superset/commit/dc769a9a34e9b6417447ee490ecd203ace0941d9))
|
||||
- Address regression in main_dttm_col for non-dnd ([#20712](https://github.com/apache/superset/issues/20712)) ([a6abcd9](https://github.com/apache/superset/commit/a6abcd9ea8fac4a477b824adb367b4b5206a5d27))
|
||||
- Alpha should not be able to edit datasets that they don't own ([#19854](https://github.com/apache/superset/issues/19854)) ([8b15b68](https://github.com/apache/superset/commit/8b15b68979bf033979fe7014ef2730095ae85120))
|
||||
- annotation broken ([#20651](https://github.com/apache/superset/issues/20651)) ([7f918a4](https://github.com/apache/superset/commit/7f918a4ec0e162be13bf3fc0e2f15aaaa5450cec))
|
||||
- BigQuery cannot accept Time Grain ([#21489](https://github.com/apache/superset/issues/21489)) ([33509ab](https://github.com/apache/superset/commit/33509ab7da384144d42d67dd8c6233b1be9c9fa0))
|
||||
- Cannot re-order metrics by drag and drop ([#19876](https://github.com/apache/superset/issues/19876)) ([e4fca89](https://github.com/apache/superset/commit/e4fca89217fc52a31053470f1b4c91a56ed3f4e9))
|
||||
- Chart crashing if timeseries_limit_metric is an empty array ([#23480](https://github.com/apache/superset/issues/23480)) ([4530542](https://github.com/apache/superset/commit/4530542ac4d36adc3379564e16ea655ce4bf17e5))
|
||||
- **chart-controls:** Error if x_axis_sort and timeseries_limit_metric are included in main metrics ([#23365](https://github.com/apache/superset/issues/23365)) ([63513a5](https://github.com/apache/superset/commit/63513a5873460ee508c71b504d5e1cfb5f42bbb8))
|
||||
- **chart:** Set max row limit + removed the option to use an empty row limit value ([#26151](https://github.com/apache/superset/issues/26151)) ([863f8bb](https://github.com/apache/superset/commit/863f8bbbcdd078814973d444368c12e06ad0c0c0))
|
||||
- **Charts:** Set max row limit + removed the option to use an empty row limit value ([#25579](https://github.com/apache/superset/issues/25579)) ([f556ef5](https://github.com/apache/superset/commit/f556ef53f3177746ec2526b4b963da4ef00c2d58))
|
||||
- column/metric type icons look too small ([#24740](https://github.com/apache/superset/issues/24740)) ([341b8d4](https://github.com/apache/superset/commit/341b8d41c5ba15c3617a61a92779b670c4ece43d))
|
||||
- Contribution percentages for ECharts plugins ([#28368](https://github.com/apache/superset/issues/28368)) ([55f3b46](https://github.com/apache/superset/commit/55f3b46f4105e5bbdd0b025a4b61bc843d8e5b9e))
|
||||
- custom SQL in the XAxis ([#21847](https://github.com/apache/superset/issues/21847)) ([0a4ecca](https://github.com/apache/superset/commit/0a4ecca9f259e2ee9cff27a879f2a889f876c7d7))
|
||||
- drop the first level of MultiIndex ([#19716](https://github.com/apache/superset/issues/19716)) ([9425dd2](https://github.com/apache/superset/commit/9425dd2cac42f1a92f621848c469cadcc483e757))
|
||||
- **explore comma:** make that the comma can be added by removing it from token separators… ([#18926](https://github.com/apache/superset/issues/18926)) ([e7355b9](https://github.com/apache/superset/commit/e7355b9610d1371d1d3fca51c17d1999ca3ecef3))
|
||||
- **explore:** Adhoc columns don't display correctly ([#20802](https://github.com/apache/superset/issues/20802)) ([af1bddf](https://github.com/apache/superset/commit/af1bddffad930efc0583b638716980db6747bfbc))
|
||||
- **explore:** allow free-form d3 format on custom column formatting ([#27023](https://github.com/apache/superset/issues/27023)) ([fd06ff3](https://github.com/apache/superset/commit/fd06ff3745b0ce96ef2506e18b6d5f27d3eee045))
|
||||
- **explore:** Change copy of cross filters checkbox ([#19646](https://github.com/apache/superset/issues/19646)) ([4a5dddf](https://github.com/apache/superset/commit/4a5dddf52d8191b002fa11add6baaee26bc3b1a7))
|
||||
- **explore:** clean data when hidding control ([#19039](https://github.com/apache/superset/issues/19039)) ([0e29871](https://github.com/apache/superset/commit/0e29871493171b6a70f974d26f41b6797e5b5d5c))
|
||||
- **explore:** Fix generic X-axis time grain disappearing ([#21484](https://github.com/apache/superset/issues/21484)) ([324e997](https://github.com/apache/superset/commit/324e9979fa968b07d0be2628cac9119c492dc9b6))
|
||||
- **explore:** hide advanced analytics for non temporal xaxis ([#28312](https://github.com/apache/superset/issues/28312)) ([07cd1d8](https://github.com/apache/superset/commit/07cd1d89d0c57b2987e1d9aeb23c2aad518a3dc2))
|
||||
- **explore:** Prevent shared controls from checking feature flags outside React render ([#21315](https://github.com/apache/superset/issues/21315)) ([2285ebe](https://github.com/apache/superset/commit/2285ebe72ec4edded6d195052740b7f9f13d1f1b))
|
||||
- **explore:** support saving undefined time grain ([#22565](https://github.com/apache/superset/issues/22565)) ([a7a4561](https://github.com/apache/superset/commit/a7a4561550e06bad11ef6d5a50af1ae1af173790))
|
||||
- **explore:** temporal column mixin ([#28241](https://github.com/apache/superset/issues/28241)) ([743c0bd](https://github.com/apache/superset/commit/743c0bde7edbda11c8f9755b061e45766aa3d401))
|
||||
- **generic-x-axis:** skip initial time filter for legacy charts ([#23506](https://github.com/apache/superset/issues/23506)) ([8db5cb1](https://github.com/apache/superset/commit/8db5cb18c01ee8c9ee1fb3dc60c3af32682c47f7))
|
||||
- hide time_grain when x_axis value is undefined ([#21464](https://github.com/apache/superset/issues/21464)) ([ae6d2cf](https://github.com/apache/superset/commit/ae6d2cf18dbf0fec78e577b0cad1881940796b50))
|
||||
- **legacy-charts:** Show Time Grain control for legacy charts ([#26705](https://github.com/apache/superset/issues/26705)) ([3ed70d8](https://github.com/apache/superset/commit/3ed70d8f53c229682027df3efa7815ca12bd1328))
|
||||
- local warning in the frontend development ([#17727](https://github.com/apache/superset/issues/17727)) ([142b5bc](https://github.com/apache/superset/commit/142b5bc506c81847e503e76e498c06e8321dffb1))
|
||||
- Metric is truncated in tooltip ([#24555](https://github.com/apache/superset/issues/24555)) ([5bdb774](https://github.com/apache/superset/commit/5bdb7745040e826dc36c6742f05952d69530ee0d))
|
||||
- number format should editable when AA in time comparison ([#19351](https://github.com/apache/superset/issues/19351)) ([e15573d](https://github.com/apache/superset/commit/e15573d4453f8432e2da1db86f2e9417666fb8b5))
|
||||
- Pivot Table Conditional Formatting Doesn't Show All Options ([#19071](https://github.com/apache/superset/issues/19071)) ([0e0bece](https://github.com/apache/superset/commit/0e0beceac173f765d8f9a0887732029b78603f6d))
|
||||
- **plugin-chart-echarts:** [feature-parity] apply button of annotation layer doesn't work as expected ([#19761](https://github.com/apache/superset/issues/19761)) ([9f02ff6](https://github.com/apache/superset/commit/9f02ff656d63e537c06822657dcfc2ff46f70e67))
|
||||
- **plugin-chart-echarts:** Apply temporary filters to Query B in explore ([#18998](https://github.com/apache/superset/issues/18998)) ([9f834e8](https://github.com/apache/superset/commit/9f834e8317dca7c71470c89e2c86bb35ca7ca39f))
|
||||
- **plugin-chart-echarts:** boxplot throw error in the dashboard ([#21661](https://github.com/apache/superset/issues/21661)) ([61bd696](https://github.com/apache/superset/commit/61bd6962265d879e168f208854fc17b145b9e04d))
|
||||
- **plugin-chart-echarts:** fix forecasts on verbose metrics ([#18252](https://github.com/apache/superset/issues/18252)) ([2929bb1](https://github.com/apache/superset/commit/2929bb1680d29e5fd1d3b351e3e2f86971a60b44))
|
||||
- **plugin-chart-echarts:** reorder totals and support multimetric sort ([#23675](https://github.com/apache/superset/issues/23675)) ([cbbcc8d](https://github.com/apache/superset/commit/cbbcc8d2e136f949778cda56affb981c2db05880))
|
||||
- **plugin-chart-echarts:** support adhoc x-axis ([#20055](https://github.com/apache/superset/issues/20055)) ([b53daa9](https://github.com/apache/superset/commit/b53daa91ecf0e82fe219b498e907d0c3f3ca9ccb))
|
||||
- **plugin-chart-echarts:** support forced categorical x-axis ([#26404](https://github.com/apache/superset/issues/26404)) ([219c4a1](https://github.com/apache/superset/commit/219c4a14b359b77dbfcda74e66b7d06c3792b861))
|
||||
- **plugin-chart-pivot-table:** color weight of Conditional formatting metrics not work ([#20396](https://github.com/apache/superset/issues/20396)) ([1665403](https://github.com/apache/superset/commit/16654034849505109b638fd2a784dfb377238a0e))
|
||||
- resample method shouldn't be freeform ([#21135](https://github.com/apache/superset/issues/21135)) ([fea68ef](https://github.com/apache/superset/commit/fea68ef23cd19853f6ceee42802ac3b4b1b05da0))
|
||||
- Respecting max/min opacities, and adding tests. ([#20555](https://github.com/apache/superset/issues/20555)) ([ac8e502](https://github.com/apache/superset/commit/ac8e502228d1b247c1b56ee692c2cefade1bf1a9))
|
||||
- Revert "fix(Charts): Set max row limit + removed the option to use an empty row limit value" ([#25753](https://github.com/apache/superset/issues/25753)) ([e2fe967](https://github.com/apache/superset/commit/e2fe96778887d203a852cf09def151ff024cfaf7))
|
||||
- revert [#21356](https://github.com/apache/superset/issues/21356)(able to sort bar on the bar chart V2) ([#21481](https://github.com/apache/superset/issues/21481)) ([1c0bff3](https://github.com/apache/superset/commit/1c0bff3dfb3649d219abe6a13d9018ded14f334f))
|
||||
- Revert shared controls typing change. ([#22014](https://github.com/apache/superset/issues/22014)) ([4cbd70d](https://github.com/apache/superset/commit/4cbd70db34b140a026ef1a86a8ef0ba3355a350e))
|
||||
- Reverts [#20749](https://github.com/apache/superset/issues/20749) and [#20645](https://github.com/apache/superset/issues/20645) ([#20796](https://github.com/apache/superset/issues/20796)) ([3311128](https://github.com/apache/superset/commit/3311128c5e6c5de2ea5d6a2dfeb01ea3179e9af8))
|
||||
- Row limit hardcoded ([#26807](https://github.com/apache/superset/issues/26807)) ([5e633d2](https://github.com/apache/superset/commit/5e633d2bb0909f1cb4904c07e29a2c683f02131c))
|
||||
- save columns reference from sqllab save datasets flow ([#24248](https://github.com/apache/superset/issues/24248)) ([93e1db4](https://github.com/apache/superset/commit/93e1db4bd9d045b8a9b345733a60139cb213ab86))
|
||||
- **select:** make to consider the case sensitive in case of d3 format selector ([#19159](https://github.com/apache/superset/issues/19159)) ([d099f5e](https://github.com/apache/superset/commit/d099f5ed4ad6f5b553c7e3eedbc34cf5ad55eae7))
|
||||
- **select:** select component sort functionality on certain options ([#17638](https://github.com/apache/superset/issues/17638)) ([f476ba2](https://github.com/apache/superset/commit/f476ba23a279cb87a94ad3075e035cad0ae264b6))
|
||||
- should be able to remove selection from X-AXIS control ([#21371](https://github.com/apache/superset/issues/21371)) ([eb4ba5b](https://github.com/apache/superset/commit/eb4ba5b08975df2124057c25d3732ef68a0e880a))
|
||||
- superset-ui/core codes coverage ([#20324](https://github.com/apache/superset/issues/20324)) ([d04357c](https://github.com/apache/superset/commit/d04357c47bec7bac49c602f3d2166375892200ad))
|
||||
- Table time comparison breaking after form data update ([#29525](https://github.com/apache/superset/issues/29525)) ([3d06651](https://github.com/apache/superset/commit/3d0665183cac3d60b492c680774c197ea64d25e7))
|
||||
- time grain can't be removed in explore ([#21644](https://github.com/apache/superset/issues/21644)) ([4c17f0e](https://github.com/apache/superset/commit/4c17f0e71e05caa55410edb2317e084c52a25440))
|
||||
- Time shifts calculation for ECharts plugins ([#28432](https://github.com/apache/superset/issues/28432)) ([821c7d7](https://github.com/apache/superset/commit/821c7d7f2c430c4a4294883a66128ba98fd949c5))
|
||||
- X Axis should be called Y Axis when using the Bar Chart V2 on Horizontal mode ([#20659](https://github.com/apache/superset/issues/20659)) ([c29261b](https://github.com/apache/superset/commit/c29261b63dee723f108b3404e29a498ecf8421f8))
|
||||
|
||||
### Features
|
||||
|
||||
- add Advanced Analytics into mixed time series chart ([#19851](https://github.com/apache/superset/issues/19851)) ([f5e9f0e](https://github.com/apache/superset/commit/f5e9f0eb3b2045a9d441f59cb3a6109892e6aea9))
|
||||
- Add currencies controls in control panels ([#24718](https://github.com/apache/superset/issues/24718)) ([f7e76d0](https://github.com/apache/superset/commit/f7e76d02b7cbe4940946673590bb979984ace9f5))
|
||||
- add renameOperator ([#19776](https://github.com/apache/superset/issues/19776)) ([3c28cd4](https://github.com/apache/superset/commit/3c28cd4625fdeeaeeac3ed730907af1fb86bc86e))
|
||||
- adding truncate metric control on timeseries charts ([#20373](https://github.com/apache/superset/issues/20373)) ([7c252d7](https://github.com/apache/superset/commit/7c252d75240559d0bba9be3be8419b65b86967df))
|
||||
- adding XAxis to BigNumberTrend ([#21577](https://github.com/apache/superset/issues/21577)) ([f4646f8](https://github.com/apache/superset/commit/f4646f8edba396dba24e6ff4fbc054d073d77fd7))
|
||||
- Adds Histogram chart migration logic ([#28780](https://github.com/apache/superset/issues/28780)) ([df0b1cb](https://github.com/apache/superset/commit/df0b1cb8ed6720f77793036d7fb68548670b3bec))
|
||||
- Adds the ECharts Heatmap chart ([#25353](https://github.com/apache/superset/issues/25353)) ([546d48a](https://github.com/apache/superset/commit/546d48adbb84b1354d6a3d4ae88dbeba0ad14d44))
|
||||
- Adds the ECharts Histogram chart ([#28652](https://github.com/apache/superset/issues/28652)) ([896fe85](https://github.com/apache/superset/commit/896fe854dc3865214325cfceea94824ff41a1b6c))
|
||||
- **advanced analysis:** support MultiIndex column in post processing stage ([#19116](https://github.com/apache/superset/issues/19116)) ([375c03e](https://github.com/apache/superset/commit/375c03e08407570bcf417acf5f3d25b28843329c))
|
||||
- **advanced analytics:** support groupby in resample ([#18045](https://github.com/apache/superset/issues/18045)) ([0c7f728](https://github.com/apache/superset/commit/0c7f7288d8cded5dc73d49d1e0be397e748d4f10))
|
||||
- apply Time Grain to X-Axis column ([#21163](https://github.com/apache/superset/issues/21163)) ([ce3d38d](https://github.com/apache/superset/commit/ce3d38d2e72a56014fa96ee3d4afe066277cc5be))
|
||||
- Axis sort in the Bar Chart V2 ([#21993](https://github.com/apache/superset/issues/21993)) ([22fab5e](https://github.com/apache/superset/commit/22fab5e58ce574e962518067d982e3036449e580))
|
||||
- **chart-controls:** Show detailed data type tooltip when hovering type icon ([#23970](https://github.com/apache/superset/issues/23970)) ([4497601](https://github.com/apache/superset/commit/4497601ebccae71f0164840221852a00288d82ec))
|
||||
- conditional coloring for big number chart ([#23064](https://github.com/apache/superset/issues/23064)) ([61d8a0b](https://github.com/apache/superset/commit/61d8a0bd1206ffc96ea2f9284e4c238241fcca79))
|
||||
- custom d3 number locale ([#20075](https://github.com/apache/superset/issues/20075)) ([a170ae4](https://github.com/apache/superset/commit/a170ae4368298207b5a5c9a698889c865fd73421))
|
||||
- derived metrics use different line style ([#20242](https://github.com/apache/superset/issues/20242)) ([7faf874](https://github.com/apache/superset/commit/7faf874c1b9613258606fb10f5800a185c30c81e))
|
||||
- drop missing columns control ([#20586](https://github.com/apache/superset/issues/20586)) ([309327d](https://github.com/apache/superset/commit/309327dcbdec954283ef6cd03fccf264a830e4a5))
|
||||
- explicit distribute columns on BoxPlot and apply time grain ([#21593](https://github.com/apache/superset/issues/21593)) ([93f08e7](https://github.com/apache/superset/commit/93f08e778bfd48be150749f22d0b184467da73ac))
|
||||
- **explore:** Apply denormalization to tier 2 charts form data ([#20524](https://github.com/apache/superset/issues/20524)) ([e12ee59](https://github.com/apache/superset/commit/e12ee59b13822241dca8d8015f1222c477edd4f3))
|
||||
- **explore:** Dataset panel option tooltips ([#19259](https://github.com/apache/superset/issues/19259)) ([45c28c8](https://github.com/apache/superset/commit/45c28c8046c56d4ebe1dfaf0235783fe864ae75f))
|
||||
- **explore:** Frontend implementation of dataset creation from infobox ([#19855](https://github.com/apache/superset/issues/19855)) ([ba0c37d](https://github.com/apache/superset/commit/ba0c37d3df85b1af39404af1d578daeb0ff2d278))
|
||||
- **explore:** Implement metrics and columns popovers empty states ([#18681](https://github.com/apache/superset/issues/18681)) ([c1205b5](https://github.com/apache/superset/commit/c1205b5279e891af8c3276ee2dd7343623e8cbb3))
|
||||
- **explore:** improve UI in the control panel ([#19748](https://github.com/apache/superset/issues/19748)) ([e3a54aa](https://github.com/apache/superset/commit/e3a54aa3c15bdd0c970aa73f898288a408205c97))
|
||||
- **explore:** SQL popover in datasource panel ([#19308](https://github.com/apache/superset/issues/19308)) ([60dcd65](https://github.com/apache/superset/commit/60dcd651f44b7e1aa1b030e0cd5c64334a346e60))
|
||||
- **explore:** UI changes in dataset panel on Explore page ([#19394](https://github.com/apache/superset/issues/19394)) ([a076ae6](https://github.com/apache/superset/commit/a076ae6d9913a62d353d1cc2d4ed09e27ce9f6e2))
|
||||
- **explore:** UX changes in fast viz switcher ([#20848](https://github.com/apache/superset/issues/20848)) ([5c2c2e8](https://github.com/apache/superset/commit/5c2c2e804064ba674ae18abe5aec495454b7ff21))
|
||||
- **formatters:** Add custom d3-time-format locale ([#24263](https://github.com/apache/superset/issues/24263)) ([024cfd8](https://github.com/apache/superset/commit/024cfd86e408ec5f7ddf49a9e90908e2fb2e6b70))
|
||||
- generate consistent QueryObject whether GenericAxis is enabled or disabled ([#21519](https://github.com/apache/superset/issues/21519)) ([4d12e37](https://github.com/apache/superset/commit/4d12e3709eb7ab1cc4f687c15ed54a4738266482))
|
||||
- **generic-x-axis:** add x sorting on series limit metric ([#23274](https://github.com/apache/superset/issues/23274)) ([1b139d0](https://github.com/apache/superset/commit/1b139d074852e13c113a408a920991b2abc98387))
|
||||
- Implement currencies formatter for saved metrics ([#24517](https://github.com/apache/superset/issues/24517)) ([83ff4cd](https://github.com/apache/superset/commit/83ff4cd86a4931fc8eda83aeb3d8d3c92d773202))
|
||||
- improve color consistency (save all labels) ([#19038](https://github.com/apache/superset/issues/19038)) ([dc57508](https://github.com/apache/superset/commit/dc575080d7e43d40b1734bb8f44fdc291cb95b11))
|
||||
- **legacy-preset-chart-deckgl:** Add ,.1f and ,.2f value formats to deckgl charts ([#18945](https://github.com/apache/superset/issues/18945)) ([c56dc8e](https://github.com/apache/superset/commit/c56dc8eace6a71b45240d1bb6768d75661052a2e))
|
||||
- linear imputation in Resample ([#19393](https://github.com/apache/superset/issues/19393)) ([a39dd44](https://github.com/apache/superset/commit/a39dd4493e8b40cc142451bc71e4d1d4f2705d3f))
|
||||
- Make time shifted series colors match the original series ([#24048](https://github.com/apache/superset/issues/24048)) ([df4d16a](https://github.com/apache/superset/commit/df4d16a7eec3ba06bf1d5e9f016cb0d86b9693e5))
|
||||
- Move cross filters to Dashboard ([#22785](https://github.com/apache/superset/issues/22785)) ([9ed2326](https://github.com/apache/superset/commit/9ed2326a20329d41abc8e0995b0ba6110379088f))
|
||||
- **plugin-chart-echarts:** [feature-parity] support extra control for the area chart V2 ([#16493](https://github.com/apache/superset/issues/16493)) ([eab0009](https://github.com/apache/superset/commit/eab0009101a295acf4d8d31df8a57f8fe0deb517))
|
||||
- **plugin-chart-echarts:** able to sort bar on the bar chart V2 ([#21356](https://github.com/apache/superset/issues/21356)) ([59437ea](https://github.com/apache/superset/commit/59437ea6e7ec02267c6e03e174be39a6cae48893))
|
||||
- **plugin-chart-echarts:** add support for generic axis to mixed chart ([#20097](https://github.com/apache/superset/issues/20097)) ([d5c5e58](https://github.com/apache/superset/commit/d5c5e58583771a35d8870ce3694b2a3f1b688159))
|
||||
- **plugin-chart-echarts:** add x-axis sort to multi series ([#23644](https://github.com/apache/superset/issues/23644)) ([f49702f](https://github.com/apache/superset/commit/f49702feffb3b08476c22916e185c0ce2c64e7f1))
|
||||
- **plugin-chart-echarts:** support horizontal bar chart ([#19918](https://github.com/apache/superset/issues/19918)) ([9854d2d](https://github.com/apache/superset/commit/9854d2d0e8f849366b264353819c6fdf4b0d804d))
|
||||
- **plugin-chart-echarts:** support non-timeseries x-axis ([#17917](https://github.com/apache/superset/issues/17917)) ([e9651ea](https://github.com/apache/superset/commit/e9651ea52fdc0edb574bfb9dc1b22c225bcc068f)), closes [#18021](https://github.com/apache/superset/issues/18021) [#18039](https://github.com/apache/superset/issues/18039) [#17569](https://github.com/apache/superset/issues/17569) [#18037](https://github.com/apache/superset/issues/18037)
|
||||
- **plugins:** Tooltips on BigNumber with Time Comparison chart ([#27092](https://github.com/apache/superset/issues/27092)) ([13f1642](https://github.com/apache/superset/commit/13f1642c73920792c3c5671ec295cc859aa0856f))
|
||||
- **select:** keep options order when in single mode ([#19085](https://github.com/apache/superset/issues/19085)) ([ae13d83](https://github.com/apache/superset/commit/ae13d8313b5687374f5b24e02bccdcc717ba19eb))
|
||||
- smart tooltip in datasourcepanel ([#18080](https://github.com/apache/superset/issues/18080)) ([aa21a96](https://github.com/apache/superset/commit/aa21a963a6137a1d29ad422c6d7bf79839bc7078))
|
||||
- **standardized form data:** keep all columns and metrics ([#20377](https://github.com/apache/superset/issues/20377)) ([bbbe102](https://github.com/apache/superset/commit/bbbe102887a524b1ee0ffd4ada8481078dbe5496))
|
||||
- standardized form_data ([#20010](https://github.com/apache/superset/issues/20010)) ([dd4b581](https://github.com/apache/superset/commit/dd4b581fb55d920fc3b709fc044cea5339802ee2))
|
||||
- **storybook:** Co-habitating/Upgrading Storybooks to v7 (dependency madness ensues) ([#26907](https://github.com/apache/superset/issues/26907)) ([753ef69](https://github.com/apache/superset/commit/753ef695294ce26238b68ff41ba0a9af6aea74de))
|
||||
- support mulitple temporal filters in AdhocFilter and move the Time Section away ([#21767](https://github.com/apache/superset/issues/21767)) ([a9b229d](https://github.com/apache/superset/commit/a9b229dd1dd9cb9dc8166b1392179fcccb4da138))
|
||||
- support multiple time columns with time grain in Pivot Table v2 ([#21537](https://github.com/apache/superset/issues/21537)) ([e671d80](https://github.com/apache/superset/commit/e671d8020982111e117e7415dee41672cc32d780))
|
||||
- **table:** Table with Time Comparison ([#28057](https://github.com/apache/superset/issues/28057)) ([7ddea62](https://github.com/apache/superset/commit/7ddea62331617dad1b8ade1abe7dd8c11a1ba20d))
|
||||
- **time_comparison:** Support all date formats when computing custom and inherit offsets ([#30002](https://github.com/apache/superset/issues/30002)) ([bc6d2db](https://github.com/apache/superset/commit/bc6d2dba373e59a498d942909ab6631e5c8521e9))
|
||||
- truncate long values in table viz, a per-column setting ([#19383](https://github.com/apache/superset/issues/19383)) ([7e504ff](https://github.com/apache/superset/commit/7e504ff680698106cf9008b4c2814b01fcac90bb))
|
||||
- update time comparison choices (again) ([#17968](https://github.com/apache/superset/issues/17968)) ([05d9cde](https://github.com/apache/superset/commit/05d9cde203b99f8c63106446f0be58668cc9f0c9))
|
||||
- update time comparison choices (again) ([#22458](https://github.com/apache/superset/issues/22458)) ([9e81c3a](https://github.com/apache/superset/commit/9e81c3a1192a18226d505178d16e1e395917a719))
|
||||
- **world-map:** support color by metric or country column ([#19881](https://github.com/apache/superset/issues/19881)) ([766f737](https://github.com/apache/superset/commit/766f737728c273d39a35dfa281e874a0efeabec3))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
- Lazy load React Ace ([#29796](https://github.com/apache/superset/issues/29796)) ([d143b24](https://github.com/apache/superset/commit/d143b24232a9542a012283ec79726b7a407d6033))
|
||||
- **plugin-chart-table:** Add memoization to avoid rerenders ([#19976](https://github.com/apache/superset/issues/19976)) ([0f68dee](https://github.com/apache/superset/commit/0f68deedf105300c8bd2536bd205d128799c0381))
|
||||
- Remove antd-with-locales import ([#29788](https://github.com/apache/superset/issues/29788)) ([f1136b5](https://github.com/apache/superset/commit/f1136b57dd6b4cbcb7628dcbf6b1ac46e2a8301b))
|
||||
|
||||
# [0.19.0](https://github.com/apache/superset/compare/v2021.41.0...v0.19.0) (2024-09-07)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Adaptive formatting spelling ([#19359](https://github.com/apache/superset/issues/19359)) ([dc769a9](https://github.com/apache/superset/commit/dc769a9a34e9b6417447ee490ecd203ace0941d9))
|
||||
- Address regression in main_dttm_col for non-dnd ([#20712](https://github.com/apache/superset/issues/20712)) ([a6abcd9](https://github.com/apache/superset/commit/a6abcd9ea8fac4a477b824adb367b4b5206a5d27))
|
||||
- Alpha should not be able to edit datasets that they don't own ([#19854](https://github.com/apache/superset/issues/19854)) ([8b15b68](https://github.com/apache/superset/commit/8b15b68979bf033979fe7014ef2730095ae85120))
|
||||
- annotation broken ([#20651](https://github.com/apache/superset/issues/20651)) ([7f918a4](https://github.com/apache/superset/commit/7f918a4ec0e162be13bf3fc0e2f15aaaa5450cec))
|
||||
- BigQuery cannot accept Time Grain ([#21489](https://github.com/apache/superset/issues/21489)) ([33509ab](https://github.com/apache/superset/commit/33509ab7da384144d42d67dd8c6233b1be9c9fa0))
|
||||
- Cannot re-order metrics by drag and drop ([#19876](https://github.com/apache/superset/issues/19876)) ([e4fca89](https://github.com/apache/superset/commit/e4fca89217fc52a31053470f1b4c91a56ed3f4e9))
|
||||
- Chart crashing if timeseries_limit_metric is an empty array ([#23480](https://github.com/apache/superset/issues/23480)) ([4530542](https://github.com/apache/superset/commit/4530542ac4d36adc3379564e16ea655ce4bf17e5))
|
||||
- **chart-controls:** Error if x_axis_sort and timeseries_limit_metric are included in main metrics ([#23365](https://github.com/apache/superset/issues/23365)) ([63513a5](https://github.com/apache/superset/commit/63513a5873460ee508c71b504d5e1cfb5f42bbb8))
|
||||
- **chart:** Set max row limit + removed the option to use an empty row limit value ([#26151](https://github.com/apache/superset/issues/26151)) ([863f8bb](https://github.com/apache/superset/commit/863f8bbbcdd078814973d444368c12e06ad0c0c0))
|
||||
- **Charts:** Set max row limit + removed the option to use an empty row limit value ([#25579](https://github.com/apache/superset/issues/25579)) ([f556ef5](https://github.com/apache/superset/commit/f556ef53f3177746ec2526b4b963da4ef00c2d58))
|
||||
- column/metric type icons look too small ([#24740](https://github.com/apache/superset/issues/24740)) ([341b8d4](https://github.com/apache/superset/commit/341b8d41c5ba15c3617a61a92779b670c4ece43d))
|
||||
- Contribution percentages for ECharts plugins ([#28368](https://github.com/apache/superset/issues/28368)) ([55f3b46](https://github.com/apache/superset/commit/55f3b46f4105e5bbdd0b025a4b61bc843d8e5b9e))
|
||||
- custom SQL in the XAxis ([#21847](https://github.com/apache/superset/issues/21847)) ([0a4ecca](https://github.com/apache/superset/commit/0a4ecca9f259e2ee9cff27a879f2a889f876c7d7))
|
||||
- drop the first level of MultiIndex ([#19716](https://github.com/apache/superset/issues/19716)) ([9425dd2](https://github.com/apache/superset/commit/9425dd2cac42f1a92f621848c469cadcc483e757))
|
||||
- **explore comma:** make that the comma can be added by removing it from token separators… ([#18926](https://github.com/apache/superset/issues/18926)) ([e7355b9](https://github.com/apache/superset/commit/e7355b9610d1371d1d3fca51c17d1999ca3ecef3))
|
||||
- **explore:** Adhoc columns don't display correctly ([#20802](https://github.com/apache/superset/issues/20802)) ([af1bddf](https://github.com/apache/superset/commit/af1bddffad930efc0583b638716980db6747bfbc))
|
||||
- **explore:** allow free-form d3 format on custom column formatting ([#27023](https://github.com/apache/superset/issues/27023)) ([fd06ff3](https://github.com/apache/superset/commit/fd06ff3745b0ce96ef2506e18b6d5f27d3eee045))
|
||||
- **explore:** Change copy of cross filters checkbox ([#19646](https://github.com/apache/superset/issues/19646)) ([4a5dddf](https://github.com/apache/superset/commit/4a5dddf52d8191b002fa11add6baaee26bc3b1a7))
|
||||
- **explore:** clean data when hidding control ([#19039](https://github.com/apache/superset/issues/19039)) ([0e29871](https://github.com/apache/superset/commit/0e29871493171b6a70f974d26f41b6797e5b5d5c))
|
||||
- **explore:** Fix generic X-axis time grain disappearing ([#21484](https://github.com/apache/superset/issues/21484)) ([324e997](https://github.com/apache/superset/commit/324e9979fa968b07d0be2628cac9119c492dc9b6))
|
||||
- **explore:** hide advanced analytics for non temporal xaxis ([#28312](https://github.com/apache/superset/issues/28312)) ([07cd1d8](https://github.com/apache/superset/commit/07cd1d89d0c57b2987e1d9aeb23c2aad518a3dc2))
|
||||
- **explore:** Prevent shared controls from checking feature flags outside React render ([#21315](https://github.com/apache/superset/issues/21315)) ([2285ebe](https://github.com/apache/superset/commit/2285ebe72ec4edded6d195052740b7f9f13d1f1b))
|
||||
- **explore:** support saving undefined time grain ([#22565](https://github.com/apache/superset/issues/22565)) ([a7a4561](https://github.com/apache/superset/commit/a7a4561550e06bad11ef6d5a50af1ae1af173790))
|
||||
- **explore:** temporal column mixin ([#28241](https://github.com/apache/superset/issues/28241)) ([743c0bd](https://github.com/apache/superset/commit/743c0bde7edbda11c8f9755b061e45766aa3d401))
|
||||
- **generic-x-axis:** skip initial time filter for legacy charts ([#23506](https://github.com/apache/superset/issues/23506)) ([8db5cb1](https://github.com/apache/superset/commit/8db5cb18c01ee8c9ee1fb3dc60c3af32682c47f7))
|
||||
- hide time_grain when x_axis value is undefined ([#21464](https://github.com/apache/superset/issues/21464)) ([ae6d2cf](https://github.com/apache/superset/commit/ae6d2cf18dbf0fec78e577b0cad1881940796b50))
|
||||
- **legacy-charts:** Show Time Grain control for legacy charts ([#26705](https://github.com/apache/superset/issues/26705)) ([3ed70d8](https://github.com/apache/superset/commit/3ed70d8f53c229682027df3efa7815ca12bd1328))
|
||||
- local warning in the frontend development ([#17727](https://github.com/apache/superset/issues/17727)) ([142b5bc](https://github.com/apache/superset/commit/142b5bc506c81847e503e76e498c06e8321dffb1))
|
||||
- Metric is truncated in tooltip ([#24555](https://github.com/apache/superset/issues/24555)) ([5bdb774](https://github.com/apache/superset/commit/5bdb7745040e826dc36c6742f05952d69530ee0d))
|
||||
- number format should editable when AA in time comparison ([#19351](https://github.com/apache/superset/issues/19351)) ([e15573d](https://github.com/apache/superset/commit/e15573d4453f8432e2da1db86f2e9417666fb8b5))
|
||||
- Pivot Table Conditional Formatting Doesn't Show All Options ([#19071](https://github.com/apache/superset/issues/19071)) ([0e0bece](https://github.com/apache/superset/commit/0e0beceac173f765d8f9a0887732029b78603f6d))
|
||||
- **plugin-chart-echarts:** [feature-parity] apply button of annotation layer doesn't work as expected ([#19761](https://github.com/apache/superset/issues/19761)) ([9f02ff6](https://github.com/apache/superset/commit/9f02ff656d63e537c06822657dcfc2ff46f70e67))
|
||||
- **plugin-chart-echarts:** Apply temporary filters to Query B in explore ([#18998](https://github.com/apache/superset/issues/18998)) ([9f834e8](https://github.com/apache/superset/commit/9f834e8317dca7c71470c89e2c86bb35ca7ca39f))
|
||||
- **plugin-chart-echarts:** boxplot throw error in the dashboard ([#21661](https://github.com/apache/superset/issues/21661)) ([61bd696](https://github.com/apache/superset/commit/61bd6962265d879e168f208854fc17b145b9e04d))
|
||||
- **plugin-chart-echarts:** fix forecasts on verbose metrics ([#18252](https://github.com/apache/superset/issues/18252)) ([2929bb1](https://github.com/apache/superset/commit/2929bb1680d29e5fd1d3b351e3e2f86971a60b44))
|
||||
- **plugin-chart-echarts:** reorder totals and support multimetric sort ([#23675](https://github.com/apache/superset/issues/23675)) ([cbbcc8d](https://github.com/apache/superset/commit/cbbcc8d2e136f949778cda56affb981c2db05880))
|
||||
- **plugin-chart-echarts:** support adhoc x-axis ([#20055](https://github.com/apache/superset/issues/20055)) ([b53daa9](https://github.com/apache/superset/commit/b53daa91ecf0e82fe219b498e907d0c3f3ca9ccb))
|
||||
- **plugin-chart-echarts:** support forced categorical x-axis ([#26404](https://github.com/apache/superset/issues/26404)) ([219c4a1](https://github.com/apache/superset/commit/219c4a14b359b77dbfcda74e66b7d06c3792b861))
|
||||
- **plugin-chart-pivot-table:** color weight of Conditional formatting metrics not work ([#20396](https://github.com/apache/superset/issues/20396)) ([1665403](https://github.com/apache/superset/commit/16654034849505109b638fd2a784dfb377238a0e))
|
||||
- resample method shouldn't be freeform ([#21135](https://github.com/apache/superset/issues/21135)) ([fea68ef](https://github.com/apache/superset/commit/fea68ef23cd19853f6ceee42802ac3b4b1b05da0))
|
||||
- Respecting max/min opacities, and adding tests. ([#20555](https://github.com/apache/superset/issues/20555)) ([ac8e502](https://github.com/apache/superset/commit/ac8e502228d1b247c1b56ee692c2cefade1bf1a9))
|
||||
- Revert "fix(Charts): Set max row limit + removed the option to use an empty row limit value" ([#25753](https://github.com/apache/superset/issues/25753)) ([e2fe967](https://github.com/apache/superset/commit/e2fe96778887d203a852cf09def151ff024cfaf7))
|
||||
- revert [#21356](https://github.com/apache/superset/issues/21356)(able to sort bar on the bar chart V2) ([#21481](https://github.com/apache/superset/issues/21481)) ([1c0bff3](https://github.com/apache/superset/commit/1c0bff3dfb3649d219abe6a13d9018ded14f334f))
|
||||
- Revert shared controls typing change. ([#22014](https://github.com/apache/superset/issues/22014)) ([4cbd70d](https://github.com/apache/superset/commit/4cbd70db34b140a026ef1a86a8ef0ba3355a350e))
|
||||
- Reverts [#20749](https://github.com/apache/superset/issues/20749) and [#20645](https://github.com/apache/superset/issues/20645) ([#20796](https://github.com/apache/superset/issues/20796)) ([3311128](https://github.com/apache/superset/commit/3311128c5e6c5de2ea5d6a2dfeb01ea3179e9af8))
|
||||
- Row limit hardcoded ([#26807](https://github.com/apache/superset/issues/26807)) ([5e633d2](https://github.com/apache/superset/commit/5e633d2bb0909f1cb4904c07e29a2c683f02131c))
|
||||
- save columns reference from sqllab save datasets flow ([#24248](https://github.com/apache/superset/issues/24248)) ([93e1db4](https://github.com/apache/superset/commit/93e1db4bd9d045b8a9b345733a60139cb213ab86))
|
||||
- **select:** make to consider the case sensitive in case of d3 format selector ([#19159](https://github.com/apache/superset/issues/19159)) ([d099f5e](https://github.com/apache/superset/commit/d099f5ed4ad6f5b553c7e3eedbc34cf5ad55eae7))
|
||||
- **select:** select component sort functionality on certain options ([#17638](https://github.com/apache/superset/issues/17638)) ([f476ba2](https://github.com/apache/superset/commit/f476ba23a279cb87a94ad3075e035cad0ae264b6))
|
||||
- should be able to remove selection from X-AXIS control ([#21371](https://github.com/apache/superset/issues/21371)) ([eb4ba5b](https://github.com/apache/superset/commit/eb4ba5b08975df2124057c25d3732ef68a0e880a))
|
||||
- superset-ui/core codes coverage ([#20324](https://github.com/apache/superset/issues/20324)) ([d04357c](https://github.com/apache/superset/commit/d04357c47bec7bac49c602f3d2166375892200ad))
|
||||
- Table time comparison breaking after form data update ([#29525](https://github.com/apache/superset/issues/29525)) ([3d06651](https://github.com/apache/superset/commit/3d0665183cac3d60b492c680774c197ea64d25e7))
|
||||
- time grain can't be removed in explore ([#21644](https://github.com/apache/superset/issues/21644)) ([4c17f0e](https://github.com/apache/superset/commit/4c17f0e71e05caa55410edb2317e084c52a25440))
|
||||
- Time shifts calculation for ECharts plugins ([#28432](https://github.com/apache/superset/issues/28432)) ([821c7d7](https://github.com/apache/superset/commit/821c7d7f2c430c4a4294883a66128ba98fd949c5))
|
||||
- X Axis should be called Y Axis when using the Bar Chart V2 on Horizontal mode ([#20659](https://github.com/apache/superset/issues/20659)) ([c29261b](https://github.com/apache/superset/commit/c29261b63dee723f108b3404e29a498ecf8421f8))
|
||||
|
||||
### Features
|
||||
|
||||
- add Advanced Analytics into mixed time series chart ([#19851](https://github.com/apache/superset/issues/19851)) ([f5e9f0e](https://github.com/apache/superset/commit/f5e9f0eb3b2045a9d441f59cb3a6109892e6aea9))
|
||||
- Add currencies controls in control panels ([#24718](https://github.com/apache/superset/issues/24718)) ([f7e76d0](https://github.com/apache/superset/commit/f7e76d02b7cbe4940946673590bb979984ace9f5))
|
||||
- add renameOperator ([#19776](https://github.com/apache/superset/issues/19776)) ([3c28cd4](https://github.com/apache/superset/commit/3c28cd4625fdeeaeeac3ed730907af1fb86bc86e))
|
||||
- adding truncate metric control on timeseries charts ([#20373](https://github.com/apache/superset/issues/20373)) ([7c252d7](https://github.com/apache/superset/commit/7c252d75240559d0bba9be3be8419b65b86967df))
|
||||
- adding XAxis to BigNumberTrend ([#21577](https://github.com/apache/superset/issues/21577)) ([f4646f8](https://github.com/apache/superset/commit/f4646f8edba396dba24e6ff4fbc054d073d77fd7))
|
||||
- Adds Histogram chart migration logic ([#28780](https://github.com/apache/superset/issues/28780)) ([df0b1cb](https://github.com/apache/superset/commit/df0b1cb8ed6720f77793036d7fb68548670b3bec))
|
||||
- Adds the ECharts Heatmap chart ([#25353](https://github.com/apache/superset/issues/25353)) ([546d48a](https://github.com/apache/superset/commit/546d48adbb84b1354d6a3d4ae88dbeba0ad14d44))
|
||||
- Adds the ECharts Histogram chart ([#28652](https://github.com/apache/superset/issues/28652)) ([896fe85](https://github.com/apache/superset/commit/896fe854dc3865214325cfceea94824ff41a1b6c))
|
||||
- **advanced analysis:** support MultiIndex column in post processing stage ([#19116](https://github.com/apache/superset/issues/19116)) ([375c03e](https://github.com/apache/superset/commit/375c03e08407570bcf417acf5f3d25b28843329c))
|
||||
- **advanced analytics:** support groupby in resample ([#18045](https://github.com/apache/superset/issues/18045)) ([0c7f728](https://github.com/apache/superset/commit/0c7f7288d8cded5dc73d49d1e0be397e748d4f10))
|
||||
- apply Time Grain to X-Axis column ([#21163](https://github.com/apache/superset/issues/21163)) ([ce3d38d](https://github.com/apache/superset/commit/ce3d38d2e72a56014fa96ee3d4afe066277cc5be))
|
||||
- Axis sort in the Bar Chart V2 ([#21993](https://github.com/apache/superset/issues/21993)) ([22fab5e](https://github.com/apache/superset/commit/22fab5e58ce574e962518067d982e3036449e580))
|
||||
- **chart-controls:** Show detailed data type tooltip when hovering type icon ([#23970](https://github.com/apache/superset/issues/23970)) ([4497601](https://github.com/apache/superset/commit/4497601ebccae71f0164840221852a00288d82ec))
|
||||
- conditional coloring for big number chart ([#23064](https://github.com/apache/superset/issues/23064)) ([61d8a0b](https://github.com/apache/superset/commit/61d8a0bd1206ffc96ea2f9284e4c238241fcca79))
|
||||
- custom d3 number locale ([#20075](https://github.com/apache/superset/issues/20075)) ([a170ae4](https://github.com/apache/superset/commit/a170ae4368298207b5a5c9a698889c865fd73421))
|
||||
- derived metrics use different line style ([#20242](https://github.com/apache/superset/issues/20242)) ([7faf874](https://github.com/apache/superset/commit/7faf874c1b9613258606fb10f5800a185c30c81e))
|
||||
- drop missing columns control ([#20586](https://github.com/apache/superset/issues/20586)) ([309327d](https://github.com/apache/superset/commit/309327dcbdec954283ef6cd03fccf264a830e4a5))
|
||||
- explicit distribute columns on BoxPlot and apply time grain ([#21593](https://github.com/apache/superset/issues/21593)) ([93f08e7](https://github.com/apache/superset/commit/93f08e778bfd48be150749f22d0b184467da73ac))
|
||||
- **explore:** Apply denormalization to tier 2 charts form data ([#20524](https://github.com/apache/superset/issues/20524)) ([e12ee59](https://github.com/apache/superset/commit/e12ee59b13822241dca8d8015f1222c477edd4f3))
|
||||
- **explore:** Dataset panel option tooltips ([#19259](https://github.com/apache/superset/issues/19259)) ([45c28c8](https://github.com/apache/superset/commit/45c28c8046c56d4ebe1dfaf0235783fe864ae75f))
|
||||
- **explore:** Frontend implementation of dataset creation from infobox ([#19855](https://github.com/apache/superset/issues/19855)) ([ba0c37d](https://github.com/apache/superset/commit/ba0c37d3df85b1af39404af1d578daeb0ff2d278))
|
||||
- **explore:** Implement metrics and columns popovers empty states ([#18681](https://github.com/apache/superset/issues/18681)) ([c1205b5](https://github.com/apache/superset/commit/c1205b5279e891af8c3276ee2dd7343623e8cbb3))
|
||||
- **explore:** improve UI in the control panel ([#19748](https://github.com/apache/superset/issues/19748)) ([e3a54aa](https://github.com/apache/superset/commit/e3a54aa3c15bdd0c970aa73f898288a408205c97))
|
||||
- **explore:** SQL popover in datasource panel ([#19308](https://github.com/apache/superset/issues/19308)) ([60dcd65](https://github.com/apache/superset/commit/60dcd651f44b7e1aa1b030e0cd5c64334a346e60))
|
||||
- **explore:** UI changes in dataset panel on Explore page ([#19394](https://github.com/apache/superset/issues/19394)) ([a076ae6](https://github.com/apache/superset/commit/a076ae6d9913a62d353d1cc2d4ed09e27ce9f6e2))
|
||||
- **explore:** UX changes in fast viz switcher ([#20848](https://github.com/apache/superset/issues/20848)) ([5c2c2e8](https://github.com/apache/superset/commit/5c2c2e804064ba674ae18abe5aec495454b7ff21))
|
||||
- **formatters:** Add custom d3-time-format locale ([#24263](https://github.com/apache/superset/issues/24263)) ([024cfd8](https://github.com/apache/superset/commit/024cfd86e408ec5f7ddf49a9e90908e2fb2e6b70))
|
||||
- generate consistent QueryObject whether GenericAxis is enabled or disabled ([#21519](https://github.com/apache/superset/issues/21519)) ([4d12e37](https://github.com/apache/superset/commit/4d12e3709eb7ab1cc4f687c15ed54a4738266482))
|
||||
- **generic-x-axis:** add x sorting on series limit metric ([#23274](https://github.com/apache/superset/issues/23274)) ([1b139d0](https://github.com/apache/superset/commit/1b139d074852e13c113a408a920991b2abc98387))
|
||||
- Implement currencies formatter for saved metrics ([#24517](https://github.com/apache/superset/issues/24517)) ([83ff4cd](https://github.com/apache/superset/commit/83ff4cd86a4931fc8eda83aeb3d8d3c92d773202))
|
||||
- improve color consistency (save all labels) ([#19038](https://github.com/apache/superset/issues/19038)) ([dc57508](https://github.com/apache/superset/commit/dc575080d7e43d40b1734bb8f44fdc291cb95b11))
|
||||
- **legacy-preset-chart-deckgl:** Add ,.1f and ,.2f value formats to deckgl charts ([#18945](https://github.com/apache/superset/issues/18945)) ([c56dc8e](https://github.com/apache/superset/commit/c56dc8eace6a71b45240d1bb6768d75661052a2e))
|
||||
- linear imputation in Resample ([#19393](https://github.com/apache/superset/issues/19393)) ([a39dd44](https://github.com/apache/superset/commit/a39dd4493e8b40cc142451bc71e4d1d4f2705d3f))
|
||||
- Make time shifted series colors match the original series ([#24048](https://github.com/apache/superset/issues/24048)) ([df4d16a](https://github.com/apache/superset/commit/df4d16a7eec3ba06bf1d5e9f016cb0d86b9693e5))
|
||||
- Move cross filters to Dashboard ([#22785](https://github.com/apache/superset/issues/22785)) ([9ed2326](https://github.com/apache/superset/commit/9ed2326a20329d41abc8e0995b0ba6110379088f))
|
||||
- **plugin-chart-echarts:** [feature-parity] support extra control for the area chart V2 ([#16493](https://github.com/apache/superset/issues/16493)) ([eab0009](https://github.com/apache/superset/commit/eab0009101a295acf4d8d31df8a57f8fe0deb517))
|
||||
- **plugin-chart-echarts:** able to sort bar on the bar chart V2 ([#21356](https://github.com/apache/superset/issues/21356)) ([59437ea](https://github.com/apache/superset/commit/59437ea6e7ec02267c6e03e174be39a6cae48893))
|
||||
- **plugin-chart-echarts:** add support for generic axis to mixed chart ([#20097](https://github.com/apache/superset/issues/20097)) ([d5c5e58](https://github.com/apache/superset/commit/d5c5e58583771a35d8870ce3694b2a3f1b688159))
|
||||
- **plugin-chart-echarts:** add x-axis sort to multi series ([#23644](https://github.com/apache/superset/issues/23644)) ([f49702f](https://github.com/apache/superset/commit/f49702feffb3b08476c22916e185c0ce2c64e7f1))
|
||||
- **plugin-chart-echarts:** support horizontal bar chart ([#19918](https://github.com/apache/superset/issues/19918)) ([9854d2d](https://github.com/apache/superset/commit/9854d2d0e8f849366b264353819c6fdf4b0d804d))
|
||||
- **plugin-chart-echarts:** support non-timeseries x-axis ([#17917](https://github.com/apache/superset/issues/17917)) ([e9651ea](https://github.com/apache/superset/commit/e9651ea52fdc0edb574bfb9dc1b22c225bcc068f)), closes [#18021](https://github.com/apache/superset/issues/18021) [#18039](https://github.com/apache/superset/issues/18039) [#17569](https://github.com/apache/superset/issues/17569) [#18037](https://github.com/apache/superset/issues/18037)
|
||||
- **plugins:** Tooltips on BigNumber with Time Comparison chart ([#27092](https://github.com/apache/superset/issues/27092)) ([13f1642](https://github.com/apache/superset/commit/13f1642c73920792c3c5671ec295cc859aa0856f))
|
||||
- **select:** keep options order when in single mode ([#19085](https://github.com/apache/superset/issues/19085)) ([ae13d83](https://github.com/apache/superset/commit/ae13d8313b5687374f5b24e02bccdcc717ba19eb))
|
||||
- smart tooltip in datasourcepanel ([#18080](https://github.com/apache/superset/issues/18080)) ([aa21a96](https://github.com/apache/superset/commit/aa21a963a6137a1d29ad422c6d7bf79839bc7078))
|
||||
- **standardized form data:** keep all columns and metrics ([#20377](https://github.com/apache/superset/issues/20377)) ([bbbe102](https://github.com/apache/superset/commit/bbbe102887a524b1ee0ffd4ada8481078dbe5496))
|
||||
- standardized form_data ([#20010](https://github.com/apache/superset/issues/20010)) ([dd4b581](https://github.com/apache/superset/commit/dd4b581fb55d920fc3b709fc044cea5339802ee2))
|
||||
- **storybook:** Co-habitating/Upgrading Storybooks to v7 (dependency madness ensues) ([#26907](https://github.com/apache/superset/issues/26907)) ([753ef69](https://github.com/apache/superset/commit/753ef695294ce26238b68ff41ba0a9af6aea74de))
|
||||
- support mulitple temporal filters in AdhocFilter and move the Time Section away ([#21767](https://github.com/apache/superset/issues/21767)) ([a9b229d](https://github.com/apache/superset/commit/a9b229dd1dd9cb9dc8166b1392179fcccb4da138))
|
||||
- support multiple time columns with time grain in Pivot Table v2 ([#21537](https://github.com/apache/superset/issues/21537)) ([e671d80](https://github.com/apache/superset/commit/e671d8020982111e117e7415dee41672cc32d780))
|
||||
- **table:** Table with Time Comparison ([#28057](https://github.com/apache/superset/issues/28057)) ([7ddea62](https://github.com/apache/superset/commit/7ddea62331617dad1b8ade1abe7dd8c11a1ba20d))
|
||||
- **time_comparison:** Support all date formats when computing custom and inherit offsets ([#30002](https://github.com/apache/superset/issues/30002)) ([bc6d2db](https://github.com/apache/superset/commit/bc6d2dba373e59a498d942909ab6631e5c8521e9))
|
||||
- truncate long values in table viz, a per-column setting ([#19383](https://github.com/apache/superset/issues/19383)) ([7e504ff](https://github.com/apache/superset/commit/7e504ff680698106cf9008b4c2814b01fcac90bb))
|
||||
- update time comparison choices (again) ([#17968](https://github.com/apache/superset/issues/17968)) ([05d9cde](https://github.com/apache/superset/commit/05d9cde203b99f8c63106446f0be58668cc9f0c9))
|
||||
- update time comparison choices (again) ([#22458](https://github.com/apache/superset/issues/22458)) ([9e81c3a](https://github.com/apache/superset/commit/9e81c3a1192a18226d505178d16e1e395917a719))
|
||||
- **world-map:** support color by metric or country column ([#19881](https://github.com/apache/superset/issues/19881)) ([766f737](https://github.com/apache/superset/commit/766f737728c273d39a35dfa281e874a0efeabec3))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
- Lazy load React Ace ([#29796](https://github.com/apache/superset/issues/29796)) ([d143b24](https://github.com/apache/superset/commit/d143b24232a9542a012283ec79726b7a407d6033))
|
||||
- **plugin-chart-table:** Add memoization to avoid rerenders ([#19976](https://github.com/apache/superset/issues/19976)) ([0f68dee](https://github.com/apache/superset/commit/0f68deedf105300c8bd2536bd205d128799c0381))
|
||||
- Remove antd-with-locales import ([#29788](https://github.com/apache/superset/issues/29788)) ([f1136b5](https://github.com/apache/superset/commit/f1136b57dd6b4cbcb7628dcbf6b1ac46e2a8301b))
|
||||
|
||||
# [0.18.0](https://github.com/apache-superset/superset-ui/compare/v0.17.87...v0.18.0) (2021-08-30)
|
||||
|
||||
### Features
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@superset-ui/chart-controls",
|
||||
"version": "0.18.25",
|
||||
"version": "0.20.3",
|
||||
"description": "Superset UI control-utils",
|
||||
"keywords": [
|
||||
"superset"
|
||||
|
||||
@@ -18,9 +18,8 @@
|
||||
*/
|
||||
import { CSSProperties } from 'react';
|
||||
import { kebabCase } from 'lodash';
|
||||
import { TooltipPlacement } from 'antd/lib/tooltip';
|
||||
import { t } from '@superset-ui/core';
|
||||
import { Tooltip, TooltipProps } from './Tooltip';
|
||||
import { Tooltip, TooltipProps, TooltipPlacement } from './Tooltip';
|
||||
|
||||
export interface InfoTooltipWithTriggerProps {
|
||||
label?: string;
|
||||
|
||||
@@ -17,48 +17,41 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { useTheme, css } from '@superset-ui/core';
|
||||
import { Tooltip as BaseTooltip } from 'antd';
|
||||
import type { TooltipProps } from 'antd/lib/tooltip';
|
||||
import { Global } from '@emotion/react';
|
||||
import { useTheme } from '@superset-ui/core';
|
||||
import { Tooltip as BaseTooltip } from 'antd-v5';
|
||||
import {
|
||||
TooltipProps as BaseTooltipProps,
|
||||
TooltipPlacement as BaseTooltipPlacement,
|
||||
} from 'antd-v5/lib/tooltip';
|
||||
|
||||
export type { TooltipProps } from 'antd/lib/tooltip';
|
||||
export type TooltipProps = BaseTooltipProps;
|
||||
export type TooltipPlacement = BaseTooltipPlacement;
|
||||
|
||||
export const Tooltip = ({ overlayStyle, color, ...props }: TooltipProps) => {
|
||||
export const Tooltip = ({
|
||||
overlayStyle,
|
||||
color,
|
||||
...props
|
||||
}: BaseTooltipProps) => {
|
||||
const theme = useTheme();
|
||||
const defaultColor = `${theme.colors.grayscale.dark2}e6`;
|
||||
return (
|
||||
<>
|
||||
{/* Safari hack to hide browser default tooltips */}
|
||||
<Global
|
||||
styles={css`
|
||||
.ant-tooltip-open {
|
||||
display: inline-block;
|
||||
&::after {
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
`}
|
||||
/>
|
||||
<BaseTooltip
|
||||
overlayStyle={{
|
||||
fontSize: theme.typography.sizes.s,
|
||||
lineHeight: '1.6',
|
||||
maxWidth: theme.gridUnit * 62,
|
||||
minWidth: theme.gridUnit * 30,
|
||||
...overlayStyle,
|
||||
}}
|
||||
// make the tooltip display closer to the label
|
||||
align={{ offset: [0, 1] }}
|
||||
color={defaultColor || color}
|
||||
trigger="hover"
|
||||
placement="bottom"
|
||||
// don't allow hovering over the tooltip
|
||||
mouseLeaveDelay={0}
|
||||
{...props}
|
||||
/>
|
||||
</>
|
||||
<BaseTooltip
|
||||
overlayStyle={{
|
||||
fontSize: theme.typography.sizes.s,
|
||||
lineHeight: '1.6',
|
||||
maxWidth: theme.gridUnit * 62,
|
||||
minWidth: theme.gridUnit * 30,
|
||||
...overlayStyle,
|
||||
}}
|
||||
// make the tooltip display closer to the label
|
||||
align={{ offset: [0, 1] }}
|
||||
color={defaultColor || color}
|
||||
trigger="hover"
|
||||
placement="bottom"
|
||||
// don't allow hovering over the tooltip
|
||||
mouseLeaveDelay={0}
|
||||
{...props}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -262,6 +262,7 @@ export interface BaseControlConfig<
|
||||
props: ControlPanelsContainerProps,
|
||||
controlData: AnyDict,
|
||||
) => boolean;
|
||||
disableStash?: boolean;
|
||||
hidden?:
|
||||
| boolean
|
||||
| ((props: ControlPanelsContainerProps, controlData: AnyDict) => boolean);
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import { QueryObject, SqlaFormData, VizType } from '@superset-ui/core';
|
||||
import { boxplotOperator } from '@superset-ui/chart-controls';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -27,7 +27,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
time_grain_sqla: 'P1Y',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
metrics: [
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import { QueryObject, SqlaFormData, VizType } from '@superset-ui/core';
|
||||
import { contributionOperator } from '@superset-ui/chart-controls';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -27,7 +27,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
granularity: 'month',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
metrics: [
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import { QueryObject, SqlaFormData, VizType } from '@superset-ui/core';
|
||||
import { flattenOperator } from '@superset-ui/chart-controls';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -27,7 +27,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
granularity: 'month',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
metrics: [
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
* under the License.
|
||||
*/
|
||||
import { histogramOperator } from '@superset-ui/chart-controls';
|
||||
import { SqlaFormData } from '@superset-ui/core';
|
||||
import { SqlaFormData, VizType } from '@superset-ui/core';
|
||||
import { omit } from 'lodash';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -26,7 +26,7 @@ const formData: SqlaFormData = {
|
||||
cumulative: true,
|
||||
normalize: true,
|
||||
groupby: ['country', 'region'],
|
||||
viz_type: 'histogram',
|
||||
viz_type: VizType.LegacyHistogram,
|
||||
datasource: 'foo',
|
||||
};
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import { QueryObject, SqlaFormData, VizType } from '@superset-ui/core';
|
||||
import { pivotOperator } from '@superset-ui/chart-controls';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -27,7 +27,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
granularity: 'month',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
show_empty_columns: true,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
|
||||
@@ -16,7 +16,12 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { DTTM_ALIAS, QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import {
|
||||
DTTM_ALIAS,
|
||||
QueryObject,
|
||||
SqlaFormData,
|
||||
VizType,
|
||||
} from '@superset-ui/core';
|
||||
import { prophetOperator } from '@superset-ui/chart-controls';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -27,7 +32,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
time_grain_sqla: 'P1Y',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
metrics: [
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import { QueryObject, SqlaFormData, VizType } from '@superset-ui/core';
|
||||
import { rankOperator } from '@superset-ui/chart-controls';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -26,7 +26,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
granularity: 'month',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
truncate_metric: true,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
|
||||
@@ -16,7 +16,12 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { ComparisonType, QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import {
|
||||
ComparisonType,
|
||||
QueryObject,
|
||||
SqlaFormData,
|
||||
VizType,
|
||||
} from '@superset-ui/core';
|
||||
import { renameOperator } from '@superset-ui/chart-controls';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -26,7 +31,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
granularity: 'month',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
truncate_metric: true,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import { QueryObject, SqlaFormData, VizType } from '@superset-ui/core';
|
||||
import { resampleOperator } from '@superset-ui/chart-controls';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -27,7 +27,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
granularity: 'month',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
metrics: [
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import { QueryObject, SqlaFormData, VizType } from '@superset-ui/core';
|
||||
import { rollingWindowOperator } from '@superset-ui/chart-controls';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -27,7 +27,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
granularity: 'month',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
metrics: [
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import { QueryObject, SqlaFormData, VizType } from '@superset-ui/core';
|
||||
import { sortOperator } from '@superset-ui/chart-controls';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -27,7 +27,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
granularity: 'month',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
metrics: [
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import { QueryObject, SqlaFormData, VizType } from '@superset-ui/core';
|
||||
import { timeCompareOperator } from '@superset-ui/chart-controls';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
@@ -27,7 +27,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
granularity: 'month',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
metrics: [
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryObject, SqlaFormData } from '@superset-ui/core';
|
||||
import { QueryObject, SqlaFormData, VizType } from '@superset-ui/core';
|
||||
import {
|
||||
timeCompareOperator,
|
||||
timeComparePivotOperator,
|
||||
@@ -30,7 +30,7 @@ const formData: SqlaFormData = {
|
||||
time_range: '2015 : 2016',
|
||||
granularity: 'month',
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
show_empty_columns: true,
|
||||
};
|
||||
const queryObject: QueryObject = {
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryFormData, QueryFormMetric } from '@superset-ui/core';
|
||||
import { QueryFormData, QueryFormMetric, VizType } from '@superset-ui/core';
|
||||
import { extractExtraMetrics } from '@superset-ui/chart-controls';
|
||||
|
||||
const baseFormData: QueryFormData = {
|
||||
datasource: 'dummy',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
metrics: ['a', 'b'],
|
||||
columns: ['foo', 'bar'],
|
||||
limit: 100,
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
* under the License.
|
||||
*/
|
||||
import { isDerivedSeries } from '@superset-ui/chart-controls';
|
||||
import { SqlaFormData, ComparisonType } from '@superset-ui/core';
|
||||
import { SqlaFormData, ComparisonType, VizType } from '@superset-ui/core';
|
||||
|
||||
const formData: SqlaFormData = {
|
||||
datasource: 'foo',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
};
|
||||
const series = {
|
||||
id: 'metric__1 month ago',
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { VizType } from '@superset-ui/core';
|
||||
import { displayTimeRelatedControls } from '../../src';
|
||||
|
||||
const mockData = {
|
||||
@@ -35,7 +36,7 @@ const mockData = {
|
||||
exportState: {},
|
||||
form_data: {
|
||||
datasource: '22__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { QueryFormData } from '@superset-ui/core';
|
||||
import { QueryFormData, VizType } from '@superset-ui/core';
|
||||
import { getStandardizedControls } from '../../src';
|
||||
|
||||
const formData: QueryFormData = {
|
||||
datasource: '30__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
standardizedFormData: {
|
||||
controls: {
|
||||
metrics: ['count(*)', 'sum(sales)'],
|
||||
@@ -34,7 +34,7 @@ const formData: QueryFormData = {
|
||||
test('without standardizedFormData', () => {
|
||||
getStandardizedControls().setStandardizedControls({
|
||||
datasource: '30__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
});
|
||||
expect(getStandardizedControls().controls).toEqual({
|
||||
metrics: [],
|
||||
|
||||
@@ -1,27 +1,374 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
|
||||
# Change Log
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [0.20.4](https://github.com/apache/superset/compare/v0.20.3...v0.20.4) (2024-12-10)
|
||||
|
||||
**Note:** Version bump only for package @superset-ui/core
|
||||
|
||||
# [0.20.0](https://github.com/apache/superset/compare/v2021.41.0...v0.20.0) (2024-09-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- [sc-54864] Adds safety check to provide near term fix to save query ([#21034](https://github.com/apache/superset/issues/21034)) ([ab6ec89](https://github.com/apache/superset/commit/ab6ec89f680dbf022a39ed568c6fcdce0439b2dd))
|
||||
- annotation broken ([#20651](https://github.com/apache/superset/issues/20651)) ([7f918a4](https://github.com/apache/superset/commit/7f918a4ec0e162be13bf3fc0e2f15aaaa5450cec))
|
||||
- **annotation:** Address regression from [#24694](https://github.com/apache/superset/issues/24694) ([#24874](https://github.com/apache/superset/issues/24874)) ([f05638b](https://github.com/apache/superset/commit/f05638ba845596faef088efa3ee98686d26dad26))
|
||||
- avoid while cycle in computeMaxFontSize for big Number run forever when css rule applied ([#20173](https://github.com/apache/superset/issues/20173)) ([365acee](https://github.com/apache/superset/commit/365acee663f7942ba7d8dfd0e4cf72c4cecb7a2d))
|
||||
- BIGINT rendering regression in chartAction ([#21937](https://github.com/apache/superset/issues/21937)) ([4002406](https://github.com/apache/superset/commit/40024064ae35e596215a79d98ed8d0b4a90847f2))
|
||||
- chart empty state & result panel when multiple queries are executed display incorrectly ([#20816](https://github.com/apache/superset/issues/20816)) ([279ab95](https://github.com/apache/superset/commit/279ab954b1977f7729442733a31c67715476a620))
|
||||
- **charts:** big-number display broken in echarts ([#24492](https://github.com/apache/superset/issues/24492)) ([3f17945](https://github.com/apache/superset/commit/3f179457457bc2a21a824895aa1cd99b586d9ea0))
|
||||
- **chart:** Set max row limit + removed the option to use an empty row limit value ([#26151](https://github.com/apache/superset/issues/26151)) ([863f8bb](https://github.com/apache/superset/commit/863f8bbbcdd078814973d444368c12e06ad0c0c0))
|
||||
- **charts:** Hide Values greater than Max Y Axis Bound on Mixed Time Series with Bar series ([#21015](https://github.com/apache/superset/issues/21015)) ([bdcc0a9](https://github.com/apache/superset/commit/bdcc0a9bcfff476bcd43edc84f08423d8f415d50))
|
||||
- **Charts:** Set max row limit + removed the option to use an empty row limit value ([#25579](https://github.com/apache/superset/issues/25579)) ([f556ef5](https://github.com/apache/superset/commit/f556ef53f3177746ec2526b4b963da4ef00c2d58))
|
||||
- **charts:** Time grain is None when dataset uses Jinja ([#25842](https://github.com/apache/superset/issues/25842)) ([7536dd1](https://github.com/apache/superset/commit/7536dd12cdd58a1bca7d72952a2b74641f16c959))
|
||||
- clean up chart metadata config ([#19143](https://github.com/apache/superset/issues/19143)) ([3d66912](https://github.com/apache/superset/commit/3d66912d89851f03c38803b29128a45d66b34cb6))
|
||||
- **codecov:** improve core code coverage ([#20274](https://github.com/apache/superset/issues/20274)) ([5425504](https://github.com/apache/superset/commit/54255042310b9810c09fee25d475a4a1bc8f75de))
|
||||
- color collision in dashboard with tabs ([#24670](https://github.com/apache/superset/issues/24670)) ([0328dd2](https://github.com/apache/superset/commit/0328dd270467e71260bfa85078beb7b38a87877b))
|
||||
- core coverage and add a coverage step in workflow ([#20784](https://github.com/apache/superset/issues/20784)) ([9c7bcfc](https://github.com/apache/superset/commit/9c7bcfceadb1101899d6c09330aa8e79330d656f))
|
||||
- custom SQL in the XAxis ([#21847](https://github.com/apache/superset/issues/21847)) ([0a4ecca](https://github.com/apache/superset/commit/0a4ecca9f259e2ee9cff27a879f2a889f876c7d7))
|
||||
- **dashboard:** Add correct icon, label and badge to horizontal native filters dropdown button ([#22211](https://github.com/apache/superset/issues/22211)) ([435926b](https://github.com/apache/superset/commit/435926b89e08395f3017a32ea00f3de252fd4fb7))
|
||||
- **dashboard:** Add remark plugin on markdown ([#23502](https://github.com/apache/superset/issues/23502)) ([439d687](https://github.com/apache/superset/commit/439d687e1f88cad8326c41a3f1dd67a1f5a9ee69))
|
||||
- **dashboard:** Allow selecting text in cells in Table and PivotTable without triggering cross filters ([#23283](https://github.com/apache/superset/issues/23283)) ([d16512b](https://github.com/apache/superset/commit/d16512b7758e36a1263fc63bd7d9d1f93060dc93))
|
||||
- **Dashboard:** Color inconsistency on refreshes and conflicts ([#27439](https://github.com/apache/superset/issues/27439)) ([313ee59](https://github.com/apache/superset/commit/313ee596f5435894f857d72be7269d5070c8c964))
|
||||
- **dashboard:** deepmerge htmlSchemaOverrides ([#23329](https://github.com/apache/superset/issues/23329)) ([3919ca6](https://github.com/apache/superset/commit/3919ca60608e1c2d3cfef99d5a8d9d2aef227843))
|
||||
- **dashboard:** Fix FilterWithDataMask typing and add null check ([#22260](https://github.com/apache/superset/issues/22260)) ([a642d12](https://github.com/apache/superset/commit/a642d126f8019d8f96cc206abfeda7ddc19eda7f))
|
||||
- **dashboard:** Prevent XSS attack vector ([#21822](https://github.com/apache/superset/issues/21822)) ([ec20c01](https://github.com/apache/superset/commit/ec20c0104e6913cd9b2ab8bacae22eb25ae4cce1))
|
||||
- **dependencies:** stopping (and preventing) full lodash library import... now using only method level imports. ([#26710](https://github.com/apache/superset/issues/26710)) ([1d4b8b6](https://github.com/apache/superset/commit/1d4b8b69896776cf8831b8202e69424e14067011))
|
||||
- **Dev-Server:** Edit ChartPropsConfig reexport to be a type object ([#28225](https://github.com/apache/superset/issues/28225)) ([2e5f3ed](https://github.com/apache/superset/commit/2e5f3ed85149951200645e00e79a543de9bec02f))
|
||||
- Drill to detail on values with comma ([#21151](https://github.com/apache/superset/issues/21151)) ([0bf4e56](https://github.com/apache/superset/commit/0bf4e56dc3e129d2b9239f055212249ba95521e4))
|
||||
- drilling on the categorical xaxis on the stacked barchart v2 ([#21844](https://github.com/apache/superset/issues/21844)) ([f41d0b0](https://github.com/apache/superset/commit/f41d0b0cbf47042bf510dc2b0b24b68e3fa11d37))
|
||||
- drop the first level of MultiIndex ([#19716](https://github.com/apache/superset/issues/19716)) ([9425dd2](https://github.com/apache/superset/commit/9425dd2cac42f1a92f621848c469cadcc483e757))
|
||||
- **embedded:** CSV download for chart ([#20261](https://github.com/apache/superset/issues/20261)) ([ab9f72f](https://github.com/apache/superset/commit/ab9f72f1a1359a59e64afd9e820d5823fd53b77b))
|
||||
- **embedded:** Ensure guest token is passed to log endpoint ([#20647](https://github.com/apache/superset/issues/20647)) ([dfab521](https://github.com/apache/superset/commit/dfab521f50593b97fc778475498920552cad15dc))
|
||||
- **embedded:** third party cookies ([#20019](https://github.com/apache/superset/issues/20019)) ([3e36d4a](https://github.com/apache/superset/commit/3e36d4a0a1d9e1a1d2d009b6b8db1042d3d37d8b))
|
||||
- **explore:** Adhoc columns don't display correctly ([#20802](https://github.com/apache/superset/issues/20802)) ([af1bddf](https://github.com/apache/superset/commit/af1bddffad930efc0583b638716980db6747bfbc))
|
||||
- **explore:** Filters with custom SQL disappearing ([#21114](https://github.com/apache/superset/issues/21114)) ([55304b0](https://github.com/apache/superset/commit/55304b02cd599827359cd13e3fe6ccb8581e0fd2))
|
||||
- **Explore:** Pivot table V2 sort by failure with D&D enabled ([#18835](https://github.com/apache/superset/issues/18835)) ([eafe0cf](https://github.com/apache/superset/commit/eafe0cfc6f040670a9b35ebcd27f5c83eabe068e))
|
||||
- Fix console errors about feature flags when running tests ([#21275](https://github.com/apache/superset/issues/21275)) ([742dbdd](https://github.com/apache/superset/commit/742dbdd0a5c0f0f75d56101b3551077ec06cd53f))
|
||||
- **frontend:** allow "constructor" property in response data ([#25407](https://github.com/apache/superset/issues/25407)) ([a1983e4](https://github.com/apache/superset/commit/a1983e468ba1a1b0fdbef9d8d5206e61be0b7141))
|
||||
- invalid float number format by json-bigint ([#21968](https://github.com/apache/superset/issues/21968)) ([3bb9187](https://github.com/apache/superset/commit/3bb91877974650ab3fa82539a30dc0e2a7045dd7))
|
||||
- invalid float number format by json-bigint ([#21996](https://github.com/apache/superset/issues/21996)) ([3a02339](https://github.com/apache/superset/commit/3a023392e6bfec9660449b7b739530574d2a8238))
|
||||
- local warning in the frontend development ([#17727](https://github.com/apache/superset/issues/17727)) ([142b5bc](https://github.com/apache/superset/commit/142b5bc506c81847e503e76e498c06e8321dffb1))
|
||||
- **native filters:** rendering performance improvement by reduce overrendering ([#25901](https://github.com/apache/superset/issues/25901)) ([e1d73d5](https://github.com/apache/superset/commit/e1d73d5420867b0310d4c2608686d5ccca94920f))
|
||||
- **nativeFilters:** Speed up native filters by removing unnecessary rerenders ([#25282](https://github.com/apache/superset/issues/25282)) ([a0eeb4d](https://github.com/apache/superset/commit/a0eeb4d767df9f573d80b520cf8afe42013616bb))
|
||||
- **nav:** infinite redirect and upload dataset nav permissions ([#19708](https://github.com/apache/superset/issues/19708)) ([32a9265](https://github.com/apache/superset/commit/32a9265cc0cb850910e55b6f49a73169fc7ed377))
|
||||
- Only redirect to relative paths when authentication expires ([#18714](https://github.com/apache/superset/issues/18714)) ([8027f5f](https://github.com/apache/superset/commit/8027f5f0a63425c280121d671ae843e4c420793b))
|
||||
- **plugin-chart-echarts:** support forced categorical x-axis ([#26404](https://github.com/apache/superset/issues/26404)) ([219c4a1](https://github.com/apache/superset/commit/219c4a14b359b77dbfcda74e66b7d06c3792b861))
|
||||
- **plugin-chart-echarts:** undefined bounds for bubble chart ([#26243](https://github.com/apache/superset/issues/26243)) ([5df544b](https://github.com/apache/superset/commit/5df544b6fb079e98d4ab6839cfbdf7f08358a950))
|
||||
- **plugin-chart-table:** Include time control ([#23533](https://github.com/apache/superset/issues/23533)) ([13ffb4b](https://github.com/apache/superset/commit/13ffb4b7c203cfa8ebec602fc7c25103eebc019f))
|
||||
- **plugin:** Period Over Period KPI Plugin Feature flag value ([#26985](https://github.com/apache/superset/issues/26985)) ([db79c37](https://github.com/apache/superset/commit/db79c37707ea08166fc7b664823ff51f439ce1e6))
|
||||
- process color scheme configs correctly ([#17786](https://github.com/apache/superset/issues/17786)) ([de3d397](https://github.com/apache/superset/commit/de3d3973a249ab56b294d3f5d770a79fe8970abd))
|
||||
- **Query:** Parse html string error responses to avoid displaying raw HTML as error message ([#29321](https://github.com/apache/superset/issues/29321)) ([de6a518](https://github.com/apache/superset/commit/de6a518161b283e8df7e2b450e5dada6e37efe7b))
|
||||
- Redirect on 401 ([#17597](https://github.com/apache/superset/issues/17597)) ([46cdc77](https://github.com/apache/superset/commit/46cdc77ae64d0cc55a54719c748391b92a475a33))
|
||||
- Redirect to full url on 401 ([#19357](https://github.com/apache/superset/issues/19357)) ([b8e5954](https://github.com/apache/superset/commit/b8e595413fa02b5f00c7b91df6283701a5f1b972))
|
||||
- repeated color in the same chart ([#23762](https://github.com/apache/superset/issues/23762)) ([66594ad](https://github.com/apache/superset/commit/66594ad64739f096d2dca93591ed2d5a4754d562))
|
||||
- Revert "fix(Charts): Set max row limit + removed the option to use an empty row limit value" ([#25753](https://github.com/apache/superset/issues/25753)) ([e2fe967](https://github.com/apache/superset/commit/e2fe96778887d203a852cf09def151ff024cfaf7))
|
||||
- Revert enabling CSP ([#24476](https://github.com/apache/superset/issues/24476)) ([fb08e0e](https://github.com/apache/superset/commit/fb08e0ecfc81cba37e26620a7b6d88fbd5658cb8))
|
||||
- row limits & row count labels are confusing ([#27700](https://github.com/apache/superset/issues/27700)) ([12fe292](https://github.com/apache/superset/commit/12fe2929a4a4b5627d9cff701a1e73644e78ac47))
|
||||
- save columns reference from sqllab save datasets flow ([#24248](https://github.com/apache/superset/issues/24248)) ([93e1db4](https://github.com/apache/superset/commit/93e1db4bd9d045b8a9b345733a60139cb213ab86))
|
||||
- save dataset and repopulate state ([#20965](https://github.com/apache/superset/issues/20965)) ([463406f](https://github.com/apache/superset/commit/463406ff095375613bf0270343a4af53142c84d6))
|
||||
- smarter date formatter ([#25404](https://github.com/apache/superset/issues/25404)) ([f0080f9](https://github.com/apache/superset/commit/f0080f9c559c407c5d06e03db27f2cc40fb227e2))
|
||||
- **sqllab:** invalid sanitization on comparison symbol ([#25903](https://github.com/apache/superset/issues/25903)) ([581d3c7](https://github.com/apache/superset/commit/581d3c710867120f85ddfc097713e5f2880722c1))
|
||||
- **sqllab:** normalize changedOn timestamp ([#24513](https://github.com/apache/superset/issues/24513)) ([036294a](https://github.com/apache/superset/commit/036294a1910ad777307ce7c252625b0fefdfa4d8))
|
||||
- SSH Tunnel configuration settings ([#27186](https://github.com/apache/superset/issues/27186)) ([89e89de](https://github.com/apache/superset/commit/89e89de341c555a1fdbe9d3f5bccada58eb08059))
|
||||
- superset-ui/core code coverage ([#20676](https://github.com/apache/superset/issues/20676)) ([8d4994a](https://github.com/apache/superset/commit/8d4994a89900c2cf636444e4febad61ce3b69d68))
|
||||
- superset-ui/core codes coverage ([#20324](https://github.com/apache/superset/issues/20324)) ([d04357c](https://github.com/apache/superset/commit/d04357c47bec7bac49c602f3d2166375892200ad))
|
||||
- support custom links in markdown ([#26211](https://github.com/apache/superset/issues/26211)) ([d2adc85](https://github.com/apache/superset/commit/d2adc858cbdf1242d96cf7cc0363e39afba88990))
|
||||
- suppress translation warning in jest ([#20404](https://github.com/apache/superset/issues/20404)) ([9fad26f](https://github.com/apache/superset/commit/9fad26fa1919fceda4abdfce0b973d536b42b6af))
|
||||
- Table sorting reset ([#23318](https://github.com/apache/superset/issues/23318)) ([da3791a](https://github.com/apache/superset/commit/da3791ad3daa209631a588394600d1a8b635e814))
|
||||
- Time Column on Generic X-axis ([#23021](https://github.com/apache/superset/issues/23021)) ([464ddee](https://github.com/apache/superset/commit/464ddee4b4164460193027645d87cb25e7b2320e))
|
||||
- Timeseries Y-axis format with contribution mode ([#27106](https://github.com/apache/superset/issues/27106)) ([af577d6](https://github.com/apache/superset/commit/af577d64b17a9730e28e9021376318326fe31437))
|
||||
- Total calculation in stacked Timeseries charts ([#24477](https://github.com/apache/superset/issues/24477)) ([c5b4ecd](https://github.com/apache/superset/commit/c5b4ecdca519ab4309a47bfc8feb4a1665c6ce96))
|
||||
- **trino:** normalize non-iso timestamps ([#23339](https://github.com/apache/superset/issues/23339)) ([a591130](https://github.com/apache/superset/commit/a591130e0bd3c817af9ad937f63f1af1fce90740))
|
||||
- type of AnnotationLayer ([#21878](https://github.com/apache/superset/issues/21878)) ([f4a4ab4](https://github.com/apache/superset/commit/f4a4ab41e05be90b31ab2f9d2a0f23110bd5df21))
|
||||
- typescript errors in 4.0 ([#27402](https://github.com/apache/superset/issues/27402)) ([ce0b70c](https://github.com/apache/superset/commit/ce0b70cc8685aa4d83c0c4ad0fb8f03fb7e28ede))
|
||||
- Typing of labelMap ([#21181](https://github.com/apache/superset/issues/21181)) ([1143e17](https://github.com/apache/superset/commit/1143e17742d1fa4c4cbae2c86e4998f4cc7e9f88))
|
||||
- typo on doc string ([#19346](https://github.com/apache/superset/issues/19346)) ([2af2d00](https://github.com/apache/superset/commit/2af2d00e852032e1d4eaaa50fd7e8d5415a1db16))
|
||||
- Use default custom time range time without timezone ([#29669](https://github.com/apache/superset/issues/29669)) ([cd713a2](https://github.com/apache/superset/commit/cd713a239e8f8d0e990dda900632972586af8d00))
|
||||
- useTruncation infinite loop, reenable dashboard cross links on ChartList ([#27701](https://github.com/apache/superset/issues/27701)) ([ae0f2ce](https://github.com/apache/superset/commit/ae0f2ce3c11aaeef9d8f3ee17ab68d4a4219ae81))
|
||||
|
||||
### Features
|
||||
|
||||
- a simple LRUCache in frontend ([#20842](https://github.com/apache/superset/issues/20842)) ([55a89df](https://github.com/apache/superset/commit/55a89dfac93f9855dbf1beb2ee0c0f21da54095b))
|
||||
- add 'dashboard.nav.right' extension to registry ([#20835](https://github.com/apache/superset/issues/20835)) ([226712d](https://github.com/apache/superset/commit/226712d831a80cc44213c5ce8ed921518ea0397c))
|
||||
- Add 3 new extension points for inserting custom icons ([#22027](https://github.com/apache/superset/issues/22027)) ([c870fbe](https://github.com/apache/superset/commit/c870fbe9e290e9305e6019bb4e9932bbd736b6dc))
|
||||
- Add currencies controls in control panels ([#24718](https://github.com/apache/superset/issues/24718)) ([f7e76d0](https://github.com/apache/superset/commit/f7e76d02b7cbe4940946673590bb979984ace9f5))
|
||||
- Add deck.gl Heatmap Visualization ([#23551](https://github.com/apache/superset/issues/23551)) ([fc8c537](https://github.com/apache/superset/commit/fc8c537118ce6c7b3a4624f88a31e2e7fb287327))
|
||||
- add extension point for workspace home page ([#21033](https://github.com/apache/superset/issues/21033)) ([83dd851](https://github.com/apache/superset/commit/83dd85166f917a5cff8c94d2b4d2c298182494b9))
|
||||
- add extension point to the right side of the menu bar ([#20514](https://github.com/apache/superset/issues/20514)) ([f2af81b](https://github.com/apache/superset/commit/f2af81b1c74a56e6854039cfe5f32e9b035ce262))
|
||||
- add extension point to the top of welcome page ([#20575](https://github.com/apache/superset/issues/20575)) ([2389871](https://github.com/apache/superset/commit/2389871556cde32c61bc694f09b4e7dbc5432af5))
|
||||
- add new SQLLAB_FORCE_RUN_ASYNC feature flag ([#29231](https://github.com/apache/superset/issues/29231)) ([5e060ce](https://github.com/apache/superset/commit/5e060cef7c0ec197a44b92490eb11c5a39282c92))
|
||||
- add renameOperator ([#19776](https://github.com/apache/superset/issues/19776)) ([3c28cd4](https://github.com/apache/superset/commit/3c28cd4625fdeeaeeac3ed730907af1fb86bc86e))
|
||||
- add slackv2 notification ([#29264](https://github.com/apache/superset/issues/29264)) ([6dbfe2a](https://github.com/apache/superset/commit/6dbfe2aab9488d5b35a16b45f873c814d97768f5))
|
||||
- add support for comments in adhoc clauses ([#19248](https://github.com/apache/superset/issues/19248)) ([f341025](https://github.com/apache/superset/commit/f341025d80aacf7345e7c20f8463231b9197ea58))
|
||||
- add support to NOT LIKE operator ([#29384](https://github.com/apache/superset/issues/29384)) ([9724c99](https://github.com/apache/superset/commit/9724c993419952fbcbeb8cd19e51a723fc663b04))
|
||||
- Adds drill to detail context menu for ECharts visualizations ([#20891](https://github.com/apache/superset/issues/20891)) ([3df8335](https://github.com/apache/superset/commit/3df8335f8792c85d7e2f7fefa5dd60fb2c0befaf))
|
||||
- Adds support to multiple dependencies to the native filters ([#18793](https://github.com/apache/superset/issues/18793)) ([06e1e42](https://github.com/apache/superset/commit/06e1e4285ea52d27f9b7b7dfea59f9652ee0dcfe))
|
||||
- Adds the CROSS_REFERENCE feature flag ([#21708](https://github.com/apache/superset/issues/21708)) ([1cbf066](https://github.com/apache/superset/commit/1cbf0664152cef5d47720e1acffb955c328e291e))
|
||||
- Adds the ECharts Heatmap chart ([#25353](https://github.com/apache/superset/issues/25353)) ([546d48a](https://github.com/apache/superset/commit/546d48adbb84b1354d6a3d4ae88dbeba0ad14d44))
|
||||
- Adds the ECharts Histogram chart ([#28652](https://github.com/apache/superset/issues/28652)) ([896fe85](https://github.com/apache/superset/commit/896fe854dc3865214325cfceea94824ff41a1b6c))
|
||||
- Adds the HORIZONTAL_FILTER_BAR feature flag ([#21935](https://github.com/apache/superset/issues/21935)) ([779d9f7](https://github.com/apache/superset/commit/779d9f75336ce38ab346e27dcb6a77e5a68cf823))
|
||||
- **advanced analysis:** support MultiIndex column in post processing stage ([#19116](https://github.com/apache/superset/issues/19116)) ([375c03e](https://github.com/apache/superset/commit/375c03e08407570bcf417acf5f3d25b28843329c))
|
||||
- **advanced analytics:** support groupby in resample ([#18045](https://github.com/apache/superset/issues/18045)) ([0c7f728](https://github.com/apache/superset/commit/0c7f7288d8cded5dc73d49d1e0be397e748d4f10))
|
||||
- **alert report tabs:** adding feature flag ([#27773](https://github.com/apache/superset/issues/27773)) ([aef325a](https://github.com/apache/superset/commit/aef325a41687804b3e9ee6731e99821062604c43))
|
||||
- apply Time Grain to X-Axis column ([#21163](https://github.com/apache/superset/issues/21163)) ([ce3d38d](https://github.com/apache/superset/commit/ce3d38d2e72a56014fa96ee3d4afe066277cc5be))
|
||||
- Axis sort in the Bar Chart V2 ([#21993](https://github.com/apache/superset/issues/21993)) ([22fab5e](https://github.com/apache/superset/commit/22fab5e58ce574e962518067d982e3036449e580))
|
||||
- **build:** uplift `Jest` to v29 ([#29118](https://github.com/apache/superset/issues/29118)) ([dffad48](https://github.com/apache/superset/commit/dffad4850404abed68700cc18d9124abe7594aa4))
|
||||
- **business-types:** initial implementation of SIP-78 ([#18794](https://github.com/apache/superset/issues/18794)) ([ddc01ea](https://github.com/apache/superset/commit/ddc01ea7813ef7c02cfc2aee7cbf554a45628f25))
|
||||
- **chart:** add feature flag that displays the data pane closes by default ([#21649](https://github.com/apache/superset/issues/21649)) ([ebd7536](https://github.com/apache/superset/commit/ebd75366c0c7acd6d4619996c4f209b51af518e2))
|
||||
- **color:** color consistency enhancements ([#21507](https://github.com/apache/superset/issues/21507)) ([7a7181a](https://github.com/apache/superset/commit/7a7181a2449598b09298f3a113849caeb3309186))
|
||||
- **color:** support analogous colors to prevent color conflict ([#19325](https://github.com/apache/superset/issues/19325)) ([90c9dae](https://github.com/apache/superset/commit/90c9daea08cd59ba7261c13e1ce4e80a72f84b48))
|
||||
- Convert ENABLE_BROAD_ACTIVITY_ACCESS and MENU_HIDE_USER_INFO into feature flags ([#24345](https://github.com/apache/superset/issues/24345)) ([a7f7f66](https://github.com/apache/superset/commit/a7f7f6645dd374bee4358544c87e5c3120dcdb73))
|
||||
- custom d3 number locale ([#20075](https://github.com/apache/superset/issues/20075)) ([a170ae4](https://github.com/apache/superset/commit/a170ae4368298207b5a5c9a698889c865fd73421))
|
||||
- **dashboard:** Add cross filter from context menu ([#23141](https://github.com/apache/superset/issues/23141)) ([ee1952e](https://github.com/apache/superset/commit/ee1952e488f2cd0913fe6f35ffe551d18ee3d143))
|
||||
- **dashboard:** Add Drill to Detail modal w/ chart menu + right-click support ([#20728](https://github.com/apache/superset/issues/20728)) ([52648ec](https://github.com/apache/superset/commit/52648ecd7f6158473ec198e1ade9a5a69008b752))
|
||||
- **dashboard:** confirm overwrite to prevent unintended changes ([#21819](https://github.com/apache/superset/issues/21819)) ([ef6b9a9](https://github.com/apache/superset/commit/ef6b9a97d594f748ab710e27281d41ee5250d33a))
|
||||
- **dashboard:** make color indices referable ([#23657](https://github.com/apache/superset/issues/23657)) ([c8fa44e](https://github.com/apache/superset/commit/c8fa44e9e904160de705cd643d1df092815348b1))
|
||||
- **dashboard:** menu improvements, fallback support for Drill to Detail ([#21351](https://github.com/apache/superset/issues/21351)) ([76e57ec](https://github.com/apache/superset/commit/76e57ec651bbfaf4f76031eeeca66f6a1fa81bc2))
|
||||
- **dashboard:** Transition to Explore with React Router ([#20606](https://github.com/apache/superset/issues/20606)) ([de4f7db](https://github.com/apache/superset/commit/de4f7db57ec33c497be9c880fde534a1f026241f))
|
||||
- database extension registry ([#23174](https://github.com/apache/superset/issues/23174)) ([6b54591](https://github.com/apache/superset/commit/6b5459121f9542c9f0976aec1ebdfe7b1a078472))
|
||||
- **deckgl-map:** use an arbitraty Mabpox style URL ([#26027](https://github.com/apache/superset/issues/26027)) ([#26031](https://github.com/apache/superset/issues/26031)) ([af58784](https://github.com/apache/superset/commit/af587840403d83a7da7fb0f57bc10ad2335d4eeb))
|
||||
- Drill by open in Explore ([#23575](https://github.com/apache/superset/issues/23575)) ([117360c](https://github.com/apache/superset/commit/117360cd57bdbf9fd60fc479c6fe64dc077dbfee))
|
||||
- Dynamic dashboard component ([#17208](https://github.com/apache/superset/issues/17208)) ([bcad1ac](https://github.com/apache/superset/commit/bcad1acec27823756dc403f6e982f5e59ec6d6cf))
|
||||
- embedded dashboard core ([#17530](https://github.com/apache/superset/issues/17530)) ([4ad5ad0](https://github.com/apache/superset/commit/4ad5ad045a9adb506d14b2c02fdbefc564d25bdb)), closes [#17175](https://github.com/apache/superset/issues/17175) [#17450](https://github.com/apache/superset/issues/17450) [#17517](https://github.com/apache/superset/issues/17517) [#17529](https://github.com/apache/superset/issues/17529) [#17757](https://github.com/apache/superset/issues/17757) [#17836](https://github.com/apache/superset/issues/17836)
|
||||
- explicit distribute columns on BoxPlot and apply time grain ([#21593](https://github.com/apache/superset/issues/21593)) ([93f08e7](https://github.com/apache/superset/commit/93f08e778bfd48be150749f22d0b184467da73ac))
|
||||
- **explore:** add config for default time filter ([#21879](https://github.com/apache/superset/issues/21879)) ([9a063ab](https://github.com/apache/superset/commit/9a063abb3b28e32b1107950942571d564bb283f8))
|
||||
- **explore:** Color scheme groups, new color schemes ([#27995](https://github.com/apache/superset/issues/27995)) ([bbfe5c0](https://github.com/apache/superset/commit/bbfe5c0ae88df8556b3390b06ce9e400cabdc943))
|
||||
- **explore:** Don't discard controls with custom sql when changing datasource ([#20934](https://github.com/apache/superset/issues/20934)) ([cddc361](https://github.com/apache/superset/commit/cddc361adc483ed605857a2eb39c5efffa089076))
|
||||
- **explore:** export csv data pivoted for Pivot Table [ID-9] ([#17512](https://github.com/apache/superset/issues/17512)) ([07e8837](https://github.com/apache/superset/commit/07e8837093b79b08e18224dd6765a2fc15a0e770))
|
||||
- **explore:** Frontend implementation of dataset creation from infobox ([#19855](https://github.com/apache/superset/issues/19855)) ([ba0c37d](https://github.com/apache/superset/commit/ba0c37d3df85b1af39404af1d578daeb0ff2d278))
|
||||
- **explore:** Implement chart empty states ([#18678](https://github.com/apache/superset/issues/18678)) ([167e18e](https://github.com/apache/superset/commit/167e18e806799dede3aa56da98be11f4751f0272))
|
||||
- extension hook for DB delete ([#24191](https://github.com/apache/superset/issues/24191)) ([9df8d8d](https://github.com/apache/superset/commit/9df8d8dda538095ba3b30d1f82aa81acf17e1c95))
|
||||
- **formatters:** Add custom d3-time-format locale ([#24263](https://github.com/apache/superset/issues/24263)) ([024cfd8](https://github.com/apache/superset/commit/024cfd86e408ec5f7ddf49a9e90908e2fb2e6b70))
|
||||
- Frontend tagging ([#20876](https://github.com/apache/superset/issues/20876)) ([a40c12d](https://github.com/apache/superset/commit/a40c12d63e04811f3a710a862298bfa68dfde3d8))
|
||||
- generate consistent QueryObject whether GenericAxis is enabled or disabled ([#21519](https://github.com/apache/superset/issues/21519)) ([4d12e37](https://github.com/apache/superset/commit/4d12e3709eb7ab1cc4f687c15ed54a4738266482))
|
||||
- Implement context menu for drill by ([#23454](https://github.com/apache/superset/issues/23454)) ([9fbfd1c](https://github.com/apache/superset/commit/9fbfd1c1d883f983ef96b8812297721e2a1a9695))
|
||||
- Implement currencies formatter for saved metrics ([#24517](https://github.com/apache/superset/issues/24517)) ([83ff4cd](https://github.com/apache/superset/commit/83ff4cd86a4931fc8eda83aeb3d8d3c92d773202))
|
||||
- Implement support for currencies in more charts ([#24594](https://github.com/apache/superset/issues/24594)) ([d74d7ec](https://github.com/apache/superset/commit/d74d7eca23a3c94bc48af082c115d34c103e815d))
|
||||
- improve color consistency (save all labels) ([#19038](https://github.com/apache/superset/issues/19038)) ([dc57508](https://github.com/apache/superset/commit/dc575080d7e43d40b1734bb8f44fdc291cb95b11))
|
||||
- Improves SafeMarkdown HTML sanitization ([#21895](https://github.com/apache/superset/issues/21895)) ([7d1df3b](https://github.com/apache/superset/commit/7d1df3b78d5d7147dd9d627317e3f9f10d279ae0))
|
||||
- Improves the Drill By feature ([#29242](https://github.com/apache/superset/issues/29242)) ([08e44c0](https://github.com/apache/superset/commit/08e44c085014ca258fe0c22886067dc716a910c6))
|
||||
- Improves the Waterfall chart ([#25557](https://github.com/apache/superset/issues/25557)) ([d619078](https://github.com/apache/superset/commit/d619078d25dde63c55e9afd87e98f05d4fb82b86))
|
||||
- make data tables support html ([#24368](https://github.com/apache/superset/issues/24368)) ([d2b0b8e](https://github.com/apache/superset/commit/d2b0b8eac52ad8b68639c6581a1ed174a593f564))
|
||||
- Move cross filters to Dashboard ([#22785](https://github.com/apache/superset/issues/22785)) ([9ed2326](https://github.com/apache/superset/commit/9ed2326a20329d41abc8e0995b0ba6110379088f))
|
||||
- **native-filters:** Adjust filter components for horizontal mode ([#22273](https://github.com/apache/superset/issues/22273)) ([eb6045a](https://github.com/apache/superset/commit/eb6045adfa77e06c8aaf3de217719ca59d4328e1))
|
||||
- Pass dashboard context to explore through local storage ([#20743](https://github.com/apache/superset/issues/20743)) ([0945d4a](https://github.com/apache/superset/commit/0945d4a2f46667aebb9b93d0d7685215627ad237))
|
||||
- Period over Period Big Number comparison chart ([#26908](https://github.com/apache/superset/issues/26908)) ([a09e555](https://github.com/apache/superset/commit/a09e5557bc8b40e46495b9473959327118dfaacf))
|
||||
- **plugin-chart-echarts:** support non-timeseries x-axis ([#17917](https://github.com/apache/superset/issues/17917)) ([e9651ea](https://github.com/apache/superset/commit/e9651ea52fdc0edb574bfb9dc1b22c225bcc068f)), closes [#18021](https://github.com/apache/superset/issues/18021) [#18039](https://github.com/apache/superset/issues/18039) [#17569](https://github.com/apache/superset/issues/17569) [#18037](https://github.com/apache/superset/issues/18037)
|
||||
- Programmatically open "more filters" dropdown in Horizontal Filter Bar ([#22276](https://github.com/apache/superset/issues/22276)) ([df91664](https://github.com/apache/superset/commit/df91664217b5369d1f742ce03596a366e18cd4b9))
|
||||
- Reuse Dashboard redux data in Explore ([#20668](https://github.com/apache/superset/issues/20668)) ([ff5b4bc](https://github.com/apache/superset/commit/ff5b4bc0e47f057e0660d453a9e53f939613356b))
|
||||
- root context provider extension point ([#22188](https://github.com/apache/superset/issues/22188)) ([aa97ba4](https://github.com/apache/superset/commit/aa97ba4509431a82922f2fa6930928093c876d6f))
|
||||
- **select:** keep options order when in single mode ([#19085](https://github.com/apache/superset/issues/19085)) ([ae13d83](https://github.com/apache/superset/commit/ae13d8313b5687374f5b24e02bccdcc717ba19eb))
|
||||
- **SIP-95:** catalogs in SQL Lab and datasets ([#28376](https://github.com/apache/superset/issues/28376)) ([ce668d4](https://github.com/apache/superset/commit/ce668d46cc5d429a249fdd9e091650457da20361))
|
||||
- **sqllab:** ResultTable extension ([#25423](https://github.com/apache/superset/issues/25423)) ([deef3b0](https://github.com/apache/superset/commit/deef3b04ebed1178259af5909779392cfa0cd630))
|
||||
- **sqllab:** SQLEditor Extension ([#24205](https://github.com/apache/superset/issues/24205)) ([1d9a761](https://github.com/apache/superset/commit/1d9a761de5410fa1bd208bca4c78614779cf3064))
|
||||
- **ssh_tunnel:** SQLAlchemy Form UI ([#22513](https://github.com/apache/superset/issues/22513)) ([5399365](https://github.com/apache/superset/commit/539936522fbbda46ebb39b65ed298f6e251a548f))
|
||||
- **ssh_tunnel:** SSH Tunnel Switch extension ([#22967](https://github.com/apache/superset/issues/22967)) ([cf395ac](https://github.com/apache/superset/commit/cf395ac2d8e04782cffc93e8a0a0b28678c407fe))
|
||||
- **storybook:** Co-habitating/Upgrading Storybooks to v7 (dependency madness ensues) ([#26907](https://github.com/apache/superset/issues/26907)) ([753ef69](https://github.com/apache/superset/commit/753ef695294ce26238b68ff41ba0a9af6aea74de))
|
||||
- **superset-ui-core:** add feature flag for the analogous colors ([#19987](https://github.com/apache/superset/issues/19987)) ([80b5578](https://github.com/apache/superset/commit/80b55786809310e28566d745308b167f0e74b144))
|
||||
- SupersetClient config to override 401 behavior ([#19144](https://github.com/apache/superset/issues/19144)) ([96a123f](https://github.com/apache/superset/commit/96a123f553f80ae7454daaf139b33e1397d9e3f7))
|
||||
- Support further drill by in the modal ([#23615](https://github.com/apache/superset/issues/23615)) ([587e775](https://github.com/apache/superset/commit/587e7759b1b674440ac0aa705ebae6599564875f))
|
||||
- support mulitple temporal filters in AdhocFilter and move the Time Section away ([#21767](https://github.com/apache/superset/issues/21767)) ([a9b229d](https://github.com/apache/superset/commit/a9b229dd1dd9cb9dc8166b1392179fcccb4da138))
|
||||
- **table:** Table with Time Comparison ([#28057](https://github.com/apache/superset/issues/28057)) ([7ddea62](https://github.com/apache/superset/commit/7ddea62331617dad1b8ade1abe7dd8c11a1ba20d))
|
||||
- **time_comparison:** Support all date formats when computing custom and inherit offsets ([#30002](https://github.com/apache/superset/issues/30002)) ([bc6d2db](https://github.com/apache/superset/commit/bc6d2dba373e59a498d942909ab6631e5c8521e9))
|
||||
- UI override registry ([#19671](https://github.com/apache/superset/issues/19671)) ([4927685](https://github.com/apache/superset/commit/4927685c3059c0207713bceeea7c60f1f3b75ec3))
|
||||
- Utility function to render chart tooltips ([#27950](https://github.com/apache/superset/issues/27950)) ([b549977](https://github.com/apache/superset/commit/b549977f0538d6939dce756c7615052e5f2e6c93))
|
||||
- Visualize SqlLab.Query model data in Explore 📈 ([#20281](https://github.com/apache/superset/issues/20281)) ([e5e8867](https://github.com/apache/superset/commit/e5e886739460c011a885a13b873665410045a19c))
|
||||
- **viz-gallery:** add 'feature' tag and fuzzy search weighting ([#18662](https://github.com/apache/superset/issues/18662)) ([7524e1e](https://github.com/apache/superset/commit/7524e1e3c86f3de2b3b0343c3ec5efc0b345937a))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
- **dashboard:** Virtualization POC ([#21438](https://github.com/apache/superset/issues/21438)) ([406e44b](https://github.com/apache/superset/commit/406e44bba11f6b233c3b07d29efd158b8cfc9615))
|
||||
- Lazy load rehype-raw and react-markdown ([#29855](https://github.com/apache/superset/issues/29855)) ([5b5f448](https://github.com/apache/superset/commit/5b5f448af04afedec1387c2f04c658dfced6d95a))
|
||||
- **plugin-chart-table:** Add memoization to avoid rerenders ([#19976](https://github.com/apache/superset/issues/19976)) ([0f68dee](https://github.com/apache/superset/commit/0f68deedf105300c8bd2536bd205d128799c0381))
|
||||
- Remove antd-with-locales import ([#29788](https://github.com/apache/superset/issues/29788)) ([f1136b5](https://github.com/apache/superset/commit/f1136b57dd6b4cbcb7628dcbf6b1ac46e2a8301b))
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "feat: Reuse Dashboard redux data in Explore (#20668)" (#20689) ([5317462](https://github.com/apache/superset/commit/5317462b49d050d93d91eee5e97ec56e15f9f298)), closes [#20668](https://github.com/apache/superset/issues/20668) [#20689](https://github.com/apache/superset/issues/20689)
|
||||
|
||||
# [0.19.0](https://github.com/apache/superset/compare/v2021.41.0...v0.19.0) (2024-09-07)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- [sc-54864] Adds safety check to provide near term fix to save query ([#21034](https://github.com/apache/superset/issues/21034)) ([ab6ec89](https://github.com/apache/superset/commit/ab6ec89f680dbf022a39ed568c6fcdce0439b2dd))
|
||||
- annotation broken ([#20651](https://github.com/apache/superset/issues/20651)) ([7f918a4](https://github.com/apache/superset/commit/7f918a4ec0e162be13bf3fc0e2f15aaaa5450cec))
|
||||
- **annotation:** Address regression from [#24694](https://github.com/apache/superset/issues/24694) ([#24874](https://github.com/apache/superset/issues/24874)) ([f05638b](https://github.com/apache/superset/commit/f05638ba845596faef088efa3ee98686d26dad26))
|
||||
- avoid while cycle in computeMaxFontSize for big Number run forever when css rule applied ([#20173](https://github.com/apache/superset/issues/20173)) ([365acee](https://github.com/apache/superset/commit/365acee663f7942ba7d8dfd0e4cf72c4cecb7a2d))
|
||||
- BIGINT rendering regression in chartAction ([#21937](https://github.com/apache/superset/issues/21937)) ([4002406](https://github.com/apache/superset/commit/40024064ae35e596215a79d98ed8d0b4a90847f2))
|
||||
- chart empty state & result panel when multiple queries are executed display incorrectly ([#20816](https://github.com/apache/superset/issues/20816)) ([279ab95](https://github.com/apache/superset/commit/279ab954b1977f7729442733a31c67715476a620))
|
||||
- **charts:** big-number display broken in echarts ([#24492](https://github.com/apache/superset/issues/24492)) ([3f17945](https://github.com/apache/superset/commit/3f179457457bc2a21a824895aa1cd99b586d9ea0))
|
||||
- **chart:** Set max row limit + removed the option to use an empty row limit value ([#26151](https://github.com/apache/superset/issues/26151)) ([863f8bb](https://github.com/apache/superset/commit/863f8bbbcdd078814973d444368c12e06ad0c0c0))
|
||||
- **charts:** Hide Values greater than Max Y Axis Bound on Mixed Time Series with Bar series ([#21015](https://github.com/apache/superset/issues/21015)) ([bdcc0a9](https://github.com/apache/superset/commit/bdcc0a9bcfff476bcd43edc84f08423d8f415d50))
|
||||
- **Charts:** Set max row limit + removed the option to use an empty row limit value ([#25579](https://github.com/apache/superset/issues/25579)) ([f556ef5](https://github.com/apache/superset/commit/f556ef53f3177746ec2526b4b963da4ef00c2d58))
|
||||
- **charts:** Time grain is None when dataset uses Jinja ([#25842](https://github.com/apache/superset/issues/25842)) ([7536dd1](https://github.com/apache/superset/commit/7536dd12cdd58a1bca7d72952a2b74641f16c959))
|
||||
- clean up chart metadata config ([#19143](https://github.com/apache/superset/issues/19143)) ([3d66912](https://github.com/apache/superset/commit/3d66912d89851f03c38803b29128a45d66b34cb6))
|
||||
- **codecov:** improve core code coverage ([#20274](https://github.com/apache/superset/issues/20274)) ([5425504](https://github.com/apache/superset/commit/54255042310b9810c09fee25d475a4a1bc8f75de))
|
||||
- color collision in dashboard with tabs ([#24670](https://github.com/apache/superset/issues/24670)) ([0328dd2](https://github.com/apache/superset/commit/0328dd270467e71260bfa85078beb7b38a87877b))
|
||||
- core coverage and add a coverage step in workflow ([#20784](https://github.com/apache/superset/issues/20784)) ([9c7bcfc](https://github.com/apache/superset/commit/9c7bcfceadb1101899d6c09330aa8e79330d656f))
|
||||
- custom SQL in the XAxis ([#21847](https://github.com/apache/superset/issues/21847)) ([0a4ecca](https://github.com/apache/superset/commit/0a4ecca9f259e2ee9cff27a879f2a889f876c7d7))
|
||||
- **dashboard:** Add correct icon, label and badge to horizontal native filters dropdown button ([#22211](https://github.com/apache/superset/issues/22211)) ([435926b](https://github.com/apache/superset/commit/435926b89e08395f3017a32ea00f3de252fd4fb7))
|
||||
- **dashboard:** Add remark plugin on markdown ([#23502](https://github.com/apache/superset/issues/23502)) ([439d687](https://github.com/apache/superset/commit/439d687e1f88cad8326c41a3f1dd67a1f5a9ee69))
|
||||
- **dashboard:** Allow selecting text in cells in Table and PivotTable without triggering cross filters ([#23283](https://github.com/apache/superset/issues/23283)) ([d16512b](https://github.com/apache/superset/commit/d16512b7758e36a1263fc63bd7d9d1f93060dc93))
|
||||
- **Dashboard:** Color inconsistency on refreshes and conflicts ([#27439](https://github.com/apache/superset/issues/27439)) ([313ee59](https://github.com/apache/superset/commit/313ee596f5435894f857d72be7269d5070c8c964))
|
||||
- **dashboard:** deepmerge htmlSchemaOverrides ([#23329](https://github.com/apache/superset/issues/23329)) ([3919ca6](https://github.com/apache/superset/commit/3919ca60608e1c2d3cfef99d5a8d9d2aef227843))
|
||||
- **dashboard:** Fix FilterWithDataMask typing and add null check ([#22260](https://github.com/apache/superset/issues/22260)) ([a642d12](https://github.com/apache/superset/commit/a642d126f8019d8f96cc206abfeda7ddc19eda7f))
|
||||
- **dashboard:** Prevent XSS attack vector ([#21822](https://github.com/apache/superset/issues/21822)) ([ec20c01](https://github.com/apache/superset/commit/ec20c0104e6913cd9b2ab8bacae22eb25ae4cce1))
|
||||
- **dependencies:** stopping (and preventing) full lodash library import... now using only method level imports. ([#26710](https://github.com/apache/superset/issues/26710)) ([1d4b8b6](https://github.com/apache/superset/commit/1d4b8b69896776cf8831b8202e69424e14067011))
|
||||
- **Dev-Server:** Edit ChartPropsConfig reexport to be a type object ([#28225](https://github.com/apache/superset/issues/28225)) ([2e5f3ed](https://github.com/apache/superset/commit/2e5f3ed85149951200645e00e79a543de9bec02f))
|
||||
- Drill to detail on values with comma ([#21151](https://github.com/apache/superset/issues/21151)) ([0bf4e56](https://github.com/apache/superset/commit/0bf4e56dc3e129d2b9239f055212249ba95521e4))
|
||||
- drilling on the categorical xaxis on the stacked barchart v2 ([#21844](https://github.com/apache/superset/issues/21844)) ([f41d0b0](https://github.com/apache/superset/commit/f41d0b0cbf47042bf510dc2b0b24b68e3fa11d37))
|
||||
- drop the first level of MultiIndex ([#19716](https://github.com/apache/superset/issues/19716)) ([9425dd2](https://github.com/apache/superset/commit/9425dd2cac42f1a92f621848c469cadcc483e757))
|
||||
- **embedded:** CSV download for chart ([#20261](https://github.com/apache/superset/issues/20261)) ([ab9f72f](https://github.com/apache/superset/commit/ab9f72f1a1359a59e64afd9e820d5823fd53b77b))
|
||||
- **embedded:** Ensure guest token is passed to log endpoint ([#20647](https://github.com/apache/superset/issues/20647)) ([dfab521](https://github.com/apache/superset/commit/dfab521f50593b97fc778475498920552cad15dc))
|
||||
- **embedded:** third party cookies ([#20019](https://github.com/apache/superset/issues/20019)) ([3e36d4a](https://github.com/apache/superset/commit/3e36d4a0a1d9e1a1d2d009b6b8db1042d3d37d8b))
|
||||
- **explore:** Adhoc columns don't display correctly ([#20802](https://github.com/apache/superset/issues/20802)) ([af1bddf](https://github.com/apache/superset/commit/af1bddffad930efc0583b638716980db6747bfbc))
|
||||
- **explore:** Filters with custom SQL disappearing ([#21114](https://github.com/apache/superset/issues/21114)) ([55304b0](https://github.com/apache/superset/commit/55304b02cd599827359cd13e3fe6ccb8581e0fd2))
|
||||
- **Explore:** Pivot table V2 sort by failure with D&D enabled ([#18835](https://github.com/apache/superset/issues/18835)) ([eafe0cf](https://github.com/apache/superset/commit/eafe0cfc6f040670a9b35ebcd27f5c83eabe068e))
|
||||
- Fix console errors about feature flags when running tests ([#21275](https://github.com/apache/superset/issues/21275)) ([742dbdd](https://github.com/apache/superset/commit/742dbdd0a5c0f0f75d56101b3551077ec06cd53f))
|
||||
- **frontend:** allow "constructor" property in response data ([#25407](https://github.com/apache/superset/issues/25407)) ([a1983e4](https://github.com/apache/superset/commit/a1983e468ba1a1b0fdbef9d8d5206e61be0b7141))
|
||||
- invalid float number format by json-bigint ([#21968](https://github.com/apache/superset/issues/21968)) ([3bb9187](https://github.com/apache/superset/commit/3bb91877974650ab3fa82539a30dc0e2a7045dd7))
|
||||
- invalid float number format by json-bigint ([#21996](https://github.com/apache/superset/issues/21996)) ([3a02339](https://github.com/apache/superset/commit/3a023392e6bfec9660449b7b739530574d2a8238))
|
||||
- local warning in the frontend development ([#17727](https://github.com/apache/superset/issues/17727)) ([142b5bc](https://github.com/apache/superset/commit/142b5bc506c81847e503e76e498c06e8321dffb1))
|
||||
- **native filters:** rendering performance improvement by reduce overrendering ([#25901](https://github.com/apache/superset/issues/25901)) ([e1d73d5](https://github.com/apache/superset/commit/e1d73d5420867b0310d4c2608686d5ccca94920f))
|
||||
- **nativeFilters:** Speed up native filters by removing unnecessary rerenders ([#25282](https://github.com/apache/superset/issues/25282)) ([a0eeb4d](https://github.com/apache/superset/commit/a0eeb4d767df9f573d80b520cf8afe42013616bb))
|
||||
- **nav:** infinite redirect and upload dataset nav permissions ([#19708](https://github.com/apache/superset/issues/19708)) ([32a9265](https://github.com/apache/superset/commit/32a9265cc0cb850910e55b6f49a73169fc7ed377))
|
||||
- Only redirect to relative paths when authentication expires ([#18714](https://github.com/apache/superset/issues/18714)) ([8027f5f](https://github.com/apache/superset/commit/8027f5f0a63425c280121d671ae843e4c420793b))
|
||||
- **plugin-chart-echarts:** support forced categorical x-axis ([#26404](https://github.com/apache/superset/issues/26404)) ([219c4a1](https://github.com/apache/superset/commit/219c4a14b359b77dbfcda74e66b7d06c3792b861))
|
||||
- **plugin-chart-echarts:** undefined bounds for bubble chart ([#26243](https://github.com/apache/superset/issues/26243)) ([5df544b](https://github.com/apache/superset/commit/5df544b6fb079e98d4ab6839cfbdf7f08358a950))
|
||||
- **plugin-chart-table:** Include time control ([#23533](https://github.com/apache/superset/issues/23533)) ([13ffb4b](https://github.com/apache/superset/commit/13ffb4b7c203cfa8ebec602fc7c25103eebc019f))
|
||||
- **plugin:** Period Over Period KPI Plugin Feature flag value ([#26985](https://github.com/apache/superset/issues/26985)) ([db79c37](https://github.com/apache/superset/commit/db79c37707ea08166fc7b664823ff51f439ce1e6))
|
||||
- process color scheme configs correctly ([#17786](https://github.com/apache/superset/issues/17786)) ([de3d397](https://github.com/apache/superset/commit/de3d3973a249ab56b294d3f5d770a79fe8970abd))
|
||||
- **Query:** Parse html string error responses to avoid displaying raw HTML as error message ([#29321](https://github.com/apache/superset/issues/29321)) ([de6a518](https://github.com/apache/superset/commit/de6a518161b283e8df7e2b450e5dada6e37efe7b))
|
||||
- Redirect on 401 ([#17597](https://github.com/apache/superset/issues/17597)) ([46cdc77](https://github.com/apache/superset/commit/46cdc77ae64d0cc55a54719c748391b92a475a33))
|
||||
- Redirect to full url on 401 ([#19357](https://github.com/apache/superset/issues/19357)) ([b8e5954](https://github.com/apache/superset/commit/b8e595413fa02b5f00c7b91df6283701a5f1b972))
|
||||
- repeated color in the same chart ([#23762](https://github.com/apache/superset/issues/23762)) ([66594ad](https://github.com/apache/superset/commit/66594ad64739f096d2dca93591ed2d5a4754d562))
|
||||
- Revert "fix(Charts): Set max row limit + removed the option to use an empty row limit value" ([#25753](https://github.com/apache/superset/issues/25753)) ([e2fe967](https://github.com/apache/superset/commit/e2fe96778887d203a852cf09def151ff024cfaf7))
|
||||
- Revert enabling CSP ([#24476](https://github.com/apache/superset/issues/24476)) ([fb08e0e](https://github.com/apache/superset/commit/fb08e0ecfc81cba37e26620a7b6d88fbd5658cb8))
|
||||
- row limits & row count labels are confusing ([#27700](https://github.com/apache/superset/issues/27700)) ([12fe292](https://github.com/apache/superset/commit/12fe2929a4a4b5627d9cff701a1e73644e78ac47))
|
||||
- save columns reference from sqllab save datasets flow ([#24248](https://github.com/apache/superset/issues/24248)) ([93e1db4](https://github.com/apache/superset/commit/93e1db4bd9d045b8a9b345733a60139cb213ab86))
|
||||
- save dataset and repopulate state ([#20965](https://github.com/apache/superset/issues/20965)) ([463406f](https://github.com/apache/superset/commit/463406ff095375613bf0270343a4af53142c84d6))
|
||||
- smarter date formatter ([#25404](https://github.com/apache/superset/issues/25404)) ([f0080f9](https://github.com/apache/superset/commit/f0080f9c559c407c5d06e03db27f2cc40fb227e2))
|
||||
- **sqllab:** invalid sanitization on comparison symbol ([#25903](https://github.com/apache/superset/issues/25903)) ([581d3c7](https://github.com/apache/superset/commit/581d3c710867120f85ddfc097713e5f2880722c1))
|
||||
- **sqllab:** normalize changedOn timestamp ([#24513](https://github.com/apache/superset/issues/24513)) ([036294a](https://github.com/apache/superset/commit/036294a1910ad777307ce7c252625b0fefdfa4d8))
|
||||
- SSH Tunnel configuration settings ([#27186](https://github.com/apache/superset/issues/27186)) ([89e89de](https://github.com/apache/superset/commit/89e89de341c555a1fdbe9d3f5bccada58eb08059))
|
||||
- superset-ui/core code coverage ([#20676](https://github.com/apache/superset/issues/20676)) ([8d4994a](https://github.com/apache/superset/commit/8d4994a89900c2cf636444e4febad61ce3b69d68))
|
||||
- superset-ui/core codes coverage ([#20324](https://github.com/apache/superset/issues/20324)) ([d04357c](https://github.com/apache/superset/commit/d04357c47bec7bac49c602f3d2166375892200ad))
|
||||
- support custom links in markdown ([#26211](https://github.com/apache/superset/issues/26211)) ([d2adc85](https://github.com/apache/superset/commit/d2adc858cbdf1242d96cf7cc0363e39afba88990))
|
||||
- suppress translation warning in jest ([#20404](https://github.com/apache/superset/issues/20404)) ([9fad26f](https://github.com/apache/superset/commit/9fad26fa1919fceda4abdfce0b973d536b42b6af))
|
||||
- Table sorting reset ([#23318](https://github.com/apache/superset/issues/23318)) ([da3791a](https://github.com/apache/superset/commit/da3791ad3daa209631a588394600d1a8b635e814))
|
||||
- Time Column on Generic X-axis ([#23021](https://github.com/apache/superset/issues/23021)) ([464ddee](https://github.com/apache/superset/commit/464ddee4b4164460193027645d87cb25e7b2320e))
|
||||
- Timeseries Y-axis format with contribution mode ([#27106](https://github.com/apache/superset/issues/27106)) ([af577d6](https://github.com/apache/superset/commit/af577d64b17a9730e28e9021376318326fe31437))
|
||||
- Total calculation in stacked Timeseries charts ([#24477](https://github.com/apache/superset/issues/24477)) ([c5b4ecd](https://github.com/apache/superset/commit/c5b4ecdca519ab4309a47bfc8feb4a1665c6ce96))
|
||||
- **trino:** normalize non-iso timestamps ([#23339](https://github.com/apache/superset/issues/23339)) ([a591130](https://github.com/apache/superset/commit/a591130e0bd3c817af9ad937f63f1af1fce90740))
|
||||
- type of AnnotationLayer ([#21878](https://github.com/apache/superset/issues/21878)) ([f4a4ab4](https://github.com/apache/superset/commit/f4a4ab41e05be90b31ab2f9d2a0f23110bd5df21))
|
||||
- typescript errors in 4.0 ([#27402](https://github.com/apache/superset/issues/27402)) ([ce0b70c](https://github.com/apache/superset/commit/ce0b70cc8685aa4d83c0c4ad0fb8f03fb7e28ede))
|
||||
- Typing of labelMap ([#21181](https://github.com/apache/superset/issues/21181)) ([1143e17](https://github.com/apache/superset/commit/1143e17742d1fa4c4cbae2c86e4998f4cc7e9f88))
|
||||
- typo on doc string ([#19346](https://github.com/apache/superset/issues/19346)) ([2af2d00](https://github.com/apache/superset/commit/2af2d00e852032e1d4eaaa50fd7e8d5415a1db16))
|
||||
- Use default custom time range time without timezone ([#29669](https://github.com/apache/superset/issues/29669)) ([cd713a2](https://github.com/apache/superset/commit/cd713a239e8f8d0e990dda900632972586af8d00))
|
||||
- useTruncation infinite loop, reenable dashboard cross links on ChartList ([#27701](https://github.com/apache/superset/issues/27701)) ([ae0f2ce](https://github.com/apache/superset/commit/ae0f2ce3c11aaeef9d8f3ee17ab68d4a4219ae81))
|
||||
|
||||
### Features
|
||||
|
||||
- a simple LRUCache in frontend ([#20842](https://github.com/apache/superset/issues/20842)) ([55a89df](https://github.com/apache/superset/commit/55a89dfac93f9855dbf1beb2ee0c0f21da54095b))
|
||||
- add 'dashboard.nav.right' extension to registry ([#20835](https://github.com/apache/superset/issues/20835)) ([226712d](https://github.com/apache/superset/commit/226712d831a80cc44213c5ce8ed921518ea0397c))
|
||||
- Add 3 new extension points for inserting custom icons ([#22027](https://github.com/apache/superset/issues/22027)) ([c870fbe](https://github.com/apache/superset/commit/c870fbe9e290e9305e6019bb4e9932bbd736b6dc))
|
||||
- Add currencies controls in control panels ([#24718](https://github.com/apache/superset/issues/24718)) ([f7e76d0](https://github.com/apache/superset/commit/f7e76d02b7cbe4940946673590bb979984ace9f5))
|
||||
- Add deck.gl Heatmap Visualization ([#23551](https://github.com/apache/superset/issues/23551)) ([fc8c537](https://github.com/apache/superset/commit/fc8c537118ce6c7b3a4624f88a31e2e7fb287327))
|
||||
- add extension point for workspace home page ([#21033](https://github.com/apache/superset/issues/21033)) ([83dd851](https://github.com/apache/superset/commit/83dd85166f917a5cff8c94d2b4d2c298182494b9))
|
||||
- add extension point to the right side of the menu bar ([#20514](https://github.com/apache/superset/issues/20514)) ([f2af81b](https://github.com/apache/superset/commit/f2af81b1c74a56e6854039cfe5f32e9b035ce262))
|
||||
- add extension point to the top of welcome page ([#20575](https://github.com/apache/superset/issues/20575)) ([2389871](https://github.com/apache/superset/commit/2389871556cde32c61bc694f09b4e7dbc5432af5))
|
||||
- add new SQLLAB_FORCE_RUN_ASYNC feature flag ([#29231](https://github.com/apache/superset/issues/29231)) ([5e060ce](https://github.com/apache/superset/commit/5e060cef7c0ec197a44b92490eb11c5a39282c92))
|
||||
- add renameOperator ([#19776](https://github.com/apache/superset/issues/19776)) ([3c28cd4](https://github.com/apache/superset/commit/3c28cd4625fdeeaeeac3ed730907af1fb86bc86e))
|
||||
- add slackv2 notification ([#29264](https://github.com/apache/superset/issues/29264)) ([6dbfe2a](https://github.com/apache/superset/commit/6dbfe2aab9488d5b35a16b45f873c814d97768f5))
|
||||
- add support for comments in adhoc clauses ([#19248](https://github.com/apache/superset/issues/19248)) ([f341025](https://github.com/apache/superset/commit/f341025d80aacf7345e7c20f8463231b9197ea58))
|
||||
- add support to NOT LIKE operator ([#29384](https://github.com/apache/superset/issues/29384)) ([9724c99](https://github.com/apache/superset/commit/9724c993419952fbcbeb8cd19e51a723fc663b04))
|
||||
- Adds drill to detail context menu for ECharts visualizations ([#20891](https://github.com/apache/superset/issues/20891)) ([3df8335](https://github.com/apache/superset/commit/3df8335f8792c85d7e2f7fefa5dd60fb2c0befaf))
|
||||
- Adds support to multiple dependencies to the native filters ([#18793](https://github.com/apache/superset/issues/18793)) ([06e1e42](https://github.com/apache/superset/commit/06e1e4285ea52d27f9b7b7dfea59f9652ee0dcfe))
|
||||
- Adds the CROSS_REFERENCE feature flag ([#21708](https://github.com/apache/superset/issues/21708)) ([1cbf066](https://github.com/apache/superset/commit/1cbf0664152cef5d47720e1acffb955c328e291e))
|
||||
- Adds the ECharts Heatmap chart ([#25353](https://github.com/apache/superset/issues/25353)) ([546d48a](https://github.com/apache/superset/commit/546d48adbb84b1354d6a3d4ae88dbeba0ad14d44))
|
||||
- Adds the ECharts Histogram chart ([#28652](https://github.com/apache/superset/issues/28652)) ([896fe85](https://github.com/apache/superset/commit/896fe854dc3865214325cfceea94824ff41a1b6c))
|
||||
- Adds the HORIZONTAL_FILTER_BAR feature flag ([#21935](https://github.com/apache/superset/issues/21935)) ([779d9f7](https://github.com/apache/superset/commit/779d9f75336ce38ab346e27dcb6a77e5a68cf823))
|
||||
- **advanced analysis:** support MultiIndex column in post processing stage ([#19116](https://github.com/apache/superset/issues/19116)) ([375c03e](https://github.com/apache/superset/commit/375c03e08407570bcf417acf5f3d25b28843329c))
|
||||
- **advanced analytics:** support groupby in resample ([#18045](https://github.com/apache/superset/issues/18045)) ([0c7f728](https://github.com/apache/superset/commit/0c7f7288d8cded5dc73d49d1e0be397e748d4f10))
|
||||
- **alert report tabs:** adding feature flag ([#27773](https://github.com/apache/superset/issues/27773)) ([aef325a](https://github.com/apache/superset/commit/aef325a41687804b3e9ee6731e99821062604c43))
|
||||
- apply Time Grain to X-Axis column ([#21163](https://github.com/apache/superset/issues/21163)) ([ce3d38d](https://github.com/apache/superset/commit/ce3d38d2e72a56014fa96ee3d4afe066277cc5be))
|
||||
- Axis sort in the Bar Chart V2 ([#21993](https://github.com/apache/superset/issues/21993)) ([22fab5e](https://github.com/apache/superset/commit/22fab5e58ce574e962518067d982e3036449e580))
|
||||
- **build:** uplift `Jest` to v29 ([#29118](https://github.com/apache/superset/issues/29118)) ([dffad48](https://github.com/apache/superset/commit/dffad4850404abed68700cc18d9124abe7594aa4))
|
||||
- **business-types:** initial implementation of SIP-78 ([#18794](https://github.com/apache/superset/issues/18794)) ([ddc01ea](https://github.com/apache/superset/commit/ddc01ea7813ef7c02cfc2aee7cbf554a45628f25))
|
||||
- **chart:** add feature flag that displays the data pane closes by default ([#21649](https://github.com/apache/superset/issues/21649)) ([ebd7536](https://github.com/apache/superset/commit/ebd75366c0c7acd6d4619996c4f209b51af518e2))
|
||||
- **color:** color consistency enhancements ([#21507](https://github.com/apache/superset/issues/21507)) ([7a7181a](https://github.com/apache/superset/commit/7a7181a2449598b09298f3a113849caeb3309186))
|
||||
- **color:** support analogous colors to prevent color conflict ([#19325](https://github.com/apache/superset/issues/19325)) ([90c9dae](https://github.com/apache/superset/commit/90c9daea08cd59ba7261c13e1ce4e80a72f84b48))
|
||||
- Convert ENABLE_BROAD_ACTIVITY_ACCESS and MENU_HIDE_USER_INFO into feature flags ([#24345](https://github.com/apache/superset/issues/24345)) ([a7f7f66](https://github.com/apache/superset/commit/a7f7f6645dd374bee4358544c87e5c3120dcdb73))
|
||||
- custom d3 number locale ([#20075](https://github.com/apache/superset/issues/20075)) ([a170ae4](https://github.com/apache/superset/commit/a170ae4368298207b5a5c9a698889c865fd73421))
|
||||
- **dashboard:** Add cross filter from context menu ([#23141](https://github.com/apache/superset/issues/23141)) ([ee1952e](https://github.com/apache/superset/commit/ee1952e488f2cd0913fe6f35ffe551d18ee3d143))
|
||||
- **dashboard:** Add Drill to Detail modal w/ chart menu + right-click support ([#20728](https://github.com/apache/superset/issues/20728)) ([52648ec](https://github.com/apache/superset/commit/52648ecd7f6158473ec198e1ade9a5a69008b752))
|
||||
- **dashboard:** confirm overwrite to prevent unintended changes ([#21819](https://github.com/apache/superset/issues/21819)) ([ef6b9a9](https://github.com/apache/superset/commit/ef6b9a97d594f748ab710e27281d41ee5250d33a))
|
||||
- **dashboard:** make color indices referable ([#23657](https://github.com/apache/superset/issues/23657)) ([c8fa44e](https://github.com/apache/superset/commit/c8fa44e9e904160de705cd643d1df092815348b1))
|
||||
- **dashboard:** menu improvements, fallback support for Drill to Detail ([#21351](https://github.com/apache/superset/issues/21351)) ([76e57ec](https://github.com/apache/superset/commit/76e57ec651bbfaf4f76031eeeca66f6a1fa81bc2))
|
||||
- **dashboard:** Transition to Explore with React Router ([#20606](https://github.com/apache/superset/issues/20606)) ([de4f7db](https://github.com/apache/superset/commit/de4f7db57ec33c497be9c880fde534a1f026241f))
|
||||
- database extension registry ([#23174](https://github.com/apache/superset/issues/23174)) ([6b54591](https://github.com/apache/superset/commit/6b5459121f9542c9f0976aec1ebdfe7b1a078472))
|
||||
- **deckgl-map:** use an arbitraty Mabpox style URL ([#26027](https://github.com/apache/superset/issues/26027)) ([#26031](https://github.com/apache/superset/issues/26031)) ([af58784](https://github.com/apache/superset/commit/af587840403d83a7da7fb0f57bc10ad2335d4eeb))
|
||||
- Drill by open in Explore ([#23575](https://github.com/apache/superset/issues/23575)) ([117360c](https://github.com/apache/superset/commit/117360cd57bdbf9fd60fc479c6fe64dc077dbfee))
|
||||
- Dynamic dashboard component ([#17208](https://github.com/apache/superset/issues/17208)) ([bcad1ac](https://github.com/apache/superset/commit/bcad1acec27823756dc403f6e982f5e59ec6d6cf))
|
||||
- embedded dashboard core ([#17530](https://github.com/apache/superset/issues/17530)) ([4ad5ad0](https://github.com/apache/superset/commit/4ad5ad045a9adb506d14b2c02fdbefc564d25bdb)), closes [#17175](https://github.com/apache/superset/issues/17175) [#17450](https://github.com/apache/superset/issues/17450) [#17517](https://github.com/apache/superset/issues/17517) [#17529](https://github.com/apache/superset/issues/17529) [#17757](https://github.com/apache/superset/issues/17757) [#17836](https://github.com/apache/superset/issues/17836)
|
||||
- explicit distribute columns on BoxPlot and apply time grain ([#21593](https://github.com/apache/superset/issues/21593)) ([93f08e7](https://github.com/apache/superset/commit/93f08e778bfd48be150749f22d0b184467da73ac))
|
||||
- **explore:** add config for default time filter ([#21879](https://github.com/apache/superset/issues/21879)) ([9a063ab](https://github.com/apache/superset/commit/9a063abb3b28e32b1107950942571d564bb283f8))
|
||||
- **explore:** Color scheme groups, new color schemes ([#27995](https://github.com/apache/superset/issues/27995)) ([bbfe5c0](https://github.com/apache/superset/commit/bbfe5c0ae88df8556b3390b06ce9e400cabdc943))
|
||||
- **explore:** Don't discard controls with custom sql when changing datasource ([#20934](https://github.com/apache/superset/issues/20934)) ([cddc361](https://github.com/apache/superset/commit/cddc361adc483ed605857a2eb39c5efffa089076))
|
||||
- **explore:** export csv data pivoted for Pivot Table [ID-9] ([#17512](https://github.com/apache/superset/issues/17512)) ([07e8837](https://github.com/apache/superset/commit/07e8837093b79b08e18224dd6765a2fc15a0e770))
|
||||
- **explore:** Frontend implementation of dataset creation from infobox ([#19855](https://github.com/apache/superset/issues/19855)) ([ba0c37d](https://github.com/apache/superset/commit/ba0c37d3df85b1af39404af1d578daeb0ff2d278))
|
||||
- **explore:** Implement chart empty states ([#18678](https://github.com/apache/superset/issues/18678)) ([167e18e](https://github.com/apache/superset/commit/167e18e806799dede3aa56da98be11f4751f0272))
|
||||
- extension hook for DB delete ([#24191](https://github.com/apache/superset/issues/24191)) ([9df8d8d](https://github.com/apache/superset/commit/9df8d8dda538095ba3b30d1f82aa81acf17e1c95))
|
||||
- **formatters:** Add custom d3-time-format locale ([#24263](https://github.com/apache/superset/issues/24263)) ([024cfd8](https://github.com/apache/superset/commit/024cfd86e408ec5f7ddf49a9e90908e2fb2e6b70))
|
||||
- Frontend tagging ([#20876](https://github.com/apache/superset/issues/20876)) ([a40c12d](https://github.com/apache/superset/commit/a40c12d63e04811f3a710a862298bfa68dfde3d8))
|
||||
- generate consistent QueryObject whether GenericAxis is enabled or disabled ([#21519](https://github.com/apache/superset/issues/21519)) ([4d12e37](https://github.com/apache/superset/commit/4d12e3709eb7ab1cc4f687c15ed54a4738266482))
|
||||
- Implement context menu for drill by ([#23454](https://github.com/apache/superset/issues/23454)) ([9fbfd1c](https://github.com/apache/superset/commit/9fbfd1c1d883f983ef96b8812297721e2a1a9695))
|
||||
- Implement currencies formatter for saved metrics ([#24517](https://github.com/apache/superset/issues/24517)) ([83ff4cd](https://github.com/apache/superset/commit/83ff4cd86a4931fc8eda83aeb3d8d3c92d773202))
|
||||
- Implement support for currencies in more charts ([#24594](https://github.com/apache/superset/issues/24594)) ([d74d7ec](https://github.com/apache/superset/commit/d74d7eca23a3c94bc48af082c115d34c103e815d))
|
||||
- improve color consistency (save all labels) ([#19038](https://github.com/apache/superset/issues/19038)) ([dc57508](https://github.com/apache/superset/commit/dc575080d7e43d40b1734bb8f44fdc291cb95b11))
|
||||
- Improves SafeMarkdown HTML sanitization ([#21895](https://github.com/apache/superset/issues/21895)) ([7d1df3b](https://github.com/apache/superset/commit/7d1df3b78d5d7147dd9d627317e3f9f10d279ae0))
|
||||
- Improves the Drill By feature ([#29242](https://github.com/apache/superset/issues/29242)) ([08e44c0](https://github.com/apache/superset/commit/08e44c085014ca258fe0c22886067dc716a910c6))
|
||||
- Improves the Waterfall chart ([#25557](https://github.com/apache/superset/issues/25557)) ([d619078](https://github.com/apache/superset/commit/d619078d25dde63c55e9afd87e98f05d4fb82b86))
|
||||
- make data tables support html ([#24368](https://github.com/apache/superset/issues/24368)) ([d2b0b8e](https://github.com/apache/superset/commit/d2b0b8eac52ad8b68639c6581a1ed174a593f564))
|
||||
- Move cross filters to Dashboard ([#22785](https://github.com/apache/superset/issues/22785)) ([9ed2326](https://github.com/apache/superset/commit/9ed2326a20329d41abc8e0995b0ba6110379088f))
|
||||
- **native-filters:** Adjust filter components for horizontal mode ([#22273](https://github.com/apache/superset/issues/22273)) ([eb6045a](https://github.com/apache/superset/commit/eb6045adfa77e06c8aaf3de217719ca59d4328e1))
|
||||
- Pass dashboard context to explore through local storage ([#20743](https://github.com/apache/superset/issues/20743)) ([0945d4a](https://github.com/apache/superset/commit/0945d4a2f46667aebb9b93d0d7685215627ad237))
|
||||
- Period over Period Big Number comparison chart ([#26908](https://github.com/apache/superset/issues/26908)) ([a09e555](https://github.com/apache/superset/commit/a09e5557bc8b40e46495b9473959327118dfaacf))
|
||||
- **plugin-chart-echarts:** support non-timeseries x-axis ([#17917](https://github.com/apache/superset/issues/17917)) ([e9651ea](https://github.com/apache/superset/commit/e9651ea52fdc0edb574bfb9dc1b22c225bcc068f)), closes [#18021](https://github.com/apache/superset/issues/18021) [#18039](https://github.com/apache/superset/issues/18039) [#17569](https://github.com/apache/superset/issues/17569) [#18037](https://github.com/apache/superset/issues/18037)
|
||||
- Programmatically open "more filters" dropdown in Horizontal Filter Bar ([#22276](https://github.com/apache/superset/issues/22276)) ([df91664](https://github.com/apache/superset/commit/df91664217b5369d1f742ce03596a366e18cd4b9))
|
||||
- Reuse Dashboard redux data in Explore ([#20668](https://github.com/apache/superset/issues/20668)) ([ff5b4bc](https://github.com/apache/superset/commit/ff5b4bc0e47f057e0660d453a9e53f939613356b))
|
||||
- root context provider extension point ([#22188](https://github.com/apache/superset/issues/22188)) ([aa97ba4](https://github.com/apache/superset/commit/aa97ba4509431a82922f2fa6930928093c876d6f))
|
||||
- **select:** keep options order when in single mode ([#19085](https://github.com/apache/superset/issues/19085)) ([ae13d83](https://github.com/apache/superset/commit/ae13d8313b5687374f5b24e02bccdcc717ba19eb))
|
||||
- **SIP-95:** catalogs in SQL Lab and datasets ([#28376](https://github.com/apache/superset/issues/28376)) ([ce668d4](https://github.com/apache/superset/commit/ce668d46cc5d429a249fdd9e091650457da20361))
|
||||
- **sqllab:** ResultTable extension ([#25423](https://github.com/apache/superset/issues/25423)) ([deef3b0](https://github.com/apache/superset/commit/deef3b04ebed1178259af5909779392cfa0cd630))
|
||||
- **sqllab:** SQLEditor Extension ([#24205](https://github.com/apache/superset/issues/24205)) ([1d9a761](https://github.com/apache/superset/commit/1d9a761de5410fa1bd208bca4c78614779cf3064))
|
||||
- **ssh_tunnel:** SQLAlchemy Form UI ([#22513](https://github.com/apache/superset/issues/22513)) ([5399365](https://github.com/apache/superset/commit/539936522fbbda46ebb39b65ed298f6e251a548f))
|
||||
- **ssh_tunnel:** SSH Tunnel Switch extension ([#22967](https://github.com/apache/superset/issues/22967)) ([cf395ac](https://github.com/apache/superset/commit/cf395ac2d8e04782cffc93e8a0a0b28678c407fe))
|
||||
- **storybook:** Co-habitating/Upgrading Storybooks to v7 (dependency madness ensues) ([#26907](https://github.com/apache/superset/issues/26907)) ([753ef69](https://github.com/apache/superset/commit/753ef695294ce26238b68ff41ba0a9af6aea74de))
|
||||
- **superset-ui-core:** add feature flag for the analogous colors ([#19987](https://github.com/apache/superset/issues/19987)) ([80b5578](https://github.com/apache/superset/commit/80b55786809310e28566d745308b167f0e74b144))
|
||||
- SupersetClient config to override 401 behavior ([#19144](https://github.com/apache/superset/issues/19144)) ([96a123f](https://github.com/apache/superset/commit/96a123f553f80ae7454daaf139b33e1397d9e3f7))
|
||||
- Support further drill by in the modal ([#23615](https://github.com/apache/superset/issues/23615)) ([587e775](https://github.com/apache/superset/commit/587e7759b1b674440ac0aa705ebae6599564875f))
|
||||
- support mulitple temporal filters in AdhocFilter and move the Time Section away ([#21767](https://github.com/apache/superset/issues/21767)) ([a9b229d](https://github.com/apache/superset/commit/a9b229dd1dd9cb9dc8166b1392179fcccb4da138))
|
||||
- **table:** Table with Time Comparison ([#28057](https://github.com/apache/superset/issues/28057)) ([7ddea62](https://github.com/apache/superset/commit/7ddea62331617dad1b8ade1abe7dd8c11a1ba20d))
|
||||
- **time_comparison:** Support all date formats when computing custom and inherit offsets ([#30002](https://github.com/apache/superset/issues/30002)) ([bc6d2db](https://github.com/apache/superset/commit/bc6d2dba373e59a498d942909ab6631e5c8521e9))
|
||||
- UI override registry ([#19671](https://github.com/apache/superset/issues/19671)) ([4927685](https://github.com/apache/superset/commit/4927685c3059c0207713bceeea7c60f1f3b75ec3))
|
||||
- Utility function to render chart tooltips ([#27950](https://github.com/apache/superset/issues/27950)) ([b549977](https://github.com/apache/superset/commit/b549977f0538d6939dce756c7615052e5f2e6c93))
|
||||
- Visualize SqlLab.Query model data in Explore 📈 ([#20281](https://github.com/apache/superset/issues/20281)) ([e5e8867](https://github.com/apache/superset/commit/e5e886739460c011a885a13b873665410045a19c))
|
||||
- **viz-gallery:** add 'feature' tag and fuzzy search weighting ([#18662](https://github.com/apache/superset/issues/18662)) ([7524e1e](https://github.com/apache/superset/commit/7524e1e3c86f3de2b3b0343c3ec5efc0b345937a))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
- **dashboard:** Virtualization POC ([#21438](https://github.com/apache/superset/issues/21438)) ([406e44b](https://github.com/apache/superset/commit/406e44bba11f6b233c3b07d29efd158b8cfc9615))
|
||||
- Lazy load rehype-raw and react-markdown ([#29855](https://github.com/apache/superset/issues/29855)) ([5b5f448](https://github.com/apache/superset/commit/5b5f448af04afedec1387c2f04c658dfced6d95a))
|
||||
- **plugin-chart-table:** Add memoization to avoid rerenders ([#19976](https://github.com/apache/superset/issues/19976)) ([0f68dee](https://github.com/apache/superset/commit/0f68deedf105300c8bd2536bd205d128799c0381))
|
||||
- Remove antd-with-locales import ([#29788](https://github.com/apache/superset/issues/29788)) ([f1136b5](https://github.com/apache/superset/commit/f1136b57dd6b4cbcb7628dcbf6b1ac46e2a8301b))
|
||||
|
||||
### Reverts
|
||||
|
||||
- Revert "feat: Reuse Dashboard redux data in Explore (#20668)" (#20689) ([5317462](https://github.com/apache/superset/commit/5317462b49d050d93d91eee5e97ec56e15f9f298)), closes [#20668](https://github.com/apache/superset/issues/20668) [#20689](https://github.com/apache/superset/issues/20689)
|
||||
|
||||
# [0.18.0](https://github.com/apache-superset/superset-ui/compare/v0.17.87...v0.18.0) (2021-08-30)
|
||||
|
||||
**Note:** Version bump only for package @superset-ui/core
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@superset-ui/core",
|
||||
"version": "0.18.25",
|
||||
"version": "0.20.4",
|
||||
"description": "Superset UI core",
|
||||
"keywords": [
|
||||
"superset"
|
||||
@@ -37,7 +37,7 @@
|
||||
"jed": "^1.1.1",
|
||||
"lodash": "^4.17.21",
|
||||
"math-expression-evaluator": "^1.3.8",
|
||||
"pretty-ms": "^9.1.0",
|
||||
"pretty-ms": "^9.2.0",
|
||||
"react-error-boundary": "^1.2.5",
|
||||
"react-markdown": "^8.0.7",
|
||||
"rehype-raw": "^7.0.0",
|
||||
|
||||
@@ -41,6 +41,7 @@ export { default as ChartDataProvider } from './components/ChartDataProvider';
|
||||
export * from './types/Base';
|
||||
export * from './types/TransformFunction';
|
||||
export * from './types/QueryResponse';
|
||||
export * from './types/VizType';
|
||||
|
||||
export { default as __hack_reexport_chart_Base } from './types/Base';
|
||||
export { default as __hack_reexport_chart_TransformFunction } from './types/TransformFunction';
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
export enum VizType {
|
||||
Area = 'echarts_area',
|
||||
Bar = 'echarts_timeseries_bar',
|
||||
BigNumber = 'big_number',
|
||||
BigNumberTotal = 'big_number_total',
|
||||
BigNumberPeriodOverPeriod = 'pop_kpi',
|
||||
BoxPlot = 'box_plot',
|
||||
Bubble = 'bubble_v2',
|
||||
Bullet = 'bullet',
|
||||
Calendar = 'cal_heatmap',
|
||||
Chord = 'chord',
|
||||
Compare = 'compare',
|
||||
CountryMap = 'country_map',
|
||||
DistBar = 'dist_bar',
|
||||
EventFlow = 'event_flow',
|
||||
Funnel = 'funnel',
|
||||
Gauge = 'gauge_chart',
|
||||
Graph = 'graph_chart',
|
||||
Handlebars = 'handlebars',
|
||||
Heatmap = 'heatmap_v2',
|
||||
Histogram = 'histogram_v2',
|
||||
Horizon = 'horizon',
|
||||
LegacyArea = 'area',
|
||||
LegacyBar = 'bar',
|
||||
LegacyBubble = 'bubble',
|
||||
LegacyHeatmap = 'heatmap',
|
||||
LegacyHistogram = 'histogram',
|
||||
LegacyLine = 'line',
|
||||
LegacySankey = 'sankey',
|
||||
Line = 'echarts_timeseries_line',
|
||||
MapBox = 'mapbox',
|
||||
MixedTimeseries = 'mixed_timeseries',
|
||||
PairedTTest = 'paired_ttest',
|
||||
ParallelCoordinates = 'para',
|
||||
Partition = 'partition',
|
||||
Pie = 'pie',
|
||||
PivotTable = 'pivot_table_v2',
|
||||
Radar = 'radar',
|
||||
Rose = 'rose',
|
||||
Sankey = 'sankey_v2',
|
||||
Scatter = 'echarts_timeseries_scatter',
|
||||
SmoothLine = 'echarts_timeseries_smooth',
|
||||
Step = 'echarts_timeseries_step',
|
||||
Sunburst = 'sunburst_v2',
|
||||
Table = 'table',
|
||||
TimePivot = 'time_pivot',
|
||||
TimeTable = 'time_table',
|
||||
Timeseries = 'echarts_timeseries',
|
||||
Tree = 'tree_chart',
|
||||
Treemap = 'treemap_v2',
|
||||
Waterfall = 'waterfall',
|
||||
WordCloud = 'word_cloud',
|
||||
WorldMap = 'world_map',
|
||||
}
|
||||
@@ -28,6 +28,7 @@ import {
|
||||
getChartBuildQueryRegistry,
|
||||
getChartMetadataRegistry,
|
||||
ChartMetadata,
|
||||
VizType,
|
||||
} from '@superset-ui/core';
|
||||
|
||||
import { LOGIN_GLOB } from '../fixtures/constants';
|
||||
@@ -86,13 +87,13 @@ describe('ChartClient', () => {
|
||||
sliceId,
|
||||
formData: {
|
||||
granularity: 'second',
|
||||
viz_type: 'bar',
|
||||
viz_type: VizType.LegacyBar,
|
||||
},
|
||||
}),
|
||||
).resolves.toEqual({
|
||||
...sankeyFormData,
|
||||
granularity: 'second',
|
||||
viz_type: 'bar',
|
||||
viz_type: VizType.LegacyBar,
|
||||
});
|
||||
});
|
||||
it('returns promise of formData if only formData was given', () =>
|
||||
@@ -101,13 +102,13 @@ describe('ChartClient', () => {
|
||||
formData: {
|
||||
datasource: '1__table',
|
||||
granularity: 'minute',
|
||||
viz_type: 'line',
|
||||
viz_type: VizType.LegacyLine,
|
||||
},
|
||||
}),
|
||||
).resolves.toEqual({
|
||||
datasource: '1__table',
|
||||
granularity: 'minute',
|
||||
viz_type: 'line',
|
||||
viz_type: VizType.LegacyLine,
|
||||
}));
|
||||
it('rejects if none of sliceId or formData is specified', () =>
|
||||
expect(
|
||||
@@ -120,12 +121,12 @@ describe('ChartClient', () => {
|
||||
describe('.loadQueryData(formData, options)', () => {
|
||||
it('returns a promise of query data for known chart type', () => {
|
||||
getChartMetadataRegistry().registerValue(
|
||||
'word_cloud',
|
||||
VizType.WordCloud,
|
||||
new ChartMetadata({ name: 'Word Cloud', thumbnail: '' }),
|
||||
);
|
||||
|
||||
getChartBuildQueryRegistry().registerValue(
|
||||
'word_cloud',
|
||||
VizType.WordCloud,
|
||||
(formData: QueryFormData) => buildQueryContext(formData),
|
||||
);
|
||||
fetchMock.post('glob:*/api/v1/chart/data', [
|
||||
@@ -138,7 +139,7 @@ describe('ChartClient', () => {
|
||||
return expect(
|
||||
chartClient.loadQueryData({
|
||||
granularity: 'minute',
|
||||
viz_type: 'word_cloud',
|
||||
viz_type: VizType.WordCloud,
|
||||
datasource: '1__table',
|
||||
}),
|
||||
).resolves.toEqual([
|
||||
@@ -255,7 +256,7 @@ describe('ChartClient', () => {
|
||||
it('loadAllDataNecessaryForAChart', () => {
|
||||
fetchMock.get(`glob:*/api/v1/form_data/?slice_id=${sliceId}`, {
|
||||
granularity: 'minute',
|
||||
viz_type: 'line',
|
||||
viz_type: VizType.LegacyLine,
|
||||
datasource: '1__table',
|
||||
color: 'living-coral',
|
||||
});
|
||||
@@ -275,12 +276,12 @@ describe('ChartClient', () => {
|
||||
});
|
||||
|
||||
getChartMetadataRegistry().registerValue(
|
||||
'line',
|
||||
VizType.LegacyLine,
|
||||
new ChartMetadata({ name: 'Line', thumbnail: '.gif' }),
|
||||
);
|
||||
|
||||
getChartBuildQueryRegistry().registerValue(
|
||||
'line',
|
||||
VizType.LegacyLine,
|
||||
(formData: QueryFormData) => buildQueryContext(formData),
|
||||
);
|
||||
|
||||
@@ -296,7 +297,7 @@ describe('ChartClient', () => {
|
||||
},
|
||||
formData: {
|
||||
granularity: 'minute',
|
||||
viz_type: 'line',
|
||||
viz_type: VizType.LegacyLine,
|
||||
datasource: '1__table',
|
||||
color: 'living-coral',
|
||||
},
|
||||
|
||||
@@ -19,11 +19,11 @@
|
||||
|
||||
/* eslint sort-keys: 'off' */
|
||||
/** The form data defined here is based on default visualizations packaged with Apache Superset */
|
||||
import { TimeGranularity } from '@superset-ui/core';
|
||||
import { TimeGranularity, VizType } from '@superset-ui/core';
|
||||
|
||||
export const bigNumberFormData = {
|
||||
datasource: '3__table',
|
||||
viz_type: 'big_number',
|
||||
viz_type: VizType.BigNumber,
|
||||
slice_id: 54,
|
||||
granularity_sqla: 'ds',
|
||||
time_grain_sqla: TimeGranularity.DAY,
|
||||
@@ -39,7 +39,7 @@ export const bigNumberFormData = {
|
||||
|
||||
export const wordCloudFormData = {
|
||||
datasource: '3__table',
|
||||
viz_type: 'word_cloud',
|
||||
viz_type: VizType.WordCloud,
|
||||
slice_id: 60,
|
||||
url_params: {},
|
||||
granularity_sqla: 'ds',
|
||||
@@ -56,7 +56,7 @@ export const wordCloudFormData = {
|
||||
|
||||
export const sunburstFormData = {
|
||||
datasource: '2__table',
|
||||
viz_type: 'sunburst_v2',
|
||||
viz_type: VizType.Sunburst,
|
||||
slice_id: 47,
|
||||
url_params: {},
|
||||
granularity_sqla: 'year',
|
||||
@@ -71,7 +71,7 @@ export const sunburstFormData = {
|
||||
|
||||
export const sankeyFormData = {
|
||||
datasource: '1__table',
|
||||
viz_type: 'sankey',
|
||||
viz_type: VizType.LegacySankey,
|
||||
slice_id: 1,
|
||||
url_params: {},
|
||||
granularity_sqla: null,
|
||||
|
||||
@@ -31,6 +31,7 @@ import {
|
||||
QueryFormData,
|
||||
DatasourceType,
|
||||
supersetTheme,
|
||||
VizType,
|
||||
} from '@superset-ui/core';
|
||||
|
||||
describe('ChartPlugin', () => {
|
||||
@@ -59,7 +60,7 @@ describe('ChartPlugin', () => {
|
||||
const FORM_DATA = {
|
||||
datasource: '1__table',
|
||||
granularity: 'day',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
};
|
||||
|
||||
it('creates a new plugin', () => {
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
* under the License.
|
||||
*/
|
||||
import fetchMock from 'fetch-mock';
|
||||
import { VizType } from '@superset-ui/core';
|
||||
import { getFormData } from '../../../../src/query/api/legacy';
|
||||
|
||||
import setupClientForTest from '../setupClientForTest';
|
||||
@@ -28,7 +29,7 @@ describe('getFormData()', () => {
|
||||
|
||||
const mockData = {
|
||||
datasource: '1__table',
|
||||
viz_type: 'sankey',
|
||||
viz_type: VizType.LegacySankey,
|
||||
slice_id: 1,
|
||||
url_params: {},
|
||||
granularity_sqla: null,
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
* under the License.
|
||||
*/
|
||||
import fetchMock from 'fetch-mock';
|
||||
import { buildQueryContext, ApiV1 } from '@superset-ui/core';
|
||||
import { buildQueryContext, ApiV1, VizType } from '@superset-ui/core';
|
||||
import setupClientForTest from '../setupClientForTest';
|
||||
|
||||
describe('API v1 > getChartData()', () => {
|
||||
@@ -39,7 +39,7 @@ describe('API v1 > getChartData()', () => {
|
||||
const result = await ApiV1.getChartData(
|
||||
buildQueryContext({
|
||||
granularity: 'minute',
|
||||
viz_type: 'word_cloud',
|
||||
viz_type: VizType.WordCloud,
|
||||
datasource: '1__table',
|
||||
}),
|
||||
);
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { buildQueryContext } from '@superset-ui/core';
|
||||
import { buildQueryContext, VizType } from '@superset-ui/core';
|
||||
import * as queryModule from '../../src/query/normalizeTimeColumn';
|
||||
|
||||
describe('buildQueryContext', () => {
|
||||
@@ -24,7 +24,7 @@ describe('buildQueryContext', () => {
|
||||
const queryContext = buildQueryContext({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
});
|
||||
expect(queryContext.datasource.id).toBe(5);
|
||||
expect(queryContext.datasource.type).toBe('table');
|
||||
@@ -37,7 +37,7 @@ describe('buildQueryContext', () => {
|
||||
{
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
source: 'source_column',
|
||||
source_category: 'source_category_column',
|
||||
target: 'target_column',
|
||||
@@ -75,7 +75,7 @@ describe('buildQueryContext', () => {
|
||||
{
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
source: 'source_column',
|
||||
source_category: 'source_category_column',
|
||||
target: 'target_column',
|
||||
@@ -103,7 +103,7 @@ describe('buildQueryContext', () => {
|
||||
const queryContext = buildQueryContext(
|
||||
{
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
},
|
||||
() => [
|
||||
{
|
||||
@@ -133,7 +133,7 @@ describe('buildQueryContext', () => {
|
||||
buildQueryContext(
|
||||
{
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
x_axis: 'axis',
|
||||
},
|
||||
() => [{}],
|
||||
|
||||
@@ -25,6 +25,7 @@ import {
|
||||
AnnotationType,
|
||||
buildQueryObject,
|
||||
QueryObject,
|
||||
VizType,
|
||||
} from '@superset-ui/core';
|
||||
|
||||
describe('buildQueryObject', () => {
|
||||
@@ -34,7 +35,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
});
|
||||
expect(query.granularity).toEqual('ds');
|
||||
});
|
||||
@@ -43,7 +44,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
metric: 'sum__num',
|
||||
secondary_metric: 'avg__num',
|
||||
});
|
||||
@@ -54,7 +55,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
extra_filters: [{ col: 'abc', op: '==', val: 'qwerty' }],
|
||||
adhoc_filters: [
|
||||
{
|
||||
@@ -88,7 +89,7 @@ describe('buildQueryObject', () => {
|
||||
{
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
my_custom_metric_control: 'sum__num',
|
||||
},
|
||||
{ my_custom_metric_control: 'metrics' },
|
||||
@@ -101,7 +102,7 @@ describe('buildQueryObject', () => {
|
||||
{
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
metrics: ['sum__num'],
|
||||
my_custom_metric_control: 'avg__num',
|
||||
},
|
||||
@@ -115,7 +116,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
limit: series_limit,
|
||||
});
|
||||
expect(query.series_limit).toEqual(series_limit);
|
||||
@@ -126,7 +127,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
series_limit,
|
||||
});
|
||||
expect(query.series_limit).toEqual(series_limit);
|
||||
@@ -137,7 +138,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
order_desc: orderDesc,
|
||||
});
|
||||
expect(query.order_desc).toEqual(orderDesc);
|
||||
@@ -148,7 +149,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
timeseries_limit_metric: metric,
|
||||
});
|
||||
expect(query.series_limit_metric).toEqual(metric);
|
||||
@@ -159,7 +160,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'pivot_table_v2',
|
||||
viz_type: VizType.PivotTable,
|
||||
series_limit_metric: metric,
|
||||
});
|
||||
expect(query.series_limit_metric).toEqual(metric);
|
||||
@@ -170,7 +171,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'pivot_table_v2',
|
||||
viz_type: VizType.PivotTable,
|
||||
series_limit_metric: metric,
|
||||
});
|
||||
expect(query.series_limit_metric).toEqual(undefined);
|
||||
@@ -180,7 +181,7 @@ describe('buildQueryObject', () => {
|
||||
const baseQuery = {
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
row_limit: null,
|
||||
};
|
||||
|
||||
@@ -267,7 +268,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
annotation_layers: annotationLayers,
|
||||
});
|
||||
expect(query.annotation_layers).toEqual(annotationLayers);
|
||||
@@ -278,7 +279,7 @@ describe('buildQueryObject', () => {
|
||||
buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
url_params: { abc: '123' },
|
||||
}).url_params,
|
||||
).toEqual({ abc: '123' });
|
||||
@@ -286,7 +287,7 @@ describe('buildQueryObject', () => {
|
||||
buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
// @ts-expect-error
|
||||
url_params: null,
|
||||
}).url_params,
|
||||
@@ -298,7 +299,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity,
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
});
|
||||
expect(query.granularity).toEqual(granularity);
|
||||
});
|
||||
@@ -308,7 +309,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: granularity,
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
});
|
||||
expect(query.granularity).toEqual(granularity);
|
||||
});
|
||||
@@ -320,7 +321,7 @@ describe('buildQueryObject', () => {
|
||||
query = buildQueryObject({
|
||||
datasource: '5__table',
|
||||
granularity_sqla: 'ds',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
custom_params: customParams,
|
||||
});
|
||||
expect(query.custom_params).toEqual(customParams);
|
||||
|
||||
@@ -16,11 +16,13 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { isXAxisSet } from '@superset-ui/core';
|
||||
import { isXAxisSet, VizType } from '@superset-ui/core';
|
||||
|
||||
test('isXAxisSet', () => {
|
||||
expect(isXAxisSet({ datasource: '123', viz_type: 'table' })).not.toBeTruthy();
|
||||
expect(
|
||||
isXAxisSet({ datasource: '123', viz_type: 'table', x_axis: 'axis' }),
|
||||
isXAxisSet({ datasource: '123', viz_type: VizType.Table }),
|
||||
).not.toBeTruthy();
|
||||
expect(
|
||||
isXAxisSet({ datasource: '123', viz_type: VizType.Table, x_axis: 'axis' }),
|
||||
).toBeTruthy();
|
||||
});
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { normalizeOrderBy, QueryObject } from '@superset-ui/core';
|
||||
import { normalizeOrderBy, QueryObject, VizType } from '@superset-ui/core';
|
||||
|
||||
describe('normalizeOrderBy', () => {
|
||||
it('should not change original queryObject when orderby populated', () => {
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
orderby: [['count(*)', true]],
|
||||
};
|
||||
@@ -32,7 +32,7 @@ describe('normalizeOrderBy', () => {
|
||||
it('has series_limit_metric in queryObject', () => {
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
metrics: ['count(*)'],
|
||||
series_limit_metric: {
|
||||
@@ -50,7 +50,7 @@ describe('normalizeOrderBy', () => {
|
||||
expect(expectedQueryObject).not.toHaveProperty('order_desc');
|
||||
expect(expectedQueryObject).toEqual({
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
metrics: ['count(*)'],
|
||||
orderby: [
|
||||
@@ -72,7 +72,7 @@ describe('normalizeOrderBy', () => {
|
||||
it('should transform legacy_order_by in queryObject', () => {
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
metrics: ['count(*)'],
|
||||
legacy_order_by: {
|
||||
@@ -90,7 +90,7 @@ describe('normalizeOrderBy', () => {
|
||||
expect(expectedQueryObject).not.toHaveProperty('order_desc');
|
||||
expect(expectedQueryObject).toEqual({
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
metrics: ['count(*)'],
|
||||
orderby: [
|
||||
@@ -112,7 +112,7 @@ describe('normalizeOrderBy', () => {
|
||||
it('has metrics in queryObject', () => {
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
metrics: ['count(*)'],
|
||||
order_desc: true,
|
||||
@@ -122,7 +122,7 @@ describe('normalizeOrderBy', () => {
|
||||
expect(expectedQueryObject).not.toHaveProperty('order_desc');
|
||||
expect(expectedQueryObject).toEqual({
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
metrics: ['count(*)'],
|
||||
orderby: [['count(*)', false]],
|
||||
@@ -132,7 +132,7 @@ describe('normalizeOrderBy', () => {
|
||||
it('should not change', () => {
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
};
|
||||
expect(normalizeOrderBy(query)).toEqual(query);
|
||||
@@ -141,7 +141,7 @@ describe('normalizeOrderBy', () => {
|
||||
it('remove empty orderby', () => {
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
orderby: [],
|
||||
};
|
||||
@@ -151,7 +151,7 @@ describe('normalizeOrderBy', () => {
|
||||
it('remove orderby with an empty array', () => {
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
orderby: [[]],
|
||||
};
|
||||
@@ -161,7 +161,7 @@ describe('normalizeOrderBy', () => {
|
||||
it('remove orderby with an empty metric', () => {
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
orderby: [['', true]],
|
||||
};
|
||||
@@ -171,7 +171,7 @@ describe('normalizeOrderBy', () => {
|
||||
it('remove orderby with an empty adhoc metric', () => {
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
orderby: [[{}, true]],
|
||||
};
|
||||
@@ -181,7 +181,7 @@ describe('normalizeOrderBy', () => {
|
||||
it('remove orderby with an non-boolean type', () => {
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
time_range: '1 year ago : 2013',
|
||||
// @ts-ignore
|
||||
orderby: [['count(*)', 'true']],
|
||||
|
||||
@@ -20,12 +20,13 @@ import {
|
||||
normalizeTimeColumn,
|
||||
QueryObject,
|
||||
SqlaFormData,
|
||||
VizType,
|
||||
} from '@superset-ui/core';
|
||||
|
||||
test('should return original QueryObject if x_axis is empty', () => {
|
||||
const formData: SqlaFormData = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
granularity: 'time_column',
|
||||
time_grain_sqla: 'P1Y',
|
||||
time_range: '1 year ago : 2013',
|
||||
@@ -34,7 +35,7 @@ test('should return original QueryObject if x_axis is empty', () => {
|
||||
};
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
granularity: 'time_column',
|
||||
extras: {
|
||||
time_grain_sqla: 'P1Y',
|
||||
@@ -51,7 +52,7 @@ test('should return original QueryObject if x_axis is empty', () => {
|
||||
test('should support different columns for x-axis and granularity', () => {
|
||||
const formData: SqlaFormData = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
granularity: 'time_column',
|
||||
time_grain_sqla: 'P1Y',
|
||||
time_range: '1 year ago : 2013',
|
||||
@@ -61,7 +62,7 @@ test('should support different columns for x-axis and granularity', () => {
|
||||
};
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
granularity: 'time_column',
|
||||
extras: {
|
||||
time_grain_sqla: 'P1Y',
|
||||
@@ -76,7 +77,7 @@ test('should support different columns for x-axis and granularity', () => {
|
||||
};
|
||||
expect(normalizeTimeColumn(formData, query)).toEqual({
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
granularity: 'time_column',
|
||||
extras: { where: '', having: '', time_grain_sqla: 'P1Y' },
|
||||
time_range: '1 year ago : 2013',
|
||||
@@ -98,7 +99,7 @@ test('should support different columns for x-axis and granularity', () => {
|
||||
test('should support custom SQL in x-axis', () => {
|
||||
const formData: SqlaFormData = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
granularity: 'time_column',
|
||||
time_grain_sqla: 'P1Y',
|
||||
time_range: '1 year ago : 2013',
|
||||
@@ -112,7 +113,7 @@ test('should support custom SQL in x-axis', () => {
|
||||
};
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
granularity: 'time_column',
|
||||
extras: {
|
||||
time_grain_sqla: 'P1Y',
|
||||
@@ -134,7 +135,7 @@ test('should support custom SQL in x-axis', () => {
|
||||
};
|
||||
expect(normalizeTimeColumn(formData, query)).toEqual({
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
granularity: 'time_column',
|
||||
extras: { where: '', having: '', time_grain_sqla: 'P1Y' },
|
||||
time_range: '1 year ago : 2013',
|
||||
@@ -156,7 +157,7 @@ test('should support custom SQL in x-axis', () => {
|
||||
test('fallback and invalid columns value', () => {
|
||||
const formData: SqlaFormData = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
granularity: 'time_column',
|
||||
time_grain_sqla: 'P1Y',
|
||||
time_range: '1 year ago : 2013',
|
||||
@@ -170,7 +171,7 @@ test('fallback and invalid columns value', () => {
|
||||
};
|
||||
const query: QueryObject = {
|
||||
datasource: '5__table',
|
||||
viz_type: 'table',
|
||||
viz_type: VizType.Table,
|
||||
granularity: 'time_column',
|
||||
extras: {
|
||||
time_grain_sqla: 'P1Y',
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { getComparisonFilters } from '@superset-ui/core';
|
||||
import { getComparisonFilters, VizType } from '@superset-ui/core';
|
||||
|
||||
const form_data = {
|
||||
datasource: '22__table',
|
||||
viz_type: 'pop_kpi',
|
||||
viz_type: VizType.BigNumberPeriodOverPeriod,
|
||||
slice_id: 97,
|
||||
url_params: {
|
||||
form_data_key:
|
||||
|
||||
@@ -17,11 +17,15 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { getComparisonInfo, ComparisonTimeRangeType } from '@superset-ui/core';
|
||||
import {
|
||||
getComparisonInfo,
|
||||
ComparisonTimeRangeType,
|
||||
VizType,
|
||||
} from '@superset-ui/core';
|
||||
|
||||
const form_data = {
|
||||
datasource: '22__table',
|
||||
viz_type: 'pop_kpi',
|
||||
viz_type: VizType.BigNumberPeriodOverPeriod,
|
||||
slice_id: 97,
|
||||
url_params: {
|
||||
form_data_key:
|
||||
|
||||
@@ -1,27 +1,58 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
|
||||
# Change Log
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [0.20.0](https://github.com/apache/superset/compare/v2021.41.0...v0.20.0) (2024-09-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **ci:** fix failed `docker-build` CI job ([#28442](https://github.com/apache/superset/issues/28442)) ([4f51f05](https://github.com/apache/superset/commit/4f51f051334e5285495a53074c54aae0fea77156))
|
||||
- **plugin-chart-echarts:** invalid total label location for negative values in stacked bar chart ([#21032](https://github.com/apache/superset/issues/21032)) ([a8ba544](https://github.com/apache/superset/commit/a8ba544e609ad3af449239c1fb956bb18c7066c4))
|
||||
- **plugin-chart-echarts:** missing value format in mixed timeseries ([#21044](https://github.com/apache/superset/issues/21044)) ([2d1ba46](https://github.com/apache/superset/commit/2d1ba468441b113c574d6fcc5984e8e09ddbc1c6))
|
||||
- **plugin-chart-pivot-table:** Invalid Formats Date Fields ([#20909](https://github.com/apache/superset/issues/20909)) ([3f124d9](https://github.com/apache/superset/commit/3f124d9d67f194746da0a49ee2456a0530ec73f9))
|
||||
- **storybook:** fix broken Storybook stories during development ([#29587](https://github.com/apache/superset/issues/29587)) ([462cda4](https://github.com/apache/superset/commit/462cda400baa00b3bcc4a7f8aded362ca55e18a5))
|
||||
|
||||
### Features
|
||||
|
||||
- add drag and drop column rearrangement for table viz ([#19381](https://github.com/apache/superset/issues/19381)) ([7e9b85f](https://github.com/apache/superset/commit/7e9b85f76ca8cae38c38e11f857634216b1cd71c))
|
||||
- add Nightingale chart support for echarts pie chart ([#28597](https://github.com/apache/superset/issues/28597)) ([f9d2451](https://github.com/apache/superset/commit/f9d2451b23e0f5b0316a61889a8d964704e888dc))
|
||||
- Adds the ECharts Bubble chart ([#22107](https://github.com/apache/superset/issues/22107)) ([c81c60c](https://github.com/apache/superset/commit/c81c60c91fbcb09dd63c05f050e18ee09ceebfd6))
|
||||
- Adds the ECharts Sunburst chart ([#22833](https://github.com/apache/superset/issues/22833)) ([30abefb](https://github.com/apache/superset/commit/30abefb519978e2760a492de51dc0d19803edf3a))
|
||||
- **build:** uplift Storybook to v8 ([#29408](https://github.com/apache/superset/issues/29408)) ([3bf8989](https://github.com/apache/superset/commit/3bf89893dc17a8dea94a40a6d590625d215e8dab))
|
||||
- Migrates Dual Line Chart to Mixed Chart ([#23910](https://github.com/apache/superset/issues/23910)) ([f5148ef](https://github.com/apache/superset/commit/f5148ef728ce649697c10fb7aa65982d7dd05638))
|
||||
- Migrates Pivot Table v1 to v2 ([#23712](https://github.com/apache/superset/issues/23712)) ([522eb97](https://github.com/apache/superset/commit/522eb97b65dcaceb82f7f1b7de8545997a415253))
|
||||
- Migrates TreeMap chart ([#23741](https://github.com/apache/superset/issues/23741)) ([af24092](https://github.com/apache/superset/commit/af24092440f23f807554dcc63e3e45c3c73273bf))
|
||||
- **plugin-chart-echarts:** Echarts Waterfall ([#17906](https://github.com/apache/superset/issues/17906)) ([17792a5](https://github.com/apache/superset/commit/17792a507c7245c9e09c6eb98a774f2ef4ec8568))
|
||||
- Removes the preset-chart-xy plugin ([#23943](https://github.com/apache/superset/issues/23943)) ([e922f09](https://github.com/apache/superset/commit/e922f0993d31732f048eb4d638c67cd7fc18bdfa))
|
||||
- **storybook:** Co-habitating/Upgrading Storybooks to v7 (dependency madness ensues) ([#26907](https://github.com/apache/superset/issues/26907)) ([753ef69](https://github.com/apache/superset/commit/753ef695294ce26238b68ff41ba0a9af6aea74de))
|
||||
- **timeseries-chart:** add percentage threshold input control ([#17758](https://github.com/apache/superset/issues/17758)) ([6bd4dd2](https://github.com/apache/superset/commit/6bd4dd257a6089a093bae3f251cf9f0976d353e6))
|
||||
|
||||
# [0.19.0](https://github.com/apache/superset/compare/v2021.41.0...v0.19.0) (2024-09-07)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **ci:** fix failed `docker-build` CI job ([#28442](https://github.com/apache/superset/issues/28442)) ([4f51f05](https://github.com/apache/superset/commit/4f51f051334e5285495a53074c54aae0fea77156))
|
||||
- **plugin-chart-echarts:** invalid total label location for negative values in stacked bar chart ([#21032](https://github.com/apache/superset/issues/21032)) ([a8ba544](https://github.com/apache/superset/commit/a8ba544e609ad3af449239c1fb956bb18c7066c4))
|
||||
- **plugin-chart-echarts:** missing value format in mixed timeseries ([#21044](https://github.com/apache/superset/issues/21044)) ([2d1ba46](https://github.com/apache/superset/commit/2d1ba468441b113c574d6fcc5984e8e09ddbc1c6))
|
||||
- **plugin-chart-pivot-table:** Invalid Formats Date Fields ([#20909](https://github.com/apache/superset/issues/20909)) ([3f124d9](https://github.com/apache/superset/commit/3f124d9d67f194746da0a49ee2456a0530ec73f9))
|
||||
- **storybook:** fix broken Storybook stories during development ([#29587](https://github.com/apache/superset/issues/29587)) ([462cda4](https://github.com/apache/superset/commit/462cda400baa00b3bcc4a7f8aded362ca55e18a5))
|
||||
|
||||
### Features
|
||||
|
||||
- add drag and drop column rearrangement for table viz ([#19381](https://github.com/apache/superset/issues/19381)) ([7e9b85f](https://github.com/apache/superset/commit/7e9b85f76ca8cae38c38e11f857634216b1cd71c))
|
||||
- add Nightingale chart support for echarts pie chart ([#28597](https://github.com/apache/superset/issues/28597)) ([f9d2451](https://github.com/apache/superset/commit/f9d2451b23e0f5b0316a61889a8d964704e888dc))
|
||||
- Adds the ECharts Bubble chart ([#22107](https://github.com/apache/superset/issues/22107)) ([c81c60c](https://github.com/apache/superset/commit/c81c60c91fbcb09dd63c05f050e18ee09ceebfd6))
|
||||
- Adds the ECharts Sunburst chart ([#22833](https://github.com/apache/superset/issues/22833)) ([30abefb](https://github.com/apache/superset/commit/30abefb519978e2760a492de51dc0d19803edf3a))
|
||||
- **build:** uplift Storybook to v8 ([#29408](https://github.com/apache/superset/issues/29408)) ([3bf8989](https://github.com/apache/superset/commit/3bf89893dc17a8dea94a40a6d590625d215e8dab))
|
||||
- Migrates Dual Line Chart to Mixed Chart ([#23910](https://github.com/apache/superset/issues/23910)) ([f5148ef](https://github.com/apache/superset/commit/f5148ef728ce649697c10fb7aa65982d7dd05638))
|
||||
- Migrates Pivot Table v1 to v2 ([#23712](https://github.com/apache/superset/issues/23712)) ([522eb97](https://github.com/apache/superset/commit/522eb97b65dcaceb82f7f1b7de8545997a415253))
|
||||
- Migrates TreeMap chart ([#23741](https://github.com/apache/superset/issues/23741)) ([af24092](https://github.com/apache/superset/commit/af24092440f23f807554dcc63e3e45c3c73273bf))
|
||||
- **plugin-chart-echarts:** Echarts Waterfall ([#17906](https://github.com/apache/superset/issues/17906)) ([17792a5](https://github.com/apache/superset/commit/17792a507c7245c9e09c6eb98a774f2ef4ec8568))
|
||||
- Removes the preset-chart-xy plugin ([#23943](https://github.com/apache/superset/issues/23943)) ([e922f09](https://github.com/apache/superset/commit/e922f0993d31732f048eb4d638c67cd7fc18bdfa))
|
||||
- **storybook:** Co-habitating/Upgrading Storybooks to v7 (dependency madness ensues) ([#26907](https://github.com/apache/superset/issues/26907)) ([753ef69](https://github.com/apache/superset/commit/753ef695294ce26238b68ff41ba0a9af6aea74de))
|
||||
- **timeseries-chart:** add percentage threshold input control ([#17758](https://github.com/apache/superset/issues/17758)) ([6bd4dd2](https://github.com/apache/superset/commit/6bd4dd257a6089a093bae3f251cf9f0976d353e6))
|
||||
|
||||
# [0.18.0](https://github.com/apache-superset/superset-ui/compare/v0.17.87...v0.18.0) (2021-08-30)
|
||||
|
||||
**Note:** Version bump only for package @superset-ui/demo
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@superset-ui/demo",
|
||||
"version": "0.18.25",
|
||||
"version": "0.20.0",
|
||||
"private": true,
|
||||
"description": "Storybook for Superset UI ✨",
|
||||
"keywords": [
|
||||
@@ -35,6 +35,7 @@
|
||||
"@emotion/cache": "^11.4.0",
|
||||
"@emotion/react": "^11.13.3",
|
||||
"@emotion/styled": "^11.3.0",
|
||||
"@mihkeleidast/storybook-addon-source": "^1.0.1",
|
||||
"@react-icons/all-files": "^4.1.0",
|
||||
"@storybook/addon-actions": "8.1.11",
|
||||
"@storybook/addon-controls": "8.1.11",
|
||||
@@ -50,8 +51,7 @@
|
||||
"react": "^16.13.1",
|
||||
"react-dom": "^16.13.1",
|
||||
"react-loadable": "^5.5.0",
|
||||
"react-resizable": "^3.0.5",
|
||||
"@mihkeleidast/storybook-addon-source": "^1.0.1"
|
||||
"react-resizable": "^3.0.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.23.9",
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import ChordChartPlugin from '@superset-ui/legacy-plugin-chart-chord';
|
||||
import data from './data';
|
||||
import { withResizableChartDemo } from '../../../shared/components/ResizableChartDemo';
|
||||
|
||||
new ChordChartPlugin().configure({ key: 'chord' }).register();
|
||||
new ChordChartPlugin().configure({ key: VizType.Chord }).register();
|
||||
|
||||
export default {
|
||||
title: 'Legacy Chart Plugins/legacy-plugin-chart-chord',
|
||||
@@ -31,7 +31,7 @@ export default {
|
||||
|
||||
export const basic = ({ width, height }) => (
|
||||
<SuperChart
|
||||
chartType="chord"
|
||||
chartType={VizType.Chord}
|
||||
width={width}
|
||||
height={height}
|
||||
queriesData={[{ data }]}
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import HeatmapChartPlugin from '@superset-ui/legacy-plugin-chart-heatmap';
|
||||
import ResizableChartDemo from '../../../shared/components/ResizableChartDemo';
|
||||
import data from './data';
|
||||
|
||||
new HeatmapChartPlugin().configure({ key: 'heatmap' }).register();
|
||||
new HeatmapChartPlugin().configure({ key: VizType.LegacyHeatmap }).register();
|
||||
|
||||
export default {
|
||||
title: 'Legacy Chart Plugins/legacy-plugin-chart-heatmap',
|
||||
@@ -30,7 +30,7 @@ export default {
|
||||
|
||||
export const basic = () => (
|
||||
<SuperChart
|
||||
chartType="heatmap"
|
||||
chartType={VizType.LegacyHeatmap}
|
||||
width={500}
|
||||
height={500}
|
||||
formData={{
|
||||
@@ -67,7 +67,7 @@ export const resizable = () => (
|
||||
<ResizableChartDemo>
|
||||
{({ width, height }) => (
|
||||
<SuperChart
|
||||
chartType="heatmap"
|
||||
chartType={VizType.LegacyHeatmap}
|
||||
width={width}
|
||||
height={height}
|
||||
formData={{
|
||||
@@ -104,7 +104,7 @@ export const resizable = () => (
|
||||
|
||||
export const withNullData = () => (
|
||||
<SuperChart
|
||||
chartType="heatmap"
|
||||
chartType={VizType.LegacyHeatmap}
|
||||
width={500}
|
||||
height={500}
|
||||
formData={{
|
||||
|
||||
@@ -18,11 +18,13 @@
|
||||
*/
|
||||
|
||||
/* eslint-disable no-magic-numbers */
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import HistogramChartPlugin from '@superset-ui/legacy-plugin-chart-histogram';
|
||||
import data from './data';
|
||||
|
||||
new HistogramChartPlugin().configure({ key: 'histogram' }).register();
|
||||
new HistogramChartPlugin()
|
||||
.configure({ key: VizType.LegacyHistogram })
|
||||
.register();
|
||||
|
||||
export default {
|
||||
title: 'Legacy Chart Plugins/legacy-plugin-chart-histogram',
|
||||
@@ -30,7 +32,7 @@ export default {
|
||||
|
||||
export const basic = () => (
|
||||
<SuperChart
|
||||
chartType="histogram"
|
||||
chartType={VizType.LegacyHistogram}
|
||||
width={400}
|
||||
height={400}
|
||||
queriesData={[{ data }]}
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import HorizonChartPlugin from '@superset-ui/legacy-plugin-chart-horizon';
|
||||
import data from './data';
|
||||
|
||||
new HorizonChartPlugin().configure({ key: 'horizon' }).register();
|
||||
new HorizonChartPlugin().configure({ key: VizType.Horizon }).register();
|
||||
|
||||
export default {
|
||||
title: 'Legacy Chart Plugins/legacy-plugin-chart-horizon',
|
||||
@@ -29,7 +29,7 @@ export default {
|
||||
|
||||
export const basic = () => (
|
||||
<SuperChart
|
||||
chartType="horizon"
|
||||
chartType={VizType.Horizon}
|
||||
width={400}
|
||||
height={400}
|
||||
queriesData={[{ data }]}
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import PartitionChartPlugin from '@superset-ui/legacy-plugin-chart-partition';
|
||||
import data from './data';
|
||||
import dummyDatasource from '../../../shared/dummyDatasource';
|
||||
|
||||
new PartitionChartPlugin().configure({ key: 'partition' }).register();
|
||||
new PartitionChartPlugin().configure({ key: VizType.Partition }).register();
|
||||
|
||||
export default {
|
||||
title: 'Legacy Chart Plugins/legacy-plugin-chart-partition',
|
||||
@@ -30,7 +30,7 @@ export default {
|
||||
|
||||
export const basic = () => (
|
||||
<SuperChart
|
||||
chartType="partition"
|
||||
chartType={VizType.Partition}
|
||||
width={400}
|
||||
height={400}
|
||||
datasource={dummyDatasource}
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
*/
|
||||
|
||||
/* eslint-disable no-magic-numbers, sort-keys */
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import RoseChartPlugin from '@superset-ui/legacy-plugin-chart-rose';
|
||||
import data from './data';
|
||||
|
||||
new RoseChartPlugin().configure({ key: 'rose' }).register();
|
||||
new RoseChartPlugin().configure({ key: VizType.Rose }).register();
|
||||
|
||||
export default {
|
||||
title: 'Legacy Chart Plugins/legacy-plugin-chart-rose',
|
||||
@@ -30,7 +30,7 @@ export default {
|
||||
|
||||
export const basic = () => (
|
||||
<SuperChart
|
||||
chartType="rose"
|
||||
chartType={VizType.Rose}
|
||||
width={400}
|
||||
height={400}
|
||||
queriesData={[{ data }]}
|
||||
|
||||
@@ -18,12 +18,12 @@
|
||||
*/
|
||||
|
||||
/* eslint-disable no-magic-numbers */
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import SankeyChartPlugin from '@superset-ui/legacy-plugin-chart-sankey';
|
||||
import ResizableChartDemo from '../../../shared/components/ResizableChartDemo';
|
||||
import data from './data';
|
||||
|
||||
new SankeyChartPlugin().configure({ key: 'sankey' }).register();
|
||||
new SankeyChartPlugin().configure({ key: VizType.LegacySankey }).register();
|
||||
|
||||
export default {
|
||||
title: 'Legacy Chart Plugins/legacy-plugin-chart-sankey',
|
||||
@@ -31,7 +31,7 @@ export default {
|
||||
|
||||
export const basic = () => (
|
||||
<SuperChart
|
||||
chartType="sankey"
|
||||
chartType={VizType.LegacySankey}
|
||||
width={400}
|
||||
height={400}
|
||||
queriesData={[{ data }]}
|
||||
@@ -45,7 +45,7 @@ export const resizable = () => (
|
||||
<ResizableChartDemo>
|
||||
{({ width, height }) => (
|
||||
<SuperChart
|
||||
chartType="sankey"
|
||||
chartType={VizType.LegacySankey}
|
||||
width={width}
|
||||
height={height}
|
||||
queriesData={[{ data }]}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import { BigNumberChartPlugin } from '@superset-ui/plugin-chart-echarts';
|
||||
import testData from './data';
|
||||
|
||||
@@ -37,7 +37,7 @@ const formData = {
|
||||
showTrendLine: true,
|
||||
startYAxisAtZero: true,
|
||||
timeGrainSqla: 'P1Y',
|
||||
vizType: 'big_number',
|
||||
vizType: VizType.BigNumber,
|
||||
yAxisFormat: '.3s',
|
||||
};
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import { BigNumberTotalChartPlugin } from '@superset-ui/plugin-chart-echarts';
|
||||
import data from './data';
|
||||
|
||||
@@ -37,7 +37,7 @@ export const totalBasic = () => (
|
||||
formData={{
|
||||
metric: 'sum__num',
|
||||
subheader: 'total female participants',
|
||||
vizType: 'big_number_total',
|
||||
vizType: VizType.BigNumberTotal,
|
||||
yAxisFormat: '.3s',
|
||||
}}
|
||||
/>
|
||||
@@ -52,7 +52,7 @@ export const totalNoData = () => (
|
||||
formData={{
|
||||
metric: 'sum__num',
|
||||
subheader: 'total female participants',
|
||||
vizType: 'big_number_total',
|
||||
vizType: VizType.BigNumberTotal,
|
||||
yAxisFormat: '.3s',
|
||||
}}
|
||||
/>
|
||||
|
||||
@@ -17,9 +17,10 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { VizType } from '@superset-ui/core';
|
||||
import { AreaChartPlugin } from '@superset-ui/legacy-preset-chart-nvd3';
|
||||
|
||||
new AreaChartPlugin().configure({ key: 'area' }).register();
|
||||
new AreaChartPlugin().configure({ key: VizType.LegacyArea }).register();
|
||||
|
||||
export default {
|
||||
title: 'Legacy Chart Plugins/legacy-preset-chart-nvd3/Area',
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import dummyDatasource from '../../../../../shared/dummyDatasource';
|
||||
import data from '../data';
|
||||
|
||||
export const controlsShown = () => (
|
||||
<SuperChart
|
||||
chartType="area"
|
||||
chartType={VizType.LegacyArea}
|
||||
datasource={dummyDatasource}
|
||||
width={400}
|
||||
height={400}
|
||||
@@ -40,7 +40,7 @@ export const controlsShown = () => (
|
||||
showControls: true,
|
||||
showLegend: true,
|
||||
stackedStyle: 'stack',
|
||||
vizType: 'area',
|
||||
vizType: VizType.LegacyArea,
|
||||
xAxisFormat: '%Y',
|
||||
xAxisLabel: '',
|
||||
xAxisShowminmax: false,
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import dummyDatasource from '../../../../../shared/dummyDatasource';
|
||||
import data from '../data';
|
||||
|
||||
export const expanded = () => (
|
||||
<SuperChart
|
||||
chartType="area"
|
||||
chartType={VizType.LegacyArea}
|
||||
datasource={dummyDatasource}
|
||||
width={400}
|
||||
height={400}
|
||||
@@ -40,7 +40,7 @@ export const expanded = () => (
|
||||
showControls: false,
|
||||
showLegend: true,
|
||||
stackedStyle: 'expand',
|
||||
vizType: 'area',
|
||||
vizType: VizType.LegacyArea,
|
||||
xAxisFormat: '%Y',
|
||||
xAxisLabel: '',
|
||||
xAxisShowminmax: false,
|
||||
|
||||
@@ -17,14 +17,14 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import dummyDatasource from '../../../../../shared/dummyDatasource';
|
||||
import data from '../data';
|
||||
|
||||
export const stacked = () => (
|
||||
<SuperChart
|
||||
id="stacked-area-chart"
|
||||
chartType="area"
|
||||
chartType={VizType.LegacyArea}
|
||||
datasource={dummyDatasource}
|
||||
width={400}
|
||||
height={400}
|
||||
@@ -41,7 +41,7 @@ export const stacked = () => (
|
||||
showControls: false,
|
||||
showLegend: true,
|
||||
stackedStyle: 'stack',
|
||||
vizType: 'area',
|
||||
vizType: VizType.LegacyArea,
|
||||
xAxisFormat: '%Y',
|
||||
xAxisLabel: '',
|
||||
xAxisShowminmax: false,
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { SuperChart } from '@superset-ui/core';
|
||||
import { SuperChart, VizType } from '@superset-ui/core';
|
||||
import dummyDatasource from '../../../../../shared/dummyDatasource';
|
||||
import data from '../data';
|
||||
|
||||
export const stackedWithYAxisBounds = () => (
|
||||
<SuperChart
|
||||
chartType="area"
|
||||
chartType={VizType.LegacyArea}
|
||||
datasource={dummyDatasource}
|
||||
width={400}
|
||||
height={400}
|
||||
@@ -40,7 +40,7 @@ export const stackedWithYAxisBounds = () => (
|
||||
showControls: false,
|
||||
showLegend: true,
|
||||
stackedStyle: 'stack',
|
||||
vizType: 'area',
|
||||
vizType: VizType.LegacyArea,
|
||||
xAxisFormat: '%Y',
|
||||
xAxisLabel: '',
|
||||
xAxisShowminmax: false,
|
||||
@@ -56,7 +56,7 @@ stackedWithYAxisBounds.storyName = 'Stacked with yAxisBounds';
|
||||
|
||||
export const stackedWithYAxisBoundsMinOnly = () => (
|
||||
<SuperChart
|
||||
chartType="area"
|
||||
chartType={VizType.LegacyArea}
|
||||
datasource={dummyDatasource}
|
||||
width={400}
|
||||
height={400}
|
||||
@@ -73,7 +73,7 @@ export const stackedWithYAxisBoundsMinOnly = () => (
|
||||
showControls: true,
|
||||
showLegend: true,
|
||||
stackedStyle: 'stack',
|
||||
vizType: 'area',
|
||||
vizType: VizType.LegacyArea,
|
||||
xAxisFormat: '%Y',
|
||||
xAxisLabel: '',
|
||||
xAxisShowminmax: false,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user