1 |
- {"version":3,"file":"TestStuffPage.80565874eef109084c09.js","mappings":"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","sources":["webpack://grafana/./public/app/features/query/components/QueryEditorRows.tsx","webpack://grafana/./public/app/features/sandbox/TestStuffPage.tsx","webpack://grafana/./.yarn/__virtual__/react-use-virtual-00326e70ba/3/opt/drone/yarncache/react-use-npm-17.3.2-a032cbeb01-7379460f51.zip/node_modules/react-use/esm/useObservable.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport { DragDropContext, DragStart, Droppable, DropResult } from 'react-beautiful-dnd';\n\nimport {\n CoreApp,\n DataQuery,\n DataSourceInstanceSettings,\n DataSourceRef,\n EventBusExtended,\n HistoryItem,\n PanelData,\n} from '@grafana/data';\nimport { getDataSourceSrv, reportInteraction } from '@grafana/runtime';\n\nimport { QueryEditorRow } from './QueryEditorRow';\n\ninterface Props {\n // The query configuration\n queries: DataQuery[];\n dsSettings: DataSourceInstanceSettings;\n\n // Query editing\n onQueriesChange: (queries: DataQuery[]) => void;\n onAddQuery: (query: DataQuery) => void;\n onRunQueries: () => void;\n\n // Query Response Data\n data: PanelData;\n\n // Misc\n app?: CoreApp;\n history?: Array<HistoryItem<DataQuery>>;\n eventBus?: EventBusExtended;\n}\n\nexport class QueryEditorRows extends PureComponent<Props> {\n onRemoveQuery = (query: DataQuery) => {\n this.props.onQueriesChange(this.props.queries.filter((item) => item !== query));\n };\n\n onChangeQuery(query: DataQuery, index: number) {\n const { queries, onQueriesChange } = this.props;\n\n // update query in array\n onQueriesChange(\n queries.map((item, itemIndex) => {\n if (itemIndex === index) {\n return query;\n }\n return item;\n })\n );\n }\n\n onDataSourceChange(dataSource: DataSourceInstanceSettings, index: number) {\n const { queries, onQueriesChange } = this.props;\n\n onQueriesChange(\n queries.map((item, itemIndex) => {\n if (itemIndex !== index) {\n return item;\n }\n\n const dataSourceRef: DataSourceRef = {\n type: dataSource.type,\n uid: dataSource.uid,\n };\n\n if (item.datasource) {\n const previous = getDataSourceSrv().getInstanceSettings(item.datasource);\n\n if (previous?.type === dataSource.type) {\n return {\n ...item,\n datasource: dataSourceRef,\n };\n }\n }\n\n return {\n refId: item.refId,\n hide: item.hide,\n datasource: dataSourceRef,\n };\n })\n );\n }\n\n onDragStart = (result: DragStart) => {\n const { queries, dsSettings } = this.props;\n\n reportInteraction('query_row_reorder_started', {\n startIndex: result.source.index,\n numberOfQueries: queries.length,\n datasourceType: dsSettings.type,\n });\n };\n\n onDragEnd = (result: DropResult) => {\n const { queries, onQueriesChange, dsSettings } = this.props;\n\n if (!result || !result.destination) {\n return;\n }\n\n const startIndex = result.source.index;\n const endIndex = result.destination.index;\n if (startIndex === endIndex) {\n reportInteraction('query_row_reorder_canceled', {\n startIndex,\n endIndex,\n numberOfQueries: queries.length,\n datasourceType: dsSettings.type,\n });\n return;\n }\n\n const update = Array.from(queries);\n const [removed] = update.splice(startIndex, 1);\n update.splice(endIndex, 0, removed);\n onQueriesChange(update);\n\n reportInteraction('query_row_reorder_ended', {\n startIndex,\n endIndex,\n numberOfQueries: queries.length,\n datasourceType: dsSettings.type,\n });\n };\n\n render() {\n const { dsSettings, data, queries, app, history, eventBus } = this.props;\n\n return (\n <DragDropContext onDragStart={this.onDragStart} onDragEnd={this.onDragEnd}>\n <Droppable droppableId=\"transformations-list\" direction=\"vertical\">\n {(provided) => {\n return (\n <div ref={provided.innerRef} {...provided.droppableProps}>\n {queries.map((query, index) => {\n const dataSourceSettings = getDataSourceSettings(query, dsSettings);\n const onChangeDataSourceSettings = dsSettings.meta.mixed\n ? (settings: DataSourceInstanceSettings) => this.onDataSourceChange(settings, index)\n : undefined;\n\n return (\n <QueryEditorRow\n id={query.refId}\n index={index}\n key={query.refId}\n data={data}\n query={query}\n dataSource={dataSourceSettings}\n onChangeDataSource={onChangeDataSourceSettings}\n onChange={(query) => this.onChangeQuery(query, index)}\n onRemoveQuery={this.onRemoveQuery}\n onAddQuery={this.props.onAddQuery}\n onRunQuery={this.props.onRunQueries}\n queries={queries}\n app={app}\n history={history}\n eventBus={eventBus}\n />\n );\n })}\n {provided.placeholder}\n </div>\n );\n }}\n </Droppable>\n </DragDropContext>\n );\n }\n}\n\nconst getDataSourceSettings = (\n query: DataQuery,\n groupSettings: DataSourceInstanceSettings\n): DataSourceInstanceSettings => {\n if (!query.datasource) {\n return groupSettings;\n }\n const querySettings = getDataSourceSrv().getInstanceSettings(query.datasource);\n return querySettings || groupSettings;\n};\n","import React, { FC, useMemo, useState } from 'react';\nimport { useObservable } from 'react-use';\nimport AutoSizer from 'react-virtualized-auto-sizer';\n\nimport {\n ApplyFieldOverrideOptions,\n DataTransformerConfig,\n dateMath,\n FieldColorModeId,\n NavModelItem,\n PanelData,\n} from '@grafana/data';\nimport { Button, Table } from '@grafana/ui';\nimport { config } from 'app/core/config';\nimport { useAppNotification } from 'app/core/copy/appNotification';\nimport { QueryGroupOptions } from 'app/types';\n\nimport Page from '../../core/components/Page/Page';\nimport { PanelRenderer } from '../panel/components/PanelRenderer';\nimport { QueryGroup } from '../query/components/QueryGroup';\nimport { PanelQueryRunner } from '../query/state/PanelQueryRunner';\n\ninterface State {\n queryRunner: PanelQueryRunner;\n queryOptions: QueryGroupOptions;\n data?: PanelData;\n}\n\nexport const TestStuffPage: FC = () => {\n const [state, setState] = useState<State>(getDefaultState());\n const { queryOptions, queryRunner } = state;\n\n const onRunQueries = () => {\n const timeRange = { from: 'now-1h', to: 'now' };\n\n queryRunner.run({\n queries: queryOptions.queries,\n datasource: queryOptions.dataSource,\n timezone: 'browser',\n timeRange: { from: dateMath.parse(timeRange.from)!, to: dateMath.parse(timeRange.to)!, raw: timeRange },\n maxDataPoints: queryOptions.maxDataPoints ?? 100,\n minInterval: queryOptions.minInterval,\n });\n };\n\n const onOptionsChange = (queryOptions: QueryGroupOptions) => {\n setState({ ...state, queryOptions });\n };\n\n /**\n * Subscribe to data\n */\n const observable = useMemo(() => queryRunner.getData({ withFieldConfig: true, withTransforms: true }), [queryRunner]);\n const data = useObservable(observable);\n\n const node: NavModelItem = {\n id: 'test-page',\n text: 'Test page',\n icon: 'dashboard',\n subTitle: 'FOR TESTING!',\n url: 'sandbox/test',\n };\n\n const notifyApp = useAppNotification();\n\n return (\n <Page navModel={{ node: node, main: node }}>\n <Page.Contents>\n {data && (\n <AutoSizer style={{ width: '100%', height: '600px' }}>\n {({ width }) => {\n return (\n <div>\n <PanelRenderer\n title=\"Hello\"\n pluginId=\"timeseries\"\n width={width}\n height={300}\n data={data}\n options={{}}\n fieldConfig={{ defaults: {}, overrides: [] }}\n timeZone=\"browser\"\n />\n <Table data={data.series[0]} width={width} height={300} />\n </div>\n );\n }}\n </AutoSizer>\n )}\n <div style={{ marginTop: '16px', height: '45%' }}>\n <QueryGroup\n options={queryOptions}\n queryRunner={queryRunner}\n onRunQueries={onRunQueries}\n onOptionsChange={onOptionsChange}\n />\n </div>\n <div style={{ display: 'flex', gap: '1em' }}>\n <Button onClick={() => notifyApp.success('Success toast', 'some more text goes here')} variant=\"primary\">\n Success\n </Button>\n <Button\n onClick={() => notifyApp.warning('Warning toast', 'some more text goes here', 'bogus-trace-99999')}\n variant=\"secondary\"\n >\n Warning\n </Button>\n <Button\n onClick={() => notifyApp.error('Error toast', 'some more text goes here', 'bogus-trace-fdsfdfsfds')}\n variant=\"destructive\"\n >\n Error\n </Button>\n </div>\n </Page.Contents>\n </Page>\n );\n};\n\nexport function getDefaultState(): State {\n const options: ApplyFieldOverrideOptions = {\n fieldConfig: {\n defaults: {\n color: {\n mode: FieldColorModeId.PaletteClassic,\n },\n },\n overrides: [],\n },\n replaceVariables: (v: string) => v,\n theme: config.theme2,\n };\n\n const dataConfig = {\n getTransformations: () => [] as DataTransformerConfig[],\n getFieldOverrideOptions: () => options,\n getDataSupport: () => ({ annotations: false, alertStates: false }),\n };\n\n return {\n queryRunner: new PanelQueryRunner(dataConfig),\n queryOptions: {\n queries: [],\n dataSource: {\n name: 'gdev-testdata',\n },\n maxDataPoints: 100,\n },\n };\n}\n\nexport default TestStuffPage;\n","import { useState } from 'react';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nfunction useObservable(observable$, initialValue) {\n var _a = useState(initialValue), value = _a[0], update = _a[1];\n useIsomorphicLayoutEffect(function () {\n var s = observable$.subscribe(update);\n return function () { return s.unsubscribe(); };\n }, [observable$]);\n return value;\n}\nexport default useObservable;\n"],"names":["QueryEditorRows","PureComponent","query","this","props","onQueriesChange","queries","filter","item","result","dsSettings","reportInteraction","startIndex","source","index","numberOfQueries","length","datasourceType","type","destination","endIndex","update","Array","from","removed","splice","onChangeQuery","map","itemIndex","onDataSourceChange","dataSource","dataSourceRef","uid","datasource","previous","getDataSourceSrv","getInstanceSettings","refId","hide","render","data","app","history","eventBus","onDragStart","onDragEnd","droppableId","direction","provided","ref","innerRef","droppableProps","dataSourceSettings","getDataSourceSettings","onChangeDataSourceSettings","meta","mixed","settings","undefined","id","onChangeDataSource","onChange","onRemoveQuery","onAddQuery","onRunQuery","onRunQueries","placeholder","groupSettings","TestStuffPage","state","setState","useState","getDefaultState","queryOptions","queryRunner","observable","useMemo","getData","withFieldConfig","withTransforms","useObservable","node","text","icon","subTitle","url","notifyApp","useAppNotification","navModel","main","style","width","height","title","pluginId","options","fieldConfig","defaults","overrides","timeZone","Table","series","marginTop","timeRange","to","run","timezone","dateMath","raw","maxDataPoints","minInterval","onOptionsChange","display","gap","Button","onClick","success","variant","warning","error","color","mode","FieldColorModeId","replaceVariables","v","theme","config","dataConfig","getTransformations","getFieldOverrideOptions","getDataSupport","annotations","alertStates","PanelQueryRunner","name","observable$","initialValue","_a","value","s","subscribe","unsubscribe"],"sourceRoot":""}
|