feat: remove obsolete and outdated components and assets
Deleted unused components and icon assets for codebase cleanup. This includes various UI components, CSS modules, and image assets no longer needed for the project.
@ -1,2 +0,0 @@
|
|||||||
OPENWEATHER_API_KEY=lngstr20
|
|
||||||
CONFIG_URL=https://git.yidhra.fr/Mathis/forecast/raw/branch/dev/configs/city.json
|
|
@ -1,5 +0,0 @@
|
|||||||
import styles from "./ContentBox.module.css";
|
|
||||||
|
|
||||||
export const ContentBox = ({ children }) => {
|
|
||||||
return <div className={styles.wrapper}>{children}</div>;
|
|
||||||
};
|
|
@ -1,4 +0,0 @@
|
|||||||
.wrapper {
|
|
||||||
background-color: rgb(247, 247, 247);
|
|
||||||
padding: 30px;
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
import { getWeekDay, getTime, getAMPM } from "../services/helpers";
|
|
||||||
import styles from "./DateAndTime.module.css";
|
|
||||||
|
|
||||||
export const DateAndTime = ({ weatherData, unitSystem }) => {
|
|
||||||
return (
|
|
||||||
<div className={styles.wrapper}>
|
|
||||||
<h2>
|
|
||||||
{`${getWeekDay(weatherData)}, ${getTime(
|
|
||||||
unitSystem,
|
|
||||||
weatherData.dt,
|
|
||||||
weatherData.timezone
|
|
||||||
)} ${getAMPM(unitSystem, weatherData.dt, weatherData.timezone)}`}
|
|
||||||
</h2>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
@ -1,4 +0,0 @@
|
|||||||
.wrapper {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
import styles from "./ErrorScreen.module.css";
|
|
||||||
|
|
||||||
export const ErrorScreen = ({ errorMessage, children }) => {
|
|
||||||
return (
|
|
||||||
<div className={styles.wrapper}>
|
|
||||||
<h1 className={styles.message}>{errorMessage}</h1>
|
|
||||||
{children}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
@ -1,8 +0,0 @@
|
|||||||
.wrapper {
|
|
||||||
max-width: 260px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.message {
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
import styles from "./Header.module.css";
|
|
||||||
|
|
||||||
export const Header = ({ children }) => {
|
|
||||||
return <div className={styles.wrapper}>{children}</div>;
|
|
||||||
};
|
|
@ -1,13 +0,0 @@
|
|||||||
.wrapper {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 2fr 1fr;
|
|
||||||
gap: 20px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 520px) {
|
|
||||||
.wrapper {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
place-items: center;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
export const LoadingScreen = ({ loadingMessage }) => <h1>{loadingMessage}</h1>;
|
|
@ -1,40 +0,0 @@
|
|||||||
import Image from "next/image";
|
|
||||||
import { ctoF } from "../services/converters";
|
|
||||||
import styles from "./MainCard.module.css";
|
|
||||||
|
|
||||||
export const MainCard = ({
|
|
||||||
city,
|
|
||||||
country,
|
|
||||||
description,
|
|
||||||
iconName,
|
|
||||||
unitSystem,
|
|
||||||
weatherData,
|
|
||||||
}) => {
|
|
||||||
return (
|
|
||||||
<div className={styles.wrapper}>
|
|
||||||
<h1 className={styles.location}>
|
|
||||||
{city}, {country}
|
|
||||||
</h1>
|
|
||||||
<p className={styles.description}>{description}</p>
|
|
||||||
<Image
|
|
||||||
width="300px"
|
|
||||||
height="300px"
|
|
||||||
src={`/icons/${iconName}.svg`}
|
|
||||||
alt="weatherIcon"
|
|
||||||
/>
|
|
||||||
<h1 className={styles.temperature}>
|
|
||||||
{unitSystem == "metric"
|
|
||||||
? Math.round(weatherData.main.temp)
|
|
||||||
: Math.round(ctoF(weatherData.main.temp))}
|
|
||||||
°{unitSystem == "metric" ? "C" : "F"}
|
|
||||||
</h1>
|
|
||||||
<p>
|
|
||||||
Feels like{" "}
|
|
||||||
{unitSystem == "metric"
|
|
||||||
? Math.round(weatherData.main.feels_like)
|
|
||||||
: Math.round(ctoF(weatherData.main.feels_like))}
|
|
||||||
°{unitSystem == "metric" ? "C" : "F"}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
@ -1,18 +0,0 @@
|
|||||||
.wrapper {
|
|
||||||
text-align: center;
|
|
||||||
padding: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.location {
|
|
||||||
font-size: 38px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.description {
|
|
||||||
font-size: 24px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.temperature {
|
|
||||||
font-size: 84px;
|
|
||||||
}
|
|
@ -1,63 +0,0 @@
|
|||||||
import { degToCompass } from "../services/converters";
|
|
||||||
import {
|
|
||||||
getTime,
|
|
||||||
getAMPM,
|
|
||||||
getVisibility,
|
|
||||||
getWindSpeed,
|
|
||||||
} from "../services/helpers";
|
|
||||||
import { MetricsCard } from "./MetricsCard";
|
|
||||||
import styles from "./MetricsBox.module.css";
|
|
||||||
|
|
||||||
export const MetricsBox = ({ weatherData, unitSystem }) => {
|
|
||||||
return (
|
|
||||||
<div className={styles.wrapper}>
|
|
||||||
<MetricsCard
|
|
||||||
title={"Humidity"}
|
|
||||||
iconSrc={"/icons/humidity.png"}
|
|
||||||
metric={weatherData.main.humidity}
|
|
||||||
unit={"%"}
|
|
||||||
/>
|
|
||||||
<MetricsCard
|
|
||||||
title={"Wind speed"}
|
|
||||||
iconSrc={"/icons/wind.png"}
|
|
||||||
metric={getWindSpeed(unitSystem, weatherData.wind.speed)}
|
|
||||||
unit={unitSystem == "metric" ? "m/s" : "m/h"}
|
|
||||||
/>
|
|
||||||
<MetricsCard
|
|
||||||
title={"Wind direction"}
|
|
||||||
iconSrc={"/icons/compass.png"}
|
|
||||||
metric={degToCompass(weatherData.wind.deg)}
|
|
||||||
/>
|
|
||||||
<MetricsCard
|
|
||||||
title={"Visibility"}
|
|
||||||
iconSrc={"/icons/binocular.png"}
|
|
||||||
metric={getVisibility(unitSystem, weatherData.visibility)}
|
|
||||||
unit={unitSystem == "metric" ? "km" : "miles"}
|
|
||||||
/>
|
|
||||||
<MetricsCard
|
|
||||||
title={"Sunrise"}
|
|
||||||
iconSrc={"/icons/sunrise.png"}
|
|
||||||
metric={getTime(
|
|
||||||
unitSystem,
|
|
||||||
weatherData.sys.sunrise,
|
|
||||||
weatherData.timezone
|
|
||||||
)}
|
|
||||||
unit={getAMPM(
|
|
||||||
unitSystem,
|
|
||||||
weatherData.sys.sunrise,
|
|
||||||
weatherData.timezone
|
|
||||||
)}
|
|
||||||
/>
|
|
||||||
<MetricsCard
|
|
||||||
title={"Sunset"}
|
|
||||||
iconSrc={"/icons/sunset.png"}
|
|
||||||
metric={getTime(
|
|
||||||
unitSystem,
|
|
||||||
weatherData.sys.sunset,
|
|
||||||
weatherData.timezone
|
|
||||||
)}
|
|
||||||
unit={getAMPM(unitSystem, weatherData.sys.sunset, weatherData.timezone)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
@ -1,18 +0,0 @@
|
|||||||
.wrapper {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr 1fr;
|
|
||||||
gap: 20px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 600px) {
|
|
||||||
.wrapper {
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 475px) {
|
|
||||||
.wrapper {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
import Image from "next/image";
|
|
||||||
import styles from "./MetricsCard.module.css";
|
|
||||||
|
|
||||||
export const MetricsCard = ({ title, iconSrc, metric, unit }) => {
|
|
||||||
return (
|
|
||||||
<div className={styles.wrapper}>
|
|
||||||
<p>{title}</p>
|
|
||||||
<div className={styles.content}>
|
|
||||||
<Image width="100px" height="100px" src={iconSrc} alt="weatherIcon" />
|
|
||||||
<div>
|
|
||||||
<h1>{metric}</h1>
|
|
||||||
<p>{unit}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
@ -1,17 +0,0 @@
|
|||||||
.wrapper {
|
|
||||||
background: rgba(255, 255, 255, 0.95);
|
|
||||||
padding: 20px;
|
|
||||||
text-align: right;
|
|
||||||
border-radius: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 475px) {
|
|
||||||
.content {
|
|
||||||
grid-template-columns: 1fr 2fr;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
import styles from "./Search.module.css";
|
|
||||||
|
|
||||||
export const Search = ({
|
|
||||||
placeHolder,
|
|
||||||
value,
|
|
||||||
onFocus,
|
|
||||||
onChange,
|
|
||||||
onKeyDown,
|
|
||||||
}) => {
|
|
||||||
return (
|
|
||||||
<input
|
|
||||||
className={styles.search}
|
|
||||||
type="text"
|
|
||||||
placeholder={placeHolder}
|
|
||||||
value={value}
|
|
||||||
onFocus={onFocus}
|
|
||||||
onChange={onChange}
|
|
||||||
onKeyDown={onKeyDown}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
};
|
|
@ -1,17 +0,0 @@
|
|||||||
.search {
|
|
||||||
height: 40px;
|
|
||||||
font-size: 18px;
|
|
||||||
font-family: "Varela Round", sans-serif;
|
|
||||||
color: #303030;
|
|
||||||
text-align: right;
|
|
||||||
padding: 0 10px;
|
|
||||||
border: none;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 520px) {
|
|
||||||
.search {
|
|
||||||
width: 100%;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
import styles from "./UnitSwitch.module.css";
|
|
||||||
|
|
||||||
export const UnitSwitch = ({ onClick, unitSystem }) => {
|
|
||||||
return (
|
|
||||||
<div className={styles.wrapper}>
|
|
||||||
<p
|
|
||||||
className={`${styles.switch} ${
|
|
||||||
unitSystem == "metric" ? styles.active : styles.inactive
|
|
||||||
}`}
|
|
||||||
onClick={onClick}
|
|
||||||
>
|
|
||||||
Metric System
|
|
||||||
</p>
|
|
||||||
<p
|
|
||||||
className={`${styles.switch} ${
|
|
||||||
unitSystem == "metric" ? styles.inactive : styles.active
|
|
||||||
}`}
|
|
||||||
onClick={onClick}
|
|
||||||
>
|
|
||||||
Imperial System
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
@ -1,34 +0,0 @@
|
|||||||
.wrapper {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.switch {
|
|
||||||
display: inline;
|
|
||||||
margin: 0 10px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active {
|
|
||||||
color: green;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inactive {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 475px) {
|
|
||||||
.wrapper {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 335px) {
|
|
||||||
.wrapper {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.switch {
|
|
||||||
margin: 10px 0;
|
|
||||||
}
|
|
||||||
}
|
|
9198
package-lock.json
generated
@ -1,7 +0,0 @@
|
|||||||
import "../styles/globals.css";
|
|
||||||
|
|
||||||
function MyApp({ Component, pageProps }) {
|
|
||||||
return <Component {...pageProps} />;
|
|
||||||
}
|
|
||||||
|
|
||||||
export default MyApp;
|
|
@ -1,11 +0,0 @@
|
|||||||
import _config from "../../configs/city.json"
|
|
||||||
import * as process from "node:process";
|
|
||||||
|
|
||||||
export default async function handler(req, res) {
|
|
||||||
const targetedCity = await fetch(process.env.CONFIG_URL as string) as unknown as typeof _config
|
|
||||||
const getWeatherData = await fetch(
|
|
||||||
`https://api.openweathermap.org/data/2.5/weather?q=${targetedCity.cityName}&units=metric&appid=${process.env.OPENWEATHER_API_KEY}`
|
|
||||||
);
|
|
||||||
const data = await getWeatherData.json();
|
|
||||||
res.status(200).json(data);
|
|
||||||
}
|
|
@ -1,84 +0,0 @@
|
|||||||
import { useState, useEffect } from "react";
|
|
||||||
|
|
||||||
import { MainCard } from "../components/MainCard";
|
|
||||||
import { ContentBox } from "../components/ContentBox";
|
|
||||||
import { Header } from "../components/Header";
|
|
||||||
import { DateAndTime } from "../components/DateAndTime";
|
|
||||||
import { Search } from "../components/Search";
|
|
||||||
import { MetricsBox } from "../components/MetricsBox";
|
|
||||||
import { UnitSwitch } from "../components/UnitSwitch";
|
|
||||||
import { LoadingScreen } from "../components/LoadingScreen";
|
|
||||||
import { ErrorScreen } from "../components/ErrorScreen";
|
|
||||||
|
|
||||||
import styles from "../styles/Home.module.css";
|
|
||||||
|
|
||||||
export const App = () => {
|
|
||||||
const [cityInput, setCityInput] = useState("Riga");
|
|
||||||
const [triggerFetch, setTriggerFetch] = useState(true);
|
|
||||||
const [weatherData, setWeatherData] = useState();
|
|
||||||
const [unitSystem, setUnitSystem] = useState("metric");
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const getData = async () => {
|
|
||||||
const res = await fetch("api/data", {
|
|
||||||
method: "POST",
|
|
||||||
headers: { "Content-Type": "application/json" },
|
|
||||||
body: JSON.stringify({ cityInput }),
|
|
||||||
});
|
|
||||||
const data = await res.json();
|
|
||||||
setWeatherData({ ...data });
|
|
||||||
setCityInput("");
|
|
||||||
};
|
|
||||||
getData();
|
|
||||||
}, [triggerFetch]);
|
|
||||||
|
|
||||||
const changeSystem = () =>
|
|
||||||
unitSystem == "metric"
|
|
||||||
? setUnitSystem("imperial")
|
|
||||||
: setUnitSystem("metric");
|
|
||||||
|
|
||||||
return weatherData && !weatherData.message ? (
|
|
||||||
<div className={styles.wrapper}>
|
|
||||||
<MainCard
|
|
||||||
city={weatherData.name}
|
|
||||||
country={weatherData.sys.country}
|
|
||||||
description={weatherData.weather[0].description}
|
|
||||||
iconName={weatherData.weather[0].icon}
|
|
||||||
unitSystem={unitSystem}
|
|
||||||
weatherData={weatherData}
|
|
||||||
/>
|
|
||||||
<ContentBox>
|
|
||||||
<Header>
|
|
||||||
<DateAndTime weatherData={weatherData} unitSystem={unitSystem} />
|
|
||||||
<Search
|
|
||||||
placeHolder="Search a city..."
|
|
||||||
value={cityInput}
|
|
||||||
onFocus={(e) => {
|
|
||||||
e.target.value = "";
|
|
||||||
e.target.placeholder = "";
|
|
||||||
}}
|
|
||||||
onChange={(e) => setCityInput(e.target.value)}
|
|
||||||
onKeyDown={(e) => {
|
|
||||||
e.keyCode === 13 && setTriggerFetch(!triggerFetch);
|
|
||||||
e.target.placeholder = "Search a city...";
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</Header>
|
|
||||||
<MetricsBox weatherData={weatherData} unitSystem={unitSystem} />
|
|
||||||
<UnitSwitch onClick={changeSystem} unitSystem={unitSystem} />
|
|
||||||
</ContentBox>
|
|
||||||
</div>
|
|
||||||
) : weatherData && weatherData.message ? (
|
|
||||||
<ErrorScreen errorMessage="City not found, try again!">
|
|
||||||
<Search
|
|
||||||
onFocus={(e) => (e.target.value = "")}
|
|
||||||
onChange={(e) => setCityInput(e.target.value)}
|
|
||||||
onKeyDown={(e) => e.keyCode === 13 && setTriggerFetch(!triggerFetch)}
|
|
||||||
/>
|
|
||||||
</ErrorScreen>
|
|
||||||
) : (
|
|
||||||
<LoadingScreen loadingMessage="Loading data..." />
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default App;
|
|
Before Width: | Height: | Size: 25 KiB |
@ -1 +0,0 @@
|
|||||||
<svg height="511.99986pt" viewBox="0 0 511.99986 511.99986" width="511.99986pt" xmlns="http://www.w3.org/2000/svg"><path d="m477.449219 256c0-21.75 39.410156-48.386719 34.050781-68.449219-5.550781-20.757812-53.15625-24.101562-63.671875-42.277343-10.667969-18.433594 10.125-61.304688-4.835937-76.265626-14.960938-14.960937-57.832032 5.828126-76.269532-4.835937-18.171875-10.515625-21.515625-58.121094-42.273437-63.671875-20.0625-5.359375-46.699219 34.050781-68.449219 34.050781s-48.386719-39.410156-68.449219-34.050781c-20.757812 5.550781-24.101562 53.15625-42.277343 63.671875-18.433594 10.667969-61.304688-10.125-76.265626 4.835937-14.960937 14.960938 5.828126 57.832032-4.835937 76.269532-10.515625 18.171875-58.121094 21.515625-63.671875 42.273437-5.359375 20.0625 34.050781 46.699219 34.050781 68.449219s-39.410156 48.386719-34.050781 68.449219c5.550781 20.757812 53.15625 24.101562 63.671875 42.277343 10.667969 18.433594-10.125 61.304688 4.835937 76.265626 14.960938 14.960937 57.832032-5.828126 76.269532 4.835937 18.171875 10.515625 21.515625 58.121094 42.273437 63.671875 20.0625 5.359375 46.699219-34.050781 68.449219-34.050781s48.386719 39.410156 68.449219 34.050781c20.757812-5.550781 24.101562-53.15625 42.277343-63.671875 18.433594-10.667969 61.304688 10.125 76.265626-4.835937 14.960937-14.960938-5.828126-57.832032 4.835937-76.269532 10.515625-18.171875 58.121094-21.515625 63.671875-42.273437 5.359375-20.0625-34.050781-46.699219-34.050781-68.449219zm0 0" fill="#ffee8c"/><path d="m426.957031 256c0 86.347656-64.019531 157.746094-147.191406 169.3125-7.765625 1.089844-15.695313 1.640625-23.761719 1.640625-94.417968 0-170.96875-76.539063-170.96875-170.953125 0-94.417969 76.550782-170.957031 170.96875-170.957031 8.066406 0 15.996094.554687 23.761719 1.640625 83.171875 11.566406 147.191406 82.964844 147.191406 169.316406zm0 0" fill="#f28f44"/><path d="m426.957031 256c0 86.347656-64.019531 157.746094-147.191406 169.3125-83.175781-11.566406-147.195313-82.964844-147.195313-169.3125 0-86.351562 64.019532-157.75 147.195313-169.316406 83.171875 11.566406 147.191406 82.964844 147.191406 169.316406zm0 0" fill="#ffd073"/><g fill="#cc9236"><path d="m155.875 229.488281c-2.003906 0-4.011719-.765625-5.539062-2.296875-3.0625-3.0625-3.0625-8.023437 0-11.082031 17.53125-17.53125 46.054687-17.53125 63.582031 0 3.0625 3.058594 3.0625 8.019531 0 11.082031-3.058594 3.058594-8.019531 3.058594-11.082031 0-11.417969-11.421875-29.996094-11.421875-41.417969 0-1.53125 1.53125-3.535157 2.296875-5.542969 2.296875zm0 0"/><path d="m356.125 229.488281c-2.007812 0-4.011719-.765625-5.542969-2.296875-11.417969-11.421875-30-11.417968-41.417969 0-3.0625 3.058594-8.023437 3.058594-11.082031 0-3.0625-3.0625-3.0625-8.023437 0-11.082031 17.527344-17.53125 46.054688-17.53125 63.585938 0 3.058593 3.058594 3.058593 8.023437 0 11.082031-1.53125 1.53125-3.539063 2.296875-5.542969 2.296875zm0 0"/><path d="m256 310.582031c-17.015625 0-33.015625-6.628906-45.046875-18.660156-3.058594-3.0625-3.058594-8.023437 0-11.082031 3.0625-3.0625 8.023437-3.0625 11.082031 0 9.074219 9.070312 21.132813 14.066406 33.964844 14.066406s24.890625-4.996094 33.964844-14.066406c3.058594-3.0625 8.023437-3.0625 11.082031 0 3.058594 3.058594 3.058594 8.019531 0 11.082031-12.03125 12.03125-28.03125 18.660156-45.046875 18.660156zm0 0"/></g></svg>
|
|
Before Width: | Height: | Size: 3.2 KiB |
@ -1 +0,0 @@
|
|||||||
<svg height="512pt" viewBox="0 0 512 512.00001" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m509.53125 291.945312c-79.9375 79.933594-209.539062 79.933594-289.472656 0-79.9375-79.9375-79.9375-209.539062 0-289.476562.835937-.835938 1.683594-1.648438 2.53125-2.46875-53.863282 7.269531-105.867188 31.585938-147.265625 72.984375-100.429688 100.429687-100.429688 263.261719 0 363.691406 100.429687 100.429688 263.261719 100.429688 363.691406 0 41.398437-41.398437 65.714844-93.402343 72.984375-147.265625-.820312.847656-1.632812 1.695313-2.46875 2.535156zm0 0" fill="#ffd073"/><path d="m368.015625 486.964844c-95.585937 45.640625-213.523437 28.875-292.691406-50.289063-100.433594-100.433593-100.433594-263.257812 0-363.691406 38.574219-38.574219 86.367187-62.328125 136.277343-71.25-25.664062 12.238281-49.722656 29.003906-70.976562 50.257813-100.433594 100.433593-100.433594 263.257812 0 363.691406 61.847656 61.84375 147.363281 85.609375 227.390625 71.28125zm0 0" fill="#f28f44"/><path d="m355.84375 117.804688 28.492188-5.566407c12.484374-2.441406 12.484374-20.300781 0-22.738281l-28.492188-5.570312c-16.21875-3.167969-28.898438-15.847657-32.066406-32.066407l-5.570313-28.492187c-2.4375-12.484375-20.300781-12.484375-22.738281 0l-5.570312 28.492187c-3.167969 16.21875-15.847657 28.898438-32.0625 32.066407l-28.496094 5.570312c-12.484375 2.4375-12.484375 20.296875 0 22.738281l28.496094 5.566407c16.214843 3.167968 28.894531 15.847656 32.0625 32.066406l5.570312 28.496094c2.4375 12.484374 20.300781 12.484374 22.738281 0l5.570313-28.496094c3.167968-16.214844 15.847656-28.898438 32.066406-32.066406zm0 0" fill="#ffee8c"/><path d="m424.875 251.722656 18.40625-3.597656c8.066406-1.574219 8.066406-13.113281 0-14.6875l-18.40625-3.597656c-10.476562-2.046875-18.667969-10.238282-20.714844-20.714844l-3.597656-18.40625c-1.574219-8.066406-13.113281-8.066406-14.6875 0l-3.597656 18.40625c-2.046875 10.476562-10.238282 18.667969-20.714844 20.714844l-18.40625 3.597656c-8.066406 1.574219-8.066406 13.113281 0 14.6875l18.40625 3.597656c10.476562 2.046875 18.667969 10.238282 20.714844 20.714844l3.597656 18.40625c1.574219 8.066406 13.113281 8.066406 14.6875 0l3.597656-18.40625c2.046875-10.476562 10.238282-18.664062 20.714844-20.714844zm0 0" fill="#ffee8c"/><g fill="#cc9236"><path d="m80.242188 257.46875c-3.292969 0-6.363282-2.078125-7.464844-5.375l-2.980469-8.90625c-1.378906-4.121094.84375-8.582031 4.964844-9.964844 4.125-1.378906 8.585937.84375 9.964843 4.96875l2.980469 8.90625c1.378907 4.121094-.84375 8.582032-4.964843 9.964844-.828126.277344-1.671876.40625-2.5.40625zm0 0"/><path d="m123.632812 242.949219c-3.292968 0-6.363281-2.082031-7.464843-5.378907l-2.980469-8.90625c-1.378906-4.121093.84375-8.582031 4.964844-9.964843 4.125-1.378907 8.585937.847656 9.964844 4.96875l2.980468 8.90625c1.378906 4.121093-.84375 8.582031-4.964844 9.964843-.828124.277344-1.671874.410157-2.5.410157zm0 0"/><path d="m105.152344 300.09375c-9.335938 0-18.613282-2.167969-27.214844-6.453125-3.890625-1.9375-5.472656-6.664063-3.535156-10.558594 1.941406-3.890625 6.667968-5.472656 10.558594-3.53125 22.402343 11.164063 49.707031 2.023438 60.875-20.375 1.9375-3.894531 6.667968-5.476562 10.554687-3.535156 3.894531 1.9375 5.476563 6.664063 3.535156 10.558594-7.285156 14.613281-19.824219 25.515625-35.308593 30.699219-6.375 2.132812-12.933594 3.195312-19.464844 3.195312zm0 0"/></g></svg>
|
|
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 5.4 KiB |
@ -1 +0,0 @@
|
|||||||
<svg height="512pt" viewBox="0 -10 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m483.324219 151.332031c-36.757813 36.757813-96.347657 36.757813-133.105469 0-36.757812-36.757812-36.757812-96.347656 0-133.105469.382812-.382812.773438-.757812 1.164062-1.132812-24.765624 3.339844-48.679687 14.519531-67.714843 33.558594-46.179688 46.179687-46.179688 121.050781 0 167.230468 46.179687 46.179688 121.050781 46.179688 167.230469 0 19.039062-19.035156 30.21875-42.949218 33.5625-67.714843-.378907.390625-.753907.78125-1.136719 1.164062zm0 0" fill="#ffd073"/><path d="m418.253906 241.007812c-43.953125 20.984376-98.183594 13.277344-134.585937-23.125-46.179688-46.183593-46.179688-121.050781 0-167.230468 17.738281-17.738282 39.714843-28.660156 62.664062-32.761719-11.800781 5.625-22.863281 13.335937-32.636719 23.109375-46.179687 46.179688-46.179687 121.046875 0 167.230469 28.4375 28.4375 67.757813 39.363281 104.558594 32.777343zm0 0" fill="#f28f44"/><path d="m119.625 66.523438 18.261719-3.566407c8-1.5625 8-13.011719 0-14.574219l-18.261719-3.570312c-10.394531-2.03125-18.519531-10.15625-20.550781-20.550781l-3.566407-18.261719c-1.5625-8-13.011718-8-14.574218 0l-3.570313 18.261719c-2.03125 10.394531-10.15625 18.519531-20.550781 20.550781l-18.261719 3.570312c-8 1.5625-8 13.007813 0 14.574219l18.261719 3.566407c10.394531 2.03125 18.519531 10.160156 20.550781 20.550781l3.570313 18.261719c1.5625 8.003906 13.011718 8.003906 14.574218 0l3.570313-18.261719c2.027344-10.390625 10.152344-18.519531 20.546875-20.550781zm0 0" fill="#ffee8c"/><path d="m408.09375 304.191406c0 37.882813-30.710938 68.59375-68.609375 68.59375h-248.265625c-50.371094 0-91.21875-40.832031-91.21875-91.21875 0-50.375 40.847656-91.21875 91.21875-91.21875 4.519531 0 8.964844.347656 13.316406.976563 20.601563-40.910157 62.964844-68.980469 111.910156-68.980469 59.222657 0 108.835938 41.117188 121.867188 96.355469 1.300781 5.511719 2.238281 11.164062 2.78125 16.921875v.011718c37.136719.851563 67 31.214844 67 68.558594zm0 0" fill="#84abc1"/><path d="m259.96875 130.125c-13.558594-5.035156-28.226562-7.777344-43.523438-7.777344-48.945312 0-91.296874 28.070313-111.910156 68.96875v.011719c-4.355468-.632813-8.796875-.980469-13.316406-.980469-50.386719.003906-91.21875 40.847656-91.21875 91.222656 0 50.386719 40.832031 91.21875 91.21875 91.21875h44.089844c-45.402344 0-82.191406-36.800781-82.191406-82.191406 0-40.277344 28.972656-73.796875 67.230468-80.828125 3.785156-.707031 7.660156-1.144531 11.613282-1.300781 1.105468-.039062 2.226562-.066406 3.347656-.066406 14.757812 0 28.613281 3.890625 40.574218 10.714844-1.660156-11.578126-13.632812-22.425782-31.28125-31.167969 9.691407-32.777344 42.675782-63.175781 115.367188-57.824219zm0 0" fill="#4d87a1"/><path d="m512 436.441406c0 30.636719-24.835938 55.472656-55.484375 55.472656h-200.785156c-40.738281 0-73.769531-33.019531-73.769531-73.769531 0-40.742187 33.03125-73.773437 73.769531-73.773437 3.65625 0 7.25.28125 10.769531.789062 16.664062-33.082031 50.925781-55.785156 90.507812-55.785156 47.894532 0 88.019532 33.25 98.558594 77.925781 1.050782 4.457031 1.8125 9.03125 2.25 13.683594v.011719c30.035156.6875 54.183594 25.242187 54.183594 55.445312zm0 0" fill="#d3ddea"/><path d="m392.207031 295.667969c-10.964843-4.074219-22.828125-6.289063-35.199219-6.289063-39.582031 0-73.835937 22.699219-90.507812 55.777344v.007812c-3.519531-.507812-7.113281-.789062-10.769531-.789062-40.75 0-73.769531 33.03125-73.769531 73.769531 0 40.75 33.019531 73.773438 73.769531 73.773438h35.660156c-36.71875 0-66.472656-29.761719-66.472656-66.472657 0-32.574218 23.429687-59.679687 54.371093-65.367187 3.0625-.574219 6.195313-.925781 9.394532-1.050781.894531-.03125 1.800781-.054688 2.707031-.054688 11.933594 0 23.140625 3.144532 32.8125 8.664063-1.34375-9.363281-11.023437-18.136719-25.300781-25.207031 7.839844-26.507813 34.515625-51.089844 93.304687-46.761719zm0 0" fill="#84abc1"/></svg>
|
|
Before Width: | Height: | Size: 3.8 KiB |
@ -1 +0,0 @@
|
|||||||
<svg height="512pt" viewBox="0 -99 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m512 228.148438c0 47.527343-38.53125 86.058593-86.078125 86.058593h-311.476563c-63.199218 0-114.44140575-51.226562-114.44140575-114.445312 0-63.199219 51.24218775-114.445313 114.44140575-114.445313 5.671876 0 11.246094.4375 16.707032 1.226563 25.847656-51.324219 79-86.542969 140.40625-86.542969 74.296875 0 136.546875 51.585938 152.894531 120.890625 1.632813 6.914063 2.8125 14.007813 3.492187 21.230469v.015625c46.589844 1.066406 84.054688 39.160156 84.054688 86.011719zm0 0" fill="#d3ddea"/><path d="m326.164062 9.765625c-17.011718-6.316406-35.414062-9.7578125-54.605468-9.7578125-61.40625 0-114.542969 35.2187495-140.410156 86.5273435v.015625c-5.457032-.792969-11.03125-1.226562-16.703126-1.226562-63.214843 0-114.445312 51.246093-114.445312 114.445312 0 63.214844 51.230469 114.445313 114.445312 114.445313h55.316407c-56.964844 0-103.121094-46.171875-103.121094-103.121094 0-50.535156 36.351563-92.585938 84.347656-101.40625 4.75-.886719 9.613281-1.4375 14.570313-1.632812 1.390625-.046876 2.796875-.082032 4.203125-.082032 18.511719 0 35.894531 4.878906 50.90625 13.445313-2.085938-14.53125-17.105469-28.140625-39.25-39.105469 12.160156-41.125 53.542969-79.265625 144.746093-72.546875zm0 0" fill="#84abc1"/></svg>
|
|
Before Width: | Height: | Size: 1.3 KiB |
@ -1 +0,0 @@
|
|||||||
<svg height="512pt" viewBox="0 -99 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m512 228.148438c0 47.527343-38.53125 86.058593-86.078125 86.058593h-311.476563c-63.199218 0-114.44140575-51.226562-114.44140575-114.445312 0-63.199219 51.24218775-114.445313 114.44140575-114.445313 5.671876 0 11.246094.4375 16.707032 1.226563 25.847656-51.324219 79-86.542969 140.40625-86.542969 74.296875 0 136.546875 51.585938 152.894531 120.890625 1.632813 6.914063 2.8125 14.007813 3.492187 21.230469v.015625c46.589844 1.066406 84.054688 39.160156 84.054688 86.011719zm0 0" fill="#d3ddea"/><path d="m326.164062 9.765625c-17.011718-6.316406-35.414062-9.7578125-54.605468-9.7578125-61.40625 0-114.542969 35.2187495-140.410156 86.5273435v.015625c-5.457032-.792969-11.03125-1.226562-16.703126-1.226562-63.214843 0-114.445312 51.246093-114.445312 114.445312 0 63.214844 51.230469 114.445313 114.445312 114.445313h55.316407c-56.964844 0-103.121094-46.171875-103.121094-103.121094 0-50.535156 36.351563-92.585938 84.347656-101.40625 4.75-.886719 9.613281-1.4375 14.570313-1.632812 1.390625-.046876 2.796875-.082032 4.203125-.082032 18.511719 0 35.894531 4.878906 50.90625 13.445313-2.085938-14.53125-17.105469-28.140625-39.25-39.105469 12.160156-41.125 53.542969-79.265625 144.746093-72.546875zm0 0" fill="#84abc1"/></svg>
|
|
Before Width: | Height: | Size: 1.3 KiB |
@ -1 +0,0 @@
|
|||||||
<svg height="512pt" viewBox="0 -71 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m408.09375 181.847656c0 37.882813-30.710938 68.59375-68.609375 68.59375h-248.265625c-50.371094 0-91.21875-40.832031-91.21875-91.21875 0-50.375 40.847656-91.21875 91.21875-91.21875 4.519531 0 8.964844.347656 13.316406.976563 20.601563-40.910157 62.964844-68.980469 111.910156-68.980469 59.222657 0 108.835938 41.117188 121.867188 96.355469 1.300781 5.511719 2.238281 11.164062 2.78125 16.921875v.011718c37.136719.851563 67 31.214844 67 68.558594zm0 0" fill="#84abc1"/><path d="m259.96875 7.78125c-13.558594-5.035156-28.226562-7.77734375-43.523438-7.77734375-48.945312 0-91.296874 28.07421875-111.910156 68.96874975v.011719c-4.355468-.628906-8.796875-.976563-13.316406-.976563-50.386719 0-91.21875 40.84375-91.21875 91.21875 0 50.386719 40.832031 91.21875 91.21875 91.21875h44.089844c-45.402344 0-82.191406-36.800781-82.191406-82.191406 0-40.28125 28.972656-73.796875 67.230468-80.828125 3.785156-.707031 7.660156-1.144531 11.613282-1.300781 1.105468-.039062 2.226562-.066406 3.347656-.066406 14.757812 0 28.613281 3.890625 40.574218 10.714844-1.660156-11.578126-13.632812-22.425782-31.28125-31.167969 9.691407-32.777344 42.675782-63.175781 115.367188-57.824219zm0 0" fill="#4d87a1"/><path d="m264.3125 245.925781c.496094.085938.789062.085938.835938.085938h-3.796876c.992188 0 1.976563-.03125 2.960938-.085938zm0 0" fill="#84abc1"/><path d="m512 314.097656c0 30.636719-24.835938 55.476563-55.484375 55.476563h-200.785156c-40.738281 0-73.769531-33.023438-73.769531-73.773438 0-40.738281 33.03125-73.773437 73.769531-73.773437 3.65625 0 7.25.28125 10.769531.792968 16.664062-33.085937 50.925781-55.789062 90.507812-55.789062 47.894532 0 88.019532 33.25 98.558594 77.929688 1.050782 4.457031 1.8125 9.027343 2.25 13.683593v.007813c30.035156.6875 54.183594 25.246094 54.183594 55.445312zm0 0" fill="#d3ddea"/><path d="m392.207031 173.324219c-10.964843-4.070313-22.828125-6.289063-35.199219-6.289063-39.582031 0-73.835937 22.703125-90.507812 55.777344v.007812c-3.519531-.507812-7.113281-.789062-10.769531-.789062-40.75 0-73.769531 33.03125-73.769531 73.773438 0 40.75 33.019531 73.769531 73.769531 73.769531h35.660156c-36.71875 0-66.472656-29.761719-66.472656-66.46875 0-32.578125 23.429687-59.683594 54.371093-65.371094 3.0625-.570313 6.195313-.925781 9.394532-1.050781.894531-.03125 1.800781-.050782 2.707031-.050782 11.933594 0 23.140625 3.144532 32.8125 8.664063-1.34375-9.367187-11.023437-18.140625-25.300781-25.210937 7.839844-26.507813 34.515625-51.089844 93.304687-46.761719zm0 0" fill="#84abc1"/></svg>
|
|
Before Width: | Height: | Size: 2.5 KiB |
@ -1 +0,0 @@
|
|||||||
<svg height="512pt" viewBox="0 -71 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m408.09375 181.847656c0 37.882813-30.710938 68.59375-68.609375 68.59375h-248.265625c-50.371094 0-91.21875-40.832031-91.21875-91.21875 0-50.375 40.847656-91.21875 91.21875-91.21875 4.519531 0 8.964844.347656 13.316406.976563 20.601563-40.910157 62.964844-68.980469 111.910156-68.980469 59.222657 0 108.835938 41.117188 121.867188 96.355469 1.300781 5.511719 2.238281 11.164062 2.78125 16.921875v.011718c37.136719.851563 67 31.214844 67 68.558594zm0 0" fill="#84abc1"/><path d="m259.96875 7.78125c-13.558594-5.035156-28.226562-7.77734375-43.523438-7.77734375-48.945312 0-91.296874 28.07421875-111.910156 68.96874975v.011719c-4.355468-.628906-8.796875-.976563-13.316406-.976563-50.386719 0-91.21875 40.84375-91.21875 91.21875 0 50.386719 40.832031 91.21875 91.21875 91.21875h44.089844c-45.402344 0-82.191406-36.800781-82.191406-82.191406 0-40.28125 28.972656-73.796875 67.230468-80.828125 3.785156-.707031 7.660156-1.144531 11.613282-1.300781 1.105468-.039062 2.226562-.066406 3.347656-.066406 14.757812 0 28.613281 3.890625 40.574218 10.714844-1.660156-11.578126-13.632812-22.425782-31.28125-31.167969 9.691407-32.777344 42.675782-63.175781 115.367188-57.824219zm0 0" fill="#4d87a1"/><path d="m264.3125 245.925781c.496094.085938.789062.085938.835938.085938h-3.796876c.992188 0 1.976563-.03125 2.960938-.085938zm0 0" fill="#84abc1"/><path d="m512 314.097656c0 30.636719-24.835938 55.476563-55.484375 55.476563h-200.785156c-40.738281 0-73.769531-33.023438-73.769531-73.773438 0-40.738281 33.03125-73.773437 73.769531-73.773437 3.65625 0 7.25.28125 10.769531.792968 16.664062-33.085937 50.925781-55.789062 90.507812-55.789062 47.894532 0 88.019532 33.25 98.558594 77.929688 1.050782 4.457031 1.8125 9.027343 2.25 13.683593v.007813c30.035156.6875 54.183594 25.246094 54.183594 55.445312zm0 0" fill="#d3ddea"/><path d="m392.207031 173.324219c-10.964843-4.070313-22.828125-6.289063-35.199219-6.289063-39.582031 0-73.835937 22.703125-90.507812 55.777344v.007812c-3.519531-.507812-7.113281-.789062-10.769531-.789062-40.75 0-73.769531 33.03125-73.769531 73.773438 0 40.75 33.019531 73.769531 73.769531 73.769531h35.660156c-36.71875 0-66.472656-29.761719-66.472656-66.46875 0-32.578125 23.429687-59.683594 54.371093-65.371094 3.0625-.570313 6.195313-.925781 9.394532-1.050781.894531-.03125 1.800781-.050782 2.707031-.050782 11.933594 0 23.140625 3.144532 32.8125 8.664063-1.34375-9.367187-11.023437-18.140625-25.300781-25.210937 7.839844-26.507813 34.515625-51.089844 93.304687-46.761719zm0 0" fill="#84abc1"/></svg>
|
|
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 7.0 KiB |
@ -1 +0,0 @@
|
|||||||
<svg height="512pt" viewBox="0 0 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m511.433594 227.894531c0 47.476563-38.488282 85.964844-85.980469 85.964844h-311.132813c-63.128906 0-114.320312-51.171875-114.320312-114.316406 0-63.132813 51.191406-114.320313 114.320312-114.320313 5.664063 0 11.230469.433594 16.6875 1.226563 25.820313-51.269531 78.910157-86.449219 140.25-86.449219 74.21875 0 136.398438 51.527344 152.726563 120.757812 1.632813 6.90625 2.808594 13.992188 3.488281 21.207032v.015625c46.539063 1.0625 83.960938 39.117187 83.960938 85.914062zm0 0" fill="#84abc1"/><path d="m325.800781 9.753906c-16.992187-6.3125-35.371093-9.74999975-54.542969-9.74999975-61.339843 0-114.414062 35.18359375-140.253906 86.43359375v.015625c-5.453125-.789063-11.019531-1.226563-16.683594-1.226563-63.148437 0-114.320312 51.191407-114.320312 114.320313 0 63.148437 51.171875 114.320313 114.320312 114.320313h55.253907c-56.902344 0-103.007813-46.121094-103.007813-103.007813 0-50.476563 36.3125-92.484375 84.253906-101.292969 4.746094-.886718 9.601563-1.4375 14.558594-1.632812 1.386719-.046875 2.789063-.078125 4.195313-.078125 18.492187 0 35.855469 4.871093 50.851562 13.425781-2.085937-14.511719-17.085937-28.105469-39.207031-39.0625 12.144531-41.078125 53.484375-79.175781 144.582031-72.464844zm0 0" fill="#4d87a1"/><path d="m357.722656 139.523438-194.324218 174.421874h48.257812l-70.503906 81.363282h50.609375l-80.035157 116.691406 191.855469-133.492188h-52.96875l84.746094-95.222656h-52.964844z" fill="#ffee8c"/></svg>
|
|
Before Width: | Height: | Size: 1.5 KiB |
@ -1 +0,0 @@
|
|||||||
<svg height="512pt" viewBox="0 0 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m511.433594 227.894531c0 47.476563-38.488282 85.964844-85.980469 85.964844h-311.132813c-63.128906 0-114.320312-51.171875-114.320312-114.316406 0-63.132813 51.191406-114.320313 114.320312-114.320313 5.664063 0 11.230469.433594 16.6875 1.226563 25.820313-51.269531 78.910157-86.449219 140.25-86.449219 74.21875 0 136.398438 51.527344 152.726563 120.757812 1.632813 6.90625 2.808594 13.992188 3.488281 21.207032v.015625c46.539063 1.0625 83.960938 39.117187 83.960938 85.914062zm0 0" fill="#84abc1"/><path d="m325.800781 9.753906c-16.992187-6.3125-35.371093-9.74999975-54.542969-9.74999975-61.339843 0-114.414062 35.18359375-140.253906 86.43359375v.015625c-5.453125-.789063-11.019531-1.226563-16.683594-1.226563-63.148437 0-114.320312 51.191407-114.320312 114.320313 0 63.148437 51.171875 114.320313 114.320312 114.320313h55.253907c-56.902344 0-103.007813-46.121094-103.007813-103.007813 0-50.476563 36.3125-92.484375 84.253906-101.292969 4.746094-.886718 9.601563-1.4375 14.558594-1.632812 1.386719-.046875 2.789063-.078125 4.195313-.078125 18.492187 0 35.855469 4.871093 50.851562 13.425781-2.085937-14.511719-17.085937-28.105469-39.207031-39.0625 12.144531-41.078125 53.484375-79.175781 144.582031-72.464844zm0 0" fill="#4d87a1"/><path d="m357.722656 139.523438-194.324218 174.421874h48.257812l-70.503906 81.363282h50.609375l-80.035157 116.691406 191.855469-133.492188h-52.96875l84.746094-95.222656h-52.964844z" fill="#ffee8c"/></svg>
|
|
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 16 KiB |
@ -1,41 +0,0 @@
|
|||||||
export const ctoF = (c) => (c * 9) / 5 + 32;
|
|
||||||
|
|
||||||
export const mpsToMph = (mps) => (mps * 2.236936).toFixed(2);
|
|
||||||
|
|
||||||
export const kmToMiles = (km) => (km / 1.609).toFixed(1);
|
|
||||||
|
|
||||||
export const timeTo12HourFormat = (time) => {
|
|
||||||
let [hours, minutes] = time.split(":");
|
|
||||||
return `${(hours %= 12) ? hours : 12}:${minutes}`;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const degToCompass = (num) => {
|
|
||||||
var val = Math.round(num / 22.5);
|
|
||||||
var arr = [
|
|
||||||
"N",
|
|
||||||
"NNE",
|
|
||||||
"NE",
|
|
||||||
"ENE",
|
|
||||||
"E",
|
|
||||||
"ESE",
|
|
||||||
"SE",
|
|
||||||
"SSE",
|
|
||||||
"S",
|
|
||||||
"SSW",
|
|
||||||
"SW",
|
|
||||||
"WSW",
|
|
||||||
"W",
|
|
||||||
"WNW",
|
|
||||||
"NW",
|
|
||||||
"NNW",
|
|
||||||
];
|
|
||||||
return arr[val % 16];
|
|
||||||
};
|
|
||||||
|
|
||||||
export const unixToLocalTime = (unixSeconds, timezone) => {
|
|
||||||
let time = new Date((unixSeconds + timezone) * 1000)
|
|
||||||
.toISOString()
|
|
||||||
.match(/(\d{2}:\d{2})/)[0];
|
|
||||||
|
|
||||||
return time.startsWith("0") ? time.substring(1) : time;
|
|
||||||
};
|
|
@ -1,41 +0,0 @@
|
|||||||
import {
|
|
||||||
unixToLocalTime,
|
|
||||||
kmToMiles,
|
|
||||||
mpsToMph,
|
|
||||||
timeTo12HourFormat,
|
|
||||||
} from "./converters";
|
|
||||||
|
|
||||||
export const getWindSpeed = (unitSystem, windInMps) =>
|
|
||||||
unitSystem == "metric" ? windInMps : mpsToMph(windInMps);
|
|
||||||
|
|
||||||
export const getVisibility = (unitSystem, visibilityInMeters) =>
|
|
||||||
unitSystem == "metric"
|
|
||||||
? (visibilityInMeters / 1000).toFixed(1)
|
|
||||||
: kmToMiles(visibilityInMeters / 1000);
|
|
||||||
|
|
||||||
export const getTime = (unitSystem, currentTime, timezone) =>
|
|
||||||
unitSystem == "metric"
|
|
||||||
? unixToLocalTime(currentTime, timezone)
|
|
||||||
: timeTo12HourFormat(unixToLocalTime(currentTime, timezone));
|
|
||||||
|
|
||||||
export const getAMPM = (unitSystem, currentTime, timezone) =>
|
|
||||||
unitSystem === "imperial"
|
|
||||||
? unixToLocalTime(currentTime, timezone).split(":")[0] >= 12
|
|
||||||
? "PM"
|
|
||||||
: "AM"
|
|
||||||
: "";
|
|
||||||
|
|
||||||
export const getWeekDay = (weatherData) => {
|
|
||||||
const weekday = [
|
|
||||||
"Sunday",
|
|
||||||
"Monday",
|
|
||||||
"Tuesday",
|
|
||||||
"Wednesday",
|
|
||||||
"Thursday",
|
|
||||||
"Friday",
|
|
||||||
"Saturday",
|
|
||||||
];
|
|
||||||
return weekday[
|
|
||||||
new Date((weatherData.dt + weatherData.timezone) * 1000).getUTCDay()
|
|
||||||
];
|
|
||||||
};
|
|
@ -1,26 +0,0 @@
|
|||||||
.wrapper {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 2fr;
|
|
||||||
max-width: 1200px;
|
|
||||||
background: rgba(255, 255, 255, 0.95);
|
|
||||||
box-shadow: 0 8px 32px 0 rgba(83, 89, 179, 0.37);
|
|
||||||
backdrop-filter: blur(3px);
|
|
||||||
-webkit-backdrop-filter: blur(3px);
|
|
||||||
border-radius: 30px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 950px) {
|
|
||||||
.wrapper {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
max-width: 600px;
|
|
||||||
margin: 20px auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 600px) {
|
|
||||||
.wrapper {
|
|
||||||
margin: 0;
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
@import url("https://fonts.googleapis.com/css2?family=Varela+Round&display=swap");
|
|
||||||
|
|
||||||
* {
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
width: 100vw;
|
|
||||||
min-height: 100vh;
|
|
||||||
background-image: radial-gradient(
|
|
||||||
circle 993px at 0.5% 50.5%,
|
|
||||||
rgba(137, 171, 245, 0.37) 0%,
|
|
||||||
rgba(245, 247, 252, 1) 100.2%
|
|
||||||
);
|
|
||||||
font-family: "Varela Round", sans-serif;
|
|
||||||
}
|
|