mirror of https://github.com/grafana/grafana
parent
e7c37cc316
commit
99411bf37a
@ -0,0 +1,4 @@ |
||||
export interface AppEvent<T> { |
||||
readonly name: string; |
||||
payload?: T; |
||||
} |
||||
@ -0,0 +1,7 @@ |
||||
import { eventFactory } from './utils'; |
||||
|
||||
export type AlertPayload = [string, string?]; |
||||
|
||||
export const alertSuccess = eventFactory<AlertPayload>('alert-success'); |
||||
export const alertWarning = eventFactory<AlertPayload>('alert-warning'); |
||||
export const alertError = eventFactory<AlertPayload>('alert-error'); |
||||
@ -1,2 +1,14 @@ |
||||
import { AppEvent } from './appEvent'; |
||||
|
||||
export type Omit<T, K> = Pick<T, Exclude<keyof T, K>>; |
||||
export type Subtract<T, K> = Omit<T, keyof K>; |
||||
|
||||
const typeList: Set<string> = new Set(); |
||||
export function eventFactory<T = undefined>(name: string): AppEvent<T> { |
||||
if (typeList.has(name)) { |
||||
throw new Error(`There is already an event defined with type '${name}'`); |
||||
} |
||||
|
||||
typeList.add(name); |
||||
return { name }; |
||||
} |
||||
|
||||
@ -0,0 +1,34 @@ |
||||
import { eventFactory } from '@grafana/data'; |
||||
import { DataQueryResponseData, DataQueryError } from '.'; |
||||
|
||||
/** Payloads */ |
||||
|
||||
export interface PanelChangeViewPayload { |
||||
fullscreen?: boolean; |
||||
edit?: boolean; |
||||
panelId?: number; |
||||
toggle?: boolean; |
||||
} |
||||
|
||||
export interface MenuElement { |
||||
text: string; |
||||
click: string; |
||||
role?: string; |
||||
shortcut?: string; |
||||
} |
||||
|
||||
/** Events */ |
||||
|
||||
export const refresh = eventFactory('refresh'); |
||||
export const componentDidMount = eventFactory('component-did-mount'); |
||||
export const dataError = eventFactory<DataQueryError>('data-error'); |
||||
export const dataReceived = eventFactory<DataQueryResponseData[]>('data-received'); |
||||
export const dataSnapshotLoad = eventFactory<DataQueryResponseData[]>('data-snapshot-load'); |
||||
export const editModeInitialized = eventFactory('init-edit-mode'); |
||||
export const initPanelActions = eventFactory<MenuElement[]>('init-panel-actions'); |
||||
export const panelChangeView = eventFactory<PanelChangeViewPayload>('panel-change-view'); |
||||
export const panelInitialized = eventFactory('panel-initialized'); |
||||
export const panelSizeChanged = eventFactory('panel-size-changed'); |
||||
export const panelTeardown = eventFactory('panel-teardown'); |
||||
export const render = eventFactory<any>('render'); |
||||
export const viewModeChanged = eventFactory('view-mode-changed'); |
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue