diff --git a/public/app/angular/AngularApp.ts b/public/app/angular/AngularApp.ts
index 7eadf7e83ef..7fab2829548 100644
--- a/public/app/angular/AngularApp.ts
+++ b/public/app/angular/AngularApp.ts
@@ -7,14 +7,13 @@ import 'vendor/angular-other/angular-strap';
import { config } from 'app/core/config';
import coreModule, { angularModules } from 'app/core/core_module';
import { DashboardLoaderSrv } from 'app/features/dashboard/services/DashboardLoaderSrv';
-import { registerAngularDirectives } from 'app/core/core';
-import { initAngularRoutingBridge } from 'app/angular/bridgeReactAngularRouting';
-import { monkeyPatchInjectorWithPreAssignedBindings } from 'app/core/injectorMonkeyPatch';
+import { registerAngularDirectives } from './angular_wrappers';
+import { initAngularRoutingBridge } from './bridgeReactAngularRouting';
+import { monkeyPatchInjectorWithPreAssignedBindings } from './injectorMonkeyPatch';
import { extend } from 'lodash';
import { getTimeSrv } from 'app/features/dashboard/services/TimeSrv';
import { getTemplateSrv } from '@grafana/runtime';
-import './panel/all';
-import './partials';
+
export class AngularApp {
ngModuleDependencies: any[];
preBootModules: any[];
diff --git a/public/app/core/angular_wrappers.ts b/public/app/angular/angular_wrappers.ts
similarity index 94%
rename from public/app/core/angular_wrappers.ts
rename to public/app/angular/angular_wrappers.ts
index e225e7afa79..c678704635e 100644
--- a/public/app/core/angular_wrappers.ts
+++ b/public/app/angular/angular_wrappers.ts
@@ -2,10 +2,10 @@ import { react2AngularDirective } from 'app/core/utils/react2angular';
import { QueryEditor as CloudMonitoringQueryEditor } from 'app/plugins/datasource/cloud-monitoring/components/QueryEditor';
import { AnnotationQueryEditor as CloudMonitoringAnnotationQueryEditor } from 'app/plugins/datasource/cloud-monitoring/components/AnnotationQueryEditor';
import { AnnotationQueryEditor as CloudWatchAnnotationQueryEditor } from 'app/plugins/datasource/cloudwatch/components/AnnotationQueryEditor';
-import PageHeader from './components/PageHeader/PageHeader';
-import EmptyListCTA from './components/EmptyListCTA/EmptyListCTA';
-import { TagFilter } from './components/TagFilter/TagFilter';
-import { MetricSelect } from './components/Select/MetricSelect';
+import PageHeader from '../core/components/PageHeader/PageHeader';
+import EmptyListCTA from '../core/components/EmptyListCTA/EmptyListCTA';
+import { TagFilter } from '../core/components/TagFilter/TagFilter';
+import { MetricSelect } from '../core/components/Select/MetricSelect';
import {
ColorPicker,
DataLinksInlineEditor,
@@ -18,8 +18,8 @@ import {
UnitPicker,
} from '@grafana/ui';
import { LokiAnnotationsQueryEditor } from '../plugins/datasource/loki/components/AnnotationsQueryEditor';
-import { HelpModal } from './components/help/HelpModal';
-import { Footer } from './components/Footer/Footer';
+import { HelpModal } from '../core/components/help/HelpModal';
+import { Footer } from '../core/components/Footer/Footer';
import { FolderPicker } from 'app/core/components/Select/FolderPicker';
import { SearchField, SearchResults, SearchResultsFilter } from '../features/search';
import { TimePickerSettings } from 'app/features/dashboard/components/DashboardSettings/TimePickerSettings';
diff --git a/public/app/core/components/code_editor/brace.d.ts b/public/app/angular/components/code_editor/brace.d.ts
similarity index 100%
rename from public/app/core/components/code_editor/brace.d.ts
rename to public/app/angular/components/code_editor/brace.d.ts
diff --git a/public/app/core/components/code_editor/code_editor.ts b/public/app/angular/components/code_editor/code_editor.ts
similarity index 100%
rename from public/app/core/components/code_editor/code_editor.ts
rename to public/app/angular/components/code_editor/code_editor.ts
diff --git a/public/app/core/components/code_editor/theme-grafana-dark.js b/public/app/angular/components/code_editor/theme-grafana-dark.js
similarity index 100%
rename from public/app/core/components/code_editor/theme-grafana-dark.js
rename to public/app/angular/components/code_editor/theme-grafana-dark.js
diff --git a/public/app/core/components/form_dropdown/form_dropdown.ts b/public/app/angular/components/form_dropdown/form_dropdown.ts
similarity index 99%
rename from public/app/core/components/form_dropdown/form_dropdown.ts
rename to public/app/angular/components/form_dropdown/form_dropdown.ts
index 915fe57f08c..fbe0107a7b0 100644
--- a/public/app/core/components/form_dropdown/form_dropdown.ts
+++ b/public/app/angular/components/form_dropdown/form_dropdown.ts
@@ -1,5 +1,5 @@
import { debounce, find, indexOf, map, isObject, escape, unescape } from 'lodash';
-import coreModule from '../../core_module';
+import coreModule from '../../../core/core_module';
import { ISCEService } from 'angular';
import { promiseToDigest } from 'app/core/utils/promiseToDigest';
diff --git a/public/app/core/components/info_popover.ts b/public/app/angular/components/info_popover.ts
similarity index 100%
rename from public/app/core/components/info_popover.ts
rename to public/app/angular/components/info_popover.ts
diff --git a/public/app/core/components/jsontree/jsontree.ts b/public/app/angular/components/jsontree.ts
similarity index 100%
rename from public/app/core/components/jsontree/jsontree.ts
rename to public/app/angular/components/jsontree.ts
diff --git a/public/app/core/components/query_part/query_part.ts b/public/app/angular/components/query_part.ts
similarity index 100%
rename from public/app/core/components/query_part/query_part.ts
rename to public/app/angular/components/query_part.ts
diff --git a/public/app/core/components/query_part/query_part_editor.ts b/public/app/angular/components/query_part_editor.ts
similarity index 98%
rename from public/app/core/components/query_part/query_part_editor.ts
rename to public/app/angular/components/query_part_editor.ts
index 97d886a9fda..9f0c350e287 100644
--- a/public/app/core/components/query_part/query_part_editor.ts
+++ b/public/app/angular/components/query_part_editor.ts
@@ -1,7 +1,7 @@
import { debounce, each, map, partial, escape, unescape } from 'lodash';
import $ from 'jquery';
import coreModule from 'app/core/core_module';
-import { promiseToDigest } from '../../utils/promiseToDigest';
+import { promiseToDigest } from '../../core/utils/promiseToDigest';
const template = `
diff --git a/public/app/core/components/scroll/scroll.ts b/public/app/angular/components/scroll.ts
similarity index 100%
rename from public/app/core/components/scroll/scroll.ts
rename to public/app/angular/components/scroll.ts
diff --git a/public/app/core/components/colorpicker/spectrum_picker.ts b/public/app/angular/components/spectrum_picker.ts
similarity index 93%
rename from public/app/core/components/colorpicker/spectrum_picker.ts
rename to public/app/angular/components/spectrum_picker.ts
index effdc932fa7..560d50f15da 100644
--- a/public/app/core/components/colorpicker/spectrum_picker.ts
+++ b/public/app/angular/components/spectrum_picker.ts
@@ -3,7 +3,7 @@
* Allows remaining untouched in outdated plugins.
* Technically, it's just a wrapper for react component with two-way data binding support.
*/
-import coreModule from '../../core_module';
+import coreModule from '../../core/core_module';
/** @ngInject */
export function spectrumPicker() {
diff --git a/public/app/core/components/sql_part/sql_part.ts b/public/app/angular/components/sql_part/sql_part.ts
similarity index 100%
rename from public/app/core/components/sql_part/sql_part.ts
rename to public/app/angular/components/sql_part/sql_part.ts
diff --git a/public/app/core/components/sql_part/sql_part_editor.ts b/public/app/angular/components/sql_part/sql_part_editor.ts
similarity index 100%
rename from public/app/core/components/sql_part/sql_part_editor.ts
rename to public/app/angular/components/sql_part/sql_part_editor.ts
diff --git a/public/app/core/components/switch.ts b/public/app/angular/components/switch.ts
similarity index 100%
rename from public/app/core/components/switch.ts
rename to public/app/angular/components/switch.ts
diff --git a/public/app/core/filters/filters.ts b/public/app/angular/filters/filters.ts
similarity index 96%
rename from public/app/core/filters/filters.ts
rename to public/app/angular/filters/filters.ts
index c06d15547f2..64e467dbf99 100644
--- a/public/app/core/filters/filters.ts
+++ b/public/app/angular/filters/filters.ts
@@ -1,6 +1,6 @@
import { isArray, isNull, isObject, isUndefined } from 'lodash';
import angular from 'angular';
-import coreModule from '../core_module';
+import coreModule from '../../core/core_module';
import { getTemplateSrv, TemplateSrv } from 'app/features/templating/template_srv';
import { dateTime } from '@grafana/data';
diff --git a/public/app/angular/index.ts b/public/app/angular/index.ts
new file mode 100644
index 00000000000..0ef85ca80a8
--- /dev/null
+++ b/public/app/angular/index.ts
@@ -0,0 +1,33 @@
+import './panel/all';
+import './partials';
+import './filters/filters';
+import './services/alert_srv';
+import './services/dynamic_directive_srv';
+import './services/ng_react';
+import './services/segment_srv';
+import './services/popover_srv';
+import './services/timer';
+import './dropdown_typeahead';
+import './autofill_event_fix';
+import './metric_segment';
+import './misc';
+import './ng_model_on_blur';
+import './tags';
+import './rebuild_on_change';
+import './give_focus';
+import './diff-view';
+import './array_join';
+import './angular_wrappers';
+
+// components
+import './components/query_part_editor';
+import './components/form_dropdown/form_dropdown';
+import './components/scroll';
+import './components/jsontree';
+import './components/switch';
+import './components/info_popover';
+import './components/spectrum_picker';
+import './components/code_editor/code_editor';
+import './components/sql_part/sql_part_editor';
+
+export { AngularApp } from './AngularApp';
diff --git a/public/app/core/injectorMonkeyPatch.ts b/public/app/angular/injectorMonkeyPatch.ts
similarity index 100%
rename from public/app/core/injectorMonkeyPatch.ts
rename to public/app/angular/injectorMonkeyPatch.ts
diff --git a/public/app/angular/services.ts b/public/app/angular/services.ts
deleted file mode 100644
index f43e8d6ee82..00000000000
--- a/public/app/angular/services.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import './alert_srv';
-import './util_srv';
-import './context_srv';
-import './timer';
-import './analytics';
-import './popover_srv';
-import './segment_srv';
-import './backend_srv';
-import './dynamic_directive_srv';
diff --git a/public/app/core/services/alert_srv.ts b/public/app/angular/services/alert_srv.ts
similarity index 100%
rename from public/app/core/services/alert_srv.ts
rename to public/app/angular/services/alert_srv.ts
diff --git a/public/app/core/services/dynamic_directive_srv.ts b/public/app/angular/services/dynamic_directive_srv.ts
similarity index 96%
rename from public/app/core/services/dynamic_directive_srv.ts
rename to public/app/angular/services/dynamic_directive_srv.ts
index 30c4c860240..8a63bafbac9 100644
--- a/public/app/core/services/dynamic_directive_srv.ts
+++ b/public/app/angular/services/dynamic_directive_srv.ts
@@ -1,5 +1,5 @@
import angular from 'angular';
-import coreModule from '../core_module';
+import coreModule from '../../core/core_module';
class DynamicDirectiveSrv {
/** @ngInject */
diff --git a/public/app/core/nav_model_srv.ts b/public/app/angular/services/nav_model_srv.ts
similarity index 100%
rename from public/app/core/nav_model_srv.ts
rename to public/app/angular/services/nav_model_srv.ts
diff --git a/public/app/core/services/ng_react.ts b/public/app/angular/services/ng_react.ts
similarity index 100%
rename from public/app/core/services/ng_react.ts
rename to public/app/angular/services/ng_react.ts
diff --git a/public/app/core/services/popover_srv.ts b/public/app/angular/services/popover_srv.ts
similarity index 100%
rename from public/app/core/services/popover_srv.ts
rename to public/app/angular/services/popover_srv.ts
diff --git a/public/app/core/services/segment_srv.ts b/public/app/angular/services/segment_srv.ts
similarity index 98%
rename from public/app/core/services/segment_srv.ts
rename to public/app/angular/services/segment_srv.ts
index b0c37eee45c..2b0fbdaea70 100644
--- a/public/app/core/services/segment_srv.ts
+++ b/public/app/angular/services/segment_srv.ts
@@ -1,5 +1,5 @@
import { each, isString, map } from 'lodash';
-import coreModule from '../core_module';
+import coreModule from '../../core/core_module';
/** @ngInject */
export function uiSegmentSrv(this: any, $sce: any, templateSrv: any) {
diff --git a/public/app/core/services/timer.ts b/public/app/angular/services/timer.ts
similarity index 100%
rename from public/app/core/services/timer.ts
rename to public/app/angular/services/timer.ts
diff --git a/public/app/app.ts b/public/app/app.ts
index 7448c9816c5..98be6741bd4 100644
--- a/public/app/app.ts
+++ b/public/app/app.ts
@@ -41,7 +41,7 @@ import { setVariableQueryRunner, VariableQueryRunner } from './features/variable
import { configureStore } from './store/configureStore';
import { AppWrapper } from './AppWrapper';
import { interceptLinkClicks } from './core/navigation/patch/interceptLinkClicks';
-import { AngularApp } from './angular/AngularApp';
+import { AngularApp } from './angular';
import { PanelRenderer } from './features/panel/components/PanelRenderer';
import { QueryRunner } from './features/query/state/QueryRunner';
import { getTimeSrv } from './features/dashboard/services/TimeSrv';
diff --git a/public/app/core/components/dashboard_selector.ts b/public/app/core/components/dashboard_selector.ts
deleted file mode 100644
index 5bb79d9f934..00000000000
--- a/public/app/core/components/dashboard_selector.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import coreModule from 'app/core/core_module';
-import { backendSrv } from '../services/backend_srv';
-
-const template = `
-
-`;
-
-export class DashboardSelectorCtrl {
- model: any;
- options: any;
-
- $onInit() {
- this.options = [{ value: 0, text: 'Default' }];
-
- return backendSrv.search({ starred: true }).then((res) => {
- res.forEach((dash) => {
- this.options.push({ value: dash.id, text: dash.title });
- });
- });
- }
-}
-
-export function dashboardSelector() {
- return {
- restrict: 'E',
- controller: DashboardSelectorCtrl,
- bindToController: true,
- controllerAs: 'ctrl',
- template: template,
- scope: {
- model: '=',
- },
- };
-}
-
-coreModule.directive('dashboardSelector', dashboardSelector);
diff --git a/public/app/core/core.ts b/public/app/core/core.ts
index aaaa92bf10b..7e2327e315f 100644
--- a/public/app/core/core.ts
+++ b/public/app/core/core.ts
@@ -1,61 +1,24 @@
-import '../angular/dropdown_typeahead';
-import '../angular/autofill_event_fix';
-import '../angular/metric_segment';
-import '../angular/misc';
-import '../angular/ng_model_on_blur';
-import '../angular/tags';
-import '../angular/rebuild_on_change';
-import '../angular/give_focus';
-import '../angular/diff-view';
import './jquery_extended';
-import './components/jsontree/jsontree';
-import './components/code_editor/code_editor';
-import './components/colorpicker/spectrum_picker';
import './services/search_srv';
-import './services/ng_react';
import { colors, JsonExplorer } from '@grafana/ui/';
-
-import { infoPopover } from './components/info_popover';
-import { arrayJoin } from '../angular/array_join';
-import { switchDirective } from './components/switch';
-import { dashboardSelector } from './components/dashboard_selector';
-import { queryPartEditorDirective } from './components/query_part/query_part_editor';
-import { sqlPartEditorDirective } from './components/sql_part/sql_part_editor';
-import { formDropdownDirective } from './components/form_dropdown/form_dropdown';
import 'app/core/services/all';
-import './filters/filters';
import coreModule from './core_module';
import appEvents from './app_events';
import { assignModelProperties } from './utils/model_utils';
import { contextSrv } from './services/context_srv';
import { KeybindingSrv } from './services/keybindingSrv';
-import { NavModelSrv } from './nav_model_srv';
-import { geminiScrollbar } from './components/scroll/scroll';
import { profiler } from './profiler';
-import { registerAngularDirectives } from './angular_wrappers';
import TimeSeries, { updateLegendValues } from './time_series2';
-import { NavModel } from '@grafana/data';
export {
profiler,
- registerAngularDirectives,
- arrayJoin,
coreModule,
- switchDirective,
- infoPopover,
appEvents,
- dashboardSelector,
- queryPartEditorDirective,
- sqlPartEditorDirective,
colors,
- formDropdownDirective,
assignModelProperties,
contextSrv,
KeybindingSrv,
JsonExplorer,
- NavModelSrv,
- NavModel,
- geminiScrollbar,
TimeSeries,
updateLegendValues,
};
diff --git a/public/app/core/hooks/useNavModel.ts b/public/app/core/hooks/useNavModel.ts
index 3d183370be5..18bb07d6c8b 100644
--- a/public/app/core/hooks/useNavModel.ts
+++ b/public/app/core/hooks/useNavModel.ts
@@ -1,7 +1,7 @@
import { useSelector } from 'react-redux';
import { StoreState } from 'app/types/store';
import { getNavModel } from '../selectors/navModel';
-import { NavModel } from '../core';
+import { NavModel } from '@grafana/data';
export const useNavModel = (id: string): NavModel => {
const navIndex = useSelector((state: StoreState) => state.navIndex);
diff --git a/public/app/core/services/all.ts b/public/app/core/services/all.ts
index 20086bbe6f0..0cb712d5331 100644
--- a/public/app/core/services/all.ts
+++ b/public/app/core/services/all.ts
@@ -1,8 +1,3 @@
-import './alert_srv';
import './util_srv';
import './context_srv';
-import './timer';
-import './popover_srv';
-import './segment_srv';
import './backend_srv';
-import './dynamic_directive_srv';
diff --git a/public/app/core/services/search_srv.ts b/public/app/core/services/search_srv.ts
index 8307a482ed2..581a90f662c 100644
--- a/public/app/core/services/search_srv.ts
+++ b/public/app/core/services/search_srv.ts
@@ -1,5 +1,4 @@
import { clone, keys, sortBy, take, values } from 'lodash';
-
import impressionSrv from 'app/core/services/impression_srv';
import store from 'app/core/store';
import { contextSrv } from 'app/core/services/context_srv';
diff --git a/public/app/features/alerting/AlertTabCtrl.ts b/public/app/features/alerting/AlertTabCtrl.ts
index c0fa410df9c..8b291447664 100644
--- a/public/app/features/alerting/AlertTabCtrl.ts
+++ b/public/app/features/alerting/AlertTabCtrl.ts
@@ -1,7 +1,7 @@
import { find, map, reduce, remove } from 'lodash';
import coreModule from 'app/core/core_module';
import { ThresholdMapper } from './state/ThresholdMapper';
-import { QueryPart } from 'app/core/components/query_part/query_part';
+import { QueryPart } from 'app/angular/components/query_part';
import alertDef from './state/alertDef';
import config from 'app/core/config';
import appEvents from 'app/core/app_events';
diff --git a/public/app/features/alerting/state/alertDef.ts b/public/app/features/alerting/state/alertDef.ts
index 1ed703e216b..1e482568f43 100644
--- a/public/app/features/alerting/state/alertDef.ts
+++ b/public/app/features/alerting/state/alertDef.ts
@@ -1,5 +1,5 @@
import { isArray, reduce } from 'lodash';
-import { QueryPartDef, QueryPart } from 'app/core/components/query_part/query_part';
+import { QueryPartDef, QueryPart } from 'app/angular/components/query_part';
const alertQueryDef = new QueryPartDef({
type: 'query',
diff --git a/public/app/features/org/UserInvitePage.tsx b/public/app/features/org/UserInvitePage.tsx
index 7a200878e65..affe62a13e9 100644
--- a/public/app/features/org/UserInvitePage.tsx
+++ b/public/app/features/org/UserInvitePage.tsx
@@ -1,10 +1,11 @@
import React, { FC } from 'react';
import { connect } from 'react-redux';
import UserInviteForm from './UserInviteForm';
-import { contextSrv, NavModel } from 'app/core/core';
+import { contextSrv } from 'app/core/core';
import { getNavModel } from 'app/core/selectors/navModel';
import { StoreState } from 'app/types/store';
import Page from 'app/core/components/Page/Page';
+import { NavModel } from '@grafana/data';
interface Props {
navModel: NavModel;
diff --git a/public/app/features/plugins/AppRootPage.tsx b/public/app/features/plugins/AppRootPage.tsx
index a4243995557..16c622df85a 100644
--- a/public/app/features/plugins/AppRootPage.tsx
+++ b/public/app/features/plugins/AppRootPage.tsx
@@ -6,7 +6,7 @@ import { createHtmlPortalNode, InPortal, OutPortal, HtmlPortalNode } from 'react
import Page from 'app/core/components/Page/Page';
import { getPluginSettings } from './PluginSettingsCache';
import { importAppPlugin } from './plugin_loader';
-import { getNotFoundNav, getWarningNav, getExceptionNav } from 'app/core/nav_model_srv';
+import { getNotFoundNav, getWarningNav, getExceptionNav } from 'app/angular/services/nav_model_srv';
import { appEvents } from 'app/core/core';
import PageLoader from 'app/core/components/PageLoader/PageLoader';
import { GrafanaRouteComponentProps } from 'app/core/navigation/types';
diff --git a/public/app/features/plugins/PluginPage.tsx b/public/app/features/plugins/PluginPage.tsx
index 841ab85920b..a611ab8a72a 100644
--- a/public/app/features/plugins/PluginPage.tsx
+++ b/public/app/features/plugins/PluginPage.tsx
@@ -26,7 +26,7 @@ import Page from 'app/core/components/Page/Page';
import { getPluginSettings } from './PluginSettingsCache';
import { importAppPlugin, importDataSourcePlugin } from './plugin_loader';
import { importPanelPluginFromMeta } from './importPanelPlugin';
-import { getNotFoundNav } from 'app/core/nav_model_srv';
+import { getNotFoundNav } from 'app/angular/services/nav_model_srv';
import { PluginHelp } from 'app/core/components/PluginHelp/PluginHelp';
import { AppConfigCtrlWrapper } from './wrappers/AppConfigWrapper';
import { PluginDashboards } from './PluginDashboards';
diff --git a/public/app/features/plugins/plugin_page_ctrl.ts b/public/app/features/plugins/plugin_page_ctrl.ts
index 665a60c9bd6..1ed7a9cceec 100644
--- a/public/app/features/plugins/plugin_page_ctrl.ts
+++ b/public/app/features/plugins/plugin_page_ctrl.ts
@@ -3,9 +3,9 @@ import { find } from 'lodash';
import { getPluginSettings } from './PluginSettingsCache';
import { PluginMeta, AppEvents } from '@grafana/data';
-import { NavModelSrv } from 'app/core/core';
import { GrafanaRootScope } from 'app/routes/GrafanaCtrl';
import { promiseToDigest } from '../../core/utils/promiseToDigest';
+import { NavModelSrv } from 'app/angular/services/nav_model_srv';
export class AppPageCtrl {
page: any;
diff --git a/public/app/plugins/datasource/influxdb/components/VisualInfluxQLEditor/partListUtils.tsx b/public/app/plugins/datasource/influxdb/components/VisualInfluxQLEditor/partListUtils.tsx
index 57dce829764..5a3720a8cd5 100644
--- a/public/app/plugins/datasource/influxdb/components/VisualInfluxQLEditor/partListUtils.tsx
+++ b/public/app/plugins/datasource/influxdb/components/VisualInfluxQLEditor/partListUtils.tsx
@@ -5,7 +5,7 @@ import InfluxQueryModel from '../../influx_query_model';
import { unwrap } from './unwrap';
import queryPart from '../../query_part';
import { toSelectableValue } from './toSelectableValue';
-import { QueryPartDef } from '../../../../../core/components/query_part/query_part';
+import { QueryPartDef } from 'app/angular/components/query_part';
type Categories = Record;
diff --git a/public/app/plugins/datasource/influxdb/query_part.ts b/public/app/plugins/datasource/influxdb/query_part.ts
index fd8861da31f..e144f844ec8 100644
--- a/public/app/plugins/datasource/influxdb/query_part.ts
+++ b/public/app/plugins/datasource/influxdb/query_part.ts
@@ -1,5 +1,5 @@
import { map, clone } from 'lodash';
-import { QueryPartDef, QueryPart, functionRenderer, suffixRenderer } from 'app/core/components/query_part/query_part';
+import { QueryPartDef, QueryPart, functionRenderer, suffixRenderer } from 'app/angular/components/query_part';
const index: any[] = [];
const categories: any = {
diff --git a/public/app/plugins/datasource/mysql/query_ctrl.ts b/public/app/plugins/datasource/mysql/query_ctrl.ts
index 67ca7b6d694..31890dbbfb5 100644
--- a/public/app/plugins/datasource/mysql/query_ctrl.ts
+++ b/public/app/plugins/datasource/mysql/query_ctrl.ts
@@ -2,7 +2,7 @@ import { clone, filter, find, findIndex, indexOf, map } from 'lodash';
import appEvents from 'app/core/app_events';
import { MysqlMetaQuery } from './meta_query';
import { QueryCtrl } from 'app/plugins/sdk';
-import { SqlPart } from 'app/core/components/sql_part/sql_part';
+import { SqlPart } from 'app/angular/components/sql_part/sql_part';
import MySQLQueryModel from './mysql_query_model';
import sqlPart from './sql_part';
import { auto } from 'angular';
diff --git a/public/app/plugins/datasource/mysql/sql_part.ts b/public/app/plugins/datasource/mysql/sql_part.ts
index 2b6bd66101c..7506431c3d0 100644
--- a/public/app/plugins/datasource/mysql/sql_part.ts
+++ b/public/app/plugins/datasource/mysql/sql_part.ts
@@ -1,4 +1,4 @@
-import { SqlPartDef, SqlPart } from 'app/core/components/sql_part/sql_part';
+import { SqlPartDef, SqlPart } from 'app/angular/components/sql_part/sql_part';
const index: any[] = [];
diff --git a/public/app/plugins/datasource/postgres/query_ctrl.ts b/public/app/plugins/datasource/postgres/query_ctrl.ts
index 44d3705b38d..5a1460c5e63 100644
--- a/public/app/plugins/datasource/postgres/query_ctrl.ts
+++ b/public/app/plugins/datasource/postgres/query_ctrl.ts
@@ -2,7 +2,7 @@ import { clone, filter, find, findIndex, indexOf, map } from 'lodash';
import appEvents from 'app/core/app_events';
import { PostgresMetaQuery } from './meta_query';
import { QueryCtrl } from 'app/plugins/sdk';
-import { SqlPart } from 'app/core/components/sql_part/sql_part';
+import { SqlPart } from 'app/angular/components/sql_part/sql_part';
import PostgresQueryModel from './postgres_query_model';
import sqlPart from './sql_part';
import { auto } from 'angular';
diff --git a/public/app/plugins/datasource/postgres/sql_part.ts b/public/app/plugins/datasource/postgres/sql_part.ts
index 34ac81bacd0..17d78995e1e 100644
--- a/public/app/plugins/datasource/postgres/sql_part.ts
+++ b/public/app/plugins/datasource/postgres/sql_part.ts
@@ -1,4 +1,4 @@
-import { SqlPartDef, SqlPart } from 'app/core/components/sql_part/sql_part';
+import { SqlPartDef, SqlPart } from 'app/angular/components/sql_part/sql_part';
const index: any[] = [];