You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/06/29 00:50:44 UTC

(superset) 01/01: perf(frontend): migrate lodash imports to lodash-es for tree-shaking

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch chore/lodash-es-migration
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 15648fa9c22db9ca80bb3c6ab38c3fabc1625419
Author: Claude Code <no...@anthropic.com>
AuthorDate: Sun Jun 28 17:50:20 2026 -0700

    perf(frontend): migrate lodash imports to lodash-es for tree-shaking
    
    Replaces bare `import { x } from 'lodash'` with `from 'lodash-es'` across the
    frontend (173 source files). lodash-es is an ES-module build that webpack
    tree-shakes natively at the method level, so bundles include only the lodash
    functions actually used.
    
    This also removes the frontend's reliance on babel-plugin-lodash, which is
    unmaintained and incompatible with Babel 8 (it calls the removed `path.hoist`
    API). Native tree-shaking via lodash-es is the modern replacement and does not
    require a build-time Babel plugin.
    
    - Codemod is limited to named imports (`import { debounce } from 'lodash'`),
      which map 1:1 to lodash-es. There were no default (`import _ from 'lodash'`)
      or namespace (`import * as _`) imports, which lodash-es does not support.
    - `lodash-es` added to the manifests of every workspace that imports it, plus
      `@types/lodash-es` at the root. `lodash` is retained for the remaining
      per-method `lodash/x` imports and transitive consumers.
    - lodash-es is already covered by jest's transformIgnorePatterns.
    
    Validated with the production webpack build, the Jest unit suite, and
    `tsc --noEmit` (no type errors introduced; @types/lodash-es matches
    @types/lodash).
    
    Co-Authored-By: Claude Opus 4.8 <no...@anthropic.com>
---
 superset-frontend/package-lock.json                | 51 ++++++++--------------
 superset-frontend/package.json                     |  6 ++-
 .../packages/superset-core/package.json            |  3 ++
 .../packages/superset-core/src/theme/Theme.tsx     |  2 +-
 .../packages/superset-core/src/utils/isBlank.ts    |  2 +-
 .../superset-ui-chart-controls/package.json        |  3 +-
 .../src/components/CertifiedIconWithTooltip.tsx    |  2 +-
 .../src/operators/sortOperator.ts                  |  2 +-
 .../src/shared-controls/sharedControls.tsx         |  2 +-
 .../src/utils/getColorFormatters.ts                |  2 +-
 .../test/operators/histogramOperator.test.ts       |  2 +-
 .../packages/superset-ui-core/package.json         |  3 +-
 .../src/color/CategoricalColorNamespace.ts         |  2 +-
 .../src/components/DropdownButton/index.tsx        |  2 +-
 .../DropdownContainer.stories.tsx                  |  2 +-
 .../src/components/InfoTooltip/index.tsx           |  2 +-
 .../src/components/MetadataBar/MetadataBar.tsx     |  2 +-
 .../src/components/Modal/Modal.tsx                 |  2 +-
 .../src/components/SafeMarkdown/SafeMarkdown.tsx   |  2 +-
 .../src/components/Select/AsyncSelect.tsx          |  2 +-
 .../src/components/Select/Select.tsx               |  2 +-
 .../src/components/TableView/TableView.tsx         |  2 +-
 .../src/connection/callApi/parseResponse.ts        |  2 +-
 .../superset-ui-core/src/query/normalizeOrderBy.ts |  2 +-
 .../src/query/normalizeTimeColumn.ts               |  2 +-
 .../src/time-comparison/fetchTimeRange.ts          |  2 +-
 .../src/time-comparison/getTimeOffset.ts           |  2 +-
 .../src/utils/convertKeysToCamelCase.ts            |  2 +-
 .../packages/superset-ui-core/src/utils/merge.ts   |  2 +-
 .../test/components/SafeMarkdown.test.tsx          |  2 +-
 .../plugins/legacy-preset-chart-nvd3/package.json  |  3 +-
 .../legacy-preset-chart-nvd3/src/NVD3Vis.ts        |  2 +-
 .../plugin-chart-ag-grid-table/package.json        |  3 +-
 .../src/AgGridTable/index.tsx                      |  2 +-
 .../src/AgGridTableChart.tsx                       |  2 +-
 .../plugin-chart-ag-grid-table/src/buildQuery.ts   |  2 +-
 .../src/controlPanel.tsx                           |  2 +-
 .../src/transformProps.ts                          |  2 +-
 .../plugin-chart-ag-grid-table/src/utils/extent.ts |  2 +-
 .../src/utils/getInitialFilterModel.ts             |  2 +-
 .../plugins/plugin-chart-cartodiagram/package.json |  3 +-
 .../src/components/OlChartMap.tsx                  |  2 +-
 .../src/util/transformPropsUtil.ts                 |  2 +-
 .../plugins/plugin-chart-echarts/package.json      |  3 +-
 .../BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx |  2 +-
 .../BigNumberPeriodOverPeriod/buildQuery.ts        |  2 +-
 .../BigNumberPeriodOverPeriod/controlPanel.ts      |  2 +-
 .../useOverflowDetection.ts                        |  2 +-
 .../src/Gauge/transformProps.ts                    |  2 +-
 .../src/Heatmap/transformProps.ts                  |  2 +-
 .../src/Histogram/transformProps.ts                |  2 +-
 .../src/MixedTimeseries/controlPanel.tsx           |  2 +-
 .../src/MixedTimeseries/transformProps.ts          |  2 +-
 .../src/Timeseries/transformProps.ts               |  2 +-
 .../plugin-chart-echarts/src/utils/annotation.ts   |  2 +-
 .../plugin-chart-echarts/src/utils/series.ts       |  2 +-
 .../src/utils/themeOverrides.ts                    |  2 +-
 .../plugin-chart-echarts/src/utils/treeBuilder.ts  |  6 +--
 .../plugins/plugin-chart-handlebars/package.json   |  3 +-
 .../src/components/Handlebars/HandlebarsViewer.tsx |  2 +-
 .../plugins/plugin-chart-handlebars/src/consts.ts  |  2 +-
 .../src/plugin/controls/orderBy.tsx                |  2 +-
 .../plugins/plugin-chart-table/package.json        |  3 +-
 .../plugin-chart-table/src/DataTable/DataTable.tsx |  2 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |  2 +-
 .../plugins/plugin-chart-table/src/buildQuery.ts   |  2 +-
 .../plugin-chart-table/src/controlPanel.tsx        |  2 +-
 .../plugin-chart-table/src/transformProps.ts       |  2 +-
 .../plugins/plugin-chart-table/src/utils/extent.ts |  2 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |  2 +-
 .../plugins/plugin-chart-word-cloud/package.json   |  3 +-
 .../src/chart/WordCloud.tsx                        |  2 +-
 .../plugin/controls/ColorSchemeControl/index.tsx   |  2 +-
 .../plugins/preset-chart-deckgl/package.json       |  3 +-
 .../preset-chart-deckgl/src/DeckGLContainer.tsx    |  2 +-
 .../preset-chart-deckgl/src/Multi/Multi.tsx        |  2 +-
 .../plugins/preset-chart-deckgl/src/factory.tsx    |  2 +-
 .../src/utilities/HandlebarsRenderer.tsx           |  2 +-
 .../src/utilities/TooltipTemplateControl.tsx       |  2 +-
 superset-frontend/src/SqlLab/actions/sqlLab.ts     |  2 +-
 .../src/SqlLab/components/App/index.tsx            |  2 +-
 .../src/SqlLab/components/AppLayout/index.tsx      |  2 +-
 .../src/SqlLab/components/PopEditorTab/index.tsx   |  2 +-
 .../SqlLab/components/QueryAutoRefresh/index.tsx   |  2 +-
 .../src/SqlLab/components/QueryHistory/index.tsx   |  2 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |  2 +-
 .../SqlLab/components/SaveDatasetModal/index.tsx   |  2 +-
 .../ShareSqlLabQuery/ShareSqlLabQuery.test.tsx     |  2 +-
 .../src/SqlLab/components/SqlEditor/index.tsx      |  2 +-
 .../components/TemplateParamsEditor/index.tsx      |  2 +-
 .../src/SqlLab/hooks/useQueryEditor/index.ts       |  2 +-
 .../middlewares/persistSqlLabStateEnhancer.ts      |  2 +-
 superset-frontend/src/SqlLab/reducers/sqlLab.ts    |  2 +-
 .../SqlLab/utils/reduxStateToLocalStorageHelper.ts |  2 +-
 .../src/components/AlteredSliceTag/index.tsx       |  2 +-
 .../src/components/Chart/ChartRenderer.tsx         |  2 +-
 .../components/Chart/DrillBy/DrillByModal.test.tsx |  2 +-
 .../components/Chart/DrillBy/DrillBySubmenu.tsx    |  2 +-
 .../src/components/Chart/DrillDetail/utils.ts      |  2 +-
 .../src/components/Chart/chartReducer.ts           |  2 +-
 .../Chart/useDrillDetailMenuItems/index.tsx        |  2 +-
 .../components/Datasource/FoldersEditor/index.tsx  |  2 +-
 .../src/components/DynamicPlugins/index.tsx        |  2 +-
 .../ListView/Filters/CompactSelectPanel.tsx        |  2 +-
 superset-frontend/src/components/ListView/utils.ts |  2 +-
 .../src/dashboard/actions/dashboardState.ts        |  2 +-
 .../src/dashboard/actions/nativeFilters.ts         |  2 +-
 .../src/dashboard/components/ColorSchemeSelect.tsx |  2 +-
 .../DashboardBuilder/DashboardContainer.tsx        |  2 +-
 .../DashboardBuilder/DashboardWrapper.tsx          |  2 +-
 .../dashboard/components/FiltersBadge/index.tsx    |  2 +-
 .../Header/useHeaderActionsDropdownMenu.tsx        |  2 +-
 .../dashboard/components/PropertiesModal/index.tsx |  2 +-
 .../src/dashboard/components/SliceAdder.tsx        |  2 +-
 .../components/SyncDashboardState/index.tsx        |  2 +-
 .../src/dashboard/components/dnd/handleHover.ts    |  2 +-
 .../components/gridComponents/Chart/Chart.tsx      |  2 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |  2 +-
 .../FilterBar/FilterControls/utils.ts              |  2 +-
 .../nativeFilters/FilterBar/Vertical.tsx           |  2 +-
 .../components/nativeFilters/FilterBar/index.tsx   |  2 +-
 .../components/nativeFilters/FilterBar/utils.ts    |  2 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |  2 +-
 .../FiltersConfigModal/FiltersConfigForm/utils.ts  |  2 +-
 .../FiltersConfigModal/FiltersConfigModal.tsx      |  2 +-
 .../hooks/useItemStateManager.ts                   |  2 +-
 .../FiltersConfigModal/hooks/useModalSaveLogic.ts  |  2 +-
 .../src/dashboard/hooks/useDownloadScreenshot.ts   |  2 +-
 .../src/dashboard/reducers/datasources.ts          |  2 +-
 .../dashboard/util/activeAllDashboardFilters.ts    |  2 +-
 .../src/dashboard/util/activeDashboardFilters.ts   |  2 +-
 .../util/charts/getFormDataWithExtraFilters.ts     |  2 +-
 .../src/dashboard/util/crossFilters.ts             |  2 +-
 .../src/dashboard/util/getDashboardUrl.ts          |  2 +-
 .../dashboard/util/getFilterScopeFromNodesTree.ts  |  2 +-
 .../src/dashboard/util/getFilterScopeNodesTree.ts  |  2 +-
 superset-frontend/src/dataMask/reducer.ts          |  2 +-
 superset-frontend/src/embedded/utils.test.ts       |  2 +-
 superset-frontend/src/embedded/utils.ts            |  2 +-
 .../src/explore/actions/saveModalActions.ts        |  2 +-
 .../src/explore/components/Control.tsx             |  2 +-
 .../explore/components/ControlPanelsContainer.tsx  |  2 +-
 .../explore/components/DataTableControl/index.tsx  |  2 +-
 .../components/DataTableControls.tsx               |  2 +-
 .../components/ExploreViewContainer/index.tsx      |  2 +-
 .../explore/components/controls/BoundsControl.tsx  |  2 +-
 .../controls/ColorSchemeControl/index.tsx          |  2 +-
 .../ColumnConfigControl/ControlForm/index.tsx      |  2 +-
 .../components/controls/ComparisonRangeLabel.tsx   |  2 +-
 .../DndColumnMetricSelect.tsx                      |  2 +-
 .../DndColumnSelectControl/DndColumnSelect.tsx     |  2 +-
 .../DndColumnSelectControl/useResizeButton.tsx     |  2 +-
 .../FilterControl/AdhocFilterEditPopover/index.tsx |  2 +-
 .../useAdvancedDataTypes.ts                        |  2 +-
 .../controls/MetricControl/MetricsControl.tsx      |  2 +-
 .../components/controls/TextAreaControl.tsx        |  2 +-
 .../components/controls/TextControl/index.tsx      |  2 +-
 .../components/controls/TimeOffsetControl.tsx      |  2 +-
 .../components/controls/ViewQueryModalFooter.tsx   |  2 +-
 .../getControlValuesCompatibleWithDatasource.ts    |  2 +-
 .../getFormDataWithDashboardContext.ts             |  2 +-
 .../explore/controlUtils/standardizedFormData.ts   |  2 +-
 .../src/explore/reducers/exploreReducer.ts         |  2 +-
 .../databases/DatabaseModal/SSHTunnelSwitch.tsx    |  2 +-
 .../src/features/databases/DatabaseModal/index.tsx |  2 +-
 superset-frontend/src/features/home/RightMenu.tsx  |  2 +-
 superset-frontend/src/features/home/SubMenu.tsx    |  2 +-
 .../src/features/reports/ReportModal/actions.ts    |  2 +-
 .../src/features/reports/ReportModal/reducer.ts    |  2 +-
 .../src/features/themes/ThemeModal.tsx             |  2 +-
 .../filters/components/Range/RangeFilterPlugin.tsx |  2 +-
 .../components/Select/SelectFilterPlugin.tsx       |  2 +-
 .../src/hooks/apiResources/sqlEditorTabs.ts        |  2 +-
 superset-frontend/src/pages/ChartList/index.tsx    |  2 +-
 superset-frontend/src/pages/Home/index.tsx         |  2 +-
 superset-frontend/src/pages/SqlLab/SqlLab.test.tsx |  2 +-
 superset-frontend/src/reduxUtils.ts                |  2 +-
 superset-frontend/src/types/bootstrapTypes.ts      |  2 +-
 .../src/utils/DebouncedMessageQueue.ts             |  2 +-
 superset-frontend/src/utils/colorScheme.ts         |  2 +-
 superset-frontend/src/utils/downloadAsImage.tsx    |  2 +-
 superset-frontend/src/utils/downloadAsPdf.ts       |  2 +-
 .../src/utils/getChartFormDiffs/index.ts           |  2 +-
 .../src/utils/sanitizeFormData/index.ts            |  2 +-
 superset-frontend/src/utils/urlUtils.ts            |  2 +-
 superset-frontend/src/views/CRUD/utils.tsx         |  2 +-
 186 files changed, 219 insertions(+), 221 deletions(-)

diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json
index ea64badbe71..05c45dad194 100644
--- a/superset-frontend/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -109,6 +109,7 @@
         "json-bigint": "^1.0.0",
         "json-stringify-pretty-compact": "^4.0.0",
         "lodash": "^4.18.1",
+        "lodash-es": "^4.17.21",
         "mapbox-gl": "^3.25.0",
         "markdown-to-jsx": "^9.8.2",
         "match-sorter": "^8.3.0",
@@ -199,6 +200,7 @@
         "@types/jquery": "^4.0.1",
         "@types/js-levenshtein": "^1.1.3",
         "@types/json-bigint": "^1.0.4",
+        "@types/lodash-es": "^4.17.12",
         "@types/mousetrap": "^1.6.15",
         "@types/node": "^26.0.0",
         "@types/react": "^18.3.0",
@@ -44244,6 +44246,9 @@
       "name": "@apache-superset/core",
       "version": "0.1.0",
       "license": "Apache-2.0",
+      "dependencies": {
+        "lodash-es": "^4.17.21"
+      },
       "devDependencies": {
         "@babel/cli": "^7.29.7",
         "@babel/core": "^7.29.7",
@@ -44286,6 +44291,7 @@
         "@apache-superset/core": "*",
         "@types/react": "*",
         "lodash": "^4.18.1",
+        "lodash-es": "^4.17.21",
         "tinycolor2": "*"
       },
       "peerDependencies": {
@@ -44333,6 +44339,7 @@
         "handlebars": "^4.7.9",
         "jed": "^1.1.1",
         "lodash": "^4.18.1",
+        "lodash-es": "^4.17.21",
         "math-expression-evaluator": "^2.0.7",
         "parse-ms": "^4.0.0",
         "re-resizable": "^6.11.2",
@@ -44796,6 +44803,7 @@
         "dompurify": "^3.4.11",
         "fast-safe-stringify": "^2.1.1",
         "lodash": "^4.18.1",
+        "lodash-es": "^4.17.21",
         "nvd3-fork": "^2.0.5",
         "prop-types": "^15.8.1",
         "urijs": "^1.19.11"
@@ -44818,6 +44826,7 @@
         "classnames": "^2.5.1",
         "d3-array": "^3.2.4",
         "lodash": "^4.18.1",
+        "lodash-es": "^4.17.21",
         "memoize-one": "^6.0.0",
         "react-table": "^7.8.0",
         "regenerator-runtime": "^0.14.1",
@@ -44856,7 +44865,8 @@
       "dependencies": {
         "@types/geojson": "^7946.0.16",
         "geojson": "^0.5.0",
-        "lodash": "^4.18.1"
+        "lodash": "^4.18.1",
+        "lodash-es": "^4.17.21"
       },
       "peerDependencies": {
         "@ant-design/icons": "^5.6.1",
@@ -44886,6 +44896,7 @@
         "acorn": "^8.17.0",
         "d3-array": "^3.2.4",
         "lodash": "^4.18.1",
+        "lodash-es": "^4.17.21",
         "zod": "^4.4.3"
       },
       "peerDependencies": {
@@ -44929,7 +44940,8 @@
       "dependencies": {
         "currencyformatter.js": "^1.0.5",
         "handlebars-group-by": "^1.0.1",
-        "just-handlebars-helpers": "^1.0.19"
+        "just-handlebars-helpers": "^1.0.19",
+        "lodash-es": "^4.17.21"
       },
       "devDependencies": {
         "@types/jest": "^30.0.0",
@@ -45010,6 +45022,7 @@
         "classnames": "^2.5.1",
         "d3-array": "^3.2.4",
         "lodash": "^4.18.1",
+        "lodash-es": "^4.17.21",
         "memoize-one": "^6.0.0",
         "react-table": "^7.8.0",
         "regenerator-runtime": "^0.14.1",
@@ -45049,7 +45062,8 @@
       "dependencies": {
         "@types/d3-scale": "^4.0.9",
         "d3-cloud": "^1.2.9",
-        "d3-scale": "^4.0.2"
+        "d3-scale": "^4.0.2",
+        "lodash-es": "^4.17.21"
       },
       "devDependencies": {
         "@types/d3-cloud": "^1.2.9"
@@ -45098,6 +45112,7 @@
         "d3-scale": "^4.0.2",
         "handlebars": "^4.7.9",
         "lodash": "^4.18.1",
+        "lodash-es": "^4.17.21",
         "maplibre-gl": "^5.24.0",
         "mousetrap": "^1.6.5",
         "ngeohash": "^0.6.3",
@@ -45167,36 +45182,6 @@
       "version": "1.0.0",
       "extraneous": true,
       "license": "Apache-2.0"
-    },
-    "node_modules/jsdom/node_modules/@noble/hashes": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.2.0.tgz",
-      "integrity": "sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "engines": {
-        "node": ">= 20.19.0"
-      },
-      "funding": {
-        "url": "https://paulmillr.com/funding/"
-      }
-    },
-    "node_modules/whatwg-url/node_modules/@noble/hashes": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.2.0.tgz",
-      "integrity": "sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "engines": {
-        "node": ">= 20.19.0"
-      },
-      "funding": {
-        "url": "https://paulmillr.com/funding/"
-      }
     }
   }
 }
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index 69025fcfb98..397d8261a6c 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -239,7 +239,8 @@
     "use-query-params": "^2.2.2",
     "uuid": "^14.0.0",
     "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
-    "yargs": "^18.0.0"
+    "yargs": "^18.0.0",
+    "lodash-es": "^4.17.21"
   },
   "devDependencies": {
     "@babel/cli": "^7.29.7",
@@ -372,7 +373,8 @@
     "webpack-dev-server": "^5.2.5",
     "webpack-manifest-plugin": "^6.0.1",
     "webpack-sources": "^3.5.0",
-    "webpack-visualizer-plugin2": "^2.0.0"
+    "webpack-visualizer-plugin2": "^2.0.0",
+    "@types/lodash-es": "^4.17.12"
   },
   "peerDependencies": {
     "ace-builds": "^1.41.0",
diff --git a/superset-frontend/packages/superset-core/package.json b/superset-frontend/packages/superset-core/package.json
index c91754ab260..ddea4ffb3d5 100644
--- a/superset-frontend/packages/superset-core/package.json
+++ b/superset-frontend/packages/superset-core/package.json
@@ -120,5 +120,8 @@
   },
   "publishConfig": {
     "access": "public"
+  },
+  "dependencies": {
+    "lodash-es": "^4.17.21"
   }
 }
diff --git a/superset-frontend/packages/superset-core/src/theme/Theme.tsx b/superset-frontend/packages/superset-core/src/theme/Theme.tsx
index d6ba80d1394..83e60c35c5c 100644
--- a/superset-frontend/packages/superset-core/src/theme/Theme.tsx
+++ b/superset-frontend/packages/superset-core/src/theme/Theme.tsx
@@ -25,7 +25,7 @@ import {
   CacheProvider as EmotionCacheProvider,
 } from '@emotion/react';
 import createCache from '@emotion/cache';
-import { noop, mergeWith } from 'lodash';
+import { noop, mergeWith } from 'lodash-es';
 import { GlobalStyles } from './GlobalStyles';
 import {
   AntdThemeConfig,
diff --git a/superset-frontend/packages/superset-core/src/utils/isBlank.ts b/superset-frontend/packages/superset-core/src/utils/isBlank.ts
index e409dabe529..0db22780c09 100644
--- a/superset-frontend/packages/superset-core/src/utils/isBlank.ts
+++ b/superset-frontend/packages/superset-core/src/utils/isBlank.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { isEmpty, isNaN, isNil, isString, trim } from 'lodash';
+import { isEmpty, isNaN, isNil, isString, trim } from 'lodash-es';
 
 /**
  * Checks if a value is null, undefined, NaN, or a whitespace-only string.
diff --git a/superset-frontend/packages/superset-ui-chart-controls/package.json b/superset-frontend/packages/superset-ui-chart-controls/package.json
index 6a09858cbde..cb07a5dcb49 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/package.json
+++ b/superset-frontend/packages/superset-ui-chart-controls/package.json
@@ -27,7 +27,8 @@
     "@apache-superset/core": "*",
     "@types/react": "*",
     "lodash": "^4.18.1",
-    "tinycolor2": "*"
+    "tinycolor2": "*",
+    "lodash-es": "^4.17.21"
   },
   "peerDependencies": {
     "@ant-design/icons": "^5.6.1",
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/CertifiedIconWithTooltip.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/CertifiedIconWithTooltip.tsx
index 03d7a70438b..93ad3c6d997 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/components/CertifiedIconWithTooltip.tsx
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/CertifiedIconWithTooltip.tsx
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { kebabCase } from 'lodash';
+import { kebabCase } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import { useTheme, styled } from '@apache-superset/core/theme';
 import { Tooltip } from '@superset-ui/core/components';
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/operators/sortOperator.ts b/superset-frontend/packages/superset-ui-chart-controls/src/operators/sortOperator.ts
index ee4238a857c..c242608e9ba 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/operators/sortOperator.ts
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/operators/sortOperator.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitationsxw
  * under the License.
  */
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import {
   ensureIsArray,
   getMetricLabel,
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/shared-controls/sharedControls.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/shared-controls/sharedControls.tsx
index fdedfcac032..1bbe5e832bb 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/shared-controls/sharedControls.tsx
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/shared-controls/sharedControls.tsx
@@ -32,7 +32,7 @@
  * here's a list of the keys that are common to all controls, and as a result define the
  * control interface.
  */
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import {
   getCategoricalSchemeRegistry,
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts
index dbff332cdc0..730d679c894 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 import memoizeOne from 'memoize-one';
-import { isString, isBoolean } from 'lodash';
+import { isString, isBoolean } from 'lodash-es';
 import { isBlank } from '@apache-superset/core/utils';
 import { addAlpha, DataRecord } from '@superset-ui/core';
 import tinycolor from 'tinycolor2';
diff --git a/superset-frontend/packages/superset-ui-chart-controls/test/operators/histogramOperator.test.ts b/superset-frontend/packages/superset-ui-chart-controls/test/operators/histogramOperator.test.ts
index b4f76f42016..5636231da1d 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/test/operators/histogramOperator.test.ts
+++ b/superset-frontend/packages/superset-ui-chart-controls/test/operators/histogramOperator.test.ts
@@ -18,7 +18,7 @@
  */
 import { histogramOperator } from '@superset-ui/chart-controls';
 import { SqlaFormData, VizType } from '@superset-ui/core';
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 
 const formData: SqlaFormData = {
   bins: 5,
diff --git a/superset-frontend/packages/superset-ui-core/package.json b/superset-frontend/packages/superset-ui-core/package.json
index a3e74045600..eb695f8ff64 100644
--- a/superset-frontend/packages/superset-ui-core/package.json
+++ b/superset-frontend/packages/superset-ui-core/package.json
@@ -66,7 +66,8 @@
     "reselect": "^5.2.0",
     "rison": "^0.1.1",
     "seedrandom": "^3.0.5",
-    "xss": "^1.0.15"
+    "xss": "^1.0.15",
+    "lodash-es": "^4.17.21"
   },
   "devDependencies": {
     "@emotion/styled": "^11.14.1",
diff --git a/superset-frontend/packages/superset-ui-core/src/color/CategoricalColorNamespace.ts b/superset-frontend/packages/superset-ui-core/src/color/CategoricalColorNamespace.ts
index 9389ad549fd..00181d1d5f2 100644
--- a/superset-frontend/packages/superset-ui-core/src/color/CategoricalColorNamespace.ts
+++ b/superset-frontend/packages/superset-ui-core/src/color/CategoricalColorNamespace.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { cloneDeep } from 'lodash';
+import { cloneDeep } from 'lodash-es';
 import CategoricalColorScale from './CategoricalColorScale';
 import { ColorsLookup } from './types';
 import getCategoricalSchemeRegistry from './CategoricalSchemeRegistrySingleton';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx
index 2cfcf9badc7..e51ddf6ed70 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { Dropdown } from 'antd';
-import { kebabCase } from 'lodash';
+import { kebabCase } from 'lodash-es';
 import { css, useTheme } from '@apache-superset/core/theme';
 import { Tooltip } from '../Tooltip';
 import type { DropdownButtonProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.stories.tsx b/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.stories.tsx
index f70cbc094a6..c180b61858a 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.stories.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.stories.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { useRef, useCallback, useState } from 'react';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import { css } from '@apache-superset/core/theme';
 import { Button } from '../Button';
 import { Select } from '../Select';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/InfoTooltip/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/InfoTooltip/index.tsx
index 171d7ab4790..e1212771edc 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/InfoTooltip/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/InfoTooltip/index.tsx
@@ -18,7 +18,7 @@
  */
 import { KeyboardEvent, useMemo } from 'react';
 import { SerializedStyles, CSSObject } from '@emotion/react';
-import { kebabCase } from 'lodash';
+import { kebabCase } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import { css, useTheme, getFontSize } from '@apache-superset/core/theme';
 import {
diff --git a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.tsx b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.tsx
index 50b2f3cac00..85f36163e81 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.tsx
@@ -18,7 +18,7 @@
  */
 import { useCallback, useEffect, useRef, useState } from 'react';
 import { useResizeDetector } from 'react-resize-detector';
-import { uniqWith } from 'lodash';
+import { uniqWith } from 'lodash-es';
 import { styled } from '@apache-superset/core/theme';
 import { Tooltip } from '../Tooltip';
 import { TooltipPlacement } from '../Tooltip/types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx b/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx
index 3901ac10690..0f0e73debff 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx
@@ -24,7 +24,7 @@ import {
   useState,
   type ComponentType,
 } from 'react';
-import { isNil } from 'lodash';
+import { isNil } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import { css, styled, useTheme } from '@apache-superset/core/theme';
 import { Modal as AntdModal, ModalProps as AntdModalProps } from 'antd';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/SafeMarkdown/SafeMarkdown.tsx b/superset-frontend/packages/superset-ui-core/src/components/SafeMarkdown/SafeMarkdown.tsx
index e990d2a329b..e1de572eb09 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/SafeMarkdown/SafeMarkdown.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/SafeMarkdown/SafeMarkdown.tsx
@@ -22,7 +22,7 @@ import rehypeSanitize, { defaultSchema } from 'rehype-sanitize';
 // remark-gfm v4+ requires react-markdown v9+, which requires React 18.
 // Currently pinned to v3.0.1 for compatibility with react-markdown v8 and React 17.
 import remarkGfm from 'remark-gfm';
-import { cloneDeep, mergeWith } from 'lodash';
+import { cloneDeep, mergeWith } from 'lodash-es';
 import { FeatureFlag, isFeatureEnabled } from '../../utils';
 
 interface SafeMarkdownProps {
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.tsx b/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.tsx
index 7d9079a0150..4104911fc12 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Select/AsyncSelect.tsx
@@ -41,7 +41,7 @@ import {
   LabeledValue as AntdLabeledValue,
   RefSelectProps,
 } from 'antd/es/select';
-import { debounce, isEqual, uniq } from 'lodash';
+import { debounce, isEqual, uniq } from 'lodash-es';
 import { Constants, Icons } from '@superset-ui/core/components';
 import { Space } from '../Space';
 import {
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Select/Select.tsx b/superset-frontend/packages/superset-ui-core/src/components/Select/Select.tsx
index 7f313f78c67..322a6188c5c 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Select/Select.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Select/Select.tsx
@@ -37,7 +37,7 @@ import {
   LabeledValue as AntdLabeledValue,
   RefSelectProps,
 } from 'antd/es/select';
-import { debounce, isEqual, uniq } from 'lodash';
+import { debounce, isEqual, uniq } from 'lodash-es';
 import {
   dropDownRenderHelper,
   getOption,
diff --git a/superset-frontend/packages/superset-ui-core/src/components/TableView/TableView.tsx b/superset-frontend/packages/superset-ui-core/src/components/TableView/TableView.tsx
index 371397773a1..df46330cd63 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/TableView/TableView.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/TableView/TableView.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { memo, useEffect, useRef, useMemo, useCallback, useState } from 'react';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import { styled } from '@apache-superset/core/theme';
 import { useFilters, useSortBy, useTable } from 'react-table';
 import { Empty } from '@superset-ui/core/components';
diff --git a/superset-frontend/packages/superset-ui-core/src/connection/callApi/parseResponse.ts b/superset-frontend/packages/superset-ui-core/src/connection/callApi/parseResponse.ts
index 2f914531bb5..0716f16a8ac 100644
--- a/superset-frontend/packages/superset-ui-core/src/connection/callApi/parseResponse.ts
+++ b/superset-frontend/packages/superset-ui-core/src/connection/callApi/parseResponse.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 import _JSONbig from 'json-bigint';
-import { cloneDeepWith } from 'lodash';
+import { cloneDeepWith } from 'lodash-es';
 
 import { ParseMethod, TextResponse, JsonResponse } from '../types';
 
diff --git a/superset-frontend/packages/superset-ui-core/src/query/normalizeOrderBy.ts b/superset-frontend/packages/superset-ui-core/src/query/normalizeOrderBy.ts
index 67945d6b013..8a67463580b 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/normalizeOrderBy.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/normalizeOrderBy.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 
 import { QueryObject } from './types';
 
diff --git a/superset-frontend/packages/superset-ui-core/src/query/normalizeTimeColumn.ts b/superset-frontend/packages/superset-ui-core/src/query/normalizeTimeColumn.ts
index b5bde0c88db..5f200ab3fca 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/normalizeTimeColumn.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/normalizeTimeColumn.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 
 import {
   AdhocColumn,
diff --git a/superset-frontend/packages/superset-ui-core/src/time-comparison/fetchTimeRange.ts b/superset-frontend/packages/superset-ui-core/src/time-comparison/fetchTimeRange.ts
index 61c2a2f8ad3..4389f271001 100644
--- a/superset-frontend/packages/superset-ui-core/src/time-comparison/fetchTimeRange.ts
+++ b/superset-frontend/packages/superset-ui-core/src/time-comparison/fetchTimeRange.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 import rison from 'rison';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import {
   SupersetClient,
   getClientErrorObject,
diff --git a/superset-frontend/packages/superset-ui-core/src/time-comparison/getTimeOffset.ts b/superset-frontend/packages/superset-ui-core/src/time-comparison/getTimeOffset.ts
index b8f970dc100..9af5a86116c 100644
--- a/superset-frontend/packages/superset-ui-core/src/time-comparison/getTimeOffset.ts
+++ b/superset-frontend/packages/superset-ui-core/src/time-comparison/getTimeOffset.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { ensureIsArray } from '../utils';
 import { customTimeRangeDecode } from './customTimeRangeDecode';
 
diff --git a/superset-frontend/packages/superset-ui-core/src/utils/convertKeysToCamelCase.ts b/superset-frontend/packages/superset-ui-core/src/utils/convertKeysToCamelCase.ts
index fb39add6095..0317f8e348c 100644
--- a/superset-frontend/packages/superset-ui-core/src/utils/convertKeysToCamelCase.ts
+++ b/superset-frontend/packages/superset-ui-core/src/utils/convertKeysToCamelCase.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { camelCase, isPlainObject, mapKeys } from 'lodash';
+import { camelCase, isPlainObject, mapKeys } from 'lodash-es';
 
 export default function convertKeysToCamelCase<T>(object: T) {
   if (object === null || object === undefined) {
diff --git a/superset-frontend/packages/superset-ui-core/src/utils/merge.ts b/superset-frontend/packages/superset-ui-core/src/utils/merge.ts
index bde3783f908..1114e683717 100644
--- a/superset-frontend/packages/superset-ui-core/src/utils/merge.ts
+++ b/superset-frontend/packages/superset-ui-core/src/utils/merge.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { mergeWith } from 'lodash';
+import { mergeWith } from 'lodash-es';
 
 /**
  * Merges objects using lodash.mergeWith, but replaces arrays instead of concatenating them.
diff --git a/superset-frontend/packages/superset-ui-core/test/components/SafeMarkdown.test.tsx b/superset-frontend/packages/superset-ui-core/test/components/SafeMarkdown.test.tsx
index d3209e6907c..ddc87280029 100644
--- a/superset-frontend/packages/superset-ui-core/test/components/SafeMarkdown.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/test/components/SafeMarkdown.test.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { render } from '@testing-library/react';
-import { cloneDeep } from 'lodash';
+import { cloneDeep } from 'lodash-es';
 import { defaultSchema } from 'rehype-sanitize';
 import {
   getOverrideHtmlSchema,
diff --git a/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json b/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json
index 7676c10473c..1203935290a 100644
--- a/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json
+++ b/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json
@@ -36,7 +36,8 @@
     "nvd3-fork": "^2.0.5",
     "dompurify": "^3.4.11",
     "prop-types": "^15.8.1",
-    "urijs": "^1.19.11"
+    "urijs": "^1.19.11",
+    "lodash-es": "^4.17.21"
   },
   "peerDependencies": {
     "@apache-superset/core": "*",
diff --git a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Vis.ts b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Vis.ts
index 23b779e09e4..a34e61e68f3 100644
--- a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Vis.ts
+++ b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Vis.ts
@@ -18,7 +18,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { kebabCase, throttle } from 'lodash';
+import { kebabCase, throttle } from 'lodash-es';
 import d3 from 'd3';
 import utc from 'dayjs/plugin/utc';
 import nv from 'nvd3-fork';
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json b/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json
index a92989b92af..39952a635d9 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json
@@ -32,7 +32,8 @@
     "memoize-one": "^6.0.0",
     "react-table": "^7.8.0",
     "regenerator-runtime": "^0.14.1",
-    "xss": "^1.0.15"
+    "xss": "^1.0.15",
+    "lodash-es": "^4.17.21"
   },
   "peerDependencies": {
     "@ant-design/icons": "^5.6.1",
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTable/index.tsx b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTable/index.tsx
index ebb66b0db28..0dc74c8ac58 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTable/index.tsx
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTable/index.tsx
@@ -50,7 +50,7 @@ import {
   JsonObject,
 } from '@superset-ui/core';
 import { SearchOutlined } from '@ant-design/icons';
-import { debounce, isEqual } from 'lodash';
+import { debounce, isEqual } from 'lodash-es';
 import Pagination from './components/Pagination';
 import SearchSelectDropdown from './components/SearchSelectDropdown';
 import { SearchOption, SortByItem } from '../types';
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTableChart.tsx b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTableChart.tsx
index 24bc28e5322..44f2e5ad966 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTableChart.tsx
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTableChart.tsx
@@ -24,7 +24,7 @@ import {
 } from '@superset-ui/core';
 import { GenericDataType } from '@apache-superset/core/common';
 import { useCallback, useEffect, useRef, useState, useMemo } from 'react';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 
 import {
   CellClickedEvent,
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/buildQuery.ts b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/buildQuery.ts
index 9753fa01571..36fe1f91ef8 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/buildQuery.ts
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/buildQuery.ts
@@ -38,7 +38,7 @@ import {
   isTimeComparison,
   timeCompareOperator,
 } from '@superset-ui/chart-controls';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { TableChartFormData } from './types';
 import { updateTableOwnState } from './utils/externalAPIs';
 
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx
index 6759e95052a..e219c495d2b 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx
@@ -55,7 +55,7 @@ import {
   withLabel,
 } from '@superset-ui/core';
 import { GenericDataType } from '@apache-superset/core/common';
-import { isEmpty, last } from 'lodash';
+import { isEmpty, last } from 'lodash-es';
 import { PAGE_SIZE_OPTIONS, SERVER_PAGE_SIZE_OPTIONS } from './consts';
 
 /**
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts
index 1ad19b06b57..4a3585effaf 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts
@@ -38,7 +38,7 @@ import {
   AgGridFilterModel,
 } from '@superset-ui/core';
 import { GenericDataType } from '@apache-superset/core/common';
-import { isEmpty, isEqual, merge } from 'lodash';
+import { isEmpty, isEqual, merge } from 'lodash-es';
 import {
   ConditionalFormattingConfig,
   getColorFormatters,
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/extent.ts b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/extent.ts
index 4b326800d2f..183dd9eb077 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/extent.ts
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/extent.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { isNil } from 'lodash';
+import { isNil } from 'lodash-es';
 
 export default function extent<T = number | string | Date | undefined | null>(
   values: T[],
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getInitialFilterModel.ts b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getInitialFilterModel.ts
index bfe3c054be4..1e0f5a51d7e 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getInitialFilterModel.ts
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getInitialFilterModel.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import type { AgGridChartState } from '@superset-ui/core';
 
 const getInitialFilterModel = (
diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/package.json b/superset-frontend/plugins/plugin-chart-cartodiagram/package.json
index 994c3e10214..527b089858e 100644
--- a/superset-frontend/plugins/plugin-chart-cartodiagram/package.json
+++ b/superset-frontend/plugins/plugin-chart-cartodiagram/package.json
@@ -31,7 +31,8 @@
   "dependencies": {
     "@types/geojson": "^7946.0.16",
     "geojson": "^0.5.0",
-    "lodash": "^4.18.1"
+    "lodash": "^4.18.1",
+    "lodash-es": "^4.17.21"
   },
   "peerDependencies": {
     "@ant-design/icons": "^5.6.1",
diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/OlChartMap.tsx b/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/OlChartMap.tsx
index 89b097e8992..8c16e2bd2b9 100644
--- a/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/OlChartMap.tsx
+++ b/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/OlChartMap.tsx
@@ -24,7 +24,7 @@ import { View } from 'ol';
 import BaseEvent from 'ol/events/Event';
 import { unByKey } from 'ol/Observable';
 import { toLonLat } from 'ol/proj';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import { fitMapToCharts } from '../util/mapUtil';
 import { ChartLayer } from './ChartLayer';
 import { createLayer } from '../util/layerUtil';
diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/src/util/transformPropsUtil.ts b/superset-frontend/plugins/plugin-chart-cartodiagram/src/util/transformPropsUtil.ts
index fb416005739..0ab23b643c8 100644
--- a/superset-frontend/plugins/plugin-chart-cartodiagram/src/util/transformPropsUtil.ts
+++ b/superset-frontend/plugins/plugin-chart-cartodiagram/src/util/transformPropsUtil.ts
@@ -22,7 +22,7 @@ import {
   convertKeysToCamelCase,
   DataRecord,
 } from '@superset-ui/core';
-import { isObject } from 'lodash';
+import { isObject } from 'lodash-es';
 import {
   LocationConfigMapping,
   SelectedChartConfig,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/package.json b/superset-frontend/plugins/plugin-chart-echarts/package.json
index a1467781349..6699199f487 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/package.json
+++ b/superset-frontend/plugins/plugin-chart-echarts/package.json
@@ -29,7 +29,8 @@
     "acorn": "^8.17.0",
     "d3-array": "^3.2.4",
     "lodash": "^4.18.1",
-    "zod": "^4.4.3"
+    "zod": "^4.4.3",
+    "lodash-es": "^4.17.21"
   },
   "peerDependencies": {
     "@apache-superset/core": "*",
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx
index 209c4a20748..4af6f5d221e 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx
@@ -29,7 +29,7 @@ import {
   DEFAULT_DATE_PATTERN,
   ColorSchemeEnum,
 } from '@superset-ui/chart-controls';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import {
   PopKPIComparisonSymbolStyleProps,
   PopKPIComparisonValueStyleProps,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/buildQuery.ts b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/buildQuery.ts
index cb185ef8540..0b6a49eb02c 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/buildQuery.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/buildQuery.ts
@@ -26,7 +26,7 @@ import {
   isTimeComparison,
   timeCompareOperator,
 } from '@superset-ui/chart-controls';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 
 export default function buildQuery(formData: QueryFormData) {
   const { cols: groupby, extra_form_data } = formData;
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/controlPanel.ts b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/controlPanel.ts
index 9da2cfa8e2e..b11d373324a 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/controlPanel.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/controlPanel.ts
@@ -25,7 +25,7 @@ import {
   sections,
   ColorSchemeEnum,
 } from '@superset-ui/chart-controls';
-import { noop } from 'lodash';
+import { noop } from 'lodash-es';
 import {
   headerFontSize,
   subheaderFontSize,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/useOverflowDetection.ts b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/useOverflowDetection.ts
index 42cda225d3c..9e5be864628 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/useOverflowDetection.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/useOverflowDetection.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { useEffect, useRef, useState } from 'react';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 
 export const useOverflowDetection = (flexGap: number) => {
   const symbolContainerRef = useRef<HTMLDivElement>(null);
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/transformProps.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/transformProps.ts
index c879557ba75..dceb4927d02 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/transformProps.ts
@@ -30,7 +30,7 @@ import type { EChartsCoreOption } from 'echarts/core';
 import type { GaugeSeriesOption } from 'echarts/charts';
 import type { GaugeDataItemOption } from 'echarts/types/src/chart/gauge/GaugeSeries';
 import type { CallbackDataParams } from 'echarts/types/src/util/types';
-import { range } from 'lodash';
+import { range } from 'lodash-es';
 import { parseNumbersList } from '../utils/controls';
 import {
   DEFAULT_FORM_DATA as DEFAULT_GAUGE_FORM_DATA,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/transformProps.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/transformProps.ts
index cb2d250dd04..ae90acb2d85 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/transformProps.ts
@@ -32,7 +32,7 @@ import {
 import { logging } from '@apache-superset/core/utils';
 import { GenericDataType } from '@apache-superset/core/common';
 import memoizeOne from 'memoize-one';
-import { maxBy, minBy } from 'lodash';
+import { maxBy, minBy } from 'lodash-es';
 import type { ComposeOption } from 'echarts/core';
 import type { HeatmapSeriesOption } from 'echarts/charts';
 import type { CallbackDataParams } from 'echarts/types/src/util/types';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Histogram/transformProps.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Histogram/transformProps.ts
index 28d2a93e6d1..f562e46fb58 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Histogram/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Histogram/transformProps.ts
@@ -20,7 +20,7 @@ import type { ComposeOption } from 'echarts/core';
 import type { BarSeriesOption } from 'echarts/charts';
 import type { GridComponentOption } from 'echarts/components';
 import type { CallbackDataParams } from 'echarts/types/src/util/types';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import {
   CategoricalColorNamespace,
   NumberFormats,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx
index 3cb27c928bc..a3f9b9a6ada 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx
@@ -18,7 +18,7 @@
  */
 import { t } from '@apache-superset/core/translation';
 import { ensureIsArray } from '@superset-ui/core';
-import { cloneDeep } from 'lodash';
+import { cloneDeep } from 'lodash-es';
 import {
   ControlPanelsContainerProps,
   ControlPanelConfig,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts
index 14805e9ba6f..9654981c226 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 /* eslint-disable camelcase */
-import { invert } from 'lodash';
+import { invert } from 'lodash-es';
 import {
   AnnotationLayer,
   AxisType,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts
index 089167f3945..c8335fb727d 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 /* eslint-disable camelcase */
-import { invert } from 'lodash';
+import { invert } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import {
   AnnotationLayer,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/utils/annotation.ts b/superset-frontend/plugins/plugin-chart-echarts/src/utils/annotation.ts
index 90a450c3c3a..0b319b5f55a 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/utils/annotation.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/utils/annotation.ts
@@ -17,7 +17,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 
 import {
   Annotation,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts b/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
index a8c80303ced..535a310dcc5 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
@@ -37,7 +37,7 @@ import { SortSeriesType, LegendPaddingType } from '@superset-ui/chart-controls';
 import { format } from 'echarts/core';
 import type { LegendComponentOption } from 'echarts/components';
 import type { SeriesOption } from 'echarts';
-import { isEmpty, maxBy, meanBy, minBy, orderBy, sumBy } from 'lodash';
+import { isEmpty, maxBy, meanBy, minBy, orderBy, sumBy } from 'lodash-es';
 import {
   NULL_STRING,
   StackControlsValue,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/utils/themeOverrides.ts b/superset-frontend/plugins/plugin-chart-echarts/src/utils/themeOverrides.ts
index 46789d5b8a7..d4f266860f7 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/utils/themeOverrides.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/utils/themeOverrides.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { mergeWith, isPlainObject } from 'lodash';
+import { mergeWith, isPlainObject } from 'lodash-es';
 
 /**
  * Custom merge function for ECharts theme overrides.
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/utils/treeBuilder.ts b/superset-frontend/plugins/plugin-chart-echarts/src/utils/treeBuilder.ts
index d932da03369..a0fbb34640f 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/utils/treeBuilder.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/utils/treeBuilder.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { DataRecord, DataRecordValue } from '@superset-ui/core';
-import { groupBy as _groupBy, transform } from 'lodash';
+import { groupBy as _groupBy, transform } from 'lodash-es';
 
 export type TreeNode = {
   name: DataRecordValue;
@@ -95,8 +95,6 @@ export function treeBuilder(
   // is dropped too: keeping it would leave a zero-value arc that yields a NaN
   // secondaryValue/value ratio for coloring and tooltips.
   return filterNullNames
-    ? nodes.filter(
-        node => node.name !== null && node.children?.length !== 0,
-      )
+    ? nodes.filter(node => node.name !== null && node.children?.length !== 0)
     : nodes;
 }
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/package.json b/superset-frontend/plugins/plugin-chart-handlebars/package.json
index f9931d1800e..88f21a811f4 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/package.json
+++ b/superset-frontend/plugins/plugin-chart-handlebars/package.json
@@ -29,7 +29,8 @@
   "dependencies": {
     "currencyformatter.js": "^1.0.5",
     "handlebars-group-by": "^1.0.1",
-    "just-handlebars-helpers": "^1.0.19"
+    "just-handlebars-helpers": "^1.0.19",
+    "lodash-es": "^4.17.21"
   },
   "peerDependencies": {
     "@superset-ui/chart-controls": "*",
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/src/components/Handlebars/HandlebarsViewer.tsx b/superset-frontend/plugins/plugin-chart-handlebars/src/components/Handlebars/HandlebarsViewer.tsx
index 828c7f906ed..389b5d22114 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/src/components/Handlebars/HandlebarsViewer.tsx
+++ b/superset-frontend/plugins/plugin-chart-handlebars/src/components/Handlebars/HandlebarsViewer.tsx
@@ -22,7 +22,7 @@ import { SafeMarkdown } from '@superset-ui/core/components';
 import { extendedDayjs as dayjs } from '@superset-ui/core/utils/dates';
 import Handlebars from 'handlebars';
 import { useMemo, useState } from 'react';
-import { isPlainObject } from 'lodash';
+import { isPlainObject } from 'lodash-es';
 import Helpers from 'just-handlebars-helpers';
 import HandlebarsGroupBy from 'handlebars-group-by';
 
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/src/consts.ts b/superset-frontend/plugins/plugin-chart-handlebars/src/consts.ts
index 8b722af5435..4177b38e560 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/src/consts.ts
+++ b/superset-frontend/plugins/plugin-chart-handlebars/src/consts.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import { Constants } from '@superset-ui/core/components';
 
 export const debounceFunc = debounce(
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/orderBy.tsx b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/orderBy.tsx
index cd46e8a3880..4740af0c1a6 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/orderBy.tsx
+++ b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/orderBy.tsx
@@ -18,7 +18,7 @@
  */
 import { ControlSetItem, Dataset } from '@superset-ui/chart-controls';
 import { t } from '@apache-superset/core/translation';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { isAggMode, isRawMode } from './shared';
 
 export const orderByControlSetItem: ControlSetItem = {
diff --git a/superset-frontend/plugins/plugin-chart-table/package.json b/superset-frontend/plugins/plugin-chart-table/package.json
index da653a22c4c..29bce06ae29 100644
--- a/superset-frontend/plugins/plugin-chart-table/package.json
+++ b/superset-frontend/plugins/plugin-chart-table/package.json
@@ -32,7 +32,8 @@
     "memoize-one": "^6.0.0",
     "react-table": "^7.8.0",
     "regenerator-runtime": "^0.14.1",
-    "xss": "^1.0.15"
+    "xss": "^1.0.15",
+    "lodash-es": "^4.17.21"
   },
   "peerDependencies": {
     "@ant-design/icons": "^5.6.1",
diff --git a/superset-frontend/plugins/plugin-chart-table/src/DataTable/DataTable.tsx b/superset-frontend/plugins/plugin-chart-table/src/DataTable/DataTable.tsx
index 0c9a1dff575..a40d91b0d7d 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/DataTable/DataTable.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/src/DataTable/DataTable.tsx
@@ -43,7 +43,7 @@ import {
   Row,
 } from 'react-table';
 import { matchSorter, rankings } from 'match-sorter';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import { Flex, Space } from '@superset-ui/core/components';
 import GlobalFilter, { GlobalFilterProps } from './components/GlobalFilter';
 import SelectPageSize, {
diff --git a/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx b/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx
index 0898f227217..ce533a13c51 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx
@@ -75,7 +75,7 @@ import {
   PlusCircleOutlined,
   TableOutlined,
 } from '@ant-design/icons';
-import { isEmpty, debounce, isEqual } from 'lodash';
+import { isEmpty, debounce, isEqual } from 'lodash-es';
 import {
   ColorFormatters,
   getTextColorForBackground,
diff --git a/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts b/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts
index 37687c0cf96..d74c097e80d 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts
+++ b/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts
@@ -34,7 +34,7 @@ import {
   isTimeComparison,
   timeCompareOperator,
 } from '@superset-ui/chart-controls';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { TableChartFormData } from './types';
 import { updateTableOwnState } from './DataTable/utils/externalAPIs';
 
diff --git a/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx
index 2801f1478e0..5a81e4ff526 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx
@@ -57,7 +57,7 @@ import {
   withLabel,
 } from '@superset-ui/core';
 import { GenericDataType } from '@apache-superset/core/common';
-import { isEmpty, last } from 'lodash';
+import { isEmpty, last } from 'lodash-es';
 import { PAGE_SIZE_OPTIONS, SERVER_PAGE_SIZE_OPTIONS } from './consts';
 
 function getQueryMode(controls: ControlStateMapping): QueryMode {
diff --git a/superset-frontend/plugins/plugin-chart-table/src/transformProps.ts b/superset-frontend/plugins/plugin-chart-table/src/transformProps.ts
index ffa23217f68..a1bef459def 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-table/src/transformProps.ts
@@ -45,7 +45,7 @@ import {
   ColorSchemeEnum,
 } from '@superset-ui/chart-controls';
 
-import { isEmpty, merge } from 'lodash';
+import { isEmpty, merge } from 'lodash-es';
 import isEqualColumns from './utils/isEqualColumns';
 import DateWithFormatter from './utils/DateWithFormatter';
 import {
diff --git a/superset-frontend/plugins/plugin-chart-table/src/utils/extent.ts b/superset-frontend/plugins/plugin-chart-table/src/utils/extent.ts
index 4b326800d2f..183dd9eb077 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/utils/extent.ts
+++ b/superset-frontend/plugins/plugin-chart-table/src/utils/extent.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { isNil } from 'lodash';
+import { isNil } from 'lodash-es';
 
 export default function extent<T = number | string | Date | undefined | null>(
   values: T[],
diff --git a/superset-frontend/plugins/plugin-chart-table/test/TableChart.test.tsx b/superset-frontend/plugins/plugin-chart-table/test/TableChart.test.tsx
index 7a12f25ec92..5dbeba45635 100644
--- a/superset-frontend/plugins/plugin-chart-table/test/TableChart.test.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/test/TableChart.test.tsx
@@ -29,7 +29,7 @@ import {
   waitFor,
   within,
 } from '@superset-ui/core/spec';
-import { cloneDeep } from 'lodash';
+import { cloneDeep } from 'lodash-es';
 import {
   QueryMode,
   TimeGranularity,
diff --git a/superset-frontend/plugins/plugin-chart-word-cloud/package.json b/superset-frontend/plugins/plugin-chart-word-cloud/package.json
index 9d803d101c9..a269d73e448 100644
--- a/superset-frontend/plugins/plugin-chart-word-cloud/package.json
+++ b/superset-frontend/plugins/plugin-chart-word-cloud/package.json
@@ -31,7 +31,8 @@
   "dependencies": {
     "@types/d3-scale": "^4.0.9",
     "d3-cloud": "^1.2.9",
-    "d3-scale": "^4.0.2"
+    "d3-scale": "^4.0.2",
+    "lodash-es": "^4.17.21"
   },
   "peerDependencies": {
     "@apache-superset/core": "*",
diff --git a/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx b/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx
index 75736057c19..58f831fca4a 100644
--- a/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx
+++ b/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx
@@ -21,7 +21,7 @@ import cloudLayout from 'd3-cloud';
 import { scaleLinear } from 'd3-scale';
 import { seed, CategoricalColorNamespace } from '@superset-ui/core';
 import { SupersetTheme, withTheme } from '@apache-superset/core/theme';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 
 const seedRandom = seed('superset-ui');
 
diff --git a/superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controls/ColorSchemeControl/index.tsx b/superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controls/ColorSchemeControl/index.tsx
index b10654aa270..13083b1146c 100644
--- a/superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controls/ColorSchemeControl/index.tsx
+++ b/superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controls/ColorSchemeControl/index.tsx
@@ -27,7 +27,7 @@ import {
   CategoricalColorNamespace,
 } from '@superset-ui/core';
 import { css, useTheme } from '@apache-superset/core/theme';
-import { sortBy } from 'lodash';
+import { sortBy } from 'lodash-es';
 import { ControlHeader } from '@superset-ui/chart-controls';
 import {
   Tooltip,
diff --git a/superset-frontend/plugins/preset-chart-deckgl/package.json b/superset-frontend/plugins/preset-chart-deckgl/package.json
index ca416c8ad02..75273b191a7 100644
--- a/superset-frontend/plugins/preset-chart-deckgl/package.json
+++ b/superset-frontend/plugins/preset-chart-deckgl/package.json
@@ -53,7 +53,8 @@
     "tinycolor2": "^1.6.0",
     "underscore": "^1.13.7",
     "urijs": "^1.19.11",
-    "xss": "^1.0.15"
+    "xss": "^1.0.15",
+    "lodash-es": "^4.17.21"
   },
   "devDependencies": {
     "@types/mapbox__geojson-extent": "^1.0.3",
diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/DeckGLContainer.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/DeckGLContainer.tsx
index 9fc884a479c..3a4112478d4 100644
--- a/superset-frontend/plugins/preset-chart-deckgl/src/DeckGLContainer.tsx
+++ b/superset-frontend/plugins/preset-chart-deckgl/src/DeckGLContainer.tsx
@@ -27,7 +27,7 @@ import {
   useState,
   isValidElement,
 } from 'react';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import { Map as MapLibreMap } from 'react-map-gl/maplibre';
 import { Map as MapboxMap } from 'react-map-gl/mapbox';
 import mapboxgl from 'mapbox-gl';
diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/Multi/Multi.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/Multi/Multi.tsx
index 690e4e57db6..f2d221b09c5 100644
--- a/superset-frontend/plugins/preset-chart-deckgl/src/Multi/Multi.tsx
+++ b/superset-frontend/plugins/preset-chart-deckgl/src/Multi/Multi.tsx
@@ -21,7 +21,7 @@
  */
 import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
 import { useSelector } from 'react-redux';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import { createSelector } from '@reduxjs/toolkit';
 import {
   AdhocFilter,
diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/factory.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/factory.tsx
index d80f25502bb..ec38466c079 100644
--- a/superset-frontend/plugins/preset-chart-deckgl/src/factory.tsx
+++ b/superset-frontend/plugins/preset-chart-deckgl/src/factory.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { memo, useCallback, useEffect, useRef, useState } from 'react';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import type { Layer } from '@deck.gl/core';
 import { getMapboxApiKey } from './utils/mapbox';
 import {
diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/utilities/HandlebarsRenderer.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/utilities/HandlebarsRenderer.tsx
index a6d0a0fdc36..083b5afd3ab 100644
--- a/superset-frontend/plugins/preset-chart-deckgl/src/utilities/HandlebarsRenderer.tsx
+++ b/superset-frontend/plugins/preset-chart-deckgl/src/utilities/HandlebarsRenderer.tsx
@@ -22,7 +22,7 @@ import { sanitizeHtml } from '@superset-ui/core';
 import { styled } from '@apache-superset/core/theme';
 import { extendedDayjs as dayjs } from '@superset-ui/core/utils/dates';
 import Handlebars from 'handlebars';
-import { isPlainObject } from 'lodash';
+import { isPlainObject } from 'lodash-es';
 
 export interface HandlebarsRendererProps {
   templateSource: string;
diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/utilities/TooltipTemplateControl.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/utilities/TooltipTemplateControl.tsx
index 94bdc970806..2bde85469d8 100644
--- a/superset-frontend/plugins/preset-chart-deckgl/src/utilities/TooltipTemplateControl.tsx
+++ b/superset-frontend/plugins/preset-chart-deckgl/src/utilities/TooltipTemplateControl.tsx
@@ -18,7 +18,7 @@
  */
 
 import { useCallback } from 'react';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import { useTheme } from '@apache-superset/core/theme';
 import { InfoTooltip, Constants } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/SqlLab/actions/sqlLab.ts b/superset-frontend/src/SqlLab/actions/sqlLab.ts
index 072bfd05260..42331f1364e 100644
--- a/superset-frontend/src/SqlLab/actions/sqlLab.ts
+++ b/superset-frontend/src/SqlLab/actions/sqlLab.ts
@@ -29,7 +29,7 @@ import {
   getClientErrorObject,
 } from '@superset-ui/core';
 import { t } from '@apache-superset/core/translation';
-import { invert, mapKeys } from 'lodash';
+import { invert, mapKeys } from 'lodash-es';
 
 import { now } from '@superset-ui/core/utils/dates';
 import {
diff --git a/superset-frontend/src/SqlLab/components/App/index.tsx b/superset-frontend/src/SqlLab/components/App/index.tsx
index eb5645b9aca..5c1e40b10b6 100644
--- a/superset-frontend/src/SqlLab/components/App/index.tsx
+++ b/superset-frontend/src/SqlLab/components/App/index.tsx
@@ -22,7 +22,7 @@ import { Redirect } from 'react-router-dom';
 import Mousetrap from 'mousetrap';
 import { t } from '@apache-superset/core/translation';
 import { css, styled } from '@apache-superset/core/theme';
-import { throttle } from 'lodash';
+import { throttle } from 'lodash-es';
 import {
   LOCALSTORAGE_MAX_USAGE_KB,
   LOCALSTORAGE_WARNING_THRESHOLD,
diff --git a/superset-frontend/src/SqlLab/components/AppLayout/index.tsx b/superset-frontend/src/SqlLab/components/AppLayout/index.tsx
index 38786b8d511..55fdd413f4f 100644
--- a/superset-frontend/src/SqlLab/components/AppLayout/index.tsx
+++ b/superset-frontend/src/SqlLab/components/AppLayout/index.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { useSelector } from 'react-redux';
-import { noop } from 'lodash';
+import { noop } from 'lodash-es';
 import type { SqlLabRootState } from 'src/SqlLab/types';
 import { css, styled } from '@apache-superset/core/theme';
 import { useComponentDidUpdate } from '@superset-ui/core';
diff --git a/superset-frontend/src/SqlLab/components/PopEditorTab/index.tsx b/superset-frontend/src/SqlLab/components/PopEditorTab/index.tsx
index c8b937db206..4d49112a80b 100644
--- a/superset-frontend/src/SqlLab/components/PopEditorTab/index.tsx
+++ b/superset-frontend/src/SqlLab/components/PopEditorTab/index.tsx
@@ -20,7 +20,7 @@ import { useEffect, useState } from 'react';
 import { useSelector } from 'react-redux';
 import { useAppDispatch } from 'src/SqlLab/hooks/useAppDispatch';
 import URI from 'urijs';
-import { pick } from 'lodash';
+import { pick } from 'lodash-es';
 import { useComponentDidUpdate } from '@superset-ui/core';
 import { Skeleton } from '@superset-ui/core/components';
 import useEffectEvent from 'src/hooks/useEffectEvent';
diff --git a/superset-frontend/src/SqlLab/components/QueryAutoRefresh/index.tsx b/superset-frontend/src/SqlLab/components/QueryAutoRefresh/index.tsx
index 4203a544c37..c2b559826fa 100644
--- a/superset-frontend/src/SqlLab/components/QueryAutoRefresh/index.tsx
+++ b/superset-frontend/src/SqlLab/components/QueryAutoRefresh/index.tsx
@@ -19,7 +19,7 @@
 import { useRef } from 'react';
 import { useSelector } from 'react-redux';
 import { useAppDispatch } from 'src/SqlLab/hooks/useAppDispatch';
-import { isObject } from 'lodash';
+import { isObject } from 'lodash-es';
 import rison from 'rison';
 import {
   SupersetClient,
diff --git a/superset-frontend/src/SqlLab/components/QueryHistory/index.tsx b/superset-frontend/src/SqlLab/components/QueryHistory/index.tsx
index 1e58a30f5c5..d41c13fe750 100644
--- a/superset-frontend/src/SqlLab/components/QueryHistory/index.tsx
+++ b/superset-frontend/src/SqlLab/components/QueryHistory/index.tsx
@@ -19,7 +19,7 @@
 import { useEffect, useMemo, useState } from 'react';
 import { shallowEqual, useSelector } from 'react-redux';
 import { useInView } from 'react-intersection-observer';
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 import { EmptyState, Skeleton } from '@superset-ui/core/components';
 import { t } from '@apache-superset/core/translation';
 import { FeatureFlag, isFeatureEnabled } from '@superset-ui/core';
diff --git a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx
index a227566f60f..732d1dec8f9 100644
--- a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx
+++ b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx
@@ -31,7 +31,7 @@ import AutoSizer from 'react-virtualized-auto-sizer';
 import { shallowEqual, useSelector } from 'react-redux';
 import { useAppDispatch } from 'src/SqlLab/hooks/useAppDispatch';
 import { useHistory } from 'react-router-dom';
-import { pick } from 'lodash';
+import { pick } from 'lodash-es';
 import {
   Button,
   ButtonGroup,
diff --git a/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx b/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx
index a1aa08b277f..e1de7b46634 100644
--- a/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx
+++ b/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx
@@ -56,7 +56,7 @@ import {
 import { mountExploreUrl } from 'src/explore/exploreUtils';
 import { postFormData } from 'src/explore/exploreUtils/formData';
 import { URL_PARAMS } from 'src/constants';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { clearDatasetCache } from 'src/utils/cachedSupersetGet';
 
 interface QueryDatabase {
diff --git a/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.tsx b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.tsx
index 055abb3f31f..abe7f9cf903 100644
--- a/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.tsx
+++ b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.tsx
@@ -29,7 +29,7 @@ import {
 } from 'spec/helpers/testing-library';
 import ShareSqlLabQuery from 'src/SqlLab/components/ShareSqlLabQuery';
 import { initialState } from 'src/SqlLab/fixtures';
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 
 const mockStore = configureStore([thunk]);
 const defaultProps = {
diff --git a/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx b/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
index d4d7b6a14c6..f95b4bb32d4 100644
--- a/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
+++ b/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
@@ -49,7 +49,7 @@ import type {
   CursorPosition,
 } from 'src/SqlLab/types';
 import type { DatabaseObject } from 'src/features/databases/types';
-import { debounce, isEmpty } from 'lodash';
+import { debounce, isEmpty } from 'lodash-es';
 import Mousetrap from 'mousetrap';
 import {
   Button,
diff --git a/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx b/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
index e966f426fa8..b0fe667d80b 100644
--- a/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
+++ b/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
@@ -19,7 +19,7 @@
 import { useState, useEffect } from 'react';
 import { t } from '@apache-superset/core/translation';
 import { styled } from '@apache-superset/core/theme';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import {
   Badge,
   InfoTooltip,
diff --git a/superset-frontend/src/SqlLab/hooks/useQueryEditor/index.ts b/superset-frontend/src/SqlLab/hooks/useQueryEditor/index.ts
index 2845fe90349..b020d4ce3dc 100644
--- a/superset-frontend/src/SqlLab/hooks/useQueryEditor/index.ts
+++ b/superset-frontend/src/SqlLab/hooks/useQueryEditor/index.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { pick } from 'lodash';
+import { pick } from 'lodash-es';
 import { useMemo } from 'react';
 import { shallowEqual, useSelector } from 'react-redux';
 import { SqlLabRootState, QueryEditor } from 'src/SqlLab/types';
diff --git a/superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.ts b/superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.ts
index 730482cf6be..fdd7cbefe91 100644
--- a/superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.ts
+++ b/superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.ts
@@ -18,7 +18,7 @@
  */
 import type { StoreEnhancer } from 'redux';
 import persistState from 'redux-localstorage';
-import { pickBy } from 'lodash';
+import { pickBy } from 'lodash-es';
 import { isFeatureEnabled, FeatureFlag } from '@superset-ui/core';
 import { filterUnsavedQueryEditorList } from 'src/SqlLab/components/EditorAutoSync';
 import type {
diff --git a/superset-frontend/src/SqlLab/reducers/sqlLab.ts b/superset-frontend/src/SqlLab/reducers/sqlLab.ts
index 4bafa1d705b..b4b511c635a 100644
--- a/superset-frontend/src/SqlLab/reducers/sqlLab.ts
+++ b/superset-frontend/src/SqlLab/reducers/sqlLab.ts
@@ -18,7 +18,7 @@
  */
 import { normalizeTimestamp, QueryState } from '@superset-ui/core';
 import { t } from '@apache-superset/core/translation';
-import { isEqual, omit } from 'lodash';
+import { isEqual, omit } from 'lodash-es';
 import { shallowEqual } from 'react-redux';
 import { now } from '@superset-ui/core/utils/dates';
 import type { SqlLabRootState, QueryEditor, Table } from '../types';
diff --git a/superset-frontend/src/SqlLab/utils/reduxStateToLocalStorageHelper.ts b/superset-frontend/src/SqlLab/utils/reduxStateToLocalStorageHelper.ts
index 683b082b38c..427f9ceebc9 100644
--- a/superset-frontend/src/SqlLab/utils/reduxStateToLocalStorageHelper.ts
+++ b/superset-frontend/src/SqlLab/utils/reduxStateToLocalStorageHelper.ts
@@ -29,7 +29,7 @@ import type {
   Table,
 } from 'src/SqlLab/types';
 import type { ThunkDispatch } from 'redux-thunk';
-import { pick } from 'lodash';
+import { pick } from 'lodash-es';
 import { tableApiUtil } from 'src/hooks/apiResources/tables';
 import {
   BYTES_PER_CHAR,
diff --git a/superset-frontend/src/components/AlteredSliceTag/index.tsx b/superset-frontend/src/components/AlteredSliceTag/index.tsx
index 0637bba6006..7bc1c62f69a 100644
--- a/superset-frontend/src/components/AlteredSliceTag/index.tsx
+++ b/superset-frontend/src/components/AlteredSliceTag/index.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { useEffect, useMemo, useState, FC } from 'react';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import getControlsForVizType from 'src/utils/getControlsForVizType';
 import {
diff --git a/superset-frontend/src/components/Chart/ChartRenderer.tsx b/superset-frontend/src/components/Chart/ChartRenderer.tsx
index 90a35d75a45..52f0d3a4d9d 100644
--- a/superset-frontend/src/components/Chart/ChartRenderer.tsx
+++ b/superset-frontend/src/components/Chart/ChartRenderer.tsx
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { snakeCase, cloneDeep } from 'lodash';
+import { snakeCase, cloneDeep } from 'lodash-es';
 import {
   useCallback,
   useEffect,
diff --git a/superset-frontend/src/components/Chart/DrillBy/DrillByModal.test.tsx b/superset-frontend/src/components/Chart/DrillBy/DrillByModal.test.tsx
index 05b0194f5f8..3a309be0915 100644
--- a/superset-frontend/src/components/Chart/DrillBy/DrillByModal.test.tsx
+++ b/superset-frontend/src/components/Chart/DrillBy/DrillByModal.test.tsx
@@ -19,7 +19,7 @@
 
 import { useState } from 'react';
 import fetchMock from 'fetch-mock';
-import { omit, omitBy } from 'lodash';
+import { omit, omitBy } from 'lodash-es';
 import {
   render,
   screen,
diff --git a/superset-frontend/src/components/Chart/DrillBy/DrillBySubmenu.tsx b/superset-frontend/src/components/Chart/DrillBy/DrillBySubmenu.tsx
index b0905f86013..0b6e9b9ba59 100644
--- a/superset-frontend/src/components/Chart/DrillBy/DrillBySubmenu.tsx
+++ b/superset-frontend/src/components/Chart/DrillBy/DrillBySubmenu.tsx
@@ -43,7 +43,7 @@ import {
   Popover,
   Icons,
 } from '@superset-ui/core/components';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import { FixedSizeList as List } from 'react-window';
 import { InputRef } from 'antd';
 import { MenuItemTooltip } from '../DisabledMenuItemTooltip';
diff --git a/superset-frontend/src/components/Chart/DrillDetail/utils.ts b/superset-frontend/src/components/Chart/DrillDetail/utils.ts
index 03494024a98..5d24c3c2348 100644
--- a/superset-frontend/src/components/Chart/DrillDetail/utils.ts
+++ b/superset-frontend/src/components/Chart/DrillDetail/utils.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 import {
   ensureIsArray,
   QueryFormData,
diff --git a/superset-frontend/src/components/Chart/chartReducer.ts b/superset-frontend/src/components/Chart/chartReducer.ts
index 874c7d18cf8..e4f4138b095 100644
--- a/superset-frontend/src/components/Chart/chartReducer.ts
+++ b/superset-frontend/src/components/Chart/chartReducer.ts
@@ -18,7 +18,7 @@
  */
 /* eslint camelcase: 0 */
 import { t } from '@apache-superset/core/translation';
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 import { HYDRATE_DASHBOARD } from 'src/dashboard/actions/hydrate';
 import { DatasourcesAction } from 'src/dashboard/actions/datasources';
 import { ChartState } from 'src/explore/types';
diff --git a/superset-frontend/src/components/Chart/useDrillDetailMenuItems/index.tsx b/superset-frontend/src/components/Chart/useDrillDetailMenuItems/index.tsx
index 2be084159bc..2914dbbd8c7 100644
--- a/superset-frontend/src/components/Chart/useDrillDetailMenuItems/index.tsx
+++ b/superset-frontend/src/components/Chart/useDrillDetailMenuItems/index.tsx
@@ -24,7 +24,7 @@ import {
   useCallback,
   useMemo,
 } from 'react';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import {
   Behavior,
diff --git a/superset-frontend/src/components/Datasource/FoldersEditor/index.tsx b/superset-frontend/src/components/Datasource/FoldersEditor/index.tsx
index e48db973978..606df275587 100644
--- a/superset-frontend/src/components/Datasource/FoldersEditor/index.tsx
+++ b/superset-frontend/src/components/Datasource/FoldersEditor/index.tsx
@@ -18,7 +18,7 @@
  */
 
 import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import AutoSizer from 'react-virtualized-auto-sizer';
 import {
   DndContext,
diff --git a/superset-frontend/src/components/DynamicPlugins/index.tsx b/superset-frontend/src/components/DynamicPlugins/index.tsx
index ea42135e4f0..166d19fea3b 100644
--- a/superset-frontend/src/components/DynamicPlugins/index.tsx
+++ b/superset-frontend/src/components/DynamicPlugins/index.tsx
@@ -34,7 +34,7 @@ import {
   makeApi,
 } from '@superset-ui/core';
 import { logging } from '@apache-superset/core/utils';
-import { omitBy } from 'lodash';
+import { omitBy } from 'lodash-es';
 import type { Plugin, PluginAction, PluginContextType } from './types';
 
 const metadataRegistry = getChartMetadataRegistry();
diff --git a/superset-frontend/src/components/ListView/Filters/CompactSelectPanel.tsx b/superset-frontend/src/components/ListView/Filters/CompactSelectPanel.tsx
index 872b90e65cf..cde60f9355f 100644
--- a/superset-frontend/src/components/ListView/Filters/CompactSelectPanel.tsx
+++ b/superset-frontend/src/components/ListView/Filters/CompactSelectPanel.tsx
@@ -26,7 +26,7 @@ import {
   type CSSProperties,
   type RefObject,
 } from 'react';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import { useTheme, styled, css } from '@apache-superset/core/theme';
 import {
diff --git a/superset-frontend/src/components/ListView/utils.ts b/superset-frontend/src/components/ListView/utils.ts
index eafcb2f12b9..12df0e28bb9 100644
--- a/superset-frontend/src/components/ListView/utils.ts
+++ b/superset-frontend/src/components/ListView/utils.ts
@@ -34,7 +34,7 @@ import {
 } from 'use-query-params';
 
 import rison from 'rison';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import {
   ListViewFetchDataConfig as FetchDataConfig,
   ListViewFilter as Filter,
diff --git a/superset-frontend/src/dashboard/actions/dashboardState.ts b/superset-frontend/src/dashboard/actions/dashboardState.ts
index 7b682a2a1a0..81a49581fcc 100644
--- a/superset-frontend/src/dashboard/actions/dashboardState.ts
+++ b/superset-frontend/src/dashboard/actions/dashboardState.ts
@@ -58,7 +58,7 @@ import { getActiveFilters } from 'src/dashboard/util/activeDashboardFilters';
 import { safeStringify } from 'src/utils/safeStringify';
 import { logEvent } from 'src/logger/actions';
 import { LOG_ACTIONS_CONFIRM_OVERWRITE_DASHBOARD_METADATA } from 'src/logger/LogUtils';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import { navigateWithState, navigateTo } from 'src/utils/navigationUtils';
 import type { AnyAction } from 'redux';
 import type { ThunkDispatch } from 'redux-thunk';
diff --git a/superset-frontend/src/dashboard/actions/nativeFilters.ts b/superset-frontend/src/dashboard/actions/nativeFilters.ts
index af3d711495a..f06a02f0249 100644
--- a/superset-frontend/src/dashboard/actions/nativeFilters.ts
+++ b/superset-frontend/src/dashboard/actions/nativeFilters.ts
@@ -27,7 +27,7 @@ import {
 } from '@superset-ui/core';
 import { Dispatch } from 'redux';
 import { RootState } from 'src/dashboard/types';
-import { cloneDeep } from 'lodash';
+import { cloneDeep } from 'lodash-es';
 import { setDataMaskForFilterChangesComplete } from 'src/dataMask/actions';
 import { HYDRATE_DASHBOARD } from './hydrate';
 import {
diff --git a/superset-frontend/src/dashboard/components/ColorSchemeSelect.tsx b/superset-frontend/src/dashboard/components/ColorSchemeSelect.tsx
index 58906e4fd7c..548cad24f17 100644
--- a/superset-frontend/src/dashboard/components/ColorSchemeSelect.tsx
+++ b/superset-frontend/src/dashboard/components/ColorSchemeSelect.tsx
@@ -25,7 +25,7 @@ import {
   CategoricalScheme,
 } from '@superset-ui/core';
 import { css, useTheme } from '@apache-superset/core/theme';
-import { sortBy } from 'lodash';
+import { sortBy } from 'lodash-es';
 import { Select, Tooltip } from '@superset-ui/core/components';
 import { Icons } from '@superset-ui/core/components/Icons';
 import ColorSchemeLabel from 'src/explore/components/controls/ColorSchemeControl/ColorSchemeLabel';
diff --git a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.tsx b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.tsx
index ac73c2cab7e..ed995587b06 100644
--- a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.tsx
+++ b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.tsx
@@ -30,7 +30,7 @@ import {
 } from 'react';
 import { useDispatch, useSelector, shallowEqual } from 'react-redux';
 import { createSelector } from '@reduxjs/toolkit';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import {
   ChartCustomizationConfiguration,
   ChartCustomizationType,
diff --git a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardWrapper.tsx b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardWrapper.tsx
index 1c8b5970d54..8fd07069aff 100644
--- a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardWrapper.tsx
+++ b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardWrapper.tsx
@@ -24,7 +24,7 @@ import { RootState } from 'src/dashboard/types';
 import { useSelector } from 'react-redux';
 import { useDragDropManager } from 'react-dnd';
 import classNames from 'classnames';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 
 const StyledDiv = styled.div`
   ${({ theme }) => css`
diff --git a/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx b/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx
index a1df06aa1d7..c74c9edd2a4 100644
--- a/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx
+++ b/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx
@@ -27,7 +27,7 @@ import {
 } from 'react';
 
 import { useDispatch, useSelector } from 'react-redux';
-import { uniqWith } from 'lodash';
+import { uniqWith } from 'lodash-es';
 import cx from 'classnames';
 import { t } from '@apache-superset/core/translation';
 import {
diff --git a/superset-frontend/src/dashboard/components/Header/useHeaderActionsDropdownMenu.tsx b/superset-frontend/src/dashboard/components/Header/useHeaderActionsDropdownMenu.tsx
index 102a0a70581..8a1c09249f2 100644
--- a/superset-frontend/src/dashboard/components/Header/useHeaderActionsDropdownMenu.tsx
+++ b/superset-frontend/src/dashboard/components/Header/useHeaderActionsDropdownMenu.tsx
@@ -22,7 +22,7 @@ import { useSelector } from 'react-redux';
 import { useHistory, useLocation } from 'react-router-dom';
 import { Menu, MenuItem } from '@superset-ui/core/components/Menu';
 import { t } from '@apache-superset/core/translation';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { URL_PARAMS } from 'src/constants';
 import { useShareMenuItems } from 'src/dashboard/components/menu/ShareMenuItems';
 import { useDownloadMenuItems } from 'src/dashboard/components/menu/DownloadMenuItems';
diff --git a/superset-frontend/src/dashboard/components/PropertiesModal/index.tsx b/superset-frontend/src/dashboard/components/PropertiesModal/index.tsx
index de7ce91f28e..5a9be8ab656 100644
--- a/superset-frontend/src/dashboard/components/PropertiesModal/index.tsx
+++ b/superset-frontend/src/dashboard/components/PropertiesModal/index.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 import jsonStringify from 'json-stringify-pretty-compact';
 import {
   Form,
diff --git a/superset-frontend/src/dashboard/components/SliceAdder.tsx b/superset-frontend/src/dashboard/components/SliceAdder.tsx
index 15acf37afc6..fab2250c2a1 100644
--- a/superset-frontend/src/dashboard/components/SliceAdder.tsx
+++ b/superset-frontend/src/dashboard/components/SliceAdder.tsx
@@ -46,7 +46,7 @@ import {
   NEW_CHART_ID,
   NEW_COMPONENTS_SOURCE_ID,
 } from 'src/dashboard/util/constants';
-import { debounce, pickBy } from 'lodash';
+import { debounce, pickBy } from 'lodash-es';
 import { Dispatch } from 'redux';
 import { Slice } from 'src/dashboard/types';
 import { navigateTo } from 'src/utils/navigationUtils';
diff --git a/superset-frontend/src/dashboard/components/SyncDashboardState/index.tsx b/superset-frontend/src/dashboard/components/SyncDashboardState/index.tsx
index bed9965d2cd..381a03c261e 100644
--- a/superset-frontend/src/dashboard/components/SyncDashboardState/index.tsx
+++ b/superset-frontend/src/dashboard/components/SyncDashboardState/index.tsx
@@ -18,7 +18,7 @@
  */
 import { FC, useEffect } from 'react';
 
-import { pick, pickBy } from 'lodash';
+import { pick, pickBy } from 'lodash-es';
 import { useSelector } from 'react-redux';
 import { createSelector } from '@reduxjs/toolkit';
 import { DashboardContextForExplore } from 'src/types/DashboardContextForExplore';
diff --git a/superset-frontend/src/dashboard/components/dnd/handleHover.ts b/superset-frontend/src/dashboard/components/dnd/handleHover.ts
index 7e25246e03d..3b62e7934a7 100644
--- a/superset-frontend/src/dashboard/components/dnd/handleHover.ts
+++ b/superset-frontend/src/dashboard/components/dnd/handleHover.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { throttle } from 'lodash';
+import { throttle } from 'lodash-es';
 import { DropTargetMonitor } from 'react-dnd';
 import { DASHBOARD_ROOT_TYPE } from 'src/dashboard/util/componentTypes';
 import getDropPosition from 'src/dashboard/util/getDropPosition';
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.tsx b/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.tsx
index ac3cf271b5d..a654c56ed1f 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.tsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.tsx
@@ -31,7 +31,7 @@ import type { ChartCustomization, JsonObject } from '@superset-ui/core';
 import { VizType } from '@superset-ui/core';
 import { styled } from '@apache-superset/core/theme';
 import { t } from '@apache-superset/core/translation';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import { bindActionCreators } from 'redux';
 import { useDispatch, useSelector } from 'react-redux';
 
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.tsx
index e3f5c803b7f..e8151d24814 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.tsx
@@ -44,7 +44,7 @@ import {
 import { styled, SupersetTheme } from '@apache-superset/core/theme';
 import { useTheme } from '@emotion/react';
 import { useDispatch, useSelector } from 'react-redux';
-import { isEqual, isEqualWith } from 'lodash';
+import { isEqual, isEqualWith } from 'lodash-es';
 import { getChartDataRequest } from 'src/components/Chart/chartAction';
 import { ErrorAlert, ErrorMessageWithStackTrace } from 'src/components';
 import { Loading, Constants, Flex } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/utils.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/utils.ts
index 3e556e535ee..6a90f5af741 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/utils.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/utils.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import { Dispatch } from 'react';
 import {
   setFocusedNativeFilter,
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx
index 5f1e097c1c4..a835e58fe27 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx
@@ -18,7 +18,7 @@
  */
 
 /* eslint-disable no-param-reassign */
-import { throttle } from 'lodash';
+import { throttle } from 'lodash-es';
 import {
   memo,
   useEffect,
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx
index 9fb1b004d82..ef9f3dc69a1 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx
@@ -52,7 +52,7 @@ import {
 } from 'src/dashboard/actions/chartCustomizationActions';
 
 import { useImmer } from 'use-immer';
-import { isEmpty, isEqual, debounce } from 'lodash';
+import { isEmpty, isEqual, debounce } from 'lodash-es';
 import { getInitialDataMask } from 'src/dataMask/reducer';
 import { URL_PARAMS } from 'src/constants';
 import { applicationRoot } from 'src/utils/getBootstrapData';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/utils.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/utils.ts
index 98f941c03e0..b8a8e0ba193 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/utils.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/utils.ts
@@ -23,7 +23,7 @@ import {
   Filter,
   FilterState,
 } from '@superset-ui/core';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import { useSelector } from 'react-redux';
 import { createSelector } from '@reduxjs/toolkit';
 import { areObjectsEqual } from 'src/reduxUtils';
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 c59fec2483b..83113aa40c9 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
@@ -38,7 +38,7 @@ import {
 } from '@superset-ui/core';
 import { styled, useTheme, css } from '@apache-superset/core/theme';
 import { GenericDataType } from '@apache-superset/core/common';
-import { debounce, isEqual } from 'lodash';
+import { debounce, isEqual } from 'lodash-es';
 import {
   forwardRef,
   useCallback,
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/utils.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/utils.ts
index f586dcb5024..b0aac24f1c0 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/utils.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/utils.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { flatMapDeep } from 'lodash';
+import { flatMapDeep } from 'lodash-es';
 import type { FormInstance } from '@superset-ui/core/components';
 import { useState, useCallback } from 'react';
 import { CustomControlItem, Dataset } from '@superset-ui/chart-controls';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
index 44ba434ab66..1db2d3331f8 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { memo, useEffect, useCallback, useMemo, useState, useRef } from 'react';
-import { uniq, debounce } from 'lodash';
+import { uniq, debounce } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import { ChartCustomizationType, NativeFilterType } from '@superset-ui/core';
 import { styled, css, useTheme } from '@apache-superset/core/theme';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useItemStateManager.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useItemStateManager.ts
index ee33c7b17b8..de783d13782 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useItemStateManager.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useItemStateManager.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { useState, useCallback, useEffect } from 'react';
-import { uniq, isEmpty } from 'lodash';
+import { uniq, isEmpty } from 'lodash-es';
 import { FilterChangesType, FilterRemoval } from '../types';
 
 const DEFAULT_EMPTY_ARRAY: string[] = [];
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useModalSaveLogic.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useModalSaveLogic.ts
index 51f4e56ce45..5894c30cdf1 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useModalSaveLogic.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useModalSaveLogic.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { useCallback, useMemo } from 'react';
-import { isEqual, sortBy } from 'lodash';
+import { isEqual, sortBy } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import {
   Filter,
diff --git a/superset-frontend/src/dashboard/hooks/useDownloadScreenshot.ts b/superset-frontend/src/dashboard/hooks/useDownloadScreenshot.ts
index 2af759a7555..8e286521be4 100644
--- a/superset-frontend/src/dashboard/hooks/useDownloadScreenshot.ts
+++ b/superset-frontend/src/dashboard/hooks/useDownloadScreenshot.ts
@@ -19,7 +19,7 @@
 import { useCallback, useEffect, useRef } from 'react';
 import { useSelector } from 'react-redux';
 import { useToasts } from 'src/components/MessageToasts/withToasts';
-import { last } from 'lodash';
+import { last } from 'lodash-es';
 import rison from 'rison';
 import { parse as parseContentDisposition } from 'content-disposition';
 import { t } from '@apache-superset/core/translation';
diff --git a/superset-frontend/src/dashboard/reducers/datasources.ts b/superset-frontend/src/dashboard/reducers/datasources.ts
index 386657455a9..80601300128 100644
--- a/superset-frontend/src/dashboard/reducers/datasources.ts
+++ b/superset-frontend/src/dashboard/reducers/datasources.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { keyBy } from 'lodash';
+import { keyBy } from 'lodash-es';
 import { DatasourcesState } from 'src/dashboard/types';
 import {
   DatasourcesActionPayload,
diff --git a/superset-frontend/src/dashboard/util/activeAllDashboardFilters.ts b/superset-frontend/src/dashboard/util/activeAllDashboardFilters.ts
index 206185795b4..02c0a2d2bc2 100644
--- a/superset-frontend/src/dashboard/util/activeAllDashboardFilters.ts
+++ b/superset-frontend/src/dashboard/util/activeAllDashboardFilters.ts
@@ -22,7 +22,7 @@ import {
   JsonObject,
   PartialFilters,
 } from '@superset-ui/core';
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 import { ActiveFilters, ChartConfiguration } from '../types';
 
 export const getRelevantDataMask = (
diff --git a/superset-frontend/src/dashboard/util/activeDashboardFilters.ts b/superset-frontend/src/dashboard/util/activeDashboardFilters.ts
index 31823ff6f8c..4f0b7d20391 100644
--- a/superset-frontend/src/dashboard/util/activeDashboardFilters.ts
+++ b/superset-frontend/src/dashboard/util/activeDashboardFilters.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { mapValues, flow, keyBy } from 'lodash/fp';
 import {
   JsonValue,
diff --git a/superset-frontend/src/dashboard/util/charts/getFormDataWithExtraFilters.ts b/superset-frontend/src/dashboard/util/charts/getFormDataWithExtraFilters.ts
index e0cb579aa34..ceb583ba644 100644
--- a/superset-frontend/src/dashboard/util/charts/getFormDataWithExtraFilters.ts
+++ b/superset-frontend/src/dashboard/util/charts/getFormDataWithExtraFilters.ts
@@ -35,7 +35,7 @@ import {
 } from 'src/dashboard/types';
 import { getExtraFormData } from 'src/dashboard/components/nativeFilters/utils';
 import { isChartCustomization } from 'src/dashboard/components/nativeFilters/FiltersConfigModal/utils';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import { areObjectsEqual } from 'src/reduxUtils';
 import {
   isSingleColumnDimensionChart,
diff --git a/superset-frontend/src/dashboard/util/crossFilters.ts b/superset-frontend/src/dashboard/util/crossFilters.ts
index 559755349d7..3269c93d676 100644
--- a/superset-frontend/src/dashboard/util/crossFilters.ts
+++ b/superset-frontend/src/dashboard/util/crossFilters.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { cloneDeep } from 'lodash';
+import { cloneDeep } from 'lodash-es';
 import {
   Behavior,
   getChartMetadataRegistry,
diff --git a/superset-frontend/src/dashboard/util/getDashboardUrl.ts b/superset-frontend/src/dashboard/util/getDashboardUrl.ts
index bade710936f..797d3260fe8 100644
--- a/superset-frontend/src/dashboard/util/getDashboardUrl.ts
+++ b/superset-frontend/src/dashboard/util/getDashboardUrl.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { JsonObject } from '@superset-ui/core';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { URL_PARAMS } from 'src/constants';
 import { getUrlParam } from 'src/utils/urlUtils';
 import serializeActiveFilterValues from './serializeActiveFilterValues';
diff --git a/superset-frontend/src/dashboard/util/getFilterScopeFromNodesTree.ts b/superset-frontend/src/dashboard/util/getFilterScopeFromNodesTree.ts
index fd59214e571..a17fe94967e 100644
--- a/superset-frontend/src/dashboard/util/getFilterScopeFromNodesTree.ts
+++ b/superset-frontend/src/dashboard/util/getFilterScopeFromNodesTree.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { flow, keyBy, mapValues } from 'lodash/fp';
-import { flatMap, isEmpty } from 'lodash';
+import { flatMap, isEmpty } from 'lodash-es';
 
 import { CHART_TYPE, TAB_TYPE } from './componentTypes';
 import { getChartIdAndColumnFromFilterKey } from './getDashboardFilterKey';
diff --git a/superset-frontend/src/dashboard/util/getFilterScopeNodesTree.ts b/superset-frontend/src/dashboard/util/getFilterScopeNodesTree.ts
index ec9dbe78f13..b7448f837ef 100644
--- a/superset-frontend/src/dashboard/util/getFilterScopeNodesTree.ts
+++ b/superset-frontend/src/dashboard/util/getFilterScopeNodesTree.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 
 import { DASHBOARD_ROOT_ID } from './constants';
diff --git a/superset-frontend/src/dataMask/reducer.ts b/superset-frontend/src/dataMask/reducer.ts
index 9120f9d91af..6f69d6bec78 100644
--- a/superset-frontend/src/dataMask/reducer.ts
+++ b/superset-frontend/src/dataMask/reducer.ts
@@ -45,7 +45,7 @@ import {
   migrateChartCustomizationArray,
   isLegacyChartCustomizationFormat,
 } from 'src/dashboard/util/migrateChartCustomization';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import {
   AnyDataMaskAction,
   CLEAR_DATA_MASK_STATE,
diff --git a/superset-frontend/src/embedded/utils.test.ts b/superset-frontend/src/embedded/utils.test.ts
index a28f47d2527..a24d7cd0cbb 100644
--- a/superset-frontend/src/embedded/utils.test.ts
+++ b/superset-frontend/src/embedded/utils.test.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { DataMaskStateWithId } from '@superset-ui/core';
-import { cloneDeep } from 'lodash';
+import { cloneDeep } from 'lodash-es';
 import { getDataMaskChangeTrigger, getChartDataPayloads } from './utils';
 import { RootState } from 'src/views/store';
 import * as chartStateConverter from 'src/dashboard/util/chartStateConverter';
diff --git a/superset-frontend/src/embedded/utils.ts b/superset-frontend/src/embedded/utils.ts
index cc9e8612f03..53e5e803476 100644
--- a/superset-frontend/src/embedded/utils.ts
+++ b/superset-frontend/src/embedded/utils.ts
@@ -23,7 +23,7 @@ import {
   QueryFormData,
 } from '@superset-ui/core';
 import { logging } from '@apache-superset/core/utils';
-import { isEmpty, isEqual } from 'lodash';
+import { isEmpty, isEqual } from 'lodash-es';
 import { NATIVE_FILTER_PREFIX } from 'src/dashboard/components/nativeFilters/FiltersConfigModal/utils';
 import {
   hasChartStateConverter,
diff --git a/superset-frontend/src/explore/actions/saveModalActions.ts b/superset-frontend/src/explore/actions/saveModalActions.ts
index db8f6b901c6..6af123274bc 100644
--- a/superset-frontend/src/explore/actions/saveModalActions.ts
+++ b/superset-frontend/src/explore/actions/saveModalActions.ts
@@ -26,7 +26,7 @@ import {
   SupersetClient,
 } from '@superset-ui/core';
 import { addSuccessToast } from 'src/components/MessageToasts/actions';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { Slice } from 'src/dashboard/types';
 import { Operators } from '../constants';
 import { buildV1ChartDataPayload } from '../exploreUtils';
diff --git a/superset-frontend/src/explore/components/Control.tsx b/superset-frontend/src/explore/components/Control.tsx
index 794525111e9..eeb2be1ee91 100644
--- a/superset-frontend/src/explore/components/Control.tsx
+++ b/superset-frontend/src/explore/components/Control.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { ReactNode, useCallback, useState, useEffect } from 'react';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import {
   ControlType,
   ControlComponentProps as BaseControlComponentProps,
diff --git a/superset-frontend/src/explore/components/ControlPanelsContainer.tsx b/superset-frontend/src/explore/components/ControlPanelsContainer.tsx
index a4baf6a8a06..427c34f67b1 100644
--- a/superset-frontend/src/explore/components/ControlPanelsContainer.tsx
+++ b/superset-frontend/src/explore/components/ControlPanelsContainer.tsx
@@ -59,7 +59,7 @@ import {
   sections,
 } from '@superset-ui/chart-controls';
 import { useSelector } from 'react-redux';
-import { kebabCase, isEqual } from 'lodash';
+import { kebabCase, isEqual } from 'lodash-es';
 
 import {
   Collapse,
diff --git a/superset-frontend/src/explore/components/DataTableControl/index.tsx b/superset-frontend/src/explore/components/DataTableControl/index.tsx
index dcdcdcbdf29..eef3e1aedcb 100644
--- a/superset-frontend/src/explore/components/DataTableControl/index.tsx
+++ b/superset-frontend/src/explore/components/DataTableControl/index.tsx
@@ -20,7 +20,7 @@ import { useMemo, useEffect, useRef, RefObject } from 'react';
 import { t } from '@apache-superset/core/translation';
 import { css, styled, useTheme } from '@apache-superset/core/theme';
 
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import { Constants, Button, Icons, Input } from '@superset-ui/core/components';
 import { CopyToClipboard } from 'src/components';
 import {
diff --git a/superset-frontend/src/explore/components/DataTablesPane/components/DataTableControls.tsx b/superset-frontend/src/explore/components/DataTablesPane/components/DataTableControls.tsx
index 72b8fab8941..8ca46c6f136 100644
--- a/superset-frontend/src/explore/components/DataTablesPane/components/DataTableControls.tsx
+++ b/superset-frontend/src/explore/components/DataTablesPane/components/DataTableControls.tsx
@@ -20,7 +20,7 @@ import { styled, css, useTheme } from '@apache-superset/core/theme';
 import { t } from '@apache-superset/core/translation';
 import { GenericDataType } from '@apache-superset/core/common';
 import { useMemo } from 'react';
-import { zip } from 'lodash';
+import { zip } from 'lodash-es';
 import { Select, Tooltip } from '@superset-ui/core/components';
 import { Icons } from '@superset-ui/core/components/Icons';
 import {
diff --git a/superset-frontend/src/explore/components/ExploreViewContainer/index.tsx b/superset-frontend/src/explore/components/ExploreViewContainer/index.tsx
index 49eb6e6e74c..caa72a53659 100644
--- a/superset-frontend/src/explore/components/ExploreViewContainer/index.tsx
+++ b/superset-frontend/src/explore/components/ExploreViewContainer/index.tsx
@@ -45,7 +45,7 @@ import {
 import { styled, css, useTheme } from '@apache-superset/core/theme';
 import { t } from '@apache-superset/core/translation';
 import { logging } from '@apache-superset/core/utils';
-import { debounce, isEqual, isObjectLike, omit, pick } from 'lodash';
+import { debounce, isEqual, isObjectLike, omit, pick } from 'lodash-es';
 import { Resizable } from 're-resizable';
 import { useHistory } from 'react-router-dom';
 import { Tooltip } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/explore/components/controls/BoundsControl.tsx b/superset-frontend/src/explore/components/controls/BoundsControl.tsx
index 6d132595258..41fc1fae6fc 100644
--- a/superset-frontend/src/explore/components/controls/BoundsControl.tsx
+++ b/superset-frontend/src/explore/components/controls/BoundsControl.tsx
@@ -20,7 +20,7 @@ import { useEffect, useRef, useState } from 'react';
 import { InputNumber } from '@superset-ui/core/components';
 import { t } from '@apache-superset/core/translation';
 import { styled } from '@apache-superset/core/theme';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import ControlHeader from 'src/explore/components/ControlHeader';
 
 type ValueType = (number | null)[];
diff --git a/superset-frontend/src/explore/components/controls/ColorSchemeControl/index.tsx b/superset-frontend/src/explore/components/controls/ColorSchemeControl/index.tsx
index 529136f1702..99e08c21380 100644
--- a/superset-frontend/src/explore/components/controls/ColorSchemeControl/index.tsx
+++ b/superset-frontend/src/explore/components/controls/ColorSchemeControl/index.tsx
@@ -27,7 +27,7 @@ import {
   CategoricalColorNamespace,
 } from '@superset-ui/core';
 import { css, useTheme } from '@apache-superset/core/theme';
-import { sortBy } from 'lodash';
+import { sortBy } from 'lodash-es';
 import ControlHeader from 'src/explore/components/ControlHeader';
 import {
   Tooltip,
diff --git a/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/index.tsx b/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/index.tsx
index 2b05b70ceac..fea69a1a2da 100644
--- a/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/index.tsx
+++ b/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/index.tsx
@@ -25,7 +25,7 @@ import {
 import { JsonObject, JsonValue } from '@superset-ui/core';
 import { useTheme } from '@apache-superset/core/theme';
 import { Constants } from '@superset-ui/core/components';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import { ControlFormItemNode } from './ControlFormItem';
 
 export * from './ControlFormItem';
diff --git a/superset-frontend/src/explore/components/controls/ComparisonRangeLabel.tsx b/superset-frontend/src/explore/components/controls/ComparisonRangeLabel.tsx
index 1273c1633ac..8e926c01c49 100644
--- a/superset-frontend/src/explore/components/controls/ComparisonRangeLabel.tsx
+++ b/superset-frontend/src/explore/components/controls/ComparisonRangeLabel.tsx
@@ -19,7 +19,7 @@
 
 import { useEffect, useState } from 'react';
 import { useSelector } from 'react-redux';
-import { isEmpty, isEqual, noop } from 'lodash';
+import { isEmpty, isEqual, noop } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import {
   BinaryAdhocFilter,
diff --git a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnMetricSelect.tsx b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnMetricSelect.tsx
index 0c4fbe40d76..f820bcd0d20 100644
--- a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnMetricSelect.tsx
+++ b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnMetricSelect.tsx
@@ -29,7 +29,7 @@ import {
 } from '@superset-ui/core';
 import { tn } from '@apache-superset/core/translation';
 import { ColumnMeta, isColumnMeta } from '@superset-ui/chart-controls';
-import { isString } from 'lodash';
+import { isString } from 'lodash-es';
 import DndSelectLabel from 'src/explore/components/controls/DndColumnSelectControl/DndSelectLabel';
 import OptionWrapper from 'src/explore/components/controls/DndColumnSelectControl/OptionWrapper';
 import { DatasourcePanelDndItem } from 'src/explore/components/DatasourcePanel/types';
diff --git a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.tsx b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.tsx
index c3fe9d0211b..dea06e9f792 100644
--- a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.tsx
+++ b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.tsx
@@ -22,7 +22,7 @@ import { t } from '@apache-superset/core/translation';
 import { AdhocColumn, QueryFormColumn, isAdhocColumn } from '@superset-ui/core';
 import { tn } from '@apache-superset/core/translation';
 import { ColumnMeta, isColumnMeta } from '@superset-ui/chart-controls';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import DndSelectLabel from 'src/explore/components/controls/DndColumnSelectControl/DndSelectLabel';
 import OptionWrapper from 'src/explore/components/controls/DndColumnSelectControl/OptionWrapper';
 import { OptionSelector } from 'src/explore/components/controls/DndColumnSelectControl/utils';
diff --git a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/useResizeButton.tsx b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/useResizeButton.tsx
index c32826a106e..6bd8509a8c1 100644
--- a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/useResizeButton.tsx
+++ b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/useResizeButton.tsx
@@ -24,7 +24,7 @@ import {
   MouseEvent as ReactMouseEvent,
 } from 'react';
 import { t } from '@apache-superset/core/translation';
-import { throttle } from 'lodash';
+import { throttle } from 'lodash-es';
 import {
   POPOVER_INITIAL_HEIGHT,
   POPOVER_INITIAL_WIDTH,
diff --git a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.tsx b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.tsx
index 7cc4eb71095..01ef9f6ce1f 100644
--- a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.tsx
+++ b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.tsx
@@ -36,7 +36,7 @@ import {
   Operators,
 } from 'src/explore/constants';
 import rison from 'rison';
-import { isObject } from 'lodash';
+import { isObject } from 'lodash-es';
 import { ExpressionTypes } from '../types';
 
 interface LayerOption {
diff --git a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/useAdvancedDataTypes.ts b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/useAdvancedDataTypes.ts
index 185a01f1216..fc0fab21b7b 100644
--- a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/useAdvancedDataTypes.ts
+++ b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/useAdvancedDataTypes.ts
@@ -19,7 +19,7 @@
 import { useCallback, useState } from 'react';
 import { t } from '@apache-superset/core/translation';
 import { ensureIsArray, SupersetClient } from '@superset-ui/core';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import rison from 'rison';
 import { AdvancedDataTypesState, Props } from './index';
 
diff --git a/superset-frontend/src/explore/components/controls/MetricControl/MetricsControl.tsx b/superset-frontend/src/explore/components/controls/MetricControl/MetricsControl.tsx
index 247a5d7fbd7..ef7529468d7 100644
--- a/superset-frontend/src/explore/components/controls/MetricControl/MetricsControl.tsx
+++ b/superset-frontend/src/explore/components/controls/MetricControl/MetricsControl.tsx
@@ -19,7 +19,7 @@
 import React, { memo, useCallback, useEffect, useMemo, useState } from 'react';
 import { ensureIsArray, usePrevious } from '@superset-ui/core';
 import { t } from '@apache-superset/core/translation';
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import ControlHeader from 'src/explore/components/ControlHeader';
 import { Icons } from '@superset-ui/core/components/Icons';
 import {
diff --git a/superset-frontend/src/explore/components/controls/TextAreaControl.tsx b/superset-frontend/src/explore/components/controls/TextAreaControl.tsx
index ce9be8c3573..753b6fd8e73 100644
--- a/superset-frontend/src/explore/components/controls/TextAreaControl.tsx
+++ b/superset-frontend/src/explore/components/controls/TextAreaControl.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { useCallback, useEffect, useRef, useMemo } from 'react';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import {
   Input,
   Tooltip,
diff --git a/superset-frontend/src/explore/components/controls/TextControl/index.tsx b/superset-frontend/src/explore/components/controls/TextControl/index.tsx
index 13d853da9d3..3e238658b40 100644
--- a/superset-frontend/src/explore/components/controls/TextControl/index.tsx
+++ b/superset-frontend/src/explore/components/controls/TextControl/index.tsx
@@ -18,7 +18,7 @@
  */
 import { useState, useCallback, useRef, useEffect, ChangeEvent } from 'react';
 import { legacyValidateNumber, legacyValidateInteger } from '@superset-ui/core';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import ControlHeader from 'src/explore/components/ControlHeader';
 import { Constants, Input } from '@superset-ui/core/components';
 
diff --git a/superset-frontend/src/explore/components/controls/TimeOffsetControl.tsx b/superset-frontend/src/explore/components/controls/TimeOffsetControl.tsx
index 23fa5bda8bf..b65c761ce60 100644
--- a/superset-frontend/src/explore/components/controls/TimeOffsetControl.tsx
+++ b/superset-frontend/src/explore/components/controls/TimeOffsetControl.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { ReactNode, useCallback, useEffect, useState } from 'react';
-import { isEmpty, isEqual } from 'lodash';
+import { isEmpty, isEqual } from 'lodash-es';
 import { extendedDayjs } from '@superset-ui/core/utils/dates';
 import {
   parseDttmToDate,
diff --git a/superset-frontend/src/explore/components/controls/ViewQueryModalFooter.tsx b/superset-frontend/src/explore/components/controls/ViewQueryModalFooter.tsx
index fc8c7c948b2..f409aabc39c 100644
--- a/superset-frontend/src/explore/components/controls/ViewQueryModalFooter.tsx
+++ b/superset-frontend/src/explore/components/controls/ViewQueryModalFooter.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { FC } from 'react';
-import { isObject } from 'lodash';
+import { isObject } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import { SupersetClient } from '@superset-ui/core';
 import { Button } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/explore/controlUtils/getControlValuesCompatibleWithDatasource.ts b/superset-frontend/src/explore/controlUtils/getControlValuesCompatibleWithDatasource.ts
index bfc53dc6d82..67ab32221ec 100644
--- a/superset-frontend/src/explore/controlUtils/getControlValuesCompatibleWithDatasource.ts
+++ b/superset-frontend/src/explore/controlUtils/getControlValuesCompatibleWithDatasource.ts
@@ -27,7 +27,7 @@ import {
   JsonValue,
   SimpleAdhocFilter,
 } from '@superset-ui/core';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import AdhocMetric from 'src/explore/components/controls/MetricControl/AdhocMetric';
 
 const isControlValueCompatibleWithDatasource = (
diff --git a/superset-frontend/src/explore/controlUtils/getFormDataWithDashboardContext.ts b/superset-frontend/src/explore/controlUtils/getFormDataWithDashboardContext.ts
index 127df121552..1a372a53c56 100644
--- a/superset-frontend/src/explore/controlUtils/getFormDataWithDashboardContext.ts
+++ b/superset-frontend/src/explore/controlUtils/getFormDataWithDashboardContext.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import {
   AdhocFilter,
   ensureIsArray,
diff --git a/superset-frontend/src/explore/controlUtils/standardizedFormData.ts b/superset-frontend/src/explore/controlUtils/standardizedFormData.ts
index 1adf00d1ee7..be65ecb7699 100644
--- a/superset-frontend/src/explore/controlUtils/standardizedFormData.ts
+++ b/superset-frontend/src/explore/controlUtils/standardizedFormData.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 import {
   ensureIsArray,
   getChartControlPanelRegistry,
diff --git a/superset-frontend/src/explore/reducers/exploreReducer.ts b/superset-frontend/src/explore/reducers/exploreReducer.ts
index c7eaf4d699d..6d18681ce4c 100644
--- a/superset-frontend/src/explore/reducers/exploreReducer.ts
+++ b/superset-frontend/src/explore/reducers/exploreReducer.ts
@@ -28,7 +28,7 @@ import {
   ControlStateMapping,
   Dataset,
 } from '@superset-ui/chart-controls';
-import { omit, pick } from 'lodash';
+import { omit, pick } from 'lodash-es';
 import { DYNAMIC_PLUGIN_CONTROLS_READY } from 'src/components/Chart/chartAction';
 import { getControlsState } from 'src/explore/store';
 import {
diff --git a/superset-frontend/src/features/databases/DatabaseModal/SSHTunnelSwitch.tsx b/superset-frontend/src/features/databases/DatabaseModal/SSHTunnelSwitch.tsx
index 0fa7cb9dc53..9206561d244 100644
--- a/superset-frontend/src/features/databases/DatabaseModal/SSHTunnelSwitch.tsx
+++ b/superset-frontend/src/features/databases/DatabaseModal/SSHTunnelSwitch.tsx
@@ -22,7 +22,7 @@ import { isFeatureEnabled, FeatureFlag } from '@superset-ui/core';
 import { SupersetTheme } from '@apache-superset/core/theme';
 import { Switch } from '@superset-ui/core/components/Switch';
 import { InfoTooltip } from '@superset-ui/core/components';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { infoTooltip, toggleStyle } from './styles';
 import { SwitchProps } from '../types';
 
diff --git a/superset-frontend/src/features/databases/DatabaseModal/index.tsx b/superset-frontend/src/features/databases/DatabaseModal/index.tsx
index 5313498e2ca..3019d82ded9 100644
--- a/superset-frontend/src/features/databases/DatabaseModal/index.tsx
+++ b/superset-frontend/src/features/databases/DatabaseModal/index.tsx
@@ -63,7 +63,7 @@ import {
 } from 'src/views/CRUD/hooks';
 import { FileEncryptedExtraFields } from 'src/views/CRUD/types';
 import { useCommonConf } from 'src/features/databases/state';
-import { isEmpty, pick } from 'lodash';
+import { isEmpty, pick } from 'lodash-es';
 import { OnlyKeyWithType } from 'src/utils/types';
 import { ModalTitleWithIcon } from 'src/components/ModalTitleWithIcon';
 import {
diff --git a/superset-frontend/src/features/home/RightMenu.tsx b/superset-frontend/src/features/home/RightMenu.tsx
index c6de308d6ed..d05abae30c9 100644
--- a/superset-frontend/src/features/home/RightMenu.tsx
+++ b/superset-frontend/src/features/home/RightMenu.tsx
@@ -29,7 +29,7 @@ import rison from 'rison';
 import { useSelector } from 'react-redux';
 import { Link } from 'react-router-dom';
 import { useQueryParams, BooleanParam } from 'use-query-params';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import {
   SupersetClient,
diff --git a/superset-frontend/src/features/home/SubMenu.tsx b/superset-frontend/src/features/home/SubMenu.tsx
index 9c2e2c451eb..d0c71fc02ec 100644
--- a/superset-frontend/src/features/home/SubMenu.tsx
+++ b/superset-frontend/src/features/home/SubMenu.tsx
@@ -27,7 +27,7 @@ import {
   useTheme,
 } from '@apache-superset/core/theme';
 import cx from 'classnames';
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 import { Menu, MenuMode } from '@superset-ui/core/components/Menu';
 import {
   Button,
diff --git a/superset-frontend/src/features/reports/ReportModal/actions.ts b/superset-frontend/src/features/reports/ReportModal/actions.ts
index 59e99568418..25119e1a774 100644
--- a/superset-frontend/src/features/reports/ReportModal/actions.ts
+++ b/superset-frontend/src/features/reports/ReportModal/actions.ts
@@ -24,7 +24,7 @@ import {
   addDangerToast,
   addSuccessToast,
 } from 'src/components/MessageToasts/actions';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import { Dispatch, AnyAction } from 'redux';
 import { ThunkDispatch } from 'redux-thunk';
 import { ReportObject, ReportCreationMethod } from 'src/features/reports/types';
diff --git a/superset-frontend/src/features/reports/ReportModal/reducer.ts b/superset-frontend/src/features/reports/ReportModal/reducer.ts
index 3bea7f90b50..08a3001c006 100644
--- a/superset-frontend/src/features/reports/ReportModal/reducer.ts
+++ b/superset-frontend/src/features/reports/ReportModal/reducer.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 /* eslint-disable camelcase */
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 import {
   SET_REPORT,
   ADD_REPORT,
diff --git a/superset-frontend/src/features/themes/ThemeModal.tsx b/superset-frontend/src/features/themes/ThemeModal.tsx
index db7692443bb..7c591a0eb64 100644
--- a/superset-frontend/src/features/themes/ThemeModal.tsx
+++ b/superset-frontend/src/features/themes/ThemeModal.tsx
@@ -24,7 +24,7 @@ import {
   useMemo,
   ChangeEvent,
 } from 'react';
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 
 import { t } from '@apache-superset/core/translation';
 import { Alert } from '@apache-superset/core/components';
diff --git a/superset-frontend/src/filters/components/Range/RangeFilterPlugin.tsx b/superset-frontend/src/filters/components/Range/RangeFilterPlugin.tsx
index 52771c85d8a..de275aeeb36 100644
--- a/superset-frontend/src/filters/components/Range/RangeFilterPlugin.tsx
+++ b/superset-frontend/src/filters/components/Range/RangeFilterPlugin.tsx
@@ -28,7 +28,7 @@ import { styled, useTheme, css } from '@apache-superset/core/theme';
 import { useCallback, useEffect, useMemo, useState, useRef } from 'react';
 import { FilterBarOrientation } from 'src/dashboard/types';
 // import Metadata from '@superset-ui/core/components/Metadata';
-import { isNumber } from 'lodash';
+import { isNumber } from 'lodash-es';
 import { InputNumber } from '@superset-ui/core/components/Input';
 import Slider from '@superset-ui/core/components/Slider';
 import { FormItem, Tooltip, Icons } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx b/superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx
index dab4fa66cb1..fc5e3d597c0 100644
--- a/superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx
+++ b/superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx
@@ -31,7 +31,7 @@ import {
 import { tn } from '@apache-superset/core/translation';
 import { styled } from '@apache-superset/core/theme';
 import { GenericDataType } from '@apache-superset/core/common';
-import { debounce, isUndefined } from 'lodash';
+import { debounce, isUndefined } from 'lodash-es';
 import { useImmerReducer } from 'use-immer';
 import {
   FormItem,
diff --git a/superset-frontend/src/hooks/apiResources/sqlEditorTabs.ts b/superset-frontend/src/hooks/apiResources/sqlEditorTabs.ts
index 717a1cd1f25..feceeeea342 100644
--- a/superset-frontend/src/hooks/apiResources/sqlEditorTabs.ts
+++ b/superset-frontend/src/hooks/apiResources/sqlEditorTabs.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { pickBy } from 'lodash';
+import { pickBy } from 'lodash-es';
 import { QueryEditor, LatestQueryEditorVersion } from 'src/SqlLab/types';
 import { api, JsonResponse } from './queryApi';
 
diff --git a/superset-frontend/src/pages/ChartList/index.tsx b/superset-frontend/src/pages/ChartList/index.tsx
index 7b08bfc73e4..c329e0ed29c 100644
--- a/superset-frontend/src/pages/ChartList/index.tsx
+++ b/superset-frontend/src/pages/ChartList/index.tsx
@@ -29,7 +29,7 @@ import {
 import { css, styled } from '@apache-superset/core/theme';
 import { useState, useMemo, useCallback } from 'react';
 import rison from 'rison';
-import { uniqBy } from 'lodash';
+import { uniqBy } from 'lodash-es';
 import { useSelector } from 'react-redux';
 import {
   createErrorHandler,
diff --git a/superset-frontend/src/pages/Home/index.tsx b/superset-frontend/src/pages/Home/index.tsx
index e270fd9872c..fa18b639459 100644
--- a/superset-frontend/src/pages/Home/index.tsx
+++ b/superset-frontend/src/pages/Home/index.tsx
@@ -28,7 +28,7 @@ import { styled } from '@apache-superset/core/theme';
 import rison from 'rison';
 import { Collapse, ListViewCard } from '@superset-ui/core/components';
 import { User } from 'src/types/bootstrapTypes';
-import { reject } from 'lodash';
+import { reject } from 'lodash-es';
 import {
   dangerouslyGetItemDoNotUse,
   dangerouslySetItemDoNotUse,
diff --git a/superset-frontend/src/pages/SqlLab/SqlLab.test.tsx b/superset-frontend/src/pages/SqlLab/SqlLab.test.tsx
index 819e0323be0..bd4edf34318 100644
--- a/superset-frontend/src/pages/SqlLab/SqlLab.test.tsx
+++ b/superset-frontend/src/pages/SqlLab/SqlLab.test.tsx
@@ -18,7 +18,7 @@
  */
 import fetchMock from 'fetch-mock';
 import { isValidElement } from 'react';
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 import {
   render,
   act,
diff --git a/superset-frontend/src/reduxUtils.ts b/superset-frontend/src/reduxUtils.ts
index 9c3fa9b146f..ae4f8466b43 100644
--- a/superset-frontend/src/reduxUtils.ts
+++ b/superset-frontend/src/reduxUtils.ts
@@ -19,7 +19,7 @@
 import { nanoid } from 'nanoid';
 import { compose } from 'redux';
 import persistState, { StorageAdapter } from 'redux-localstorage';
-import { isEqual, omitBy, omit, isEqualWith } from 'lodash';
+import { isEqual, omitBy, omit, isEqualWith } from 'lodash-es';
 import { ensureIsArray } from '@superset-ui/core';
 
 export function addToObject(
diff --git a/superset-frontend/src/types/bootstrapTypes.ts b/superset-frontend/src/types/bootstrapTypes.ts
index 4b8e646fbbf..9ae4c42d502 100644
--- a/superset-frontend/src/types/bootstrapTypes.ts
+++ b/superset-frontend/src/types/bootstrapTypes.ts
@@ -18,7 +18,7 @@
  */
 import { FormatLocaleDefinition } from 'd3-format';
 import { TimeLocaleDefinition } from 'd3-time-format';
-import { isPlainObject } from 'lodash';
+import { isPlainObject } from 'lodash-es';
 import { Languages } from 'src/features/home/LanguagePicker';
 import {
   AnyThemeConfig,
diff --git a/superset-frontend/src/utils/DebouncedMessageQueue.ts b/superset-frontend/src/utils/DebouncedMessageQueue.ts
index 99b50650aee..5fe2fffba76 100644
--- a/superset-frontend/src/utils/DebouncedMessageQueue.ts
+++ b/superset-frontend/src/utils/DebouncedMessageQueue.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { debounce } from 'lodash';
+import { debounce } from 'lodash-es';
 
 export interface DebouncedMessageQueueOptions<T> {
   callback?: (events: T[]) => void;
diff --git a/superset-frontend/src/utils/colorScheme.ts b/superset-frontend/src/utils/colorScheme.ts
index a64df17abfd..63a76109c24 100644
--- a/superset-frontend/src/utils/colorScheme.ts
+++ b/superset-frontend/src/utils/colorScheme.ts
@@ -23,7 +23,7 @@ import {
   getCategoricalSchemeRegistry,
   getLabelsColorMap,
 } from '@superset-ui/core';
-import { intersection, omit, pick } from 'lodash';
+import { intersection, omit, pick } from 'lodash-es';
 import { areObjectsEqual } from 'src/reduxUtils';
 
 const EMPTY_ARRAY: string[] = [];
diff --git a/superset-frontend/src/utils/downloadAsImage.tsx b/superset-frontend/src/utils/downloadAsImage.tsx
index db55a35e036..70905828d1a 100644
--- a/superset-frontend/src/utils/downloadAsImage.tsx
+++ b/superset-frontend/src/utils/downloadAsImage.tsx
@@ -18,7 +18,7 @@
  */
 import { SyntheticEvent } from 'react';
 import domToImage from 'dom-to-image-more';
-import { kebabCase } from 'lodash';
+import { kebabCase } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import { SupersetTheme } from '@apache-superset/core/theme';
 import { addWarningToast } from 'src/components/MessageToasts/actions';
diff --git a/superset-frontend/src/utils/downloadAsPdf.ts b/superset-frontend/src/utils/downloadAsPdf.ts
index 43c67996dc1..a83b96249b1 100644
--- a/superset-frontend/src/utils/downloadAsPdf.ts
+++ b/superset-frontend/src/utils/downloadAsPdf.ts
@@ -18,7 +18,7 @@
  */
 import { SyntheticEvent } from 'react';
 import domToPdf from 'dom-to-pdf';
-import { kebabCase } from 'lodash';
+import { kebabCase } from 'lodash-es';
 import { t } from '@apache-superset/core/translation';
 import { logging } from '@apache-superset/core/utils';
 import { addWarningToast } from 'src/components/MessageToasts/actions';
diff --git a/superset-frontend/src/utils/getChartFormDiffs/index.ts b/superset-frontend/src/utils/getChartFormDiffs/index.ts
index 6c89b4fef31..94554d5196b 100644
--- a/superset-frontend/src/utils/getChartFormDiffs/index.ts
+++ b/superset-frontend/src/utils/getChartFormDiffs/index.ts
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { isEqual } from 'lodash';
+import { isEqual } from 'lodash-es';
 import { DiffType } from 'src/types/DiffType';
 import { JsonObject } from '@superset-ui/core';
 import { sanitizeFormData } from '../sanitizeFormData';
diff --git a/superset-frontend/src/utils/sanitizeFormData/index.ts b/superset-frontend/src/utils/sanitizeFormData/index.ts
index 9c55cfc6cf4..01542ec983e 100644
--- a/superset-frontend/src/utils/sanitizeFormData/index.ts
+++ b/superset-frontend/src/utils/sanitizeFormData/index.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 import { JsonObject } from '@superset-ui/core';
-import { omit } from 'lodash';
+import { omit } from 'lodash-es';
 
 const TEMPORARY_CONTROLS: string[] = ['url_params'];
 
diff --git a/superset-frontend/src/utils/urlUtils.ts b/superset-frontend/src/utils/urlUtils.ts
index dedc20c8330..b7889442d3d 100644
--- a/superset-frontend/src/utils/urlUtils.ts
+++ b/superset-frontend/src/utils/urlUtils.ts
@@ -24,7 +24,7 @@ import {
 } from '@superset-ui/core';
 import Switchboard from '@superset-ui/switchboard';
 import rison from 'rison';
-import { isEmpty } from 'lodash';
+import { isEmpty } from 'lodash-es';
 import {
   RESERVED_CHART_URL_PARAMS,
   RESERVED_DASHBOARD_URL_PARAMS,
diff --git a/superset-frontend/src/views/CRUD/utils.tsx b/superset-frontend/src/views/CRUD/utils.tsx
index a7e7d894c57..414a1ef51b3 100644
--- a/superset-frontend/src/views/CRUD/utils.tsx
+++ b/superset-frontend/src/views/CRUD/utils.tsx
@@ -27,7 +27,7 @@ import {
 } from '@superset-ui/core';
 import { styled } from '@apache-superset/core/theme';
 import Chart from 'src/types/Chart';
-import { intersection } from 'lodash';
+import { intersection } from 'lodash-es';
 import rison from 'rison';
 import type {
   ListViewFetchDataConfig as FetchDataConfig,