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
|
|
|
};
|