From 401615847c1320d46348f9538602ae445c875386 Mon Sep 17 00:00:00 2001 From: Ryan McKinley Date: Tue, 18 Jun 2019 08:17:27 -0700 Subject: [PATCH] Build: add @grafana/data package (#17436) first step in moving non-ui components to their own package --- packages/grafana-build/README.md | 4 -- packages/grafana-build/package.json | 13 ----- packages/grafana-data/README.md | 3 ++ packages/grafana-data/index.js | 7 +++ packages/grafana-data/package.json | 41 +++++++++++++++ packages/grafana-data/rollup.config.ts | 50 +++++++++++++++++++ packages/grafana-data/src/index.ts | 2 + packages/grafana-data/src/types/index.ts | 1 + .../src/types/navModel.ts | 0 packages/grafana-data/src/utils/index.ts | 1 + .../src/utils/string.test.ts | 0 .../src/utils/string.ts | 9 ---- packages/grafana-data/tsconfig.build.json | 4 ++ packages/grafana-data/tsconfig.json | 19 +++++++ packages/grafana-data/tslint.json | 6 +++ packages/grafana-runtime/package.json | 2 +- .../components/SetInterval/SetInterval.tsx | 10 +++- .../SingleStatShared/FieldDisplayEditor.tsx | 2 +- .../FieldPropertiesEditor.tsx | 2 +- .../grafana-ui/src/components/Table/Table.tsx | 2 +- packages/grafana-ui/src/types/app.ts | 2 +- packages/grafana-ui/src/types/index.ts | 1 - packages/grafana-ui/src/utils/index.ts | 1 - public/app/core/actions/navModel.ts | 2 +- public/app/core/components/Page/Page.tsx | 3 +- .../core/components/PageHeader/PageHeader.tsx | 2 +- .../components/sidemenu/BottomNavLinks.tsx | 2 +- .../components/sidemenu/BottomSection.tsx | 2 +- .../components/sidemenu/SideMenuDropDown.tsx | 2 +- public/app/core/core.ts | 2 +- public/app/core/nav_model_srv.ts | 2 +- public/app/core/reducers/navModel.ts | 2 +- public/app/core/selectors/navModel.ts | 2 +- public/app/core/time_series2.ts | 3 +- public/app/core/utils/kbn.ts | 5 +- public/app/features/admin/ServerStats.tsx | 2 +- .../features/alerting/AlertRuleList.test.tsx | 2 +- .../app/features/alerting/AlertRuleList.tsx | 2 +- .../features/api-keys/ApiKeysPage.test.tsx | 2 +- public/app/features/api-keys/ApiKeysPage.tsx | 3 +- .../datasources/DataSourceDashboards.test.tsx | 3 +- .../datasources/DataSourceDashboards.tsx | 3 +- .../datasources/DataSourcesListPage.test.tsx | 3 +- .../datasources/DataSourcesListPage.tsx | 3 +- .../datasources/NewDataSourcePage.tsx | 3 +- .../settings/DataSourceSettingsPage.test.tsx | 3 +- .../settings/DataSourceSettingsPage.tsx | 3 +- .../features/datasources/state/navModel.ts | 3 +- .../features/folders/FolderPermissions.tsx | 3 +- .../folders/FolderSettingsPage.test.tsx | 2 +- .../features/folders/FolderSettingsPage.tsx | 3 +- public/app/features/folders/state/navModel.ts | 2 +- .../app/features/org/OrgDetailsPage.test.tsx | 2 +- public/app/features/org/OrgDetailsPage.tsx | 2 +- public/app/features/plugins/AppRootPage.tsx | 3 +- .../features/plugins/PluginListPage.test.tsx | 3 +- .../app/features/plugins/PluginListPage.tsx | 3 +- public/app/features/plugins/PluginPage.tsx | 3 +- public/app/features/plugins/plugin_loader.ts | 6 ++- public/app/features/teams/TeamList.test.tsx | 2 +- public/app/features/teams/TeamList.tsx | 3 +- public/app/features/teams/TeamPages.test.tsx | 2 +- public/app/features/teams/TeamPages.tsx | 2 +- public/app/features/teams/state/navModel.ts | 2 +- .../templating/datasource_variable.ts | 2 +- .../app/features/templating/query_variable.ts | 2 +- .../app/features/users/UsersListPage.test.tsx | 2 +- public/app/features/users/UsersListPage.tsx | 2 +- .../app/example-app/ExampleRootPage.tsx | 3 +- public/app/plugins/panel/table/renderer.ts | 3 +- public/app/types/store.ts | 2 +- public/test/mocks/common.ts | 2 +- scripts/grunt/default_task.js | 4 +- 73 files changed, 223 insertions(+), 88 deletions(-) delete mode 100644 packages/grafana-build/README.md delete mode 100644 packages/grafana-build/package.json create mode 100644 packages/grafana-data/README.md create mode 100644 packages/grafana-data/index.js create mode 100644 packages/grafana-data/package.json create mode 100644 packages/grafana-data/rollup.config.ts create mode 100644 packages/grafana-data/src/index.ts create mode 100644 packages/grafana-data/src/types/index.ts rename packages/{grafana-ui => grafana-data}/src/types/navModel.ts (100%) create mode 100644 packages/grafana-data/src/utils/index.ts rename packages/{grafana-ui => grafana-data}/src/utils/string.test.ts (100%) rename packages/{grafana-ui => grafana-data}/src/utils/string.ts (84%) create mode 100644 packages/grafana-data/tsconfig.build.json create mode 100644 packages/grafana-data/tsconfig.json create mode 100644 packages/grafana-data/tslint.json diff --git a/packages/grafana-build/README.md b/packages/grafana-build/README.md deleted file mode 100644 index 588d91861d3..00000000000 --- a/packages/grafana-build/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Shared build scripts - -Shared build scripts for plugins & internal packages. - diff --git a/packages/grafana-build/package.json b/packages/grafana-build/package.json deleted file mode 100644 index 056e5d2c7ea..00000000000 --- a/packages/grafana-build/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "@grafana/build", - "private": true, - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "tslint": "echo \"Nothing to do\"", - "typecheck": "echo \"Nothing to do\"" - }, - "author": "Grafana Labs", - "license": "Apache-2.0" -} diff --git a/packages/grafana-data/README.md b/packages/grafana-data/README.md new file mode 100644 index 00000000000..3176bb45b5d --- /dev/null +++ b/packages/grafana-data/README.md @@ -0,0 +1,3 @@ +# Grafana Data Library + +The core data components \ No newline at end of file diff --git a/packages/grafana-data/index.js b/packages/grafana-data/index.js new file mode 100644 index 00000000000..d1a4363350e --- /dev/null +++ b/packages/grafana-data/index.js @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./index.production.js'); +} else { + module.exports = require('./index.development.js'); +} diff --git a/packages/grafana-data/package.json b/packages/grafana-data/package.json new file mode 100644 index 00000000000..0cfe41302bf --- /dev/null +++ b/packages/grafana-data/package.json @@ -0,0 +1,41 @@ +{ + "name": "@grafana/data", + "version": "6.3.0-alpha.0", + "description": "Grafana Data Library", + "keywords": [ + "typescript" + ], + "main": "src/index.ts", + "scripts": { + "tslint": "tslint -c tslint.json --project tsconfig.json", + "typecheck": "tsc --noEmit", + "clean": "rimraf ./dist ./compiled", + "build": "rollup -c rollup.config.ts" + }, + "author": "Grafana Labs", + "license": "Apache-2.0", + "dependencies": {}, + "devDependencies": { + "@types/jest": "23.3.14", + "@types/jquery": "1.10.35", + "@types/lodash": "4.14.123", + "@types/node": "10.14.1", + "@types/papaparse": "4.5.9", + "@types/pretty-format": "20.0.1", + "@types/react": "16.8.16", + "awesome-typescript-loader": "^5.2.1", + "lodash": "^4.17.10", + "pretty-format": "^24.5.0", + "rollup": "1.6.0", + "rollup-plugin-commonjs": "9.2.1", + "rollup-plugin-node-resolve": "4.0.1", + "rollup-plugin-sourcemaps": "0.4.2", + "rollup-plugin-terser": "4.0.4", + "rollup-plugin-typescript2": "0.19.3", + "rollup-plugin-visualizer": "0.9.2", + "typescript": "3.4.1" + }, + "resolutions": { + "@types/lodash": "4.14.119" + } +} diff --git a/packages/grafana-data/rollup.config.ts b/packages/grafana-data/rollup.config.ts new file mode 100644 index 00000000000..a2d6da109d9 --- /dev/null +++ b/packages/grafana-data/rollup.config.ts @@ -0,0 +1,50 @@ +import resolve from 'rollup-plugin-node-resolve'; +import commonjs from 'rollup-plugin-commonjs'; +import sourceMaps from 'rollup-plugin-sourcemaps'; +import { terser } from 'rollup-plugin-terser'; + +const pkg = require('./package.json'); + +const libraryName = pkg.name; + +const buildCjsPackage = ({ env }) => { + return { + input: `compiled/index.js`, + output: [ + { + file: `dist/index.${env}.js`, + name: libraryName, + format: 'cjs', + sourcemap: true, + exports: 'named', + globals: {}, + }, + ], + external: ['lodash'], // Use Lodash from grafana + plugins: [ + commonjs({ + include: /node_modules/, + namedExports: { + '../../node_modules/lodash/lodash.js': [ + 'flatten', + 'find', + 'upperFirst', + 'debounce', + 'isNil', + 'isNumber', + 'flattenDeep', + 'map', + 'chunk', + 'sortBy', + 'uniqueId', + 'zip', + ], + }, + }), + resolve(), + sourceMaps(), + env === 'production' && terser(), + ], + }; +}; +export default [buildCjsPackage({ env: 'development' }), buildCjsPackage({ env: 'production' })]; diff --git a/packages/grafana-data/src/index.ts b/packages/grafana-data/src/index.ts new file mode 100644 index 00000000000..53f3ef71011 --- /dev/null +++ b/packages/grafana-data/src/index.ts @@ -0,0 +1,2 @@ +export * from './utils/index'; +export * from './types/index'; diff --git a/packages/grafana-data/src/types/index.ts b/packages/grafana-data/src/types/index.ts new file mode 100644 index 00000000000..c9c46d2f061 --- /dev/null +++ b/packages/grafana-data/src/types/index.ts @@ -0,0 +1 @@ +export * from './navModel'; diff --git a/packages/grafana-ui/src/types/navModel.ts b/packages/grafana-data/src/types/navModel.ts similarity index 100% rename from packages/grafana-ui/src/types/navModel.ts rename to packages/grafana-data/src/types/navModel.ts diff --git a/packages/grafana-data/src/utils/index.ts b/packages/grafana-data/src/utils/index.ts new file mode 100644 index 00000000000..57f9f48d8bd --- /dev/null +++ b/packages/grafana-data/src/utils/index.ts @@ -0,0 +1 @@ +export * from './string'; diff --git a/packages/grafana-ui/src/utils/string.test.ts b/packages/grafana-data/src/utils/string.test.ts similarity index 100% rename from packages/grafana-ui/src/utils/string.test.ts rename to packages/grafana-data/src/utils/string.test.ts diff --git a/packages/grafana-ui/src/utils/string.ts b/packages/grafana-data/src/utils/string.ts similarity index 84% rename from packages/grafana-ui/src/utils/string.ts rename to packages/grafana-data/src/utils/string.ts index 2d7f0edf036..611561f13aa 100644 --- a/packages/grafana-ui/src/utils/string.ts +++ b/packages/grafana-data/src/utils/string.ts @@ -1,5 +1,3 @@ -import { SelectOptionItem } from './../components/Select/Select'; - export function stringToJsRegex(str: string): RegExp { if (str[0] !== '/') { return new RegExp('^' + str + '$'); @@ -43,13 +41,6 @@ export function stringToMs(str: string): number { } } -export function getIntervalFromString(strInterval: string): SelectOptionItem { - return { - label: strInterval, - value: stringToMs(strInterval), - }; -} - export function toNumberString(value: number | undefined | null): string { if (value !== null && value !== undefined && Number.isFinite(value as number)) { return value.toString(); diff --git a/packages/grafana-data/tsconfig.build.json b/packages/grafana-data/tsconfig.build.json new file mode 100644 index 00000000000..34e37b5d0b8 --- /dev/null +++ b/packages/grafana-data/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["dist", "node_modules", "**/*.test.ts", "**/*.test.tsx"] +} diff --git a/packages/grafana-data/tsconfig.json b/packages/grafana-data/tsconfig.json new file mode 100644 index 00000000000..dcc4fd97436 --- /dev/null +++ b/packages/grafana-data/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src/**/*.ts", "src/**/*.tsx", "../../public/app/types/jquery/*.ts"], + "exclude": ["dist", "node_modules"], + "compilerOptions": { + "rootDirs": ["."], + "module": "esnext", + "outDir": "compiled", + "declaration": true, + "declarationDir": "dist", + "strict": true, + "alwaysStrict": true, + "noImplicitAny": true, + "strictNullChecks": true, + "typeRoots": ["./node_modules/@types", "types"], + "skipLibCheck": true, // Temp workaround for Duplicate identifier tsc errors, + "removeComments": false + } +} diff --git a/packages/grafana-data/tslint.json b/packages/grafana-data/tslint.json new file mode 100644 index 00000000000..cf23cbe034b --- /dev/null +++ b/packages/grafana-data/tslint.json @@ -0,0 +1,6 @@ +{ + "extends": "../../tslint.json", + "rules": { + "import-blacklist": [true, ["^@grafana/data.*"], ["^@grafana/ui.*"], ["^@grafana/runtime.*"]] + } +} diff --git a/packages/grafana-runtime/package.json b/packages/grafana-runtime/package.json index 53c4109067e..dcfcfcb21b8 100644 --- a/packages/grafana-runtime/package.json +++ b/packages/grafana-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@grafana/runtime", - "version": "6.0.1-alpha.0", + "version": "6.3.0-alpha.0", "description": "Grafana Runtime Library", "keywords": [ "typescript", diff --git a/packages/grafana-ui/src/components/SetInterval/SetInterval.tsx b/packages/grafana-ui/src/components/SetInterval/SetInterval.tsx index d2b34e54619..e7d3e6e50c8 100644 --- a/packages/grafana-ui/src/components/SetInterval/SetInterval.tsx +++ b/packages/grafana-ui/src/components/SetInterval/SetInterval.tsx @@ -3,8 +3,16 @@ import { interval, Subscription, Subject, of, NEVER } from 'rxjs'; import { tap, switchMap } from 'rxjs/operators'; import _ from 'lodash'; -import { stringToMs } from '../../utils/string'; +import { stringToMs } from '@grafana/data'; import { isLive } from '../RefreshPicker/RefreshPicker'; +import { SelectOptionItem } from '../Select/Select'; + +export function getIntervalFromString(strInterval: string): SelectOptionItem { + return { + label: strInterval, + value: stringToMs(strInterval), + }; +} interface Props { func: () => any; // TODO diff --git a/packages/grafana-ui/src/components/SingleStatShared/FieldDisplayEditor.tsx b/packages/grafana-ui/src/components/SingleStatShared/FieldDisplayEditor.tsx index 85a25565636..570a8c2ad32 100644 --- a/packages/grafana-ui/src/components/SingleStatShared/FieldDisplayEditor.tsx +++ b/packages/grafana-ui/src/components/SingleStatShared/FieldDisplayEditor.tsx @@ -10,7 +10,7 @@ import { StatsPicker } from '../StatsPicker/StatsPicker'; import { FieldDisplayOptions, DEFAULT_FIELD_DISPLAY_VALUES_LIMIT } from '../../utils/fieldDisplay'; import { Field } from '../../types/data'; import Select, { SelectOptionItem } from '../Select/Select'; -import { toNumberString, toIntegerOrUndefined } from '../../utils'; +import { toNumberString, toIntegerOrUndefined } from '@grafana/data'; import { ReducerID } from '../../utils/fieldReducer'; const showOptions: Array> = [ diff --git a/packages/grafana-ui/src/components/SingleStatShared/FieldPropertiesEditor.tsx b/packages/grafana-ui/src/components/SingleStatShared/FieldPropertiesEditor.tsx index 8205599e936..4eb00fdc955 100644 --- a/packages/grafana-ui/src/components/SingleStatShared/FieldPropertiesEditor.tsx +++ b/packages/grafana-ui/src/components/SingleStatShared/FieldPropertiesEditor.tsx @@ -8,7 +8,7 @@ import { UnitPicker } from '../UnitPicker/UnitPicker'; // Types import { Field } from '../../types/data'; -import { toIntegerOrUndefined } from '../../utils'; +import { toIntegerOrUndefined } from '@grafana/data'; import { SelectOptionItem } from '../Select/Select'; import { VAR_SERIES_NAME, VAR_FIELD_NAME, VAR_CALC, VAR_CELL_PREFIX } from '../../utils/fieldDisplay'; diff --git a/packages/grafana-ui/src/components/Table/Table.tsx b/packages/grafana-ui/src/components/Table/Table.tsx index 71e96b486fd..6ed5f98450d 100644 --- a/packages/grafana-ui/src/components/Table/Table.tsx +++ b/packages/grafana-ui/src/components/Table/Table.tsx @@ -21,7 +21,7 @@ import { TableCellBuilderOptions, simpleCellBuilder, } from './TableCellBuilder'; -import { stringToJsRegex } from '../../utils/index'; +import { stringToJsRegex } from '@grafana/data'; import { SeriesData } from '../../types/data'; import { InterpolateFunction } from '../../types/panel'; diff --git a/packages/grafana-ui/src/types/app.ts b/packages/grafana-ui/src/types/app.ts index 81bf0be1d14..73894d4362f 100644 --- a/packages/grafana-ui/src/types/app.ts +++ b/packages/grafana-ui/src/types/app.ts @@ -1,5 +1,5 @@ import { ComponentClass } from 'react'; -import { NavModel } from './navModel'; +import { NavModel } from '@grafana/data'; import { PluginMeta, PluginIncludeType, GrafanaPlugin, KeyValue } from './plugin'; export interface AppRootProps { diff --git a/packages/grafana-ui/src/types/index.ts b/packages/grafana-ui/src/types/index.ts index 64092fd9dea..b391561df7f 100644 --- a/packages/grafana-ui/src/types/index.ts +++ b/packages/grafana-ui/src/types/index.ts @@ -7,7 +7,6 @@ export * from './datasource'; export * from './theme'; export * from './graph'; export * from './threshold'; -export * from './navModel'; export * from './input'; export * from './logs'; export * from './displayValue'; diff --git a/packages/grafana-ui/src/utils/index.ts b/packages/grafana-ui/src/utils/index.ts index 8a885736468..11eb7b72736 100644 --- a/packages/grafana-ui/src/utils/index.ts +++ b/packages/grafana-ui/src/utils/index.ts @@ -3,7 +3,6 @@ export * from './valueFormats/valueFormats'; export * from './colors'; export * from './namedColorsPalette'; export * from './thresholds'; -export * from './string'; export * from './csv'; export * from './fieldReducer'; export * from './displayValue'; diff --git a/public/app/core/actions/navModel.ts b/public/app/core/actions/navModel.ts index 1f4755e16ed..f402355515b 100644 --- a/public/app/core/actions/navModel.ts +++ b/public/app/core/actions/navModel.ts @@ -1,4 +1,4 @@ -import { NavModelItem } from '@grafana/ui'; +import { NavModelItem } from '@grafana/data'; export enum ActionTypes { UpdateNavIndex = 'UPDATE_NAV_INDEX', diff --git a/public/app/core/components/Page/Page.tsx b/public/app/core/components/Page/Page.tsx index 04986011fd4..a2a8bc1d621 100644 --- a/public/app/core/components/Page/Page.tsx +++ b/public/app/core/components/Page/Page.tsx @@ -7,7 +7,8 @@ import { getTitleFromNavModel } from 'app/core/selectors/navModel'; import PageHeader from '../PageHeader/PageHeader'; import Footer from '../Footer/Footer'; import PageContents from './PageContents'; -import { CustomScrollbar, NavModel } from '@grafana/ui'; +import { CustomScrollbar } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; import { isEqual } from 'lodash'; interface Props { diff --git a/public/app/core/components/PageHeader/PageHeader.tsx b/public/app/core/components/PageHeader/PageHeader.tsx index d0cbf0f8c13..1f754d1077b 100644 --- a/public/app/core/components/PageHeader/PageHeader.tsx +++ b/public/app/core/components/PageHeader/PageHeader.tsx @@ -1,7 +1,7 @@ import React, { FormEvent } from 'react'; import classNames from 'classnames'; import appEvents from 'app/core/app_events'; -import { NavModel, NavModelItem, NavModelBreadcrumb } from '@grafana/ui'; +import { NavModel, NavModelItem, NavModelBreadcrumb } from '@grafana/data'; export interface Props { model: NavModel; diff --git a/public/app/core/components/sidemenu/BottomNavLinks.tsx b/public/app/core/components/sidemenu/BottomNavLinks.tsx index fee58bad15f..7e9f5164728 100644 --- a/public/app/core/components/sidemenu/BottomNavLinks.tsx +++ b/public/app/core/components/sidemenu/BottomNavLinks.tsx @@ -1,7 +1,7 @@ import React, { PureComponent } from 'react'; import appEvents from '../../app_events'; import { User } from '../../services/context_srv'; -import { NavModelItem } from '@grafana/ui'; +import { NavModelItem } from '@grafana/data'; export interface Props { link: NavModelItem; diff --git a/public/app/core/components/sidemenu/BottomSection.tsx b/public/app/core/components/sidemenu/BottomSection.tsx index f0668eaf4dd..fb93f6f2202 100644 --- a/public/app/core/components/sidemenu/BottomSection.tsx +++ b/public/app/core/components/sidemenu/BottomSection.tsx @@ -4,7 +4,7 @@ import SignIn from './SignIn'; import BottomNavLinks from './BottomNavLinks'; import { contextSrv } from 'app/core/services/context_srv'; import config from '../../config'; -import { NavModelItem } from '@grafana/ui'; +import { NavModelItem } from '@grafana/data'; export default function BottomSection() { const navTree: NavModelItem[] = _.cloneDeep(config.bootData.navTree); diff --git a/public/app/core/components/sidemenu/SideMenuDropDown.tsx b/public/app/core/components/sidemenu/SideMenuDropDown.tsx index b3959d55d4a..bd1e3a7dfd6 100644 --- a/public/app/core/components/sidemenu/SideMenuDropDown.tsx +++ b/public/app/core/components/sidemenu/SideMenuDropDown.tsx @@ -1,6 +1,6 @@ import React, { FC } from 'react'; import DropDownChild from './DropDownChild'; -import { NavModelItem } from '@grafana/ui'; +import { NavModelItem } from '@grafana/data'; interface Props { link: NavModelItem; diff --git a/public/app/core/core.ts b/public/app/core/core.ts index ba4230cfe45..d76fe25d127 100644 --- a/public/app/core/core.ts +++ b/public/app/core/core.ts @@ -48,7 +48,7 @@ import { updateLegendValues } from './time_series2'; import TimeSeries from './time_series2'; import { searchResultsDirective } from './components/search/search_results'; import { manageDashboardsDirective } from './components/manage_dashboards/manage_dashboards'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; export { profiler, diff --git a/public/app/core/nav_model_srv.ts b/public/app/core/nav_model_srv.ts index 3b479384dda..0b15f5a970b 100644 --- a/public/app/core/nav_model_srv.ts +++ b/public/app/core/nav_model_srv.ts @@ -1,7 +1,7 @@ import coreModule from 'app/core/core_module'; import config from 'app/core/config'; import _ from 'lodash'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; export class NavModelSrv { navItems: any; diff --git a/public/app/core/reducers/navModel.ts b/public/app/core/reducers/navModel.ts index f75b701a9ff..d10b2a4b964 100644 --- a/public/app/core/reducers/navModel.ts +++ b/public/app/core/reducers/navModel.ts @@ -1,5 +1,5 @@ import { Action, ActionTypes } from 'app/core/actions/navModel'; -import { NavIndex, NavModelItem } from '@grafana/ui'; +import { NavIndex, NavModelItem } from '@grafana/data'; import config from 'app/core/config'; export function buildInitialState(): NavIndex { diff --git a/public/app/core/selectors/navModel.ts b/public/app/core/selectors/navModel.ts index 66a7011389c..e2a864c4fe7 100644 --- a/public/app/core/selectors/navModel.ts +++ b/public/app/core/selectors/navModel.ts @@ -1,4 +1,4 @@ -import { NavModel, NavModelItem, NavIndex } from '@grafana/ui'; +import { NavModel, NavModelItem, NavIndex } from '@grafana/data'; function getNotFoundModel(): NavModel { const node: NavModelItem = { diff --git a/public/app/core/time_series2.ts b/public/app/core/time_series2.ts index d7a57b77afc..4b0dfabe3c8 100644 --- a/public/app/core/time_series2.ts +++ b/public/app/core/time_series2.ts @@ -1,6 +1,7 @@ import { getFlotTickDecimals } from 'app/core/utils/ticks'; import _ from 'lodash'; -import { getValueFormat, stringToJsRegex, ValueFormatter, DecimalCount } from '@grafana/ui'; +import { getValueFormat, ValueFormatter, DecimalCount } from '@grafana/ui'; +import { stringToJsRegex } from '@grafana/data'; function matchSeriesOverride(aliasOrRegex: string, seriesAlias: string) { if (!aliasOrRegex) { diff --git a/public/app/core/utils/kbn.ts b/public/app/core/utils/kbn.ts index 1a1cf6f56ba..82d0623b1ff 100644 --- a/public/app/core/utils/kbn.ts +++ b/public/app/core/utils/kbn.ts @@ -1,5 +1,6 @@ import { has } from 'lodash'; -import { getValueFormat, getValueFormatterIndex, getValueFormats, stringToJsRegex } from '@grafana/ui'; +import { getValueFormat, getValueFormatterIndex, getValueFormats } from '@grafana/ui'; +import { stringToJsRegex } from '@grafana/data'; import deprecationWarning from '@grafana/ui/src/utils/deprecationWarning'; const kbn: any = {}; @@ -231,7 +232,7 @@ kbn.slugifyForUrl = str => { /** deprecated since 6.1, use grafana/ui */ kbn.stringToJsRegex = str => { - deprecationWarning('kbn.ts', 'kbn.stringToJsRegex()', '@grafana/ui'); + deprecationWarning('kbn.ts', 'kbn.stringToJsRegex()', '@grafana/data'); return stringToJsRegex(str); }; diff --git a/public/app/features/admin/ServerStats.tsx b/public/app/features/admin/ServerStats.tsx index c5129d11fbe..934f563e693 100644 --- a/public/app/features/admin/ServerStats.tsx +++ b/public/app/features/admin/ServerStats.tsx @@ -5,7 +5,7 @@ import { StoreState } from 'app/types'; import { getNavModel } from 'app/core/selectors/navModel'; import { getServerStats, ServerStat } from './state/apis'; import Page from 'app/core/components/Page/Page'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; interface Props { navModel: NavModel; diff --git a/public/app/features/alerting/AlertRuleList.test.tsx b/public/app/features/alerting/AlertRuleList.test.tsx index 88720c775a9..a25efca1bb1 100644 --- a/public/app/features/alerting/AlertRuleList.test.tsx +++ b/public/app/features/alerting/AlertRuleList.test.tsx @@ -5,7 +5,7 @@ import { AlertRule } from '../../types'; import appEvents from '../../core/app_events'; import { mockActionCreator } from 'app/core/redux'; import { updateLocation } from 'app/core/actions'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; jest.mock('../../core/app_events', () => ({ emit: jest.fn(), diff --git a/public/app/features/alerting/AlertRuleList.tsx b/public/app/features/alerting/AlertRuleList.tsx index 703feb141d6..032645dc272 100644 --- a/public/app/features/alerting/AlertRuleList.tsx +++ b/public/app/features/alerting/AlertRuleList.tsx @@ -10,7 +10,7 @@ import { StoreState, AlertRule } from 'app/types'; import { getAlertRulesAsync, setSearchQuery, togglePauseAlertRule } from './state/actions'; import { getAlertRuleItems, getSearchQuery } from './state/selectors'; import { FilterInput } from 'app/core/components/FilterInput/FilterInput'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; export interface Props { navModel: NavModel; diff --git a/public/app/features/api-keys/ApiKeysPage.test.tsx b/public/app/features/api-keys/ApiKeysPage.test.tsx index 37afa36b173..d1d12381a4d 100644 --- a/public/app/features/api-keys/ApiKeysPage.test.tsx +++ b/public/app/features/api-keys/ApiKeysPage.test.tsx @@ -3,7 +3,7 @@ import { shallow } from 'enzyme'; import { Props, ApiKeysPage } from './ApiKeysPage'; import { ApiKey } from 'app/types'; import { getMultipleMockKeys, getMockKey } from './__mocks__/apiKeysMock'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; const setup = (propOverrides?: object) => { const props: Props = { diff --git a/public/app/features/api-keys/ApiKeysPage.tsx b/public/app/features/api-keys/ApiKeysPage.tsx index 7a058c1c25d..817d932980c 100644 --- a/public/app/features/api-keys/ApiKeysPage.tsx +++ b/public/app/features/api-keys/ApiKeysPage.tsx @@ -12,7 +12,8 @@ import ApiKeysAddedModal from './ApiKeysAddedModal'; import config from 'app/core/config'; import appEvents from 'app/core/app_events'; import EmptyListCTA from 'app/core/components/EmptyListCTA/EmptyListCTA'; -import { DeleteButton, Input, NavModel } from '@grafana/ui'; +import { DeleteButton, Input } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; import { FilterInput } from 'app/core/components/FilterInput/FilterInput'; export interface Props { diff --git a/public/app/features/datasources/DataSourceDashboards.test.tsx b/public/app/features/datasources/DataSourceDashboards.test.tsx index 32ed7252e2d..c6cc6438ba2 100644 --- a/public/app/features/datasources/DataSourceDashboards.test.tsx +++ b/public/app/features/datasources/DataSourceDashboards.test.tsx @@ -1,7 +1,8 @@ import React from 'react'; import { shallow } from 'enzyme'; import { DataSourceDashboards, Props } from './DataSourceDashboards'; -import { NavModel, DataSourceSettings } from '@grafana/ui'; +import { DataSourceSettings } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; import { PluginDashboard } from 'app/types'; const setup = (propOverrides?: object) => { diff --git a/public/app/features/datasources/DataSourceDashboards.tsx b/public/app/features/datasources/DataSourceDashboards.tsx index 0993a455dc9..f211deb5a09 100644 --- a/public/app/features/datasources/DataSourceDashboards.tsx +++ b/public/app/features/datasources/DataSourceDashboards.tsx @@ -17,7 +17,8 @@ import { getDataSource } from './state/selectors'; // Types import { PluginDashboard, StoreState } from 'app/types'; -import { NavModel, DataSourceSettings } from '@grafana/ui'; +import { DataSourceSettings } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; export interface Props { navModel: NavModel; diff --git a/public/app/features/datasources/DataSourcesListPage.test.tsx b/public/app/features/datasources/DataSourcesListPage.test.tsx index f796df3f4ca..ea16ad99816 100644 --- a/public/app/features/datasources/DataSourcesListPage.test.tsx +++ b/public/app/features/datasources/DataSourcesListPage.test.tsx @@ -1,7 +1,8 @@ import React from 'react'; import { shallow } from 'enzyme'; import { DataSourcesListPage, Props } from './DataSourcesListPage'; -import { NavModel, DataSourceSettings } from '@grafana/ui'; +import { DataSourceSettings } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; import { LayoutModes } from '../../core/components/LayoutSelector/LayoutSelector'; import { getMockDataSources } from './__mocks__/dataSourcesMocks'; import { setDataSourcesSearchQuery, setDataSourcesLayoutMode } from './state/actions'; diff --git a/public/app/features/datasources/DataSourcesListPage.tsx b/public/app/features/datasources/DataSourcesListPage.tsx index cc04856ce34..c9f6f5b149b 100644 --- a/public/app/features/datasources/DataSourcesListPage.tsx +++ b/public/app/features/datasources/DataSourcesListPage.tsx @@ -10,7 +10,8 @@ import EmptyListCTA from 'app/core/components/EmptyListCTA/EmptyListCTA'; import DataSourcesList from './DataSourcesList'; // Types -import { NavModel, DataSourceSettings } from '@grafana/ui'; +import { DataSourceSettings } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; import { StoreState } from 'app/types'; import { LayoutMode } from 'app/core/components/LayoutSelector/LayoutSelector'; diff --git a/public/app/features/datasources/NewDataSourcePage.tsx b/public/app/features/datasources/NewDataSourcePage.tsx index bd16ba6e884..b0d74c0ee5c 100644 --- a/public/app/features/datasources/NewDataSourcePage.tsx +++ b/public/app/features/datasources/NewDataSourcePage.tsx @@ -6,7 +6,8 @@ import { StoreState } from 'app/types'; import { addDataSource, loadDataSourceTypes, setDataSourceTypeSearchQuery } from './state/actions'; import { getDataSourceTypes } from './state/selectors'; import { FilterInput } from 'app/core/components/FilterInput/FilterInput'; -import { NavModel, DataSourcePluginMeta, List, PluginType } from '@grafana/ui'; +import { DataSourcePluginMeta, List, PluginType } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; export interface Props { navModel: NavModel; diff --git a/public/app/features/datasources/settings/DataSourceSettingsPage.test.tsx b/public/app/features/datasources/settings/DataSourceSettingsPage.test.tsx index af3b4d9e786..42450d640b5 100644 --- a/public/app/features/datasources/settings/DataSourceSettingsPage.test.tsx +++ b/public/app/features/datasources/settings/DataSourceSettingsPage.test.tsx @@ -1,7 +1,8 @@ import React from 'react'; import { shallow } from 'enzyme'; import { DataSourceSettingsPage, Props } from './DataSourceSettingsPage'; -import { NavModel, DataSourceSettings, DataSourcePlugin, DataSourceConstructor } from '@grafana/ui'; +import { DataSourceSettings, DataSourcePlugin, DataSourceConstructor } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; import { getMockDataSource } from '../__mocks__/dataSourcesMocks'; import { getMockPlugin } from '../../plugins/__mocks__/pluginMocks'; import { setDataSourceName, setIsDefault } from '../state/actions'; diff --git a/public/app/features/datasources/settings/DataSourceSettingsPage.tsx b/public/app/features/datasources/settings/DataSourceSettingsPage.tsx index a34031c487f..2c3b99990a1 100644 --- a/public/app/features/datasources/settings/DataSourceSettingsPage.tsx +++ b/public/app/features/datasources/settings/DataSourceSettingsPage.tsx @@ -24,7 +24,8 @@ import { getRouteParamsId } from 'app/core/selectors/location'; // Types import { StoreState } from 'app/types/'; import { UrlQueryMap } from '@grafana/runtime'; -import { NavModel, DataSourceSettings, DataSourcePluginMeta } from '@grafana/ui'; +import { DataSourceSettings, DataSourcePluginMeta } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; import { getDataSourceLoadingNav } from '../state/navModel'; import PluginStateinfo from 'app/features/plugins/PluginStateInfo'; import { importDataSourcePlugin } from 'app/features/plugins/plugin_loader'; diff --git a/public/app/features/datasources/state/navModel.ts b/public/app/features/datasources/state/navModel.ts index 6b5f679451d..3574c751c4a 100644 --- a/public/app/features/datasources/state/navModel.ts +++ b/public/app/features/datasources/state/navModel.ts @@ -1,4 +1,5 @@ -import { DataSourceSettings, PluginType, NavModel, NavModelItem, PluginInclude } from '@grafana/ui'; +import { DataSourceSettings, PluginType, PluginInclude } from '@grafana/ui'; +import { NavModel, NavModelItem } from '@grafana/data'; import config from 'app/core/config'; import { GenericDataSourcePlugin } from '../settings/PluginSettings'; diff --git a/public/app/features/folders/FolderPermissions.tsx b/public/app/features/folders/FolderPermissions.tsx index 0f9670efd96..2261000ebed 100644 --- a/public/app/features/folders/FolderPermissions.tsx +++ b/public/app/features/folders/FolderPermissions.tsx @@ -2,7 +2,8 @@ import React, { PureComponent } from 'react'; import { hot } from 'react-hot-loader'; import { connect } from 'react-redux'; import Page from 'app/core/components/Page/Page'; -import { Tooltip, NavModel } from '@grafana/ui'; +import { Tooltip } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; import { SlideDown } from 'app/core/components/Animations/SlideDown'; import { getNavModel } from 'app/core/selectors/navModel'; import { StoreState, FolderState } from 'app/types'; diff --git a/public/app/features/folders/FolderSettingsPage.test.tsx b/public/app/features/folders/FolderSettingsPage.test.tsx index 4f56c44fae7..3e00ec931fa 100644 --- a/public/app/features/folders/FolderSettingsPage.test.tsx +++ b/public/app/features/folders/FolderSettingsPage.test.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { FolderSettingsPage, Props } from './FolderSettingsPage'; import { shallow } from 'enzyme'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; const setup = (propOverrides?: object) => { const props: Props = { diff --git a/public/app/features/folders/FolderSettingsPage.tsx b/public/app/features/folders/FolderSettingsPage.tsx index 5ca647cdd5a..04fa00ba91c 100644 --- a/public/app/features/folders/FolderSettingsPage.tsx +++ b/public/app/features/folders/FolderSettingsPage.tsx @@ -1,7 +1,8 @@ import React, { PureComponent } from 'react'; import { hot } from 'react-hot-loader'; import { connect } from 'react-redux'; -import { Input, NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; +import { Input } from '@grafana/ui'; import Page from 'app/core/components/Page/Page'; import appEvents from 'app/core/app_events'; import { getNavModel } from 'app/core/selectors/navModel'; diff --git a/public/app/features/folders/state/navModel.ts b/public/app/features/folders/state/navModel.ts index 480f40dad5f..55fc2318bfc 100644 --- a/public/app/features/folders/state/navModel.ts +++ b/public/app/features/folders/state/navModel.ts @@ -1,5 +1,5 @@ import { FolderDTO } from 'app/types'; -import { NavModelItem, NavModel } from '@grafana/ui'; +import { NavModelItem, NavModel } from '@grafana/data'; export function buildNavModel(folder: FolderDTO): NavModelItem { return { diff --git a/public/app/features/org/OrgDetailsPage.test.tsx b/public/app/features/org/OrgDetailsPage.test.tsx index 71c059593c7..fc11454bb0b 100644 --- a/public/app/features/org/OrgDetailsPage.test.tsx +++ b/public/app/features/org/OrgDetailsPage.test.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { OrgDetailsPage, Props } from './OrgDetailsPage'; import { Organization } from '../../types'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; const setup = (propOverrides?: object) => { const props: Props = { diff --git a/public/app/features/org/OrgDetailsPage.tsx b/public/app/features/org/OrgDetailsPage.tsx index 853af49977a..cc995501f98 100644 --- a/public/app/features/org/OrgDetailsPage.tsx +++ b/public/app/features/org/OrgDetailsPage.tsx @@ -7,7 +7,7 @@ import SharedPreferences from 'app/core/components/SharedPreferences/SharedPrefe import { loadOrganization, setOrganizationName, updateOrganization } from './state/actions'; import { Organization, StoreState } from 'app/types'; import { getNavModel } from 'app/core/selectors/navModel'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; export interface Props { navModel: NavModel; diff --git a/public/app/features/plugins/AppRootPage.tsx b/public/app/features/plugins/AppRootPage.tsx index ec6c6c00e17..0dfb5f13ace 100644 --- a/public/app/features/plugins/AppRootPage.tsx +++ b/public/app/features/plugins/AppRootPage.tsx @@ -10,7 +10,8 @@ import { UrlQueryMap } from '@grafana/runtime'; import Page from 'app/core/components/Page/Page'; import { getPluginSettings } from './PluginSettingsCache'; import { importAppPlugin } from './plugin_loader'; -import { AppPlugin, NavModel, AppPluginMeta, PluginType } from '@grafana/ui'; +import { AppPlugin, AppPluginMeta, PluginType } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; import { getLoadingNav } from './PluginPage'; import { getNotFoundNav, getWarningNav } from 'app/core/nav_model_srv'; import { appEvents } from 'app/core/core'; diff --git a/public/app/features/plugins/PluginListPage.test.tsx b/public/app/features/plugins/PluginListPage.test.tsx index 10617d4c0bd..bc1fc955af9 100644 --- a/public/app/features/plugins/PluginListPage.test.tsx +++ b/public/app/features/plugins/PluginListPage.test.tsx @@ -2,7 +2,8 @@ import React from 'react'; import { shallow } from 'enzyme'; import { PluginListPage, Props } from './PluginListPage'; import { LayoutModes } from '../../core/components/LayoutSelector/LayoutSelector'; -import { PluginMeta, NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; +import { PluginMeta } from '@grafana/ui'; const setup = (propOverrides?: object) => { const props: Props = { diff --git a/public/app/features/plugins/PluginListPage.tsx b/public/app/features/plugins/PluginListPage.tsx index 03d383fdec0..b1642e4d650 100644 --- a/public/app/features/plugins/PluginListPage.tsx +++ b/public/app/features/plugins/PluginListPage.tsx @@ -8,7 +8,8 @@ import { loadPlugins, setPluginsLayoutMode, setPluginsSearchQuery } from './stat import { getNavModel } from 'app/core/selectors/navModel'; import { getLayoutMode, getPlugins, getPluginsSearchQuery } from './state/selectors'; import { LayoutMode } from 'app/core/components/LayoutSelector/LayoutSelector'; -import { PluginMeta, NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; +import { PluginMeta } from '@grafana/ui'; export interface Props { navModel: NavModel; diff --git a/public/app/features/plugins/PluginPage.tsx b/public/app/features/plugins/PluginPage.tsx index 834b6a542d6..e7a751d7882 100644 --- a/public/app/features/plugins/PluginPage.tsx +++ b/public/app/features/plugins/PluginPage.tsx @@ -8,8 +8,6 @@ import find from 'lodash/find'; import { UrlQueryMap } from '@grafana/runtime'; import { StoreState } from 'app/types'; import { - NavModel, - NavModelItem, PluginType, GrafanaPlugin, PluginInclude, @@ -20,6 +18,7 @@ import { AppPlugin, PluginIncludeType, } from '@grafana/ui'; +import { NavModel, NavModelItem } from '@grafana/data'; import Page from 'app/core/components/Page/Page'; import { getPluginSettings } from './PluginSettingsCache'; diff --git a/public/app/features/plugins/plugin_loader.ts b/public/app/features/plugins/plugin_loader.ts index 7f669f27865..38bcde862cb 100644 --- a/public/app/features/plugins/plugin_loader.ts +++ b/public/app/features/plugins/plugin_loader.ts @@ -28,8 +28,9 @@ import { BackendSrv, getBackendSrv } from 'app/core/services/backend_srv'; import impressionSrv from 'app/core/services/impression_srv'; import builtInPlugins from './built_in_plugins'; import * as d3 from 'd3'; +import * as grafanaData from '@grafana/data'; import * as grafanaUI from '@grafana/ui'; -import * as grafanaRT from '@grafana/runtime'; +import * as grafanaRuntime from '@grafana/runtime'; // rxjs import { Observable, Subject } from 'rxjs'; @@ -68,8 +69,9 @@ function exposeToPlugin(name: string, component: any) { }); } +exposeToPlugin('@grafana/data', grafanaData); exposeToPlugin('@grafana/ui', grafanaUI); -exposeToPlugin('@grafana/runtime', grafanaRT); +exposeToPlugin('@grafana/runtime', grafanaRuntime); exposeToPlugin('lodash', _); exposeToPlugin('moment', moment); exposeToPlugin('jquery', jquery); diff --git a/public/app/features/teams/TeamList.test.tsx b/public/app/features/teams/TeamList.test.tsx index 38373c0eab3..803b3b3f6dd 100644 --- a/public/app/features/teams/TeamList.test.tsx +++ b/public/app/features/teams/TeamList.test.tsx @@ -4,7 +4,7 @@ import { Props, TeamList } from './TeamList'; import { Team, OrgRole } from '../../types'; import { getMockTeam, getMultipleMockTeams } from './__mocks__/teamMocks'; import { User } from 'app/core/services/context_srv'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; const setup = (propOverrides?: object) => { const props: Props = { diff --git a/public/app/features/teams/TeamList.tsx b/public/app/features/teams/TeamList.tsx index c9c0c41f4d9..0f213c9735d 100644 --- a/public/app/features/teams/TeamList.tsx +++ b/public/app/features/teams/TeamList.tsx @@ -2,7 +2,8 @@ import React, { PureComponent } from 'react'; import { connect } from 'react-redux'; import { hot } from 'react-hot-loader'; import Page from 'app/core/components/Page/Page'; -import { DeleteButton, NavModel } from '@grafana/ui'; +import { DeleteButton } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; import EmptyListCTA from 'app/core/components/EmptyListCTA/EmptyListCTA'; import { Team, OrgRole } from 'app/types'; import { loadTeams, deleteTeam, setSearchQuery } from './state/actions'; diff --git a/public/app/features/teams/TeamPages.test.tsx b/public/app/features/teams/TeamPages.test.tsx index 7e5c4994bda..53d3b0834bb 100644 --- a/public/app/features/teams/TeamPages.test.tsx +++ b/public/app/features/teams/TeamPages.test.tsx @@ -4,7 +4,7 @@ import { TeamPages, Props } from './TeamPages'; import { Team, TeamMember, OrgRole } from '../../types'; import { getMockTeam } from './__mocks__/teamMocks'; import { User } from 'app/core/services/context_srv'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; jest.mock('app/core/config', () => ({ buildInfo: { isEnterprise: true }, diff --git a/public/app/features/teams/TeamPages.tsx b/public/app/features/teams/TeamPages.tsx index bca045c0973..fc9499f6a05 100644 --- a/public/app/features/teams/TeamPages.tsx +++ b/public/app/features/teams/TeamPages.tsx @@ -14,7 +14,7 @@ import { getTeamLoadingNav } from './state/navModel'; import { getNavModel } from 'app/core/selectors/navModel'; import { getRouteParamsId, getRouteParamsPage } from '../../core/selectors/location'; import { contextSrv, User } from 'app/core/services/context_srv'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; export interface Props { team: Team; diff --git a/public/app/features/teams/state/navModel.ts b/public/app/features/teams/state/navModel.ts index aacdeb4066b..81671203539 100644 --- a/public/app/features/teams/state/navModel.ts +++ b/public/app/features/teams/state/navModel.ts @@ -1,6 +1,6 @@ import { Team, TeamPermissionLevel } from 'app/types'; import config from 'app/core/config'; -import { NavModelItem, NavModel } from '@grafana/ui'; +import { NavModelItem, NavModel } from '@grafana/data'; export function buildNavModel(team: Team): NavModelItem { const navModel = { diff --git a/public/app/features/templating/datasource_variable.ts b/public/app/features/templating/datasource_variable.ts index 30eb0e89589..922692f70a6 100644 --- a/public/app/features/templating/datasource_variable.ts +++ b/public/app/features/templating/datasource_variable.ts @@ -1,5 +1,5 @@ import { Variable, containsVariable, assignModelProperties, variableTypes } from './variable'; -import { stringToJsRegex } from '@grafana/ui'; +import { stringToJsRegex } from '@grafana/data'; export class DatasourceVariable implements Variable { regex: any; diff --git a/public/app/features/templating/query_variable.ts b/public/app/features/templating/query_variable.ts index 8208345528b..1e412ba4371 100644 --- a/public/app/features/templating/query_variable.ts +++ b/public/app/features/templating/query_variable.ts @@ -1,6 +1,6 @@ import _ from 'lodash'; import { Variable, containsVariable, assignModelProperties, variableTypes } from './variable'; -import { stringToJsRegex } from '@grafana/ui'; +import { stringToJsRegex } from '@grafana/data'; function getNoneOption() { return { text: 'None', value: '', isNone: true }; diff --git a/public/app/features/users/UsersListPage.test.tsx b/public/app/features/users/UsersListPage.test.tsx index a5c82664174..a17b9b086cf 100644 --- a/public/app/features/users/UsersListPage.test.tsx +++ b/public/app/features/users/UsersListPage.test.tsx @@ -4,7 +4,7 @@ import { UsersListPage, Props } from './UsersListPage'; import { Invitee, OrgUser } from 'app/types'; import { getMockUser } from './__mocks__/userMocks'; import appEvents from '../../core/app_events'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; jest.mock('../../core/app_events', () => ({ emit: jest.fn(), diff --git a/public/app/features/users/UsersListPage.tsx b/public/app/features/users/UsersListPage.tsx index 23dd9c9582c..5230b6fb6e8 100644 --- a/public/app/features/users/UsersListPage.tsx +++ b/public/app/features/users/UsersListPage.tsx @@ -11,7 +11,7 @@ import appEvents from 'app/core/app_events'; import { loadUsers, loadInvitees, setUsersSearchQuery, updateUser, removeUser } from './state/actions'; import { getNavModel } from 'app/core/selectors/navModel'; import { getInvitees, getUsers, getUsersSearchQuery } from './state/selectors'; -import { NavModel } from '@grafana/ui'; +import { NavModel } from '@grafana/data'; export interface Props { navModel: NavModel; diff --git a/public/app/plugins/app/example-app/ExampleRootPage.tsx b/public/app/plugins/app/example-app/ExampleRootPage.tsx index 565a9fa37d4..070c61f5189 100644 --- a/public/app/plugins/app/example-app/ExampleRootPage.tsx +++ b/public/app/plugins/app/example-app/ExampleRootPage.tsx @@ -2,7 +2,8 @@ import React, { PureComponent } from 'react'; // Types -import { AppRootProps, NavModelItem } from '@grafana/ui'; +import { NavModelItem } from '@grafana/data'; +import { AppRootProps } from '@grafana/ui'; interface Props extends AppRootProps {} diff --git a/public/app/plugins/panel/table/renderer.ts b/public/app/plugins/panel/table/renderer.ts index b138415eb0e..6a831925900 100644 --- a/public/app/plugins/panel/table/renderer.ts +++ b/public/app/plugins/panel/table/renderer.ts @@ -1,5 +1,6 @@ import _ from 'lodash'; -import { getValueFormat, getColorFromHexRgbOrName, GrafanaThemeType, stringToJsRegex } from '@grafana/ui'; +import { getValueFormat, getColorFromHexRgbOrName, GrafanaThemeType } from '@grafana/ui'; +import { stringToJsRegex } from '@grafana/data'; import { ColumnStyle } from '@grafana/ui/src/components/Table/TableCellBuilder'; import { dateTime } from '@grafana/ui/src/utils/moment_wrapper'; diff --git a/public/app/types/store.ts b/public/app/types/store.ts index 66a3db1a3cb..26e2749cb5a 100644 --- a/public/app/types/store.ts +++ b/public/app/types/store.ts @@ -12,7 +12,7 @@ import { UsersState, UserState } from './user'; import { OrganizationState } from './organization'; import { AppNotificationsState } from './appNotifications'; import { PluginsState } from './plugins'; -import { NavIndex } from '@grafana/ui'; +import { NavIndex } from '@grafana/data'; import { ApplicationState } from './application'; export interface StoreState { diff --git a/public/test/mocks/common.ts b/public/test/mocks/common.ts index 023c653de26..931e56d577b 100644 --- a/public/test/mocks/common.ts +++ b/public/test/mocks/common.ts @@ -1,4 +1,4 @@ -import { NavModel, NavModelItem } from '@grafana/ui'; +import { NavModel, NavModelItem } from '@grafana/data'; export const backendSrv = { get: jest.fn(), diff --git a/scripts/grunt/default_task.js b/scripts/grunt/default_task.js index f910941d630..8338c6d91e3 100644 --- a/scripts/grunt/default_task.js +++ b/scripts/grunt/default_task.js @@ -34,8 +34,8 @@ module.exports = function(grunt) { grunt.registerTask('no-only-tests', function() { var files = grunt.file.expand( 'public/**/*@(_specs|.test).@(ts|js|tsx|jsx)', - 'packages/grafana-ui/**/*@(_specs|.test).@(ts|js|tsx|jsx)', - 'packages/grafana-runtime/**/*@(_specs|.test).@(ts|js|tsx|jsx)' + 'packages/grafana-data/**/*@(_specs|.test).@(ts|js|tsx|jsx)', + 'packages/**/*@(_specs|.test).@(ts|js|tsx|jsx)' ); grepFiles(files, '.only(', 'found only statement in test: '); });