diff --git a/.betterer.results b/.betterer.results
index ddfdb3e0563..1406670859c 100644
--- a/.betterer.results
+++ b/.betterer.results
@@ -2704,12 +2704,6 @@ exports[`better eslint`] = {
"public/app/features/canvas/elements/notFound.tsx:5381": [
[0, 0, 0, "No untranslated strings. Wrap text with ", "0"]
],
- "public/app/features/canvas/index.ts:5381": [
- [0, 0, 0, "Do not use export all (\`export * from ...\`)", "0"],
- [0, 0, 0, "Do not use export all (\`export * from ...\`)", "1"],
- [0, 0, 0, "Do not re-export imported variable (\`./frame\`)", "2"],
- [0, 0, 0, "Do not use export all (\`export * from ...\`)", "3"]
- ],
"public/app/features/canvas/runtime/ables.tsx:5381": [
[0, 0, 0, "No untranslated strings. Wrap text with ", "0"],
[0, 0, 0, "No untranslated strings. Wrap text with ", "1"]
@@ -2717,15 +2711,6 @@ exports[`better eslint`] = {
"public/app/features/canvas/runtime/frame.tsx:5381": [
[0, 0, 0, "No untranslated strings. Wrap text with ", "0"]
],
- "public/app/features/canvas/types.ts:5381": [
- [0, 0, 0, "Do not re-export imported variable (\`Placement\`)", "0"],
- [0, 0, 0, "Do not re-export imported variable (\`Constraint\`)", "1"],
- [0, 0, 0, "Do not re-export imported variable (\`HorizontalConstraint\`)", "2"],
- [0, 0, 0, "Do not re-export imported variable (\`VerticalConstraint\`)", "3"],
- [0, 0, 0, "Do not re-export imported variable (\`BackgroundImageSize\`)", "4"],
- [0, 0, 0, "Do not re-export imported variable (\`LineConfig\`)", "5"],
- [0, 0, 0, "Do not re-export imported variable (\`BackgroundConfig\`)", "6"]
- ],
"public/app/features/commandPalette/ResultItem.tsx:5381": [
[0, 0, 0, "No untranslated strings. Wrap text with ", "0"]
],
diff --git a/public/app/features/canvas/element.ts b/public/app/features/canvas/element.ts
index 0f9ee6abba9..2ebef7266ec 100644
--- a/public/app/features/canvas/element.ts
+++ b/public/app/features/canvas/element.ts
@@ -4,11 +4,12 @@ import { RegistryItem } from '@grafana/data';
import { PanelOptionsSupplier } from '@grafana/data/src/panel/PanelPlugin';
import { ColorDimensionConfig, ScaleDimensionConfig } from '@grafana/schema';
import { config } from 'app/core/config';
+import { BackgroundConfig, Constraint, LineConfig, Placement } from 'app/plugins/panel/canvas/panelcfg.gen';
import { LineStyleConfig } from '../../plugins/panel/canvas/editor/LineStyleEditor';
import { DimensionContext } from '../dimensions';
-import { BackgroundConfig, Constraint, LineConfig, Placement, StandardEditorConfig } from './types';
+import { StandardEditorConfig } from './types';
/**
* This gets saved in panel json
diff --git a/public/app/features/canvas/elements/icon.tsx b/public/app/features/canvas/elements/icon.tsx
index 6c70d1e2131..0bf7642206f 100644
--- a/public/app/features/canvas/elements/icon.tsx
+++ b/public/app/features/canvas/elements/icon.tsx
@@ -8,10 +8,10 @@ import { SanitizedSVG } from 'app/core/components/SVG/SanitizedSVG';
import { getPublicOrAbsoluteUrl } from 'app/features/dimensions';
import { DimensionContext } from 'app/features/dimensions/context';
import { ColorDimensionEditor, ResourceDimensionEditor } from 'app/features/dimensions/editors';
+import { LineConfig } from 'app/plugins/panel/canvas/panelcfg.gen';
import { getDataLinks } from 'app/plugins/panel/canvas/utils';
import { CanvasElementItem, CanvasElementOptions, CanvasElementProps, defaultBgColor } from '../element';
-import { LineConfig } from '../types';
export interface IconConfig {
path?: ResourceDimensionConfig;
diff --git a/public/app/features/canvas/index.ts b/public/app/features/canvas/index.ts
deleted file mode 100644
index fce59d9b00e..00000000000
--- a/public/app/features/canvas/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export * from './types';
-export * from './element';
-export { CanvasFrameOptions } from './frame';
-export * from './registry';
diff --git a/public/app/features/canvas/runtime/ables.tsx b/public/app/features/canvas/runtime/ables.tsx
index 6130f0eadb9..60689852b33 100644
--- a/public/app/features/canvas/runtime/ables.tsx
+++ b/public/app/features/canvas/runtime/ables.tsx
@@ -1,6 +1,6 @@
import { MoveableManagerInterface, Renderer } from 'moveable';
-import { HorizontalConstraint, VerticalConstraint } from '../types';
+import { VerticalConstraint, HorizontalConstraint } from 'app/plugins/panel/canvas/panelcfg.gen';
import { Scene } from './scene';
diff --git a/public/app/features/canvas/runtime/element.tsx b/public/app/features/canvas/runtime/element.tsx
index 3cb68e29af7..30dfcf01f01 100644
--- a/public/app/features/canvas/runtime/element.tsx
+++ b/public/app/features/canvas/runtime/element.tsx
@@ -2,17 +2,19 @@ import React, { CSSProperties } from 'react';
import { OnDrag, OnResize, OnRotate } from 'react-moveable/declaration/types';
import { LayerElement } from 'app/core/components/Layers/types';
-import {
- BackgroundImageSize,
- CanvasElementItem,
- CanvasElementOptions,
- canvasElementRegistry,
-} from 'app/features/canvas';
import { notFoundItem } from 'app/features/canvas/elements/notFound';
import { DimensionContext } from 'app/features/dimensions';
+import {
+ BackgroundImageSize,
+ Constraint,
+ HorizontalConstraint,
+ Placement,
+ VerticalConstraint,
+} from 'app/plugins/panel/canvas/panelcfg.gen';
import { getConnectionsByTarget, isConnectionTarget } from 'app/plugins/panel/canvas/utils';
-import { Constraint, HorizontalConstraint, Placement, VerticalConstraint } from '../types';
+import { CanvasElementItem, CanvasElementOptions } from '../element';
+import { canvasElementRegistry } from '../registry';
import { FrameState } from './frame';
import { RootElement } from './root';
@@ -604,7 +606,6 @@ export class ElementState implements LayerElement {
render() {
const { item, div } = this;
const scene = this.getScene();
- // TODO: Rethink selected state handling
const isSelected = div && scene && scene.selecto && scene.selecto.getSelectedTargets().includes(div);
return (
diff --git a/public/app/features/canvas/runtime/frame.tsx b/public/app/features/canvas/runtime/frame.tsx
index 786234f644b..99cdb1abe80 100644
--- a/public/app/features/canvas/runtime/frame.tsx
+++ b/public/app/features/canvas/runtime/frame.tsx
@@ -1,14 +1,15 @@
import { cloneDeep } from 'lodash';
import React from 'react';
-import { canvasElementRegistry, CanvasFrameOptions } from 'app/features/canvas';
import { notFoundItem } from 'app/features/canvas/elements/notFound';
import { DimensionContext } from 'app/features/dimensions';
+import { HorizontalConstraint, Placement, VerticalConstraint } from 'app/plugins/panel/canvas/panelcfg.gen';
import { LayerActionID } from 'app/plugins/panel/canvas/types';
import { updateConnectionsForSource } from '../../../plugins/panel/canvas/utils';
import { CanvasElementItem } from '../element';
-import { HorizontalConstraint, Placement, VerticalConstraint } from '../types';
+import { CanvasFrameOptions } from '../frame';
+import { canvasElementRegistry } from '../registry';
import { ElementState } from './element';
import { RootElement } from './root';
@@ -26,7 +27,6 @@ export const frameItemDummy: CanvasElementItem = {
config: {},
}),
- // eslint-disable-next-line react/display-name
display: () => {
return
FRAME!
;
},
diff --git a/public/app/features/canvas/runtime/root.tsx b/public/app/features/canvas/runtime/root.tsx
index f1ec9d802d1..33e3551b8c8 100644
--- a/public/app/features/canvas/runtime/root.tsx
+++ b/public/app/features/canvas/runtime/root.tsx
@@ -1,6 +1,6 @@
import React from 'react';
-import { CanvasFrameOptions } from 'app/features/canvas';
+import { CanvasFrameOptions } from '../frame';
import { FrameState } from './frame';
import { Scene } from './scene';
diff --git a/public/app/features/canvas/runtime/scene.tsx b/public/app/features/canvas/runtime/scene.tsx
index 1af97123aca..77ab717f611 100644
--- a/public/app/features/canvas/runtime/scene.tsx
+++ b/public/app/features/canvas/runtime/scene.tsx
@@ -17,7 +17,6 @@ import {
} from '@grafana/schema';
import { Portal } from '@grafana/ui';
import { config } from 'app/core/config';
-import { CanvasFrameOptions, DEFAULT_CANVAS_ELEMENT_CONFIG } from 'app/features/canvas';
import { DimensionContext } from 'app/features/dimensions';
import {
getColorDimensionFromData,
@@ -34,12 +33,14 @@ import {
CONNECTION_VERTEX_ADD_ID,
CONNECTION_VERTEX_ID,
} from 'app/plugins/panel/canvas/components/connections/Connections';
+import { HorizontalConstraint, Placement, VerticalConstraint } from 'app/plugins/panel/canvas/panelcfg.gen';
import { AnchorPoint, CanvasTooltipPayload, LayerActionID } from 'app/plugins/panel/canvas/types';
import { getParent, getTransformInstance } from 'app/plugins/panel/canvas/utils';
import appEvents from '../../../core/app_events';
import { CanvasPanel } from '../../../plugins/panel/canvas/CanvasPanel';
-import { HorizontalConstraint, Placement, VerticalConstraint } from '../types';
+import { CanvasFrameOptions } from '../frame';
+import { DEFAULT_CANVAS_ELEMENT_CONFIG } from '../registry';
import { SceneTransformWrapper } from './SceneTransformWrapper';
import { constraintViewable, dimensionViewable, settingsViewable } from './ables';
diff --git a/public/app/features/canvas/types.ts b/public/app/features/canvas/types.ts
index ff378e6d35e..07a144a4798 100644
--- a/public/app/features/canvas/types.ts
+++ b/public/app/features/canvas/types.ts
@@ -1,14 +1,6 @@
import { LinkModel } from '@grafana/data/src';
import { ColorDimensionConfig, ResourceDimensionConfig, TextDimensionConfig } from '@grafana/schema';
-import {
- BackgroundImageSize,
- Constraint,
- HorizontalConstraint,
- Placement,
- VerticalConstraint,
- LineConfig,
- BackgroundConfig,
-} from 'app/plugins/panel/canvas/panelcfg.gen';
+import { BackgroundImageSize } from 'app/plugins/panel/canvas/panelcfg.gen';
export enum QuickPlacement {
Top = 'top',
@@ -69,13 +61,3 @@ export interface StandardEditorConfig {
background?: boolean;
border?: boolean;
}
-
-export {
- Placement,
- Constraint,
- HorizontalConstraint,
- VerticalConstraint,
- BackgroundImageSize,
- LineConfig,
- BackgroundConfig,
-};
diff --git a/public/app/features/dimensions/editors/BackgroundSizeEditor.tsx b/public/app/features/dimensions/editors/BackgroundSizeEditor.tsx
index e5094ec3ed9..8d51bb2bdf5 100644
--- a/public/app/features/dimensions/editors/BackgroundSizeEditor.tsx
+++ b/public/app/features/dimensions/editors/BackgroundSizeEditor.tsx
@@ -2,7 +2,7 @@ import React, { useCallback } from 'react';
import { SelectableValue, StandardEditorProps } from '@grafana/data';
import { InlineField, InlineFieldRow, RadioButtonGroup } from '@grafana/ui/src';
-import { BackgroundImageSize } from 'app/features/canvas';
+import { BackgroundImageSize } from 'app/plugins/panel/canvas/panelcfg.gen';
const options: Array> = [
{ value: BackgroundImageSize.Original, label: 'Original' },
diff --git a/public/app/plugins/panel/canvas/CanvasPanel.tsx b/public/app/plugins/panel/canvas/CanvasPanel.tsx
index c5f534a0823..0a30af8d86c 100644
--- a/public/app/plugins/panel/canvas/CanvasPanel.tsx
+++ b/public/app/plugins/panel/canvas/CanvasPanel.tsx
@@ -4,7 +4,7 @@ import { ReplaySubject, Subscription } from 'rxjs';
import { PanelProps } from '@grafana/data';
import { locationService } from '@grafana/runtime/src';
import { PanelContext, PanelContextRoot } from '@grafana/ui';
-import { CanvasFrameOptions } from 'app/features/canvas';
+import { CanvasFrameOptions } from 'app/features/canvas/frame';
import { ElementState } from 'app/features/canvas/runtime/element';
import { Scene } from 'app/features/canvas/runtime/scene';
import { getDashboardSrv } from 'app/features/dashboard/services/DashboardSrv';
diff --git a/public/app/plugins/panel/canvas/components/connections/ConnectionAnchors.tsx b/public/app/plugins/panel/canvas/components/connections/ConnectionAnchors.tsx
index ed9903b30c0..f8c0535e893 100644
--- a/public/app/plugins/panel/canvas/components/connections/ConnectionAnchors.tsx
+++ b/public/app/plugins/panel/canvas/components/connections/ConnectionAnchors.tsx
@@ -3,7 +3,7 @@ import React, { useRef } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { useStyles2 } from '@grafana/ui';
-import { ConnectionCoordinates } from 'app/features/canvas';
+import { ConnectionCoordinates } from 'app/features/canvas/element';
type Props = {
setRef: (anchorElement: HTMLDivElement) => void;
diff --git a/public/app/plugins/panel/canvas/components/connections/ConnectionSVG.tsx b/public/app/plugins/panel/canvas/components/connections/ConnectionSVG.tsx
index 0850b62cd4f..e1c2dc37a00 100644
--- a/public/app/plugins/panel/canvas/components/connections/ConnectionSVG.tsx
+++ b/public/app/plugins/panel/canvas/components/connections/ConnectionSVG.tsx
@@ -4,7 +4,7 @@ import React, { useEffect, useMemo, useRef, useState } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { useStyles2 } from '@grafana/ui';
import { config } from 'app/core/config';
-import { ConnectionDirection } from 'app/features/canvas';
+import { ConnectionDirection } from 'app/features/canvas/element';
import { Scene } from 'app/features/canvas/runtime/scene';
import { ConnectionCoordinates } from '../../panelcfg.gen';
diff --git a/public/app/plugins/panel/canvas/components/connections/Connections.tsx b/public/app/plugins/panel/canvas/components/connections/Connections.tsx
index 2c066bcea63..26460a819c6 100644
--- a/public/app/plugins/panel/canvas/components/connections/Connections.tsx
+++ b/public/app/plugins/panel/canvas/components/connections/Connections.tsx
@@ -2,7 +2,7 @@ import React from 'react';
import { BehaviorSubject } from 'rxjs';
import { config } from '@grafana/runtime';
-import { CanvasConnection, ConnectionCoordinates, ConnectionPath } from 'app/features/canvas';
+import { CanvasConnection, ConnectionCoordinates, ConnectionPath } from 'app/features/canvas/element';
import { ElementState } from 'app/features/canvas/runtime/element';
import { Scene } from 'app/features/canvas/runtime/scene';
diff --git a/public/app/plugins/panel/canvas/editor/connectionEditor.tsx b/public/app/plugins/panel/canvas/editor/connectionEditor.tsx
index 8640bfe41ca..96e8a21b331 100644
--- a/public/app/plugins/panel/canvas/editor/connectionEditor.tsx
+++ b/public/app/plugins/panel/canvas/editor/connectionEditor.tsx
@@ -1,10 +1,10 @@
import { get as lodashGet } from 'lodash';
import { NestedPanelOptions, NestedValueAccess } from '@grafana/data/src/utils/OptionsUIBuilders';
-import { CanvasConnection } from 'app/features/canvas';
import { Scene } from 'app/features/canvas/runtime/scene';
import { setOptionImmutably } from 'app/features/dashboard/components/PanelEditor/utils';
+import { CanvasConnection } from '../panelcfg.gen';
import { ConnectionState } from '../types';
import { optionBuilder } from './options';
diff --git a/public/app/plugins/panel/canvas/editor/element/ConstraintSelectionBox.tsx b/public/app/plugins/panel/canvas/editor/element/ConstraintSelectionBox.tsx
index 50a895cbae1..7a534bf7d53 100644
--- a/public/app/plugins/panel/canvas/editor/element/ConstraintSelectionBox.tsx
+++ b/public/app/plugins/panel/canvas/editor/element/ConstraintSelectionBox.tsx
@@ -3,7 +3,8 @@ import React from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { useStyles2 } from '@grafana/ui';
-import { Constraint, HorizontalConstraint, VerticalConstraint } from 'app/features/canvas';
+
+import { VerticalConstraint, HorizontalConstraint, Constraint } from '../../panelcfg.gen';
interface Props {
onVerticalConstraintChange: (v: VerticalConstraint) => void;
diff --git a/public/app/plugins/panel/canvas/editor/element/PlacementEditor.tsx b/public/app/plugins/panel/canvas/editor/element/PlacementEditor.tsx
index e9611fbab5d..568eeb41fcf 100644
--- a/public/app/plugins/panel/canvas/editor/element/PlacementEditor.tsx
+++ b/public/app/plugins/panel/canvas/editor/element/PlacementEditor.tsx
@@ -5,9 +5,8 @@ import { Subject } from 'rxjs';
import { SelectableValue, StandardEditorProps } from '@grafana/data';
import { Field, Icon, InlineField, InlineFieldRow, Select, Stack } from '@grafana/ui';
import { NumberInput } from 'app/core/components/OptionsUI/NumberInput';
-import { HorizontalConstraint, Placement, VerticalConstraint } from 'app/features/canvas';
-import { Options } from '../../panelcfg.gen';
+import { HorizontalConstraint, Options, Placement, VerticalConstraint } from '../../panelcfg.gen';
import { ConstraintSelectionBox } from './ConstraintSelectionBox';
import { QuickPositioning } from './QuickPositioning';
diff --git a/public/app/plugins/panel/canvas/editor/element/QuickPositioning.tsx b/public/app/plugins/panel/canvas/editor/element/QuickPositioning.tsx
index b5772abcc41..52a14a1ef26 100644
--- a/public/app/plugins/panel/canvas/editor/element/QuickPositioning.tsx
+++ b/public/app/plugins/panel/canvas/editor/element/QuickPositioning.tsx
@@ -3,8 +3,10 @@ import React from 'react';
import { GrafanaTheme2 } from '@grafana/data/src';
import { IconButton, useStyles2 } from '@grafana/ui/src';
-import { HorizontalConstraint, Placement, QuickPlacement, VerticalConstraint } from 'app/features/canvas';
import { ElementState } from 'app/features/canvas/runtime/element';
+import { QuickPlacement } from 'app/features/canvas/types';
+
+import { HorizontalConstraint, VerticalConstraint, Placement } from '../../panelcfg.gen';
import { CanvasEditorOptions } from './elementEditor';
diff --git a/public/app/plugins/panel/canvas/editor/element/elementEditor.tsx b/public/app/plugins/panel/canvas/editor/element/elementEditor.tsx
index 407a98a0516..09d602c4639 100644
--- a/public/app/plugins/panel/canvas/editor/element/elementEditor.tsx
+++ b/public/app/plugins/panel/canvas/editor/element/elementEditor.tsx
@@ -1,12 +1,12 @@
import { get as lodashGet } from 'lodash';
import { NestedPanelOptions, NestedValueAccess } from '@grafana/data/src/utils/OptionsUIBuilders';
+import { CanvasElementOptions } from 'app/features/canvas/element';
import {
- CanvasElementOptions,
- canvasElementRegistry,
DEFAULT_CANVAS_ELEMENT_CONFIG,
+ canvasElementRegistry,
defaultElementItems,
-} from 'app/features/canvas';
+} from 'app/features/canvas/registry';
import { ElementState } from 'app/features/canvas/runtime/element';
import { FrameState } from 'app/features/canvas/runtime/frame';
import { Scene } from 'app/features/canvas/runtime/scene';
diff --git a/public/app/plugins/panel/canvas/editor/options.ts b/public/app/plugins/panel/canvas/editor/options.ts
index 29c1997e905..0baa970f0e6 100644
--- a/public/app/plugins/panel/canvas/editor/options.ts
+++ b/public/app/plugins/panel/canvas/editor/options.ts
@@ -2,11 +2,12 @@ import { capitalize } from 'lodash';
import { FieldType } from '@grafana/data';
import { PanelOptionsSupplier } from '@grafana/data/src/panel/PanelPlugin';
-import { CanvasConnection, CanvasElementOptions, ConnectionDirection } from 'app/features/canvas';
+import { ConnectionDirection } from 'app/features/canvas/element';
import { SVGElements } from 'app/features/canvas/runtime/element';
import { ColorDimensionEditor, ResourceDimensionEditor, ScaleDimensionEditor } from 'app/features/dimensions/editors';
import { BackgroundSizeEditor } from 'app/features/dimensions/editors/BackgroundSizeEditor';
+import { CanvasConnection, CanvasElementOptions } from '../panelcfg.gen';
import { LineStyle } from '../types';
import { LineStyleEditor } from './LineStyleEditor';
diff --git a/public/app/plugins/panel/canvas/types.ts b/public/app/plugins/panel/canvas/types.ts
index 5acb3e5b189..3c30e3a35c8 100644
--- a/public/app/plugins/panel/canvas/types.ts
+++ b/public/app/plugins/panel/canvas/types.ts
@@ -1,7 +1,6 @@
-import { CanvasConnection } from '../../../features/canvas';
import { ElementState } from '../../../features/canvas/runtime/element';
-import { ConnectionCoordinates } from './panelcfg.gen';
+import { CanvasConnection, ConnectionCoordinates } from './panelcfg.gen';
export enum LayerActionID {
Delete = 'delete',
diff --git a/public/app/plugins/panel/canvas/utils.ts b/public/app/plugins/panel/canvas/utils.ts
index dfabad08313..964f3ce2011 100644
--- a/public/app/plugins/panel/canvas/utils.ts
+++ b/public/app/plugins/panel/canvas/utils.ts
@@ -4,15 +4,13 @@ import { AppEvents, Field, getFieldDisplayName, LinkModel, PluginState, Selectab
import appEvents from 'app/core/app_events';
import { hasAlphaPanels, config } from 'app/core/config';
import {
- defaultElementItems,
- advancedElementItems,
- CanvasElementItem,
- canvasElementRegistry,
- CanvasElementOptions,
CanvasConnection,
+ CanvasElementItem,
+ CanvasElementOptions,
ConnectionDirection,
-} from 'app/features/canvas';
+} from 'app/features/canvas/element';
import { notFoundItem } from 'app/features/canvas/elements/notFound';
+import { advancedElementItems, canvasElementRegistry, defaultElementItems } from 'app/features/canvas/registry';
import { ElementState } from 'app/features/canvas/runtime/element';
import { FrameState } from 'app/features/canvas/runtime/frame';
import { Scene, SelectionParams } from 'app/features/canvas/runtime/scene';