mirror of
https://github.com/grafana/grafana.git
synced 2025-02-12 08:35:43 -06:00
* Update dependency prettier to v3 (#71586) * Update dependency prettier to v3 * run prettier * ignore prettier update in legacy select scss * update command line arg --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com> * unplug prettier --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
59 lines
1.3 KiB
TypeScript
59 lines
1.3 KiB
TypeScript
import React from 'react';
|
|
|
|
import { CanvasElementOptions, CanvasFrameOptions } from 'app/features/canvas';
|
|
|
|
import { FrameState } from './frame';
|
|
import { Scene } from './scene';
|
|
|
|
export class RootElement extends FrameState {
|
|
constructor(
|
|
public options: CanvasFrameOptions,
|
|
public scene: Scene,
|
|
private changeCallback: () => void
|
|
) {
|
|
super(options, scene);
|
|
|
|
this.sizeStyle = {
|
|
height: '100%',
|
|
width: '100%',
|
|
};
|
|
}
|
|
|
|
isRoot(): this is RootElement {
|
|
return true;
|
|
}
|
|
|
|
// root type can not change
|
|
onChange(options: CanvasElementOptions) {
|
|
this.revId++;
|
|
this.options = { ...options } as CanvasFrameOptions;
|
|
this.changeCallback();
|
|
}
|
|
|
|
getSaveModel(): CanvasFrameOptions {
|
|
const { placement, constraint, ...rest } = this.options;
|
|
|
|
return {
|
|
...rest, // everything except placement & constraint
|
|
elements: this.elements.map((v) => v.getSaveModel()),
|
|
};
|
|
}
|
|
|
|
setRootRef = (target: HTMLDivElement) => {
|
|
this.div = target;
|
|
};
|
|
|
|
render() {
|
|
return (
|
|
<div
|
|
onContextMenu={(event) => event.preventDefault()}
|
|
key={this.UID}
|
|
ref={this.setRootRef}
|
|
style={{ ...this.sizeStyle, ...this.dataStyle }}
|
|
>
|
|
{this.elements.map((v) => v.render())}
|
|
</div>
|
|
);
|
|
}
|
|
}
|