gman 2 years ago
commit 600ceb84f8

1832
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -11,14 +11,18 @@
}, },
"dependencies": { "dependencies": {
"@emotion/react": "^11.11.1", "@emotion/react": "^11.11.1",
"@mantine/core": "^6.0.17", "@mantine/carousel": "^6.0.21",
"@mantine/hooks": "^6.0.17", "@mantine/core": "^6.0.21",
"@mantine/hooks": "^6.0.21",
"@tabler/icons-react": "^2.28.0", "@tabler/icons-react": "^2.28.0",
"embla-carousel-react": "^7.0.0",
"fuse.js": "^6.6.2", "fuse.js": "^6.6.2",
"maplibre-gl": "^3.2.0", "maplibre-gl": "^3.2.0",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-map-gl": "^7.1.3" "react-map-gl": "^7.1.3",
"react-markdown": "^9.0.0",
"react-router-dom": "^6.16.0"
}, },
"devDependencies": { "devDependencies": {
"@types/react": "^18.2.15", "@types/react": "^18.2.15",

@ -1,4 +1,10 @@
import { Box } from '@mantine/core'; import { Box } from '@mantine/core';
import {
createBrowserRouter,
RouterProvider,
useLoaderData,
} from 'react-router-dom';
import { KartaPage } from './KartaPage'; import { KartaPage } from './KartaPage';
import { Landing } from './Landing'; import { Landing } from './Landing';
import { Article } from './Article'; import { Article } from './Article';
@ -7,14 +13,37 @@ import { FooterLinks } from './Footer';
import headerLinks from './assets/header.json'; import headerLinks from './assets/header.json';
import footerLinks from './assets/footer.json'; import footerLinks from './assets/footer.json';
const articleLoader = async function({ params }) {
const response = await fetch("http://strapi.wg.gateway.ts/api/articles?filters[id][$eq]=3")
const article = await response.json()
return article;
}
const router = createBrowserRouter([
{
path: "/",
element: <KartaPage />
},
{
path: "/about",
element: <Landing />
},
{
path: "/article/:id",
element: <Article />,
loader: async ({ params }) => {
return fetch(`http://strapi.wg.gateway.ts/api/articles?populate=*&filters[id][$eq]=${params.id}`);
},
}
])
function App() { function App() {
return ( return (
<Box pos={'absolute'} w={'100%'} top={0}> <Box pos={'absolute'} w={'100%'} top={0}>
<HeaderSimple links={headerLinks.links} /> <HeaderSimple links={headerLinks.links} />
<KartaPage></KartaPage> <RouterProvider router={router} />
{/* <Article></Article> */}
{/* <Landing></Landing> */}
<FooterLinks data={footerLinks.data} /> <FooterLinks data={footerLinks.data} />
</Box > </Box >
); );

@ -1,4 +1,7 @@
import { Title, Text, Container, Blockquote, rem, createStyles } from '@mantine/core'; import { Title, Container, rem, createStyles, TypographyStylesProvider, Image } from '@mantine/core';
import { Carousel } from '@mantine/carousel';
import { useLoaderData } from 'react-router-dom';
import Markdown from 'react-markdown';
const useStyles = createStyles((theme) => ({ const useStyles = createStyles((theme) => ({
content: { content: {
@ -6,12 +9,10 @@ const useStyles = createStyles((theme) => ({
}, },
title: { title: {
color: theme.colorScheme === 'dark' ? theme.white : theme.black,
fontFamily: `Greycliff CF, ${theme.fontFamily}`,
fontSize: rem(55), fontSize: rem(55),
lineHeight: 1.2, lineHeight: 1.2,
fontWeight: 900, fontWeight: 900,
padding: rem(20), paddingBottom: rem(20),
[theme.fn.smallerThan('xs')]: { [theme.fn.smallerThan('xs')]: {
fontSize: rem(28), fontSize: rem(28),
}, },
@ -23,47 +24,35 @@ const useStyles = createStyles((theme) => ({
} }
})); }));
export function Article() { export function Article() {
const articleData = useLoaderData();
const { classes } = useStyles(); const { classes } = useStyles();
const article = articleData.data[0].attributes
console.log(articleData)
const generateCarousel = () => {
if (articleData.data[0].attributes.carousel.data) {
return (
<Carousel slideSize="70%" height={500} slideGap="md" loop>
{articleData.data[0].attributes.carousel.data.map(image => <Carousel.Slide><Image fit='fill' height={500} mx="auto" radius="md" src={`http://strapi.wg.gateway.ts${image.attributes.url}`} alt="Random image" /></Carousel.Slide>)}
</Carousel>
)
}
}
return ( return (
<Container className={classes.content}> <Container className={classes.content}>
<Title order={1} className={classes.title}> <Title order={1} className={classes.title}>
Михаил Михайлович Пришвин {article.title}
</Title>
<Text>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis iusto blanditiis exercitationem voluptates itaque eligendi, consequatur in distinctio eius explicabo. Aliquid in vel explicabo assumenda, molestiae consequatur illum eius voluptates? Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ipsum, a similique reprehenderit nesciunt corporis nemo autem neque, ratione assumenda eveniet ex maxime quae vero non expedita dicta. Laudantium, ea numquam?
Explicabo eos dolores aliquid quos velit, provident, autem ipsam, hic impedit quis cupiditate distinctio ipsum a perferendis. Fugiat in ad consequuntur! Numquam suscipit nostrum commodi repudiandae nulla minus vel tempora.
Tempora repellendus incidunt voluptatum, obcaecati eos reiciendis repellat corrupti velit cupiditate unde modi enim sed sunt fugiat, quasi, quidem at maiores. At et tenetur magni delectus, voluptates perspiciatis. Tempore, vero?
Facilis, architecto ducimus? Dolor sed saepe omnis? Quam dolorum sequi magni necessitatibus eveniet, assumenda ducimus iste obcaecati optio voluptatibus ad expedita odio dolorem amet impedit saepe molestias esse dolores eaque?
Soluta facilis incidunt, illo quibusdam hic voluptate officia quae aspernatur esse ullam voluptas, temporibus, cum atque quas nihil perferendis excepturi pariatur mollitia delectus nisi. Iusto fugit at voluptatem. Nam, quidem!
</Text>
<Blockquote color="indigo" cite=" Михаил Пришвин">
Life is like an npm install you never know what you are going to get.
</Blockquote>
<Title order={2} className={classes.heading2}>
Юбилей
</Title>
<Text>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis iusto blanditiis exercitationem voluptates itaque eligendi, consequatur in distinctio eius explicabo. Aliquid in vel explicabo assumenda, molestiae consequatur illum eius voluptates?
</Text>
<Text>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis iusto blanditiis exercitationem voluptates itaque eligendi, consequatur in distinctio eius explicabo. Aliquid in vel explicabo assumenda, molestiae consequatur illum eius voluptates?
</Text>
<Title order={2} className={classes.heading2}>
Ранние годы
</Title> </Title>
<Text> <TypographyStylesProvider>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis iusto blanditiis exercitationem voluptates itaque eligendi, consequatur in distinctio eius explicabo. Aliquid in vel explicabo assumenda, molestiae consequatur illum eius voluptates? <Markdown>{article.content}</Markdown>
</Text> </TypographyStylesProvider>
<Text> {generateCarousel()}
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis iusto blanditiis exercitationem voluptates itaque eligendi, consequatur in distinctio eius explicabo. Aliquid in vel explicabo assumenda, molestiae consequatur illum eius voluptates?
</Text>
<Text>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis iusto blanditiis exercitationem voluptates itaque eligendi, consequatur in distinctio eius explicabo. Aliquid in vel explicabo assumenda, molestiae consequatur illum eius voluptates?
</Text>
<Text>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis iusto blanditiis exercitationem voluptates itaque eligendi, consequatur in distinctio eius explicabo. Aliquid in vel explicabo assumenda, molestiae consequatur illum eius voluptates?
</Text>
</Container> </Container>
); );
} }

@ -1,4 +1,4 @@
import { createStyles, Card, Image, Avatar, Text, Group, Center, rem } from '@mantine/core'; import { createStyles, Card, Image, Stack, Text, Group, Flex, rem } from '@mantine/core';
import { IconCurrentLocation } from '@tabler/icons-react'; import { IconCurrentLocation } from '@tabler/icons-react';
@ -52,22 +52,22 @@ export function ArticleCardVertical({
return ( return (
<Card withBorder shadow="sm" radius="md" p={0} w={'100%'} className={classes.card}> <Card withBorder shadow="sm" radius="md" p={0} w={'100%'} className={classes.card}>
<Group noWrap spacing={0}> <Group noWrap spacing={0}>
<Image src={image} height={140} width={140} /> <Image src={image} height={200} width={200} />
<div className={classes.body}> <Stack p='md'>
<Text transform="uppercase" color="dimmed" weight={700} size="xs"> <Text transform="uppercase" color="dimmed" weight={700} size="xs">
{category} {category}
</Text> </Text>
<Text className={classes.title} mt="xs" mb="md" color={id === selected ? 'red' : 'black'}> <Text component='a' href={`/article/${id}`} className={classes.title} mt="xs" mb="md" color={id === selected ? 'red' : 'black'}>
{title} {title}
</Text> </Text>
<Center inline onClick={() => handleAddressClick(id)} className={classes.address}> <Flex align='center' onClick={() => handleAddressClick(id)} className={classes.address}>
<IconCurrentLocation style={{ width: rem(12), height: rem(12) }} /> <IconCurrentLocation style={{ width: rem(12), height: rem(12) }} />
{/* <IconArrowLeft style={{ width: rem(12), height: rem(12) }} /> */} {/* <IconArrowLeft style={{ width: rem(12), height: rem(12) }} /> */}
<Text size="xs"> <Text size="xs" pl={5} pb={2}>
{address} {address}
</Text> </Text>
</Center> </Flex>
</div> </Stack>
</Group> </Group>
</Card> </Card>
); );

@ -130,10 +130,10 @@ export function FooterLinks({ data }: FooterLinksProps) {
<footer className={classes.footer}> <footer className={classes.footer}>
<Container className={classes.inner}> <Container className={classes.inner}>
<div className={classes.logo}> <div className={classes.logo}>
<Title order={3}>Литкарта</Title> <Title order={3}>Литературные музеи России</Title>
{/* <MantineLogo size={30} /> */} {/* <MantineLogo size={30} /> */}
<Text size="xs" color="dimmed" className={classes.description}> <Text size="xs" color="dimmed" className={classes.description}>
Пространство для русской литературы Геоинформационный портал
</Text> </Text>
</div> </div>
<div className={classes.groups}>{groups}</div> <div className={classes.groups}>{groups}</div>

@ -52,7 +52,7 @@ interface HeaderSimpleProps {
export function HeaderSimple({ links }: HeaderSimpleProps) { export function HeaderSimple({ links }: HeaderSimpleProps) {
const [opened, { toggle }] = useDisclosure(false); const [opened, { toggle }] = useDisclosure(false);
const [active, setActive] = useState(links[0].link); const [active, setActive] = useState('');
const { classes, cx } = useStyles(); const { classes, cx } = useStyles();
const items = links.map((link) => ( const items = links.map((link) => (
@ -60,8 +60,7 @@ export function HeaderSimple({ links }: HeaderSimpleProps) {
key={link.label} key={link.label}
href={link.link} href={link.link}
className={cx(classes.link, { [classes.linkActive]: active === link.link })} className={cx(classes.link, { [classes.linkActive]: active === link.link })}
onClick={(event) => { onClick={() => {
event.preventDefault();
setActive(link.link); setActive(link.link);
}} }}
> >
@ -72,7 +71,7 @@ export function HeaderSimple({ links }: HeaderSimpleProps) {
return ( return (
<Header height={60}> <Header height={60}>
<Container className={classes.header}> <Container className={classes.header}>
<Title order={3}>Литкарта</Title> <Title order={3}>Литературные музеи России</Title>
{/* <MantineLogo size={28} /> */} {/* <MantineLogo size={28} /> */}
<Group spacing={5} className={classes.links}> <Group spacing={5} className={classes.links}>
{items} {items}

@ -126,8 +126,8 @@ export function KartaPage() {
{articles !== null && articles.length > 0 && articles.map(article => { {articles !== null && articles.length > 0 && articles.map(article => {
const articleInfo = { const articleInfo = {
"id": article.id, "id": article.id,
// "image": article.attributes.cover.data !== null ? "http://strapi.wg.gateway.ts" + article.attributes.cover.data.attributes.url : "https://images.unsplash.com/photo-1628890923662-2cb23c2e0cfe?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=200&q=80", "image": article.attributes.cover.data !== null ? "http://strapi.wg.gateway.ts" + article.attributes.cover.data.attributes.url : "",
"category": "", "category": "Памятные места",
"title": article.attributes.title, "title": article.attributes.title,
"address": article.attributes.address, "address": article.attributes.address,
"coordinates": article.attributes.coordinates, "coordinates": article.attributes.coordinates,

@ -100,6 +100,8 @@ import {
Подробнее Подробнее
</Button> </Button>
<Button <Button
component='a'
href="/"
variant="gradient" variant="gradient"
gradient={{ deg: 133, from: 'blue', to: 'cyan' }} gradient={{ deg: 133, from: 'blue', to: 'cyan' }}
size="lg" size="lg"

@ -1,6 +1,6 @@
{ {
"version": 8, "version": 8,
"name": "Positron without labels", "name": "Voyager without labels",
"metadata": {}, "metadata": {},
"sources": { "sources": {
"carto": { "carto": {
@ -8,7 +8,7 @@
"url": "https://tiles.basemaps.cartocdn.com/vector/carto.streets/v1/tiles.json" "url": "https://tiles.basemaps.cartocdn.com/vector/carto.streets/v1/tiles.json"
} }
}, },
"sprite": "https://tiles.basemaps.cartocdn.com/gl/positron-gl-style/sprite", "sprite": "https://tiles.basemaps.cartocdn.com/gl/voyager-gl-style/sprite",
"glyphs": "https://tiles.basemaps.cartocdn.com/fonts/{fontstack}/{range}.pbf", "glyphs": "https://tiles.basemaps.cartocdn.com/fonts/{fontstack}/{range}.pbf",
"layers": [ "layers": [
{ {
@ -18,7 +18,7 @@
"visibility": "visible" "visibility": "visible"
}, },
"paint": { "paint": {
"background-color": "#fafaf8", "background-color": "#fbf8f3",
"background-opacity": 1 "background-opacity": 1
} }
}, },
@ -50,23 +50,23 @@
"stops": [ "stops": [
[ [
8, 8,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.2)"
], ],
[ [
9, 9,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.25)"
], ],
[ [
11, 11,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.35)"
], ],
[ [
13, 13,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.4)"
], ],
[ [
15, 15,
"rgba(234, 241, 233, 0.5)" "#e0ecd3"
] ]
] ]
}, },
@ -95,23 +95,23 @@
"stops": [ "stops": [
[ [
8, 8,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.2)"
], ],
[ [
9, 9,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.25)"
], ],
[ [
11, 11,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.35)"
], ],
[ [
13, 13,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.4)"
], ],
[ [
15, 15,
"rgba(234, 241, 233, 0.5)" "#e0ecd3"
] ]
] ]
}, },
@ -141,23 +141,23 @@
"stops": [ "stops": [
[ [
8, 8,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.2)"
], ],
[ [
9, 9,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.25)"
], ],
[ [
11, 11,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.35)"
], ],
[ [
13, 13,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.4)"
], ],
[ [
15, 15,
"rgba(234, 241, 233, 0.5)" "#e0ecd3"
] ]
] ]
}, },
@ -195,31 +195,31 @@
"stops": [ "stops": [
[ [
5, 5,
"rgba(237, 237, 237, 0.5)" "rgba(243, 234, 220, 0.5)"
], ],
[ [
8, 8,
"rgba(237, 237, 237, 0.45)" "rgba(243, 234, 220, 0.45)"
], ],
[ [
9, 9,
"rgba(237, 237, 237, 0.4)" "rgba(243, 234, 220, 0.4)"
], ],
[ [
11, 11,
"rgba(237, 237, 237, 0.35)" "rgba(243, 234, 220, 0.35)"
], ],
[ [
13, 13,
"rgba(237, 237, 237, 0.3)" "rgba(243, 234, 220, 0.3)"
], ],
[ [
15, 15,
"rgba(237, 237, 237, 0.25)" "rgba(243, 234, 220, 0.25)"
], ],
[ [
16, 16,
"rgba(237, 237, 237, 0.25)" "rgba(243, 234, 220, 0.15)"
] ]
] ]
}, },
@ -260,23 +260,23 @@
"stops": [ "stops": [
[ [
8, 8,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.2)"
], ],
[ [
9, 9,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.25)"
], ],
[ [
11, 11,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.35)"
], ],
[ [
13, 13,
"rgba(234, 241, 233, 0.5)" "rgba(197, 225, 178, 0.4)"
], ],
[ [
15, 15,
"rgba(234, 241, 233, 0.5)" "#e0ecd3"
] ]
] ]
} }
@ -288,7 +288,7 @@
"source": "carto", "source": "carto",
"source-layer": "waterway", "source-layer": "waterway",
"paint": { "paint": {
"line-color": "#d1dbdf", "line-color": "#cce7ea",
"line-width": { "line-width": {
"stops": [ "stops": [
[ [
@ -331,16 +331,19 @@
0 0
] ]
], ],
"layout": {
"visibility": "none"
},
"paint": { "paint": {
"line-color": { "line-color": {
"stops": [ "stops": [
[ [
4, 4,
"#ead5d7" "#d4d5d6"
], ],
[ [
5, 5,
"#ead5d7" "#d4d5d6"
], ],
[ [
6, 6,
@ -398,16 +401,19 @@
0 0
] ]
], ],
"layout": {
"visibility": "none"
},
"paint": { "paint": {
"line-color": { "line-color": {
"stops": [ "stops": [
[ [
4, 4,
"#ead5d7" "#d4d5d6"
], ],
[ [
5, 5,
"#ead5d7" "#d4d5d6"
], ],
[ [
6, 6,
@ -473,7 +479,7 @@
"visibility": "visible" "visibility": "visible"
}, },
"paint": { "paint": {
"fill-color": "#d4dadc", "fill-color": "#b0d0d6",
"fill-antialias": true, "fill-antialias": true,
"fill-translate-anchor": "map", "fill-translate-anchor": "map",
"fill-opacity": 1 "fill-opacity": 1
@ -497,7 +503,7 @@
"visibility": "visible" "visibility": "visible"
}, },
"paint": { "paint": {
"fill-color": "transparent", "fill-color": "rgba(203, 225, 228, 1)",
"fill-antialias": true, "fill-antialias": true,
"fill-translate-anchor": "map", "fill-translate-anchor": "map",
"fill-opacity": 1, "fill-opacity": 1,
@ -664,7 +670,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#ddd" "line-color": "#e6dfcb"
} }
}, },
{ {
@ -725,7 +731,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#ddd" "line-color": "#e6dfcb"
} }
}, },
{ {
@ -791,7 +797,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#ddd" "line-color": "#e6dfcb"
} }
}, },
{ {
@ -880,7 +886,7 @@
] ]
] ]
}, },
"line-color": "#ddd" "line-color": "#e6dfcb"
} }
}, },
{ {
@ -970,7 +976,7 @@
] ]
] ]
}, },
"line-color": "#ddd" "line-color": "#fbdb98"
} }
}, },
{ {
@ -1063,7 +1069,7 @@
] ]
] ]
}, },
"line-color": "#ddd" "line-color": "#fbdb98"
} }
}, },
{ {
@ -1108,7 +1114,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#d5d5d5", "line-color": "#d7d7d7",
"line-dasharray": { "line-dasharray": {
"stops": [ "stops": [
[ [
@ -1175,7 +1181,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#eee" "line-color": "#f0eee7"
} }
}, },
{ {
@ -1286,7 +1292,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#eee" "line-color": "#f0eee7"
} }
}, },
{ {
@ -1352,7 +1358,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#eee" "line-color": "#f0eee7"
} }
}, },
{ {
@ -1419,7 +1425,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#eee" "line-color": "#f0eee7"
} }
}, },
{ {
@ -1489,7 +1495,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#eee" "line-color": "#f0eee7"
} }
}, },
{ {
@ -1653,7 +1659,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#ddd" "line-color": "#fdebce"
} }
}, },
{ {
@ -1718,15 +1724,15 @@
"stops": [ "stops": [
[ [
13, 13,
"#e6e6e6" "#ffffff"
], ],
[ [
15.7, 15.7,
"#e6e6e6" "#ffffff"
], ],
[ [
16, 16,
"#ddd" "#fdebce"
] ]
] ]
} }
@ -1797,7 +1803,7 @@
] ]
] ]
}, },
"line-color": "#ddd" "line-color": "#ffeabb"
} }
}, },
{ {
@ -1858,11 +1864,11 @@
"stops": [ "stops": [
[ [
12, 12,
"#e6e6e6" "#fbdb98"
], ],
[ [
14, 14,
"#ddd" "#fbdb98"
] ]
] ]
} }
@ -1926,11 +1932,11 @@
"stops": [ "stops": [
[ [
12, 12,
"#e6e6e6" "#fbdb98"
], ],
[ [
14, 14,
"#ddd" "#fbdb98"
] ]
] ]
} }
@ -2002,15 +2008,15 @@
"stops": [ "stops": [
[ [
11, 11,
"#e6e6e6" "#fffef9"
], ],
[ [
12.99, 12.99,
"#e6e6e6" "#fffef9"
], ],
[ [
13, 13,
"#ddd" "#ffedc0"
] ]
] ]
} }
@ -2105,11 +2111,11 @@
"stops": [ "stops": [
[ [
7, 7,
"#e6e6e6" "#ffe7b7"
], ],
[ [
12, 12,
"#ddd" "#ffeabb"
] ]
] ]
} }
@ -2204,11 +2210,11 @@
"stops": [ "stops": [
[ [
5, 5,
"#e6e6e6" "#ffe7b7"
], ],
[ [
12, 12,
"#ddd" "#fbdb98"
] ]
] ]
} }
@ -2307,11 +2313,11 @@
"stops": [ "stops": [
[ [
5, 5,
"#e6e6e6" "#fbdb98"
], ],
[ [
12, 12,
"#ddd" "#fbdb98"
] ]
] ]
} }
@ -2359,7 +2365,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#d5d5d5", "line-color": "#d7d7d7",
"line-dasharray": { "line-dasharray": {
"stops": [ "stops": [
[ [
@ -2425,7 +2431,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fdfdfd" "line-color": "#ffffff"
} }
}, },
{ {
@ -2473,7 +2479,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fdfdfd" "line-color": "#ffffff"
} }
}, },
{ {
@ -2530,7 +2536,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fff" "line-color": "#fefdd7"
} }
}, },
{ {
@ -2587,7 +2593,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fff" "line-color": "#FFE9A5"
} }
}, },
{ {
@ -2644,7 +2650,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fff" "line-color": "#FFE9A5"
} }
}, },
{ {
@ -2705,7 +2711,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fff" "line-color": "#fefdd7"
} }
}, },
{ {
@ -2770,7 +2776,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fff" "line-color": "#fefdd7"
} }
}, },
{ {
@ -2835,7 +2841,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fff" "line-color": "#FFE9A5"
} }
}, },
{ {
@ -2904,7 +2910,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fff" "line-color": "#FFE9A5"
} }
}, },
{ {
@ -3067,7 +3073,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#ddd" "line-color": "#fdebce"
} }
}, },
{ {
@ -3133,15 +3139,15 @@
"stops": [ "stops": [
[ [
13, 13,
"#e6e6e6" "#ffffff"
], ],
[ [
15.7, 15.7,
"#e6e6e6" "#ffffff"
], ],
[ [
16, 16,
"#ddd" "#fdebce"
] ]
] ]
} }
@ -3214,15 +3220,15 @@
"stops": [ "stops": [
[ [
11, 11,
"#e6e6e6" "#fffef9"
], ],
[ [
12.99, 12.99,
"#e6e6e6" "#fffef9"
], ],
[ [
13, 13,
"#ddd" "#ffedc0"
] ]
] ]
} }
@ -3318,11 +3324,11 @@
"stops": [ "stops": [
[ [
8, 8,
"#e6e6e6" "#ffe7b7"
], ],
[ [
12, 12,
"#ddd" "#ffeabb"
] ]
] ]
} }
@ -3419,11 +3425,11 @@
"stops": [ "stops": [
[ [
5, 5,
"#e6e6e6" "#fbdb98"
], ],
[ [
12, 12,
"#ddd" "#fbdb98"
] ]
] ]
} }
@ -3523,11 +3529,11 @@
"stops": [ "stops": [
[ [
5, 5,
"#e6e6e6" "#fbdb98"
], ],
[ [
10, 10,
"#ddd" "#fbdb98"
] ]
] ]
} }
@ -3575,7 +3581,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#d5d5d5", "line-color": "#d7d7d7",
"line-dasharray": { "line-dasharray": {
"stops": [ "stops": [
[ [
@ -3642,7 +3648,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fdfdfd" "line-color": "#ffffff"
} }
}, },
{ {
@ -3691,7 +3697,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fdfdfd" "line-color": "#ffffff"
} }
}, },
{ {
@ -3753,7 +3759,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fff" "line-color": "#fefdd7"
} }
}, },
{ {
@ -3819,7 +3825,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fff" "line-color": "#fefdd7"
} }
}, },
{ {
@ -3886,7 +3892,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fff" "line-color": "#FFE9A5"
} }
}, },
{ {
@ -3956,7 +3962,7 @@
] ]
}, },
"line-opacity": 1, "line-opacity": 1,
"line-color": "#fff" "line-color": "#FFE9A5"
} }
}, },
{ {
@ -3973,11 +3979,11 @@
"stops": [ "stops": [
[ [
15.5, 15.5,
"#dfdfdf" "#e4dcd0"
], ],
[ [
16, 16,
"#dfdfdf" "#e4dcd0"
] ]
] ]
}, },
@ -4012,8 +4018,8 @@
] ]
] ]
}, },
"fill-outline-color": "#dfdfdf", "fill-outline-color": "#e9d8be",
"fill-color": "#ededed", "fill-color": "#f3eadc",
"fill-opacity": { "fill-opacity": {
"base": 1, "base": 1,
"stops": [ "stops": [
@ -4090,7 +4096,7 @@
"stops": [ "stops": [
[ [
4, 4,
"#f2e6e7" "#ead5d7"
], ],
[ [
5, 5,

@ -2,15 +2,15 @@
"links": [ "links": [
{ {
"link": "#", "link": "#",
"label": "Карта" "label": "Авторы"
}, },
{ {
"link": "articles", "link": "#",
"label": "Статьи" "label": "Территории"
}, },
{ {
"link": "about", "link": "#",
"label": "О проекте" "label": "Маршруты"
} }
] ]
} }

@ -7,7 +7,7 @@
"skipLibCheck": true, "skipLibCheck": true,
/* Bundler mode */ /* Bundler mode */
"moduleResolution": "bundler", "moduleResolution": "node",
"allowImportingTsExtensions": true, "allowImportingTsExtensions": true,
"resolveJsonModule": true, "resolveJsonModule": true,
"isolatedModules": true, "isolatedModules": true,

Loading…
Cancel
Save