refactor: init packages

This commit is contained in:
liyasthomas
2021-07-01 22:09:11 +05:30
committed by GitHub
parent 6ac7ce2c73
commit a0e26c6c4f
39 changed files with 3443 additions and 2861 deletions

View File

@@ -1,259 +0,0 @@
/* fallback */
@font-face {
font-family: "Material Icons";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("~assets/fonts/Material_Icons-400-fallback1.woff2") format("woff2");
}
/* devanagari */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("~assets/fonts/Poppins-400-devanagari2.woff2") format("woff2");
unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8,
U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* latin-ext */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("~assets/fonts/Poppins-400-latin-ext3.woff2") format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,
U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("~assets/fonts/Poppins-400-latin4.woff2") format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
/* devanagari */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 500;
font-display: swap;
src: url("~assets/fonts/Poppins-500-devanagari5.woff2") format("woff2");
unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8,
U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* latin-ext */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 500;
font-display: swap;
src: url("~assets/fonts/Poppins-500-latin-ext6.woff2") format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,
U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 500;
font-display: swap;
src: url("~assets/fonts/Poppins-500-latin7.woff2") format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
/* devanagari */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("~assets/fonts/Poppins-600-devanagari8.woff2") format("woff2");
unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8,
U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* latin-ext */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("~assets/fonts/Poppins-600-latin-ext9.woff2") format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,
U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("~assets/fonts/Poppins-600-latin10.woff2") format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
/* devanagari */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 700;
font-display: swap;
src: url("~assets/fonts/Poppins-700-devanagari11.woff2") format("woff2");
unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8,
U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* latin-ext */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 700;
font-display: swap;
src: url("~assets/fonts/Poppins-700-latin-ext12.woff2") format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,
U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 700;
font-display: swap;
src: url("~assets/fonts/Poppins-700-latin13.woff2") format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
/* devanagari */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 800;
font-display: swap;
src: url("~assets/fonts/Poppins-800-devanagari14.woff2") format("woff2");
unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8,
U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* latin-ext */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 800;
font-display: swap;
src: url("~assets/fonts/Poppins-800-latin-ext15.woff2") format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,
U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Poppins";
font-style: normal;
font-weight: 800;
font-display: swap;
src: url("~assets/fonts/Poppins-800-latin16.woff2") format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: "Roboto Mono";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("~assets/fonts/Roboto_Mono-400-cyrillic-ext17.woff2") format("woff2");
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F,
U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: "Roboto Mono";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("~assets/fonts/Roboto_Mono-400-cyrillic18.woff2") format("woff2");
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
font-family: "Roboto Mono";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("~assets/fonts/Roboto_Mono-400-greek19.woff2") format("woff2");
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: "Roboto Mono";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("~assets/fonts/Roboto_Mono-400-vietnamese20.woff2") format("woff2");
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: "Roboto Mono";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("~assets/fonts/Roboto_Mono-400-latin-ext21.woff2") format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,
U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: "Roboto Mono";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("~assets/fonts/Roboto_Mono-400-latin22.woff2") format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
.material-icons {
font-family: "Material Icons"; /* stylelint-disable-line font-family-no-missing-generic-family-keyword */
font-weight: normal;
font-style: normal;
font-size: 24px;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
-webkit-font-feature-settings: "liga";
-webkit-font-smoothing: antialiased;
}

File diff suppressed because one or more lines are too long

BIN
assets/images/texture.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

View File

@@ -85,7 +85,6 @@ a {
}
}
header,
footer {
& > div {
@apply flex;
@@ -105,14 +104,12 @@ footer {
min-height: calc(100vh - 153px);
}
.header,
.content,
.columns,
.footer {
@apply flex flex-1;
}
.nav-first,
.sticky-inner {
@apply flex flex-col;
@apply items-start items-stretch;

View File

@@ -1,5 +1,5 @@
@mixin baseTheme {
--font-sans: "Poppins", "sans-serif";
--font-sans: "Montserrat", "sans-serif";
--font-mono: "Roboto Mono", "monospace";
--font-icon: "Material Icons";
}
@@ -10,11 +10,13 @@
// Light Background color
--primary-light-color: rgba(255, 255, 255, 0.04);
// Dark Background color
--primary-dark-color: rgba(0, 0, 0, 0.2);
--primary-dark-color: rgba(12, 12, 12, 1);
// Text color
--secondary-color: rgba(255, 255, 255, 0.9);
// Light Text color
--secondary-light-color: rgba(255, 255, 255, 0.5);
// Dark Text color
--secondary-dark-color: rgba(0, 0, 0, 0.5);
// Border color
--divider-color: rgba(255, 255, 255, 0.05);
// Error color
@@ -29,13 +31,15 @@
// Background color
--primary-color: rgba(255, 255, 255, 1);
// Light Background color
--primary-light-color: rgba(0, 0, 0, 0.05);
--primary-light-color: theme("colors.gray.200");
// Dark Background color
--primary-dark-color: rgba(0, 0, 0, 0.02);
// Text color
--secondary-color: rgba(0, 0, 0, 0.9);
--secondary-color: theme("colors.gray.600");
// Light Text color
--secondary-light-color: rgba(0, 0, 0, 0.6);
--secondary-light-color: theme("colors.gray.500");
// Dark Text color
--secondary-dark-color: theme("colors.gray.700");
// Border color
--divider-color: rgba(0, 0, 0, 0.1);
// Error color
@@ -57,6 +61,8 @@
--secondary-color: rgba(255, 255, 255, 0.9);
// Light Text color
--secondary-light-color: rgba(255, 255, 255, 0.5);
// Dark Text color
--secondary-dark-color: rgba(9, 9, 9, 0.5);
// Border color
--divider-color: rgba(255, 255, 255, 0.11);
// Error color
@@ -70,46 +76,136 @@
@mixin blueTheme {
// Accent color
--accent-color: theme("colors.blue.400");
// Light Accent color
--accent-light-color: theme("colors.blue.200");
// Dark Accent color
--accent-dark-color: theme("colors.blue.600");
// Gradient from
--gradient-from-color: theme("colors.blue.200");
// Gradient via
--gradient-via-color: theme("colors.blue.400");
// Gradient to
--gradient-to-color: theme("colors.blue.600");
}
@mixin greenTheme {
// Accent color
--accent-color: theme("colors.green.400");
--accent-color: rgba(73, 204, 104, 1);
// Light Accent color
--accent-light-color: rgba(73, 204, 104, 1);
// Dark Accent color
--accent-dark-color: rgba(73, 204, 104, 1);
// Gradient from
--gradient-from-color: theme("colors.green.200");
// Gradient via
--gradient-via-color: theme("colors.green.400");
// Gradient to
--gradient-to-color: theme("colors.green.600");
}
@mixin tealTheme {
// Accent color
--accent-color: theme("colors.teal.400");
// Light Accent color
--accent-light-color: theme("colors.teal.200");
// Dark Accent color
--accent-dark-color: theme("colors.teal.600");
// Gradient from
--gradient-from-color: theme("colors.blue.200");
// Gradient via
--gradient-via-color: theme("colors.blue.400");
// Gradient to
--gradient-to-color: theme("colors.blue.600");
}
@mixin indigoTheme {
// Accent color
--accent-color: theme("colors.indigo.400");
// Light Accent color
--accent-light-color: theme("colors.indigo.200");
// Dark Accent color
--accent-dark-color: theme("colors.indigo.600");
// Gradient from
--gradient-from-color: theme("colors.blue.200");
// Gradient via
--gradient-via-color: theme("colors.blue.400");
// Gradient to
--gradient-to-color: theme("colors.blue.600");
}
@mixin purpleTheme {
// Accent color
--accent-color: theme("colors.purple.400");
// Light Accent color
--accent-light-color: theme("colors.purple.200");
// Dark Accent color
--accent-dark-color: theme("colors.purple.600");
// Gradient from
--gradient-from-color: theme("colors.blue.200");
// Gradient via
--gradient-via-color: theme("colors.blue.400");
// Gradient to
--gradient-to-color: theme("colors.blue.600");
}
@mixin orangeTheme {
// Accent color
--accent-color: theme("colors.orange.400");
// Light Accent color
--accent-light-color: theme("colors.orange.200");
// Dark Accent color
--accent-dark-color: theme("colors.orange.600");
// Gradient from
--gradient-from-color: theme("colors.blue.200");
// Gradient via
--gradient-via-color: theme("colors.blue.400");
// Gradient to
--gradient-to-color: theme("colors.blue.600");
}
@mixin pinkTheme {
// Accent color
--accent-color: theme("colors.pink.400");
// Light Accent color
--accent-light-color: theme("colors.pink.200");
// Dark Accent color
--accent-dark-color: theme("colors.pink.600");
// Gradient from
--gradient-from-color: theme("colors.blue.200");
// Gradient via
--gradient-via-color: theme("colors.blue.400");
// Gradient to
--gradient-to-color: theme("colors.blue.600");
}
@mixin redTheme {
// Accent color
--accent-color: theme("colors.red.400");
// Light Accent color
--accent-light-color: theme("colors.red.200");
// Dark Accent color
--accent-dark-color: theme("colors.red.600");
// Gradient from
--gradient-from-color: theme("colors.blue.200");
// Gradient via
--gradient-via-color: theme("colors.blue.400");
// Gradient to
--gradient-to-color: theme("colors.blue.600");
}
@mixin yellowTheme {
// Accent color
--accent-color: theme("colors.yellow.400");
// Light Accent color
--accent-light-color: theme("colors.yellow.200");
// Dark Accent color
--accent-dark-color: theme("colors.yellow.600");
// Gradient from
--gradient-from-color: theme("colors.blue.200");
// Gradient via
--gradient-via-color: theme("colors.blue.400");
// Gradient to
--gradient-to-color: theme("colors.blue.600");
}
:root {

View File

@@ -13,6 +13,7 @@
:data-show-count="true"
data-text="Star"
aria-label="Star Hoppscotch on GitHub"
data-size="large"
/>
</TranslateFade>
</template>

82
components/app/Globe.vue Normal file
View File

@@ -0,0 +1,82 @@
<template>
<div id="globe" class="w-full"></div>
</template>
<script>
import ThreeGlobe from "three-globe"
import * as THREE from "three"
import geojson from "~/assets/geojson/ne_110m_admin_0_countries.geojson"
import texture from "~/assets/images/texture.png"
export default {
data() {
return {
globe: null,
cube: null,
renderer: null,
scene: null,
camera: null,
tbControls: null,
arcsData: [...Array(40).keys()].map(() => ({
startLat: (Math.random() - 0.5) * 180,
startLng: (Math.random() - 0.5) * 360,
endLat: (Math.random() - 0.5) * 180,
endLng: (Math.random() - 0.5) * 360,
color: ["#00acee", "#aceeff", "#00ffac", "#aaef3e"][
Math.round(Math.random() * 3)
],
})),
}
},
mounted() {
this.init()
this.animate()
},
methods: {
init() {
const container = document.getElementById("globe")
this.globe = new ThreeGlobe()
.globeImageUrl(texture)
.atmosphereColor("#aaaaaa")
.arcsData(this.arcsData)
.arcColor("color")
.arcDashLength(1)
.arcDashGap(5)
.arcStroke(1)
.arcDashInitialGap(() => Math.random() * 5)
.arcDashAnimateTime(2000)
.hexPolygonsData(geojson.features)
.hexPolygonResolution(3)
.hexPolygonMargin(0.5)
.hexPolygonColor(() => `#aaaaaa`)
this.renderer = new THREE.WebGLRenderer({
alpha: true,
})
this.renderer.setSize(container.clientWidth, container.clientHeight)
container.appendChild(this.renderer.domElement)
this.scene = new THREE.Scene()
this.scene.background = null
this.scene.add(this.globe)
this.scene.add(new THREE.AmbientLight(0xffffff))
this.scene.add(new THREE.DirectionalLight(0xffffff, 0.8))
this.camera = new THREE.PerspectiveCamera()
this.camera.aspect = container.clientWidth / container.clientHeight
this.camera.updateProjectionMatrix()
this.camera.position.z = 300
},
animate() {
this.renderer.render(this.scene, this.camera)
requestAnimationFrame(this.animate)
this.globe.rotation.y -= 0.005
},
},
}
</script>

View File

@@ -1,129 +1,126 @@
<template>
<header class="header">
<div class="row-wrapper">
<span class="slide-in">
<nuxt-link :to="localePath('index')">
<h1 class="heading logo">Hoppscotch</h1>
</nuxt-link>
<AppGitHubStarButton class="ml-8 hide-on-small-screen" />
</span>
<span>
<button
id="installPWA"
v-tooltip="$t('install_pwa')"
class="icon button"
@click.prevent="showInstallPrompt()"
>
<i class="material-icons">offline_bolt</i>
<header class="flex container items-center justify-between p-2 flex-1">
<div class="flex items-center relative ml-4">
<nuxt-link :to="localePath('index')">
<h1 class="heading logo">Hoppscotch</h1>
</nuxt-link>
</div>
<div class="flex">
<button
id="installPWA"
v-tooltip="$t('install_pwa')"
class="icon button"
@click.prevent="showInstallPrompt()"
>
<i class="material-icons">offline_bolt</i>
</button>
<a
href="https://github.com/hoppscotch/hoppscotch"
target="_blank"
aria-label="GitHub"
rel="noopener"
>
<button v-tooltip="'GitHub'" class="icon button" aria-label="GitHub">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
class="material-icons"
>
<path
d="M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"
/>
</svg>
</button>
<a
href="https://github.com/hoppscotch/hoppscotch"
target="_blank"
aria-label="GitHub"
rel="noopener"
</a>
<v-popover v-if="currentUser === null">
<button v-tooltip="$t('login_with')" class="icon button">
<i class="material-icons">login</i>
</button>
<template #popover>
<FirebaseLogin @show-email="showEmail = true" />
</template>
</v-popover>
<v-popover v-else>
<button
v-tooltip="
(currentUser.displayName ||
'<label><i>Name not found</i></label>') +
'<br>' +
(currentUser.email || '<label><i>Email not found</i></label>')
"
class="icon button"
aria-label="Account"
>
<button v-tooltip="'GitHub'" class="icon button" aria-label="GitHub">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
class="material-icons"
>
<img
v-if="currentUser.photoURL"
:src="currentUser.photoURL"
class="w-6 h-6 rounded-full material-icons"
alt="Profile image"
/>
<i v-else class="material-icons">account_circle</i>
</button>
<template #popover>
<div>
<nuxt-link v-close-popover :to="localePath('settings')">
<button class="icon button">
<i class="material-icons">settings</i>
<span>
{{ $t("settings") }}
</span>
</button>
</nuxt-link>
</div>
<div>
<FirebaseLogout />
</div>
</template>
</v-popover>
<v-popover>
<button v-tooltip="$t('more')" class="icon button">
<i class="material-icons">drag_indicator</i>
</button>
<template #popover>
<button
v-close-popover
class="icon button"
@click="showExtensions = true"
>
<i class="material-icons">extension</i>
<span>{{ $t("extensions") }}</span>
</button>
<button
v-close-popover
class="icon button"
@click="showShortcuts = true"
>
<i class="material-icons">keyboard</i>
<span>{{ $t("shortcuts") }}</span>
</button>
<button
v-close-popover
class="icon button"
onClick="window.open('https://twitter.com/share?text=👽 Hoppscotch • Open source API development ecosystem - Helps you create requests faster, saving precious time on development.&url=https://hoppscotch.io&hashtags=hoppscotch&via=hoppscotch_io');"
>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24">
<path
d="M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"
d="M24 4.557a9.83 9.83 0 01-2.828.775 4.932 4.932 0 002.165-2.724 9.864 9.864 0 01-3.127 1.195 4.916 4.916 0 00-3.594-1.555c-3.179 0-5.515 2.966-4.797 6.045A13.978 13.978 0 011.671 3.149a4.93 4.93 0 001.523 6.574 4.903 4.903 0 01-2.229-.616c-.054 2.281 1.581 4.415 3.949 4.89a4.935 4.935 0 01-2.224.084 4.928 4.928 0 004.6 3.419A9.9 9.9 0 010 19.54a13.94 13.94 0 007.548 2.212c9.142 0 14.307-7.721 13.995-14.646A10.025 10.025 0 0024 4.557z"
/>
</svg>
<span>Tweet</span>
</button>
</a>
<v-popover v-if="currentUser === null">
<button v-tooltip="$t('login_with')" class="icon button">
<i class="material-icons">login</i>
</button>
<template #popover>
<FirebaseLogin @show-email="showEmail = true" />
</template>
</v-popover>
<v-popover v-else>
<button
v-tooltip="
(currentUser.displayName ||
'<label><i>Name not found</i></label>') +
'<br>' +
(currentUser.email || '<label><i>Email not found</i></label>')
"
v-if="navigatorShare"
v-close-popover
v-tooltip="$t('more')"
class="icon button"
aria-label="Account"
@click="nativeShare"
>
<img
v-if="currentUser.photoURL"
:src="currentUser.photoURL"
class="w-6 h-6 rounded-full material-icons"
alt="Profile image"
/>
<i v-else class="material-icons">account_circle</i>
<i class="material-icons">share</i>
<span>Share</span>
</button>
<template #popover>
<div>
<nuxt-link v-close-popover :to="localePath('settings')">
<button class="icon button">
<i class="material-icons">settings</i>
<span>
{{ $t("settings") }}
</span>
</button>
</nuxt-link>
</div>
<div>
<FirebaseLogout />
</div>
</template>
</v-popover>
<v-popover>
<button v-tooltip="$t('more')" class="icon button">
<i class="material-icons">drag_indicator</i>
</button>
<template #popover>
<button
v-close-popover
class="icon button"
@click="showExtensions = true"
>
<i class="material-icons">extension</i>
<span>{{ $t("extensions") }}</span>
</button>
<button
v-close-popover
class="icon button"
@click="showShortcuts = true"
>
<i class="material-icons">keyboard</i>
<span>{{ $t("shortcuts") }}</span>
</button>
<button
v-close-popover
class="icon button"
onClick="window.open('https://twitter.com/share?text=👽 Hoppscotch • Open source API development ecosystem - Helps you create requests faster, saving precious time on development.&url=https://hoppscotch.io&hashtags=hoppscotch&via=hoppscotch_io');"
>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24">
<path
d="M24 4.557a9.83 9.83 0 01-2.828.775 4.932 4.932 0 002.165-2.724 9.864 9.864 0 01-3.127 1.195 4.916 4.916 0 00-3.594-1.555c-3.179 0-5.515 2.966-4.797 6.045A13.978 13.978 0 011.671 3.149a4.93 4.93 0 001.523 6.574 4.903 4.903 0 01-2.229-.616c-.054 2.281 1.581 4.415 3.949 4.89a4.935 4.935 0 01-2.224.084 4.928 4.928 0 004.6 3.419A9.9 9.9 0 010 19.54a13.94 13.94 0 007.548 2.212c9.142 0 14.307-7.721 13.995-14.646A10.025 10.025 0 0024 4.557z"
/>
</svg>
<span>Tweet</span>
</button>
<button
v-if="navigatorShare"
v-close-popover
v-tooltip="$t('more')"
class="icon button"
@click="nativeShare"
>
<i class="material-icons">share</i>
<span>Share</span>
</button>
</template>
</v-popover>
</span>
</template>
</v-popover>
</div>
<AppExtensions
:show="showExtensions"

View File

@@ -1,153 +1,38 @@
<template>
<TranslateSlideRight appear>
<aside class="nav-first">
<nav class="primary-nav">
<!--
We're using manual checks for linkActive because the query string
seems to mess up the nuxt-link active class.
-->
<nuxt-link
v-tooltip.right="$t('home')"
:to="localePath('index')"
:class="linkActive('index')"
:aria-label="$t('home')"
>
<AppLogo alt class="material-icons" style="height: 24px" />
</nuxt-link>
<nuxt-link
v-tooltip.right="$t('realtime')"
:to="localePath('realtime')"
:class="linkActive('realtime')"
>
<i class="material-icons">language</i>
</nuxt-link>
<nuxt-link
v-tooltip.right="$t('graphql')"
:to="localePath('graphql')"
:class="linkActive('graphql')"
:aria-label="$t('graphql')"
>
<svg
xmlns="http://www.w3.org/2000/svg"
height="24"
width="24"
viewBox="0 0 29.999 30"
>
<path d="M4.08 22.864l-1.1-.636L15.248.98l1.1.636z" />
<path d="M2.727 20.53h24.538v1.272H2.727z" />
<path
d="M15.486 28.332L3.213 21.246l.636-1.1 12.273 7.086zm10.662-18.47L13.874 2.777l.636-1.1 12.273 7.086z"
/>
<path d="M3.852 9.858l-.636-1.1L15.5 1.67l.636 1.1z" />
<path
d="M25.922 22.864l-12.27-21.25 1.1-.636 12.27 21.25zM3.7 7.914h1.272v14.172H3.7zm21.328 0H26.3v14.172h-1.272z"
/>
<path d="M15.27 27.793l-.555-.962 10.675-6.163.555.962z" />
<path
d="M27.985 22.5a2.68 2.68 0 01-3.654.981 2.68 2.68 0 01-.981-3.654 2.68 2.68 0 013.654-.981 2.665 2.665 0 01.98 3.654M6.642 10.174a2.68 2.68 0 01-3.654.981A2.68 2.68 0 012.007 7.5a2.68 2.68 0 013.654-.981 2.68 2.68 0 01.981 3.654M2.015 22.5a2.68 2.68 0 01.981-3.654 2.68 2.68 0 013.654.981 2.68 2.68 0 01-.981 3.654c-1.287.735-2.92.3-3.654-.98m21.343-12.326a2.68 2.68 0 01.981-3.654 2.68 2.68 0 013.654.981 2.68 2.68 0 01-.981 3.654 2.68 2.68 0 01-3.654-.981M15 30a2.674 2.674 0 112.674-2.673A2.68 2.68 0 0115 30m0-24.652a2.67 2.67 0 01-2.674-2.674 2.67 2.67 0 115.347 0A2.67 2.67 0 0115 5.347"
/>
</svg>
</nuxt-link>
<nuxt-link
v-tooltip.right="$t('documentation')"
:to="localePath('doc')"
:class="linkActive('doc')"
:aria-label="$t('documentation')"
>
<i class="material-icons">topic</i>
</nuxt-link>
<nuxt-link
v-tooltip.right="$t('settings')"
:to="localePath('settings')"
:class="linkActive('settings')"
:aria-label="$t('settings')"
>
<i class="material-icons">settings</i>
</nuxt-link>
</nav>
<nav
v-for="(link, index) in currentNavigation"
:key="`link-${index}`"
class="secondary-nav"
<aside>
<nav class="flex flex-col flex-nowrap">
<nuxt-link
v-for="(navigation, index) in primaryNavigation"
:key="`navigation-${index}`"
:to="localePath(navigation.target)"
class="
p-4
text-xs
flex-col flex-1
hover:bg-primaryLight
items-center
justify-center
"
>
<a
v-for="(item, itemIndex) in link.secondary"
:key="`item-${itemIndex}`"
v-tooltip.right="$t(item.tooltip)"
:href="item.target"
>
<i class="material-icons">{{ item.icon }}</i>
</a>
</nav>
</aside>
</TranslateSlideRight>
<i class="material-icons">{{ navigation.icon }}</i>
<span class="mt-2">{{ navigation.title }}</span>
</nuxt-link>
</nav>
</aside>
</template>
<script>
export default {
data() {
return {
navigation: [
{
primary: "index",
secondary: [
{ tooltip: "request", target: "#request", icon: "cloud_upload" },
{ tooltip: "options", target: "#options", icon: "toc" },
{
tooltip: "response",
target: "#response",
icon: "cloud_download",
},
],
},
{
primary: "realtime",
secondary: [
{ tooltip: "request", target: "#request", icon: "cloud_upload" },
{
tooltip: "communication",
target: "#response",
icon: "cloud_download",
},
],
},
{
primary: "graphql",
secondary: [
{ tooltip: "endpoint", target: "#endpoint", icon: "cloud" },
{
tooltip: "schema",
target: "#schema",
icon: "assignment_returned",
},
{ tooltip: "query", target: "#query", icon: "cloud_upload" },
{
tooltip: "response",
target: "#response",
icon: "cloud_download",
},
],
},
{
primary: "doc",
secondary: [
{ tooltip: "import", target: "#import", icon: "folder" },
{
tooltip: "documentation",
target: "#documentation",
icon: "insert_drive_file",
},
],
},
{
primary: "settings",
secondary: [
{ tooltip: "account", target: "#account", icon: "person" },
{ tooltip: "theme", target: "#theme", icon: "brush" },
{ tooltip: "extensions", target: "#extensions", icon: "extension" },
{ tooltip: "proxy", target: "#proxy", icon: "public" },
],
},
primaryNavigation: [
{ target: "index", icon: "home", title: "Home" },
{ target: "api", icon: "home", title: "APIs" },
{ target: "realtime", icon: "language", title: "Realtime" },
{ target: "graphql", icon: "code", title: "GraphQL" },
{ target: "doc", icon: "book", title: "Docs" },
{ target: "profile", icon: "person", title: "Profile" },
{ target: "settings", icon: "settings", title: "Settings" },
],
}
},
@@ -176,85 +61,10 @@ export default {
})
})
},
methods: {
linkActive(path) {
return {
"nuxt-link-exact-active": this.$route.name.includes(path),
"nuxt-link-active": this.$route.name.includes(path),
}
},
},
}
</script>
<style scoped lang="scss">
.nav-first {
@apply h-screen;
@apply p-2;
@apply bg-primaryDark;
@apply transition;
@apply ease-in-out;
@apply duration-150;
@apply space-y-2;
}
nav.primary-nav {
@apply flex flex-col flex-nowrap;
@apply items-center;
@apply justify-center;
@apply space-y-2;
@apply w-full;
svg {
@apply fill-current;
}
a {
@apply inline-flex;
@apply items-center;
@apply justify-center;
@apply flex-shrink-0;
@apply p-4;
@apply rounded-full;
@apply bg-primaryLight;
@apply text-secondaryLight;
@apply fill-current;
@apply outline-none;
@apply transition;
@apply ease-in-out;
@apply duration-150;
border-radius: 50%;
transition-property: all !important;
&:hover {
@apply text-secondary;
@apply fill-current;
svg {
@apply fill-current;
}
}
&.nuxt-link-exact-active {
@apply bg-accent;
@apply text-primary;
@apply fill-current;
border-radius: 16px;
svg {
@apply fill-current;
}
}
}
}
nav.primary-nav::-webkit-scrollbar,
.nav-first::-webkit-scrollbar {
@apply hidden;
}
nav.secondary-nav {
@apply flex flex-col flex-nowrap;
@apply items-center;
@@ -289,47 +99,4 @@ nav.secondary-nav {
}
}
}
@media (max-width: 767px) {
.nav-first {
@apply fixed;
@apply z-10;
@apply top-auto;
@apply bottom-0;
@apply h-auto;
@apply p-0;
@apply w-full;
@apply bg-primary;
@apply shadow-2xl;
}
nav.primary-nav {
@apply flex-row flex-nowrap;
@apply overflow-auto;
@apply bg-primaryDark;
@apply space-y-0;
padding-bottom: env(safe-area-inset-bottom);
a {
@apply bg-transparent;
@apply my-2;
@apply flex-1;
&.nuxt-link-exact-active {
@apply bg-transparent;
@apply text-accent;
@apply fill-current;
svg {
@apply fill-current;
}
}
}
}
nav.secondary-nav {
@apply hidden;
}
}
</style>

View File

@@ -1,19 +1,54 @@
<template>
<div class="wrapper">
<div class="content">
<div class="columns">
<AppSidenav />
<main>
<AppHeader />
<nuxt class="container" />
<AppFooter />
</main>
</div>
</div>
<div class="flex h-screen w-screen">
<Splitpanes horizontal class="hoppscotch-theme">
<Pane class="flex-1">
<Splitpanes vertical class="hoppscotch-theme">
<Pane
v-if="!hideNavigationPane"
style="width: auto"
class="overflow-y-auto bg-primaryDark flex items-stretch"
>
<AppSidenav />
</Pane>
<Pane class="flex-1">
<Splitpanes
horizontal
:push-other-panes="false"
class="hoppscotch-theme"
>
<Pane v-if="!hideHeaderPane" style="height: auto">
<AppHeader />
</Pane>
<Pane class="flex-1">
<Splitpanes vertical class="hoppscotch-theme">
<Pane class="overflow-y-auto">
<nuxt class="container" />
</Pane>
</Splitpanes>
</Pane>
</Splitpanes>
</Pane>
</Splitpanes>
</Pane>
<Pane style="height: auto" class="bg-primaryDark">
<button
class="button icon"
@click="hideNavigationPane = !hideNavigationPane"
>
<i class="material-icons">menu_open</i>
</button>
<button class="button icon" @click="hideHeaderPane = !hideHeaderPane">
<i class="material-icons">menu_open</i>
</button>
</Pane>
</Splitpanes>
</div>
</template>
<script>
import { Splitpanes, Pane } from "splitpanes"
import "splitpanes/dist/splitpanes.css"
import {
setupLocalPersistence,
getLocalConfig,
@@ -24,6 +59,13 @@ import { registerApolloAuthUpdate } from "~/helpers/apollo"
import { initializeFirebase } from "~/helpers/fb"
export default {
components: { Splitpanes, Pane },
data() {
return {
hideNavigationPane: false,
hideHeaderPane: false,
}
},
beforeMount() {
registerApolloAuthUpdate()
@@ -74,3 +116,16 @@ export default {
},
}
</script>
<style lang="scss" scoped>
.splitpanes--vertical > .splitpanes__splitter {
display: none;
width: 0;
background: linear-gradient(90deg, #ccc, #111);
}
.splitpanes--horizontal > .splitpanes__splitter {
display: none;
height: 0;
background: linear-gradient(0deg, #ccc, #111);
}
</style>

View File

@@ -209,11 +209,10 @@ export default {
// Google Fonts module configuration (https://github.com/nuxt-community/google-fonts-module)
googleFonts: {
download: true,
display: "swap",
families: {
"Material+Icons": true,
Poppins: [400, 500, 600, 700, 800],
Montserrat: [400, 500, 600, 700, 800],
"Roboto+Mono": true,
},
},
@@ -350,6 +349,7 @@ export default {
// Build Configuration (https://go.nuxtjs.dev/config-build)
build: {
transpile: ["three"],
// You can extend webpack config here
extend(config, { isDev, isClient }) {
// Sets webpack's mode to development if `isDev` is true.
@@ -374,6 +374,12 @@ export default {
exclude: /(node_modules)/,
})
config.module.rules.push({
test: /\.geojson$/i,
use: { loader: "json-loader" },
exclude: /(node_modules)/,
})
config.module.rules.push({
test: /\.mjs$/,
include: /node_modules/,
@@ -419,4 +425,9 @@ export default {
MEASUREMENT_ID: process.env.MEASUREMENT_ID,
BASE_URL: process.env.BASE_URL,
},
// Router configuration (https://nuxtjs.org/api/configuration-router)
router: {
linkExactActiveClass: "text-accent bg-primaryDark",
},
}

748
package-lock.json generated
View File

@@ -21,6 +21,7 @@
"firebase": "^8.7.0",
"graphql": "^15.5.1",
"graphql-language-service-interface": "^2.8.4",
"json-loader": "^0.5.7",
"lodash": "^4.17.21",
"mustache": "^4.2.0",
"node-interval-tree": "^1.3.3",
@@ -30,7 +31,10 @@
"rxjs": "^7.1.0",
"socket.io-client": "^4.1.2",
"socketio-wildcard": "^2.0.0",
"splitpanes": "^2.3.6",
"tern": "^0.24.3",
"three": "^0.130.0",
"three-globe": "^2.18.5",
"v-tooltip": "^2.1.3",
"vue-apollo": "^3.0.7",
"vue-cli-plugin-apollo": "^0.22.2",
@@ -6836,6 +6840,33 @@
"node": ">= 6"
}
},
"node_modules/@turf/boolean-point-in-polygon": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.4.0.tgz",
"integrity": "sha512-hJnhasLc2HyVozzQmWYAiN9D1z/JbuAJkyzfnp3HvGUp0Xdt6BsARqcLgRXbsm+AJNKG1D8d0549YKOuLGRhzA==",
"dependencies": {
"@turf/helpers": "^6.4.0",
"@turf/invariant": "^6.4.0"
}
},
"node_modules/@turf/helpers": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.4.0.tgz",
"integrity": "sha512-7vVpWZwHP0Qn8DDSlM++nhs3/6zfPt+GODjvLVZ+sWIG4S3vOtUUOfO5eIjRzxsUHHqhgiIL0QA17u79uLM+mQ=="
},
"node_modules/@turf/invariant": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.4.0.tgz",
"integrity": "sha512-ncAiOLkL6Ul6NnyOZSSmEbTwcZZ8PTx7O1IzB89Ed/mAe1g5PvFnyFieWbcnERGmuqH1ftzgtWMFFHFi2PQLsg==",
"dependencies": {
"@turf/helpers": "^6.4.0"
}
},
"node_modules/@tweenjs/tween.js": {
"version": "18.6.4",
"resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-18.6.4.tgz",
"integrity": "sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ=="
},
"node_modules/@types/accepts": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz",
@@ -8068,6 +8099,11 @@
"node": ">= 0.6"
}
},
"node_modules/accessor-fn": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/accessor-fn/-/accessor-fn-1.3.1.tgz",
"integrity": "sha512-OjmTIiR8VfVV02EC/kSYpBnu6D+CmjNIFhTgU/CQk9xTkl36fc2TaU+ffezgz0fokeqNWnNBq3BtCpZMPfn0UQ=="
},
"node_modules/ace-builds": {
"version": "1.4.12",
"resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.12.tgz",
@@ -12340,6 +12376,206 @@
"resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
"integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk="
},
"node_modules/d3-array": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.0.1.tgz",
"integrity": "sha512-l3Bh5o8RSoC3SBm5ix6ogaFW+J6rOUm42yOtZ2sQPCEvCqUMepeX7zgrlLLGIemxgOyo9s2CsWEidnLv5PwwRw==",
"dependencies": {
"internmap": "1 - 2"
},
"engines": {
"node": ">=12"
}
},
"node_modules/d3-collection": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz",
"integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A=="
},
"node_modules/d3-color": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.0.1.tgz",
"integrity": "sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw==",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-delaunay": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz",
"integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==",
"dependencies": {
"delaunator": "4"
}
},
"node_modules/d3-delaunay/node_modules/delaunator": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz",
"integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag=="
},
"node_modules/d3-format": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.0.1.tgz",
"integrity": "sha512-hdL7+HBIohpgfolhBxr1KX47VMD6+vVD/oEFrxk5yhmzV2prk99EkFKYpXuhVkFpTgHdJ6/4bYcjdLPPXV4tIA==",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-geo": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz",
"integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==",
"dependencies": {
"d3-array": "2.5.0 - 3"
},
"engines": {
"node": ">=12"
}
},
"node_modules/d3-geo-voronoi": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/d3-geo-voronoi/-/d3-geo-voronoi-1.6.0.tgz",
"integrity": "sha512-8SCbKEbOKFRncHqqrALdmXeMZxzc2wPQLLTXMi6eShlnatoX3xSPRxevwjAHEI2hzO3VFXDJebi5YrJaNmxJBQ==",
"dependencies": {
"d3-array": "^2.0",
"d3-delaunay": "5",
"d3-geo": "^1.0",
"d3-tricontour": "0.1.0"
}
},
"node_modules/d3-geo-voronoi/node_modules/d3-array": {
"version": "2.12.1",
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz",
"integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==",
"dependencies": {
"internmap": "^1.0.0"
}
},
"node_modules/d3-geo-voronoi/node_modules/d3-geo": {
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz",
"integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==",
"dependencies": {
"d3-array": "1"
}
},
"node_modules/d3-geo-voronoi/node_modules/d3-geo/node_modules/d3-array": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz",
"integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw=="
},
"node_modules/d3-geo-voronoi/node_modules/internmap": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz",
"integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="
},
"node_modules/d3-interpolate": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
"integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
"dependencies": {
"d3-color": "1 - 3"
},
"engines": {
"node": ">=12"
}
},
"node_modules/d3-scale": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.0.tgz",
"integrity": "sha512-foHQYKpWQcyndH1CGoHdUC4PECxTxonzwwBXGT8qu+Drb1FIc6ON6dG2P5f4hRRMkLiIKeWK7iFtdznDUrnuPQ==",
"dependencies": {
"d3-array": "2.10.0 - 3",
"d3-format": "1 - 3",
"d3-interpolate": "1.2.0 - 3",
"d3-time": "2.1.1 - 3",
"d3-time-format": "2 - 4"
},
"engines": {
"node": ">=12"
}
},
"node_modules/d3-time": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz",
"integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==",
"dependencies": {
"d3-array": "2 - 3"
},
"engines": {
"node": ">=12"
}
},
"node_modules/d3-time-format": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.0.0.tgz",
"integrity": "sha512-nzaCwlj+ZVBIlFuVOT1RmU+6xb/7D5IcnhHzHQcBgS/aTa5K9fWZNN5LCXA27LgF5WxoSNJqKBbLcGMtM6Ca6A==",
"dependencies": {
"d3-time": "1 - 3"
},
"engines": {
"node": ">=12"
}
},
"node_modules/d3-tricontour": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/d3-tricontour/-/d3-tricontour-0.1.0.tgz",
"integrity": "sha512-eoQBEcA8+WwFyMludToU6XfzNXfdDOh0fCZM3bRAfD03s5y7+FaV3xT6NaTxnSKGw0MX7xi7tXMkJnLiAz6pzA==",
"dependencies": {
"d3-delaunay": "5",
"d3-scale": "1"
}
},
"node_modules/d3-tricontour/node_modules/d3-array": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz",
"integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw=="
},
"node_modules/d3-tricontour/node_modules/d3-color": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz",
"integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q=="
},
"node_modules/d3-tricontour/node_modules/d3-format": {
"version": "1.4.5",
"resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz",
"integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ=="
},
"node_modules/d3-tricontour/node_modules/d3-interpolate": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz",
"integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==",
"dependencies": {
"d3-color": "1"
}
},
"node_modules/d3-tricontour/node_modules/d3-scale": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-1.0.7.tgz",
"integrity": "sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==",
"dependencies": {
"d3-array": "^1.2.0",
"d3-collection": "1",
"d3-color": "1",
"d3-format": "1",
"d3-interpolate": "1",
"d3-time": "1",
"d3-time-format": "2"
}
},
"node_modules/d3-tricontour/node_modules/d3-time": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz",
"integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA=="
},
"node_modules/d3-tricontour/node_modules/d3-time-format": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz",
"integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==",
"dependencies": {
"d3-time": "1"
}
},
"node_modules/dargs": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
@@ -12349,6 +12585,14 @@
"node": ">=8"
}
},
"node_modules/data-joint": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/data-joint/-/data-joint-1.2.4.tgz",
"integrity": "sha512-CEHgReWct+ofD1rpIhLy2IBOWkS4J5KbgCulvrRQVMlgs7dFbvhPwJt+J0upA9e7w/x+MepG6MLANm+uo0nudQ==",
"dependencies": {
"index-array-by": "^1.3.1"
}
},
"node_modules/data-urls": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
@@ -12391,6 +12635,11 @@
"node": ">=0.11.0"
}
},
"node_modules/debounce": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
"integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
},
"node_modules/debug": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
@@ -12553,6 +12802,14 @@
"resolved": "https://registry.npmjs.org/defu/-/defu-3.2.2.tgz",
"integrity": "sha512-8UWj5lNv7HD+kB0e9w77Z7TdQlbUYDVWqITLHNqFIn6khrNHv5WQo38Dcm1f6HeNyZf0U7UbPf6WeZDSdCzGDQ=="
},
"node_modules/delaunator": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz",
"integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==",
"dependencies": {
"robust-predicates": "^3.0.0"
}
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -12862,6 +13119,11 @@
"safe-buffer": "~5.1.0"
}
},
"node_modules/earcut": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz",
"integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ=="
},
"node_modules/editorconfig": {
"version": "0.15.3",
"resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
@@ -15109,6 +15371,14 @@
"node": ">=0.10.0"
}
},
"node_modules/frame-ticker": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/frame-ticker/-/frame-ticker-1.0.3.tgz",
"integrity": "sha1-LJnT/rtJP9HTYhNRzQAxiXlKEkU=",
"dependencies": {
"simplesignal": "^2.1.6"
}
},
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -16039,6 +16309,16 @@
"node": ">=10"
}
},
"node_modules/h3-js": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/h3-js/-/h3-js-3.7.2.tgz",
"integrity": "sha512-LPjlHSwB9zQZrMqKloCZmmmt3yZzIK7nqPcXqwU93zT3TtYG6jP4tZBzAPouxut7lLjdFbMQ75wRBiKfpsnY7w==",
"engines": {
"node": ">=4",
"npm": ">=3",
"yarn": ">=1.3.0"
}
},
"node_modules/hable": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/hable/-/hable-3.0.0.tgz",
@@ -16893,6 +17173,11 @@
"node": ">=8"
}
},
"node_modules/index-array-by": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/index-array-by/-/index-array-by-1.3.1.tgz",
"integrity": "sha512-e3RmATJZXJWZg9obaLdgPZcz42mzCrr4RuxB/6YaVds7tkUjPRw3Zaebs5YXo4WPyCA0Y9ZKcGYHRqGbGhoU8Q=="
},
"node_modules/indexes-of": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
@@ -17001,6 +17286,14 @@
"node": ">=8"
}
},
"node_modules/internmap": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.1.tgz",
"integrity": "sha512-Ujwccrj9FkGqjbY3iVoxD1VV+KdZZeENx0rphrtzmRXbFvkFO88L80BL/zeSIguX/7T+y8k04xqtgWgS5vxwxw==",
"engines": {
"node": ">=12"
}
},
"node_modules/interpret": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
@@ -19589,6 +19882,11 @@
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
},
"node_modules/json-loader": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
"integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w=="
},
"node_modules/json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -19663,6 +19961,14 @@
"node": "*"
}
},
"node_modules/kapsule": {
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/kapsule/-/kapsule-1.13.4.tgz",
"integrity": "sha512-WZz+NTLKrnAfOkWw+o94HdlO+6QqBretdr8EcNSRVxFPxxyOnnBdpoczwZxYzGZqLJDCJJm9P0gRyds+FT+UDA==",
"dependencies": {
"debounce": "^1.2.1"
}
},
"node_modules/keyv": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
@@ -25440,6 +25746,11 @@
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
"integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
},
"node_modules/robust-predicates": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz",
"integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g=="
},
"node_modules/run-async": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
@@ -25885,6 +26196,11 @@
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"node_modules/simplesignal": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/simplesignal/-/simplesignal-2.1.7.tgz",
"integrity": "sha1-jhWXix+LRNVb19cIHcN7cUfPEp8="
},
"node_modules/sirv": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.12.tgz",
@@ -26280,6 +26596,11 @@
"readable-stream": "^3.0.0"
}
},
"node_modules/splitpanes": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/splitpanes/-/splitpanes-2.3.6.tgz",
"integrity": "sha512-2sif1pmOQw/N+/jRbVzqTJ32lkhJax8jQfaXCebRK/SFCadHOnAaXDcWW8PpEcr9vKpfzH7gxJ8Sq/74HECr/g=="
},
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -27582,6 +27903,72 @@
"node": ">= 10.13.0"
}
},
"node_modules/three": {
"version": "0.130.0",
"resolved": "https://registry.npmjs.org/three/-/three-0.130.0.tgz",
"integrity": "sha512-4jqvbJyvgrjTsBgqE7TrdkZral78l8CXpFCdGzqQoiJHsRhGHxe5tvwqZQVaS6eodPav7jdYO5sp1c5RmMB3ng=="
},
"node_modules/three-conic-polygon-geometry": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/three-conic-polygon-geometry/-/three-conic-polygon-geometry-1.4.4.tgz",
"integrity": "sha512-dl2K6D5hjJP4L08RCRLbPudHnRluICFQ57+9n3qD63Z4Z5K5lQItN/Zd7ECbXsCAa+M2x6tBuwgjoZW9sdh6uw==",
"dependencies": {
"@turf/boolean-point-in-polygon": "^6.3",
"d3-array": "1 - 3",
"d3-geo": "1 - 3",
"d3-geo-voronoi": "^1.6",
"delaunator": "5",
"earcut": "2"
},
"peerDependencies": {
"three": ">=0.72.0"
}
},
"node_modules/three-fatline": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/three-fatline/-/three-fatline-0.5.0.tgz",
"integrity": "sha512-vBvd8t4PY2axe08XS53juSp+hTXHwZcM/msktPBYgBDUVhMYgxBk4CMumf6u2F45K/NZ9sJ64NICTro/gllxpA==",
"peerDependencies": {
"three": ">=0.84.0"
}
},
"node_modules/three-geojson-geometry": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/three-geojson-geometry/-/three-geojson-geometry-1.1.4.tgz",
"integrity": "sha512-AneD7xAvkQtgWFa8Q52mTViYyQozHKFLkduIKC5GyZ9fWNiAM4Mj0bzj1OEyDg0EBC1WxRklXPTVE9eypDPoAA==",
"dependencies": {
"d3-geo": "1 - 3",
"earcut": "2"
},
"peerDependencies": {
"three": ">=0.72.0"
}
},
"node_modules/three-globe": {
"version": "2.18.5",
"resolved": "https://registry.npmjs.org/three-globe/-/three-globe-2.18.5.tgz",
"integrity": "sha512-Y39WxJcyX2ewZQUPrYw5NNjrZI2IwzygeDa3hgDHaQhmPMKOk8v4Abo5fpX3FfbZFVxVD3x7bcGlXLSDHeNdOg==",
"dependencies": {
"@tweenjs/tween.js": "18",
"accessor-fn": "1",
"d3-geo": "1 - 3",
"d3-interpolate": "1 - 3",
"d3-scale": "1 - 4",
"data-joint": "^1.2",
"earcut": "2",
"frame-ticker": "1",
"h3-js": "3",
"index-array-by": "1",
"kapsule": "^1.13",
"three-conic-polygon-geometry": "^1.4",
"three-fatline": "^0.5",
"three-geojson-geometry": "^1.1",
"tinycolor2": "^1.4"
},
"peerDependencies": {
"three": ">=0.88.0"
}
},
"node_modules/throat": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz",
@@ -27658,6 +28045,14 @@
"resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q="
},
"node_modules/tinycolor2": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz",
"integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==",
"engines": {
"node": "*"
}
},
"node_modules/tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -36716,6 +37111,33 @@
"integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
"dev": true
},
"@turf/boolean-point-in-polygon": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.4.0.tgz",
"integrity": "sha512-hJnhasLc2HyVozzQmWYAiN9D1z/JbuAJkyzfnp3HvGUp0Xdt6BsARqcLgRXbsm+AJNKG1D8d0549YKOuLGRhzA==",
"requires": {
"@turf/helpers": "^6.4.0",
"@turf/invariant": "^6.4.0"
}
},
"@turf/helpers": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.4.0.tgz",
"integrity": "sha512-7vVpWZwHP0Qn8DDSlM++nhs3/6zfPt+GODjvLVZ+sWIG4S3vOtUUOfO5eIjRzxsUHHqhgiIL0QA17u79uLM+mQ=="
},
"@turf/invariant": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.4.0.tgz",
"integrity": "sha512-ncAiOLkL6Ul6NnyOZSSmEbTwcZZ8PTx7O1IzB89Ed/mAe1g5PvFnyFieWbcnERGmuqH1ftzgtWMFFHFi2PQLsg==",
"requires": {
"@turf/helpers": "^6.4.0"
}
},
"@tweenjs/tween.js": {
"version": "18.6.4",
"resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-18.6.4.tgz",
"integrity": "sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ=="
},
"@types/accepts": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz",
@@ -37904,6 +38326,11 @@
"negotiator": "0.6.2"
}
},
"accessor-fn": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/accessor-fn/-/accessor-fn-1.3.1.tgz",
"integrity": "sha512-OjmTIiR8VfVV02EC/kSYpBnu6D+CmjNIFhTgU/CQk9xTkl36fc2TaU+ffezgz0fokeqNWnNBq3BtCpZMPfn0UQ=="
},
"ace-builds": {
"version": "1.4.12",
"resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.12.tgz",
@@ -41557,12 +41984,204 @@
"resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
"integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk="
},
"d3-array": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.0.1.tgz",
"integrity": "sha512-l3Bh5o8RSoC3SBm5ix6ogaFW+J6rOUm42yOtZ2sQPCEvCqUMepeX7zgrlLLGIemxgOyo9s2CsWEidnLv5PwwRw==",
"requires": {
"internmap": "1 - 2"
}
},
"d3-collection": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz",
"integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A=="
},
"d3-color": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.0.1.tgz",
"integrity": "sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw=="
},
"d3-delaunay": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz",
"integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==",
"requires": {
"delaunator": "4"
},
"dependencies": {
"delaunator": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz",
"integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag=="
}
}
},
"d3-format": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.0.1.tgz",
"integrity": "sha512-hdL7+HBIohpgfolhBxr1KX47VMD6+vVD/oEFrxk5yhmzV2prk99EkFKYpXuhVkFpTgHdJ6/4bYcjdLPPXV4tIA=="
},
"d3-geo": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz",
"integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==",
"requires": {
"d3-array": "2.5.0 - 3"
}
},
"d3-geo-voronoi": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/d3-geo-voronoi/-/d3-geo-voronoi-1.6.0.tgz",
"integrity": "sha512-8SCbKEbOKFRncHqqrALdmXeMZxzc2wPQLLTXMi6eShlnatoX3xSPRxevwjAHEI2hzO3VFXDJebi5YrJaNmxJBQ==",
"requires": {
"d3-array": "^2.0",
"d3-delaunay": "5",
"d3-geo": "^1.0",
"d3-tricontour": "0.1.0"
},
"dependencies": {
"d3-array": {
"version": "2.12.1",
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz",
"integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==",
"requires": {
"internmap": "^1.0.0"
}
},
"d3-geo": {
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz",
"integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==",
"requires": {
"d3-array": "1"
},
"dependencies": {
"d3-array": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz",
"integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw=="
}
}
},
"internmap": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz",
"integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="
}
}
},
"d3-interpolate": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
"integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
"requires": {
"d3-color": "1 - 3"
}
},
"d3-scale": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.0.tgz",
"integrity": "sha512-foHQYKpWQcyndH1CGoHdUC4PECxTxonzwwBXGT8qu+Drb1FIc6ON6dG2P5f4hRRMkLiIKeWK7iFtdznDUrnuPQ==",
"requires": {
"d3-array": "2.10.0 - 3",
"d3-format": "1 - 3",
"d3-interpolate": "1.2.0 - 3",
"d3-time": "2.1.1 - 3",
"d3-time-format": "2 - 4"
}
},
"d3-time": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz",
"integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==",
"requires": {
"d3-array": "2 - 3"
}
},
"d3-time-format": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.0.0.tgz",
"integrity": "sha512-nzaCwlj+ZVBIlFuVOT1RmU+6xb/7D5IcnhHzHQcBgS/aTa5K9fWZNN5LCXA27LgF5WxoSNJqKBbLcGMtM6Ca6A==",
"requires": {
"d3-time": "1 - 3"
}
},
"d3-tricontour": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/d3-tricontour/-/d3-tricontour-0.1.0.tgz",
"integrity": "sha512-eoQBEcA8+WwFyMludToU6XfzNXfdDOh0fCZM3bRAfD03s5y7+FaV3xT6NaTxnSKGw0MX7xi7tXMkJnLiAz6pzA==",
"requires": {
"d3-delaunay": "5",
"d3-scale": "1"
},
"dependencies": {
"d3-array": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz",
"integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw=="
},
"d3-color": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz",
"integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q=="
},
"d3-format": {
"version": "1.4.5",
"resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz",
"integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ=="
},
"d3-interpolate": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz",
"integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==",
"requires": {
"d3-color": "1"
}
},
"d3-scale": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-1.0.7.tgz",
"integrity": "sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==",
"requires": {
"d3-array": "^1.2.0",
"d3-collection": "1",
"d3-color": "1",
"d3-format": "1",
"d3-interpolate": "1",
"d3-time": "1",
"d3-time-format": "2"
}
},
"d3-time": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz",
"integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA=="
},
"d3-time-format": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz",
"integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==",
"requires": {
"d3-time": "1"
}
}
}
},
"dargs": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
"integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==",
"dev": true
},
"data-joint": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/data-joint/-/data-joint-1.2.4.tgz",
"integrity": "sha512-CEHgReWct+ofD1rpIhLy2IBOWkS4J5KbgCulvrRQVMlgs7dFbvhPwJt+J0upA9e7w/x+MepG6MLANm+uo0nudQ==",
"requires": {
"index-array-by": "^1.3.1"
}
},
"data-urls": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
@@ -41599,6 +42218,11 @@
"node-addon-api": "^1.7.1"
}
},
"debounce": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
"integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
},
"debug": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
@@ -41726,6 +42350,14 @@
"resolved": "https://registry.npmjs.org/defu/-/defu-3.2.2.tgz",
"integrity": "sha512-8UWj5lNv7HD+kB0e9w77Z7TdQlbUYDVWqITLHNqFIn6khrNHv5WQo38Dcm1f6HeNyZf0U7UbPf6WeZDSdCzGDQ=="
},
"delaunator": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz",
"integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==",
"requires": {
"robust-predicates": "^3.0.0"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -41999,6 +42631,11 @@
}
}
},
"earcut": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz",
"integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ=="
},
"editorconfig": {
"version": "0.15.3",
"resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
@@ -43841,6 +44478,14 @@
"map-cache": "^0.2.2"
}
},
"frame-ticker": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/frame-ticker/-/frame-ticker-1.0.3.tgz",
"integrity": "sha1-LJnT/rtJP9HTYhNRzQAxiXlKEkU=",
"requires": {
"simplesignal": "^2.1.6"
}
},
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -44634,6 +45279,11 @@
"duplexer": "^0.1.2"
}
},
"h3-js": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/h3-js/-/h3-js-3.7.2.tgz",
"integrity": "sha512-LPjlHSwB9zQZrMqKloCZmmmt3yZzIK7nqPcXqwU93zT3TtYG6jP4tZBzAPouxut7lLjdFbMQ75wRBiKfpsnY7w=="
},
"hable": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/hable/-/hable-3.0.0.tgz",
@@ -45322,6 +45972,11 @@
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
},
"index-array-by": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/index-array-by/-/index-array-by-1.3.1.tgz",
"integrity": "sha512-e3RmATJZXJWZg9obaLdgPZcz42mzCrr4RuxB/6YaVds7tkUjPRw3Zaebs5YXo4WPyCA0Y9ZKcGYHRqGbGhoU8Q=="
},
"indexes-of": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
@@ -45414,6 +46069,11 @@
}
}
},
"internmap": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.1.tgz",
"integrity": "sha512-Ujwccrj9FkGqjbY3iVoxD1VV+KdZZeENx0rphrtzmRXbFvkFO88L80BL/zeSIguX/7T+y8k04xqtgWgS5vxwxw=="
},
"interpret": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
@@ -47534,6 +48194,11 @@
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
},
"json-loader": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
"integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w=="
},
"json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -47593,6 +48258,14 @@
"through": ">=2.2.7 <3"
}
},
"kapsule": {
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/kapsule/-/kapsule-1.13.4.tgz",
"integrity": "sha512-WZz+NTLKrnAfOkWw+o94HdlO+6QqBretdr8EcNSRVxFPxxyOnnBdpoczwZxYzGZqLJDCJJm9P0gRyds+FT+UDA==",
"requires": {
"debounce": "^1.2.1"
}
},
"keyv": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
@@ -52385,6 +53058,11 @@
}
}
},
"robust-predicates": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz",
"integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g=="
},
"run-async": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
@@ -52771,6 +53449,11 @@
}
}
},
"simplesignal": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/simplesignal/-/simplesignal-2.1.7.tgz",
"integrity": "sha1-jhWXix+LRNVb19cIHcN7cUfPEp8="
},
"sirv": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.12.tgz",
@@ -53106,6 +53789,11 @@
"readable-stream": "^3.0.0"
}
},
"splitpanes": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/splitpanes/-/splitpanes-2.3.6.tgz",
"integrity": "sha512-2sif1pmOQw/N+/jRbVzqTJ32lkhJax8jQfaXCebRK/SFCadHOnAaXDcWW8PpEcr9vKpfzH7gxJ8Sq/74HECr/g=="
},
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -54181,6 +54869,61 @@
}
}
},
"three": {
"version": "0.130.0",
"resolved": "https://registry.npmjs.org/three/-/three-0.130.0.tgz",
"integrity": "sha512-4jqvbJyvgrjTsBgqE7TrdkZral78l8CXpFCdGzqQoiJHsRhGHxe5tvwqZQVaS6eodPav7jdYO5sp1c5RmMB3ng=="
},
"three-conic-polygon-geometry": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/three-conic-polygon-geometry/-/three-conic-polygon-geometry-1.4.4.tgz",
"integrity": "sha512-dl2K6D5hjJP4L08RCRLbPudHnRluICFQ57+9n3qD63Z4Z5K5lQItN/Zd7ECbXsCAa+M2x6tBuwgjoZW9sdh6uw==",
"requires": {
"@turf/boolean-point-in-polygon": "^6.3",
"d3-array": "1 - 3",
"d3-geo": "1 - 3",
"d3-geo-voronoi": "^1.6",
"delaunator": "5",
"earcut": "2"
}
},
"three-fatline": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/three-fatline/-/three-fatline-0.5.0.tgz",
"integrity": "sha512-vBvd8t4PY2axe08XS53juSp+hTXHwZcM/msktPBYgBDUVhMYgxBk4CMumf6u2F45K/NZ9sJ64NICTro/gllxpA==",
"requires": {}
},
"three-geojson-geometry": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/three-geojson-geometry/-/three-geojson-geometry-1.1.4.tgz",
"integrity": "sha512-AneD7xAvkQtgWFa8Q52mTViYyQozHKFLkduIKC5GyZ9fWNiAM4Mj0bzj1OEyDg0EBC1WxRklXPTVE9eypDPoAA==",
"requires": {
"d3-geo": "1 - 3",
"earcut": "2"
}
},
"three-globe": {
"version": "2.18.5",
"resolved": "https://registry.npmjs.org/three-globe/-/three-globe-2.18.5.tgz",
"integrity": "sha512-Y39WxJcyX2ewZQUPrYw5NNjrZI2IwzygeDa3hgDHaQhmPMKOk8v4Abo5fpX3FfbZFVxVD3x7bcGlXLSDHeNdOg==",
"requires": {
"@tweenjs/tween.js": "18",
"accessor-fn": "1",
"d3-geo": "1 - 3",
"d3-interpolate": "1 - 3",
"d3-scale": "1 - 4",
"data-joint": "^1.2",
"earcut": "2",
"frame-ticker": "1",
"h3-js": "3",
"index-array-by": "1",
"kapsule": "^1.13",
"three-conic-polygon-geometry": "^1.4",
"three-fatline": "^0.5",
"three-geojson-geometry": "^1.1",
"tinycolor2": "^1.4"
}
},
"throat": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz",
@@ -54253,6 +54996,11 @@
"resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q="
},
"tinycolor2": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz",
"integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA=="
},
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",

View File

@@ -37,6 +37,7 @@
"firebase": "^8.7.0",
"graphql": "^15.5.1",
"graphql-language-service-interface": "^2.8.4",
"json-loader": "^0.5.7",
"lodash": "^4.17.21",
"mustache": "^4.2.0",
"node-interval-tree": "^1.3.3",
@@ -46,7 +47,10 @@
"rxjs": "^7.1.0",
"socket.io-client": "^4.1.2",
"socketio-wildcard": "^2.0.0",
"splitpanes": "^2.3.6",
"tern": "^0.24.3",
"three": "^0.130.0",
"three-globe": "^2.18.5",
"v-tooltip": "^2.1.3",
"vue-apollo": "^3.0.7",
"vue-cli-plugin-apollo": "^0.22.2",

2241
pages/api.vue Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3
pages/profile.vue Normal file
View File

@@ -0,0 +1,3 @@
<template>
<div>My profile</div>
</template>

View File

@@ -13,10 +13,16 @@ export default defineConfig({
primaryDark: "var(--primary-dark-color)",
secondary: "var(--secondary-color)",
secondaryLight: "var(--secondary-light-color)",
secondaryDark: "var(--secondary-dark-color)",
accent: "var(--accent-color)",
accentLight: "var(--accent-light-color)",
accentDark: "var(--accent-dark-color)",
divider: "var(--divider-color)",
error: "var(--error-color)",
tooltip: "var(--tooltip-color)",
gradientFrom: "var(--gradient-from-color)",
gradientVia: "var(--gradient-via-color)",
gradientTo: "var(--gradient-to-color)",
},
},
fontFamily: {