drawDB/src/utils/index.js

57 lines
1.5 KiB
JavaScript
Raw Normal View History

2023-09-19 20:49:28 +08:00
import { Validator } from "jsonschema";
2023-09-19 20:49:31 +08:00
import { ddbSchema, jsonSchema } from "../schemas";
2023-09-19 20:49:28 +08:00
2023-09-19 20:48:35 +08:00
const enterFullscreen = () => {
const element = document.documentElement;
if (element.requestFullscreen) {
element.requestFullscreen();
} else if (element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if (element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if (element.msRequestFullscreen) {
element.msRequestFullscreen();
}
};
const exitFullscreen = () => {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
};
2023-09-19 20:49:31 +08:00
const jsonDiagramIsValid = (obj) => {
2023-09-19 20:49:28 +08:00
return new Validator().validate(obj, jsonSchema).valid;
};
2023-09-19 20:49:31 +08:00
const ddbDiagramIsValid = (obj) => {
return new Validator().validate(obj, ddbSchema).valid;
};
2023-09-19 20:49:39 +08:00
function dataURItoBlob(dataUrl) {
const byteString = atob(dataUrl.split(",")[1]);
const mimeString = dataUrl.split(",")[0].split(":")[1].split(";")[0];
const arrayBuffer = new ArrayBuffer(byteString.length);
const intArray = new Uint8Array(arrayBuffer);
for (let i = 0; i < byteString.length; i++) {
intArray[i] = byteString.charCodeAt(i);
}
return new Blob([intArray], { type: mimeString });
}
2023-09-19 20:49:31 +08:00
export {
enterFullscreen,
exitFullscreen,
jsonDiagramIsValid,
ddbDiagramIsValid,
2023-09-19 20:49:39 +08:00
dataURItoBlob,
2023-09-19 20:49:31 +08:00
};