+ {isDraggable
+ ? connectDragSource(
+ connectDropTarget({getOptionControlContent()}
),
+ )
+ : getOptionControlContent()}
+
+ );
};
+
+export const DraggableOptionControlLabel = DropTarget(
+ TYPE,
+ labelTarget,
+ (connect: any) => ({
+ connectDropTarget: connect.dropTarget(),
+ }),
+)(
+ DragSource(TYPE, labelSource, (connect: any) => ({
+ connectDragSource: connect.dragSource(),
+ isDraggable: true,
+ }))(OptionControlLabel),
+);
+
+DraggableOptionControlLabel.displayName = 'DraggableOptionControlLabel';
diff --git a/superset-frontend/src/explore/components/controls/AdhocFilterControl.jsx b/superset-frontend/src/explore/components/controls/AdhocFilterControl.jsx
index 613c7f769..91f5725ba 100644
--- a/superset-frontend/src/explore/components/controls/AdhocFilterControl.jsx
+++ b/superset-frontend/src/explore/components/controls/AdhocFilterControl.jsx
@@ -18,7 +18,6 @@
*/
import React from 'react';
import PropTypes from 'prop-types';
-
import { t, logging, SupersetClient, withTheme } from '@superset-ui/core';
import ControlHeader from '../ControlHeader';
@@ -39,6 +38,7 @@ import {
} from '../OptionControls';
import Icon from '../../../components/Icon';
import AdhocFilterPopoverTrigger from '../AdhocFilterPopoverTrigger';
+import DndWithHTML5Backend from '../../DndContextProvider';
const propTypes = {
name: PropTypes.string,
@@ -75,6 +75,7 @@ class AdhocFilterControl extends React.Component {
this.onRemoveFilter = this.onRemoveFilter.bind(this);
this.onNewFilter = this.onNewFilter.bind(this);
this.onFilterEdit = this.onFilterEdit.bind(this);
+ this.moveLabel = this.moveLabel.bind(this);
this.onChange = this.onChange.bind(this);
this.getMetricExpression = this.getMetricExpression.bind(this);
@@ -86,11 +87,14 @@ class AdhocFilterControl extends React.Component {
this.valueRenderer = (adhocFilter, index) => (