From 4cf6b1eb38bd25e25fdb9c745b5635c492daa2c6 Mon Sep 17 00:00:00 2001 From: payose Date: Thu, 17 Apr 2025 20:31:15 +0100 Subject: [PATCH 01/21] Re-implement Slider in Numerical Range filter --- .../FiltersConfigForm/FiltersConfigForm.tsx | 109 +++-- .../components/nativeFilters/utils.ts | 1 + .../Range/RangeFilterPlugin.test.tsx | 98 +++- .../components/Range/RangeFilterPlugin.tsx | 430 +++++++++++++----- .../src/filters/components/Range/types.ts | 7 + .../src/filters/components/common.ts | 10 +- 6 files changed, 510 insertions(+), 145 deletions(-) diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx index 01effc9aa1a3..a45000e692ad 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx @@ -81,6 +81,7 @@ import DateFilterControl from 'src/explore/components/controls/DateFilterControl import AdhocFilterControl from 'src/explore/components/controls/FilterControl/AdhocFilterControl'; import { waitForAsyncData } from 'src/middleware/asyncEvent'; import { SingleValueType } from 'src/filters/components/Range/SingleValueType'; +import { RangeDisplayMode } from 'src/filters/components/Range/types'; import { getFormData, mergeExtraFormData, @@ -1157,50 +1158,104 @@ const FiltersConfigForm = ( ) : ( - - { - onEnableSingleValueChanged( - checked ? SingleValueType.Exact : undefined, - ); - formChanged(); - }} - > + <> + + { + onEnableSingleValueChanged( + checked ? SingleValueType.Exact : undefined, + ); + formChanged(); + }} + > + {t('Single value type')} + } + > + { + onEnableSingleValueChanged(value.target.value); + formChanged(); + }} + options={[ + { + label: t('Minimum'), + value: SingleValueType.Minimum, + }, + { label: t('Exact'), value: SingleValueType.Exact }, + { + label: t('Maximum'), + value: SingleValueType.Maximum, + }, + ]} + /> + + + + + {t('Single value type')} + initialValue={ + formFilter?.controlValues?.rangeDisplayMode || + filterToEdit?.controlValues?.rangeDisplayMode || + RangeDisplayMode.SliderAndInput } + label={{t('Range Type')}} > - { - onEnableSingleValueChanged(value.target.value); - formChanged(); - }} +