2021-05-12 16:01:04 +01:00
|
|
|
"use strict";
|
2021-04-15 13:01:58 +01:00
|
|
|
|
2021-04-18 11:28:55 +01:00
|
|
|
// JS & CSS
|
|
|
|
|
2021-05-10 11:35:14 +01:00
|
|
|
/* eslint-disable */
|
2021-04-15 13:01:58 +01:00
|
|
|
import "./scss/main.scss";
|
2021-05-10 12:07:19 +01:00
|
|
|
import UIkit from 'uikit';
|
2021-05-12 15:25:25 +01:00
|
|
|
// Don't Sort These!
|
2021-05-10 12:07:19 +01:00
|
|
|
import Icons from 'uikit/dist/js/uikit-icons';
|
2021-05-10 11:35:14 +01:00
|
|
|
// @ts-ignore
|
2021-04-15 13:01:58 +01:00
|
|
|
UIkit.use(Icons);
|
|
|
|
|
2021-05-08 03:28:37 +01:00
|
|
|
import Prism from "prismjs";
|
2021-05-12 15:22:08 +01:00
|
|
|
// Don't Sort These!
|
2021-05-09 10:08:04 +01:00
|
|
|
import "prismjs/components/prism-json";
|
2021-05-12 15:22:08 +01:00
|
|
|
|
2021-04-15 13:01:58 +01:00
|
|
|
Prism.highlightAll();
|
2021-05-03 09:30:22 +01:00
|
|
|
/* eslint-enable */
|
2021-04-15 13:01:58 +01:00
|
|
|
|
2021-05-12 16:01:04 +01:00
|
|
|
import { NavBar } from "./elements/NavBar";
|
|
|
|
import { changePage, renderPage } from "./pageUtils";
|
2021-05-09 11:18:18 +01:00
|
|
|
import { getSealStatus } from "./api/sys/getSealStatus";
|
2021-05-07 22:23:52 +01:00
|
|
|
import { makeElement } from "./htmlUtils";
|
2021-05-08 03:28:37 +01:00
|
|
|
import { pageState } from "./globalPageState";
|
|
|
|
import { playground } from "./playground";
|
2021-04-15 13:01:58 +01:00
|
|
|
|
2021-04-18 11:28:55 +01:00
|
|
|
// Translations
|
2021-05-12 16:01:04 +01:00
|
|
|
import { formatDistance } from "./formatDistance";
|
|
|
|
import i18next from "i18next";
|
2021-05-12 15:25:25 +01:00
|
|
|
|
2021-05-08 03:28:37 +01:00
|
|
|
// @ts-ignore
|
2021-05-12 16:01:04 +01:00
|
|
|
import translations from "./translations/index.mjs";
|
2021-04-17 10:56:44 +01:00
|
|
|
|
2021-05-10 11:35:14 +01:00
|
|
|
declare global {
|
2021-05-12 16:01:04 +01:00
|
|
|
interface Window {
|
|
|
|
pageContent: Element;
|
|
|
|
}
|
2021-05-10 11:35:14 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
function onLoad(): void {
|
2021-04-17 10:56:44 +01:00
|
|
|
document.body.innerHTML = "";
|
2021-05-12 15:32:21 +01:00
|
|
|
document.body.appendChild(NavBar());
|
2021-05-12 16:01:04 +01:00
|
|
|
document.body.appendChild(
|
|
|
|
makeElement({
|
2021-04-17 10:56:44 +01:00
|
|
|
tag: "div",
|
2021-05-12 16:01:04 +01:00
|
|
|
class: ["uk-container", "uk-container-medium", "uk-align-center"],
|
|
|
|
children: makeElement({
|
|
|
|
tag: "div",
|
|
|
|
class: ["uk-card", "uk-card-body"],
|
|
|
|
children: [
|
|
|
|
makeElement({
|
|
|
|
tag: "h3",
|
|
|
|
class: "uk-card-title",
|
|
|
|
id: "pageTitle",
|
|
|
|
text: "",
|
|
|
|
}),
|
|
|
|
makeElement({
|
|
|
|
tag: "div",
|
|
|
|
id: "pageContent",
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
}),
|
|
|
|
}),
|
|
|
|
);
|
2021-04-17 10:56:44 +01:00
|
|
|
|
2021-05-10 11:35:14 +01:00
|
|
|
window.pageContent = document.querySelector("#pageContent");
|
2021-05-07 20:41:40 +01:00
|
|
|
|
|
|
|
if (process.env.NODE_ENV == "development") {
|
2021-05-10 11:35:14 +01:00
|
|
|
playground();
|
2021-05-07 20:41:40 +01:00
|
|
|
}
|
|
|
|
|
2021-04-15 13:01:58 +01:00
|
|
|
renderPage();
|
|
|
|
|
2021-05-10 11:35:14 +01:00
|
|
|
setInterval(() => {
|
2021-04-19 20:17:07 +01:00
|
|
|
if (pageState.currentPageString != "UNSEAL") {
|
2021-05-12 16:01:04 +01:00
|
|
|
if (pageState.apiURL.length != 0) {
|
|
|
|
return;
|
|
|
|
}
|
2021-05-10 11:35:14 +01:00
|
|
|
void getSealStatus().then((sealStatus) => {
|
|
|
|
if (sealStatus.sealed) {
|
|
|
|
changePage("UNSEAL");
|
|
|
|
return;
|
2021-05-12 16:01:04 +01:00
|
|
|
}
|
2021-05-10 11:35:14 +01:00
|
|
|
});
|
2021-04-15 13:01:58 +01:00
|
|
|
}
|
|
|
|
}, 5000);
|
2021-04-24 16:26:31 +01:00
|
|
|
}
|
2021-04-18 11:28:55 +01:00
|
|
|
|
2021-05-12 16:01:04 +01:00
|
|
|
document.addEventListener(
|
|
|
|
"DOMContentLoaded",
|
|
|
|
function () {
|
|
|
|
console.log("Loading...");
|
|
|
|
// @ts-expect-error
|
|
|
|
console.log("Build Data:", BUILD_STRING);
|
|
|
|
void i18next
|
|
|
|
.init({
|
|
|
|
lng: pageState.language,
|
|
|
|
fallbackLng: "en",
|
|
|
|
debug: true,
|
|
|
|
// @ts-ignore
|
|
|
|
resources: Object.fromEntries(
|
|
|
|
Object.entries(translations).map(([k, v]) => [k, { translation: v }]),
|
|
|
|
),
|
|
|
|
interpolation: {
|
|
|
|
format: function (value: unknown, format, _): string {
|
|
|
|
if (format === "until_date" && value instanceof Date)
|
|
|
|
return formatDistance(new Date(), new Date(value));
|
|
|
|
return value as string;
|
|
|
|
},
|
|
|
|
},
|
|
|
|
})
|
|
|
|
.then(function (_) {
|
|
|
|
onLoad();
|
|
|
|
});
|
|
|
|
},
|
|
|
|
false,
|
|
|
|
);
|