@grafana/scenes 0.1.0 → 0.2.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.
Files changed (31) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/dist/esm/components/NestedScene.js +8 -0
  3. package/dist/esm/components/NestedScene.js.map +1 -1
  4. package/dist/esm/components/VizPanel/VizPanel.js.map +1 -1
  5. package/dist/esm/components/VizPanel/VizPanelRenderer.js +30 -5
  6. package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
  7. package/dist/esm/components/layout/SceneFlexLayout.js +42 -45
  8. package/dist/esm/components/layout/SceneFlexLayout.js.map +1 -1
  9. package/dist/esm/components/layout/{SceneGridLayout.js → grid/SceneGridLayout.js} +57 -43
  10. package/dist/esm/components/layout/grid/SceneGridLayout.js.map +1 -0
  11. package/dist/esm/components/layout/{SceneGridRow.js → grid/SceneGridRow.js} +13 -14
  12. package/dist/esm/components/layout/grid/SceneGridRow.js.map +1 -0
  13. package/dist/esm/components/layout/grid/constants.js.map +1 -0
  14. package/dist/esm/core/types.js.map +1 -1
  15. package/dist/esm/index.js +4 -4
  16. package/dist/esm/variables/interpolation/formatRegistry.js +18 -36
  17. package/dist/esm/variables/interpolation/formatRegistry.js.map +1 -1
  18. package/dist/esm/variables/interpolation/sceneInterpolator.js +4 -3
  19. package/dist/esm/variables/interpolation/sceneInterpolator.js.map +1 -1
  20. package/dist/esm/variables/macros/AllVariablesMacro.js +4 -3
  21. package/dist/esm/variables/macros/AllVariablesMacro.js.map +1 -1
  22. package/dist/esm/variables/variants/MultiValueVariable.js +7 -6
  23. package/dist/esm/variables/variants/MultiValueVariable.js.map +1 -1
  24. package/dist/index.d.ts +57 -35
  25. package/dist/index.js +261 -235
  26. package/dist/index.js.map +1 -1
  27. package/package.json +2 -2
  28. package/dist/esm/components/layout/SceneGridLayout.js.map +0 -1
  29. package/dist/esm/components/layout/SceneGridRow.js.map +0 -1
  30. package/dist/esm/components/layout/constants.js.map +0 -1
  31. /package/dist/esm/components/layout/{constants.js → grid/constants.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grafana/scenes",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Grafana framework for building dynamic dashboards",
5
5
  "author": "Grafana Labs",
6
6
  "license": "AGPL-3.0-only",
@@ -114,5 +114,5 @@
114
114
  "prettier --write"
115
115
  ]
116
116
  },
117
- "gitHead": "b2bb6d8939afaac6b724e10b2a5d76a8d405e51b"
117
+ "gitHead": "cf720eb365b4cc333ca0a3c142a6adbf378238da"
118
118
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneGridLayout.js","sources":["../../../../src/components/layout/SceneGridLayout.tsx"],"sourcesContent":["import React from 'react';\nimport ReactGridLayout from 'react-grid-layout';\nimport AutoSizer from 'react-virtualized-auto-sizer';\n\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport {\n SceneComponentProps,\n SceneLayout,\n SceneLayoutChild,\n SceneLayoutState,\n SceneLayoutChildOptions,\n} from '../../core/types';\nimport { DEFAULT_PANEL_SPAN, GRID_CELL_HEIGHT, GRID_CELL_VMARGIN, GRID_COLUMN_COUNT } from './constants';\n\nimport { SceneGridRow } from './SceneGridRow';\n\ninterface SceneGridLayoutState extends SceneLayoutState {\n /**\n * Turn on or off dragging for all items. Indiviadual items can still disabled via placement.isDraggable\n **/\n isDraggable?: boolean;\n}\n\nexport class SceneGridLayout extends SceneObjectBase<SceneGridLayoutState> implements SceneLayout {\n public static Component = SceneGridLayoutRenderer;\n\n private _skipOnLayoutChange = false;\n\n public constructor(state: SceneGridLayoutState) {\n super({\n ...state,\n isDraggable: true,\n placement: state.placement,\n children: sortChildrenByPosition(state.children),\n });\n }\n\n /**\n * SceneLayout interface. Used for example by VizPanelRenderer\n */\n public isDraggable(): boolean {\n return this.state.isDraggable ?? false;\n }\n\n public getDragClass() {\n return `grid-drag-handle-${this.state.key}`;\n }\n\n public getDragClassCancel() {\n return `grid-drag-cancel`;\n }\n\n public toggleRow(row: SceneGridRow) {\n const isCollapsed = row.state.isCollapsed;\n\n if (!isCollapsed) {\n row.setState({ isCollapsed: true });\n // To force re-render\n this.setState({});\n return;\n }\n\n const rowChildren = row.state.children;\n\n if (rowChildren.length === 0) {\n row.setState({ isCollapsed: false });\n this.setState({});\n return;\n }\n\n // Ok we are expanding row. We need to update row children y pos (incase they are incorrect) and push items below down\n // Code copied from DashboardModel toggleRow()\n\n const rowY = row.state.placement?.y!;\n const firstPanelYPos = rowChildren[0].state.placement?.y ?? rowY;\n const yDiff = firstPanelYPos - (rowY + 1);\n\n // y max will represent the bottom y pos after all panels have been added\n // needed to know home much panels below should be pushed down\n let yMax = rowY;\n\n for (const panel of rowChildren) {\n // set the y gridPos if it wasn't already set\n const newSize = { ...panel.state.placement };\n newSize.y = newSize.y ?? rowY;\n // make sure y is adjusted (in case row moved while collapsed)\n newSize.y -= yDiff;\n if (newSize.y > panel.state.placement?.y!) {\n panel.setState({ placement: newSize });\n }\n // update insert post and y max\n yMax = Math.max(yMax, Number(newSize.y!) + Number(newSize.height!));\n }\n\n const pushDownAmount = yMax - rowY - 1;\n\n // push panels below down\n for (const child of this.state.children) {\n if (child.state.placement?.y! > rowY) {\n this.pushChildDown(child, pushDownAmount);\n }\n\n if (child instanceof SceneGridRow && child !== row) {\n for (const rowChild of child.state.children) {\n if (rowChild.state.placement?.y! > rowY) {\n this.pushChildDown(rowChild, pushDownAmount);\n }\n }\n }\n }\n\n row.setState({ isCollapsed: false });\n // Trigger re-render\n this.setState({});\n }\n\n public onLayoutChange = (layout: ReactGridLayout.Layout[]) => {\n if (this._skipOnLayoutChange) {\n // Layout has been updated by other RTL handler already\n this._skipOnLayoutChange = false;\n return;\n }\n\n for (const item of layout) {\n const child = this.getSceneLayoutChild(item.i);\n\n const nextSize = {\n x: item.x,\n y: item.y,\n width: item.w,\n height: item.h,\n };\n\n if (!isItemSizeEqual(child.state.placement!, nextSize)) {\n child.setState({\n placement: {\n ...child.state.placement,\n ...nextSize,\n },\n });\n }\n }\n\n this.setState({ children: sortChildrenByPosition(this.state.children) });\n };\n\n /**\n * Will also scan row children and return child of the row\n */\n public getSceneLayoutChild(key: string) {\n for (const child of this.state.children) {\n if (child.state.key === key) {\n return child;\n }\n\n if (child instanceof SceneGridRow) {\n for (const rowChild of child.state.children) {\n if (rowChild.state.key === key) {\n return rowChild;\n }\n }\n }\n }\n\n throw new Error('Scene layout child not found for GridItem');\n }\n\n public onResizeStop: ReactGridLayout.ItemCallback = (_, o, n) => {\n const child = this.getSceneLayoutChild(n.i);\n child.setState({\n placement: {\n ...child.state.placement,\n width: n.w,\n height: n.h,\n },\n });\n };\n\n private pushChildDown(child: SceneLayoutChild, amount: number) {\n child.setState({\n placement: {\n ...child.state.placement,\n y: child.state.placement?.y! + amount,\n },\n });\n }\n\n /**\n * We assume the layout array is storted according to y pos, and walk upwards until we find a row.\n * If it is collapsed there is no row to add it to. The default is then to return the SceneGridLayout itself\n */\n private findGridItemSceneParent(layout: ReactGridLayout.Layout[], startAt: number): SceneGridRow | SceneGridLayout {\n for (let i = startAt; i >= 0; i--) {\n const gridItem = layout[i];\n const sceneChild = this.getSceneLayoutChild(gridItem.i);\n\n if (sceneChild instanceof SceneGridRow) {\n // the closest row is collapsed return null\n if (sceneChild.state.isCollapsed) {\n return this;\n }\n\n return sceneChild;\n }\n }\n\n return this;\n }\n\n /**\n * This likely needs a slighltly different approach. Where we clone or deactivate or and re-activate the moved child\n */\n public moveChildTo(child: SceneLayoutChild, target: SceneGridLayout | SceneGridRow) {\n const currentParent = child.parent!;\n let rootChildren = this.state.children;\n const newChild = child.clone({ key: child.state.key });\n\n // Remove from current parent row\n if (currentParent instanceof SceneGridRow) {\n const newRow = currentParent.clone({\n children: currentParent.state.children.filter((c) => c.state.key !== child.state.key),\n });\n\n // new children with new row\n rootChildren = rootChildren.map((c) => (c === currentParent ? newRow : c));\n\n // if target is also a row\n if (target instanceof SceneGridRow) {\n const targetRow = target.clone({ children: [...target.state.children, newChild] });\n rootChildren = rootChildren.map((c) => (c === target ? targetRow : c));\n } else {\n // target is the main grid\n rootChildren = [...rootChildren, newChild];\n }\n } else {\n // current parent is the main grid remove it from there\n rootChildren = rootChildren.filter((c) => c.state.key !== child.state.key);\n // Clone the target row and add the child\n const targetRow = target.clone({ children: [...target.state.children, newChild] });\n // Replace row with new row\n rootChildren = rootChildren.map((c) => (c === target ? targetRow : c));\n }\n\n return rootChildren;\n }\n\n public onDragStop: ReactGridLayout.ItemCallback = (gridLayout, o, updatedItem) => {\n const sceneChild = this.getSceneLayoutChild(updatedItem.i)!;\n\n // Need to resort the grid layout based on new position (needed to to find the new parent)\n gridLayout = sortGridLayout(gridLayout);\n\n // Update children positions if they have changed\n for (let i = 0; i < gridLayout.length; i++) {\n const gridItem = gridLayout[i];\n const child = this.getSceneLayoutChild(gridItem.i)!;\n const childSize = child.state.placement!;\n\n if (childSize?.x !== gridItem.x || childSize?.y !== gridItem.y) {\n child.setState({\n placement: {\n ...child.state.placement,\n x: gridItem.x,\n y: gridItem.y,\n },\n });\n }\n }\n\n // Update the parent if the child if it has moved to a row or back to the grid\n const indexOfUpdatedItem = gridLayout.findIndex((item) => item.i === updatedItem.i);\n const newParent = this.findGridItemSceneParent(gridLayout, indexOfUpdatedItem - 1);\n let newChildren = this.state.children;\n\n if (newParent !== sceneChild.parent) {\n newChildren = this.moveChildTo(sceneChild, newParent);\n }\n\n this.setState({ children: sortChildrenByPosition(newChildren) });\n this._skipOnLayoutChange = true;\n };\n\n private toGridCell(child: SceneLayoutChild): ReactGridLayout.Layout {\n const size = child.state.placement!;\n\n let x = size.x ?? 0;\n let y = size.y ?? 0;\n const w = Number.isInteger(Number(size.width)) ? Number(size.width) : DEFAULT_PANEL_SPAN;\n const h = Number.isInteger(Number(size.height)) ? Number(size.height) : DEFAULT_PANEL_SPAN;\n\n let isDraggable = Boolean(child.state.placement?.isDraggable);\n let isResizable = Boolean(child.state.placement?.isResizable);\n\n if (child instanceof SceneGridRow) {\n isDraggable = child.state.isCollapsed ? true : false;\n isResizable = false;\n }\n\n return { i: child.state.key!, x, y, h, w, isResizable, isDraggable };\n }\n\n public buildGridLayout(width: number): ReactGridLayout.Layout[] {\n let cells: ReactGridLayout.Layout[] = [];\n\n for (const child of this.state.children) {\n cells.push(this.toGridCell(child));\n\n if (child instanceof SceneGridRow && !child.state.isCollapsed) {\n for (const rowChild of child.state.children) {\n cells.push(this.toGridCell(rowChild));\n }\n }\n }\n\n // Sort by position\n cells = sortGridLayout(cells);\n\n if (width < 768) {\n // We should not persist the mobile layout\n this._skipOnLayoutChange = true;\n return cells.map((cell) => ({ ...cell, w: 24 }));\n }\n\n this._skipOnLayoutChange = false;\n\n return cells;\n }\n}\n\nfunction SceneGridLayoutRenderer({ model }: SceneComponentProps<SceneGridLayout>) {\n const { children } = model.useState();\n validateChildrenSize(children);\n\n return (\n <AutoSizer disableHeight>\n {({ width }) => {\n if (width === 0) {\n return null;\n }\n\n const layout = model.buildGridLayout(width);\n\n return (\n /**\n * The children is using a width of 100% so we need to guarantee that it is wrapped\n * in an element that has the calculated size given by the AutoSizer. The AutoSizer\n * has a width of 0 and will let its content overflow its div.\n */\n <div style={{ width: `${width}px`, height: '100%' }}>\n <ReactGridLayout\n width={width}\n /*\n Disable draggable if mobile device, solving an issue with unintentionally\n moving panels. https://github.com/grafana/grafana/issues/18497\n theme.breakpoints.md = 769\n */\n isDraggable={width > 768}\n isResizable={false}\n containerPadding={[0, 0]}\n useCSSTransforms={false}\n margin={[GRID_CELL_VMARGIN, GRID_CELL_VMARGIN]}\n cols={GRID_COLUMN_COUNT}\n rowHeight={GRID_CELL_HEIGHT}\n draggableHandle={`.grid-drag-handle-${model.state.key}`}\n draggableCancel=\".grid-drag-cancel\"\n // @ts-ignore: ignoring for now until we make the size type numbers-only\n layout={layout}\n onDragStop={model.onDragStop}\n onResizeStop={model.onResizeStop}\n onLayoutChange={model.onLayoutChange}\n isBounded={false}\n >\n {layout.map((gridItem) => {\n const sceneChild = model.getSceneLayoutChild(gridItem.i)!;\n return (\n <div key={sceneChild.state.key} style={{ display: 'flex' }}>\n <sceneChild.Component model={sceneChild} key={sceneChild.state.key} />\n </div>\n );\n })}\n </ReactGridLayout>\n </div>\n );\n }}\n </AutoSizer>\n );\n}\n\nfunction validateChildrenSize(children: SceneLayoutChild[]) {\n if (\n children.find(\n (c) =>\n !c.state.placement ||\n c.state.placement.height === undefined ||\n c.state.placement.width === undefined ||\n c.state.placement.x === undefined ||\n c.state.placement.y === undefined\n )\n ) {\n throw new Error('All children must have a size specified');\n }\n}\n\nfunction isItemSizeEqual(a: SceneLayoutChildOptions, b: SceneLayoutChildOptions) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\nfunction sortChildrenByPosition(children: SceneLayoutChild[]) {\n return [...children].sort((a, b) => {\n return a.state.placement?.y! - b.state.placement?.y! || a.state.placement?.x! - b.state.placement?.x!;\n });\n}\n\nfunction sortGridLayout(layout: ReactGridLayout.Layout[]) {\n return [...layout].sort((a, b) => a.y - b.y || a.x! - b.x);\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SceneGridRow.js","sources":["../../../../src/components/layout/SceneGridRow.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Icon, useStyles2 } from '@grafana/ui';\n\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneComponentProps, SceneLayoutChildState, SceneObject, SceneObjectUrlValues } from '../../core/types';\nimport { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig';\nimport { SceneDragHandle } from '../SceneDragHandle';\n\nimport { SceneGridLayout } from './SceneGridLayout';\nimport { GRID_COLUMN_COUNT } from './constants';\n\nexport interface SceneGridRowState extends SceneLayoutChildState {\n title: string;\n isCollapsible?: boolean;\n isCollapsed?: boolean;\n children: Array<SceneObject<SceneLayoutChildState>>;\n}\n\nexport class SceneGridRow extends SceneObjectBase<SceneGridRowState> {\n public static Component = SceneGridRowRenderer;\n\n protected _urlSync = new SceneObjectUrlSyncConfig(this, { keys: ['rowc'] });\n\n public constructor(state: SceneGridRowState) {\n super({\n isCollapsible: true,\n ...state,\n placement: {\n isResizable: false,\n isDraggable: true,\n ...state.placement,\n x: 0,\n height: 1,\n width: GRID_COLUMN_COUNT,\n },\n });\n }\n\n public getGridLayout(): SceneGridLayout {\n const layout = this.parent;\n\n if (!layout || !(layout instanceof SceneGridLayout)) {\n throw new Error('SceneGridRow must be a child of SceneGridLayout');\n }\n\n return layout;\n }\n\n public onCollapseToggle = () => {\n if (!this.state.isCollapsible) {\n return;\n }\n\n this.getGridLayout().toggleRow(this);\n };\n\n public getUrlState() {\n return { rowc: this.state.isCollapsed ? '1' : '0' };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues) {\n const isCollapsed = values.rowc === '1';\n if (isCollapsed !== this.state.isCollapsed) {\n this.onCollapseToggle();\n }\n }\n}\n\nexport function SceneGridRowRenderer({ model }: SceneComponentProps<SceneGridRow>) {\n const styles = useStyles2(getSceneGridRowStyles);\n const { isCollapsible, isCollapsed, title, placement } = model.useState();\n const dragHandle = <SceneDragHandle dragClass={model.getGridLayout().getDragClass()} />;\n\n return (\n <div className={styles.row}>\n <div className={cx(styles.rowHeader, isCollapsed && styles.rowHeaderCollapsed)}>\n <button onClick={model.onCollapseToggle} className={styles.rowTitleButton}>\n {isCollapsible && <Icon name={isCollapsed ? 'angle-right' : 'angle-down'} />}\n <span className={styles.rowTitle}>{title}</span>\n </button>\n {placement?.isDraggable && isCollapsed && <div>{dragHandle}</div>}\n </div>\n </div>\n );\n}\n\nconst getSceneGridRowStyles = (theme: GrafanaTheme2) => {\n return {\n row: css({\n width: '100%',\n height: '100%',\n position: 'relative',\n zIndex: 0,\n display: 'flex',\n flexDirection: 'column',\n }),\n rowHeader: css({\n width: '100%',\n height: '30px',\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: '8px',\n border: `1px solid transparent`,\n }),\n rowTitleButton: css({\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n background: 'transparent',\n border: 'none',\n gap: theme.spacing(1),\n }),\n rowHeaderCollapsed: css({\n marginBottom: '0px',\n background: theme.colors.background.primary,\n border: `1px solid ${theme.colors.border.weak}`,\n borderRadius: theme.shape.borderRadius(1),\n }),\n rowTitle: css({\n fontSize: theme.typography.h5.fontSize,\n fontWeight: theme.typography.fontWeightMedium,\n }),\n };\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../src/components/layout/constants.ts"],"sourcesContent":["export const DEFAULT_PANEL_SPAN = 4;\nexport const GRID_CELL_HEIGHT = 30;\nexport const GRID_CELL_VMARGIN = 8;\nexport const GRID_COLUMN_COUNT = 24;\n"],"names":[],"mappings":"AAAO,MAAM,kBAAqB,GAAA,EAAA;AAC3B,MAAM,gBAAmB,GAAA,GAAA;AACzB,MAAM,iBAAoB,GAAA,EAAA;AAC1B,MAAM,iBAAoB,GAAA;;;;"}