diff --git a/package.json b/package.json index 5e5c5ecdf79..5a46e33cfac 100644 --- a/package.json +++ b/package.json @@ -246,7 +246,7 @@ "@grafana/o11y-ds-frontend": "workspace:*", "@grafana/prometheus": "workspace:*", "@grafana/runtime": "workspace:*", - "@grafana/scenes": "2.6.6", + "@grafana/scenes": "^2.6.5", "@grafana/schema": "workspace:*", "@grafana/sql": "workspace:*", "@grafana/ui": "workspace:*", diff --git a/public/app/features/dashboard-scene/serialization/__snapshots__/transformSceneToSaveModel.test.ts.snap b/public/app/features/dashboard-scene/serialization/__snapshots__/transformSceneToSaveModel.test.ts.snap index 60da71a31c6..2dcb29ae4db 100644 --- a/public/app/features/dashboard-scene/serialization/__snapshots__/transformSceneToSaveModel.test.ts.snap +++ b/public/app/features/dashboard-scene/serialization/__snapshots__/transformSceneToSaveModel.test.ts.snap @@ -307,7 +307,7 @@ exports[`transformSceneToSaveModel Given a simple scene with custom settings Sho "description": "My custom description", "editable": false, "fiscalYearStartMonth": 1, - "graphTooltip": 0, + "graphTooltip": 1, "id": 1351, "links": [ { @@ -621,7 +621,7 @@ exports[`transformSceneToSaveModel Given a simple scene with variables Should tr }, "editable": true, "fiscalYearStartMonth": 1, - "graphTooltip": 0, + "graphTooltip": 1, "id": 1351, "links": [], "panels": [ diff --git a/public/app/features/dashboard-scene/serialization/transformSaveModelToScene.test.ts b/public/app/features/dashboard-scene/serialization/transformSaveModelToScene.test.ts index e0d1a1e6c4f..8e288c8b429 100644 --- a/public/app/features/dashboard-scene/serialization/transformSaveModelToScene.test.ts +++ b/public/app/features/dashboard-scene/serialization/transformSaveModelToScene.test.ts @@ -143,9 +143,9 @@ describe('transformSaveModelToScene', () => { const scene = createDashboardSceneFromDashboardModel(oldModel); - expect(scene.state.$behaviors).toHaveLength(4); - expect(scene.state.$behaviors![1]).toBeInstanceOf(behaviors.CursorSync); - expect((scene.state.$behaviors![1] as behaviors.CursorSync).state.sync).toEqual(DashboardCursorSync.Crosshair); + expect(scene.state.$behaviors).toHaveLength(5); + expect(scene.state.$behaviors![0]).toBeInstanceOf(behaviors.CursorSync); + expect((scene.state.$behaviors![0] as behaviors.CursorSync).state.sync).toEqual(DashboardCursorSync.Crosshair); }); it('should initialize the Dashboard Scene with empty template variables', () => { diff --git a/public/app/features/dashboard-scene/serialization/transformSaveModelToScene.ts b/public/app/features/dashboard-scene/serialization/transformSaveModelToScene.ts index 1abe51664a8..b1dd16f8499 100644 --- a/public/app/features/dashboard-scene/serialization/transformSaveModelToScene.ts +++ b/public/app/features/dashboard-scene/serialization/transformSaveModelToScene.ts @@ -266,10 +266,11 @@ export function createDashboardSceneFromDashboardModel(oldModel: DashboardModel) }), $variables: variables, $behaviors: [ - registerDashboardMacro, new behaviors.CursorSync({ sync: oldModel.graphTooltip, }), + new behaviors.SceneQueryController(), + registerDashboardMacro, registerDashboardSceneTracking(oldModel), registerPanelInteractionsReporter, ], @@ -287,6 +288,7 @@ export function createDashboardSceneFromDashboardModel(oldModel: DashboardModel) new SceneRefreshPicker({ refresh: oldModel.refresh, intervals: oldModel.timepicker.refresh_intervals, + withText: true, }), ], linkControls: new DashboardLinksControls({}), diff --git a/public/app/features/dashboard-scene/serialization/transformSceneToSaveModel.ts b/public/app/features/dashboard-scene/serialization/transformSceneToSaveModel.ts index ee8ee8c3654..1b9e94cd8a3 100644 --- a/public/app/features/dashboard-scene/serialization/transformSceneToSaveModel.ts +++ b/public/app/features/dashboard-scene/serialization/transformSceneToSaveModel.ts @@ -114,8 +114,12 @@ export function transformSceneToSaveModel(scene: DashboardScene, isSnapshot = fa } } - if (state.$behaviors && state.$behaviors[0] instanceof behaviors.CursorSync) { - graphTooltip = state.$behaviors[0].state.sync; + if (state.$behaviors) { + for (const behavior of state.$behaviors!) { + if (behavior instanceof behaviors.CursorSync) { + graphTooltip = behavior.state.sync; + } + } } const timePickerWithoutDefaults = removeDefaults( diff --git a/yarn.lock b/yarn.lock index d3316a9625a..d42266b7a73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4011,9 +4011,9 @@ __metadata: languageName: unknown linkType: soft -"@grafana/scenes@npm:2.6.6": - version: 2.6.6 - resolution: "@grafana/scenes@npm:2.6.6" +"@grafana/scenes@npm:^2.6.5": + version: 2.6.5 + resolution: "@grafana/scenes@npm:2.6.5" dependencies: "@grafana/e2e-selectors": "npm:10.0.2" react-grid-layout: "npm:1.3.4" @@ -4025,7 +4025,7 @@ __metadata: "@grafana/runtime": 10.0.3 "@grafana/schema": 10.0.3 "@grafana/ui": 10.0.3 - checksum: 10/13f5a7d77892ab68af00ee16887bbd101f00e6e2dbb547f697b0f472a296b8030a96f1596c416c24800367f83a469bc10d975d689a0ca8a7cd533efb7ef1bfc3 + checksum: 10/68fe91a5a0c8f80b679126f3525b74b29ce3f9ad92bc558eaaf39693235137348b90796c2b02aa7c1c7929586e60df6024e139993a416ef37d4c875e548dc855 languageName: node linkType: hard @@ -11183,7 +11183,17 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.3, anymatch@npm:^3.1.3, anymatch@npm:~3.1.2": +"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": + version: 3.1.2 + resolution: "anymatch@npm:3.1.2" + dependencies: + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 10/985163db2292fac9e5a1e072bf99f1b5baccf196e4de25a0b0b81865ebddeb3b3eb4480734ef0a2ac8c002845396b91aa89121f5b84f93981a4658164a9ec6e9 + languageName: node + linkType: hard + +"anymatch@npm:^3.1.3": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: @@ -16678,6 +16688,13 @@ __metadata: languageName: node linkType: hard +"fast-fifo@npm:^1.0.0": + version: 1.1.0 + resolution: "fast-fifo@npm:1.1.0" + checksum: 10/895f4c9873a4d5059dfa244aa0dde2b22ee563fd673d85b638869715f92244f9d6469bc0873bcb40554d28c51cbc7590045718462cfda1da503b1c6985815209 + languageName: node + linkType: hard + "fast-fifo@npm:^1.1.0": version: 1.3.2 resolution: "fast-fifo@npm:1.3.2" @@ -16768,7 +16785,7 @@ __metadata: languageName: node linkType: hard -"fastq@npm:^1.13.0, fastq@npm:^1.6.0": +"fastq@npm:^1.13.0": version: 1.17.1 resolution: "fastq@npm:1.17.1" dependencies: @@ -16777,6 +16794,15 @@ __metadata: languageName: node linkType: hard +"fastq@npm:^1.6.0": + version: 1.13.0 + resolution: "fastq@npm:1.13.0" + dependencies: + reusify: "npm:^1.0.4" + checksum: 10/0902cb9b81accf34e5542612c8a1df6c6ea47674f85bcc9cdc38795a28b53e4a096f751cfcf4fb25d2ea42fee5447499ba6cf5af5d0209297e1d1fd4dd551bb6 + languageName: node + linkType: hard + "fault@npm:^1.0.0": version: 1.0.4 resolution: "fault@npm:1.0.4" @@ -17991,7 +18017,7 @@ __metadata: "@grafana/o11y-ds-frontend": "workspace:*" "@grafana/prometheus": "workspace:*" "@grafana/runtime": "workspace:*" - "@grafana/scenes": "npm:2.6.6" + "@grafana/scenes": "npm:^2.6.5" "@grafana/schema": "workspace:*" "@grafana/sql": "workspace:*" "@grafana/tsconfig": "npm:^1.3.0-rc1" @@ -25073,7 +25099,7 @@ __metadata: languageName: node linkType: hard -"queue-tick@npm:^1.0.1": +"queue-tick@npm:^1.0.0, queue-tick@npm:^1.0.1": version: 1.0.1 resolution: "queue-tick@npm:1.0.1" checksum: 10/f447926c513b64a857906f017a3b350f7d11277e3c8d2a21a42b7998fa1a613d7a829091e12d142bb668905c8f68d8103416c7197856efb0c72fa835b8e254b5 @@ -28447,7 +28473,7 @@ __metadata: languageName: node linkType: hard -"streamx@npm:^2.12.0, streamx@npm:^2.12.5, streamx@npm:^2.13.2, streamx@npm:^2.14.0": +"streamx@npm:^2.12.0, streamx@npm:^2.13.2, streamx@npm:^2.14.0": version: 2.15.7 resolution: "streamx@npm:2.15.7" dependencies: @@ -28457,6 +28483,16 @@ __metadata: languageName: node linkType: hard +"streamx@npm:^2.12.5": + version: 2.12.5 + resolution: "streamx@npm:2.12.5" + dependencies: + fast-fifo: "npm:^1.0.0" + queue-tick: "npm:^1.0.0" + checksum: 10/daa5789ca31101684d9266f7ea77294908bd3e55607805ac1657f0cef1ee0a1966bc3988d2ec12c5f68a718d481147fa3ace2525486a1e39ca7155c598917cd1 + languageName: node + linkType: hard + "strict-event-emitter@npm:^0.2.4": version: 0.2.8 resolution: "strict-event-emitter@npm:0.2.8"