2021-07-16 14:55:33 +10:00
|
|
|
import React from "react";
|
2021-07-08 12:01:02 +10:00
|
|
|
import { Grid } from "./Grid";
|
|
|
|
|
|
2021-07-16 14:55:33 +10:00
|
|
|
export type MapToolId =
|
2021-07-17 12:48:04 +10:00
|
|
|
| "map"
|
2021-07-16 14:55:33 +10:00
|
|
|
| "move"
|
2021-07-19 10:56:14 +10:00
|
|
|
| "select"
|
2021-07-16 14:55:33 +10:00
|
|
|
| "fog"
|
|
|
|
|
| "drawing"
|
|
|
|
|
| "measure"
|
|
|
|
|
| "pointer"
|
|
|
|
|
| "note";
|
|
|
|
|
|
|
|
|
|
export type MapTool = {
|
|
|
|
|
id: MapToolId;
|
|
|
|
|
icon: React.ReactNode;
|
|
|
|
|
title: string;
|
|
|
|
|
SettingsComponent?: React.ElementType;
|
|
|
|
|
};
|
|
|
|
|
|
2021-07-08 12:01:02 +10:00
|
|
|
export type BaseMap = {
|
|
|
|
|
id: string;
|
|
|
|
|
name: string;
|
|
|
|
|
owner: string;
|
|
|
|
|
grid: Grid;
|
|
|
|
|
width: number;
|
|
|
|
|
height: number;
|
|
|
|
|
type: string;
|
|
|
|
|
lastModified: number;
|
|
|
|
|
created: number;
|
|
|
|
|
showGrid: boolean;
|
|
|
|
|
snapToGrid: boolean;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export type DefaultMap = BaseMap & {
|
|
|
|
|
type: "default";
|
|
|
|
|
key: string;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export type FileMapResolutions = {
|
|
|
|
|
low?: string;
|
|
|
|
|
medium?: string;
|
|
|
|
|
high?: string;
|
|
|
|
|
ultra?: string;
|
|
|
|
|
};
|
|
|
|
|
|
2021-07-17 12:48:04 +10:00
|
|
|
export type MapQuality = keyof FileMapResolutions | "original";
|
|
|
|
|
|
2021-07-08 12:01:02 +10:00
|
|
|
export type FileMap = BaseMap & {
|
|
|
|
|
type: "file";
|
|
|
|
|
file: string;
|
|
|
|
|
resolutions: FileMapResolutions;
|
|
|
|
|
thumbnail: string;
|
2021-07-17 12:48:04 +10:00
|
|
|
quality: MapQuality;
|
2021-07-08 12:01:02 +10:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export type Map = DefaultMap | FileMap;
|