types.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { ExcalidrawTextElement } from "../element/types";
  2. import { FlooredNumber } from "../types";
  3. export type SceneState = {
  4. scrollX: FlooredNumber;
  5. scrollY: FlooredNumber;
  6. // null indicates transparent bg
  7. viewBackgroundColor: string | null;
  8. zoom: number;
  9. shouldCacheIgnoreZoom: boolean;
  10. remotePointerViewportCoords: { [id: string]: { x: number; y: number } };
  11. remotePointerButton?: { [id: string]: string | undefined };
  12. remoteSelectedElementIds: { [elementId: string]: string[] };
  13. remotePointerUsernames: { [id: string]: string };
  14. };
  15. export type SceneScroll = {
  16. scrollX: FlooredNumber;
  17. scrollY: FlooredNumber;
  18. };
  19. export interface Scene {
  20. elements: ExcalidrawTextElement[];
  21. }
  22. export type ExportType =
  23. | "png"
  24. | "clipboard"
  25. | "clipboard-svg"
  26. | "backend"
  27. | "svg";
  28. export type ScrollBars = {
  29. horizontal: {
  30. x: number;
  31. y: number;
  32. width: number;
  33. height: number;
  34. } | null;
  35. vertical: {
  36. x: number;
  37. y: number;
  38. width: number;
  39. height: number;
  40. } | null;
  41. };