@grafana/scenes 6.42.0 → 6.42.2--canary.1293.18968800163.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/esm/core/types.js.map +1 -1
- package/dist/esm/locales/cs-CZ/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/de-DE/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/es-ES/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/fr-FR/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/hu-HU/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/id-ID/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/it-IT/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/ja-JP/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/ko-KR/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/nl-NL/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/pl-PL/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/pt-BR/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/pt-PT/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/ru-RU/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/sv-SE/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/tr-TR/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/zh-Hans/grafana-scenes.json.js +2 -2
- package/dist/esm/locales/zh-Hant/grafana-scenes.json.js +2 -2
- package/dist/esm/querying/layers/SceneDataLayerControls.js +10 -20
- package/dist/esm/querying/layers/SceneDataLayerControls.js.map +1 -1
- package/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +17 -3
- package/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js.map +1 -1
- package/dist/{grafana-scenes-Di0mD-iN.js → grafana-scenes-B10eGhqN.js} +3 -3
- package/dist/{grafana-scenes-8z5eBgO0.js.map → grafana-scenes-B10eGhqN.js.map} +1 -1
- package/dist/{grafana-scenes-r_1S-tPI.js → grafana-scenes-B2NM8uIa.js} +3 -3
- package/dist/{grafana-scenes-2zS6WwcG.js.map → grafana-scenes-B2NM8uIa.js.map} +1 -1
- package/dist/{grafana-scenes-fPery0i8.js → grafana-scenes-BKyaPXlz.js} +3 -3
- package/dist/{grafana-scenes-BAJo7mZu.js.map → grafana-scenes-BKyaPXlz.js.map} +1 -1
- package/dist/{grafana-scenes-C4rsdf2J.js → grafana-scenes-BYpkzUpx.js} +3 -3
- package/dist/{grafana-scenes-5D_kgp5S.js.map → grafana-scenes-BYpkzUpx.js.map} +1 -1
- package/dist/{grafana-scenes-L3DvBvA_.js → grafana-scenes-Bf6nP3Zg.js} +3 -3
- package/dist/grafana-scenes-Bf6nP3Zg.js.map +1 -0
- package/dist/{grafana-scenes-5D_kgp5S.js → grafana-scenes-BgFDPQrP.js} +3 -3
- package/dist/grafana-scenes-BgFDPQrP.js.map +1 -0
- package/dist/{grafana-scenes-BAJo7mZu.js → grafana-scenes-C3OHMat0.js} +3 -3
- package/dist/grafana-scenes-C3OHMat0.js.map +1 -0
- package/dist/{grafana-scenes-8z5eBgO0.js → grafana-scenes-CHPCWAuK.js} +3 -3
- package/dist/grafana-scenes-CHPCWAuK.js.map +1 -0
- package/dist/{grafana-scenes-v_pWTyzx.js → grafana-scenes-CMWWgEMC.js} +3 -3
- package/dist/grafana-scenes-CMWWgEMC.js.map +1 -0
- package/dist/{grafana-scenes-BAvDcHPV.js → grafana-scenes-CsuL59Tu.js} +3 -3
- package/dist/grafana-scenes-CsuL59Tu.js.map +1 -0
- package/dist/{grafana-scenes-Dmwf_eJ5.js → grafana-scenes-Cv2waQMg.js} +3 -3
- package/dist/grafana-scenes-Cv2waQMg.js.map +1 -0
- package/dist/{grafana-scenes-DQDUiFgy.js → grafana-scenes-DNw_utC4.js} +3 -3
- package/dist/grafana-scenes-DNw_utC4.js.map +1 -0
- package/dist/{grafana-scenes-D_7C5tUl.js → grafana-scenes-DVIvh4Ng.js} +3 -3
- package/dist/grafana-scenes-DVIvh4Ng.js.map +1 -0
- package/dist/{grafana-scenes-DarGXy_b.js → grafana-scenes-M3NiQYq2.js} +3 -3
- package/dist/grafana-scenes-M3NiQYq2.js.map +1 -0
- package/dist/{grafana-scenes-tZ650dxC.js → grafana-scenes-dyBqPFwc.js} +3 -3
- package/dist/grafana-scenes-dyBqPFwc.js.map +1 -0
- package/dist/{grafana-scenes-2zS6WwcG.js → grafana-scenes-l64bigxN.js} +3 -3
- package/dist/grafana-scenes-l64bigxN.js.map +1 -0
- package/dist/{grafana-scenes-DkNywY1s.js → grafana-scenes-t5zYTKtF.js} +3 -3
- package/dist/grafana-scenes-t5zYTKtF.js.map +1 -0
- package/dist/{grafana-scenes-DW_EK7z5.js → grafana-scenes-t982Ep2v.js} +3 -3
- package/dist/grafana-scenes-t982Ep2v.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +71 -67
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/grafana-scenes-BAvDcHPV.js.map +0 -1
- package/dist/grafana-scenes-C4rsdf2J.js.map +0 -1
- package/dist/grafana-scenes-DQDUiFgy.js.map +0 -1
- package/dist/grafana-scenes-DW_EK7z5.js.map +0 -1
- package/dist/grafana-scenes-D_7C5tUl.js.map +0 -1
- package/dist/grafana-scenes-DarGXy_b.js.map +0 -1
- package/dist/grafana-scenes-Di0mD-iN.js.map +0 -1
- package/dist/grafana-scenes-DkNywY1s.js.map +0 -1
- package/dist/grafana-scenes-Dmwf_eJ5.js.map +0 -1
- package/dist/grafana-scenes-L3DvBvA_.js.map +0 -1
- package/dist/grafana-scenes-fPery0i8.js.map +0 -1
- package/dist/grafana-scenes-r_1S-tPI.js.map +0 -1
- package/dist/grafana-scenes-tZ650dxC.js.map +0 -1
- package/dist/grafana-scenes-v_pWTyzx.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# v6.42.1 (Thu Oct 30 2025)
|
|
2
|
+
|
|
3
|
+
#### 🐛 Bug Fix
|
|
4
|
+
|
|
5
|
+
- Data Layers: Add `placement` property [#1289](https://github.com/grafana/scenes/pull/1289) ([@leventebalogh](https://github.com/leventebalogh))
|
|
6
|
+
|
|
7
|
+
#### Authors: 1
|
|
8
|
+
|
|
9
|
+
- Levente Balogh ([@leventebalogh](https://github.com/leventebalogh))
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
1
13
|
# v6.42.0 (Wed Oct 29 2025)
|
|
2
14
|
|
|
3
15
|
#### 🚀 Enhancement
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../src/core/types.ts"],"sourcesContent":["import React from 'react';\nimport { MonoTypeOperatorFunction, Observable, Unsubscribable } from 'rxjs';\n\nimport {\n BusEvent,\n BusEventHandler,\n BusEventType,\n DataFrame,\n DataQueryRequest,\n DataSourceGetTagKeysOptions,\n DataSourceGetTagValuesOptions,\n DataTransformContext,\n PanelData,\n TimeRange,\n} from '@grafana/data';\nimport { DataQuery, DataTopic, TimeZone } from '@grafana/schema';\n\nimport { SceneVariableDependencyConfigLike, SceneVariables } from '../variables/types';\nimport { SceneObjectRef } from './SceneObjectRef';\nimport { VizPanel } from '../components/VizPanel/VizPanel';\nimport { WeekStart } from '@grafana/ui';\n\nexport interface SceneObjectState {\n key?: string;\n $timeRange?: SceneTimeRangeLike;\n $data?: SceneDataProvider;\n $variables?: SceneVariables;\n /**\n * @experimental\n * Can be used to add extra behaviors to a scene object.\n * These are activated when the their parent scene object is activated.\n */\n $behaviors?: Array<SceneObject | SceneStatelessBehavior>;\n}\n\nexport interface SceneLayoutChildOptions {\n width?: number | string;\n height?: number | string;\n xSizing?: 'fill' | 'content';\n ySizing?: 'fill' | 'content';\n x?: number;\n y?: number;\n minWidth?: number | string;\n minHeight?: number | string;\n isDraggable?: boolean;\n isResizable?: boolean;\n}\n\nexport interface SceneComponentProps<T> {\n model: T;\n}\n\nexport type SceneComponent<TModel> = (props: SceneComponentProps<TModel>) => React.ReactElement | null;\n\nexport interface SceneDataState extends SceneObjectState {\n data?: PanelData;\n}\n\nexport interface SceneObject<TState extends SceneObjectState = SceneObjectState> {\n /** The current state */\n readonly state: TState;\n\n /** True when there is a React component mounted for this Object */\n readonly isActive: boolean;\n\n /** Controls if activation blocks rendering */\n readonly renderBeforeActivation: boolean;\n\n /** SceneObject parent */\n readonly parent?: SceneObject;\n\n /** This abtractions declares what variables the scene object depends on and how to handle when they change value. **/\n readonly variableDependency?: SceneVariableDependencyConfigLike;\n\n /** This abstraction declares URL sync dependencies of a scene object. **/\n readonly urlSync?: SceneObjectUrlSyncHandler;\n\n /** Subscribe to state changes */\n subscribeToState(handler: SceneStateChangedHandler<TState>): Unsubscribable;\n\n /** Subscribe to a scene event */\n subscribeToEvent<T extends BusEvent>(typeFilter: BusEventType<T>, handler: BusEventHandler<T>): Unsubscribable;\n\n /** Publish an event and optionally bubble it up the scene */\n publishEvent(event: BusEvent, bubble?: boolean): void;\n\n /** Utility hook that wraps useObservable. Used by React components to subscribes to state changes */\n useState(): TState;\n\n /** How to modify state */\n setState(state: Partial<TState>): void;\n\n /**\n * Called when the Component is mounted. This will also activate any $data, $variables or $timeRange scene object on this level.\n * Don't override this in your custom SceneObjects, instead use addActivationHandler from the constructor.\n **/\n activate(): CancelActivationHandler;\n\n /** Get the scene root */\n getRoot(): SceneObject;\n\n /** Returns a deep clone this object and all its children */\n clone(state?: Partial<TState>): this;\n\n /** A React component to use for rendering the object */\n Component(props: SceneComponentProps<SceneObject<TState>>): React.ReactElement | null;\n\n /** Force a re-render, should only be needed when variable values change */\n forceRender(): void;\n\n /** Returns a SceneObjectRef that will resolve to this object */\n getRef(): SceneObjectRef<this>;\n\n /**\n * Allows external code to register code that is executed on activate and deactivate. This allow you\n * to wire up scene objects that need to respond to state changes in other objects from the outside.\n **/\n addActivationHandler(handler: SceneActivationHandler): void;\n\n /**\n * Loop through state and call callback for each direct child scene object.\n * Checks 1 level deep properties and arrays. So a scene object hidden in a nested plain object will not be detected.\n * Return false to exit loop early.\n */\n forEachChild(callback: (child: SceneObject) => void): void | false;\n\n /**\n * Useful for edge cases when you want to move a scene object to another parent.\n */\n clearParent(): void;\n}\n\nexport type SceneActivationHandler = () => SceneDeactivationHandler | void;\nexport type SceneDeactivationHandler = () => void;\n\n/**\n * Function returned by activate() that when called will deactivate the object if it's the last activator\n **/\nexport type CancelActivationHandler = () => void;\n\nexport interface SceneLayoutState extends SceneObjectState {\n children: SceneObject[];\n}\n\nexport interface SceneLayout<T extends SceneLayoutState = SceneLayoutState> extends SceneObject<T> {\n isDraggable(): boolean;\n getDragClass?(): string;\n getDragClassCancel?(): string;\n getDragHooks?(): { onDragStart?: (e: React.PointerEvent, panel: VizPanel) => void };\n}\n\nexport interface SceneTimeRangeState extends SceneObjectState {\n from: string;\n to: string;\n fiscalYearStartMonth?: number;\n value: TimeRange;\n timeZone?: TimeZone;\n /** weekStart will change the global date locale so having multiple different weekStart values is not supported */\n weekStart?: WeekStart;\n /**\n * @internal\n * To enable feature parity with the old time range picker, not sure if it will be kept.\n * Override the now time by entering a time delay. Use this option to accommodate known delays in data aggregation to avoid null values.\n * */\n UNSAFE_nowDelay?: string;\n\n refreshOnActivate?: {\n /**\n * When set, the time range will invalidate relative ranges after the specified interval has elapsed\n */\n afterMs?: number;\n /**\n * When set, the time range will invalidate relative ranges after the specified percentage of the current interval has elapsed.\n * If both invalidate values are set, the smaller value will be used for the given interval.\n */\n percent?: number;\n };\n}\n\nexport interface SceneTimeRangeLike extends SceneObject<SceneTimeRangeState> {\n onTimeZoneChange(timeZone: TimeZone): void;\n onTimeRangeChange(timeRange: TimeRange): void;\n onRefresh(): void;\n getTimeZone(): TimeZone;\n}\n\nexport function isSceneObject(obj: any): obj is SceneObject {\n return obj.useState !== undefined;\n}\n\nexport interface SceneObjectWithUrlSync extends SceneObject {\n getUrlState(): SceneObjectUrlValues;\n updateFromUrl(values: SceneObjectUrlValues): void;\n}\n\nexport interface SceneObjectUrlSyncHandler {\n getKeys(): string[];\n getUrlState(): SceneObjectUrlValues;\n updateFromUrl(values: SceneObjectUrlValues): void;\n shouldCreateHistoryStep?(values: SceneObjectUrlValues): boolean;\n performBrowserHistoryAction?(callback: () => void): void;\n}\n\nexport interface DataRequestEnricher {\n // Return partial data query request that will be merged with the original request provided by SceneQueryRunner\n enrichDataRequest(source: SceneObject): Partial<DataQueryRequest> | null;\n}\n\nexport interface FiltersRequestEnricher {\n // Return partial getTagKeys or getTagValues query request that will be merged with the original request provided by ad hoc or group by variable\n enrichFiltersRequest(\n source: SceneObject\n ): Partial<DataSourceGetTagKeysOptions | DataSourceGetTagValuesOptions> | null;\n}\n\nexport function isDataRequestEnricher(obj: any): obj is DataRequestEnricher {\n return 'enrichDataRequest' in obj;\n}\n\nexport function isFiltersRequestEnricher(obj: any): obj is FiltersRequestEnricher {\n return 'enrichFiltersRequest' in obj;\n}\n\nexport type SceneObjectUrlValue = string | string[] | undefined | null;\nexport type SceneObjectUrlValues = Record<string, SceneObjectUrlValue>;\n\nexport type CustomTransformOperator = (context: DataTransformContext) => MonoTypeOperatorFunction<DataFrame[]>;\nexport type CustomTransformerDefinition =\n | { operator: CustomTransformOperator; topic: DataTopic }\n | CustomTransformOperator;\nexport type SceneStateChangedHandler<TState> = (newState: TState, prevState: TState) => void;\n\nexport type DeepPartial<T> = {\n [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];\n};\n\nexport interface SceneDataProviderResult {\n data: PanelData;\n origin: SceneDataProvider;\n}\n\nexport interface SceneDataProvider<T extends SceneObjectState = SceneDataState> extends SceneObject<T> {\n setContainerWidth?: (width: number) => void;\n isDataReadyToDisplay?: () => boolean;\n cancelQuery?: () => void;\n getResultsStream(): Observable<SceneDataProviderResult>;\n /**\n * Can be used to disable query execution for scene elements that are out of view\n */\n isInViewChanged?(isInView: boolean): void;\n\n /**\n * Allow activating or deactivating the isInView behavior\n * This is useful for external consumers of a data provider (i.e., the Dashboard datasource)\n */\n bypassIsInViewChanged?(bypassIsInView: boolean): void;\n}\n\nexport interface SceneDataLayerProviderState extends SceneDataState {\n name: string;\n description?: string;\n isEnabled?: boolean;\n isHidden?: boolean;\n}\n\nexport interface SceneDataLayerProvider extends SceneDataProvider<SceneDataLayerProviderState> {\n isDataLayer: true;\n}\n\nexport function isDataLayer(obj: SceneObject): obj is SceneDataLayerProvider {\n return 'isDataLayer' in obj;\n}\n\nexport interface DataLayerFilter {\n panelId: number;\n}\n\nexport interface SceneStatelessBehavior<T extends SceneObject = any> {\n (sceneObject: T): CancelActivationHandler | void;\n}\n\nexport type ControlsLayout = 'horizontal' | 'vertical';\n\nexport interface UseStateHookOptions {\n /**\n * For some edge cases other scene objects want to subscribe to scene object state for objects\n * that are not active, or whose main React Component can be un-mounted. Set this to true\n * to keep the scene object active even if the React component is unmounted.\n *\n * Normally you would not need this but this can be useful in some edge cases.\n *\n * @experimental\n */\n shouldActivateOrKeepAlive?: boolean;\n}\n\nexport interface SceneDataQuery extends DataQuery {\n [key: string]: any;\n\n // Opt this query out of time window comparison\n timeRangeCompare?: boolean;\n}\n\nexport interface SceneUrlSyncOptions {\n /**\n * This will update the url to contain all scene url state\n * when the scene is initialized. Important for browser history \"back\" actions.\n */\n updateUrlOnInit?: boolean;\n /**\n * This is only supported by some objects if they implement\n * shouldCreateHistoryStep where they can control what changes\n * url changes should add a new browser history entry.\n */\n createBrowserHistorySteps?: boolean;\n /**\n * This will automatically prefix url search parameters when syncing.\n * Can be used to prevent collisions when multiple Scene apps are embedded in the page.\n */\n namespace?: string;\n /**\n * When `namespace` is provided, this prevents some url search parameters to be automatically prefixed.\n * Defaults to the timerange parameters ([\"from\", \"to\", \"timezone\"])\n */\n excludeFromNamespace?: string[];\n}\n"],"names":[],"mappings":"AA0LO,SAAS,cAAc,GAA8B,EAAA;AAC1D,EAAA,OAAO,IAAI,QAAa,KAAA,MAAA;AAC1B;AA2BO,SAAS,sBAAsB,GAAsC,EAAA;AAC1E,EAAA,OAAO,mBAAuB,IAAA,GAAA;AAChC;AAEO,SAAS,yBAAyB,GAAyC,EAAA;AAChF,EAAA,OAAO,sBAA0B,IAAA,GAAA;AACnC;AAgDO,SAAS,YAAY,GAAiD,EAAA;AAC3E,EAAA,OAAO,aAAiB,IAAA,GAAA;AAC1B;;;;"}
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/core/types.ts"],"sourcesContent":["import React from 'react';\nimport { MonoTypeOperatorFunction, Observable, Unsubscribable } from 'rxjs';\n\nimport {\n BusEvent,\n BusEventHandler,\n BusEventType,\n DataFrame,\n DataQueryRequest,\n DataSourceGetTagKeysOptions,\n DataSourceGetTagValuesOptions,\n DataTransformContext,\n PanelData,\n TimeRange,\n} from '@grafana/data';\nimport { DataQuery, DataTopic, TimeZone } from '@grafana/schema';\n\nimport { SceneVariableDependencyConfigLike, SceneVariables } from '../variables/types';\nimport { SceneObjectRef } from './SceneObjectRef';\nimport { VizPanel } from '../components/VizPanel/VizPanel';\nimport { WeekStart } from '@grafana/ui';\n\nexport interface SceneObjectState {\n key?: string;\n $timeRange?: SceneTimeRangeLike;\n $data?: SceneDataProvider;\n $variables?: SceneVariables;\n /**\n * @experimental\n * Can be used to add extra behaviors to a scene object.\n * These are activated when the their parent scene object is activated.\n */\n $behaviors?: Array<SceneObject | SceneStatelessBehavior>;\n}\n\nexport interface SceneLayoutChildOptions {\n width?: number | string;\n height?: number | string;\n xSizing?: 'fill' | 'content';\n ySizing?: 'fill' | 'content';\n x?: number;\n y?: number;\n minWidth?: number | string;\n minHeight?: number | string;\n isDraggable?: boolean;\n isResizable?: boolean;\n}\n\nexport interface SceneComponentProps<T> {\n model: T;\n}\n\nexport type SceneComponent<TModel> = (props: SceneComponentProps<TModel>) => React.ReactElement | null;\n\nexport interface SceneDataState extends SceneObjectState {\n data?: PanelData;\n}\n\nexport interface SceneObject<TState extends SceneObjectState = SceneObjectState> {\n /** The current state */\n readonly state: TState;\n\n /** True when there is a React component mounted for this Object */\n readonly isActive: boolean;\n\n /** Controls if activation blocks rendering */\n readonly renderBeforeActivation: boolean;\n\n /** SceneObject parent */\n readonly parent?: SceneObject;\n\n /** This abtractions declares what variables the scene object depends on and how to handle when they change value. **/\n readonly variableDependency?: SceneVariableDependencyConfigLike;\n\n /** This abstraction declares URL sync dependencies of a scene object. **/\n readonly urlSync?: SceneObjectUrlSyncHandler;\n\n /** Subscribe to state changes */\n subscribeToState(handler: SceneStateChangedHandler<TState>): Unsubscribable;\n\n /** Subscribe to a scene event */\n subscribeToEvent<T extends BusEvent>(typeFilter: BusEventType<T>, handler: BusEventHandler<T>): Unsubscribable;\n\n /** Publish an event and optionally bubble it up the scene */\n publishEvent(event: BusEvent, bubble?: boolean): void;\n\n /** Utility hook that wraps useObservable. Used by React components to subscribes to state changes */\n useState(): TState;\n\n /** How to modify state */\n setState(state: Partial<TState>): void;\n\n /**\n * Called when the Component is mounted. This will also activate any $data, $variables or $timeRange scene object on this level.\n * Don't override this in your custom SceneObjects, instead use addActivationHandler from the constructor.\n **/\n activate(): CancelActivationHandler;\n\n /** Get the scene root */\n getRoot(): SceneObject;\n\n /** Returns a deep clone this object and all its children */\n clone(state?: Partial<TState>): this;\n\n /** A React component to use for rendering the object */\n Component(props: SceneComponentProps<SceneObject<TState>>): React.ReactElement | null;\n\n /** Force a re-render, should only be needed when variable values change */\n forceRender(): void;\n\n /** Returns a SceneObjectRef that will resolve to this object */\n getRef(): SceneObjectRef<this>;\n\n /**\n * Allows external code to register code that is executed on activate and deactivate. This allow you\n * to wire up scene objects that need to respond to state changes in other objects from the outside.\n **/\n addActivationHandler(handler: SceneActivationHandler): void;\n\n /**\n * Loop through state and call callback for each direct child scene object.\n * Checks 1 level deep properties and arrays. So a scene object hidden in a nested plain object will not be detected.\n * Return false to exit loop early.\n */\n forEachChild(callback: (child: SceneObject) => void): void | false;\n\n /**\n * Useful for edge cases when you want to move a scene object to another parent.\n */\n clearParent(): void;\n}\n\nexport type SceneActivationHandler = () => SceneDeactivationHandler | void;\nexport type SceneDeactivationHandler = () => void;\n\n/**\n * Function returned by activate() that when called will deactivate the object if it's the last activator\n **/\nexport type CancelActivationHandler = () => void;\n\nexport interface SceneLayoutState extends SceneObjectState {\n children: SceneObject[];\n}\n\nexport interface SceneLayout<T extends SceneLayoutState = SceneLayoutState> extends SceneObject<T> {\n isDraggable(): boolean;\n getDragClass?(): string;\n getDragClassCancel?(): string;\n getDragHooks?(): { onDragStart?: (e: React.PointerEvent, panel: VizPanel) => void };\n}\n\nexport interface SceneTimeRangeState extends SceneObjectState {\n from: string;\n to: string;\n fiscalYearStartMonth?: number;\n value: TimeRange;\n timeZone?: TimeZone;\n /** weekStart will change the global date locale so having multiple different weekStart values is not supported */\n weekStart?: WeekStart;\n /**\n * @internal\n * To enable feature parity with the old time range picker, not sure if it will be kept.\n * Override the now time by entering a time delay. Use this option to accommodate known delays in data aggregation to avoid null values.\n * */\n UNSAFE_nowDelay?: string;\n\n refreshOnActivate?: {\n /**\n * When set, the time range will invalidate relative ranges after the specified interval has elapsed\n */\n afterMs?: number;\n /**\n * When set, the time range will invalidate relative ranges after the specified percentage of the current interval has elapsed.\n * If both invalidate values are set, the smaller value will be used for the given interval.\n */\n percent?: number;\n };\n}\n\nexport interface SceneTimeRangeLike extends SceneObject<SceneTimeRangeState> {\n onTimeZoneChange(timeZone: TimeZone): void;\n onTimeRangeChange(timeRange: TimeRange): void;\n onRefresh(): void;\n getTimeZone(): TimeZone;\n}\n\nexport function isSceneObject(obj: any): obj is SceneObject {\n return obj.useState !== undefined;\n}\n\nexport interface SceneObjectWithUrlSync extends SceneObject {\n getUrlState(): SceneObjectUrlValues;\n updateFromUrl(values: SceneObjectUrlValues): void;\n}\n\nexport interface SceneObjectUrlSyncHandler {\n getKeys(): string[];\n getUrlState(): SceneObjectUrlValues;\n updateFromUrl(values: SceneObjectUrlValues): void;\n shouldCreateHistoryStep?(values: SceneObjectUrlValues): boolean;\n performBrowserHistoryAction?(callback: () => void): void;\n}\n\nexport interface DataRequestEnricher {\n // Return partial data query request that will be merged with the original request provided by SceneQueryRunner\n enrichDataRequest(source: SceneObject): Partial<DataQueryRequest> | null;\n}\n\nexport interface FiltersRequestEnricher {\n // Return partial getTagKeys or getTagValues query request that will be merged with the original request provided by ad hoc or group by variable\n enrichFiltersRequest(\n source: SceneObject\n ): Partial<DataSourceGetTagKeysOptions | DataSourceGetTagValuesOptions> | null;\n}\n\nexport function isDataRequestEnricher(obj: any): obj is DataRequestEnricher {\n return 'enrichDataRequest' in obj;\n}\n\nexport function isFiltersRequestEnricher(obj: any): obj is FiltersRequestEnricher {\n return 'enrichFiltersRequest' in obj;\n}\n\nexport type SceneObjectUrlValue = string | string[] | undefined | null;\nexport type SceneObjectUrlValues = Record<string, SceneObjectUrlValue>;\n\nexport type CustomTransformOperator = (context: DataTransformContext) => MonoTypeOperatorFunction<DataFrame[]>;\nexport type CustomTransformerDefinition =\n | { operator: CustomTransformOperator; topic: DataTopic }\n | CustomTransformOperator;\nexport type SceneStateChangedHandler<TState> = (newState: TState, prevState: TState) => void;\n\nexport type DeepPartial<T> = {\n [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];\n};\n\nexport interface SceneDataProviderResult {\n data: PanelData;\n origin: SceneDataProvider;\n}\n\nexport interface SceneDataProvider<T extends SceneObjectState = SceneDataState> extends SceneObject<T> {\n setContainerWidth?: (width: number) => void;\n isDataReadyToDisplay?: () => boolean;\n cancelQuery?: () => void;\n getResultsStream(): Observable<SceneDataProviderResult>;\n /**\n * Can be used to disable query execution for scene elements that are out of view\n */\n isInViewChanged?(isInView: boolean): void;\n\n /**\n * Allow activating or deactivating the isInView behavior\n * This is useful for external consumers of a data provider (i.e., the Dashboard datasource)\n */\n bypassIsInViewChanged?(bypassIsInView: boolean): void;\n}\n\nexport interface SceneDataLayerProviderState extends SceneDataState {\n name: string;\n description?: string;\n isEnabled?: boolean;\n isHidden?: boolean;\n placement?: 'inControlsMenu';\n}\n\nexport interface SceneDataLayerProvider extends SceneDataProvider<SceneDataLayerProviderState> {\n isDataLayer: true;\n}\n\nexport function isDataLayer(obj: SceneObject): obj is SceneDataLayerProvider {\n return 'isDataLayer' in obj;\n}\n\nexport interface DataLayerFilter {\n panelId: number;\n}\n\nexport interface SceneStatelessBehavior<T extends SceneObject = any> {\n (sceneObject: T): CancelActivationHandler | void;\n}\n\nexport type ControlsLayout = 'horizontal' | 'vertical';\n\nexport interface UseStateHookOptions {\n /**\n * For some edge cases other scene objects want to subscribe to scene object state for objects\n * that are not active, or whose main React Component can be un-mounted. Set this to true\n * to keep the scene object active even if the React component is unmounted.\n *\n * Normally you would not need this but this can be useful in some edge cases.\n *\n * @experimental\n */\n shouldActivateOrKeepAlive?: boolean;\n}\n\nexport interface SceneDataQuery extends DataQuery {\n [key: string]: any;\n\n // Opt this query out of time window comparison\n timeRangeCompare?: boolean;\n}\n\nexport interface SceneUrlSyncOptions {\n /**\n * This will update the url to contain all scene url state\n * when the scene is initialized. Important for browser history \"back\" actions.\n */\n updateUrlOnInit?: boolean;\n /**\n * This is only supported by some objects if they implement\n * shouldCreateHistoryStep where they can control what changes\n * url changes should add a new browser history entry.\n */\n createBrowserHistorySteps?: boolean;\n /**\n * This will automatically prefix url search parameters when syncing.\n * Can be used to prevent collisions when multiple Scene apps are embedded in the page.\n */\n namespace?: string;\n /**\n * When `namespace` is provided, this prevents some url search parameters to be automatically prefixed.\n * Defaults to the timerange parameters ([\"from\", \"to\", \"timezone\"])\n */\n excludeFromNamespace?: string[];\n}\n"],"names":[],"mappings":"AA0LO,SAAS,cAAc,GAA8B,EAAA;AAC1D,EAAA,OAAO,IAAI,QAAa,KAAA,MAAA;AAC1B;AA2BO,SAAS,sBAAsB,GAAsC,EAAA;AAC1E,EAAA,OAAO,mBAAuB,IAAA,GAAA;AAChC;AAEO,SAAS,yBAAyB,GAAyC,EAAA;AAChF,EAAA,OAAO,sBAA0B,IAAA,GAAA;AACnC;AAiDO,SAAS,YAAY,GAAiD,EAAA;AAC3E,EAAA,OAAO,aAAiB,IAAA,GAAA;AAC1B;;;;"}
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Rozbalit řádek"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Zrušit",
|
|
38
|
+
"text-refresh": "Obnovit",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Zeile einblenden"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Abbrechen",
|
|
38
|
+
"text-refresh": "Aktualisieren",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Expandir fila"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Cancelar",
|
|
38
|
+
"text-refresh": "Actualizar",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Développer la ligne"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Annuler",
|
|
38
|
+
"text-refresh": "Actualiser",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Sor kibontása"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Mégse",
|
|
38
|
+
"text-refresh": "Frissítés",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Perbesar baris"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Batalkan",
|
|
38
|
+
"text-refresh": "Muat ulang",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Espandi riga"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Annulla",
|
|
38
|
+
"text-refresh": "Aggiorna",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Rij uitvouwen"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Annuleren",
|
|
38
|
+
"text-refresh": "Vernieuwen",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Rozwiń wiersz"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Anuluj",
|
|
38
|
+
"text-refresh": "Odśwież",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Expandir linha"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Cancelar",
|
|
38
|
+
"text-refresh": "Atualizar",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Expandir linha"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Cancelar",
|
|
38
|
+
"text-refresh": "Atualizar",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Развернуть строку"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Отмена",
|
|
38
|
+
"text-refresh": "Обновить",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Expandera rad"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "Avbryt",
|
|
38
|
+
"text-refresh": "Uppdatera",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -34,8 +34,8 @@ var grafanaScenes = {
|
|
|
34
34
|
"expand-row": "Satırı genişlet"
|
|
35
35
|
},
|
|
36
36
|
"scene-refresh-picker": {
|
|
37
|
-
"text-cancel": "",
|
|
38
|
-
"text-refresh": "",
|
|
37
|
+
"text-cancel": "İptal",
|
|
38
|
+
"text-refresh": "Yenile",
|
|
39
39
|
"tooltip-cancel": ""
|
|
40
40
|
},
|
|
41
41
|
"scene-time-range-compare-renderer": {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { css } from '@emotion/css';
|
|
2
|
-
import { LoadingState } from '@grafana/schema';
|
|
3
|
-
import { InlineSwitch } from '@grafana/ui';
|
|
4
1
|
import React from 'react';
|
|
5
2
|
import { sceneGraph } from '../../core/sceneGraph/index.js';
|
|
6
3
|
import { SceneObjectBase } from '../../core/SceneObjectBase.js';
|
|
4
|
+
import { LoadingState } from '@grafana/schema';
|
|
5
|
+
import { css } from '@emotion/css';
|
|
7
6
|
import { ControlsLabel } from '../../utils/ControlsLabel.js';
|
|
8
7
|
|
|
9
8
|
class SceneDataLayerControls extends SceneObjectBase {
|
|
@@ -17,13 +16,16 @@ function SceneDataLayerControlsRenderer({ model }) {
|
|
|
17
16
|
if (layers.length === 0) {
|
|
18
17
|
return null;
|
|
19
18
|
}
|
|
20
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, layers.map((layer) => /* @__PURE__ */ React.createElement(
|
|
19
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, layers.map((layer) => /* @__PURE__ */ React.createElement(SceneDataLayerControlRenderer, { layer, key: layer.state.key })));
|
|
21
20
|
}
|
|
22
|
-
function
|
|
21
|
+
function SceneDataLayerControlRenderer({ layer }) {
|
|
23
22
|
var _a, _b;
|
|
24
23
|
const elementId = `data-layer-${layer.state.key}`;
|
|
25
|
-
const { data,
|
|
24
|
+
const { data, isHidden } = layer.useState();
|
|
26
25
|
const showLoading = Boolean(data && data.state === LoadingState.Loading);
|
|
26
|
+
if (isHidden) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
27
29
|
return /* @__PURE__ */ React.createElement("div", { className: containerStyle }, /* @__PURE__ */ React.createElement(
|
|
28
30
|
ControlsLabel,
|
|
29
31
|
{
|
|
@@ -37,21 +39,9 @@ function DataLayerControlSwitch({ layer }) {
|
|
|
37
39
|
description: layer.state.description,
|
|
38
40
|
error: (_b = (_a = layer.state.data) == null ? void 0 : _a.errors) == null ? void 0 : _b[0].message
|
|
39
41
|
}
|
|
40
|
-
), /* @__PURE__ */ React.createElement(
|
|
41
|
-
InlineSwitch,
|
|
42
|
-
{
|
|
43
|
-
className: switchStyle,
|
|
44
|
-
id: elementId,
|
|
45
|
-
value: isEnabled,
|
|
46
|
-
onChange: () => layer.setState({ isEnabled: !isEnabled })
|
|
47
|
-
}
|
|
48
|
-
));
|
|
42
|
+
), /* @__PURE__ */ React.createElement(layer.Component, { model: layer }));
|
|
49
43
|
}
|
|
50
44
|
const containerStyle = css({ display: "flex" });
|
|
51
|
-
const switchStyle = css({
|
|
52
|
-
borderBottomLeftRadius: 0,
|
|
53
|
-
borderTopLeftRadius: 0
|
|
54
|
-
});
|
|
55
45
|
|
|
56
|
-
export {
|
|
46
|
+
export { SceneDataLayerControlRenderer, SceneDataLayerControls };
|
|
57
47
|
//# sourceMappingURL=SceneDataLayerControls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneDataLayerControls.js","sources":["../../../../src/querying/layers/SceneDataLayerControls.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"SceneDataLayerControls.js","sources":["../../../../src/querying/layers/SceneDataLayerControls.tsx"],"sourcesContent":["import React from 'react';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneComponentProps, SceneDataLayerProvider, SceneObjectState } from '../../core/types';\nimport { LoadingState } from '@grafana/schema';\nimport { css } from '@emotion/css';\nimport { ControlsLabel } from '../../utils/ControlsLabel';\n\ninterface SceneDataLayerControlsState extends SceneObjectState {}\n\nexport class SceneDataLayerControls extends SceneObjectBase<SceneDataLayerControlsState> {\n public static Component = SceneDataLayerControlsRenderer;\n\n public constructor() {\n super({});\n }\n}\n\nfunction SceneDataLayerControlsRenderer({ model }: SceneComponentProps<SceneDataLayerControls>) {\n const layers = sceneGraph.getDataLayers(model, true);\n\n if (layers.length === 0) {\n return null;\n }\n\n return (\n <>\n {layers.map((layer) => (\n <SceneDataLayerControlRenderer layer={layer} key={layer.state.key} />\n ))}\n </>\n );\n}\n\n// Renders controls for a single data layer\nexport function SceneDataLayerControlRenderer({ layer }: { layer: SceneDataLayerProvider }) {\n const elementId = `data-layer-${layer.state.key}`;\n const { data, isHidden } = layer.useState();\n const showLoading = Boolean(data && data.state === LoadingState.Loading);\n\n if (isHidden) {\n return null;\n }\n\n return (\n <div className={containerStyle}>\n <ControlsLabel\n htmlFor={elementId}\n isLoading={showLoading}\n onCancel={() => layer.cancelQuery?.()}\n label={layer.state.name}\n description={layer.state.description}\n error={layer.state.data?.errors?.[0].message}\n />\n <layer.Component model={layer} />\n </div>\n );\n}\n\nconst containerStyle = css({ display: 'flex' });\n"],"names":["_a"],"mappings":";;;;;;;AAUO,MAAM,+BAA+B,eAA6C,CAAA;AAAA,EAGhF,WAAc,GAAA;AACnB,IAAA,KAAA,CAAM,EAAE,CAAA;AAAA;AAEZ;AANa,sBAAA,CACG,SAAY,GAAA,8BAAA;AAO5B,SAAS,8BAAA,CAA+B,EAAE,KAAA,EAAsD,EAAA;AAC9F,EAAA,MAAM,MAAS,GAAA,UAAA,CAAW,aAAc,CAAA,KAAA,EAAO,IAAI,CAAA;AAEnD,EAAI,IAAA,MAAA,CAAO,WAAW,CAAG,EAAA;AACvB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,uBAEK,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,CAAO,GAAI,CAAA,CAAC,KACX,qBAAA,KAAA,CAAA,aAAA,CAAC,6BAA8B,EAAA,EAAA,KAAA,EAAc,GAAK,EAAA,KAAA,CAAM,KAAM,CAAA,GAAA,EAAK,CACpE,CACH,CAAA;AAEJ;AAGgB,SAAA,6BAAA,CAA8B,EAAE,KAAA,EAA4C,EAAA;AAnC5F,EAAA,IAAA,EAAA,EAAA,EAAA;AAoCE,EAAA,MAAM,SAAY,GAAA,CAAA,WAAA,EAAc,KAAM,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAC/C,EAAA,MAAM,EAAE,IAAA,EAAM,QAAS,EAAA,GAAI,MAAM,QAAS,EAAA;AAC1C,EAAA,MAAM,cAAc,OAAQ,CAAA,IAAA,IAAQ,IAAK,CAAA,KAAA,KAAU,aAAa,OAAO,CAAA;AAEvE,EAAA,IAAI,QAAU,EAAA;AACZ,IAAO,OAAA,IAAA;AAAA;AAGT,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,cACd,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,OAAS,EAAA,SAAA;AAAA,MACT,SAAW,EAAA,WAAA;AAAA,MACX,UAAU,MAAG;AAjDrB,QAAAA,IAAAA,GAAAA;AAiDwB,QAAA,OAAA,CAAAA,GAAA,GAAA,KAAA,CAAM,WAAN,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAA,CAAA,IAAA,CAAA,KAAA,CAAA;AAAA,OAAA;AAAA,MAChB,KAAA,EAAO,MAAM,KAAM,CAAA,IAAA;AAAA,MACnB,WAAA,EAAa,MAAM,KAAM,CAAA,WAAA;AAAA,MACzB,QAAO,EAAM,GAAA,CAAA,EAAA,GAAA,KAAA,CAAA,KAAA,CAAM,SAAZ,IAAkB,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA,KAAlB,mBAA2B,CAAG,CAAA,CAAA;AAAA;AAAA,qBAEtC,KAAA,CAAA,aAAA,CAAA,KAAA,CAAM,WAAN,EAAgB,KAAA,EAAO,OAAO,CACjC,CAAA;AAEJ;AAEA,MAAM,cAAiB,GAAA,GAAA,CAAI,EAAE,OAAA,EAAS,QAAQ,CAAA;;;;"}
|
|
@@ -9,12 +9,13 @@ import { getMessageFromError } from '../../../utils/getMessageFromError.js';
|
|
|
9
9
|
import { writeSceneLog } from '../../../utils/writeSceneLog.js';
|
|
10
10
|
import { registerQueryWithController } from '../../registerQueryWithController.js';
|
|
11
11
|
import { SceneDataLayerBase } from '../SceneDataLayerBase.js';
|
|
12
|
-
import { DataLayerControlSwitch } from '../SceneDataLayerControls.js';
|
|
13
12
|
import { executeAnnotationQuery } from './standardAnnotationQuery.js';
|
|
14
13
|
import { postProcessQueryResult, dedupAnnotations } from './utils.js';
|
|
15
14
|
import { wrapInSafeSerializableSceneObject } from '../../../utils/wrapInSafeSerializableSceneObject.js';
|
|
16
15
|
import { RefreshEvent } from '@grafana/runtime';
|
|
17
16
|
import { DrilldownDependenciesManager } from '../../../variables/DrilldownDependenciesManager.js';
|
|
17
|
+
import { InlineSwitch } from '@grafana/ui';
|
|
18
|
+
import { css } from '@emotion/css';
|
|
18
19
|
|
|
19
20
|
class AnnotationsDataLayer extends SceneDataLayerBase {
|
|
20
21
|
constructor(initialState) {
|
|
@@ -127,12 +128,25 @@ class AnnotationsDataLayer extends SceneDataLayerBase {
|
|
|
127
128
|
}
|
|
128
129
|
AnnotationsDataLayer.Component = AnnotationsDataLayerRenderer;
|
|
129
130
|
function AnnotationsDataLayerRenderer({ model }) {
|
|
130
|
-
const { isHidden } = model.useState();
|
|
131
|
+
const { isEnabled, isHidden } = model.useState();
|
|
132
|
+
const elementId = `data-layer-${model.state.key}`;
|
|
131
133
|
if (isHidden) {
|
|
132
134
|
return null;
|
|
133
135
|
}
|
|
134
|
-
return /* @__PURE__ */ React.createElement(
|
|
136
|
+
return /* @__PURE__ */ React.createElement(
|
|
137
|
+
InlineSwitch,
|
|
138
|
+
{
|
|
139
|
+
className: switchStyle,
|
|
140
|
+
id: elementId,
|
|
141
|
+
value: isEnabled,
|
|
142
|
+
onChange: () => model.setState({ isEnabled: !isEnabled })
|
|
143
|
+
}
|
|
144
|
+
);
|
|
135
145
|
}
|
|
146
|
+
const switchStyle = css({
|
|
147
|
+
borderBottomLeftRadius: 0,
|
|
148
|
+
borderTopLeftRadius: 0
|
|
149
|
+
});
|
|
136
150
|
|
|
137
151
|
export { AnnotationsDataLayer };
|
|
138
152
|
//# sourceMappingURL=AnnotationsDataLayer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnotationsDataLayer.js","sources":["../../../../../src/querying/layers/annotations/AnnotationsDataLayer.tsx"],"sourcesContent":["import { arrayToDataFrame, DataTopic, AnnotationQuery, ScopedVars, PanelData } from '@grafana/data';\nimport { LoadingState } from '@grafana/schema';\nimport React from 'react';\nimport { map, Unsubscribable } from 'rxjs';\nimport { emptyPanelData } from '../../../core/SceneDataNode';\nimport { sceneGraph } from '../../../core/sceneGraph';\nimport {\n SceneComponentProps,\n SceneDataLayerProvider,\n SceneDataLayerProviderState,\n SceneTimeRangeLike,\n} from '../../../core/types';\nimport { getDataSource } from '../../../utils/getDataSource';\nimport { getMessageFromError } from '../../../utils/getMessageFromError';\nimport { writeSceneLog } from '../../../utils/writeSceneLog';\nimport { registerQueryWithController } from '../../registerQueryWithController';\nimport { SceneDataLayerBase } from '../SceneDataLayerBase';\nimport {
|
|
1
|
+
{"version":3,"file":"AnnotationsDataLayer.js","sources":["../../../../../src/querying/layers/annotations/AnnotationsDataLayer.tsx"],"sourcesContent":["import { arrayToDataFrame, DataTopic, AnnotationQuery, ScopedVars, PanelData } from '@grafana/data';\nimport { LoadingState } from '@grafana/schema';\nimport React from 'react';\nimport { map, Unsubscribable } from 'rxjs';\nimport { emptyPanelData } from '../../../core/SceneDataNode';\nimport { sceneGraph } from '../../../core/sceneGraph';\nimport {\n SceneComponentProps,\n SceneDataLayerProvider,\n SceneDataLayerProviderState,\n SceneTimeRangeLike,\n} from '../../../core/types';\nimport { getDataSource } from '../../../utils/getDataSource';\nimport { getMessageFromError } from '../../../utils/getMessageFromError';\nimport { writeSceneLog } from '../../../utils/writeSceneLog';\nimport { registerQueryWithController } from '../../registerQueryWithController';\nimport { SceneDataLayerBase } from '../SceneDataLayerBase';\nimport { AnnotationQueryResults, executeAnnotationQuery } from './standardAnnotationQuery';\nimport { dedupAnnotations, postProcessQueryResult } from './utils';\nimport { wrapInSafeSerializableSceneObject } from '../../../utils/wrapInSafeSerializableSceneObject';\nimport { RefreshEvent } from '@grafana/runtime';\nimport { DrilldownDependenciesManager } from '../../../variables/DrilldownDependenciesManager';\nimport { InlineSwitch } from '@grafana/ui';\nimport { css } from '@emotion/css';\n\ninterface AnnotationsDataLayerState extends SceneDataLayerProviderState {\n query: AnnotationQuery;\n}\n\nexport class AnnotationsDataLayer\n extends SceneDataLayerBase<AnnotationsDataLayerState>\n implements SceneDataLayerProvider\n{\n static Component = AnnotationsDataLayerRenderer;\n\n private _scopedVars: ScopedVars = {\n __sceneObject: wrapInSafeSerializableSceneObject(this),\n };\n private _timeRangeSub: Unsubscribable | undefined;\n\n private _drilldownDependenciesManager: DrilldownDependenciesManager<AnnotationsDataLayerState> =\n new DrilldownDependenciesManager(this._variableDependency);\n\n public constructor(initialState: AnnotationsDataLayerState) {\n super(\n {\n isEnabled: true,\n ...initialState,\n },\n ['query']\n );\n }\n\n public onEnable(): void {\n this.publishEvent(new RefreshEvent(), true);\n\n const timeRange = sceneGraph.getTimeRange(this);\n\n this.setState({\n query: {\n ...this.state.query,\n enable: true,\n },\n });\n\n this._timeRangeSub = timeRange.subscribeToState(() => {\n this.runWithTimeRange(timeRange);\n });\n }\n\n public onDisable(): void {\n this.publishEvent(new RefreshEvent(), true);\n\n this.setState({\n query: {\n ...this.state.query,\n enable: false,\n },\n });\n\n this._timeRangeSub?.unsubscribe();\n }\n\n public runLayer() {\n writeSceneLog('AnnotationsDataLayer', 'run layer');\n const timeRange = sceneGraph.getTimeRange(this);\n this.runWithTimeRange(timeRange);\n }\n\n private async runWithTimeRange(timeRange: SceneTimeRangeLike) {\n const { query } = this.state;\n\n if (!query.enable) {\n return;\n }\n\n this._drilldownDependenciesManager.findAndSubscribeToDrilldowns(query.datasource?.uid);\n\n if (this.querySub) {\n this.querySub.unsubscribe();\n }\n\n if (this._variableDependency.hasDependencyInLoadingState()) {\n writeSceneLog('AnnotationsDataLayer', 'Variable dependency is in loading state, skipping query execution');\n return;\n }\n\n try {\n const ds = await this.resolveDataSource(query);\n\n let stream = executeAnnotationQuery(\n ds,\n timeRange,\n query,\n this,\n this._drilldownDependenciesManager.getFilters(),\n this._drilldownDependenciesManager.getGroupByKeys()\n ).pipe(\n registerQueryWithController({\n type: 'AnnotationsDataLayer/annotationsLoading',\n origin: this,\n cancel: () => this.cancelQuery(),\n }),\n map((events) => {\n const stateUpdate = this.processEvents(query, events);\n return stateUpdate;\n })\n );\n\n this.querySub = stream.subscribe((stateUpdate) => {\n this.publishResults(stateUpdate);\n });\n } catch (e) {\n this.publishResults({\n ...emptyPanelData,\n state: LoadingState.Error,\n errors: [\n {\n message: getMessageFromError(e),\n },\n ],\n });\n console.error('AnnotationsDataLayer error', e);\n }\n }\n\n protected async resolveDataSource(query: AnnotationQuery) {\n return await getDataSource(query.datasource || undefined, this._scopedVars);\n }\n\n protected processEvents(query: AnnotationQuery, events: AnnotationQueryResults): PanelData {\n let processedEvents = postProcessQueryResult(query, events.events || []);\n processedEvents = dedupAnnotations(processedEvents);\n\n const stateUpdate = { ...emptyPanelData, state: events.state };\n const df = arrayToDataFrame(processedEvents);\n\n df.meta = {\n ...df.meta,\n dataTopic: DataTopic.Annotations,\n };\n\n stateUpdate.series = [df];\n\n return stateUpdate;\n }\n}\n\nfunction AnnotationsDataLayerRenderer({ model }: SceneComponentProps<AnnotationsDataLayer>) {\n const { isEnabled, isHidden } = model.useState();\n const elementId = `data-layer-${model.state.key}`;\n\n if (isHidden) {\n return null;\n }\n\n return (\n <InlineSwitch\n className={switchStyle}\n id={elementId}\n value={isEnabled}\n onChange={() => model.setState({ isEnabled: !isEnabled })}\n />\n );\n}\n\nconst switchStyle = css({\n borderBottomLeftRadius: 0,\n borderTopLeftRadius: 0,\n});\n"],"names":[],"mappings":"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"}
|
|
@@ -36,8 +36,8 @@ var grafanaScenes = {
|
|
|
36
36
|
"expand-row": "Espandi riga"
|
|
37
37
|
},
|
|
38
38
|
"scene-refresh-picker": {
|
|
39
|
-
"text-cancel": "",
|
|
40
|
-
"text-refresh": "",
|
|
39
|
+
"text-cancel": "Annulla",
|
|
40
|
+
"text-refresh": "Aggiorna",
|
|
41
41
|
"tooltip-cancel": ""
|
|
42
42
|
},
|
|
43
43
|
"scene-time-range-compare-renderer": {
|
|
@@ -163,4 +163,4 @@ var grafanaScenes = {
|
|
|
163
163
|
};
|
|
164
164
|
|
|
165
165
|
exports.default = grafanaScenes;
|
|
166
|
-
//# sourceMappingURL=grafana-scenes-
|
|
166
|
+
//# sourceMappingURL=grafana-scenes-B10eGhqN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-scenes-
|
|
1
|
+
{"version":3,"file":"grafana-scenes-B10eGhqN.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -36,8 +36,8 @@ var grafanaScenes = {
|
|
|
36
36
|
"expand-row": "Perbesar baris"
|
|
37
37
|
},
|
|
38
38
|
"scene-refresh-picker": {
|
|
39
|
-
"text-cancel": "",
|
|
40
|
-
"text-refresh": "",
|
|
39
|
+
"text-cancel": "Batalkan",
|
|
40
|
+
"text-refresh": "Muat ulang",
|
|
41
41
|
"tooltip-cancel": ""
|
|
42
42
|
},
|
|
43
43
|
"scene-time-range-compare-renderer": {
|
|
@@ -163,4 +163,4 @@ var grafanaScenes = {
|
|
|
163
163
|
};
|
|
164
164
|
|
|
165
165
|
exports.default = grafanaScenes;
|
|
166
|
-
//# sourceMappingURL=grafana-scenes-
|
|
166
|
+
//# sourceMappingURL=grafana-scenes-B2NM8uIa.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-scenes-
|
|
1
|
+
{"version":3,"file":"grafana-scenes-B2NM8uIa.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -36,8 +36,8 @@ var grafanaScenes = {
|
|
|
36
36
|
"expand-row": "Expandera rad"
|
|
37
37
|
},
|
|
38
38
|
"scene-refresh-picker": {
|
|
39
|
-
"text-cancel": "",
|
|
40
|
-
"text-refresh": "",
|
|
39
|
+
"text-cancel": "Avbryt",
|
|
40
|
+
"text-refresh": "Uppdatera",
|
|
41
41
|
"tooltip-cancel": ""
|
|
42
42
|
},
|
|
43
43
|
"scene-time-range-compare-renderer": {
|
|
@@ -163,4 +163,4 @@ var grafanaScenes = {
|
|
|
163
163
|
};
|
|
164
164
|
|
|
165
165
|
exports.default = grafanaScenes;
|
|
166
|
-
//# sourceMappingURL=grafana-scenes-
|
|
166
|
+
//# sourceMappingURL=grafana-scenes-BKyaPXlz.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-scenes-
|
|
1
|
+
{"version":3,"file":"grafana-scenes-BKyaPXlz.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -36,8 +36,8 @@ var grafanaScenes = {
|
|
|
36
36
|
"expand-row": "Expandir linha"
|
|
37
37
|
},
|
|
38
38
|
"scene-refresh-picker": {
|
|
39
|
-
"text-cancel": "",
|
|
40
|
-
"text-refresh": "",
|
|
39
|
+
"text-cancel": "Cancelar",
|
|
40
|
+
"text-refresh": "Atualizar",
|
|
41
41
|
"tooltip-cancel": ""
|
|
42
42
|
},
|
|
43
43
|
"scene-time-range-compare-renderer": {
|
|
@@ -163,4 +163,4 @@ var grafanaScenes = {
|
|
|
163
163
|
};
|
|
164
164
|
|
|
165
165
|
exports.default = grafanaScenes;
|
|
166
|
-
//# sourceMappingURL=grafana-scenes-
|
|
166
|
+
//# sourceMappingURL=grafana-scenes-BYpkzUpx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-scenes-
|
|
1
|
+
{"version":3,"file":"grafana-scenes-BYpkzUpx.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -36,8 +36,8 @@ var grafanaScenes = {
|
|
|
36
36
|
"expand-row": "行を展開"
|
|
37
37
|
},
|
|
38
38
|
"scene-refresh-picker": {
|
|
39
|
-
"text-cancel": "",
|
|
40
|
-
"text-refresh": "",
|
|
39
|
+
"text-cancel": "キャンセル",
|
|
40
|
+
"text-refresh": "更新",
|
|
41
41
|
"tooltip-cancel": ""
|
|
42
42
|
},
|
|
43
43
|
"scene-time-range-compare-renderer": {
|
|
@@ -163,4 +163,4 @@ var grafanaScenes = {
|
|
|
163
163
|
};
|
|
164
164
|
|
|
165
165
|
exports.default = grafanaScenes;
|
|
166
|
-
//# sourceMappingURL=grafana-scenes-
|
|
166
|
+
//# sourceMappingURL=grafana-scenes-Bf6nP3Zg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grafana-scenes-Bf6nP3Zg.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -36,8 +36,8 @@ var grafanaScenes = {
|
|
|
36
36
|
"expand-row": "Développer la ligne"
|
|
37
37
|
},
|
|
38
38
|
"scene-refresh-picker": {
|
|
39
|
-
"text-cancel": "",
|
|
40
|
-
"text-refresh": "",
|
|
39
|
+
"text-cancel": "Annuler",
|
|
40
|
+
"text-refresh": "Actualiser",
|
|
41
41
|
"tooltip-cancel": ""
|
|
42
42
|
},
|
|
43
43
|
"scene-time-range-compare-renderer": {
|
|
@@ -163,4 +163,4 @@ var grafanaScenes = {
|
|
|
163
163
|
};
|
|
164
164
|
|
|
165
165
|
exports.default = grafanaScenes;
|
|
166
|
-
//# sourceMappingURL=grafana-scenes-
|
|
166
|
+
//# sourceMappingURL=grafana-scenes-BgFDPQrP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grafana-scenes-BgFDPQrP.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -36,8 +36,8 @@ var grafanaScenes = {
|
|
|
36
36
|
"expand-row": "Sor kibontása"
|
|
37
37
|
},
|
|
38
38
|
"scene-refresh-picker": {
|
|
39
|
-
"text-cancel": "",
|
|
40
|
-
"text-refresh": "",
|
|
39
|
+
"text-cancel": "Mégse",
|
|
40
|
+
"text-refresh": "Frissítés",
|
|
41
41
|
"tooltip-cancel": ""
|
|
42
42
|
},
|
|
43
43
|
"scene-time-range-compare-renderer": {
|
|
@@ -163,4 +163,4 @@ var grafanaScenes = {
|
|
|
163
163
|
};
|
|
164
164
|
|
|
165
165
|
exports.default = grafanaScenes;
|
|
166
|
-
//# sourceMappingURL=grafana-scenes-
|
|
166
|
+
//# sourceMappingURL=grafana-scenes-C3OHMat0.js.map
|