@treely/strapi-slices 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -2
- package/src/components/SEOTags/SEOTags.tsx +53 -0
- package/src/components/SEOTags/index.ts +1 -0
- package/src/constants/metadata.ts +3 -0
- package/src/constants/sectionsConfig.ts +20 -0
- package/src/index.tsx +119 -0
- package/src/models/HeaderType.ts +6 -0
- package/src/models/Image.ts +6 -0
- package/src/models/PageMetadata.ts +11 -0
- package/src/models/PageProps.ts +32 -0
- package/src/models/strapi/StrapiBlogPostProps.ts +7 -0
- package/src/models/strapi/StrapiCustomerStoryProps.ts +9 -0
- package/src/models/strapi/StrapiPageProps.ts +7 -0
- package/src/models/strapi/StrapiProjectProps.ts +7 -0
- package/src/test/mocks/getStaticPropsContext.ts +9 -0
- package/src/utils/mergeGlobalAndStrapiBlogPostData.test.ts +154 -0
- package/src/utils/mergeGlobalAndStrapiBlogPostData.ts +68 -0
- package/src/utils/mergeGlobalAndStrapiCustomerStoryData.test.ts +149 -0
- package/src/utils/mergeGlobalAndStrapiCustomerStoryData.ts +68 -0
- package/src/utils/mergeGlobalAndStrapiPageData.test.ts +254 -0
- package/src/utils/mergeGlobalAndStrapiPageData.ts +81 -0
- package/src/utils/mergeGlobalAndStrapiProjectData.test.ts +243 -0
- package/src/utils/mergeGlobalAndStrapiProjectData.ts +79 -0
- package/dist/components/ContextProvider/ContextProvider.d.ts +0 -8
- package/dist/components/ContextProvider/index.d.ts +0 -1
- package/dist/components/CreditsAvailableBadge/CreditsAvailableBadge.d.ts +0 -8
- package/dist/components/CreditsAvailableBadge/index.d.ts +0 -2
- package/dist/components/CreditsAvailableBadge/messages.de.d.ts +0 -7
- package/dist/components/CreditsAvailableBadge/messages.en.d.ts +0 -7
- package/dist/components/FullScreenImage/FullScreenImage.d.ts +0 -9
- package/dist/components/FullScreenImage/ZoomableImage.d.ts +0 -8
- package/dist/components/FullScreenImage/index.d.ts +0 -2
- package/dist/components/MinimalProviders/MinimalProviders.d.ts +0 -7
- package/dist/components/MinimalProviders/index.d.ts +0 -2
- package/dist/components/SliceRenderer/SliceRenderer.d.ts +0 -19
- package/dist/components/SliceRenderer/index.d.ts +0 -1
- package/dist/components/StrapiLinkButton/StrapiLinkButton.d.ts +0 -18
- package/dist/components/StrapiLinkButton/index.d.ts +0 -2
- package/dist/components/StrapiLinkButtonWithIcon/StrapiLinkButtonWithIcon.d.ts +0 -7
- package/dist/components/StrapiLinkButtonWithIcon/index.d.ts +0 -2
- package/dist/components/portfolio/Contact/Contact.d.ts +0 -10
- package/dist/components/portfolio/Contact/index.d.ts +0 -2
- package/dist/components/portfolio/DocumentsDownloadList/DocumentsDownloadList.d.ts +0 -6
- package/dist/components/portfolio/DocumentsDownloadList/index.d.ts +0 -2
- package/dist/components/portfolio/DocumentsDownloadList/messages.de.d.ts +0 -5
- package/dist/components/portfolio/DocumentsDownloadList/messages.en.d.ts +0 -5
- package/dist/components/portfolio/ProjectInfo/ProjectInfo.d.ts +0 -18
- package/dist/components/portfolio/ProjectInfo/index.d.ts +0 -2
- package/dist/components/portfolio/ProjectInfo/messages.de.d.ts +0 -15
- package/dist/components/portfolio/ProjectInfo/messages.en.d.ts +0 -15
- package/dist/components/portfolio/SmallCheckout/SmallCheckout.d.ts +0 -14
- package/dist/components/portfolio/SmallCheckout/index.d.ts +0 -2
- package/dist/components/portfolio/SmallCheckout/messages.de.d.ts +0 -16
- package/dist/components/portfolio/SmallCheckout/messages.en.d.ts +0 -16
- package/dist/constants/animations.d.ts +0 -1
- package/dist/constants/api.d.ts +0 -3
- package/dist/constants/breakpoints.d.ts +0 -8
- package/dist/constants/domain.d.ts +0 -2
- package/dist/constants/fontCustomizations.d.ts +0 -6
- package/dist/constants/formatter.d.ts +0 -6
- package/dist/constants/globalStyle.d.ts +0 -1
- package/dist/constants/mapbox.d.ts +0 -17
- package/dist/constants/strapi.d.ts +0 -1
- package/dist/icons/LinkedInIcon.d.ts +0 -3
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -8
- package/dist/models/BBox.d.ts +0 -2
- package/dist/models/CreditsAvailableState.d.ts +0 -7
- package/dist/models/Locale.d.ts +0 -2
- package/dist/models/PortfolioProject.d.ts +0 -7
- package/dist/models/forms/CheckoutForm.d.ts +0 -4
- package/dist/models/fpm/FPMProject.d.ts +0 -37
- package/dist/models/fpm/Issuer.d.ts +0 -6
- package/dist/models/strapi/IStrapi.d.ts +0 -4
- package/dist/models/strapi/IStrapiData.d.ts +0 -5
- package/dist/models/strapi/IStrapiResponse.d.ts +0 -13
- package/dist/models/strapi/StrapiAuthor.d.ts +0 -10
- package/dist/models/strapi/StrapiAvatarWithName.d.ts +0 -8
- package/dist/models/strapi/StrapiBanner.d.ts +0 -9
- package/dist/models/strapi/StrapiBlogPost.d.ts +0 -25
- package/dist/models/strapi/StrapiButtonWithVariant.d.ts +0 -6
- package/dist/models/strapi/StrapiCategory.d.ts +0 -8
- package/dist/models/strapi/StrapiContactArea.d.ts +0 -10
- package/dist/models/strapi/StrapiCustomerStory.d.ts +0 -21
- package/dist/models/strapi/StrapiDefaultHeader.d.ts +0 -6
- package/dist/models/strapi/StrapiGlobal.d.ts +0 -26
- package/dist/models/strapi/StrapiGlossaryItem.d.ts +0 -6
- package/dist/models/strapi/StrapiHeroCard.d.ts +0 -13
- package/dist/models/strapi/StrapiImage.d.ts +0 -10
- package/dist/models/strapi/StrapiImageFormat.d.ts +0 -12
- package/dist/models/strapi/StrapiImageWithLink.d.ts +0 -6
- package/dist/models/strapi/StrapiLink.d.ts +0 -11
- package/dist/models/strapi/StrapiLinkList.d.ts +0 -7
- package/dist/models/strapi/StrapiLinkPage.d.ts +0 -10
- package/dist/models/strapi/StrapiLinkWithIcon.d.ts +0 -7
- package/dist/models/strapi/StrapiLocalization.d.ts +0 -7
- package/dist/models/strapi/StrapiMedia.d.ts +0 -27
- package/dist/models/strapi/StrapiMetadata.d.ts +0 -13
- package/dist/models/strapi/StrapiNavMenu.d.ts +0 -13
- package/dist/models/strapi/StrapiPage.d.ts +0 -17
- package/dist/models/strapi/StrapiPortfolio.d.ts +0 -10
- package/dist/models/strapi/StrapiPortfolioCard.d.ts +0 -15
- package/dist/models/strapi/StrapiProject.d.ts +0 -23
- package/dist/models/strapi/StrapiProjectCard.d.ts +0 -18
- package/dist/models/strapi/StrapiQuoteCard.d.ts +0 -7
- package/dist/models/strapi/StrapiShapesCard.d.ts +0 -11
- package/dist/models/strapi/StrapiTextCardWithIcons.d.ts +0 -8
- package/dist/models/strapi/StrapiTopBanner.d.ts +0 -7
- package/dist/rootMessages.de.d.ts +0 -58
- package/dist/rootMessages.en.d.ts +0 -58
- package/dist/slices/Blog/Blog.d.ts +0 -10
- package/dist/slices/Blog/index.d.ts +0 -2
- package/dist/slices/Blog/styles.d.ts +0 -7
- package/dist/slices/BlogCards/BlogCards.d.ts +0 -18
- package/dist/slices/BlogCards/index.d.ts +0 -2
- package/dist/slices/Comparison/Comparison.d.ts +0 -33
- package/dist/slices/Comparison/Icon.d.ts +0 -7
- package/dist/slices/Comparison/index.d.ts +0 -2
- package/dist/slices/Comparison/messages.de.d.ts +0 -4
- package/dist/slices/Comparison/messages.en.d.ts +0 -4
- package/dist/slices/Cta/Cta.d.ts +0 -26
- package/dist/slices/Cta/index.d.ts +0 -2
- package/dist/slices/Cta/messages.de.d.ts +0 -5
- package/dist/slices/Cta/messages.en.d.ts +0 -5
- package/dist/slices/CtaOnly/CtaOnly.d.ts +0 -8
- package/dist/slices/CtaOnly/index.d.ts +0 -2
- package/dist/slices/CustomerStories/CustomerStories.d.ts +0 -10
- package/dist/slices/CustomerStories/index.d.ts +0 -2
- package/dist/slices/CustomerStories/messages.de.d.ts +0 -4
- package/dist/slices/CustomerStories/messages.en.d.ts +0 -4
- package/dist/slices/Facts/Facts.d.ts +0 -16
- package/dist/slices/Facts/index.d.ts +0 -2
- package/dist/slices/FullWidthHighlightQuote/FullWidthHighlightQuote.d.ts +0 -10
- package/dist/slices/FullWidthHighlightQuote/index.d.ts +0 -2
- package/dist/slices/FullWidthImage/FullWidthImage.d.ts +0 -11
- package/dist/slices/FullWidthImage/index.d.ts +0 -2
- package/dist/slices/FullWidthImageSlider/FullWidthImageSlider.d.ts +0 -12
- package/dist/slices/FullWidthImageSlider/index.d.ts +0 -2
- package/dist/slices/FullWidthImageSlider/styles.d.ts +0 -290
- package/dist/slices/FullWidthImageSlider/utils.d.ts +0 -1
- package/dist/slices/FullWidthImageSlider/utils.test.d.ts +0 -1
- package/dist/slices/Glossary/Glossary.d.ts +0 -9
- package/dist/slices/Glossary/index.d.ts +0 -2
- package/dist/slices/Glossary/messages.de.d.ts +0 -6
- package/dist/slices/Glossary/messages.en.d.ts +0 -6
- package/dist/slices/Hero/Hero.d.ts +0 -17
- package/dist/slices/Hero/index.d.ts +0 -2
- package/dist/slices/IconGrid/IconGrid.d.ts +0 -18
- package/dist/slices/IconGrid/index.d.ts +0 -2
- package/dist/slices/ImageGrid/ImageGrid.d.ts +0 -18
- package/dist/slices/ImageGrid/index.d.ts +0 -2
- package/dist/slices/ImageTextSequence/ImageTextSequence.d.ts +0 -19
- package/dist/slices/ImageTextSequence/index.d.ts +0 -2
- package/dist/slices/LeftTextRightCard/LeftTextRightCard.d.ts +0 -17
- package/dist/slices/LeftTextRightCard/index.d.ts +0 -2
- package/dist/slices/LinkCardsGrid/LinkCardsGrid.d.ts +0 -18
- package/dist/slices/LinkCardsGrid/index.d.ts +0 -2
- package/dist/slices/LogoGridWithText/LogoGridWithText.d.ts +0 -12
- package/dist/slices/LogoGridWithText/index.d.ts +0 -2
- package/dist/slices/MapHero/MapHero.d.ts +0 -15
- package/dist/slices/MapHero/index.d.ts +0 -2
- package/dist/slices/MapHero/styles.d.ts +0 -16
- package/dist/slices/ProjectFacts/ProjectFacts.d.ts +0 -34
- package/dist/slices/ProjectFacts/index.d.ts +0 -2
- package/dist/slices/ProjectFacts/messages.de.d.ts +0 -5
- package/dist/slices/ProjectFacts/messages.en.d.ts +0 -5
- package/dist/slices/ProjectsGrid/ProjectsGrid.d.ts +0 -8
- package/dist/slices/ProjectsGrid/index.d.ts +0 -2
- package/dist/slices/ProjectsMap/MapMarker.d.ts +0 -11
- package/dist/slices/ProjectsMap/ProjectsMap.d.ts +0 -16
- package/dist/slices/ProjectsMap/index.d.ts +0 -2
- package/dist/slices/ProjectsMap/mapboxStyle.d.ts +0 -2
- package/dist/slices/ProjectsMap/messages.de.d.ts +0 -4
- package/dist/slices/ProjectsMap/messages.en.d.ts +0 -4
- package/dist/slices/QAndA/QAndA.d.ts +0 -43
- package/dist/slices/QAndA/index.d.ts +0 -2
- package/dist/slices/QuoteCards/QuoteCards.d.ts +0 -15
- package/dist/slices/QuoteCards/index.d.ts +0 -2
- package/dist/slices/RichTextSection/RichTextSection.d.ts +0 -7
- package/dist/slices/RichTextSection/index.d.ts +0 -2
- package/dist/slices/ShopCheckout/ShopCheckout.d.ts +0 -16
- package/dist/slices/ShopCheckout/index.d.ts +0 -2
- package/dist/slices/ShopCheckout/messages.de.d.ts +0 -15
- package/dist/slices/ShopCheckout/messages.en.d.ts +0 -15
- package/dist/slices/SideBySideImages/SideBySideImages.d.ts +0 -12
- package/dist/slices/SideBySideImages/index.d.ts +0 -2
- package/dist/slices/SmallHero/SmallHero.d.ts +0 -20
- package/dist/slices/SmallHero/index.d.ts +0 -2
- package/dist/slices/Steps/Steps.d.ts +0 -19
- package/dist/slices/Steps/index.d.ts +0 -2
- package/dist/slices/TextCardGrid/TextCardGrid.d.ts +0 -20
- package/dist/slices/TextCardGrid/index.d.ts +0 -2
- package/dist/slices/TextCarousel/TextCarousel.d.ts +0 -13
- package/dist/slices/TextCarousel/index.d.ts +0 -2
- package/dist/slices/TextCarousel/styles.d.ts +0 -281
- package/dist/slices/TextWithCard/TextWithCard.d.ts +0 -20
- package/dist/slices/TextWithCard/index.d.ts +0 -2
- package/dist/slices/TextWithTextCards/TextWithTextCards.d.ts +0 -15
- package/dist/slices/TextWithTextCards/index.d.ts +0 -2
- package/dist/slices/Video/Video.d.ts +0 -10
- package/dist/slices/Video/index.d.ts +0 -2
- package/dist/strapi-slices.cjs.development.js +0 -4653
- package/dist/strapi-slices.cjs.development.js.map +0 -1
- package/dist/strapi-slices.cjs.production.min.js +0 -2
- package/dist/strapi-slices.cjs.production.min.js.map +0 -1
- package/dist/strapi-slices.esm.js +0 -4640
- package/dist/strapi-slices.esm.js.map +0 -1
- package/dist/test/defaultMocks/next.d.ts +0 -2
- package/dist/test/integrationMocks/fpmProjectMock.d.ts +0 -3
- package/dist/test/mocks/portfolioProjectMock.d.ts +0 -3
- package/dist/test/setupTests.d.ts +0 -1
- package/dist/test/storybookMocks/storybookMedia.d.ts +0 -1
- package/dist/test/storybookMocks/storybookStrapiMedia.d.ts +0 -8
- package/dist/test/strapiMocks/minimalGlobalData.d.ts +0 -4
- package/dist/test/strapiMocks/strapiAvatarWithName.d.ts +0 -12
- package/dist/test/strapiMocks/strapiBlogPost.d.ts +0 -3
- package/dist/test/strapiMocks/strapiContact.d.ts +0 -2
- package/dist/test/strapiMocks/strapiCustomerStory.d.ts +0 -3
- package/dist/test/strapiMocks/strapiHeroCard.d.ts +0 -2
- package/dist/test/strapiMocks/strapiLinkPage.d.ts +0 -3
- package/dist/test/strapiMocks/strapiMedia.d.ts +0 -3
- package/dist/test/strapiMocks/strapiMetadata.d.ts +0 -2
- package/dist/test/strapiMocks/strapiPage.d.ts +0 -3
- package/dist/test/strapiMocks/strapiPortfolioCard.d.ts +0 -2
- package/dist/test/strapiMocks/strapiPortfolioMock.d.ts +0 -3
- package/dist/test/strapiMocks/strapiProject.d.ts +0 -3
- package/dist/test/strapiMocks/strapiProjectCard.d.ts +0 -2
- package/dist/test/strapiMocks/strapiQuoteCard.d.ts +0 -2
- package/dist/test/testUtils.d.ts +0 -6
- package/dist/unit.messages.de.d.ts +0 -5
- package/dist/unit.messages.en.d.ts +0 -5
- package/dist/utils/convertAreaM2ToHa.d.ts +0 -2
- package/dist/utils/convertAreaM2ToHa.test.d.ts +0 -1
- package/dist/utils/convertCo2AmountKgToTons.d.ts +0 -2
- package/dist/utils/convertToKebabCase.d.ts +0 -2
- package/dist/utils/convertToKebabCase.test.d.ts +0 -1
- package/dist/utils/getTimeSpanInYears.d.ts +0 -2
- package/dist/utils/getTimeSpanInYears.test.d.ts +0 -1
- package/dist/utils/mergeBoundingBoxes.d.ts +0 -3
- package/dist/utils/mergeBoundingBoxes.test.d.ts +0 -1
- package/dist/utils/mergeDeep.d.ts +0 -12
- package/dist/utils/openHubSpotChat.d.ts +0 -2
- package/dist/utils/strapiLinkUrl.d.ts +0 -3
- package/dist/utils/strapiLinkUrl.test.d.ts +0 -1
- package/dist/utils/strapiMediaUrl.d.ts +0 -5
- package/dist/utils/strapiMediaUrl.test.d.ts +0 -1
|
@@ -1,4640 +0,0 @@
|
|
|
1
|
-
import React, { useState, useRef, useEffect, Fragment, createRef, createContext, useContext, useCallback, useMemo } from 'react';
|
|
2
|
-
import { Box, BoemlyModal, Flex, IconButton, useMediaQuery, DefaultSectionContainer, Wrapper, DefaultSectionHeader, Button, Gradient, Spacer, SimpleGrid, Heading, Text, useToken, Grid, GridItem, BoemlyList, PortfolioCard, RichText, BoemlyAccordion, HeroCard, Shape, QuoteCard, Center, ShapesCard, TextCardWithIcon, ContactArea, ProjectCard, Tag, Link as Link$1, BoemlyThemeProvider, DatePersonPair, Badge, useDisclosure, Container, AvatarWithName, Divider, LabelNumberPair, BoemlyFormControl, InputRightAddon, LabelTextPair } from 'boemly';
|
|
3
|
-
import Image from 'next/image';
|
|
4
|
-
import { useLockBodyScroll, useKey, useWindowScroll, useWindowSize, useMeasure, useCopyToClipboard } from 'react-use';
|
|
5
|
-
import { CaretLeft, CaretRight, Globe, ArrowRight, MapPin, ArrowLeft, Check, Link as Link$2, FilePdf, DownloadSimple, X } from '@phosphor-icons/react';
|
|
6
|
-
import Head from 'next/head';
|
|
7
|
-
import Link from 'next/link';
|
|
8
|
-
import { useDetectAdBlock } from 'adblock-detect-react';
|
|
9
|
-
import { useRouter } from 'next/router';
|
|
10
|
-
import styled from '@emotion/styled';
|
|
11
|
-
import { css, Global } from '@emotion/react';
|
|
12
|
-
import { motion, AnimatePresence } from 'framer-motion';
|
|
13
|
-
import { createIntl, createIntlCache, IntlProvider } from 'react-intl';
|
|
14
|
-
import mapboxgl, { Map, Marker } from 'mapbox-gl';
|
|
15
|
-
import { createRoot } from 'react-dom/client';
|
|
16
|
-
import { Formik, Form, Field } from 'formik';
|
|
17
|
-
|
|
18
|
-
function _regeneratorRuntime() {
|
|
19
|
-
_regeneratorRuntime = function () {
|
|
20
|
-
return e;
|
|
21
|
-
};
|
|
22
|
-
var t,
|
|
23
|
-
e = {},
|
|
24
|
-
r = Object.prototype,
|
|
25
|
-
n = r.hasOwnProperty,
|
|
26
|
-
o = Object.defineProperty || function (t, e, r) {
|
|
27
|
-
t[e] = r.value;
|
|
28
|
-
},
|
|
29
|
-
i = "function" == typeof Symbol ? Symbol : {},
|
|
30
|
-
a = i.iterator || "@@iterator",
|
|
31
|
-
c = i.asyncIterator || "@@asyncIterator",
|
|
32
|
-
u = i.toStringTag || "@@toStringTag";
|
|
33
|
-
function define(t, e, r) {
|
|
34
|
-
return Object.defineProperty(t, e, {
|
|
35
|
-
value: r,
|
|
36
|
-
enumerable: !0,
|
|
37
|
-
configurable: !0,
|
|
38
|
-
writable: !0
|
|
39
|
-
}), t[e];
|
|
40
|
-
}
|
|
41
|
-
try {
|
|
42
|
-
define({}, "");
|
|
43
|
-
} catch (t) {
|
|
44
|
-
define = function (t, e, r) {
|
|
45
|
-
return t[e] = r;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
function wrap(t, e, r, n) {
|
|
49
|
-
var i = e && e.prototype instanceof Generator ? e : Generator,
|
|
50
|
-
a = Object.create(i.prototype),
|
|
51
|
-
c = new Context(n || []);
|
|
52
|
-
return o(a, "_invoke", {
|
|
53
|
-
value: makeInvokeMethod(t, r, c)
|
|
54
|
-
}), a;
|
|
55
|
-
}
|
|
56
|
-
function tryCatch(t, e, r) {
|
|
57
|
-
try {
|
|
58
|
-
return {
|
|
59
|
-
type: "normal",
|
|
60
|
-
arg: t.call(e, r)
|
|
61
|
-
};
|
|
62
|
-
} catch (t) {
|
|
63
|
-
return {
|
|
64
|
-
type: "throw",
|
|
65
|
-
arg: t
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
e.wrap = wrap;
|
|
70
|
-
var h = "suspendedStart",
|
|
71
|
-
l = "suspendedYield",
|
|
72
|
-
f = "executing",
|
|
73
|
-
s = "completed",
|
|
74
|
-
y = {};
|
|
75
|
-
function Generator() {}
|
|
76
|
-
function GeneratorFunction() {}
|
|
77
|
-
function GeneratorFunctionPrototype() {}
|
|
78
|
-
var p = {};
|
|
79
|
-
define(p, a, function () {
|
|
80
|
-
return this;
|
|
81
|
-
});
|
|
82
|
-
var d = Object.getPrototypeOf,
|
|
83
|
-
v = d && d(d(values([])));
|
|
84
|
-
v && v !== r && n.call(v, a) && (p = v);
|
|
85
|
-
var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
|
|
86
|
-
function defineIteratorMethods(t) {
|
|
87
|
-
["next", "throw", "return"].forEach(function (e) {
|
|
88
|
-
define(t, e, function (t) {
|
|
89
|
-
return this._invoke(e, t);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
function AsyncIterator(t, e) {
|
|
94
|
-
function invoke(r, o, i, a) {
|
|
95
|
-
var c = tryCatch(t[r], t, o);
|
|
96
|
-
if ("throw" !== c.type) {
|
|
97
|
-
var u = c.arg,
|
|
98
|
-
h = u.value;
|
|
99
|
-
return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
|
|
100
|
-
invoke("next", t, i, a);
|
|
101
|
-
}, function (t) {
|
|
102
|
-
invoke("throw", t, i, a);
|
|
103
|
-
}) : e.resolve(h).then(function (t) {
|
|
104
|
-
u.value = t, i(u);
|
|
105
|
-
}, function (t) {
|
|
106
|
-
return invoke("throw", t, i, a);
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
a(c.arg);
|
|
110
|
-
}
|
|
111
|
-
var r;
|
|
112
|
-
o(this, "_invoke", {
|
|
113
|
-
value: function (t, n) {
|
|
114
|
-
function callInvokeWithMethodAndArg() {
|
|
115
|
-
return new e(function (e, r) {
|
|
116
|
-
invoke(t, n, e, r);
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
function makeInvokeMethod(e, r, n) {
|
|
124
|
-
var o = h;
|
|
125
|
-
return function (i, a) {
|
|
126
|
-
if (o === f) throw new Error("Generator is already running");
|
|
127
|
-
if (o === s) {
|
|
128
|
-
if ("throw" === i) throw a;
|
|
129
|
-
return {
|
|
130
|
-
value: t,
|
|
131
|
-
done: !0
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
for (n.method = i, n.arg = a;;) {
|
|
135
|
-
var c = n.delegate;
|
|
136
|
-
if (c) {
|
|
137
|
-
var u = maybeInvokeDelegate(c, n);
|
|
138
|
-
if (u) {
|
|
139
|
-
if (u === y) continue;
|
|
140
|
-
return u;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
|
|
144
|
-
if (o === h) throw o = s, n.arg;
|
|
145
|
-
n.dispatchException(n.arg);
|
|
146
|
-
} else "return" === n.method && n.abrupt("return", n.arg);
|
|
147
|
-
o = f;
|
|
148
|
-
var p = tryCatch(e, r, n);
|
|
149
|
-
if ("normal" === p.type) {
|
|
150
|
-
if (o = n.done ? s : l, p.arg === y) continue;
|
|
151
|
-
return {
|
|
152
|
-
value: p.arg,
|
|
153
|
-
done: n.done
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
"throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
function maybeInvokeDelegate(e, r) {
|
|
161
|
-
var n = r.method,
|
|
162
|
-
o = e.iterator[n];
|
|
163
|
-
if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
|
|
164
|
-
var i = tryCatch(o, e.iterator, r.arg);
|
|
165
|
-
if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
|
|
166
|
-
var a = i.arg;
|
|
167
|
-
return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
|
|
168
|
-
}
|
|
169
|
-
function pushTryEntry(t) {
|
|
170
|
-
var e = {
|
|
171
|
-
tryLoc: t[0]
|
|
172
|
-
};
|
|
173
|
-
1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
|
|
174
|
-
}
|
|
175
|
-
function resetTryEntry(t) {
|
|
176
|
-
var e = t.completion || {};
|
|
177
|
-
e.type = "normal", delete e.arg, t.completion = e;
|
|
178
|
-
}
|
|
179
|
-
function Context(t) {
|
|
180
|
-
this.tryEntries = [{
|
|
181
|
-
tryLoc: "root"
|
|
182
|
-
}], t.forEach(pushTryEntry, this), this.reset(!0);
|
|
183
|
-
}
|
|
184
|
-
function values(e) {
|
|
185
|
-
if (e || "" === e) {
|
|
186
|
-
var r = e[a];
|
|
187
|
-
if (r) return r.call(e);
|
|
188
|
-
if ("function" == typeof e.next) return e;
|
|
189
|
-
if (!isNaN(e.length)) {
|
|
190
|
-
var o = -1,
|
|
191
|
-
i = function next() {
|
|
192
|
-
for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
|
|
193
|
-
return next.value = t, next.done = !0, next;
|
|
194
|
-
};
|
|
195
|
-
return i.next = i;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
throw new TypeError(typeof e + " is not iterable");
|
|
199
|
-
}
|
|
200
|
-
return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
|
|
201
|
-
value: GeneratorFunctionPrototype,
|
|
202
|
-
configurable: !0
|
|
203
|
-
}), o(GeneratorFunctionPrototype, "constructor", {
|
|
204
|
-
value: GeneratorFunction,
|
|
205
|
-
configurable: !0
|
|
206
|
-
}), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
|
|
207
|
-
var e = "function" == typeof t && t.constructor;
|
|
208
|
-
return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
|
|
209
|
-
}, e.mark = function (t) {
|
|
210
|
-
return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
|
|
211
|
-
}, e.awrap = function (t) {
|
|
212
|
-
return {
|
|
213
|
-
__await: t
|
|
214
|
-
};
|
|
215
|
-
}, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
|
|
216
|
-
return this;
|
|
217
|
-
}), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
|
|
218
|
-
void 0 === i && (i = Promise);
|
|
219
|
-
var a = new AsyncIterator(wrap(t, r, n, o), i);
|
|
220
|
-
return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
|
|
221
|
-
return t.done ? t.value : a.next();
|
|
222
|
-
});
|
|
223
|
-
}, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
|
|
224
|
-
return this;
|
|
225
|
-
}), define(g, "toString", function () {
|
|
226
|
-
return "[object Generator]";
|
|
227
|
-
}), e.keys = function (t) {
|
|
228
|
-
var e = Object(t),
|
|
229
|
-
r = [];
|
|
230
|
-
for (var n in e) r.push(n);
|
|
231
|
-
return r.reverse(), function next() {
|
|
232
|
-
for (; r.length;) {
|
|
233
|
-
var t = r.pop();
|
|
234
|
-
if (t in e) return next.value = t, next.done = !1, next;
|
|
235
|
-
}
|
|
236
|
-
return next.done = !0, next;
|
|
237
|
-
};
|
|
238
|
-
}, e.values = values, Context.prototype = {
|
|
239
|
-
constructor: Context,
|
|
240
|
-
reset: function (e) {
|
|
241
|
-
if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
|
|
242
|
-
},
|
|
243
|
-
stop: function () {
|
|
244
|
-
this.done = !0;
|
|
245
|
-
var t = this.tryEntries[0].completion;
|
|
246
|
-
if ("throw" === t.type) throw t.arg;
|
|
247
|
-
return this.rval;
|
|
248
|
-
},
|
|
249
|
-
dispatchException: function (e) {
|
|
250
|
-
if (this.done) throw e;
|
|
251
|
-
var r = this;
|
|
252
|
-
function handle(n, o) {
|
|
253
|
-
return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
|
|
254
|
-
}
|
|
255
|
-
for (var o = this.tryEntries.length - 1; o >= 0; --o) {
|
|
256
|
-
var i = this.tryEntries[o],
|
|
257
|
-
a = i.completion;
|
|
258
|
-
if ("root" === i.tryLoc) return handle("end");
|
|
259
|
-
if (i.tryLoc <= this.prev) {
|
|
260
|
-
var c = n.call(i, "catchLoc"),
|
|
261
|
-
u = n.call(i, "finallyLoc");
|
|
262
|
-
if (c && u) {
|
|
263
|
-
if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
|
|
264
|
-
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
|
|
265
|
-
} else if (c) {
|
|
266
|
-
if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
|
|
267
|
-
} else {
|
|
268
|
-
if (!u) throw new Error("try statement without catch or finally");
|
|
269
|
-
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
},
|
|
274
|
-
abrupt: function (t, e) {
|
|
275
|
-
for (var r = this.tryEntries.length - 1; r >= 0; --r) {
|
|
276
|
-
var o = this.tryEntries[r];
|
|
277
|
-
if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
|
|
278
|
-
var i = o;
|
|
279
|
-
break;
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
|
|
283
|
-
var a = i ? i.completion : {};
|
|
284
|
-
return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
|
|
285
|
-
},
|
|
286
|
-
complete: function (t, e) {
|
|
287
|
-
if ("throw" === t.type) throw t.arg;
|
|
288
|
-
return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
|
|
289
|
-
},
|
|
290
|
-
finish: function (t) {
|
|
291
|
-
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
|
|
292
|
-
var r = this.tryEntries[e];
|
|
293
|
-
if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
|
|
294
|
-
}
|
|
295
|
-
},
|
|
296
|
-
catch: function (t) {
|
|
297
|
-
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
|
|
298
|
-
var r = this.tryEntries[e];
|
|
299
|
-
if (r.tryLoc === t) {
|
|
300
|
-
var n = r.completion;
|
|
301
|
-
if ("throw" === n.type) {
|
|
302
|
-
var o = n.arg;
|
|
303
|
-
resetTryEntry(r);
|
|
304
|
-
}
|
|
305
|
-
return o;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
throw new Error("illegal catch attempt");
|
|
309
|
-
},
|
|
310
|
-
delegateYield: function (e, r, n) {
|
|
311
|
-
return this.delegate = {
|
|
312
|
-
iterator: values(e),
|
|
313
|
-
resultName: r,
|
|
314
|
-
nextLoc: n
|
|
315
|
-
}, "next" === this.method && (this.arg = t), y;
|
|
316
|
-
}
|
|
317
|
-
}, e;
|
|
318
|
-
}
|
|
319
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
320
|
-
try {
|
|
321
|
-
var info = gen[key](arg);
|
|
322
|
-
var value = info.value;
|
|
323
|
-
} catch (error) {
|
|
324
|
-
reject(error);
|
|
325
|
-
return;
|
|
326
|
-
}
|
|
327
|
-
if (info.done) {
|
|
328
|
-
resolve(value);
|
|
329
|
-
} else {
|
|
330
|
-
Promise.resolve(value).then(_next, _throw);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
function _asyncToGenerator(fn) {
|
|
334
|
-
return function () {
|
|
335
|
-
var self = this,
|
|
336
|
-
args = arguments;
|
|
337
|
-
return new Promise(function (resolve, reject) {
|
|
338
|
-
var gen = fn.apply(self, args);
|
|
339
|
-
function _next(value) {
|
|
340
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
341
|
-
}
|
|
342
|
-
function _throw(err) {
|
|
343
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
344
|
-
}
|
|
345
|
-
_next(undefined);
|
|
346
|
-
});
|
|
347
|
-
};
|
|
348
|
-
}
|
|
349
|
-
function _extends() {
|
|
350
|
-
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
351
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
352
|
-
var source = arguments[i];
|
|
353
|
-
for (var key in source) {
|
|
354
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
355
|
-
target[key] = source[key];
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
return target;
|
|
360
|
-
};
|
|
361
|
-
return _extends.apply(this, arguments);
|
|
362
|
-
}
|
|
363
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
364
|
-
if (source == null) return {};
|
|
365
|
-
var target = {};
|
|
366
|
-
var sourceKeys = Object.keys(source);
|
|
367
|
-
var key, i;
|
|
368
|
-
for (i = 0; i < sourceKeys.length; i++) {
|
|
369
|
-
key = sourceKeys[i];
|
|
370
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
371
|
-
target[key] = source[key];
|
|
372
|
-
}
|
|
373
|
-
return target;
|
|
374
|
-
}
|
|
375
|
-
function _taggedTemplateLiteralLoose(strings, raw) {
|
|
376
|
-
if (!raw) {
|
|
377
|
-
raw = strings.slice(0);
|
|
378
|
-
}
|
|
379
|
-
strings.raw = raw;
|
|
380
|
-
return strings;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
var STRAPI_URI = process.env.NEXT_PUBLIC_STRAPI_URI || 'http://127.0.0.1:1337';
|
|
384
|
-
|
|
385
|
-
var strapiMediaUrl = function strapiMediaUrl(media, preferredSize) {
|
|
386
|
-
if (preferredSize === void 0) {
|
|
387
|
-
preferredSize = 'native';
|
|
388
|
-
}
|
|
389
|
-
var _ref = media.data.attributes || {},
|
|
390
|
-
url = _ref.url;
|
|
391
|
-
if (preferredSize !== 'native' && media.data.attributes.ext !== '.svg') {
|
|
392
|
-
var _media$data$attribute;
|
|
393
|
-
url = ((_media$data$attribute = media.data.attributes.formats[preferredSize]) == null ? void 0 : _media$data$attribute.url) || url;
|
|
394
|
-
}
|
|
395
|
-
if (url && (url.indexOf('http://') === 0 || url.indexOf('https://') === 0)) {
|
|
396
|
-
return url;
|
|
397
|
-
}
|
|
398
|
-
return "" + ((STRAPI_URI.includes('127.0.0.1') || STRAPI_URI.includes('localhost')) && !process.env.STORYBOOK ? STRAPI_URI : '') + url;
|
|
399
|
-
};
|
|
400
|
-
|
|
401
|
-
var ZoomableImage = function ZoomableImage(_ref) {
|
|
402
|
-
var image = _ref.image,
|
|
403
|
-
_ref$zoom = _ref.zoom,
|
|
404
|
-
zoom = _ref$zoom === void 0 ? 200 : _ref$zoom;
|
|
405
|
-
// define and set default values to the states of the component
|
|
406
|
-
var _useState = useState(false),
|
|
407
|
-
isZoomed = _useState[0],
|
|
408
|
-
setIsZoomed = _useState[1];
|
|
409
|
-
var _useState2 = useState('50% 50%'),
|
|
410
|
-
backgroundPos = _useState2[0],
|
|
411
|
-
setBackgroundPos = _useState2[1];
|
|
412
|
-
var imageSrc = strapiMediaUrl(image.img, 'xLarge');
|
|
413
|
-
var zoomInPosition = function zoomInPosition(e) {
|
|
414
|
-
// This will handle the calculations of the area where the image needs to zoom in depending on the user interaction
|
|
415
|
-
var zoomer = e.currentTarget.getBoundingClientRect();
|
|
416
|
-
var x = (e.clientX - zoomer.x) / zoomer.width * 100;
|
|
417
|
-
var y = (e.clientY - zoomer.y) / zoomer.height * 100;
|
|
418
|
-
setBackgroundPos(x + "% " + y + "%");
|
|
419
|
-
};
|
|
420
|
-
var toggleZoomImage = function toggleZoomImage(e) {
|
|
421
|
-
if (isZoomed) {
|
|
422
|
-
setIsZoomed(false);
|
|
423
|
-
} else {
|
|
424
|
-
// Zoom in and set the background position correctly
|
|
425
|
-
setIsZoomed(true);
|
|
426
|
-
zoomInPosition(e);
|
|
427
|
-
}
|
|
428
|
-
};
|
|
429
|
-
var handleClick = function handleClick(e) {
|
|
430
|
-
toggleZoomImage(e);
|
|
431
|
-
};
|
|
432
|
-
var handleMove = function handleMove(e) {
|
|
433
|
-
if (isZoomed) {
|
|
434
|
-
zoomInPosition(e);
|
|
435
|
-
}
|
|
436
|
-
};
|
|
437
|
-
return React.createElement(React.Fragment, null, React.createElement(Head, null, React.createElement("link", {
|
|
438
|
-
rel: "prefetch",
|
|
439
|
-
as: "image",
|
|
440
|
-
href: imageSrc
|
|
441
|
-
})), React.createElement(Box, {
|
|
442
|
-
position: "relative",
|
|
443
|
-
display: "inline-block",
|
|
444
|
-
width: "full",
|
|
445
|
-
height: "full",
|
|
446
|
-
overflow: "hidden",
|
|
447
|
-
flexShrink: "0",
|
|
448
|
-
scrollSnapAlign: "center",
|
|
449
|
-
scrollSnapStop: "always",
|
|
450
|
-
draggable: "false",
|
|
451
|
-
cursor: isZoomed ? 'zoom-out' : 'zoom-in',
|
|
452
|
-
backgroundImage: isZoomed ? "url( " + imageSrc + " )" : 'none',
|
|
453
|
-
backgroundSize: zoom + "%",
|
|
454
|
-
backgroundPosition: backgroundPos,
|
|
455
|
-
onClick: function onClick(e) {
|
|
456
|
-
return handleClick(e);
|
|
457
|
-
},
|
|
458
|
-
onMouseMove: function onMouseMove(e) {
|
|
459
|
-
return handleMove(e);
|
|
460
|
-
}
|
|
461
|
-
}, React.createElement(Image, {
|
|
462
|
-
src: imageSrc,
|
|
463
|
-
alt: image.alt,
|
|
464
|
-
fill: true,
|
|
465
|
-
style: {
|
|
466
|
-
visibility: isZoomed ? 'hidden' : 'visible',
|
|
467
|
-
objectFit: 'contain'
|
|
468
|
-
}
|
|
469
|
-
})));
|
|
470
|
-
};
|
|
471
|
-
|
|
472
|
-
var FullScreenImage = function FullScreenImage(_ref) {
|
|
473
|
-
var images = _ref.images,
|
|
474
|
-
isOpen = _ref.isOpen,
|
|
475
|
-
onClose = _ref.onClose,
|
|
476
|
-
openIndex = _ref.openIndex;
|
|
477
|
-
var _useState = useState(0),
|
|
478
|
-
imageIndex = _useState[0],
|
|
479
|
-
setImageIndex = _useState[1];
|
|
480
|
-
var containerRef = useRef(null);
|
|
481
|
-
useLockBodyScroll(isOpen);
|
|
482
|
-
var canMoveRight = imageIndex < images.length - 1;
|
|
483
|
-
var canMoveLeft = imageIndex !== 0;
|
|
484
|
-
var onRight = function onRight() {
|
|
485
|
-
return setImageIndex(function (p) {
|
|
486
|
-
return canMoveRight ? p + 1 : p;
|
|
487
|
-
});
|
|
488
|
-
};
|
|
489
|
-
var onLeft = function onLeft() {
|
|
490
|
-
return setImageIndex(function (p) {
|
|
491
|
-
return canMoveLeft ? p - 1 : p;
|
|
492
|
-
});
|
|
493
|
-
};
|
|
494
|
-
useKey('ArrowRight', onRight, {}, [onRight]);
|
|
495
|
-
useKey('ArrowLeft', onLeft, {}, [onLeft]);
|
|
496
|
-
useEffect(function () {
|
|
497
|
-
if (openIndex !== undefined) {
|
|
498
|
-
setImageIndex(openIndex);
|
|
499
|
-
}
|
|
500
|
-
}, [openIndex]);
|
|
501
|
-
useEffect(function () {
|
|
502
|
-
if (containerRef.current) {
|
|
503
|
-
containerRef.current.scrollTo({
|
|
504
|
-
left: imageIndex * containerRef.current.clientWidth,
|
|
505
|
-
behavior: 'smooth'
|
|
506
|
-
});
|
|
507
|
-
}
|
|
508
|
-
}, [imageIndex, containerRef]);
|
|
509
|
-
var onCloseLocal = function onCloseLocal() {
|
|
510
|
-
setImageIndex(0);
|
|
511
|
-
onClose();
|
|
512
|
-
};
|
|
513
|
-
return React.createElement(BoemlyModal, {
|
|
514
|
-
onClose: onCloseLocal,
|
|
515
|
-
isOpen: isOpen,
|
|
516
|
-
title: "",
|
|
517
|
-
trigger: "",
|
|
518
|
-
size: "full",
|
|
519
|
-
content: React.createElement(Flex, {
|
|
520
|
-
position: "absolute",
|
|
521
|
-
insetY: "16",
|
|
522
|
-
insetX: "0",
|
|
523
|
-
alignItems: "center",
|
|
524
|
-
justifyContent: "center"
|
|
525
|
-
}, React.createElement(Flex, {
|
|
526
|
-
ref: containerRef,
|
|
527
|
-
flexGrow: "1",
|
|
528
|
-
flexBasis: "100%",
|
|
529
|
-
flexShrink: "1",
|
|
530
|
-
gap: "4",
|
|
531
|
-
marginX: "24",
|
|
532
|
-
scrollSnapType: "x mandatory",
|
|
533
|
-
overflow: "hidden",
|
|
534
|
-
position: "relative",
|
|
535
|
-
height: "full",
|
|
536
|
-
width: "full"
|
|
537
|
-
}, images.map(function (image) {
|
|
538
|
-
return React.createElement(ZoomableImage, {
|
|
539
|
-
key: image.id,
|
|
540
|
-
image: image
|
|
541
|
-
});
|
|
542
|
-
})), React.createElement(Flex, {
|
|
543
|
-
position: "absolute",
|
|
544
|
-
inset: "6",
|
|
545
|
-
justifyContent: "space-between",
|
|
546
|
-
alignItems: "center",
|
|
547
|
-
pointerEvents: "none"
|
|
548
|
-
}, React.createElement(IconButton, {
|
|
549
|
-
visibility: canMoveLeft ? 'visible' : 'hidden',
|
|
550
|
-
onClick: onLeft,
|
|
551
|
-
icon: React.createElement(CaretLeft, {
|
|
552
|
-
size: 16
|
|
553
|
-
}),
|
|
554
|
-
"aria-label": "Previous picture",
|
|
555
|
-
variant: "outline",
|
|
556
|
-
pointerEvents: "all",
|
|
557
|
-
mr: "6"
|
|
558
|
-
}), React.createElement(IconButton, {
|
|
559
|
-
visibility: canMoveRight ? 'visible' : 'hidden',
|
|
560
|
-
onClick: onRight,
|
|
561
|
-
icon: React.createElement(CaretRight, {
|
|
562
|
-
size: 16
|
|
563
|
-
}),
|
|
564
|
-
"aria-label": "Next picture",
|
|
565
|
-
variant: "outline",
|
|
566
|
-
pointerEvents: "all",
|
|
567
|
-
ml: "4"
|
|
568
|
-
})))
|
|
569
|
-
});
|
|
570
|
-
};
|
|
571
|
-
|
|
572
|
-
var BREAKPOINT_MD = '768px';
|
|
573
|
-
var BREAKPOINT_LG = '960px';
|
|
574
|
-
var BREAKPOINT_MD_QUERY = "(max-width: " + BREAKPOINT_MD + ")";
|
|
575
|
-
var BREAKPOINT_LG_QUERY = "(max-width: " + BREAKPOINT_LG + ")";
|
|
576
|
-
|
|
577
|
-
var FullWidthImage = function FullWidthImage(_ref) {
|
|
578
|
-
var slice = _ref.slice;
|
|
579
|
-
var _useState = useState(false),
|
|
580
|
-
isOpen = _useState[0],
|
|
581
|
-
setIsOpen = _useState[1];
|
|
582
|
-
var _useMediaQuery = useMediaQuery(BREAKPOINT_MD_QUERY),
|
|
583
|
-
isMobile = _useMediaQuery[0];
|
|
584
|
-
return React.createElement(DefaultSectionContainer, {
|
|
585
|
-
title: slice.title
|
|
586
|
-
}, React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
|
|
587
|
-
isHero: true,
|
|
588
|
-
tagline: slice.tagline,
|
|
589
|
-
title: slice.title,
|
|
590
|
-
text: slice.text,
|
|
591
|
-
taglineProps: {
|
|
592
|
-
textAlign: 'center',
|
|
593
|
-
mt: ['32', null, null, '56']
|
|
594
|
-
},
|
|
595
|
-
titleProps: {
|
|
596
|
-
textAlign: 'center',
|
|
597
|
-
maxW: '6xl',
|
|
598
|
-
marginX: 'auto'
|
|
599
|
-
},
|
|
600
|
-
textProps: {
|
|
601
|
-
textAlign: 'center',
|
|
602
|
-
maxW: '3xl',
|
|
603
|
-
marginX: 'auto'
|
|
604
|
-
}
|
|
605
|
-
}), React.createElement(Box, {
|
|
606
|
-
position: "relative",
|
|
607
|
-
mt: "20",
|
|
608
|
-
height: ['3xs', null, 'xl']
|
|
609
|
-
}, React.createElement(Image, {
|
|
610
|
-
src: strapiMediaUrl(slice.image.img, 'xLarge'),
|
|
611
|
-
alt: slice.image.alt,
|
|
612
|
-
fill: true,
|
|
613
|
-
style: {
|
|
614
|
-
objectFit: slice.image.objectFit || 'cover',
|
|
615
|
-
cursor: isMobile ? 'unset' : 'pointer',
|
|
616
|
-
borderRadius: 'var(--boemly-radii-2xl)'
|
|
617
|
-
},
|
|
618
|
-
onClick: function onClick() {
|
|
619
|
-
return !isMobile && setIsOpen(true);
|
|
620
|
-
}
|
|
621
|
-
}), React.createElement(FullScreenImage, {
|
|
622
|
-
images: [slice.image],
|
|
623
|
-
isOpen: isOpen,
|
|
624
|
-
onClose: function onClose() {
|
|
625
|
-
return setIsOpen(false);
|
|
626
|
-
}
|
|
627
|
-
}))));
|
|
628
|
-
};
|
|
629
|
-
|
|
630
|
-
var strapiLinkUrl = function strapiLinkUrl(strapiLink) {
|
|
631
|
-
var _strapiLink, _strapiLink2;
|
|
632
|
-
if (strapiLink === void 0) {
|
|
633
|
-
strapiLink = undefined;
|
|
634
|
-
}
|
|
635
|
-
if ((_strapiLink = strapiLink) != null && (_strapiLink = _strapiLink.page) != null && _strapiLink.data) {
|
|
636
|
-
return "/" + strapiLink.page.data.attributes.slug;
|
|
637
|
-
}
|
|
638
|
-
return ((_strapiLink2 = strapiLink) == null ? void 0 : _strapiLink2.url) || '/';
|
|
639
|
-
};
|
|
640
|
-
|
|
641
|
-
var openHubSpotChat = function openHubSpotChat() {
|
|
642
|
-
var w = window;
|
|
643
|
-
if (w.HubSpotConversations) {
|
|
644
|
-
w.HubSpotConversations.widget.open();
|
|
645
|
-
} else {
|
|
646
|
-
w.hsConversationsOnReady = [function () {
|
|
647
|
-
w.HubSpotConversations.widget.open();
|
|
648
|
-
}];
|
|
649
|
-
}
|
|
650
|
-
};
|
|
651
|
-
|
|
652
|
-
var _excluded$1 = ["link"];
|
|
653
|
-
var StrapiLinkButton = function StrapiLinkButton(_ref) {
|
|
654
|
-
var link = _ref.link,
|
|
655
|
-
buttonProps = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
656
|
-
var adBlockDetected = useDetectAdBlock();
|
|
657
|
-
if (link.intercomLauncher) {
|
|
658
|
-
if (adBlockDetected) {
|
|
659
|
-
return React.createElement(Button, _extends({}, buttonProps, {
|
|
660
|
-
as: Link,
|
|
661
|
-
href: "mailto:hello@tree.ly"
|
|
662
|
-
}), link.text);
|
|
663
|
-
}
|
|
664
|
-
return React.createElement(Button, _extends({}, buttonProps, {
|
|
665
|
-
onClick: openHubSpotChat
|
|
666
|
-
}), link.text);
|
|
667
|
-
}
|
|
668
|
-
return React.createElement(Button, _extends({}, buttonProps, {
|
|
669
|
-
as: Link,
|
|
670
|
-
href: strapiLinkUrl(link)
|
|
671
|
-
}), link.text);
|
|
672
|
-
};
|
|
673
|
-
|
|
674
|
-
var Hero = function Hero(_ref) {
|
|
675
|
-
var slice = _ref.slice;
|
|
676
|
-
return React.createElement(Box, {
|
|
677
|
-
position: "relative",
|
|
678
|
-
width: "full",
|
|
679
|
-
height: "var(--default-hero-height)",
|
|
680
|
-
minHeight: "2xl",
|
|
681
|
-
backgroundColor: "gray.900",
|
|
682
|
-
overflowX: "hidden"
|
|
683
|
-
}, slice.image && React.createElement(React.Fragment, null, React.createElement(Image, {
|
|
684
|
-
src: strapiMediaUrl(slice.image.img, 'xLarge'),
|
|
685
|
-
alt: slice.image.alt,
|
|
686
|
-
fill: true,
|
|
687
|
-
style: {
|
|
688
|
-
objectFit: slice.image.objectFit || 'cover'
|
|
689
|
-
}
|
|
690
|
-
}), React.createElement(Gradient, null)), slice.shape && React.createElement(Box, {
|
|
691
|
-
position: "absolute",
|
|
692
|
-
bottom: "0",
|
|
693
|
-
borderTopRightRadius: "full",
|
|
694
|
-
width: ['3xs', null, '2xs', null, 'sm'],
|
|
695
|
-
height: ['3xs', null, '2xs', null, 'sm'],
|
|
696
|
-
right: ['-16', null, '24']
|
|
697
|
-
}, React.createElement(Image, {
|
|
698
|
-
src: strapiMediaUrl(slice.shape.img, 'medium'),
|
|
699
|
-
alt: slice.shape.alt,
|
|
700
|
-
fill: true,
|
|
701
|
-
style: {
|
|
702
|
-
objectFit: slice.shape.objectFit || 'cover',
|
|
703
|
-
borderTopRightRadius: 'var(--boemly-radii-full)'
|
|
704
|
-
}
|
|
705
|
-
})), React.createElement(Box, {
|
|
706
|
-
position: "absolute",
|
|
707
|
-
left: "0",
|
|
708
|
-
top: "56%",
|
|
709
|
-
width: "full",
|
|
710
|
-
textAlign: slice.textAlign,
|
|
711
|
-
transform: "translateY(-50%)"
|
|
712
|
-
}, React.createElement(Wrapper, null, React.createElement(React.Fragment, null, React.createElement(DefaultSectionHeader, {
|
|
713
|
-
isHero: true,
|
|
714
|
-
tagline: slice.tagline,
|
|
715
|
-
title: slice.title,
|
|
716
|
-
text: slice.subTitle,
|
|
717
|
-
taglineProps: {
|
|
718
|
-
color: 'white'
|
|
719
|
-
},
|
|
720
|
-
titleProps: {
|
|
721
|
-
color: 'white',
|
|
722
|
-
maxW: slice.textAlign === 'center' ? '4xl' : '3xl',
|
|
723
|
-
mx: slice.textAlign === 'center' ? 'auto' : 'unset',
|
|
724
|
-
textAlign: slice.textAlign
|
|
725
|
-
},
|
|
726
|
-
textProps: {
|
|
727
|
-
maxW: '2xl',
|
|
728
|
-
mx: slice.textAlign === 'center' ? 'auto' : 'unset',
|
|
729
|
-
textAlign: slice.textAlign,
|
|
730
|
-
color: 'white'
|
|
731
|
-
}
|
|
732
|
-
}), React.createElement(Flex, {
|
|
733
|
-
gap: "8",
|
|
734
|
-
justifyContent: slice.textAlign === 'center' ? 'center' : 'start'
|
|
735
|
-
}, slice.button && React.createElement(StrapiLinkButton, {
|
|
736
|
-
key: slice.button.id,
|
|
737
|
-
mt: "10",
|
|
738
|
-
size: "xl",
|
|
739
|
-
link: slice.button
|
|
740
|
-
}), slice.additionalButtons.map(function (button) {
|
|
741
|
-
return React.createElement(StrapiLinkButton, {
|
|
742
|
-
key: button.button.id,
|
|
743
|
-
mt: "10",
|
|
744
|
-
size: "xl",
|
|
745
|
-
variant: button.variant,
|
|
746
|
-
link: button.button
|
|
747
|
-
});
|
|
748
|
-
}))))));
|
|
749
|
-
};
|
|
750
|
-
|
|
751
|
-
var IconGrid = function IconGrid(_ref) {
|
|
752
|
-
var slice = _ref.slice;
|
|
753
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, slice.title ? React.createElement(React.Fragment, null, React.createElement(Flex, {
|
|
754
|
-
alignItems: "center",
|
|
755
|
-
flexDirection: "column"
|
|
756
|
-
}, React.createElement(DefaultSectionHeader, {
|
|
757
|
-
tagline: slice.tagline,
|
|
758
|
-
title: slice.title,
|
|
759
|
-
text: slice.subTitle,
|
|
760
|
-
taglineProps: {
|
|
761
|
-
maxW: '2xl',
|
|
762
|
-
textAlign: 'center'
|
|
763
|
-
},
|
|
764
|
-
titleProps: {
|
|
765
|
-
maxW: '3xl',
|
|
766
|
-
textAlign: 'center'
|
|
767
|
-
},
|
|
768
|
-
textProps: {
|
|
769
|
-
maxW: '3xl',
|
|
770
|
-
textAlign: 'center'
|
|
771
|
-
}
|
|
772
|
-
})), React.createElement(Spacer, {
|
|
773
|
-
h: "20"
|
|
774
|
-
})) : React.createElement(React.Fragment, null), React.createElement(SimpleGrid, {
|
|
775
|
-
columns: [1, null, null, 2],
|
|
776
|
-
gap: "32",
|
|
777
|
-
rowGap: ['16', null, null, '28']
|
|
778
|
-
}, slice.iconsWithTextAndButton.map(function (iconWithTextAndButton) {
|
|
779
|
-
return React.createElement(Box, {
|
|
780
|
-
key: iconWithTextAndButton.id
|
|
781
|
-
}, React.createElement(Box, {
|
|
782
|
-
margin: "0 auto",
|
|
783
|
-
backgroundColor: "primary.50",
|
|
784
|
-
borderRadius: "full",
|
|
785
|
-
display: "flex",
|
|
786
|
-
alignItems: "center",
|
|
787
|
-
justifyContent: "space-around",
|
|
788
|
-
width: "6.5rem",
|
|
789
|
-
height: "6.5rem"
|
|
790
|
-
}, React.createElement(Box, {
|
|
791
|
-
position: "absolute",
|
|
792
|
-
width: "12",
|
|
793
|
-
height: "12"
|
|
794
|
-
}, React.createElement(Image, {
|
|
795
|
-
src: strapiMediaUrl(iconWithTextAndButton.icon.img, 'xSmall'),
|
|
796
|
-
alt: iconWithTextAndButton.icon.alt,
|
|
797
|
-
fill: true,
|
|
798
|
-
style: {
|
|
799
|
-
objectFit: iconWithTextAndButton.icon.objectFit || 'contain'
|
|
800
|
-
}
|
|
801
|
-
}))), React.createElement(Heading, {
|
|
802
|
-
size: "xl",
|
|
803
|
-
textAlign: "center",
|
|
804
|
-
mb: "4",
|
|
805
|
-
mt: "8"
|
|
806
|
-
}, iconWithTextAndButton.title), React.createElement(Text, {
|
|
807
|
-
size: "mdRegularNormal",
|
|
808
|
-
textAlign: "center"
|
|
809
|
-
}, iconWithTextAndButton.text), iconWithTextAndButton.button && React.createElement(Box, {
|
|
810
|
-
textAlign: "center"
|
|
811
|
-
}, React.createElement(StrapiLinkButton, {
|
|
812
|
-
key: iconWithTextAndButton.button.id,
|
|
813
|
-
mt: "8",
|
|
814
|
-
size: "md",
|
|
815
|
-
variant: "outline",
|
|
816
|
-
link: iconWithTextAndButton.button
|
|
817
|
-
})));
|
|
818
|
-
}))));
|
|
819
|
-
};
|
|
820
|
-
|
|
821
|
-
var LinkedInIcon = function LinkedInIcon() {
|
|
822
|
-
return React.createElement("svg", {
|
|
823
|
-
width: "14",
|
|
824
|
-
height: "14",
|
|
825
|
-
viewBox: "0 0 14 14",
|
|
826
|
-
fill: "none",
|
|
827
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
828
|
-
}, React.createElement("g", {
|
|
829
|
-
clipPath: "url(#clip0_112_606)"
|
|
830
|
-
}, React.createElement("path", {
|
|
831
|
-
d: "M11.9286 11.9285H9.85424V8.67998C9.85424 7.90534 9.84042 6.90813 8.77539 6.90813C7.695 6.90813 7.52969 7.75213 7.52969 8.62357V11.9283H5.45533V5.24799H7.44671V6.16093H7.47459C7.67388 5.82018 7.96186 5.53986 8.30786 5.34984C8.65386 5.15981 9.04493 5.06719 9.4394 5.08183C11.5418 5.08183 11.9295 6.46473 11.9295 8.2638L11.9286 11.9285ZM3.11477 4.33484C2.87669 4.33489 2.64393 4.26433 2.44595 4.13209C2.24796 3.99985 2.09365 3.81188 2.0025 3.59193C1.91135 3.37199 1.88746 3.12995 1.93387 2.89644C1.98027 2.66292 2.09488 2.44841 2.26321 2.28003C2.43153 2.11164 2.646 1.99696 2.8795 1.95047C3.11301 1.90398 3.35504 1.92778 3.57502 2.01884C3.795 2.10992 3.98303 2.26417 4.11533 2.46211C4.24764 2.66004 4.31829 2.89277 4.31833 3.13085C4.31836 3.28894 4.28725 3.44547 4.22678 3.59153C4.1663 3.7376 4.07767 3.87031 3.96591 3.98211C3.85415 4.09392 3.72146 4.18261 3.57541 4.24313C3.42937 4.30365 3.27286 4.33481 3.11477 4.33484ZM4.15194 11.9285H2.07544V5.24799H4.15194V11.9285ZM12.9628 0.000953808H1.03307C0.762304 -0.00210183 0.501383 0.102466 0.307673 0.291681C0.113961 0.480895 0.00330461 0.739273 0 1.01004V12.9892C0.00319151 13.2602 0.113783 13.5187 0.307487 13.7081C0.501192 13.8975 0.762169 14.0023 1.03307 13.9994H12.9628C13.2342 14.0028 13.496 13.8983 13.6904 13.7089C13.8848 13.5195 13.9962 13.2607 14 12.9892V1.00918C13.9961 0.737873 13.8846 0.479199 13.6902 0.28999C13.4958 0.10078 13.2341 -0.00348904 12.9628 8.91429e-05",
|
|
832
|
-
fill: "#0A66C2"
|
|
833
|
-
})), React.createElement("defs", null, React.createElement("clipPath", {
|
|
834
|
-
id: "clip0_112_606"
|
|
835
|
-
}, React.createElement("rect", {
|
|
836
|
-
width: "14",
|
|
837
|
-
height: "14",
|
|
838
|
-
fill: "white"
|
|
839
|
-
}))));
|
|
840
|
-
};
|
|
841
|
-
|
|
842
|
-
var _excluded = ["link"];
|
|
843
|
-
var StrapiLinkButtonWithIcon = function StrapiLinkButtonWithIcon(_ref) {
|
|
844
|
-
var link = _ref.link,
|
|
845
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
846
|
-
var getLinkIcon = function getLinkIcon(destination) {
|
|
847
|
-
switch (destination) {
|
|
848
|
-
case 'linkedin':
|
|
849
|
-
{
|
|
850
|
-
return React.createElement(LinkedInIcon, null);
|
|
851
|
-
}
|
|
852
|
-
case 'web':
|
|
853
|
-
{
|
|
854
|
-
return React.createElement(Globe, null);
|
|
855
|
-
}
|
|
856
|
-
default:
|
|
857
|
-
{
|
|
858
|
-
return React.createElement(CaretRight, null);
|
|
859
|
-
}
|
|
860
|
-
}
|
|
861
|
-
};
|
|
862
|
-
return React.createElement(StrapiLinkButton, _extends({}, props, {
|
|
863
|
-
link: link.link,
|
|
864
|
-
rightIcon: getLinkIcon(link.destination)
|
|
865
|
-
}));
|
|
866
|
-
};
|
|
867
|
-
|
|
868
|
-
var ImageGrid = function ImageGrid(_ref) {
|
|
869
|
-
var slice = _ref.slice;
|
|
870
|
-
var _useToken = useToken('colors', ['primary.50']),
|
|
871
|
-
primary50 = _useToken[0];
|
|
872
|
-
return React.createElement(DefaultSectionContainer, {
|
|
873
|
-
backgroundColor: primary50,
|
|
874
|
-
title: slice.title
|
|
875
|
-
}, React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
|
|
876
|
-
tagline: slice.tagline,
|
|
877
|
-
title: slice.title,
|
|
878
|
-
text: slice.text,
|
|
879
|
-
taglineProps: {
|
|
880
|
-
textAlign: 'center'
|
|
881
|
-
},
|
|
882
|
-
titleProps: {
|
|
883
|
-
textAlign: 'center',
|
|
884
|
-
maxW: '6xl',
|
|
885
|
-
marginX: 'auto'
|
|
886
|
-
},
|
|
887
|
-
textProps: {
|
|
888
|
-
textAlign: 'center',
|
|
889
|
-
maxW: '2xl',
|
|
890
|
-
marginX: 'auto'
|
|
891
|
-
}
|
|
892
|
-
}), React.createElement(SimpleGrid, {
|
|
893
|
-
mt: "24",
|
|
894
|
-
columns: 3,
|
|
895
|
-
gap: "24",
|
|
896
|
-
rowGap: "16",
|
|
897
|
-
minChildWidth: "16rem"
|
|
898
|
-
}, slice.images.map(function (_ref2) {
|
|
899
|
-
var id = _ref2.id,
|
|
900
|
-
title = _ref2.title,
|
|
901
|
-
subTitle = _ref2.subTitle,
|
|
902
|
-
image = _ref2.image,
|
|
903
|
-
links = _ref2.links;
|
|
904
|
-
return React.createElement(Box, {
|
|
905
|
-
key: id
|
|
906
|
-
}, React.createElement(Box, {
|
|
907
|
-
position: "relative",
|
|
908
|
-
height: "sm",
|
|
909
|
-
borderRadius: "xl"
|
|
910
|
-
}, React.createElement(Image, {
|
|
911
|
-
src: strapiMediaUrl(image.img, 'medium'),
|
|
912
|
-
alt: image.alt,
|
|
913
|
-
fill: true,
|
|
914
|
-
style: {
|
|
915
|
-
objectFit: image.objectFit || 'cover',
|
|
916
|
-
borderRadius: 'var(--boemly-radii-xl)'
|
|
917
|
-
}
|
|
918
|
-
})), React.createElement(Heading, {
|
|
919
|
-
size: "xl",
|
|
920
|
-
mt: "4"
|
|
921
|
-
}, title), subTitle && React.createElement(Text, {
|
|
922
|
-
size: "mdRegularNormal"
|
|
923
|
-
}, subTitle), links && links.length > 0 && React.createElement(Flex, {
|
|
924
|
-
mt: "3",
|
|
925
|
-
flexDir: "row",
|
|
926
|
-
gap: "2",
|
|
927
|
-
flexWrap: "wrap"
|
|
928
|
-
}, links.map(function (link) {
|
|
929
|
-
return React.createElement(StrapiLinkButtonWithIcon, {
|
|
930
|
-
key: link.id,
|
|
931
|
-
link: link,
|
|
932
|
-
size: "sm",
|
|
933
|
-
variant: "outline"
|
|
934
|
-
});
|
|
935
|
-
})));
|
|
936
|
-
}))));
|
|
937
|
-
};
|
|
938
|
-
|
|
939
|
-
process.env.NEXT_PUBLIC_API_URI || 'http://localhost:4001';
|
|
940
|
-
var FPM_API_URI = process.env.NEXT_PUBLIC_FPM_API_URI || 'https://api.fpm.t-staging.com';
|
|
941
|
-
var CDN_URI = 'https://cdn.tree.ly';
|
|
942
|
-
|
|
943
|
-
var ImageTextSequence = function ImageTextSequence(_ref) {
|
|
944
|
-
var slice = _ref.slice;
|
|
945
|
-
var _useMediaQuery = useMediaQuery(BREAKPOINT_LG_QUERY),
|
|
946
|
-
oneColumnGrid = _useMediaQuery[0];
|
|
947
|
-
var _useToken = useToken('colors', ['primary.50']),
|
|
948
|
-
primary50 = _useToken[0];
|
|
949
|
-
var _useToken2 = useToken('colors', ['gray.700']),
|
|
950
|
-
gray700 = _useToken2[0];
|
|
951
|
-
return React.createElement(DefaultSectionContainer, {
|
|
952
|
-
backgroundColor: primary50,
|
|
953
|
-
title: slice.title
|
|
954
|
-
}, slice.background ? React.createElement(React.Fragment, null, React.createElement(Box, {
|
|
955
|
-
position: "absolute",
|
|
956
|
-
top: "0",
|
|
957
|
-
right: "24",
|
|
958
|
-
display: ['none', null, null, 'unset']
|
|
959
|
-
}, React.createElement(Image, {
|
|
960
|
-
src: CDN_URI + "/assets/v3/strapi-slices/desktop-map-border.svg",
|
|
961
|
-
alt: "Map",
|
|
962
|
-
width: "786",
|
|
963
|
-
height: "897"
|
|
964
|
-
})), React.createElement(Box, {
|
|
965
|
-
position: "absolute",
|
|
966
|
-
top: "64",
|
|
967
|
-
right: "-14",
|
|
968
|
-
display: ['unset', null, null, 'none']
|
|
969
|
-
}, React.createElement(Image, {
|
|
970
|
-
src: CDN_URI + "/assets/v3/strapi-slices/mobile-map-border.svg",
|
|
971
|
-
alt: "Map",
|
|
972
|
-
width: "227",
|
|
973
|
-
height: "452"
|
|
974
|
-
}))) : React.createElement(React.Fragment, null), React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
|
|
975
|
-
tagline: slice.tagline,
|
|
976
|
-
title: slice.title,
|
|
977
|
-
text: slice.text,
|
|
978
|
-
taglineProps: {
|
|
979
|
-
textAlign: ['left', null, null, null, 'center']
|
|
980
|
-
},
|
|
981
|
-
titleProps: {
|
|
982
|
-
maxW: '6xl',
|
|
983
|
-
marginX: ['0', null, null, null, 'auto'],
|
|
984
|
-
textAlign: ['left', null, null, null, 'center']
|
|
985
|
-
},
|
|
986
|
-
textProps: {
|
|
987
|
-
maxW: '2xl',
|
|
988
|
-
marginX: ['0', null, null, null, 'auto'],
|
|
989
|
-
textAlign: ['left', null, null, null, 'center'],
|
|
990
|
-
color: 'black'
|
|
991
|
-
}
|
|
992
|
-
}), React.createElement(SimpleGrid, {
|
|
993
|
-
gap: "16",
|
|
994
|
-
mt: ['28', null, null, null, '40'],
|
|
995
|
-
columns: [1, null, null, null, 2]
|
|
996
|
-
}, slice.imageTextRows.map(function (_ref2, index) {
|
|
997
|
-
var id = _ref2.id,
|
|
998
|
-
title = _ref2.title,
|
|
999
|
-
text = _ref2.text,
|
|
1000
|
-
button = _ref2.button,
|
|
1001
|
-
image = _ref2.image;
|
|
1002
|
-
var imageBox = React.createElement(Box, null, React.createElement(Box, {
|
|
1003
|
-
position: "relative",
|
|
1004
|
-
width: "full",
|
|
1005
|
-
minHeight: ['2xs', null, null, 'sm']
|
|
1006
|
-
}, React.createElement(Image, {
|
|
1007
|
-
src: strapiMediaUrl(image.img, 'large'),
|
|
1008
|
-
alt: image.alt,
|
|
1009
|
-
fill: true,
|
|
1010
|
-
style: {
|
|
1011
|
-
objectFit: image.objectFit || 'contain'
|
|
1012
|
-
}
|
|
1013
|
-
})));
|
|
1014
|
-
return React.createElement(Fragment, {
|
|
1015
|
-
key: id
|
|
1016
|
-
}, (oneColumnGrid || index % 2 !== 0) && imageBox, React.createElement(Box, {
|
|
1017
|
-
display: "flex",
|
|
1018
|
-
alignItems: "flex-start",
|
|
1019
|
-
flexDirection: "column",
|
|
1020
|
-
justifyContent: "center"
|
|
1021
|
-
}, React.createElement(Heading, {
|
|
1022
|
-
as: "h2",
|
|
1023
|
-
size: "xl",
|
|
1024
|
-
mb: "4"
|
|
1025
|
-
}, title), React.createElement(Text, {
|
|
1026
|
-
size: "mdRegularNormal"
|
|
1027
|
-
}, text), button && React.createElement(StrapiLinkButton, {
|
|
1028
|
-
mt: "5",
|
|
1029
|
-
link: button,
|
|
1030
|
-
size: "sm",
|
|
1031
|
-
variant: "outline",
|
|
1032
|
-
rightIcon: React.createElement(CaretRight, {
|
|
1033
|
-
size: "10",
|
|
1034
|
-
color: gray700
|
|
1035
|
-
})
|
|
1036
|
-
})), !oneColumnGrid && index % 2 === 0 && imageBox);
|
|
1037
|
-
}))));
|
|
1038
|
-
};
|
|
1039
|
-
|
|
1040
|
-
var LeftTextRightCard = function LeftTextRightCard(_ref) {
|
|
1041
|
-
var slice = _ref.slice;
|
|
1042
|
-
var _useRouter = useRouter(),
|
|
1043
|
-
push = _useRouter.push;
|
|
1044
|
-
return React.createElement(DefaultSectionContainer, {
|
|
1045
|
-
title: slice.title
|
|
1046
|
-
}, React.createElement(Wrapper, null, React.createElement(Grid, {
|
|
1047
|
-
templateColumns: ['repeat(8, 1fr)', null, null, null, 'repeat(12, 1fr)'],
|
|
1048
|
-
templateRows: ['repeat(2, 1fr)', null, null, null, 'repeat(1, 1fr)'],
|
|
1049
|
-
rowGap: "12"
|
|
1050
|
-
}, React.createElement(GridItem, {
|
|
1051
|
-
colSpan: 8,
|
|
1052
|
-
rowSpan: 1,
|
|
1053
|
-
pr: ['0', null, null, null, '28']
|
|
1054
|
-
}, React.createElement(DefaultSectionHeader, {
|
|
1055
|
-
tagline: slice.tagline,
|
|
1056
|
-
title: slice.title,
|
|
1057
|
-
text: slice.text
|
|
1058
|
-
}), slice.checkMarkLabels && React.createElement(React.Fragment, null, React.createElement(Spacer, {
|
|
1059
|
-
height: "10"
|
|
1060
|
-
}), React.createElement(BoemlyList, {
|
|
1061
|
-
listItems: slice.checkMarkLabels
|
|
1062
|
-
}), React.createElement(Spacer, {
|
|
1063
|
-
height: "10"
|
|
1064
|
-
})), slice.button && React.createElement(StrapiLinkButton, {
|
|
1065
|
-
link: slice.button,
|
|
1066
|
-
size: "md",
|
|
1067
|
-
colorScheme: "white",
|
|
1068
|
-
variant: "outline",
|
|
1069
|
-
rightIcon: React.createElement(ArrowRight, null)
|
|
1070
|
-
})), React.createElement(GridItem, {
|
|
1071
|
-
colSpan: [8, null, null, null, 4],
|
|
1072
|
-
rowSpan: 1,
|
|
1073
|
-
position: "relative"
|
|
1074
|
-
}, slice.card && React.createElement(PortfolioCard, {
|
|
1075
|
-
title: slice.card.title,
|
|
1076
|
-
button: slice.card.button && {
|
|
1077
|
-
text: slice.card.button.text,
|
|
1078
|
-
onClick: function onClick() {
|
|
1079
|
-
var _slice$card;
|
|
1080
|
-
return push(strapiLinkUrl((_slice$card = slice.card) == null ? void 0 : _slice$card.button));
|
|
1081
|
-
}
|
|
1082
|
-
},
|
|
1083
|
-
facts: slice.card.facts,
|
|
1084
|
-
image: React.createElement(Image, {
|
|
1085
|
-
src: strapiMediaUrl(slice.card.image.img, 'medium'),
|
|
1086
|
-
alt: slice.card.image.alt,
|
|
1087
|
-
fill: true,
|
|
1088
|
-
style: {
|
|
1089
|
-
objectFit: slice.card.image.objectFit || 'cover'
|
|
1090
|
-
}
|
|
1091
|
-
}),
|
|
1092
|
-
portfolioNumber: slice.card.portfolioNumber
|
|
1093
|
-
})))));
|
|
1094
|
-
};
|
|
1095
|
-
|
|
1096
|
-
var LogoGridWithText = function LogoGridWithText(_ref) {
|
|
1097
|
-
var slice = _ref.slice;
|
|
1098
|
-
var _useToken = useToken('colors', ['primary.50']),
|
|
1099
|
-
primary50 = _useToken[0];
|
|
1100
|
-
return React.createElement(DefaultSectionContainer, {
|
|
1101
|
-
backgroundColor: primary50,
|
|
1102
|
-
title: slice.title
|
|
1103
|
-
}, React.createElement(Wrapper, null, React.createElement(SimpleGrid, {
|
|
1104
|
-
columns: 2,
|
|
1105
|
-
gap: "28",
|
|
1106
|
-
minChildWidth: "16rem"
|
|
1107
|
-
}, React.createElement(Box, {
|
|
1108
|
-
display: "flex",
|
|
1109
|
-
flexDirection: "column",
|
|
1110
|
-
justifyContent: "center",
|
|
1111
|
-
alignItems: "flex-start"
|
|
1112
|
-
}, React.createElement(Heading, {
|
|
1113
|
-
as: "h2",
|
|
1114
|
-
size: "3xl",
|
|
1115
|
-
mb: "4"
|
|
1116
|
-
}, slice.title), React.createElement(RichText, {
|
|
1117
|
-
content: slice.text
|
|
1118
|
-
}), slice.button && React.createElement(StrapiLinkButton, {
|
|
1119
|
-
link: slice.button,
|
|
1120
|
-
size: "md",
|
|
1121
|
-
colorScheme: "white",
|
|
1122
|
-
variant: "outline",
|
|
1123
|
-
mt: "6",
|
|
1124
|
-
rightIcon: React.createElement(ArrowRight, null)
|
|
1125
|
-
})), React.createElement(Flex, {
|
|
1126
|
-
flexDir: "row",
|
|
1127
|
-
flexWrap: "wrap",
|
|
1128
|
-
gap: ['12', null, null, '28']
|
|
1129
|
-
}, slice.logos.map(function (logo) {
|
|
1130
|
-
return React.createElement(Flex, {
|
|
1131
|
-
key: logo.id,
|
|
1132
|
-
justifyContent: "center",
|
|
1133
|
-
alignItems: "center",
|
|
1134
|
-
flexGrow: 1,
|
|
1135
|
-
flexShrink: 0,
|
|
1136
|
-
flexBasis: slice.logos.length > 2 ? '34%' : '90%'
|
|
1137
|
-
}, React.createElement(Box, {
|
|
1138
|
-
position: "relative",
|
|
1139
|
-
height: "20",
|
|
1140
|
-
width: "100%"
|
|
1141
|
-
}, logo.link ? React.createElement("a", {
|
|
1142
|
-
href: strapiLinkUrl(logo.link)
|
|
1143
|
-
}, React.createElement(Image, {
|
|
1144
|
-
src: strapiMediaUrl(logo.img, 'small'),
|
|
1145
|
-
alt: logo.alt,
|
|
1146
|
-
fill: true,
|
|
1147
|
-
style: {
|
|
1148
|
-
objectFit: logo.objectFit || 'contain'
|
|
1149
|
-
}
|
|
1150
|
-
})) : React.createElement(Image, {
|
|
1151
|
-
src: strapiMediaUrl(logo.img, 'small'),
|
|
1152
|
-
alt: logo.alt,
|
|
1153
|
-
fill: true,
|
|
1154
|
-
style: {
|
|
1155
|
-
objectFit: logo.objectFit || 'contain'
|
|
1156
|
-
}
|
|
1157
|
-
})));
|
|
1158
|
-
})))));
|
|
1159
|
-
};
|
|
1160
|
-
|
|
1161
|
-
var _templateObject$7, _templateObject2$4, _templateObject3$2, _templateObject4$1, _templateObject5$1;
|
|
1162
|
-
var MapHeroContainer = /*#__PURE__*/styled(Box)(_templateObject$7 || (_templateObject$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n width: 100vw;\n height: var(--default-hero-height);\n min-height: var(--boemly-sizes-3xl);\n background-color: var(--boemly-colors-primary-50);\n overflow: hidden;\n z-index: var(--boemly-zIndices-base);\n\n @media screen and (max-width: ", ") {\n height: auto;\n }\n"])), BREAKPOINT_LG);
|
|
1163
|
-
var MapHeroTextContainer = /*#__PURE__*/styled(Box)(_templateObject2$4 || (_templateObject2$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: absolute;\n width: 100vw;\n top: 56%;\n left: 0;\n transform: translateY(-50%);\n z-index: var(--boemly-zIndices-aboveBase);\n\n @media screen and (max-width: ", ") {\n position: relative;\n transform: unset;\n\n padding-top: var(--boemly-space-32);\n }\n"])), BREAKPOINT_LG);
|
|
1164
|
-
var ShapeContainer = /*#__PURE__*/styled(Box)(_templateObject3$2 || (_templateObject3$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: absolute;\n bottom: calc(var(--boemly-space-8) * -1);\n left: 0;\n\n width: var(--boemly-sizes-sm);\n height: var(--boemly-sizes-sm);\n\n border-top-right-radius: var(--boemly-radii-full);\n\n & span,\n div {\n border-top-right-radius: var(--boemly-radii-full);\n }\n\n @media screen and (max-width: ", ") {\n display: none;\n }\n"])), BREAKPOINT_LG);
|
|
1165
|
-
var MapContainer = /*#__PURE__*/styled(Box)(_templateObject4$1 || (_templateObject4$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: absolute;\n\n width: 50%;\n height: 100%;\n\n right: 0;\n top: 0;\n\n & img {\n object-fit: cover !important;\n }\n\n @media screen and (max-width: ", ") {\n width: 100%;\n height: var(--boemly-sizes-4xl);\n position: relative;\n margin-top: calc(var(--boemly-space-72) * -1);\n background-color: var(--boemly-colors-white);\n\n & img {\n object-fit: contain !important;\n }\n }\n"])), BREAKPOINT_LG);
|
|
1166
|
-
var MapGradient = /*#__PURE__*/styled(Box)(_templateObject5$1 || (_templateObject5$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n right: 0;\n width: 100%;\n height: 100%;\n\n background: linear-gradient(\n 90deg,\n var(--boemly-colors-primary-50) 0%,\n var(--boemly-colors-primary-50) 10%,\n rgba(243, 246, 245, 0.6) 28%,\n rgba(243, 246, 245, 0) 40%,\n rgba(243, 246, 245, 0) 100%\n );\n\n @media screen and (max-width: ", ") {\n background: linear-gradient(\n 180deg,\n var(--boemly-colors-primary-50) 0%,\n var(--boemly-colors-primary-50) 36%,\n rgba(243, 246, 245, 0.12) 46%,\n rgba(243, 246, 245, 0) 100%\n );\n }\n"])), BREAKPOINT_LG);
|
|
1167
|
-
|
|
1168
|
-
var MapHero = function MapHero(_ref) {
|
|
1169
|
-
var slice = _ref.slice;
|
|
1170
|
-
var _useMediaQuery = useMediaQuery(BREAKPOINT_LG_QUERY),
|
|
1171
|
-
belowBreakpoint = _useMediaQuery[0];
|
|
1172
|
-
return React.createElement(MapHeroContainer, null, slice.shape && React.createElement(ShapeContainer, null, React.createElement(Image, {
|
|
1173
|
-
src: strapiMediaUrl(slice.shape.img, 'medium'),
|
|
1174
|
-
alt: slice.shape.alt,
|
|
1175
|
-
fill: true,
|
|
1176
|
-
style: {
|
|
1177
|
-
objectFit: slice.shape.objectFit || 'cover'
|
|
1178
|
-
}
|
|
1179
|
-
})), React.createElement(MapHeroTextContainer, null, React.createElement(Wrapper, null, React.createElement(React.Fragment, null, React.createElement(DefaultSectionHeader, {
|
|
1180
|
-
isHero: true,
|
|
1181
|
-
tagline: slice.tagline,
|
|
1182
|
-
title: slice.title,
|
|
1183
|
-
text: slice.subTitle,
|
|
1184
|
-
titleProps: {
|
|
1185
|
-
maxW: ['100%', null, null, null, '60%']
|
|
1186
|
-
},
|
|
1187
|
-
textProps: {
|
|
1188
|
-
maxW: ['100%', null, null, null, '55%']
|
|
1189
|
-
}
|
|
1190
|
-
}), slice.buttons && slice.buttons.length > 0 && React.createElement(Flex, {
|
|
1191
|
-
mt: "10",
|
|
1192
|
-
flexDir: "row",
|
|
1193
|
-
gap: "5"
|
|
1194
|
-
}, React.createElement(StrapiLinkButton, {
|
|
1195
|
-
link: slice.buttons[0],
|
|
1196
|
-
size: "xl"
|
|
1197
|
-
}), slice.buttons.length === 2 && React.createElement(StrapiLinkButton, {
|
|
1198
|
-
link: slice.buttons[1],
|
|
1199
|
-
variant: "outline",
|
|
1200
|
-
size: "xl"
|
|
1201
|
-
}))))), React.createElement(MapContainer, null, belowBreakpoint ? React.createElement(Image, {
|
|
1202
|
-
src: strapiMediaUrl(slice.mobileMap.img, 'xLarge'),
|
|
1203
|
-
alt: slice.mobileMap.alt,
|
|
1204
|
-
fill: true,
|
|
1205
|
-
style: {
|
|
1206
|
-
objectFit: slice.mobileMap.objectFit || 'contain'
|
|
1207
|
-
}
|
|
1208
|
-
}) : React.createElement(Image, {
|
|
1209
|
-
src: strapiMediaUrl(slice.map.img, 'xLarge'),
|
|
1210
|
-
alt: slice.map.alt,
|
|
1211
|
-
fill: true,
|
|
1212
|
-
style: {
|
|
1213
|
-
objectFit: slice.map.objectFit || 'cover'
|
|
1214
|
-
}
|
|
1215
|
-
}), React.createElement(MapGradient, null)));
|
|
1216
|
-
};
|
|
1217
|
-
|
|
1218
|
-
var convertToKebabCase = function convertToKebabCase(str) {
|
|
1219
|
-
var matches = str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);
|
|
1220
|
-
return matches ? matches.map(function (x) {
|
|
1221
|
-
return x.toLowerCase();
|
|
1222
|
-
}).join('-') : '';
|
|
1223
|
-
};
|
|
1224
|
-
|
|
1225
|
-
var VARIANTS$4 = {
|
|
1226
|
-
gray: {
|
|
1227
|
-
backgroundColor: 'primary.50',
|
|
1228
|
-
tagLineColor: 'primary.500',
|
|
1229
|
-
textColor: 'black',
|
|
1230
|
-
accordionVariant: 'black',
|
|
1231
|
-
otherQuestionsBackground: 'primary.700'
|
|
1232
|
-
},
|
|
1233
|
-
green: {
|
|
1234
|
-
backgroundColor: 'primary.800',
|
|
1235
|
-
tagLineColor: 'white',
|
|
1236
|
-
textColor: 'white',
|
|
1237
|
-
accordionVariant: 'white',
|
|
1238
|
-
otherQuestionsBackground: 'primary.900'
|
|
1239
|
-
},
|
|
1240
|
-
white: {
|
|
1241
|
-
backgroundColor: 'white',
|
|
1242
|
-
tagLineColor: 'primary.500',
|
|
1243
|
-
textColor: 'black',
|
|
1244
|
-
accordionVariant: 'black',
|
|
1245
|
-
otherQuestionsBackground: 'primary.700'
|
|
1246
|
-
}
|
|
1247
|
-
};
|
|
1248
|
-
var QAndA = function QAndA(_ref) {
|
|
1249
|
-
var _slice$variant;
|
|
1250
|
-
var slice = _ref.slice;
|
|
1251
|
-
var _useRouter = useRouter(),
|
|
1252
|
-
push = _useRouter.push;
|
|
1253
|
-
var variant = VARIANTS$4[(_slice$variant = slice.variant) != null ? _slice$variant : 'green'];
|
|
1254
|
-
return React.createElement(React.Fragment, null, React.createElement(Box, {
|
|
1255
|
-
pb: slice.hero ? 80 : 28,
|
|
1256
|
-
id: convertToKebabCase(slice.title),
|
|
1257
|
-
backgroundColor: variant.backgroundColor
|
|
1258
|
-
}, React.createElement(Wrapper, null, React.createElement(SimpleGrid, {
|
|
1259
|
-
columns: [1, null, null, 2]
|
|
1260
|
-
}, React.createElement(Box, {
|
|
1261
|
-
mr: "16",
|
|
1262
|
-
paddingY: "28"
|
|
1263
|
-
}, React.createElement(Text, {
|
|
1264
|
-
size: "mdMonoUppercase",
|
|
1265
|
-
color: variant.tagLineColor
|
|
1266
|
-
}, slice.tagline), React.createElement(Heading, {
|
|
1267
|
-
as: "h2",
|
|
1268
|
-
size: "3xl",
|
|
1269
|
-
color: variant.textColor,
|
|
1270
|
-
mt: "6",
|
|
1271
|
-
mb: "16"
|
|
1272
|
-
}, slice.title)), React.createElement(Box, {
|
|
1273
|
-
maxHeight: ['unset', null, null, 'xl'],
|
|
1274
|
-
paddingTop: ['0', null, null, '28'],
|
|
1275
|
-
paddingRight: ['0', null, null, '6'],
|
|
1276
|
-
overflowY: ['unset', null, null, 'scroll']
|
|
1277
|
-
}, React.createElement(Box, null, React.createElement(BoemlyAccordion, {
|
|
1278
|
-
rows: slice.questionsAndAnswers,
|
|
1279
|
-
defaultIndex: 0,
|
|
1280
|
-
variant: variant.accordionVariant
|
|
1281
|
-
}), React.createElement(Flex, {
|
|
1282
|
-
padding: "8",
|
|
1283
|
-
backgroundColor: variant.otherQuestionsBackground,
|
|
1284
|
-
borderRadius: "2xl",
|
|
1285
|
-
mt: "14",
|
|
1286
|
-
flexDir: ['column', null, null, 'row'],
|
|
1287
|
-
justifyContent: ['flex-start', null, null, 'space-between'],
|
|
1288
|
-
alignItems: ['flex-start', null, null, 'center']
|
|
1289
|
-
}, React.createElement(Heading, {
|
|
1290
|
-
as: "h6",
|
|
1291
|
-
size: "sm",
|
|
1292
|
-
color: "white"
|
|
1293
|
-
}, slice.otherQuestions), React.createElement(Spacer, {
|
|
1294
|
-
minHeight: ['4', null, null, '0']
|
|
1295
|
-
}), React.createElement(StrapiLinkButton, {
|
|
1296
|
-
size: "lg",
|
|
1297
|
-
colorScheme: "white",
|
|
1298
|
-
background: "white",
|
|
1299
|
-
rightIcon: React.createElement(ArrowRight, null),
|
|
1300
|
-
link: slice.button
|
|
1301
|
-
}))))))), slice.hero && React.createElement(Box, {
|
|
1302
|
-
pb: "28",
|
|
1303
|
-
mt: "-56"
|
|
1304
|
-
}, React.createElement(Wrapper, null, React.createElement(HeroCard, {
|
|
1305
|
-
title: slice.hero.title,
|
|
1306
|
-
subTitle: slice.hero.subTitle,
|
|
1307
|
-
link: slice.hero.button && {
|
|
1308
|
-
text: slice.hero.button.text,
|
|
1309
|
-
onClick: function onClick() {
|
|
1310
|
-
var _slice$hero;
|
|
1311
|
-
return push(strapiLinkUrl((_slice$hero = slice.hero) == null ? void 0 : _slice$hero.button));
|
|
1312
|
-
}
|
|
1313
|
-
},
|
|
1314
|
-
image: slice.hero.image && React.createElement(Image, {
|
|
1315
|
-
src: strapiMediaUrl(slice.hero.image.img, 'xLarge'),
|
|
1316
|
-
alt: slice.hero.image.alt,
|
|
1317
|
-
fill: true,
|
|
1318
|
-
style: {
|
|
1319
|
-
objectFit: slice.hero.image.objectFit || 'cover'
|
|
1320
|
-
}
|
|
1321
|
-
})
|
|
1322
|
-
}))));
|
|
1323
|
-
};
|
|
1324
|
-
|
|
1325
|
-
var QuoteCards = function QuoteCards(_ref) {
|
|
1326
|
-
var slice = _ref.slice;
|
|
1327
|
-
return React.createElement(React.Fragment, null, React.createElement(Box, {
|
|
1328
|
-
id: convertToKebabCase(slice.title),
|
|
1329
|
-
position: "relative",
|
|
1330
|
-
paddingTop: "28",
|
|
1331
|
-
paddingBottom: !!slice.hero ? '80' : '28'
|
|
1332
|
-
}, slice.shapes && slice.shapes.length === 2 && React.createElement(React.Fragment, null, React.createElement(Shape, {
|
|
1333
|
-
shape: React.createElement(Image, {
|
|
1334
|
-
src: strapiMediaUrl(slice.shapes[0].img, 'small'),
|
|
1335
|
-
alt: slice.shapes[0].alt,
|
|
1336
|
-
fill: true,
|
|
1337
|
-
style: {
|
|
1338
|
-
objectFit: slice.shapes[0].objectFit || 'cover'
|
|
1339
|
-
}
|
|
1340
|
-
}),
|
|
1341
|
-
top: "0",
|
|
1342
|
-
right: "0",
|
|
1343
|
-
size: "xs",
|
|
1344
|
-
radius: "bottom-left"
|
|
1345
|
-
}), React.createElement(Shape, {
|
|
1346
|
-
shape: React.createElement(Image, {
|
|
1347
|
-
src: strapiMediaUrl(slice.shapes[1].img, 'small'),
|
|
1348
|
-
alt: slice.shapes[1].alt,
|
|
1349
|
-
fill: true,
|
|
1350
|
-
style: {
|
|
1351
|
-
objectFit: slice.shapes[1].objectFit || 'cover'
|
|
1352
|
-
}
|
|
1353
|
-
}),
|
|
1354
|
-
bottom: "0",
|
|
1355
|
-
left: "0",
|
|
1356
|
-
radius: "top-right"
|
|
1357
|
-
})), React.createElement(Wrapper, null, React.createElement(Box, {
|
|
1358
|
-
maxW: "3xl"
|
|
1359
|
-
}, React.createElement(DefaultSectionHeader, {
|
|
1360
|
-
tagline: slice.tagline,
|
|
1361
|
-
title: slice.title,
|
|
1362
|
-
text: slice.text
|
|
1363
|
-
})), React.createElement(SimpleGrid, {
|
|
1364
|
-
columns: 2,
|
|
1365
|
-
gap: "20",
|
|
1366
|
-
rowGap: "6",
|
|
1367
|
-
mt: "16",
|
|
1368
|
-
minChildWidth: ['100%', null, '16rem']
|
|
1369
|
-
}, slice.cards.map(function (card) {
|
|
1370
|
-
return React.createElement(Box, {
|
|
1371
|
-
key: card.id,
|
|
1372
|
-
width: "full",
|
|
1373
|
-
maxWidth: "2xl"
|
|
1374
|
-
}, React.createElement(QuoteCard, {
|
|
1375
|
-
key: card.id,
|
|
1376
|
-
avatar: {
|
|
1377
|
-
name: card.avatar.name,
|
|
1378
|
-
description: card.avatar.description,
|
|
1379
|
-
image: React.createElement(Image, {
|
|
1380
|
-
src: strapiMediaUrl(card.avatar.image.img, 'small'),
|
|
1381
|
-
alt: card.avatar.image.alt,
|
|
1382
|
-
fill: true,
|
|
1383
|
-
style: {
|
|
1384
|
-
objectFit: card.avatar.image.objectFit || 'cover'
|
|
1385
|
-
}
|
|
1386
|
-
})
|
|
1387
|
-
},
|
|
1388
|
-
text: card.text
|
|
1389
|
-
}));
|
|
1390
|
-
})))), slice.hero && React.createElement(Box, {
|
|
1391
|
-
marginTop: "-40",
|
|
1392
|
-
paddingBottom: "28"
|
|
1393
|
-
}, React.createElement(Wrapper, null, React.createElement(HeroCard, {
|
|
1394
|
-
title: slice.hero.title,
|
|
1395
|
-
subTitle: slice.hero.subTitle,
|
|
1396
|
-
link: slice.hero.button && {
|
|
1397
|
-
text: slice.hero.button.text,
|
|
1398
|
-
onClick: function onClick() {
|
|
1399
|
-
var _slice$hero;
|
|
1400
|
-
return strapiLinkUrl((_slice$hero = slice.hero) == null ? void 0 : _slice$hero.button);
|
|
1401
|
-
}
|
|
1402
|
-
},
|
|
1403
|
-
image: slice.hero.image && React.createElement(Image, {
|
|
1404
|
-
src: strapiMediaUrl(slice.hero.image.img, 'xLarge'),
|
|
1405
|
-
alt: slice.hero.image.alt,
|
|
1406
|
-
fill: true,
|
|
1407
|
-
style: {
|
|
1408
|
-
objectFit: slice.hero.image.objectFit || 'cover'
|
|
1409
|
-
}
|
|
1410
|
-
})
|
|
1411
|
-
}))));
|
|
1412
|
-
};
|
|
1413
|
-
|
|
1414
|
-
var RichTextSection = function RichTextSection(_ref) {
|
|
1415
|
-
var slice = _ref.slice;
|
|
1416
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, React.createElement(Grid, {
|
|
1417
|
-
templateColumns: "repeat(12, 1fr)",
|
|
1418
|
-
gap: "4"
|
|
1419
|
-
}, React.createElement(GridItem, {
|
|
1420
|
-
colSpan: [12, null, null, 7]
|
|
1421
|
-
}, React.createElement(RichText, {
|
|
1422
|
-
content: slice.content
|
|
1423
|
-
})))));
|
|
1424
|
-
};
|
|
1425
|
-
|
|
1426
|
-
var Steps = function Steps(_ref) {
|
|
1427
|
-
var _slice$card$shapes;
|
|
1428
|
-
var slice = _ref.slice;
|
|
1429
|
-
var _useRouter = useRouter(),
|
|
1430
|
-
push = _useRouter.push;
|
|
1431
|
-
var _useToken = useToken('colors', ['gray.900']),
|
|
1432
|
-
gray900 = _useToken[0];
|
|
1433
|
-
var containerRef = useRef(null);
|
|
1434
|
-
var _useState = useState(new Array(slice.steps.length)),
|
|
1435
|
-
stepRefs = _useState[0],
|
|
1436
|
-
setStepRefs = _useState[1];
|
|
1437
|
-
var _useState2 = useState(new Array(slice.steps.length)),
|
|
1438
|
-
stepProgress = _useState2[0],
|
|
1439
|
-
setStepProgress = _useState2[1];
|
|
1440
|
-
var _useWindowScroll = useWindowScroll(),
|
|
1441
|
-
offsetY = _useWindowScroll.y;
|
|
1442
|
-
var _useWindowSize = useWindowSize(),
|
|
1443
|
-
windowHeight = _useWindowSize.height;
|
|
1444
|
-
useEffect(function () {
|
|
1445
|
-
setStepRefs(slice.steps.map(function () {
|
|
1446
|
-
return createRef();
|
|
1447
|
-
}));
|
|
1448
|
-
}, []);
|
|
1449
|
-
useEffect(function () {
|
|
1450
|
-
var _containerRef$current;
|
|
1451
|
-
var containerOffsetTop = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.offsetTop) || 0;
|
|
1452
|
-
setStepProgress(stepRefs.map(function (ref) {
|
|
1453
|
-
var _ref$current;
|
|
1454
|
-
var currentItemOffsetTop = ((_ref$current = ref.current) == null ? void 0 : _ref$current.offsetTop) || 0;
|
|
1455
|
-
return containerOffsetTop + currentItemOffsetTop < offsetY + windowHeight / 3 ? 100 : 0;
|
|
1456
|
-
}));
|
|
1457
|
-
}, [offsetY]);
|
|
1458
|
-
return React.createElement("div", {
|
|
1459
|
-
ref: containerRef
|
|
1460
|
-
}, React.createElement(DefaultSectionContainer, {
|
|
1461
|
-
backgroundColor: gray900,
|
|
1462
|
-
title: slice.title
|
|
1463
|
-
}, React.createElement(React.Fragment, null, slice.image && React.createElement(Box, {
|
|
1464
|
-
position: "absolute",
|
|
1465
|
-
top: "0",
|
|
1466
|
-
left: "0",
|
|
1467
|
-
width: "full",
|
|
1468
|
-
height: "full"
|
|
1469
|
-
}, React.createElement(Image, {
|
|
1470
|
-
src: strapiMediaUrl(slice.image.img, 'xLarge'),
|
|
1471
|
-
alt: slice.image.alt,
|
|
1472
|
-
fill: true,
|
|
1473
|
-
style: {
|
|
1474
|
-
objectFit: slice.image.objectFit || 'cover'
|
|
1475
|
-
}
|
|
1476
|
-
}), React.createElement(Gradient, null))), React.createElement(Wrapper, null, React.createElement(React.Fragment, null, React.createElement(DefaultSectionHeader, {
|
|
1477
|
-
tagline: slice.tagline,
|
|
1478
|
-
title: slice.title,
|
|
1479
|
-
text: slice.text,
|
|
1480
|
-
taglineProps: {
|
|
1481
|
-
textAlign: 'center'
|
|
1482
|
-
},
|
|
1483
|
-
titleProps: {
|
|
1484
|
-
textAlign: 'center',
|
|
1485
|
-
maxW: '2xl',
|
|
1486
|
-
marginX: 'auto',
|
|
1487
|
-
color: 'white'
|
|
1488
|
-
},
|
|
1489
|
-
textProps: {
|
|
1490
|
-
textAlign: 'center',
|
|
1491
|
-
maxW: 'xl',
|
|
1492
|
-
marginX: 'auto',
|
|
1493
|
-
color: 'whiteAlpha.800'
|
|
1494
|
-
}
|
|
1495
|
-
}), React.createElement(Box, {
|
|
1496
|
-
marginTop: ['16', null, '24']
|
|
1497
|
-
}, slice.steps.map(function (_ref2, index) {
|
|
1498
|
-
var id = _ref2.id,
|
|
1499
|
-
step = _ref2.step,
|
|
1500
|
-
title = _ref2.title,
|
|
1501
|
-
text = _ref2.text;
|
|
1502
|
-
return React.createElement(Flex, {
|
|
1503
|
-
flexDir: "column",
|
|
1504
|
-
alignItems: "center",
|
|
1505
|
-
key: id
|
|
1506
|
-
}, React.createElement(Center, {
|
|
1507
|
-
width: "10",
|
|
1508
|
-
height: "10",
|
|
1509
|
-
borderRadius: "full",
|
|
1510
|
-
backgroundColor: "white"
|
|
1511
|
-
}, React.createElement(Text, {
|
|
1512
|
-
size: "smRegularNormal",
|
|
1513
|
-
color: "black"
|
|
1514
|
-
}, step)), React.createElement(Heading, {
|
|
1515
|
-
size: "lg",
|
|
1516
|
-
color: "white",
|
|
1517
|
-
mt: "4",
|
|
1518
|
-
textAlign: "center"
|
|
1519
|
-
}, title), text && React.createElement(Box, {
|
|
1520
|
-
maxW: "xl",
|
|
1521
|
-
mt: "4"
|
|
1522
|
-
}, React.createElement(RichText, {
|
|
1523
|
-
options: {
|
|
1524
|
-
forceBlock: true
|
|
1525
|
-
},
|
|
1526
|
-
content: text,
|
|
1527
|
-
textProps: {
|
|
1528
|
-
size: 'mdRegularNormal',
|
|
1529
|
-
color: 'whiteAlpha.700',
|
|
1530
|
-
textAlign: 'center'
|
|
1531
|
-
}
|
|
1532
|
-
})), (index + 1 < slice.steps.length || slice.card) && React.createElement(Box, {
|
|
1533
|
-
ref: stepRefs[index],
|
|
1534
|
-
position: "relative",
|
|
1535
|
-
marginTop: "4",
|
|
1536
|
-
marginBottom: "6",
|
|
1537
|
-
height: "12"
|
|
1538
|
-
}, React.createElement(Box, {
|
|
1539
|
-
position: "absolute",
|
|
1540
|
-
height: "full",
|
|
1541
|
-
borderLeft: "dashed 1px white",
|
|
1542
|
-
opacity: "0.5"
|
|
1543
|
-
}), React.createElement(Box, {
|
|
1544
|
-
position: "absolute",
|
|
1545
|
-
height: stepProgress[index] + "%",
|
|
1546
|
-
borderRight: "solid 1px white",
|
|
1547
|
-
opacity: "1",
|
|
1548
|
-
transition: "height ease var(--medium-transition-duration)"
|
|
1549
|
-
})));
|
|
1550
|
-
})), slice.card && React.createElement(ShapesCard, {
|
|
1551
|
-
tagline: slice.card.tagline,
|
|
1552
|
-
title: slice.card.title,
|
|
1553
|
-
text: slice.card.text,
|
|
1554
|
-
shapes: slice.card.shapes && ((_slice$card$shapes = slice.card.shapes) == null ? void 0 : _slice$card$shapes.map(function (shape) {
|
|
1555
|
-
return React.createElement(Image, {
|
|
1556
|
-
src: strapiMediaUrl(shape.img, 'small'),
|
|
1557
|
-
alt: shape.alt,
|
|
1558
|
-
fill: true,
|
|
1559
|
-
style: {
|
|
1560
|
-
objectFit: shape.objectFit || 'cover'
|
|
1561
|
-
}
|
|
1562
|
-
});
|
|
1563
|
-
})),
|
|
1564
|
-
button: slice.card.button && {
|
|
1565
|
-
text: slice.card.button.text,
|
|
1566
|
-
onClick: function onClick() {
|
|
1567
|
-
var _slice$card;
|
|
1568
|
-
return push(strapiLinkUrl((_slice$card = slice.card) == null ? void 0 : _slice$card.button));
|
|
1569
|
-
}
|
|
1570
|
-
}
|
|
1571
|
-
})))));
|
|
1572
|
-
};
|
|
1573
|
-
|
|
1574
|
-
var _oppositesOfCorners, _templateObject$6, _templateObject2$3;
|
|
1575
|
-
var ShapePosition;
|
|
1576
|
-
(function (ShapePosition) {
|
|
1577
|
-
ShapePosition["topLeft"] = "top-left";
|
|
1578
|
-
ShapePosition["topRight"] = "top-right";
|
|
1579
|
-
ShapePosition["bottomLeft"] = "bottom-left";
|
|
1580
|
-
ShapePosition["bottomRight"] = "bottom-right";
|
|
1581
|
-
ShapePosition["unset"] = "unset";
|
|
1582
|
-
})(ShapePosition || (ShapePosition = {}));
|
|
1583
|
-
var shapePositions = [ShapePosition.topLeft, ShapePosition.bottomRight, ShapePosition.topRight, ShapePosition.bottomLeft, ShapePosition.topRight, ShapePosition.bottomLeft, ShapePosition.topLeft, ShapePosition.bottomRight];
|
|
1584
|
-
var oppositesOfCorners = (_oppositesOfCorners = {}, _oppositesOfCorners[ShapePosition.bottomLeft] = ShapePosition.topRight, _oppositesOfCorners[ShapePosition.topRight] = ShapePosition.bottomLeft, _oppositesOfCorners[ShapePosition.bottomRight] = ShapePosition.topLeft, _oppositesOfCorners[ShapePosition.topLeft] = ShapePosition.bottomRight, _oppositesOfCorners[ShapePosition.unset] = ShapePosition.unset, _oppositesOfCorners);
|
|
1585
|
-
var variants = {
|
|
1586
|
-
shape: {
|
|
1587
|
-
padding: ['6', null, null, '8'],
|
|
1588
|
-
positionIcon: function positionIcon(index) {
|
|
1589
|
-
return shapePositions[index];
|
|
1590
|
-
},
|
|
1591
|
-
width: '40',
|
|
1592
|
-
height: '40',
|
|
1593
|
-
position: 'absolute',
|
|
1594
|
-
mb: 'unset'
|
|
1595
|
-
},
|
|
1596
|
-
image: {
|
|
1597
|
-
padding: ['6', null, null, '8'],
|
|
1598
|
-
positionIcon: function positionIcon() {
|
|
1599
|
-
return ShapePosition.unset;
|
|
1600
|
-
},
|
|
1601
|
-
width: '24',
|
|
1602
|
-
height: '24',
|
|
1603
|
-
position: 'relative',
|
|
1604
|
-
mb: '10'
|
|
1605
|
-
}
|
|
1606
|
-
};
|
|
1607
|
-
var TextCardGrid = function TextCardGrid(_ref) {
|
|
1608
|
-
var slice = _ref.slice;
|
|
1609
|
-
var _useToken = useToken('colors', ['primary.800']),
|
|
1610
|
-
primary800 = _useToken[0];
|
|
1611
|
-
return React.createElement(DefaultSectionContainer, {
|
|
1612
|
-
backgroundColor: primary800,
|
|
1613
|
-
title: slice.title
|
|
1614
|
-
}, React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
|
|
1615
|
-
tagline: slice.tagline,
|
|
1616
|
-
title: slice.title,
|
|
1617
|
-
text: slice.text,
|
|
1618
|
-
taglineProps: {
|
|
1619
|
-
textAlign: 'center',
|
|
1620
|
-
color: 'white'
|
|
1621
|
-
},
|
|
1622
|
-
titleProps: {
|
|
1623
|
-
textAlign: 'center',
|
|
1624
|
-
maxW: '2xl',
|
|
1625
|
-
marginX: 'auto',
|
|
1626
|
-
color: 'white'
|
|
1627
|
-
},
|
|
1628
|
-
textProps: {
|
|
1629
|
-
textAlign: 'center',
|
|
1630
|
-
maxW: 'xl',
|
|
1631
|
-
marginX: 'auto',
|
|
1632
|
-
color: 'whiteAlpha.800'
|
|
1633
|
-
}
|
|
1634
|
-
}), React.createElement(SimpleGrid, {
|
|
1635
|
-
mt: ['14', null, null, '24'],
|
|
1636
|
-
columns: 3,
|
|
1637
|
-
justifyItems: "center",
|
|
1638
|
-
gap: "20",
|
|
1639
|
-
rowGap: "16",
|
|
1640
|
-
minChildWidth: ['100%', null, '16rem']
|
|
1641
|
-
}, slice.cards.map(function (_ref2, index) {
|
|
1642
|
-
var id = _ref2.id,
|
|
1643
|
-
tagline = _ref2.tagline,
|
|
1644
|
-
title = _ref2.title,
|
|
1645
|
-
text = _ref2.text,
|
|
1646
|
-
image = _ref2.image,
|
|
1647
|
-
buttons = _ref2.buttons;
|
|
1648
|
-
return React.createElement(Box, {
|
|
1649
|
-
key: id,
|
|
1650
|
-
backgroundColor: "white",
|
|
1651
|
-
zIndex: "base",
|
|
1652
|
-
padding: variants[slice.variant].padding,
|
|
1653
|
-
boxShadow: "lg",
|
|
1654
|
-
borderRadius: "2xl",
|
|
1655
|
-
minHeight: "2xs",
|
|
1656
|
-
width: "full",
|
|
1657
|
-
maxWidth: slice.cards.length > 1 ? 'unset' : 'xl',
|
|
1658
|
-
position: "relative",
|
|
1659
|
-
display: "flex",
|
|
1660
|
-
flexDir: "column",
|
|
1661
|
-
alignItems: "flex-start",
|
|
1662
|
-
justifyContent: slice.variant === 'shape' ? 'flex-end' : 'flex-start',
|
|
1663
|
-
overflow: "hidden"
|
|
1664
|
-
}, React.createElement(Box, {
|
|
1665
|
-
position: variants[slice.variant].position,
|
|
1666
|
-
width: variants[slice.variant].width,
|
|
1667
|
-
height: variants[slice.variant].height,
|
|
1668
|
-
mb: variants[slice.variant].mb,
|
|
1669
|
-
top: variants[slice.variant].positionIcon(index).includes('top') ? '-4' : 'unset',
|
|
1670
|
-
left: variants[slice.variant].positionIcon(index).includes('left') ? '-4' : 'unset',
|
|
1671
|
-
right: variants[slice.variant].positionIcon(index).includes('right') ? '-4' : 'unset',
|
|
1672
|
-
bottom: variants[slice.variant].positionIcon(index).includes('bottom') ? '-4' : 'unset',
|
|
1673
|
-
borderBottomRightRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('bottomRight') ? 'full' : 'unset',
|
|
1674
|
-
borderBottomLeftRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('bottomLeft') ? 'full' : 'unset',
|
|
1675
|
-
borderTopRightRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('topRight') ? 'full' : 'unset',
|
|
1676
|
-
borderTopLeftRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('topLeft') ? 'full' : 'unset',
|
|
1677
|
-
css: variants[slice.variant].positionIcon(index).includes('unset') ? css(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteralLoose(["\n & span,\n div,\n img {\n border-radius: var(--boemly-radii-xl);\n }\n "]))) : css(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteralLoose(["\n & span,\n div,\n img {\n border-", "-radius: var(--boemly-radii-full);\n }\n "])), oppositesOfCorners[variants[slice.variant].positionIcon(index)])
|
|
1678
|
-
}, React.createElement(Image, {
|
|
1679
|
-
src: strapiMediaUrl(image.img, 'small'),
|
|
1680
|
-
alt: image.alt,
|
|
1681
|
-
fill: true,
|
|
1682
|
-
style: {
|
|
1683
|
-
objectFit: image.objectFit || 'cover'
|
|
1684
|
-
}
|
|
1685
|
-
})), React.createElement(Box, {
|
|
1686
|
-
zIndex: "aboveBase",
|
|
1687
|
-
width: "full"
|
|
1688
|
-
}, tagline && React.createElement(Text, {
|
|
1689
|
-
color: "black",
|
|
1690
|
-
size: "smMonoNormal",
|
|
1691
|
-
mb: "2"
|
|
1692
|
-
}, tagline), React.createElement(Heading, {
|
|
1693
|
-
as: "h4",
|
|
1694
|
-
size: "xl",
|
|
1695
|
-
mb: "3"
|
|
1696
|
-
}, title), React.createElement(RichText, {
|
|
1697
|
-
content: text,
|
|
1698
|
-
listProps: {
|
|
1699
|
-
textColor: 'gray.500',
|
|
1700
|
-
textSize: 'smRegularNormal'
|
|
1701
|
-
},
|
|
1702
|
-
textProps: {
|
|
1703
|
-
color: 'gray.500',
|
|
1704
|
-
size: 'smRegularNormal'
|
|
1705
|
-
}
|
|
1706
|
-
}), buttons && !!buttons.length && React.createElement(Flex, {
|
|
1707
|
-
mt: "4",
|
|
1708
|
-
gap: "3",
|
|
1709
|
-
flexDir: ['column', null, null, null, 'row']
|
|
1710
|
-
}, buttons.map(function (button, buttonIndex) {
|
|
1711
|
-
return React.createElement(StrapiLinkButton, {
|
|
1712
|
-
key: button.id,
|
|
1713
|
-
link: button,
|
|
1714
|
-
size: "sm",
|
|
1715
|
-
rightIcon: buttonIndex === 0 ? React.createElement(CaretRight, {
|
|
1716
|
-
size: "10",
|
|
1717
|
-
weight: "bold"
|
|
1718
|
-
}) : undefined,
|
|
1719
|
-
variant: buttonIndex === 0 ? 'outline' : 'ghost'
|
|
1720
|
-
});
|
|
1721
|
-
}))));
|
|
1722
|
-
}))));
|
|
1723
|
-
};
|
|
1724
|
-
|
|
1725
|
-
var _templateObject$5, _templateObject2$2, _templateObject3$1;
|
|
1726
|
-
var CarouselContainer = /*#__PURE__*/styled(Box)(_templateObject$5 || (_templateObject$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n overflow-x: scroll;\n\n margin-top: var(--boemly-space-6);\n padding: var(--boemly-space-8) 0;\n\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n @media screen and (max-width: ", ") {\n margin-top: var(--boemly-space-4);\n }\n"])), BREAKPOINT_MD);
|
|
1727
|
-
var CarouselInnerContainer = /*#__PURE__*/styled(motion.div)(_templateObject2$2 || (_templateObject2$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n width: calc(\n (var(--boemly-sizes-sm) + var(--boemly-space-16)) *\n ", " +\n var(--boemly-space-16)\n );\n min-width: var(--boemly-sizes-full);\n\n @media screen and (max-width: ", ") {\n width: calc(\n (var(--boemly-sizes-xs) + var(--boemly-space-4)) *\n ", " +\n var(--boemly-space-6)\n );\n }\n"])), function (_ref) {
|
|
1728
|
-
var numberOfItems = _ref.numberOfItems;
|
|
1729
|
-
return numberOfItems;
|
|
1730
|
-
}, BREAKPOINT_MD, function (_ref2) {
|
|
1731
|
-
var numberOfItems = _ref2.numberOfItems;
|
|
1732
|
-
return numberOfItems;
|
|
1733
|
-
});
|
|
1734
|
-
var CardContainer = /*#__PURE__*/styled(Box)(_templateObject3$1 || (_templateObject3$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: ", ";\n\n margin-right: var(--boemly-space-16);\n\n &:first-of-type {\n margin-left: var(--boemly-space-16);\n }\n\n @media screen and (max-width: ", ") {\n width: var(--boemly-sizes-xs);\n\n margin-right: var(--boemly-space-4);\n\n &:first-of-type {\n margin-left: var(--boemly-space-6);\n }\n }\n"])), function (_ref3) {
|
|
1735
|
-
var numberOfItems = _ref3.numberOfItems;
|
|
1736
|
-
return numberOfItems === 3 ? 'var(--boemly-sizes-xl)' : 'var(--boemly-sizes-sm)';
|
|
1737
|
-
}, BREAKPOINT_MD);
|
|
1738
|
-
|
|
1739
|
-
var TextCarousel = function TextCarousel(_ref) {
|
|
1740
|
-
var slice = _ref.slice;
|
|
1741
|
-
var _useToken = useToken('colors', ['primary.50']),
|
|
1742
|
-
primary50 = _useToken[0];
|
|
1743
|
-
var containerRef = useRef(null);
|
|
1744
|
-
return React.createElement(DefaultSectionContainer, {
|
|
1745
|
-
backgroundColor: primary50,
|
|
1746
|
-
title: slice.title
|
|
1747
|
-
}, React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
|
|
1748
|
-
tagline: slice.tagline,
|
|
1749
|
-
title: slice.title,
|
|
1750
|
-
text: slice.text,
|
|
1751
|
-
taglineProps: {
|
|
1752
|
-
textAlign: 'center'
|
|
1753
|
-
},
|
|
1754
|
-
titleProps: {
|
|
1755
|
-
textAlign: 'center',
|
|
1756
|
-
maxW: '6xl',
|
|
1757
|
-
marginX: 'auto'
|
|
1758
|
-
},
|
|
1759
|
-
textProps: {
|
|
1760
|
-
textAlign: 'center',
|
|
1761
|
-
maxW: '2xl',
|
|
1762
|
-
marginX: 'auto'
|
|
1763
|
-
}
|
|
1764
|
-
})), React.createElement(CarouselContainer, {
|
|
1765
|
-
ref: containerRef
|
|
1766
|
-
}, React.createElement(CarouselInnerContainer, {
|
|
1767
|
-
drag: "x",
|
|
1768
|
-
dragConstraints: containerRef,
|
|
1769
|
-
numberOfItems: slice.slides.length
|
|
1770
|
-
}, slice.slides.map(function (_ref2) {
|
|
1771
|
-
var id = _ref2.id,
|
|
1772
|
-
title = _ref2.title,
|
|
1773
|
-
text = _ref2.text,
|
|
1774
|
-
icon = _ref2.icon;
|
|
1775
|
-
return React.createElement(CardContainer, {
|
|
1776
|
-
key: id,
|
|
1777
|
-
numberOfItems: slice.slides.length
|
|
1778
|
-
}, React.createElement(TextCardWithIcon, {
|
|
1779
|
-
title: title,
|
|
1780
|
-
text: text,
|
|
1781
|
-
icon: React.createElement(Image, {
|
|
1782
|
-
src: strapiMediaUrl(icon.img, 'small'),
|
|
1783
|
-
alt: icon.alt,
|
|
1784
|
-
fill: true,
|
|
1785
|
-
style: {
|
|
1786
|
-
objectFit: icon.objectFit || 'contain'
|
|
1787
|
-
}
|
|
1788
|
-
}),
|
|
1789
|
-
displayAs: "column"
|
|
1790
|
-
}));
|
|
1791
|
-
}))), React.createElement(React.Fragment, null, slice.button && React.createElement(Wrapper, null, React.createElement(Center, null, React.createElement(StrapiLinkButton, {
|
|
1792
|
-
link: slice.button,
|
|
1793
|
-
size: "xl",
|
|
1794
|
-
mt: ['8', null, '14']
|
|
1795
|
-
})))));
|
|
1796
|
-
};
|
|
1797
|
-
|
|
1798
|
-
var TextWithTextCards = function TextWithTextCards(_ref) {
|
|
1799
|
-
var slice = _ref.slice;
|
|
1800
|
-
var _useRouter = useRouter(),
|
|
1801
|
-
push = _useRouter.push;
|
|
1802
|
-
var _useToken = useToken('colors', ['white']),
|
|
1803
|
-
white = _useToken[0];
|
|
1804
|
-
var _useMediaQuery = useMediaQuery(BREAKPOINT_LG_QUERY),
|
|
1805
|
-
belowBreakpoint = _useMediaQuery[0];
|
|
1806
|
-
return React.createElement(DefaultSectionContainer, {
|
|
1807
|
-
backgroundColor: white,
|
|
1808
|
-
title: slice.title
|
|
1809
|
-
}, React.createElement(React.Fragment, null, slice.shape && React.createElement(Box, {
|
|
1810
|
-
position: "absolute",
|
|
1811
|
-
right: ['-28', null, null, '-136'],
|
|
1812
|
-
top: ['96', null, null, '-28'],
|
|
1813
|
-
width: ['sm', null, null, '4xl'],
|
|
1814
|
-
height: ['sm', null, null, '4xl'],
|
|
1815
|
-
borderBottomRightRadius: "full"
|
|
1816
|
-
}, React.createElement(Image, {
|
|
1817
|
-
src: strapiMediaUrl(slice.shape.img, 'medium'),
|
|
1818
|
-
alt: slice.shape.alt,
|
|
1819
|
-
fill: true,
|
|
1820
|
-
style: {
|
|
1821
|
-
objectFit: slice.shape.objectFit || 'cover',
|
|
1822
|
-
borderBottomRightRadius: 'var(--boemly-radii-full)'
|
|
1823
|
-
}
|
|
1824
|
-
}))), React.createElement(Wrapper, null, React.createElement(React.Fragment, null, React.createElement(Grid, {
|
|
1825
|
-
templateColumns: ['repeat(8, 1fr)', null, null, null, 'repeat(16, 1fr)'],
|
|
1826
|
-
templateRows: ['repeat(2, auto)', null, null, null, 'repeat(1, auto)'],
|
|
1827
|
-
rowGap: "12"
|
|
1828
|
-
}, React.createElement(GridItem, {
|
|
1829
|
-
colSpan: [8, null, null, null, 9],
|
|
1830
|
-
rowSpan: 1,
|
|
1831
|
-
pr: ['0', null, null, null, '32']
|
|
1832
|
-
}, React.createElement(DefaultSectionHeader, {
|
|
1833
|
-
tagline: slice.tagline,
|
|
1834
|
-
title: slice.title,
|
|
1835
|
-
text: slice.text,
|
|
1836
|
-
textProps: {
|
|
1837
|
-
pr: ['0', null, null, null, '10']
|
|
1838
|
-
}
|
|
1839
|
-
}), slice.contact && !belowBreakpoint && React.createElement(ContactArea, {
|
|
1840
|
-
title: slice.contact.title,
|
|
1841
|
-
text: slice.contact.text,
|
|
1842
|
-
avatar: {
|
|
1843
|
-
name: slice.contact.avatar.name,
|
|
1844
|
-
description: slice.contact.avatar.description,
|
|
1845
|
-
image: React.createElement(Image, {
|
|
1846
|
-
src: strapiMediaUrl(slice.contact.avatar.image.img, 'small'),
|
|
1847
|
-
alt: slice.contact.avatar.image.alt,
|
|
1848
|
-
fill: true,
|
|
1849
|
-
style: {
|
|
1850
|
-
objectFit: slice.contact.avatar.image.objectFit || 'cover'
|
|
1851
|
-
}
|
|
1852
|
-
})
|
|
1853
|
-
},
|
|
1854
|
-
link: {
|
|
1855
|
-
text: slice.contact.button.text,
|
|
1856
|
-
onClick: function onClick() {
|
|
1857
|
-
var _slice$contact;
|
|
1858
|
-
return push(strapiLinkUrl((_slice$contact = slice.contact) == null ? void 0 : _slice$contact.button));
|
|
1859
|
-
}
|
|
1860
|
-
}
|
|
1861
|
-
})), React.createElement(GridItem, {
|
|
1862
|
-
colSpan: [8, null, null, null, 7],
|
|
1863
|
-
rowSpan: 1,
|
|
1864
|
-
position: "relative"
|
|
1865
|
-
}, slice.cards.map(function (card) {
|
|
1866
|
-
return React.createElement(TextCardWithIcon, {
|
|
1867
|
-
key: card.id,
|
|
1868
|
-
title: card.title,
|
|
1869
|
-
text: card.text,
|
|
1870
|
-
icon: React.createElement(Image, {
|
|
1871
|
-
src: strapiMediaUrl(card.icon.img, 'small'),
|
|
1872
|
-
alt: card.icon.alt,
|
|
1873
|
-
fill: true,
|
|
1874
|
-
style: {
|
|
1875
|
-
objectFit: card.icon.objectFit || 'contain'
|
|
1876
|
-
}
|
|
1877
|
-
})
|
|
1878
|
-
});
|
|
1879
|
-
}))), slice.contact && belowBreakpoint && React.createElement(ContactArea, {
|
|
1880
|
-
title: slice.contact.title,
|
|
1881
|
-
text: slice.contact.text,
|
|
1882
|
-
avatar: {
|
|
1883
|
-
name: slice.contact.avatar.name,
|
|
1884
|
-
description: slice.contact.avatar.description,
|
|
1885
|
-
image: React.createElement(Image, {
|
|
1886
|
-
src: strapiMediaUrl(slice.contact.avatar.image.img, 'small'),
|
|
1887
|
-
alt: slice.contact.avatar.image.alt,
|
|
1888
|
-
fill: true,
|
|
1889
|
-
style: {
|
|
1890
|
-
objectFit: slice.contact.avatar.image.objectFit || 'cover'
|
|
1891
|
-
}
|
|
1892
|
-
})
|
|
1893
|
-
},
|
|
1894
|
-
link: {
|
|
1895
|
-
text: slice.contact.button.text,
|
|
1896
|
-
onClick: function onClick() {
|
|
1897
|
-
var _slice$contact2;
|
|
1898
|
-
return push(strapiLinkUrl((_slice$contact2 = slice.contact) == null ? void 0 : _slice$contact2.button));
|
|
1899
|
-
}
|
|
1900
|
-
}
|
|
1901
|
-
}))));
|
|
1902
|
-
};
|
|
1903
|
-
|
|
1904
|
-
var TextWithCard = function TextWithCard(_ref) {
|
|
1905
|
-
var slice = _ref.slice;
|
|
1906
|
-
var card = React.createElement(GridItem, {
|
|
1907
|
-
colSpan: [4, null, null, null, 2],
|
|
1908
|
-
rowSpan: 1,
|
|
1909
|
-
position: "relative",
|
|
1910
|
-
"data-testid": "card-position-" + slice.cardPosition
|
|
1911
|
-
}, slice.card && React.createElement(ProjectCard, {
|
|
1912
|
-
facts: slice.card.facts,
|
|
1913
|
-
footerSubTitle: slice.card.footerSubTitle,
|
|
1914
|
-
footerTitle: slice.card.footerTitle,
|
|
1915
|
-
title: slice.card.title,
|
|
1916
|
-
image: React.createElement(Image, {
|
|
1917
|
-
src: strapiMediaUrl(slice.card.image.img, 'medium'),
|
|
1918
|
-
alt: slice.card.image.alt,
|
|
1919
|
-
fill: true,
|
|
1920
|
-
style: {
|
|
1921
|
-
objectFit: slice.card.image.objectFit || 'cover'
|
|
1922
|
-
}
|
|
1923
|
-
})
|
|
1924
|
-
}));
|
|
1925
|
-
return React.createElement(DefaultSectionContainer, {
|
|
1926
|
-
title: slice.title
|
|
1927
|
-
}, React.createElement(Wrapper, null, React.createElement(Grid, {
|
|
1928
|
-
templateColumns: ['repeat(4, auto)', null, null, null, 'repeat(6, auto)'],
|
|
1929
|
-
templateRows: ['repeat(2, auto)', null, null, null, 'repeat(1, auto)'],
|
|
1930
|
-
rowGap: "12",
|
|
1931
|
-
columnGap: ['0', null, null, null, '28']
|
|
1932
|
-
}, slice.cardPosition === 'left' && card, React.createElement(GridItem, {
|
|
1933
|
-
colSpan: 4,
|
|
1934
|
-
rowSpan: 1,
|
|
1935
|
-
position: "relative"
|
|
1936
|
-
}, React.createElement(DefaultSectionHeader, {
|
|
1937
|
-
tagline: slice.tagline,
|
|
1938
|
-
title: slice.title,
|
|
1939
|
-
text: slice.text
|
|
1940
|
-
}), slice.listItems && React.createElement(React.Fragment, null, React.createElement(Spacer, {
|
|
1941
|
-
height: "10"
|
|
1942
|
-
}), React.createElement(BoemlyList, {
|
|
1943
|
-
listItems: slice.listItems
|
|
1944
|
-
}), React.createElement(Spacer, {
|
|
1945
|
-
height: "10"
|
|
1946
|
-
})), slice.button && React.createElement(StrapiLinkButton, {
|
|
1947
|
-
link: slice.button,
|
|
1948
|
-
size: "md",
|
|
1949
|
-
colorScheme: "white",
|
|
1950
|
-
variant: "outline",
|
|
1951
|
-
rightIcon: React.createElement(ArrowRight, null)
|
|
1952
|
-
})), slice.cardPosition === 'right' && card)));
|
|
1953
|
-
};
|
|
1954
|
-
|
|
1955
|
-
var MEDIUM_TRANSITION_DURATION = 0.2;
|
|
1956
|
-
|
|
1957
|
-
var LinkCardsGrid = function LinkCardsGrid(_ref) {
|
|
1958
|
-
var slice = _ref.slice;
|
|
1959
|
-
return React.createElement(DefaultSectionContainer, {
|
|
1960
|
-
title: slice.title
|
|
1961
|
-
}, React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
|
|
1962
|
-
tagline: slice.tagline,
|
|
1963
|
-
title: slice.title,
|
|
1964
|
-
text: slice.text
|
|
1965
|
-
}), React.createElement(SimpleGrid, {
|
|
1966
|
-
mt: "16",
|
|
1967
|
-
columns: [1, null, null, null, 2],
|
|
1968
|
-
gap: "4"
|
|
1969
|
-
}, slice.cards.map(function (_ref2) {
|
|
1970
|
-
var id = _ref2.id,
|
|
1971
|
-
title = _ref2.title,
|
|
1972
|
-
text = _ref2.text,
|
|
1973
|
-
link = _ref2.link;
|
|
1974
|
-
return React.createElement(Box, {
|
|
1975
|
-
key: id,
|
|
1976
|
-
as: Link,
|
|
1977
|
-
href: strapiLinkUrl(link),
|
|
1978
|
-
"data-testid": "link",
|
|
1979
|
-
px: "10",
|
|
1980
|
-
py: "8",
|
|
1981
|
-
borderStyle: "solid",
|
|
1982
|
-
borderWidth: "thin",
|
|
1983
|
-
borderColor: "gray.200",
|
|
1984
|
-
borderRadius: "2xl",
|
|
1985
|
-
display: "flex",
|
|
1986
|
-
flexDir: "row",
|
|
1987
|
-
alignItems: "center",
|
|
1988
|
-
justifyContent: "space-between",
|
|
1989
|
-
cursor: "pointer",
|
|
1990
|
-
transitionDuration: MEDIUM_TRANSITION_DURATION + "s",
|
|
1991
|
-
_hover: {
|
|
1992
|
-
backgroundColor: 'gray.50'
|
|
1993
|
-
}
|
|
1994
|
-
}, React.createElement("div", null, React.createElement(Heading, {
|
|
1995
|
-
as: "h4",
|
|
1996
|
-
size: "lg"
|
|
1997
|
-
}, title), text && React.createElement(Text, {
|
|
1998
|
-
mt: "2",
|
|
1999
|
-
size: "smRegularNormal"
|
|
2000
|
-
}, text)), React.createElement(Box, {
|
|
2001
|
-
display: "flex",
|
|
2002
|
-
alignItems: "center",
|
|
2003
|
-
justifyContent: "center",
|
|
2004
|
-
borderStyle: "solid",
|
|
2005
|
-
borderWidth: "thin",
|
|
2006
|
-
borderColor: "gray.200",
|
|
2007
|
-
borderRadius: "2xl",
|
|
2008
|
-
height: "12",
|
|
2009
|
-
width: "12",
|
|
2010
|
-
minWidth: "12",
|
|
2011
|
-
minHeight: "12",
|
|
2012
|
-
ml: "6",
|
|
2013
|
-
backgroundColor: "white"
|
|
2014
|
-
}, React.createElement(CaretRight, null)));
|
|
2015
|
-
}))));
|
|
2016
|
-
};
|
|
2017
|
-
|
|
2018
|
-
var colors = {
|
|
2019
|
-
dark: {
|
|
2020
|
-
tagline: 'white',
|
|
2021
|
-
title: 'white',
|
|
2022
|
-
text: 'white',
|
|
2023
|
-
background: 'gray.900'
|
|
2024
|
-
},
|
|
2025
|
-
light: {
|
|
2026
|
-
tagline: 'primary.500',
|
|
2027
|
-
title: 'black',
|
|
2028
|
-
text: 'gray.500',
|
|
2029
|
-
background: 'primary.50'
|
|
2030
|
-
}
|
|
2031
|
-
};
|
|
2032
|
-
var SmallHero = function SmallHero(_ref) {
|
|
2033
|
-
var slice = _ref.slice,
|
|
2034
|
-
theme = _ref.theme;
|
|
2035
|
-
return React.createElement(Box, {
|
|
2036
|
-
position: "relative",
|
|
2037
|
-
width: "full",
|
|
2038
|
-
height: "xl",
|
|
2039
|
-
backgroundColor: colors[theme].background
|
|
2040
|
-
}, slice.image && React.createElement(React.Fragment, null, React.createElement(Image, {
|
|
2041
|
-
src: strapiMediaUrl(slice.image.img, 'xLarge'),
|
|
2042
|
-
alt: slice.image.alt,
|
|
2043
|
-
fill: true,
|
|
2044
|
-
style: {
|
|
2045
|
-
objectFit: slice.image.objectFit || 'cover'
|
|
2046
|
-
}
|
|
2047
|
-
}), slice.gradient && React.createElement(Gradient, null)), React.createElement(Box, {
|
|
2048
|
-
position: "absolute",
|
|
2049
|
-
left: "0",
|
|
2050
|
-
top: "60%",
|
|
2051
|
-
width: "full",
|
|
2052
|
-
textAlign: "center",
|
|
2053
|
-
transform: "translateY(-50%)"
|
|
2054
|
-
}, React.createElement(Wrapper, null, React.createElement(React.Fragment, null, slice.tags && React.createElement(Flex, {
|
|
2055
|
-
direction: "row",
|
|
2056
|
-
justify: "center",
|
|
2057
|
-
gap: "2",
|
|
2058
|
-
mb: "4",
|
|
2059
|
-
wrap: "wrap"
|
|
2060
|
-
}, slice.tags.map(function (_ref2) {
|
|
2061
|
-
var id = _ref2.id,
|
|
2062
|
-
text = _ref2.text,
|
|
2063
|
-
colorScheme = _ref2.colorScheme;
|
|
2064
|
-
return React.createElement(Tag, {
|
|
2065
|
-
key: id,
|
|
2066
|
-
colorScheme: colorScheme,
|
|
2067
|
-
size: "md",
|
|
2068
|
-
variant: "subtle"
|
|
2069
|
-
}, text);
|
|
2070
|
-
})), React.createElement(DefaultSectionHeader, {
|
|
2071
|
-
isHero: true,
|
|
2072
|
-
tagline: slice.tagline,
|
|
2073
|
-
title: slice.title,
|
|
2074
|
-
text: slice.subTitle,
|
|
2075
|
-
taglineProps: {
|
|
2076
|
-
color: colors[theme].tagline,
|
|
2077
|
-
textAlign: 'center',
|
|
2078
|
-
mx: 'auto'
|
|
2079
|
-
},
|
|
2080
|
-
titleProps: {
|
|
2081
|
-
color: colors[theme].title,
|
|
2082
|
-
maxW: '4xl',
|
|
2083
|
-
textAlign: 'center',
|
|
2084
|
-
mx: 'auto'
|
|
2085
|
-
},
|
|
2086
|
-
textProps: {
|
|
2087
|
-
maxW: '2xl',
|
|
2088
|
-
textAlign: 'center',
|
|
2089
|
-
mx: 'auto',
|
|
2090
|
-
color: colors[theme].text
|
|
2091
|
-
}
|
|
2092
|
-
}), slice.button && React.createElement(StrapiLinkButton, {
|
|
2093
|
-
link: slice.button,
|
|
2094
|
-
mt: "6",
|
|
2095
|
-
size: "lg"
|
|
2096
|
-
})))));
|
|
2097
|
-
};
|
|
2098
|
-
|
|
2099
|
-
var _templateObject$4, _templateObject2$1;
|
|
2100
|
-
var BlogItemContainer = /*#__PURE__*/styled(Link$1)(_templateObject$4 || (_templateObject$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n text-decoration: none;\n\n & div img {\n transition: transform var(--default-ease) var(--medium-transition-duration);\n }\n\n &:hover {\n text-decoration: none;\n\n & > div:first-of-type img {\n transform: scale(1.03);\n }\n }\n"])));
|
|
2101
|
-
var ImageContainer$1 = /*#__PURE__*/styled(Box)(_templateObject2$1 || (_templateObject2$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 100%;\n height: var(--boemly-sizes-xs);\n position: relative;\n border-radius: var(--boemly-radii-2xl);\n\n // Fixes the flickering of borders during animation in Safari\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n & span,\n div {\n border-radius: var(--boemly-radii-2xl);\n }\n\n @media screen and (max-width: ", ") {\n height: var(--boemly-sizes-3xs);\n }\n"])), BREAKPOINT_MD);
|
|
2102
|
-
|
|
2103
|
-
var comparisonMessagesDe = {
|
|
2104
|
-
'sections.comparison.backgroundShapes': 'Hintergrundformen'
|
|
2105
|
-
};
|
|
2106
|
-
|
|
2107
|
-
var ctaMessagesDe = {
|
|
2108
|
-
'sections.cta.backgroundShapes': 'Dunkle Hintergrundformen',
|
|
2109
|
-
'sections.cta.backgroundShapesLight': 'Helle Hintergrundformen'
|
|
2110
|
-
};
|
|
2111
|
-
|
|
2112
|
-
var customerStoriesDe = {
|
|
2113
|
-
'sections.customerStories.more': 'Weiterlesen'
|
|
2114
|
-
};
|
|
2115
|
-
|
|
2116
|
-
var glossaryMessagesDe = {
|
|
2117
|
-
'sections.glossary.copyButtonLabel': 'Kopiere den Link zu diesem Abschnitt in die Zwischenablage',
|
|
2118
|
-
'sections.glossary.copySuccessMessage': 'Link in die Zwischenablage kopiert',
|
|
2119
|
-
'sections.glossary.copyFailureMessage': 'Link konnte nicht in die Zwischenablage kopiert werden'
|
|
2120
|
-
};
|
|
2121
|
-
|
|
2122
|
-
var projectFactsMessagesDe = {
|
|
2123
|
-
'sections.projectFacts.projectInfo.value': 'Projekt Infos',
|
|
2124
|
-
'projects.projectFacts.properties.area': 'Fläche'
|
|
2125
|
-
};
|
|
2126
|
-
|
|
2127
|
-
var projectsMapMessagesDe = {
|
|
2128
|
-
'sections.projectsMap.link.text': 'Mehr Infos'
|
|
2129
|
-
};
|
|
2130
|
-
|
|
2131
|
-
var shopCheckoutMessagesDe = {
|
|
2132
|
-
'sections.shopCheckout.intro.price': 'Preis',
|
|
2133
|
-
'sections.shopCheckout.contributionValue.label.EUR': 'Geben sie einen Betrag in € ein',
|
|
2134
|
-
'sections.shopCheckout.contributionValue.label.CHF': 'Geben sie einen Betrag in CHF ein',
|
|
2135
|
-
'sections.shopCheckout.contributionValue.unit.EUR': '€',
|
|
2136
|
-
'sections.shopCheckout.contributionValue.unit.CHF': 'CHF',
|
|
2137
|
-
'sections.shopCheckout.contributionValue.validation.empty': 'Bitte geben sie einen Betrag ein',
|
|
2138
|
-
'sections.shopCheckout.contributionValue.validation.tooLow.EUR': 'Der Betrag muss mindestens 10 Euro sein',
|
|
2139
|
-
'sections.shopCheckout.contributionValue.validation.tooLow.CHF': 'Der Betrag muss mindestens 10 CHF sein',
|
|
2140
|
-
'sections.shopCheckout.contributionValue.validation.tooHigh': 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam über office@tree.ly',
|
|
2141
|
-
'sections.shopCheckout.summary.kg': 'Menge',
|
|
2142
|
-
'sections.shopCheckout.summary.price': 'Preis',
|
|
2143
|
-
'sections.shopCheckout.submit': 'Kaufen'
|
|
2144
|
-
};
|
|
2145
|
-
|
|
2146
|
-
var creditsAvailableBadgeMessagesDe = {
|
|
2147
|
-
'components.creditsAvailableBadge.text.yes': 'Credits verfügbar',
|
|
2148
|
-
'components.creditsAvailableBadge.text.some': 'Einige verbleibende Credits',
|
|
2149
|
-
'components.creditsAvailableBadge.text.no': 'Keine verbleibenden Credits',
|
|
2150
|
-
'components.creditsAvailableBadge.text.notYet': 'Noch keine Credits verfügbar'
|
|
2151
|
-
};
|
|
2152
|
-
|
|
2153
|
-
var portfolioDocumentsDownloadListMessagesDe = {
|
|
2154
|
-
'features.portfolio.documentsDownloadList.projectDocuments': 'Projektdokumente',
|
|
2155
|
-
'features.portfolio.documentsDownloadList.downloadDocument': 'Dokument herunterladen'
|
|
2156
|
-
};
|
|
2157
|
-
|
|
2158
|
-
var portfolioProjectInfoMessagesDe = {
|
|
2159
|
-
'features.projectInfo.projectInfo.value': 'Projekt Infos',
|
|
2160
|
-
'features.projectInfo.properties.area': 'Projekt Fläche',
|
|
2161
|
-
'features.projectInfo.properties.location': 'Standort',
|
|
2162
|
-
'features.projectInfo.properties.start': 'Projekt Start Datum',
|
|
2163
|
-
'features.projectInfo.properties.timeSpan': 'Projekt Zeitraum',
|
|
2164
|
-
'features.projectInfo.properties.projectType': 'Projekt Typ',
|
|
2165
|
-
'features.projectInfo.properties.projectDeveloper': 'Projekt Entwickler',
|
|
2166
|
-
'features.projectInfo.properties.verificationStandard.label': 'Verifizierungsstandard',
|
|
2167
|
-
'features.projectInfo.properties.verificationStandard.value.SilvaconsultFCSISO14': 'SILVACONSULT® Forest Carbon Standard, ISO 14064-2',
|
|
2168
|
-
'features.projectInfo.properties.forecastedAmountYear.label': 'Projektvolumen',
|
|
2169
|
-
'features.projectInfo.properties.riskBuffer': 'Anteil Risikopuffer',
|
|
2170
|
-
'features.projectInfo.properties.year': '{years} {years, plural, one {Jahr} other {Jahre} }'
|
|
2171
|
-
};
|
|
2172
|
-
|
|
2173
|
-
var portfolioSmallCheckoutMessagesDe = {
|
|
2174
|
-
'portfolio.smallCheckout.contributionValueCurrency.label.CHF': 'Geben Sie den Beitrag in Fr. ein',
|
|
2175
|
-
'portfolio.smallCheckout.contributionValueCurrency.label.EUR': 'Geben Sie den Beitrag in € ein',
|
|
2176
|
-
'portfolio.smallCheckout.contributionValueCurrency.unit.EUR': '€',
|
|
2177
|
-
'portfolio.smallCheckout.contributionValueCurrency.unit.CHF': 'Fr.',
|
|
2178
|
-
'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.CHF': 'Der Wert muss mindestens 10 CHF betragen',
|
|
2179
|
-
'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.EUR': 'Der Wert muss mindestens 10 Euro betragen.',
|
|
2180
|
-
'portfolio.smallCheckout.contributionValueCurrency.validation.empty': 'Bitte geben Sie einen Wert ein',
|
|
2181
|
-
'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh': 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam über den unten stehenden Button',
|
|
2182
|
-
'portfolio.smallCheckout.contributionValueKgs.label': 'Beitrag in Tonnen',
|
|
2183
|
-
'portfolio.smallCheckout.submitButton': 'Credits kaufen',
|
|
2184
|
-
'portfolio.smallCheckout.cta.title': 'Möchten Sie mehr als 10.000 tCO₂ kaufen?',
|
|
2185
|
-
'portfolio.smallCheckout.cta.subTitle': 'Für Unternehmenskunden bieten wir individuelle Lösungen an. Kontaktieren Sie uns.',
|
|
2186
|
-
'portfolio.smallCheckout.cta.button': 'Unser Vertriebsteam kontaktieren'
|
|
2187
|
-
};
|
|
2188
|
-
|
|
2189
|
-
var unitMessagesEn = {
|
|
2190
|
-
'unit.formatter.tonsCo2': '{number} /tCO₂',
|
|
2191
|
-
'unit.formatter.tonsCo2PerYear': '{number} tCO₂/year'
|
|
2192
|
-
};
|
|
2193
|
-
|
|
2194
|
-
var rootMessagesDe = /*#__PURE__*/_extends({}, creditsAvailableBadgeMessagesDe, portfolioDocumentsDownloadListMessagesDe, portfolioProjectInfoMessagesDe, portfolioSmallCheckoutMessagesDe, comparisonMessagesDe, ctaMessagesDe, customerStoriesDe, glossaryMessagesDe, projectFactsMessagesDe, projectsMapMessagesDe, shopCheckoutMessagesDe, unitMessagesEn);
|
|
2195
|
-
|
|
2196
|
-
var comparisonMessagesEn = {
|
|
2197
|
-
'sections.comparison.backgroundShapes': 'Background shapes'
|
|
2198
|
-
};
|
|
2199
|
-
|
|
2200
|
-
var ctaMessagesEn = {
|
|
2201
|
-
'sections.cta.backgroundShapesDark': 'Dark background shapes',
|
|
2202
|
-
'sections.cta.backgroundShapesLight': 'Light background shapes'
|
|
2203
|
-
};
|
|
2204
|
-
|
|
2205
|
-
var customerStoriesEn = {
|
|
2206
|
-
'sections.customerStories.more': 'Read more'
|
|
2207
|
-
};
|
|
2208
|
-
|
|
2209
|
-
var glossaryMessagesEn = {
|
|
2210
|
-
'sections.glossary.copyButtonLabel': 'Copy a link to this section to your clipboard',
|
|
2211
|
-
'sections.glossary.copySuccessMessage': 'Copied the link to your clipboard',
|
|
2212
|
-
'sections.glossary.copyFailureMessage': 'Could not copy link to clipboard'
|
|
2213
|
-
};
|
|
2214
|
-
|
|
2215
|
-
var projectFactsMessagesEn = {
|
|
2216
|
-
'sections.projectFacts.projectInfo.value': 'Project Infos',
|
|
2217
|
-
'projects.projectFacts.properties.area': 'Area'
|
|
2218
|
-
};
|
|
2219
|
-
|
|
2220
|
-
var projectsMapMessagesEn = {
|
|
2221
|
-
'sections.projectsMap.link.text': 'Show more info'
|
|
2222
|
-
};
|
|
2223
|
-
|
|
2224
|
-
var shopCheckoutMessagesEn = {
|
|
2225
|
-
'sections.shopCheckout.intro.price': 'Price',
|
|
2226
|
-
'sections.shopCheckout.contributionValue.label.EUR': 'Enter contribution value in €',
|
|
2227
|
-
'sections.shopCheckout.contributionValue.label.CHF': 'Enter contribution value in CHF',
|
|
2228
|
-
'sections.shopCheckout.contributionValue.unit.EUR': '€',
|
|
2229
|
-
'sections.shopCheckout.contributionValue.unit.CHF': 'CHF',
|
|
2230
|
-
'sections.shopCheckout.contributionValue.validation.empty': 'Please enter a value',
|
|
2231
|
-
'sections.shopCheckout.contributionValue.validation.tooLow.EUR': 'Der Betrag muss mindestens 10 Euro sein',
|
|
2232
|
-
'sections.shopCheckout.contributionValue.validation.tooLow.CHF': 'Der Betrag muss mindestens 10 CHF sein',
|
|
2233
|
-
'sections.shopCheckout.contributionValue.validation.tooHigh': 'For bigger purchases please contact our sales team via office@tree.ly',
|
|
2234
|
-
'sections.shopCheckout.summary.kg': 'Quantity',
|
|
2235
|
-
'sections.shopCheckout.summary.price': 'Price',
|
|
2236
|
-
'sections.shopCheckout.submit': 'Checkout'
|
|
2237
|
-
};
|
|
2238
|
-
|
|
2239
|
-
var creditsAvailableBadgeMessagesEn = {
|
|
2240
|
-
'components.creditsAvailableBadge.text.yes': 'Credits available',
|
|
2241
|
-
'components.creditsAvailableBadge.text.some': 'Some remaining credits',
|
|
2242
|
-
'components.creditsAvailableBadge.text.no': 'No remaining credits',
|
|
2243
|
-
'components.creditsAvailableBadge.text.notYet': 'No credits available yet'
|
|
2244
|
-
};
|
|
2245
|
-
|
|
2246
|
-
var portfolioDocumentsDownloadListMessagesEn = {
|
|
2247
|
-
'features.portfolio.documentsDownloadList.projectDocuments': 'Project documents',
|
|
2248
|
-
'features.portfolio.documentsDownloadList.downloadDocument': 'Download document'
|
|
2249
|
-
};
|
|
2250
|
-
|
|
2251
|
-
var portfolioProjectInfoMessagesEn = {
|
|
2252
|
-
'features.projectInfo.projectInfo.value': 'Project Infos',
|
|
2253
|
-
'features.projectInfo.properties.area': 'Project Area',
|
|
2254
|
-
'features.projectInfo.properties.location': 'Location',
|
|
2255
|
-
'features.projectInfo.properties.start': 'Project Start Date',
|
|
2256
|
-
'features.projectInfo.properties.timeSpan': 'Project Time Span',
|
|
2257
|
-
'features.projectInfo.properties.projectType': 'Project Type',
|
|
2258
|
-
'features.projectInfo.properties.projectDeveloper': 'Project Developer',
|
|
2259
|
-
'features.projectInfo.properties.verificationStandard.label': 'Verification Standard',
|
|
2260
|
-
'features.projectInfo.properties.verificationStandard.value.SilvaconsultFCSISO14': 'SILVACONSULT® Forest Carbon Standard, ISO 14064-2',
|
|
2261
|
-
'features.projectInfo.properties.forecastedAmountYear.label': 'Project Volume',
|
|
2262
|
-
'features.projectInfo.properties.riskBuffer': 'Risk Buffer Share',
|
|
2263
|
-
'features.projectInfo.properties.year': '{years} {years, plural, one {year} other {years} }'
|
|
2264
|
-
};
|
|
2265
|
-
|
|
2266
|
-
var portfolioSmallCheckoutMessagesEn = {
|
|
2267
|
-
'portfolio.smallCheckout.contributionValueCurrency.label.CHF': 'Contribution Amount in CHF',
|
|
2268
|
-
'portfolio.smallCheckout.contributionValueCurrency.label.EUR': 'Contribution Amount in €',
|
|
2269
|
-
'portfolio.smallCheckout.contributionValueCurrency.unit.EUR': '€',
|
|
2270
|
-
'portfolio.smallCheckout.contributionValueCurrency.unit.CHF': 'CHF',
|
|
2271
|
-
'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.CHF': 'The value must be at least 10 CHF',
|
|
2272
|
-
'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.EUR': 'The value must be at least 10 Euro',
|
|
2273
|
-
'portfolio.smallCheckout.contributionValueCurrency.validation.empty': 'Please enter a value',
|
|
2274
|
-
'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh': 'For bigger purchases please contact our sales team via office@tree.ly',
|
|
2275
|
-
'portfolio.smallCheckout.contributionValueKgs.label': 'Contribution Amount in Tons',
|
|
2276
|
-
'portfolio.smallCheckout.submitButton': 'Buy credits',
|
|
2277
|
-
'portfolio.smallCheckout.cta.title': 'Looking to buy more than 10.000 tCO₂?',
|
|
2278
|
-
'portfolio.smallCheckout.cta.subTitle': 'For enterprise-customers we offer custom solutions. Feel free to contact us.',
|
|
2279
|
-
'portfolio.smallCheckout.cta.button': 'Contact our Sales Team'
|
|
2280
|
-
};
|
|
2281
|
-
|
|
2282
|
-
var rootMessagesEn = /*#__PURE__*/_extends({}, creditsAvailableBadgeMessagesEn, portfolioDocumentsDownloadListMessagesEn, portfolioProjectInfoMessagesEn, portfolioSmallCheckoutMessagesEn, comparisonMessagesEn, ctaMessagesEn, customerStoriesEn, glossaryMessagesEn, projectFactsMessagesEn, projectsMapMessagesEn, shopCheckoutMessagesEn, unitMessagesEn);
|
|
2283
|
-
|
|
2284
|
-
var _templateObject$3;
|
|
2285
|
-
var GLOBAL_STYLE = /*#__PURE__*/css(_templateObject$3 || (_templateObject$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n // GintoNord\n @font-face {\n font-family: 'GintoNord';\n src: url('", "/assets/v3/fonts/ABCGintoNord-Bold.woff2')\n format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n // Inter\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-Regular.woff2') format('woff2');\n font-style: normal;\n font-weight: 400;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-Medium.woff2') format('woff2');\n font-style: normal;\n font-weight: 500;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-SemiBold.woff2') format('woff2');\n font-style: normal;\n font-weight: 600;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-Bold.woff2') format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n // SpaceMono\n @font-face {\n font-family: 'SpaceMono';\n src: url('", "/assets/v3/fonts/SpaceMono-Bold.woff2') format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n\n :root {\n --default-hero-height: calc(100vh - var(--boemly-space-24));\n }\n\n a {\n text-decoration: none;\n }\n"])), CDN_URI, CDN_URI, CDN_URI, CDN_URI, CDN_URI, CDN_URI);
|
|
2286
|
-
|
|
2287
|
-
var FONT_CUSTOMIZATIONS = {
|
|
2288
|
-
body: 'Inter',
|
|
2289
|
-
heading: 'Inter',
|
|
2290
|
-
display: 'GintoNord',
|
|
2291
|
-
mono: 'SpaceMono'
|
|
2292
|
-
};
|
|
2293
|
-
|
|
2294
|
-
var cache = /*#__PURE__*/createIntlCache();
|
|
2295
|
-
var intlFactory = function intlFactory(locale) {
|
|
2296
|
-
return createIntl({
|
|
2297
|
-
locale: locale,
|
|
2298
|
-
messages: {
|
|
2299
|
-
de: rootMessagesDe,
|
|
2300
|
-
en: rootMessagesEn
|
|
2301
|
-
}[locale]
|
|
2302
|
-
}, cache);
|
|
2303
|
-
};
|
|
2304
|
-
var IntlContext = /*#__PURE__*/createContext( /*#__PURE__*/intlFactory('en'));
|
|
2305
|
-
var ContextProvider = function ContextProvider(_ref) {
|
|
2306
|
-
var children = _ref.children,
|
|
2307
|
-
locale = _ref.locale;
|
|
2308
|
-
return React.createElement(BoemlyThemeProvider, {
|
|
2309
|
-
fonts: FONT_CUSTOMIZATIONS
|
|
2310
|
-
}, React.createElement(Global, {
|
|
2311
|
-
styles: {
|
|
2312
|
-
GLOBAL_STYLE: GLOBAL_STYLE
|
|
2313
|
-
}
|
|
2314
|
-
}), React.createElement(IntlContext.Provider, {
|
|
2315
|
-
value: intlFactory(locale)
|
|
2316
|
-
}, children));
|
|
2317
|
-
};
|
|
2318
|
-
|
|
2319
|
-
var Blog = function Blog(_ref) {
|
|
2320
|
-
var slice = _ref.slice,
|
|
2321
|
-
blogPosts = _ref.blogPosts;
|
|
2322
|
-
var _useContext = useContext(IntlContext),
|
|
2323
|
-
formatDate = _useContext.formatDate;
|
|
2324
|
-
var sortedBlogPosts = slice.blog_posts.sort(function (a, b) {
|
|
2325
|
-
return new Date(b.attributes.createdAt).getTime() - new Date(a.attributes.createdAt).getTime();
|
|
2326
|
-
});
|
|
2327
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, React.createElement(SimpleGrid, {
|
|
2328
|
-
columns: [1, null, null, 2],
|
|
2329
|
-
spacingX: 56,
|
|
2330
|
-
spacingY: 24
|
|
2331
|
-
}, sortedBlogPosts.map(function (_ref2) {
|
|
2332
|
-
var attributes = _ref2.attributes;
|
|
2333
|
-
var blogPost = blogPosts.find(function (bp) {
|
|
2334
|
-
return bp.attributes.slug === attributes.slug;
|
|
2335
|
-
});
|
|
2336
|
-
if (!blogPost) {
|
|
2337
|
-
return null;
|
|
2338
|
-
}
|
|
2339
|
-
return React.createElement(BlogItemContainer, {
|
|
2340
|
-
key: blogPost.attributes.slug,
|
|
2341
|
-
as: Link,
|
|
2342
|
-
href: "/blog/" + blogPost.attributes.slug
|
|
2343
|
-
}, React.createElement(ImageContainer$1, null, React.createElement(Image, {
|
|
2344
|
-
src: strapiMediaUrl(blogPost.attributes.img.img, 'large'),
|
|
2345
|
-
alt: blogPost.attributes.img.alt,
|
|
2346
|
-
fill: true,
|
|
2347
|
-
style: {
|
|
2348
|
-
objectFit: blogPost.attributes.img.objectFit || 'cover'
|
|
2349
|
-
}
|
|
2350
|
-
})), React.createElement(Box, {
|
|
2351
|
-
px: "2",
|
|
2352
|
-
py: "8"
|
|
2353
|
-
}, blogPost.attributes.category && React.createElement(Text, {
|
|
2354
|
-
size: "smMonoUppercase",
|
|
2355
|
-
color: "primary.800",
|
|
2356
|
-
mb: "2"
|
|
2357
|
-
}, blogPost.attributes.category.data.attributes.name), React.createElement(Heading, {
|
|
2358
|
-
size: "lg"
|
|
2359
|
-
}, blogPost.attributes.title), blogPost.attributes.teaser && React.createElement(Text, {
|
|
2360
|
-
size: "mdRegularNormal",
|
|
2361
|
-
mt: "2"
|
|
2362
|
-
}, blogPost.attributes.teaser), React.createElement(Spacer, {
|
|
2363
|
-
height: "4"
|
|
2364
|
-
}), React.createElement(DatePersonPair, {
|
|
2365
|
-
date: formatDate(blogPost.attributes.createdAt),
|
|
2366
|
-
person: blogPost.attributes.author ? {
|
|
2367
|
-
name: blogPost.attributes.author.data.attributes.name,
|
|
2368
|
-
image: React.createElement(Image, {
|
|
2369
|
-
src: strapiMediaUrl(blogPost.attributes.author.data.attributes.img.img, 'thumbnail'),
|
|
2370
|
-
alt: blogPost.attributes.author.data.attributes.img.alt,
|
|
2371
|
-
fill: true,
|
|
2372
|
-
style: {
|
|
2373
|
-
objectFit: blogPost.attributes.author.data.attributes.img.objectFit || 'cover'
|
|
2374
|
-
}
|
|
2375
|
-
})
|
|
2376
|
-
} : undefined
|
|
2377
|
-
})));
|
|
2378
|
-
}))));
|
|
2379
|
-
};
|
|
2380
|
-
|
|
2381
|
-
var ConditionalWrapper = function ConditionalWrapper(_ref) {
|
|
2382
|
-
var condition = _ref.condition,
|
|
2383
|
-
wrapper = _ref.wrapper,
|
|
2384
|
-
children = _ref.children;
|
|
2385
|
-
return condition ? wrapper(children) : children;
|
|
2386
|
-
};
|
|
2387
|
-
var ProjectsGrid = function ProjectsGrid(_ref2) {
|
|
2388
|
-
var slice = _ref2.slice;
|
|
2389
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, React.createElement(SimpleGrid, {
|
|
2390
|
-
columns: [1, null, null, 2, null, 3],
|
|
2391
|
-
gap: "16"
|
|
2392
|
-
}, slice.projects.map(function (card) {
|
|
2393
|
-
var _card$project;
|
|
2394
|
-
return React.createElement(ConditionalWrapper, {
|
|
2395
|
-
key: card.id,
|
|
2396
|
-
condition: !!((_card$project = card.project) != null && _card$project.data),
|
|
2397
|
-
wrapper: function wrapper(children) {
|
|
2398
|
-
var _card$project2;
|
|
2399
|
-
return React.createElement(Link, {
|
|
2400
|
-
href: "/portfolio/" + ((_card$project2 = card.project) == null || (_card$project2 = _card$project2.data) == null ? void 0 : _card$project2.attributes.slug),
|
|
2401
|
-
passHref: true,
|
|
2402
|
-
key: card.id,
|
|
2403
|
-
legacyBehavior: true
|
|
2404
|
-
}, children);
|
|
2405
|
-
}
|
|
2406
|
-
}, React.createElement(Box, {
|
|
2407
|
-
as: "a",
|
|
2408
|
-
cursor: "pointer",
|
|
2409
|
-
borderRadius: "2xl",
|
|
2410
|
-
width: "fit-content",
|
|
2411
|
-
height: "fit-content",
|
|
2412
|
-
transition: "box-shadow ease " + MEDIUM_TRANSITION_DURATION + "s",
|
|
2413
|
-
_hover: {
|
|
2414
|
-
boxShadow: 'lg'
|
|
2415
|
-
}
|
|
2416
|
-
}, React.createElement(ProjectCard, {
|
|
2417
|
-
title: card.title,
|
|
2418
|
-
facts: card.facts,
|
|
2419
|
-
footerTitle: card.footerTitle,
|
|
2420
|
-
footerSubTitle: card.footerSubTitle,
|
|
2421
|
-
image: React.createElement(Image, {
|
|
2422
|
-
src: strapiMediaUrl(card.image.img, 'medium'),
|
|
2423
|
-
alt: card.image.alt,
|
|
2424
|
-
fill: true,
|
|
2425
|
-
style: {
|
|
2426
|
-
objectFit: card.image.objectFit || 'cover'
|
|
2427
|
-
}
|
|
2428
|
-
})
|
|
2429
|
-
})));
|
|
2430
|
-
}))));
|
|
2431
|
-
};
|
|
2432
|
-
|
|
2433
|
-
var MAPBOX_TOKEN = 'pk.eyJ1IjoidHJlZS1seSIsImEiOiJja25rNG1heHgwNThjMnZwZTl2eThmeXUwIn0.SOrYUKfevZkbx8jZPxJesA';
|
|
2434
|
-
var MapBoxStyle;
|
|
2435
|
-
(function (MapBoxStyle) {
|
|
2436
|
-
MapBoxStyle["Outdoors"] = "mapbox://styles/mapbox/outdoors-v11";
|
|
2437
|
-
MapBoxStyle["SatelliteStreets"] = "mapbox://styles/mapbox/satellite-streets-v11";
|
|
2438
|
-
MapBoxStyle["Satellite"] = "mapbox://styles/mapbox/satellite-v9";
|
|
2439
|
-
MapBoxStyle["CaliTerrain"] = "mapbox://styles/tree-ly/clna54iq603ht01pbc199cszw";
|
|
2440
|
-
})(MapBoxStyle || (MapBoxStyle = {}));
|
|
2441
|
-
(process.env.NEXT_PUBLIC_MAPBOX_TILES_URL || 'http://localhost:8123') + "/vectortiles/v1/plots/{z}/{x}/{y}.mvt";
|
|
2442
|
-
var MAPBOX_MAX_ZOOM = 19;
|
|
2443
|
-
var MAPBOX_INITIAL_ZOOM = 13;
|
|
2444
|
-
|
|
2445
|
-
var mergeBoundingBoxes = function mergeBoundingBoxes(boundingBoxes) {
|
|
2446
|
-
var minLeft = 180;
|
|
2447
|
-
var minBottom = 90;
|
|
2448
|
-
var maxRight = -180;
|
|
2449
|
-
var maxTop = -90;
|
|
2450
|
-
boundingBoxes.forEach(function (_ref) {
|
|
2451
|
-
var left = _ref[0],
|
|
2452
|
-
bottom = _ref[1],
|
|
2453
|
-
right = _ref[2],
|
|
2454
|
-
top = _ref[3];
|
|
2455
|
-
if (left < minLeft) minLeft = left;
|
|
2456
|
-
if (bottom < minBottom) minBottom = bottom;
|
|
2457
|
-
if (right > maxRight) maxRight = right;
|
|
2458
|
-
if (top > maxTop) maxTop = top;
|
|
2459
|
-
});
|
|
2460
|
-
return [minLeft, minBottom, maxRight, maxTop];
|
|
2461
|
-
};
|
|
2462
|
-
|
|
2463
|
-
var messages = {
|
|
2464
|
-
en: rootMessagesEn,
|
|
2465
|
-
de: rootMessagesDe
|
|
2466
|
-
};
|
|
2467
|
-
var MinimalProviders = function MinimalProviders(_ref) {
|
|
2468
|
-
var children = _ref.children,
|
|
2469
|
-
locale = _ref.locale;
|
|
2470
|
-
return React.createElement(IntlProvider, {
|
|
2471
|
-
messages: messages[locale],
|
|
2472
|
-
locale: locale
|
|
2473
|
-
}, React.createElement(BoemlyThemeProvider, {
|
|
2474
|
-
fonts: FONT_CUSTOMIZATIONS
|
|
2475
|
-
}, children));
|
|
2476
|
-
};
|
|
2477
|
-
|
|
2478
|
-
var CreditsAvailableState;
|
|
2479
|
-
(function (CreditsAvailableState) {
|
|
2480
|
-
CreditsAvailableState["YES"] = "yes";
|
|
2481
|
-
CreditsAvailableState["SOME"] = "some";
|
|
2482
|
-
CreditsAvailableState["NO"] = "no";
|
|
2483
|
-
CreditsAvailableState["NOT_YET"] = "notYet";
|
|
2484
|
-
})(CreditsAvailableState || (CreditsAvailableState = {}));
|
|
2485
|
-
var CreditsAvailableState$1 = CreditsAvailableState;
|
|
2486
|
-
|
|
2487
|
-
var CreditsAvailableBadge = function CreditsAvailableBadge(_ref) {
|
|
2488
|
-
var _variants;
|
|
2489
|
-
var status = _ref.status,
|
|
2490
|
-
href = _ref.href;
|
|
2491
|
-
var _useContext = useContext(IntlContext),
|
|
2492
|
-
formatMessage = _useContext.formatMessage;
|
|
2493
|
-
var variants = (_variants = {}, _variants[CreditsAvailableState$1.YES] = {
|
|
2494
|
-
color: 'green',
|
|
2495
|
-
text: formatMessage({
|
|
2496
|
-
id: 'components.creditsAvailableBadge.text.yes'
|
|
2497
|
-
})
|
|
2498
|
-
}, _variants[CreditsAvailableState$1.SOME] = {
|
|
2499
|
-
color: 'orange',
|
|
2500
|
-
text: formatMessage({
|
|
2501
|
-
id: 'components.creditsAvailableBadge.text.some'
|
|
2502
|
-
})
|
|
2503
|
-
}, _variants[CreditsAvailableState$1.NO] = {
|
|
2504
|
-
color: 'red',
|
|
2505
|
-
text: formatMessage({
|
|
2506
|
-
id: 'components.creditsAvailableBadge.text.no'
|
|
2507
|
-
})
|
|
2508
|
-
}, _variants[CreditsAvailableState$1.NOT_YET] = {
|
|
2509
|
-
color: 'blue',
|
|
2510
|
-
text: formatMessage({
|
|
2511
|
-
id: 'components.creditsAvailableBadge.text.notYet'
|
|
2512
|
-
})
|
|
2513
|
-
}, _variants);
|
|
2514
|
-
var variant = variants[status];
|
|
2515
|
-
return React.createElement(Badge, {
|
|
2516
|
-
as: href ? Link : undefined,
|
|
2517
|
-
href: href,
|
|
2518
|
-
colorScheme: variant.color,
|
|
2519
|
-
width: "fit-content"
|
|
2520
|
-
}, variant.text);
|
|
2521
|
-
};
|
|
2522
|
-
|
|
2523
|
-
var MapMarker = function MapMarker(_ref) {
|
|
2524
|
-
var title = _ref.title,
|
|
2525
|
-
projectDeveloper = _ref.projectDeveloper,
|
|
2526
|
-
slug = _ref.slug,
|
|
2527
|
-
creditsAvailable = _ref.creditsAvailable,
|
|
2528
|
-
_ref$isPublic = _ref.isPublic,
|
|
2529
|
-
isPublic = _ref$isPublic === void 0 ? false : _ref$isPublic;
|
|
2530
|
-
var _useContext = useContext(IntlContext),
|
|
2531
|
-
formatMessage = _useContext.formatMessage;
|
|
2532
|
-
var _useDisclosure = useDisclosure(),
|
|
2533
|
-
isOpen = _useDisclosure.isOpen,
|
|
2534
|
-
onOpen = _useDisclosure.onOpen,
|
|
2535
|
-
onClose = _useDisclosure.onClose;
|
|
2536
|
-
var blue600 = useToken('colors', 'blue.600');
|
|
2537
|
-
return React.createElement(Flex, {
|
|
2538
|
-
position: "absolute",
|
|
2539
|
-
gap: "4",
|
|
2540
|
-
onMouseEnter: onOpen,
|
|
2541
|
-
onMouseLeave: onClose,
|
|
2542
|
-
cursor: "grab"
|
|
2543
|
-
}, React.createElement(Box, {
|
|
2544
|
-
as: slug ? Link : undefined,
|
|
2545
|
-
href: slug && "/portfolio/" + slug
|
|
2546
|
-
}, React.createElement(MapPin, {
|
|
2547
|
-
size: "40px",
|
|
2548
|
-
color: blue600,
|
|
2549
|
-
weight: "fill",
|
|
2550
|
-
"data-testid": "mapmarker-pin",
|
|
2551
|
-
filter: "drop-shadow(0px 0px 2px #FFF)"
|
|
2552
|
-
})), isPublic && isOpen && React.createElement(Container, {
|
|
2553
|
-
shadow: "md",
|
|
2554
|
-
width: "max-content",
|
|
2555
|
-
minWidth: "3xs",
|
|
2556
|
-
maxWidth: ['3xs', null, null, 'sm']
|
|
2557
|
-
}, React.createElement(Flex, {
|
|
2558
|
-
direction: "column"
|
|
2559
|
-
}, creditsAvailable && React.createElement(React.Fragment, null, React.createElement(CreditsAvailableBadge, {
|
|
2560
|
-
status: creditsAvailable,
|
|
2561
|
-
href: slug && "/portfolio/" + slug
|
|
2562
|
-
}), React.createElement(Box, {
|
|
2563
|
-
height: "3"
|
|
2564
|
-
})), React.createElement(Heading, {
|
|
2565
|
-
size: "md"
|
|
2566
|
-
}, title), projectDeveloper && React.createElement(Text, {
|
|
2567
|
-
size: "smLowNormal",
|
|
2568
|
-
mt: "1"
|
|
2569
|
-
}, projectDeveloper), slug && React.createElement(Button, {
|
|
2570
|
-
width: "fit-content",
|
|
2571
|
-
variant: "outline",
|
|
2572
|
-
size: "sm",
|
|
2573
|
-
as: Link,
|
|
2574
|
-
href: "/portfolio/" + slug,
|
|
2575
|
-
mt: "4",
|
|
2576
|
-
whiteSpace: "nowrap"
|
|
2577
|
-
}, formatMessage({
|
|
2578
|
-
id: 'sections.projectsMap.link.text'
|
|
2579
|
-
})))));
|
|
2580
|
-
};
|
|
2581
|
-
|
|
2582
|
-
var _templateObject$2;
|
|
2583
|
-
var mapboxStyle = /*#__PURE__*/css(_templateObject$2 || (_templateObject$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n .mapboxgl-map {\n -webkit-tap-highlight-color: rgb(0 0 0/0);\n font: 12px/20px Helvetica Neue, Arial, Helvetica, sans-serif;\n overflow: hidden;\n position: relative;\n }\n .mapboxgl-canvas {\n left: 0;\n position: absolute;\n top: 0;\n }\n .mapboxgl-map:-webkit-full-screen {\n height: 100%;\n width: 100%;\n }\n .mapboxgl-canary {\n background-color: salmon;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive,\n .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass {\n cursor: grab;\n -webkit-user-select: none;\n user-select: none;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer {\n cursor: pointer;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive:active,\n .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active {\n cursor: grabbing;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas {\n touch-action: pan-x pan-y;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-drag-pan,\n .mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas {\n touch-action: pinch-zoom;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan\n .mapboxgl-canvas {\n touch-action: none;\n }\n .mapboxgl-ctrl-bottom-left,\n .mapboxgl-ctrl-bottom-right,\n .mapboxgl-ctrl-top-left,\n .mapboxgl-ctrl-top-right {\n pointer-events: none;\n position: absolute;\n z-index: 2;\n }\n .mapboxgl-ctrl-top-left {\n left: 0;\n top: 0;\n }\n .mapboxgl-ctrl-top-right {\n right: 0;\n top: 0;\n }\n .mapboxgl-ctrl-bottom-left {\n bottom: 0;\n left: 0;\n }\n .mapboxgl-ctrl-bottom-right {\n bottom: 0;\n right: 0;\n }\n .mapboxgl-ctrl {\n clear: both;\n pointer-events: auto;\n transform: translate(0);\n }\n .mapboxgl-ctrl-top-left .mapboxgl-ctrl {\n float: left;\n margin: 10px 0 0 10px;\n }\n .mapboxgl-ctrl-top-right .mapboxgl-ctrl {\n float: right;\n margin: 10px 10px 0 0;\n }\n .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl {\n float: left;\n margin: 0 0 10px 10px;\n }\n .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl {\n float: right;\n margin: 0 10px 10px 0;\n }\n .mapboxgl-ctrl-group {\n background: #fff;\n border-radius: 4px;\n }\n .mapboxgl-ctrl-group:not(:empty) {\n box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl-group:not(:empty) {\n box-shadow: 0 0 0 2px ButtonText;\n }\n }\n .mapboxgl-ctrl-group button {\n background-color: transparent;\n border: 0;\n box-sizing: border-box;\n cursor: pointer;\n display: block;\n height: 29px;\n outline: none;\n overflow: hidden;\n padding: 0;\n width: 29px;\n }\n .mapboxgl-ctrl-group button + button {\n border-top: 1px solid #ddd;\n }\n .mapboxgl-ctrl button .mapboxgl-ctrl-icon {\n background-position: 50%;\n background-repeat: no-repeat;\n display: block;\n height: 100%;\n width: 100%;\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl-icon {\n background-color: transparent;\n }\n .mapboxgl-ctrl-group button + button {\n border-top: 1px solid ButtonText;\n }\n }\n .mapboxgl-ctrl-attrib-button:focus,\n .mapboxgl-ctrl-group button:focus {\n box-shadow: 0 0 2px 2px #0096ff;\n }\n .mapboxgl-ctrl button:disabled {\n cursor: not-allowed;\n }\n .mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon {\n opacity: 0.25;\n }\n .mapboxgl-ctrl-group button:first-child {\n border-radius: 4px 4px 0 0;\n }\n .mapboxgl-ctrl-group button:last-child {\n border-radius: 0 0 4px 4px;\n }\n .mapboxgl-ctrl-group button:only-child {\n border-radius: inherit;\n }\n .mapboxgl-ctrl button:not(:disabled):hover {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-ctrl-group button:focus:focus-visible {\n box-shadow: 0 0 2px 2px #0096ff;\n }\n .mapboxgl-ctrl-group button:focus:not(:focus-visible) {\n box-shadow: none;\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting\n .mapboxgl-ctrl-icon {\n animation: mapboxgl-spin 2s linear infinite;\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n }\n @keyframes mapboxgl-spin {\n 0% {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(1turn);\n }\n }\n a.mapboxgl-ctrl-logo {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n cursor: pointer;\n display: block;\n height: 23px;\n margin: 0 0 -4px -4px;\n overflow: hidden;\n width: 88px;\n }\n a.mapboxgl-ctrl-logo.mapboxgl-compact {\n width: 23px;\n }\n @media (-ms-high-contrast: active) {\n a.mapboxgl-ctrl-logo {\n background-color: transparent;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n a.mapboxgl-ctrl-logo {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n background-color: hsla(0, 0%, 100%, 0.5);\n margin: 0;\n padding: 0 5px;\n }\n @media screen {\n .mapboxgl-ctrl-attrib.mapboxgl-compact {\n background-color: #fff;\n border-radius: 12px;\n margin: 10px;\n min-height: 20px;\n padding: 2px 24px 2px 0;\n position: relative;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show {\n padding: 2px 28px 2px 8px;\n visibility: visible;\n }\n .mapboxgl-ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact-show,\n .mapboxgl-ctrl-top-left > .mapboxgl-ctrl-attrib.mapboxgl-compact-show {\n border-radius: 12px;\n padding: 2px 8px 2px 28px;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner {\n display: none;\n }\n .mapboxgl-ctrl-attrib-button {\n background-color: hsla(0, 0%, 100%, 0.5);\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n border: 0;\n border-radius: 12px;\n box-sizing: border-box;\n cursor: pointer;\n display: none;\n height: 24px;\n outline: none;\n position: absolute;\n right: 0;\n top: 0;\n width: 24px;\n }\n .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,\n .mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button {\n left: 0;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner {\n display: block;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n bottom: 0;\n right: 0;\n }\n .mapboxgl-ctrl-top-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n right: 0;\n top: 0;\n }\n .mapboxgl-ctrl-top-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n left: 0;\n top: 0;\n }\n .mapboxgl-ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n bottom: 0;\n left: 0;\n }\n }\n @media screen and (-ms-high-contrast: active) {\n .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n }\n }\n @media screen and (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl-attrib a {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n }\n .mapboxgl-ctrl-attrib a:hover {\n color: inherit;\n text-decoration: underline;\n }\n .mapboxgl-ctrl-attrib .mapbox-improve-map {\n font-weight: 700;\n margin-left: 2px;\n }\n .mapboxgl-attrib-empty {\n display: none;\n }\n .mapboxgl-ctrl-scale {\n background-color: hsla(0, 0%, 100%, 0.75);\n border: 2px solid #333;\n border-top: #333;\n box-sizing: border-box;\n color: #333;\n font-size: 10px;\n padding: 0 5px;\n white-space: nowrap;\n }\n .mapboxgl-popup {\n display: flex;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n will-change: transform;\n }\n .mapboxgl-popup-anchor-top,\n .mapboxgl-popup-anchor-top-left,\n .mapboxgl-popup-anchor-top-right {\n flex-direction: column;\n }\n .mapboxgl-popup-anchor-bottom,\n .mapboxgl-popup-anchor-bottom-left,\n .mapboxgl-popup-anchor-bottom-right {\n flex-direction: column-reverse;\n }\n .mapboxgl-popup-anchor-left {\n flex-direction: row;\n }\n .mapboxgl-popup-anchor-right {\n flex-direction: row-reverse;\n }\n .mapboxgl-popup-tip {\n border: 10px solid transparent;\n height: 0;\n width: 0;\n z-index: 1;\n }\n .mapboxgl-popup-anchor-top .mapboxgl-popup-tip {\n align-self: center;\n border-bottom-color: #fff;\n border-top: none;\n }\n .mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip {\n align-self: flex-start;\n border-bottom-color: #fff;\n border-left: none;\n border-top: none;\n }\n .mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip {\n align-self: flex-end;\n border-bottom-color: #fff;\n border-right: none;\n border-top: none;\n }\n .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip {\n align-self: center;\n border-bottom: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip {\n align-self: flex-start;\n border-bottom: none;\n border-left: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip {\n align-self: flex-end;\n border-bottom: none;\n border-right: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-left .mapboxgl-popup-tip {\n align-self: center;\n border-left: none;\n border-right-color: #fff;\n }\n .mapboxgl-popup-anchor-right .mapboxgl-popup-tip {\n align-self: center;\n border-left-color: #fff;\n border-right: none;\n }\n .mapboxgl-popup-close-button {\n background-color: transparent;\n border: 0;\n border-radius: 0 3px 0 0;\n cursor: pointer;\n position: absolute;\n right: 0;\n top: 0;\n }\n .mapboxgl-popup-close-button:hover {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-popup-content {\n background: #fff;\n border-radius: 3px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n padding: 10px 10px 15px;\n pointer-events: auto;\n position: relative;\n }\n .mapboxgl-popup-anchor-top-left .mapboxgl-popup-content {\n border-top-left-radius: 0;\n }\n .mapboxgl-popup-anchor-top-right .mapboxgl-popup-content {\n border-top-right-radius: 0;\n }\n .mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content {\n border-bottom-left-radius: 0;\n }\n .mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content {\n border-bottom-right-radius: 0;\n }\n .mapboxgl-popup-track-pointer {\n display: none;\n }\n .mapboxgl-popup-track-pointer * {\n pointer-events: none;\n user-select: none;\n }\n .mapboxgl-map:hover .mapboxgl-popup-track-pointer {\n display: flex;\n }\n .mapboxgl-map:active .mapboxgl-popup-track-pointer {\n display: none;\n }\n .mapboxgl-marker {\n left: 0;\n opacity: 1;\n position: absolute;\n top: 0;\n transition: opacity 0.2s;\n will-change: transform;\n }\n .mapboxgl-user-location-dot,\n .mapboxgl-user-location-dot:before {\n background-color: #1da1f2;\n border-radius: 50%;\n height: 15px;\n width: 15px;\n }\n .mapboxgl-user-location-dot:before {\n animation: mapboxgl-user-location-dot-pulse 2s infinite;\n content: '';\n position: absolute;\n }\n .mapboxgl-user-location-dot:after {\n border: 2px solid #fff;\n border-radius: 50%;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.35);\n box-sizing: border-box;\n content: '';\n height: 19px;\n left: -2px;\n position: absolute;\n top: -2px;\n width: 19px;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading {\n height: 0;\n width: 0;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before {\n border-bottom: 7.5px solid #4aa1eb;\n content: '';\n position: absolute;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before {\n border-left: 7.5px solid transparent;\n transform: translateY(-28px) skewY(-20deg);\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after {\n border-right: 7.5px solid transparent;\n transform: translate(7.5px, -28px) skewY(20deg);\n }\n @keyframes mapboxgl-user-location-dot-pulse {\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 70% {\n opacity: 0;\n transform: scale(3);\n }\n to {\n opacity: 0;\n transform: scale(1);\n }\n }\n .mapboxgl-user-location-dot-stale {\n background-color: #aaa;\n }\n .mapboxgl-user-location-dot-stale:after {\n display: none;\n }\n .mapboxgl-user-location-accuracy-circle {\n background-color: #1da1f233;\n border-radius: 100%;\n height: 1px;\n width: 1px;\n }\n .mapboxgl-crosshair,\n .mapboxgl-crosshair .mapboxgl-interactive,\n .mapboxgl-crosshair .mapboxgl-interactive:active {\n cursor: crosshair;\n }\n .mapboxgl-boxzoom {\n background: #fff;\n border: 2px dotted #202020;\n height: 0;\n left: 0;\n opacity: 0.5;\n position: absolute;\n top: 0;\n width: 0;\n }\n @media print {\n .mapbox-improve-map {\n display: none;\n }\n }\n .mapboxgl-scroll-zoom-blocker,\n .mapboxgl-touch-pan-blocker {\n align-items: center;\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n display: flex;\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n text-align: center;\n top: 0;\n transition: opacity 0.75s ease-in-out;\n transition-delay: 1s;\n width: 100%;\n }\n .mapboxgl-scroll-zoom-blocker-show,\n .mapboxgl-touch-pan-blocker-show {\n opacity: 1;\n transition: opacity 0.1s ease-in-out;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,\n .mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page\n .mapboxgl-canvas {\n touch-action: pan-x pan-y;\n }\n"])));
|
|
2584
|
-
|
|
2585
|
-
var _templateObject$1;
|
|
2586
|
-
mapboxgl.accessToken = MAPBOX_TOKEN;
|
|
2587
|
-
var ProjectsMap = function ProjectsMap(_ref) {
|
|
2588
|
-
var slice = _ref.slice,
|
|
2589
|
-
projects = _ref.projects;
|
|
2590
|
-
var _useContext = useContext(IntlContext),
|
|
2591
|
-
locale = _useContext.locale;
|
|
2592
|
-
var filteredProjects = projects.filter(function (project) {
|
|
2593
|
-
return project.geom;
|
|
2594
|
-
});
|
|
2595
|
-
var center = slice.defaultCenterCoordinates ? [slice.defaultCenterCoordinates.longitude, slice.defaultCenterCoordinates.latitude] : undefined;
|
|
2596
|
-
var bounds = center ? undefined : mergeBoundingBoxes(filteredProjects.map(function (p) {
|
|
2597
|
-
return [].concat(p.geom.coordinates.map(function (c) {
|
|
2598
|
-
return c - 0.2;
|
|
2599
|
-
}), p.geom.coordinates.map(function (c) {
|
|
2600
|
-
return c + 0.2;
|
|
2601
|
-
}));
|
|
2602
|
-
}));
|
|
2603
|
-
var mapContainer = useRef(null);
|
|
2604
|
-
useEffect(function () {
|
|
2605
|
-
var map = new Map({
|
|
2606
|
-
container: mapContainer.current || '',
|
|
2607
|
-
style: MapBoxStyle.CaliTerrain,
|
|
2608
|
-
center: center,
|
|
2609
|
-
zoom: slice.defaultZoomLevel || MAPBOX_INITIAL_ZOOM,
|
|
2610
|
-
maxZoom: MAPBOX_MAX_ZOOM,
|
|
2611
|
-
bounds: bounds
|
|
2612
|
-
});
|
|
2613
|
-
filteredProjects
|
|
2614
|
-
// Sort by longitude, so that the markers are rendeed form right to left
|
|
2615
|
-
.sort(function (a, b) {
|
|
2616
|
-
return b.geom.coordinates[0] - a.geom.coordinates[0];
|
|
2617
|
-
}).forEach(function (project) {
|
|
2618
|
-
var _project$projectDevel;
|
|
2619
|
-
var ref = createRef();
|
|
2620
|
-
ref.current = document.createElement('div');
|
|
2621
|
-
createRoot(ref.current).render(React.createElement(MinimalProviders, {
|
|
2622
|
-
locale: locale
|
|
2623
|
-
}, React.createElement(MapMarker, {
|
|
2624
|
-
title: project.title,
|
|
2625
|
-
isPublic: project.isPublic,
|
|
2626
|
-
slug: project.slug,
|
|
2627
|
-
creditsAvailable: project.creditsAvailable,
|
|
2628
|
-
projectDeveloper: (_project$projectDevel = project.projectDeveloper) == null ? void 0 : _project$projectDevel.name
|
|
2629
|
-
})));
|
|
2630
|
-
// Offset is needed to center the marker on the coordinates
|
|
2631
|
-
var marker = new Marker(ref.current, {
|
|
2632
|
-
offset: [-20, -40]
|
|
2633
|
-
});
|
|
2634
|
-
// No chaining here, because the mocks don't support it
|
|
2635
|
-
marker.setLngLat(project.geom.coordinates);
|
|
2636
|
-
marker.addTo(map);
|
|
2637
|
-
});
|
|
2638
|
-
// Clean up on unmount
|
|
2639
|
-
return function () {
|
|
2640
|
-
return map.remove();
|
|
2641
|
-
};
|
|
2642
|
-
}, [locale]);
|
|
2643
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Box, {
|
|
2644
|
-
css: mapboxStyle
|
|
2645
|
-
}, React.createElement(Wrapper, null, slice.title ? React.createElement(React.Fragment, null, React.createElement(DefaultSectionHeader, {
|
|
2646
|
-
tagline: slice.tagline,
|
|
2647
|
-
title: slice.title,
|
|
2648
|
-
text: slice.text,
|
|
2649
|
-
taglineProps: {
|
|
2650
|
-
textAlign: 'center'
|
|
2651
|
-
},
|
|
2652
|
-
titleProps: {
|
|
2653
|
-
textAlign: 'center',
|
|
2654
|
-
maxW: '6xl',
|
|
2655
|
-
marginX: 'auto'
|
|
2656
|
-
},
|
|
2657
|
-
textProps: {
|
|
2658
|
-
textAlign: 'center',
|
|
2659
|
-
maxW: '3xl',
|
|
2660
|
-
marginX: 'auto'
|
|
2661
|
-
}
|
|
2662
|
-
}), React.createElement(Box, {
|
|
2663
|
-
height: "16"
|
|
2664
|
-
})) : React.createElement(React.Fragment, null), React.createElement(Box, {
|
|
2665
|
-
height: "xl",
|
|
2666
|
-
ref: mapContainer,
|
|
2667
|
-
borderRadius: "xl",
|
|
2668
|
-
overflow: "hidden",
|
|
2669
|
-
boxShadow: ['md', null, null, 'none'],
|
|
2670
|
-
css: css(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose(["\n mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);\n "])))
|
|
2671
|
-
}))));
|
|
2672
|
-
};
|
|
2673
|
-
|
|
2674
|
-
var Video = function Video(_ref) {
|
|
2675
|
-
var slice = _ref.slice;
|
|
2676
|
-
var _useMeasure = useMeasure(),
|
|
2677
|
-
ref = _useMeasure[0],
|
|
2678
|
-
width = _useMeasure[1].width;
|
|
2679
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, React.createElement(Box, {
|
|
2680
|
-
ref: ref,
|
|
2681
|
-
borderRadius: "xl"
|
|
2682
|
-
}, React.createElement("iframe", {
|
|
2683
|
-
"data-testid": "video-iframe",
|
|
2684
|
-
width: width,
|
|
2685
|
-
height: width / 16 * 9,
|
|
2686
|
-
src: "https://www.youtube.com/embed/" + slice.youTubeID,
|
|
2687
|
-
frameBorder: "0",
|
|
2688
|
-
allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
|
|
2689
|
-
allowFullScreen: true,
|
|
2690
|
-
title: slice.title,
|
|
2691
|
-
style: {
|
|
2692
|
-
borderRadius: 'var(--boemly-radii-xl)'
|
|
2693
|
-
}
|
|
2694
|
-
}))));
|
|
2695
|
-
};
|
|
2696
|
-
|
|
2697
|
-
var FullWidthHighlightQuote = function FullWidthHighlightQuote(_ref) {
|
|
2698
|
-
var slice = _ref.slice;
|
|
2699
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, React.createElement(Box, {
|
|
2700
|
-
maxWidth: "5xl",
|
|
2701
|
-
marginX: "auto",
|
|
2702
|
-
mb: "8"
|
|
2703
|
-
}, slice.tagline && React.createElement(Text, {
|
|
2704
|
-
color: "primary.700",
|
|
2705
|
-
size: "mdMonoUppercase",
|
|
2706
|
-
textAlign: "center",
|
|
2707
|
-
mb: "3"
|
|
2708
|
-
}, slice.tagline), React.createElement(Text, {
|
|
2709
|
-
color: "black",
|
|
2710
|
-
size: "xlRegularNormalBold",
|
|
2711
|
-
textAlign: "center"
|
|
2712
|
-
}, slice.quote)), React.createElement(AvatarWithName, {
|
|
2713
|
-
name: slice.avatarWithName.name,
|
|
2714
|
-
description: slice.avatarWithName.description,
|
|
2715
|
-
image: React.createElement(Image, {
|
|
2716
|
-
src: strapiMediaUrl(slice.avatarWithName.image.img, 'small'),
|
|
2717
|
-
alt: slice.avatarWithName.image.alt,
|
|
2718
|
-
fill: true,
|
|
2719
|
-
style: {
|
|
2720
|
-
objectFit: slice.avatarWithName.image.objectFit || 'cover'
|
|
2721
|
-
}
|
|
2722
|
-
}),
|
|
2723
|
-
orientation: "vertical"
|
|
2724
|
-
})));
|
|
2725
|
-
};
|
|
2726
|
-
|
|
2727
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
2728
|
-
var SliderContainer = /*#__PURE__*/styled(Box)(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n --mobile-image-width: calc(100vw - var(--boemly-space-24));\n --desktop-image-width: var(--boemly-sizes-md);\n\n width: var(--boemly-size-full);\n\n overflow-x: hidden;\n\n padding-left: max(\n var(--boemly-space-8),\n calc(50vw - var(--boemly-sizes-7xl) / 2 + var(--boemly-space-6))\n );\n\n @media screen and (max-width: ", ") {\n overflow-x: scroll;\n padding-left: max(\n var(--boemly-space-8),\n calc(50vw - var(--boemly-sizes-7xl) / 2 + var(--boemly-space-8))\n );\n }\n"])), BREAKPOINT_MD);
|
|
2729
|
-
var ButtonsContainer = /*#__PURE__*/styled(Box)(_templateObject2 || (_templateObject2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: ", ";\n pointer-events: none;\n\n // Place at 50% of height of tallest image minus size of button\n position: absolute;\n top: calc(50% - var(--boemly-sizes-12));\n left: 0;\n width: var(--boemly-sizes-full);\n\n padding: 0 var(--boemly-sizes-32);\n justify-content: space-between;\n\n @media screen and (max-width: ", ") {\n display: none;\n }\n"])), function (_ref) {
|
|
2730
|
-
var show = _ref.show;
|
|
2731
|
-
return show ? 'flex' : 'none';
|
|
2732
|
-
}, BREAKPOINT_MD);
|
|
2733
|
-
var SliderInnerContainer = /*#__PURE__*/styled(motion.div)(_templateObject3 || (_templateObject3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n gap: var(--boemly-space-6);\n\n width: fit-content;\n"])));
|
|
2734
|
-
var ItemContainer = /*#__PURE__*/styled(Box)(_templateObject4 || (_templateObject4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: var(--desktop-image-width);\n\n :last-of-type {\n margin-right: var(--boemly-space-8);\n }\n\n @media screen and (max-width: ", ") {\n width: var(--mobile-image-width);\n }\n"])), BREAKPOINT_MD);
|
|
2735
|
-
var ImageContainer = /*#__PURE__*/styled(Box)(_templateObject5 || (_templateObject5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n\n max-height: var(--boemly-sizes-xl);\n height: calc(\n var(--desktop-image-width) /\n ", "\n );\n width: var(--desktop-image-width);\n\n border-radius: var(--boemly-radii-xl);\n\n & img {\n border-radius: var(--boemly-radii-xl);\n }\n\n @media screen and (max-width: ", ") {\n height: calc(\n var(--mobile-image-width) /\n ", "\n );\n width: var(--mobile-image-width);\n }\n"])), function (_ref2) {
|
|
2736
|
-
var aspectRatio = _ref2.aspectRatio;
|
|
2737
|
-
return aspectRatio;
|
|
2738
|
-
}, BREAKPOINT_MD, function (_ref3) {
|
|
2739
|
-
var aspectRatio = _ref3.aspectRatio;
|
|
2740
|
-
return aspectRatio;
|
|
2741
|
-
});
|
|
2742
|
-
|
|
2743
|
-
var ALLOWED_RATIOS = [2 / 3, 1 / 1, 3 / 2];
|
|
2744
|
-
var getClosestRatio = function getClosestRatio(width, height) {
|
|
2745
|
-
var ratio = width / height;
|
|
2746
|
-
var minDiff = Math.abs(ratio - ALLOWED_RATIOS[0]);
|
|
2747
|
-
var posMinDiff = 0;
|
|
2748
|
-
ALLOWED_RATIOS.forEach(function (allowedRatio, index) {
|
|
2749
|
-
if (Math.abs(ratio - allowedRatio) < minDiff) {
|
|
2750
|
-
minDiff = Math.abs(ratio - allowedRatio);
|
|
2751
|
-
posMinDiff = index;
|
|
2752
|
-
}
|
|
2753
|
-
});
|
|
2754
|
-
return ALLOWED_RATIOS[posMinDiff];
|
|
2755
|
-
};
|
|
2756
|
-
|
|
2757
|
-
var FullWidthImageSlider = function FullWidthImageSlider(_ref) {
|
|
2758
|
-
var slice = _ref.slice;
|
|
2759
|
-
var containerRef = useRef(null);
|
|
2760
|
-
var _useMeasure = useMeasure(),
|
|
2761
|
-
imageRef = _useMeasure[0],
|
|
2762
|
-
imageWidth = _useMeasure[1].width;
|
|
2763
|
-
var _useWindowSize = useWindowSize(),
|
|
2764
|
-
windowWidth = _useWindowSize.width;
|
|
2765
|
-
var _useMediaQuery = useMediaQuery(BREAKPOINT_MD_QUERY),
|
|
2766
|
-
isMobile = _useMediaQuery[0];
|
|
2767
|
-
var _useState = useState(0),
|
|
2768
|
-
sliderIndex = _useState[0],
|
|
2769
|
-
setSliderIndex = _useState[1];
|
|
2770
|
-
var _useState2 = useState(false),
|
|
2771
|
-
isOpen = _useState2[0],
|
|
2772
|
-
setIsOpen = _useState2[1];
|
|
2773
|
-
var allowScroll = windowWidth / 2 / imageWidth < slice.images.length;
|
|
2774
|
-
var canMoveRight = sliderIndex < slice.images.length - 1;
|
|
2775
|
-
var canMoveLeft = sliderIndex !== 0;
|
|
2776
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(SliderContainer, {
|
|
2777
|
-
ref: containerRef
|
|
2778
|
-
}, React.createElement(SliderInnerContainer, {
|
|
2779
|
-
animate: {
|
|
2780
|
-
x: imageWidth * -sliderIndex
|
|
2781
|
-
},
|
|
2782
|
-
transition: {
|
|
2783
|
-
duration: 0.3,
|
|
2784
|
-
ease: 'easeInOut'
|
|
2785
|
-
},
|
|
2786
|
-
imageCount: slice.images.length
|
|
2787
|
-
}, slice.images.map(function (image, index) {
|
|
2788
|
-
return React.createElement(ItemContainer, {
|
|
2789
|
-
key: image.id,
|
|
2790
|
-
ref: imageRef
|
|
2791
|
-
}, React.createElement(Flex, {
|
|
2792
|
-
height: "full",
|
|
2793
|
-
width: "full",
|
|
2794
|
-
justifyContent: "end",
|
|
2795
|
-
flexDirection: "column",
|
|
2796
|
-
gap: "2"
|
|
2797
|
-
}, React.createElement(ImageContainer, {
|
|
2798
|
-
aspectRatio: getClosestRatio(image.img.img.data.attributes.width, image.img.img.data.attributes.height)
|
|
2799
|
-
}, React.createElement(Image, {
|
|
2800
|
-
src: strapiMediaUrl(image.img.img, 'large'),
|
|
2801
|
-
alt: image.img.alt,
|
|
2802
|
-
fill: true,
|
|
2803
|
-
style: {
|
|
2804
|
-
objectFit: image.img.objectFit || 'cover',
|
|
2805
|
-
cursor: isMobile ? 'unset' : 'pointer'
|
|
2806
|
-
},
|
|
2807
|
-
onClick: function onClick() {
|
|
2808
|
-
setSliderIndex(index);
|
|
2809
|
-
if (!isMobile) setIsOpen(true);
|
|
2810
|
-
}
|
|
2811
|
-
})), React.createElement(Text, {
|
|
2812
|
-
height: "6"
|
|
2813
|
-
}, image.caption)));
|
|
2814
|
-
}))), React.createElement(ButtonsContainer, {
|
|
2815
|
-
show: allowScroll && !isOpen
|
|
2816
|
-
}, React.createElement(Box, null, React.createElement(AnimatePresence, null, canMoveLeft && React.createElement(IconButton, {
|
|
2817
|
-
key: "leftButton",
|
|
2818
|
-
as: motion.button,
|
|
2819
|
-
initial: {
|
|
2820
|
-
opacity: 0
|
|
2821
|
-
},
|
|
2822
|
-
animate: {
|
|
2823
|
-
opacity: 1
|
|
2824
|
-
},
|
|
2825
|
-
exit: {
|
|
2826
|
-
opacity: 0
|
|
2827
|
-
},
|
|
2828
|
-
size: "lg",
|
|
2829
|
-
variant: "outline",
|
|
2830
|
-
onClick: function onClick() {
|
|
2831
|
-
return setSliderIndex(sliderIndex - 1);
|
|
2832
|
-
},
|
|
2833
|
-
"aria-label": "Move left",
|
|
2834
|
-
icon: React.createElement(ArrowLeft, {
|
|
2835
|
-
size: 16
|
|
2836
|
-
}),
|
|
2837
|
-
pointerEvents: "auto"
|
|
2838
|
-
}))), React.createElement(Box, null, React.createElement(AnimatePresence, null, canMoveRight && React.createElement(IconButton, {
|
|
2839
|
-
key: "rightButton",
|
|
2840
|
-
as: motion.button,
|
|
2841
|
-
initial: {
|
|
2842
|
-
opacity: 0
|
|
2843
|
-
},
|
|
2844
|
-
animate: {
|
|
2845
|
-
opacity: 1
|
|
2846
|
-
},
|
|
2847
|
-
exit: {
|
|
2848
|
-
opacity: 0
|
|
2849
|
-
},
|
|
2850
|
-
size: "lg",
|
|
2851
|
-
variant: "outline",
|
|
2852
|
-
onClick: function onClick() {
|
|
2853
|
-
return setSliderIndex(sliderIndex + 1);
|
|
2854
|
-
},
|
|
2855
|
-
"aria-label": "Move right",
|
|
2856
|
-
icon: React.createElement(ArrowRight, {
|
|
2857
|
-
size: 16
|
|
2858
|
-
}),
|
|
2859
|
-
pointerEvents: "auto"
|
|
2860
|
-
})))), React.createElement(FullScreenImage, {
|
|
2861
|
-
images: slice.images.map(function (image) {
|
|
2862
|
-
return image.img;
|
|
2863
|
-
}),
|
|
2864
|
-
openIndex: sliderIndex,
|
|
2865
|
-
isOpen: isOpen,
|
|
2866
|
-
onClose: function onClose() {
|
|
2867
|
-
return setIsOpen(false);
|
|
2868
|
-
}
|
|
2869
|
-
}));
|
|
2870
|
-
};
|
|
2871
|
-
|
|
2872
|
-
var SideBySideImages = function SideBySideImages(_ref) {
|
|
2873
|
-
var slice = _ref.slice;
|
|
2874
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, React.createElement(Grid, {
|
|
2875
|
-
templateColumns: "repeat(12, 1fr)",
|
|
2876
|
-
gap: "4"
|
|
2877
|
-
}, React.createElement(GridItem, {
|
|
2878
|
-
colSpan: [12, null, null, 7]
|
|
2879
|
-
}, React.createElement(SimpleGrid, {
|
|
2880
|
-
columns: [1, null, null, 2],
|
|
2881
|
-
gap: ['12', null, null, '6']
|
|
2882
|
-
}, slice.images.map(function (image) {
|
|
2883
|
-
return React.createElement(Box, {
|
|
2884
|
-
key: image.id
|
|
2885
|
-
}, React.createElement(Box, {
|
|
2886
|
-
height: "md",
|
|
2887
|
-
position: "relative",
|
|
2888
|
-
borderRadius: "xl"
|
|
2889
|
-
}, React.createElement(Image, {
|
|
2890
|
-
src: strapiMediaUrl(image.img.img, 'large'),
|
|
2891
|
-
alt: image.img.alt,
|
|
2892
|
-
fill: true,
|
|
2893
|
-
style: {
|
|
2894
|
-
objectFit: image.img.objectFit || 'cover',
|
|
2895
|
-
borderRadius: 'var(--boemly-radii-xl)'
|
|
2896
|
-
}
|
|
2897
|
-
})), React.createElement(Text, {
|
|
2898
|
-
mt: "3",
|
|
2899
|
-
size: "xsLowNormal"
|
|
2900
|
-
}, image.caption));
|
|
2901
|
-
}))))));
|
|
2902
|
-
};
|
|
2903
|
-
|
|
2904
|
-
var CtaCardType;
|
|
2905
|
-
(function (CtaCardType) {
|
|
2906
|
-
CtaCardType["Left"] = "left";
|
|
2907
|
-
CtaCardType["CenterWithoutImage"] = "centerWithoutImage";
|
|
2908
|
-
CtaCardType["CenterWithImage"] = "centerWithImage";
|
|
2909
|
-
CtaCardType["Right"] = "right";
|
|
2910
|
-
})(CtaCardType || (CtaCardType = {}));
|
|
2911
|
-
var STATES = {
|
|
2912
|
-
left: {
|
|
2913
|
-
textAlign: 'left',
|
|
2914
|
-
paddingTagline: '0',
|
|
2915
|
-
paddingTitle: '0',
|
|
2916
|
-
justifyContent: 'space-between',
|
|
2917
|
-
buttonJustifyContent: 'start',
|
|
2918
|
-
textMarginLeft: ['0', null, null, null, '14']
|
|
2919
|
-
},
|
|
2920
|
-
centerWithoutImage: {
|
|
2921
|
-
textAlign: 'center',
|
|
2922
|
-
paddingTagline: '28',
|
|
2923
|
-
paddingTitle: '20',
|
|
2924
|
-
justifyContent: 'center',
|
|
2925
|
-
buttonJustifyContent: 'center',
|
|
2926
|
-
textMarginLeft: '0'
|
|
2927
|
-
},
|
|
2928
|
-
centerWithImage: {
|
|
2929
|
-
textAlign: 'center',
|
|
2930
|
-
paddingTagline: '28',
|
|
2931
|
-
paddingTitle: '20',
|
|
2932
|
-
justifyContent: 'center',
|
|
2933
|
-
buttonJustifyContent: 'center',
|
|
2934
|
-
textMarginLeft: '0'
|
|
2935
|
-
},
|
|
2936
|
-
right: {
|
|
2937
|
-
textAlign: 'left',
|
|
2938
|
-
paddingTagline: '0',
|
|
2939
|
-
paddingTitle: '0',
|
|
2940
|
-
justifyContent: 'start',
|
|
2941
|
-
buttonJustifyContent: 'start',
|
|
2942
|
-
textMarginLeft: '0'
|
|
2943
|
-
}
|
|
2944
|
-
};
|
|
2945
|
-
var VARIANTS$3 = {
|
|
2946
|
-
gray: {
|
|
2947
|
-
backgroundColor: {
|
|
2948
|
-
left: 'primary.50',
|
|
2949
|
-
centerWithoutImage: 'primary.50',
|
|
2950
|
-
centerWithImage: 'primary.50',
|
|
2951
|
-
right: 'primary.50'
|
|
2952
|
-
},
|
|
2953
|
-
taglineColor: {
|
|
2954
|
-
left: 'primary.500',
|
|
2955
|
-
centerWithoutImage: 'primary.500',
|
|
2956
|
-
centerWithImage: 'white',
|
|
2957
|
-
right: 'primary.500'
|
|
2958
|
-
},
|
|
2959
|
-
titleColor: {
|
|
2960
|
-
left: 'black',
|
|
2961
|
-
centerWithoutImage: 'black',
|
|
2962
|
-
centerWithImage: 'white',
|
|
2963
|
-
right: 'black'
|
|
2964
|
-
},
|
|
2965
|
-
subTitleColor: {
|
|
2966
|
-
left: 'black',
|
|
2967
|
-
centerWithoutImage: 'black',
|
|
2968
|
-
centerWithImage: 'white',
|
|
2969
|
-
right: 'black'
|
|
2970
|
-
}
|
|
2971
|
-
},
|
|
2972
|
-
green: {
|
|
2973
|
-
backgroundColor: {
|
|
2974
|
-
left: 'primary.800',
|
|
2975
|
-
centerWithoutImage: 'primary.800',
|
|
2976
|
-
centerWithImage: 'primary.800',
|
|
2977
|
-
right: 'primary.800'
|
|
2978
|
-
},
|
|
2979
|
-
taglineColor: {
|
|
2980
|
-
left: 'white',
|
|
2981
|
-
centerWithoutImage: 'white',
|
|
2982
|
-
centerWithImage: 'white',
|
|
2983
|
-
right: 'white'
|
|
2984
|
-
},
|
|
2985
|
-
titleColor: {
|
|
2986
|
-
left: 'white',
|
|
2987
|
-
centerWithoutImage: 'white',
|
|
2988
|
-
centerWithImage: 'white',
|
|
2989
|
-
right: 'white'
|
|
2990
|
-
},
|
|
2991
|
-
subTitleColor: {
|
|
2992
|
-
left: 'white',
|
|
2993
|
-
centerWithoutImage: 'white',
|
|
2994
|
-
centerWithImage: 'white',
|
|
2995
|
-
right: 'white'
|
|
2996
|
-
}
|
|
2997
|
-
},
|
|
2998
|
-
white: {
|
|
2999
|
-
backgroundColor: {
|
|
3000
|
-
left: 'white',
|
|
3001
|
-
centerWithoutImage: 'white',
|
|
3002
|
-
centerWithImage: 'primary.800',
|
|
3003
|
-
right: 'white'
|
|
3004
|
-
},
|
|
3005
|
-
taglineColor: {
|
|
3006
|
-
left: 'primary.500',
|
|
3007
|
-
centerWithoutImage: 'primary.500',
|
|
3008
|
-
centerWithImage: 'white',
|
|
3009
|
-
right: 'primary.500'
|
|
3010
|
-
},
|
|
3011
|
-
titleColor: {
|
|
3012
|
-
left: 'black',
|
|
3013
|
-
centerWithoutImage: 'black',
|
|
3014
|
-
centerWithImage: 'white',
|
|
3015
|
-
right: 'black'
|
|
3016
|
-
},
|
|
3017
|
-
subTitleColor: {
|
|
3018
|
-
left: 'black',
|
|
3019
|
-
centerWithoutImage: 'black',
|
|
3020
|
-
centerWithImage: 'white',
|
|
3021
|
-
right: 'black'
|
|
3022
|
-
}
|
|
3023
|
-
}
|
|
3024
|
-
};
|
|
3025
|
-
var getTypeOfCard = function getTypeOfCard(ctaCard) {
|
|
3026
|
-
if (ctaCard.textAlign === 'center') {
|
|
3027
|
-
if (ctaCard.image) {
|
|
3028
|
-
return CtaCardType.CenterWithImage;
|
|
3029
|
-
}
|
|
3030
|
-
return CtaCardType.CenterWithoutImage;
|
|
3031
|
-
}
|
|
3032
|
-
if (ctaCard.textAlign === 'left') {
|
|
3033
|
-
return CtaCardType.Left;
|
|
3034
|
-
}
|
|
3035
|
-
return CtaCardType.Right;
|
|
3036
|
-
};
|
|
3037
|
-
var Cta = function Cta(_ref) {
|
|
3038
|
-
var slice = _ref.slice;
|
|
3039
|
-
var _useContext = useContext(IntlContext),
|
|
3040
|
-
formatMessage = _useContext.formatMessage;
|
|
3041
|
-
return React.createElement(DefaultSectionContainer, {
|
|
3042
|
-
backgroundColor: VARIANTS$3[slice.variant].backgroundColor.left
|
|
3043
|
-
}, React.createElement(Wrapper, null, slice.title ? React.createElement(React.Fragment, null, React.createElement(Flex, {
|
|
3044
|
-
alignItems: "center",
|
|
3045
|
-
flexDirection: "column"
|
|
3046
|
-
}, React.createElement(DefaultSectionHeader, {
|
|
3047
|
-
tagline: slice.tagline,
|
|
3048
|
-
taglineProps: {
|
|
3049
|
-
color: VARIANTS$3[slice.variant].taglineColor.left,
|
|
3050
|
-
textAlign: 'center',
|
|
3051
|
-
maxWidth: '3xl'
|
|
3052
|
-
},
|
|
3053
|
-
title: slice.title,
|
|
3054
|
-
titleProps: {
|
|
3055
|
-
color: VARIANTS$3[slice.variant].titleColor.left,
|
|
3056
|
-
textAlign: 'center',
|
|
3057
|
-
width: 'full',
|
|
3058
|
-
maxWidth: '3xl'
|
|
3059
|
-
},
|
|
3060
|
-
text: slice.subTitle,
|
|
3061
|
-
textProps: {
|
|
3062
|
-
color: VARIANTS$3[slice.variant].subTitleColor.left,
|
|
3063
|
-
textAlign: 'center',
|
|
3064
|
-
maxWidth: '3xl'
|
|
3065
|
-
}
|
|
3066
|
-
})), React.createElement(Spacer, {
|
|
3067
|
-
height: ['16', null, null, null, '20']
|
|
3068
|
-
})) : React.createElement(React.Fragment, null), React.createElement(Flex, {
|
|
3069
|
-
gap: "4",
|
|
3070
|
-
flexDirection: "column"
|
|
3071
|
-
}, slice.ctaCards.map(function (ctaCard) {
|
|
3072
|
-
var ctaCardType = getTypeOfCard(ctaCard);
|
|
3073
|
-
return React.createElement(Container, {
|
|
3074
|
-
backgroundColor: VARIANTS$3[ctaCard.variant].backgroundColor[ctaCardType],
|
|
3075
|
-
key: ctaCard.id,
|
|
3076
|
-
position: "relative",
|
|
3077
|
-
elevation: "none"
|
|
3078
|
-
}, ctaCard.image && ctaCardType === CtaCardType.CenterWithImage ? React.createElement(Box, {
|
|
3079
|
-
position: "absolute",
|
|
3080
|
-
left: "0",
|
|
3081
|
-
top: "0",
|
|
3082
|
-
width: "full",
|
|
3083
|
-
height: "full",
|
|
3084
|
-
borderRadius: "xl",
|
|
3085
|
-
overflow: "hidden"
|
|
3086
|
-
}, React.createElement(Image, {
|
|
3087
|
-
src: strapiMediaUrl(ctaCard.image.img, 'large'),
|
|
3088
|
-
alt: ctaCard.image.alt,
|
|
3089
|
-
fill: true,
|
|
3090
|
-
style: {
|
|
3091
|
-
objectFit: ctaCard.image.objectFit || 'cover',
|
|
3092
|
-
borderRadius: 'var(--boemly-radii-xl)'
|
|
3093
|
-
}
|
|
3094
|
-
}), React.createElement(Gradient, null)) : React.createElement(React.Fragment, null), ctaCard.backgroundShape ? React.createElement(Box, {
|
|
3095
|
-
position: "absolute",
|
|
3096
|
-
left: "0",
|
|
3097
|
-
top: "0",
|
|
3098
|
-
width: "full",
|
|
3099
|
-
height: "full"
|
|
3100
|
-
}, React.createElement(Image, {
|
|
3101
|
-
src: ctaCardType === CtaCardType.CenterWithImage || ctaCard.variant === 'green' ? CDN_URI + "/assets/v3/strapi-slices/shapes-dark.svg" : CDN_URI + "/assets/v3/strapi-slices/shapes-light.svg",
|
|
3102
|
-
alt: formatMessage({
|
|
3103
|
-
id: "sections.cta.backgroundShapes" + (ctaCardType === CtaCardType.CenterWithImage || ctaCard.variant === 'green' ? 'Dark' : 'Light')
|
|
3104
|
-
}),
|
|
3105
|
-
fill: true,
|
|
3106
|
-
style: {
|
|
3107
|
-
objectFit: 'cover',
|
|
3108
|
-
borderRadius: 'var(--boemly-radii-xl)'
|
|
3109
|
-
}
|
|
3110
|
-
})) : React.createElement(React.Fragment, null), React.createElement(Flex, {
|
|
3111
|
-
flexDir: ['column', null, null, null, 'row'],
|
|
3112
|
-
flexGrow: "1",
|
|
3113
|
-
gap: ['8', null, null, null, '16'],
|
|
3114
|
-
justifyContent: STATES[ctaCardType].justifyContent
|
|
3115
|
-
}, ctaCard.image && ctaCardType === CtaCardType.Right ? React.createElement(Box, {
|
|
3116
|
-
position: "relative",
|
|
3117
|
-
height: ['3xs', null, null, null, 'auto'],
|
|
3118
|
-
minWidth: [null, null, null, null, '50%']
|
|
3119
|
-
}, React.createElement(Image, {
|
|
3120
|
-
src: strapiMediaUrl(ctaCard.image.img, 'medium'),
|
|
3121
|
-
alt: ctaCard.image.alt,
|
|
3122
|
-
fill: true,
|
|
3123
|
-
style: {
|
|
3124
|
-
objectFit: ctaCard.image.objectFit || 'cover',
|
|
3125
|
-
borderRadius: 'var(--boemly-radii-xl)'
|
|
3126
|
-
}
|
|
3127
|
-
})) : React.createElement(React.Fragment, null), React.createElement(Box, {
|
|
3128
|
-
zIndex: "base",
|
|
3129
|
-
marginLeft: STATES[ctaCardType].textMarginLeft,
|
|
3130
|
-
maxWidth: "3xl"
|
|
3131
|
-
}, React.createElement(Spacer, {
|
|
3132
|
-
height: ['0', null, null, null, '20']
|
|
3133
|
-
}), React.createElement(DefaultSectionHeader, {
|
|
3134
|
-
tagline: ctaCard.tagline,
|
|
3135
|
-
taglineProps: {
|
|
3136
|
-
textAlign: STATES[ctaCardType].textAlign,
|
|
3137
|
-
color: VARIANTS$3[ctaCard.variant].taglineColor[ctaCardType],
|
|
3138
|
-
paddingX: ['0', null, null, null, STATES[ctaCardType].paddingTagline]
|
|
3139
|
-
},
|
|
3140
|
-
title: ctaCard.title,
|
|
3141
|
-
titleProps: {
|
|
3142
|
-
fontFamily: 'Inter',
|
|
3143
|
-
fontSize: '4xl',
|
|
3144
|
-
fontWeight: '600',
|
|
3145
|
-
lineHeight: '9',
|
|
3146
|
-
textAlign: STATES[ctaCardType].textAlign,
|
|
3147
|
-
paddingX: ['0', null, null, null, STATES[ctaCardType].paddingTitle],
|
|
3148
|
-
color: VARIANTS$3[ctaCard.variant].titleColor[ctaCardType]
|
|
3149
|
-
},
|
|
3150
|
-
text: ctaCard.subTitle,
|
|
3151
|
-
textProps: {
|
|
3152
|
-
textAlign: STATES[ctaCardType].textAlign,
|
|
3153
|
-
color: VARIANTS$3[ctaCard.variant].subTitleColor[ctaCardType]
|
|
3154
|
-
}
|
|
3155
|
-
}), ctaCard.buttons && ctaCard.buttons.length > 0 ? React.createElement(React.Fragment, null, React.createElement(Spacer, {
|
|
3156
|
-
height: "8"
|
|
3157
|
-
}), React.createElement(Flex, {
|
|
3158
|
-
gap: "2",
|
|
3159
|
-
justifyContent: STATES[ctaCardType].buttonJustifyContent
|
|
3160
|
-
}, ctaCard.buttons && ctaCard.buttons.map(function (button) {
|
|
3161
|
-
return React.createElement(StrapiLinkButton, {
|
|
3162
|
-
key: button.button.id,
|
|
3163
|
-
link: button.button,
|
|
3164
|
-
size: "md",
|
|
3165
|
-
variant: button.variant
|
|
3166
|
-
});
|
|
3167
|
-
}))) : React.createElement(React.Fragment, null), React.createElement(Spacer, {
|
|
3168
|
-
height: ['1', null, null, null, '20']
|
|
3169
|
-
})), ctaCard.image && ctaCardType === CtaCardType.Left ? React.createElement(Box, {
|
|
3170
|
-
position: "relative",
|
|
3171
|
-
height: ['3xs', null, null, null, 'auto'],
|
|
3172
|
-
minWidth: [null, null, null, null, '50%']
|
|
3173
|
-
}, React.createElement(Image, {
|
|
3174
|
-
src: strapiMediaUrl(ctaCard.image.img, 'medium'),
|
|
3175
|
-
alt: ctaCard.image.alt,
|
|
3176
|
-
fill: true,
|
|
3177
|
-
style: {
|
|
3178
|
-
objectFit: ctaCard.image.objectFit || 'cover',
|
|
3179
|
-
borderRadius: 'var(--boemly-radii-xl)'
|
|
3180
|
-
}
|
|
3181
|
-
})) : React.createElement(React.Fragment, null)));
|
|
3182
|
-
}))));
|
|
3183
|
-
};
|
|
3184
|
-
|
|
3185
|
-
var CtaOnly = function CtaOnly(_ref) {
|
|
3186
|
-
var slice = _ref.slice;
|
|
3187
|
-
return React.createElement(Wrapper, null, React.createElement(Box, {
|
|
3188
|
-
position: "absolute",
|
|
3189
|
-
top: "-28",
|
|
3190
|
-
transform: "translateY(50%)"
|
|
3191
|
-
}, React.createElement(StrapiLinkButton, {
|
|
3192
|
-
size: "md",
|
|
3193
|
-
link: slice.button
|
|
3194
|
-
})));
|
|
3195
|
-
};
|
|
3196
|
-
|
|
3197
|
-
var Glossary = function Glossary(_ref) {
|
|
3198
|
-
var slice = _ref.slice;
|
|
3199
|
-
var _useCopyToClipboard = useCopyToClipboard(),
|
|
3200
|
-
copyToClipboard = _useCopyToClipboard[1];
|
|
3201
|
-
var _useContext = useContext(IntlContext),
|
|
3202
|
-
formatMessage = _useContext.formatMessage;
|
|
3203
|
-
var grouped = {};
|
|
3204
|
-
var _useState = useState(),
|
|
3205
|
-
copiedItem = _useState[0],
|
|
3206
|
-
setCopiedItem = _useState[1];
|
|
3207
|
-
slice.glossary_items.sort(function (a, b) {
|
|
3208
|
-
return a.attributes.title.localeCompare(b.attributes.title);
|
|
3209
|
-
}).forEach(function (curr) {
|
|
3210
|
-
var _curr$attributes$titl;
|
|
3211
|
-
var index = ((_curr$attributes$titl = curr.attributes.title.at(0)) == null ? void 0 : _curr$attributes$titl.toUpperCase()) || 'A';
|
|
3212
|
-
if (!grouped[index]) {
|
|
3213
|
-
grouped[index] = [];
|
|
3214
|
-
}
|
|
3215
|
-
grouped[index].push(curr.attributes);
|
|
3216
|
-
}, {});
|
|
3217
|
-
var handleAnchorClick = /*#__PURE__*/function () {
|
|
3218
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(slug) {
|
|
3219
|
-
var _window;
|
|
3220
|
-
var currentUrl;
|
|
3221
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
3222
|
-
while (1) switch (_context.prev = _context.next) {
|
|
3223
|
-
case 0:
|
|
3224
|
-
if ((_window = window) != null && _window.location) {
|
|
3225
|
-
currentUrl = window.location.href.split('#')[0];
|
|
3226
|
-
copyToClipboard(currentUrl + "#" + slug);
|
|
3227
|
-
setCopiedItem(slug);
|
|
3228
|
-
setTimeout(function () {
|
|
3229
|
-
setCopiedItem(undefined);
|
|
3230
|
-
}, 1200);
|
|
3231
|
-
}
|
|
3232
|
-
case 1:
|
|
3233
|
-
case "end":
|
|
3234
|
-
return _context.stop();
|
|
3235
|
-
}
|
|
3236
|
-
}, _callee);
|
|
3237
|
-
}));
|
|
3238
|
-
return function handleAnchorClick(_x) {
|
|
3239
|
-
return _ref2.apply(this, arguments);
|
|
3240
|
-
};
|
|
3241
|
-
}();
|
|
3242
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, React.createElement(SimpleGrid, null, Object.entries(grouped).map(function (_ref3, index) {
|
|
3243
|
-
var letter = _ref3[0],
|
|
3244
|
-
items = _ref3[1];
|
|
3245
|
-
return React.createElement(GridItem, {
|
|
3246
|
-
maxW: "xl",
|
|
3247
|
-
placeSelf: "center",
|
|
3248
|
-
key: letter
|
|
3249
|
-
}, React.createElement(Heading, {
|
|
3250
|
-
size: "3xl",
|
|
3251
|
-
mb: "8"
|
|
3252
|
-
}, letter), React.createElement(SimpleGrid, {
|
|
3253
|
-
spacing: "6"
|
|
3254
|
-
}, items.map(function (item) {
|
|
3255
|
-
return React.createElement(GridItem, {
|
|
3256
|
-
key: item.slug
|
|
3257
|
-
}, React.createElement(Flex, {
|
|
3258
|
-
mb: "2",
|
|
3259
|
-
gap: "1.5",
|
|
3260
|
-
alignItems: "center"
|
|
3261
|
-
}, React.createElement(Heading, {
|
|
3262
|
-
size: "xl",
|
|
3263
|
-
id: item.slug,
|
|
3264
|
-
scrollMarginTop: "calc(var(--header-height) + var(--boemly-sizes-10))"
|
|
3265
|
-
}, item.title), React.createElement(IconButton, {
|
|
3266
|
-
variant: "ghost",
|
|
3267
|
-
size: "xs",
|
|
3268
|
-
icon: copiedItem === item.slug ? React.createElement(Check, {
|
|
3269
|
-
size: "16",
|
|
3270
|
-
"data-testid": "check-icon"
|
|
3271
|
-
}) : React.createElement(Link$2, {
|
|
3272
|
-
size: "16"
|
|
3273
|
-
}),
|
|
3274
|
-
title: formatMessage({
|
|
3275
|
-
id: 'sections.glossary.copyButtonLabel'
|
|
3276
|
-
}),
|
|
3277
|
-
"aria-label": formatMessage({
|
|
3278
|
-
id: 'sections.glossary.copyButtonLabel'
|
|
3279
|
-
}),
|
|
3280
|
-
onClick: function () {
|
|
3281
|
-
var _onClick = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
3282
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
3283
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
3284
|
-
case 0:
|
|
3285
|
-
return _context2.abrupt("return", handleAnchorClick(item.slug));
|
|
3286
|
-
case 1:
|
|
3287
|
-
case "end":
|
|
3288
|
-
return _context2.stop();
|
|
3289
|
-
}
|
|
3290
|
-
}, _callee2);
|
|
3291
|
-
}));
|
|
3292
|
-
function onClick() {
|
|
3293
|
-
return _onClick.apply(this, arguments);
|
|
3294
|
-
}
|
|
3295
|
-
return onClick;
|
|
3296
|
-
}()
|
|
3297
|
-
})), React.createElement(Text, {
|
|
3298
|
-
color: "black"
|
|
3299
|
-
}, item.text));
|
|
3300
|
-
})), index !== Object.keys(grouped).length - 1 && React.createElement(Divider, {
|
|
3301
|
-
maxW: "xl",
|
|
3302
|
-
placeSelf: "center",
|
|
3303
|
-
mb: "10",
|
|
3304
|
-
mt: "10"
|
|
3305
|
-
}));
|
|
3306
|
-
}))));
|
|
3307
|
-
};
|
|
3308
|
-
|
|
3309
|
-
var MINIMUM_CONTRIBUTION_VALUE_IN_MONEY = 10;
|
|
3310
|
-
var MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY = 60000;
|
|
3311
|
-
|
|
3312
|
-
var ShopCheckout = function ShopCheckout(_ref) {
|
|
3313
|
-
var slice = _ref.slice;
|
|
3314
|
-
var _useToken = useToken('colors', ['primary.50']),
|
|
3315
|
-
primary50 = _useToken[0];
|
|
3316
|
-
var _useContext = useContext(IntlContext),
|
|
3317
|
-
formatMessage = _useContext.formatMessage,
|
|
3318
|
-
formatNumber = _useContext.formatNumber,
|
|
3319
|
-
locale = _useContext.locale;
|
|
3320
|
-
var _useRouter = useRouter(),
|
|
3321
|
-
push = _useRouter.push;
|
|
3322
|
-
var validateForm = useCallback(function (values) {
|
|
3323
|
-
var errors = {};
|
|
3324
|
-
if (!values.contributionValue) {
|
|
3325
|
-
errors.contributionValue = formatMessage({
|
|
3326
|
-
id: 'sections.shopCheckout.contributionValue.validation.empty'
|
|
3327
|
-
});
|
|
3328
|
-
} else if (values.contributionValue < MINIMUM_CONTRIBUTION_VALUE_IN_MONEY) {
|
|
3329
|
-
errors.contributionValue = formatMessage({
|
|
3330
|
-
id: "sections.shopCheckout.contributionValue.validation.tooLow." + slice.currency
|
|
3331
|
-
});
|
|
3332
|
-
} else if (values.contributionValue > MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY) {
|
|
3333
|
-
errors.contributionValue = formatMessage({
|
|
3334
|
-
id: 'sections.shopCheckout.contributionValue.validation.tooHigh'
|
|
3335
|
-
});
|
|
3336
|
-
}
|
|
3337
|
-
return errors;
|
|
3338
|
-
}, [locale]);
|
|
3339
|
-
var onSubmit = function onSubmit(_ref2) {
|
|
3340
|
-
var contributionValue = _ref2.contributionValue;
|
|
3341
|
-
var url = new URL(FPM_API_URI + "/v1/webhooks/shop/checkout");
|
|
3342
|
-
url.searchParams.append('batchId', slice.batchId);
|
|
3343
|
-
url.searchParams.append('quantity', Math.floor(contributionValue / slice.pricePerKg).toString());
|
|
3344
|
-
if (slice.couponId) url.searchParams.append('couponId', slice.couponId);
|
|
3345
|
-
push(url.toString());
|
|
3346
|
-
};
|
|
3347
|
-
return React.createElement(DefaultSectionContainer, {
|
|
3348
|
-
backgroundColor: primary50,
|
|
3349
|
-
title: slice.title
|
|
3350
|
-
}, React.createElement(Wrapper, null, React.createElement(Flex, {
|
|
3351
|
-
flexDir: ['column', null, null, null, 'row'],
|
|
3352
|
-
justifyContent: "space-between",
|
|
3353
|
-
alignItems: ['left', null, null, null, 'center']
|
|
3354
|
-
}, React.createElement(Box, {
|
|
3355
|
-
marginRight: ['0', null, null, null, '36'],
|
|
3356
|
-
flexShrink: 2
|
|
3357
|
-
}, React.createElement(DefaultSectionHeader, {
|
|
3358
|
-
tagline: slice.tagline,
|
|
3359
|
-
title: slice.title,
|
|
3360
|
-
text: slice.text
|
|
3361
|
-
})), React.createElement(Container, {
|
|
3362
|
-
maxWidth: "md",
|
|
3363
|
-
padding: "lg",
|
|
3364
|
-
shadow: "lg"
|
|
3365
|
-
}, slice.badge ? React.createElement(React.Fragment, null, React.createElement(Badge, {
|
|
3366
|
-
colorScheme: "green",
|
|
3367
|
-
textTransform: "none",
|
|
3368
|
-
whiteSpace: "unset"
|
|
3369
|
-
}, slice.badge), React.createElement(Spacer, {
|
|
3370
|
-
height: "3"
|
|
3371
|
-
})) : React.createElement(React.Fragment, null), React.createElement(RichText, {
|
|
3372
|
-
content: slice.checkoutText,
|
|
3373
|
-
textProps: {
|
|
3374
|
-
color: 'gray.500'
|
|
3375
|
-
}
|
|
3376
|
-
}), React.createElement(Spacer, {
|
|
3377
|
-
height: "6"
|
|
3378
|
-
}), React.createElement(Divider, null), React.createElement(Spacer, {
|
|
3379
|
-
height: "6"
|
|
3380
|
-
}), React.createElement(LabelNumberPair, {
|
|
3381
|
-
label: formatMessage({
|
|
3382
|
-
id: 'sections.shopCheckout.intro.price'
|
|
3383
|
-
}),
|
|
3384
|
-
number: formatNumber(slice.pricePerKg * 100, {
|
|
3385
|
-
style: 'currency',
|
|
3386
|
-
currency: slice.currency
|
|
3387
|
-
}) + "/" + formatNumber(100, {
|
|
3388
|
-
style: 'unit',
|
|
3389
|
-
unit: 'kilogram'
|
|
3390
|
-
}) + " CO\u2082"
|
|
3391
|
-
}), React.createElement(Spacer, {
|
|
3392
|
-
height: "6"
|
|
3393
|
-
}), React.createElement(Divider, null), React.createElement(Spacer, {
|
|
3394
|
-
height: "6"
|
|
3395
|
-
}), React.createElement(Formik, {
|
|
3396
|
-
initialValues: {
|
|
3397
|
-
contributionValue: slice.initialContributionValue
|
|
3398
|
-
},
|
|
3399
|
-
validate: validateForm,
|
|
3400
|
-
onSubmit: onSubmit
|
|
3401
|
-
}, function (_ref3) {
|
|
3402
|
-
var errors = _ref3.errors,
|
|
3403
|
-
touched = _ref3.touched,
|
|
3404
|
-
handleSubmit = _ref3.handleSubmit,
|
|
3405
|
-
values = _ref3.values;
|
|
3406
|
-
return React.createElement(Form, {
|
|
3407
|
-
onSubmit: handleSubmit
|
|
3408
|
-
}, React.createElement(Box, {
|
|
3409
|
-
width: "full"
|
|
3410
|
-
}, React.createElement(Field, {
|
|
3411
|
-
name: "contributionValue"
|
|
3412
|
-
}, function (_ref4) {
|
|
3413
|
-
var field = _ref4.field;
|
|
3414
|
-
return React.createElement(BoemlyFormControl, {
|
|
3415
|
-
id: "contributionValue",
|
|
3416
|
-
size: "md",
|
|
3417
|
-
inputProps: _extends({
|
|
3418
|
-
type: 'number'
|
|
3419
|
-
}, field),
|
|
3420
|
-
label: formatMessage({
|
|
3421
|
-
id: "sections.shopCheckout.contributionValue.label." + slice.currency
|
|
3422
|
-
}),
|
|
3423
|
-
rightAddonsOrElements: [React.createElement(InputRightAddon, {
|
|
3424
|
-
key: "1"
|
|
3425
|
-
}, formatMessage({
|
|
3426
|
-
id: "sections.shopCheckout.contributionValue.unit." + slice.currency
|
|
3427
|
-
}))],
|
|
3428
|
-
isInvalid: !!errors.contributionValue && touched.contributionValue,
|
|
3429
|
-
errorMessage: errors.contributionValue
|
|
3430
|
-
});
|
|
3431
|
-
})), React.createElement(Spacer, {
|
|
3432
|
-
height: "6"
|
|
3433
|
-
}), React.createElement(SimpleGrid, {
|
|
3434
|
-
columns: 2,
|
|
3435
|
-
gap: "4"
|
|
3436
|
-
}, React.createElement(LabelNumberPair, {
|
|
3437
|
-
label: formatMessage({
|
|
3438
|
-
id: 'sections.shopCheckout.summary.kg'
|
|
3439
|
-
}),
|
|
3440
|
-
number: formatNumber(Math.floor(values.contributionValue / slice.pricePerKg), {
|
|
3441
|
-
style: 'unit',
|
|
3442
|
-
unit: 'kilogram',
|
|
3443
|
-
maximumFractionDigits: 0
|
|
3444
|
-
}) + " CO\u2082"
|
|
3445
|
-
}), React.createElement(LabelNumberPair, {
|
|
3446
|
-
label: formatMessage({
|
|
3447
|
-
id: 'sections.shopCheckout.summary.price'
|
|
3448
|
-
}),
|
|
3449
|
-
number: formatNumber(Math.floor(values.contributionValue / slice.pricePerKg) * slice.pricePerKg, {
|
|
3450
|
-
style: 'currency',
|
|
3451
|
-
currency: slice.currency,
|
|
3452
|
-
minimumFractionDigits: 2,
|
|
3453
|
-
maximumFractionDigits: 2
|
|
3454
|
-
})
|
|
3455
|
-
})), React.createElement(Spacer, {
|
|
3456
|
-
height: "6"
|
|
3457
|
-
}), React.createElement(Button, {
|
|
3458
|
-
type: "submit",
|
|
3459
|
-
width: "full"
|
|
3460
|
-
}, formatMessage({
|
|
3461
|
-
id: 'sections.shopCheckout.submit'
|
|
3462
|
-
})));
|
|
3463
|
-
})))));
|
|
3464
|
-
};
|
|
3465
|
-
|
|
3466
|
-
var VARIANTS$2 = {
|
|
3467
|
-
gray: {
|
|
3468
|
-
backgroundColor: 'primary.50',
|
|
3469
|
-
tagLineColor: 'primary.500',
|
|
3470
|
-
titleColor: 'black',
|
|
3471
|
-
subTitleColor: 'black',
|
|
3472
|
-
factKeyColor: 'gray.700',
|
|
3473
|
-
factValueColor: 'gray.700'
|
|
3474
|
-
},
|
|
3475
|
-
green: {
|
|
3476
|
-
backgroundColor: 'primary.800',
|
|
3477
|
-
tagLineColor: 'white',
|
|
3478
|
-
titleColor: 'white',
|
|
3479
|
-
subTitleColor: 'white',
|
|
3480
|
-
factKeyColor: 'whiteAlpha.900',
|
|
3481
|
-
factValueColor: 'white'
|
|
3482
|
-
},
|
|
3483
|
-
white: {
|
|
3484
|
-
backgroundColor: 'white',
|
|
3485
|
-
tagLineColor: 'primary.500',
|
|
3486
|
-
titleColor: 'black',
|
|
3487
|
-
subTitleColor: 'black',
|
|
3488
|
-
factKeyColor: 'gray.700',
|
|
3489
|
-
factValueColor: 'gray.700'
|
|
3490
|
-
}
|
|
3491
|
-
};
|
|
3492
|
-
var Facts = function Facts(_ref) {
|
|
3493
|
-
var slice = _ref.slice;
|
|
3494
|
-
return React.createElement(DefaultSectionContainer, {
|
|
3495
|
-
backgroundColor: VARIANTS$2[slice.variant].backgroundColor,
|
|
3496
|
-
flexDir: "column",
|
|
3497
|
-
textAlign: "center",
|
|
3498
|
-
justifyContent: "space-between",
|
|
3499
|
-
paddingX: ['6', null, '8'],
|
|
3500
|
-
title: slice.title
|
|
3501
|
-
}, React.createElement(React.Fragment, null, slice.title && React.createElement(React.Fragment, null, React.createElement(DefaultSectionHeader, {
|
|
3502
|
-
tagline: slice.tagline,
|
|
3503
|
-
text: slice.subTitle,
|
|
3504
|
-
title: slice.title,
|
|
3505
|
-
taglineProps: {
|
|
3506
|
-
color: VARIANTS$2[slice.variant].tagLineColor,
|
|
3507
|
-
textAlign: 'center'
|
|
3508
|
-
},
|
|
3509
|
-
titleProps: {
|
|
3510
|
-
color: VARIANTS$2[slice.variant].titleColor,
|
|
3511
|
-
textAlign: 'center',
|
|
3512
|
-
maxW: '6xl',
|
|
3513
|
-
marginX: 'auto'
|
|
3514
|
-
},
|
|
3515
|
-
textProps: {
|
|
3516
|
-
color: VARIANTS$2[slice.variant].subTitleColor,
|
|
3517
|
-
textAlign: 'center',
|
|
3518
|
-
maxW: '3xl',
|
|
3519
|
-
marginX: 'auto'
|
|
3520
|
-
}
|
|
3521
|
-
}), React.createElement(Spacer, {
|
|
3522
|
-
height: ['0', null, '12']
|
|
3523
|
-
})), React.createElement(Flex, {
|
|
3524
|
-
justifyContent: slice.facts.length < 3 ? 'center' : 'flex-start',
|
|
3525
|
-
alignItems: "center",
|
|
3526
|
-
flexWrap: "wrap",
|
|
3527
|
-
mx: [null, null, null, '22', '28'],
|
|
3528
|
-
flexDir: ['column', null, null, 'row'],
|
|
3529
|
-
gap: [null, null, null, '12']
|
|
3530
|
-
}, slice.facts.map(function (fact) {
|
|
3531
|
-
return React.createElement(Flex, {
|
|
3532
|
-
key: fact.key,
|
|
3533
|
-
flexDir: "column",
|
|
3534
|
-
width: ['var(--boemly-sizes-full)', null, null, 'calc((var(--boemly-sizes-full) - var(--boemly-space-24))/ 3 )'],
|
|
3535
|
-
mt: ['8', '8', '8', slice.facts.length > 3 ? '16' : '0']
|
|
3536
|
-
}, React.createElement(Heading, {
|
|
3537
|
-
fontSize: "6xl",
|
|
3538
|
-
fontFamily: "GintoNord",
|
|
3539
|
-
lineHeight: "10",
|
|
3540
|
-
fontWeight: "700",
|
|
3541
|
-
color: VARIANTS$2[slice.variant].factValueColor,
|
|
3542
|
-
mb: "2",
|
|
3543
|
-
as: "p"
|
|
3544
|
-
}, fact.value), React.createElement(Text, {
|
|
3545
|
-
size: "mdLowNormal",
|
|
3546
|
-
color: VARIANTS$2[slice.variant].factKeyColor
|
|
3547
|
-
}, fact.key));
|
|
3548
|
-
})), slice.button && React.createElement(React.Fragment, null, React.createElement(Spacer, {
|
|
3549
|
-
height: ['0', null, '20']
|
|
3550
|
-
}), React.createElement(StrapiLinkButton, {
|
|
3551
|
-
link: slice.button,
|
|
3552
|
-
size: "md",
|
|
3553
|
-
variant: slice.variant === 'green' ? 'outline' : 'solid'
|
|
3554
|
-
}))));
|
|
3555
|
-
};
|
|
3556
|
-
|
|
3557
|
-
var VARIANTS$1 = {
|
|
3558
|
-
white: {
|
|
3559
|
-
backgroundColor: 'white'
|
|
3560
|
-
},
|
|
3561
|
-
gray: {
|
|
3562
|
-
backgroundColor: 'primary.50'
|
|
3563
|
-
}
|
|
3564
|
-
};
|
|
3565
|
-
var sortByCreatedAt = function sortByCreatedAt(a, b) {
|
|
3566
|
-
return new Date(b.attributes.createdAt).getTime() - new Date(a.attributes.createdAt).getTime();
|
|
3567
|
-
};
|
|
3568
|
-
var BlogCards = function BlogCards(_ref) {
|
|
3569
|
-
var slice = _ref.slice,
|
|
3570
|
-
blogPosts = _ref.blogPosts;
|
|
3571
|
-
var _useContext = useContext(IntlContext),
|
|
3572
|
-
formatDate = _useContext.formatDate;
|
|
3573
|
-
var _useMediaQuery = useMediaQuery(BREAKPOINT_LG_QUERY),
|
|
3574
|
-
mobile = _useMediaQuery[0];
|
|
3575
|
-
var _useToken = useToken('colors', ['gray.700']),
|
|
3576
|
-
gray700 = _useToken[0];
|
|
3577
|
-
var sortedBlogPosts = useMemo(function () {
|
|
3578
|
-
return blogPosts.sort(sortByCreatedAt);
|
|
3579
|
-
}, [blogPosts]);
|
|
3580
|
-
var blogPostsToDisplay = useMemo(function () {
|
|
3581
|
-
var _slice$blogPostCatego;
|
|
3582
|
-
return (_slice$blogPostCatego = slice.blogPostCategory) != null && (_slice$blogPostCatego = _slice$blogPostCatego.data) != null && _slice$blogPostCatego.attributes.name ? sortedBlogPosts.filter(function (blogPost) {
|
|
3583
|
-
var _blogPost$attributes$, _slice$blogPostCatego2;
|
|
3584
|
-
return ((_blogPost$attributes$ = blogPost.attributes.category) == null ? void 0 : _blogPost$attributes$.data.attributes.name) === ((_slice$blogPostCatego2 = slice.blogPostCategory) == null || (_slice$blogPostCatego2 = _slice$blogPostCatego2.data) == null ? void 0 : _slice$blogPostCatego2.attributes.name);
|
|
3585
|
-
}).slice(0, 3) : sortedBlogPosts.slice(0, 3);
|
|
3586
|
-
}, [sortedBlogPosts, slice]);
|
|
3587
|
-
return React.createElement(DefaultSectionContainer, {
|
|
3588
|
-
backgroundColor: VARIANTS$1[slice.variant].backgroundColor,
|
|
3589
|
-
title: slice.title
|
|
3590
|
-
}, React.createElement(Wrapper, null, mobile || !slice.button ? React.createElement(DefaultSectionHeader, {
|
|
3591
|
-
tagline: slice.tagline,
|
|
3592
|
-
title: slice.title,
|
|
3593
|
-
text: slice.subTitle,
|
|
3594
|
-
titleProps: {
|
|
3595
|
-
maxW: '2xl'
|
|
3596
|
-
},
|
|
3597
|
-
textProps: {
|
|
3598
|
-
maxW: '2xl'
|
|
3599
|
-
}
|
|
3600
|
-
}) : React.createElement(Flex, {
|
|
3601
|
-
justifyContent: "space-between",
|
|
3602
|
-
alignItems: "center",
|
|
3603
|
-
gap: "60"
|
|
3604
|
-
}, React.createElement(Box, null, React.createElement(DefaultSectionHeader, {
|
|
3605
|
-
tagline: slice.tagline,
|
|
3606
|
-
title: slice.title,
|
|
3607
|
-
text: slice.subTitle
|
|
3608
|
-
})), React.createElement(Box, {
|
|
3609
|
-
minWidth: "40"
|
|
3610
|
-
}, React.createElement(StrapiLinkButton, {
|
|
3611
|
-
link: slice.button,
|
|
3612
|
-
size: "lg",
|
|
3613
|
-
variant: "outline",
|
|
3614
|
-
rightIcon: React.createElement(CaretRight, {
|
|
3615
|
-
color: gray700
|
|
3616
|
-
})
|
|
3617
|
-
}))), React.createElement(Spacer, {
|
|
3618
|
-
height: "14"
|
|
3619
|
-
}), React.createElement(SimpleGrid, {
|
|
3620
|
-
columns: [1, null, null, 3],
|
|
3621
|
-
spacingX: 4,
|
|
3622
|
-
spacingY: 24,
|
|
3623
|
-
flexShrink: "0"
|
|
3624
|
-
}, blogPostsToDisplay.map(function (blogPost) {
|
|
3625
|
-
return React.createElement(BlogItemContainer, {
|
|
3626
|
-
as: Link,
|
|
3627
|
-
href: "/blog/" + blogPost.attributes.slug,
|
|
3628
|
-
"data-testid": "blog-item",
|
|
3629
|
-
key: blogPost.attributes.slug
|
|
3630
|
-
}, React.createElement(ImageContainer$1, null, React.createElement(Image, {
|
|
3631
|
-
src: strapiMediaUrl(blogPost.attributes.img.img, 'medium'),
|
|
3632
|
-
alt: blogPost.attributes.img.alt,
|
|
3633
|
-
fill: true,
|
|
3634
|
-
style: {
|
|
3635
|
-
objectFit: blogPost.attributes.img.objectFit || 'cover'
|
|
3636
|
-
}
|
|
3637
|
-
})), React.createElement(Box, {
|
|
3638
|
-
px: "2",
|
|
3639
|
-
py: "8"
|
|
3640
|
-
}, blogPost.attributes.category && React.createElement(Text, {
|
|
3641
|
-
size: "smMonoUppercase",
|
|
3642
|
-
color: "primary.800",
|
|
3643
|
-
mb: "2"
|
|
3644
|
-
}, blogPost.attributes.category.data.attributes.name), React.createElement(Heading, {
|
|
3645
|
-
size: "lg"
|
|
3646
|
-
}, blogPost.attributes.title), blogPost.attributes.teaser && React.createElement(Text, {
|
|
3647
|
-
size: "mdRegularNormal",
|
|
3648
|
-
mt: "2"
|
|
3649
|
-
}, blogPost.attributes.teaser), React.createElement(Spacer, {
|
|
3650
|
-
height: "4"
|
|
3651
|
-
}), React.createElement(DatePersonPair, {
|
|
3652
|
-
date: formatDate(blogPost.attributes.createdAt),
|
|
3653
|
-
person: blogPost.attributes.author ? {
|
|
3654
|
-
name: blogPost.attributes.author.data.attributes.name,
|
|
3655
|
-
image: React.createElement(Image, {
|
|
3656
|
-
src: strapiMediaUrl(blogPost.attributes.author.data.attributes.img.img, 'thumbnail'),
|
|
3657
|
-
alt: blogPost.attributes.author.data.attributes.img.alt,
|
|
3658
|
-
fill: true,
|
|
3659
|
-
style: {
|
|
3660
|
-
objectFit: blogPost.attributes.author.data.attributes.img.objectFit || 'cover'
|
|
3661
|
-
}
|
|
3662
|
-
})
|
|
3663
|
-
} : undefined
|
|
3664
|
-
})));
|
|
3665
|
-
})), React.createElement(React.Fragment, null, mobile && slice.button && React.createElement(React.Fragment, null, React.createElement(Box, {
|
|
3666
|
-
minWidth: "40",
|
|
3667
|
-
mt: "6"
|
|
3668
|
-
}, React.createElement(StrapiLinkButton, {
|
|
3669
|
-
link: slice.button,
|
|
3670
|
-
size: "lg",
|
|
3671
|
-
variant: "outline",
|
|
3672
|
-
rightIcon: React.createElement(CaretRight, {
|
|
3673
|
-
color: gray700
|
|
3674
|
-
})
|
|
3675
|
-
}))))));
|
|
3676
|
-
};
|
|
3677
|
-
|
|
3678
|
-
var SmallCheckout = function SmallCheckout(_ref) {
|
|
3679
|
-
var pricePerKg = _ref.pricePerKg,
|
|
3680
|
-
currency = _ref.currency,
|
|
3681
|
-
batchId = _ref.batchId,
|
|
3682
|
-
initialContributionValue = _ref.initialContributionValue,
|
|
3683
|
-
checkoutText = _ref.checkoutText,
|
|
3684
|
-
title = _ref.title,
|
|
3685
|
-
subtitle = _ref.subtitle,
|
|
3686
|
-
button = _ref.button;
|
|
3687
|
-
var _useContext = useContext(IntlContext),
|
|
3688
|
-
formatNumber = _useContext.formatNumber,
|
|
3689
|
-
formatMessage = _useContext.formatMessage,
|
|
3690
|
-
locale = _useContext.locale;
|
|
3691
|
-
var _useRouter = useRouter(),
|
|
3692
|
-
push = _useRouter.push;
|
|
3693
|
-
var validateForm = useCallback(function (values) {
|
|
3694
|
-
var errors = {};
|
|
3695
|
-
if (!values.contributionValueCurrency) {
|
|
3696
|
-
errors.contributionValueCurrency = formatMessage({
|
|
3697
|
-
id: 'portfolio.smallCheckout.contributionValueCurrency.validation.empty'
|
|
3698
|
-
});
|
|
3699
|
-
} else if (values.contributionValueCurrency < MINIMUM_CONTRIBUTION_VALUE_IN_MONEY) {
|
|
3700
|
-
errors.contributionValueCurrency = formatMessage({
|
|
3701
|
-
id: "portfolio.smallCheckout.contributionValueCurrency.validation.tooLow." + currency
|
|
3702
|
-
});
|
|
3703
|
-
} else if (values.contributionValueCurrency > MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY) {
|
|
3704
|
-
errors.contributionValueCurrency = formatMessage({
|
|
3705
|
-
id: 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh'
|
|
3706
|
-
});
|
|
3707
|
-
}
|
|
3708
|
-
return errors;
|
|
3709
|
-
}, [locale]);
|
|
3710
|
-
var onSubmit = /*#__PURE__*/function () {
|
|
3711
|
-
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
|
|
3712
|
-
var contributionValueCurrency;
|
|
3713
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
3714
|
-
while (1) switch (_context.prev = _context.next) {
|
|
3715
|
-
case 0:
|
|
3716
|
-
contributionValueCurrency = _ref2.contributionValueCurrency;
|
|
3717
|
-
push(FPM_API_URI + "/v1/webhooks/shop/checkout?batchId=" + batchId + "&quantity=" + Math.floor(contributionValueCurrency / pricePerKg));
|
|
3718
|
-
case 2:
|
|
3719
|
-
case "end":
|
|
3720
|
-
return _context.stop();
|
|
3721
|
-
}
|
|
3722
|
-
}, _callee);
|
|
3723
|
-
}));
|
|
3724
|
-
return function onSubmit(_x) {
|
|
3725
|
-
return _ref3.apply(this, arguments);
|
|
3726
|
-
};
|
|
3727
|
-
}();
|
|
3728
|
-
return React.createElement(Flex, {
|
|
3729
|
-
width: "full",
|
|
3730
|
-
height: "full",
|
|
3731
|
-
borderRadius: "xl",
|
|
3732
|
-
background: "primary.100",
|
|
3733
|
-
padding: "6",
|
|
3734
|
-
direction: "column"
|
|
3735
|
-
}, React.createElement(Flex, {
|
|
3736
|
-
gap: "1",
|
|
3737
|
-
alignItems: "end",
|
|
3738
|
-
mb: "6"
|
|
3739
|
-
}, React.createElement(Text, {
|
|
3740
|
-
color: "black",
|
|
3741
|
-
lineHeight: "0"
|
|
3742
|
-
}, formatMessage({
|
|
3743
|
-
id: 'unit.formatter.tonsCo2'
|
|
3744
|
-
}, {
|
|
3745
|
-
number: React.createElement(Text, {
|
|
3746
|
-
as: "span",
|
|
3747
|
-
size: "lgLowBold",
|
|
3748
|
-
color: "black"
|
|
3749
|
-
}, formatNumber(pricePerKg * 1000, {
|
|
3750
|
-
style: 'currency',
|
|
3751
|
-
currency: currency,
|
|
3752
|
-
maximumFractionDigits: 0
|
|
3753
|
-
}))
|
|
3754
|
-
}))), React.createElement(Formik, {
|
|
3755
|
-
initialValues: {
|
|
3756
|
-
contributionValueCurrency: initialContributionValue,
|
|
3757
|
-
contributionValueKgs: initialContributionValue / pricePerKg / 1000
|
|
3758
|
-
},
|
|
3759
|
-
validate: validateForm,
|
|
3760
|
-
onSubmit: onSubmit
|
|
3761
|
-
}, function (_ref4) {
|
|
3762
|
-
var errors = _ref4.errors,
|
|
3763
|
-
touched = _ref4.touched,
|
|
3764
|
-
handleSubmit = _ref4.handleSubmit,
|
|
3765
|
-
setValues = _ref4.setValues;
|
|
3766
|
-
return React.createElement(Form, {
|
|
3767
|
-
onSubmit: handleSubmit
|
|
3768
|
-
}, React.createElement(Flex, {
|
|
3769
|
-
gap: "4"
|
|
3770
|
-
}, React.createElement(Box, {
|
|
3771
|
-
width: "full"
|
|
3772
|
-
}, React.createElement(Field, {
|
|
3773
|
-
name: "contributionValueCurrency"
|
|
3774
|
-
}, function (_ref5) {
|
|
3775
|
-
var field = _ref5.field;
|
|
3776
|
-
return React.createElement(BoemlyFormControl, {
|
|
3777
|
-
id: "contributionValueCurrency",
|
|
3778
|
-
size: "md",
|
|
3779
|
-
inputType: "NumberInput",
|
|
3780
|
-
numberInputProps: {
|
|
3781
|
-
value: field.value,
|
|
3782
|
-
onChange: function onChange(valueString) {
|
|
3783
|
-
// valueAsNumber might be NaN
|
|
3784
|
-
var value = parseInt(valueString || '0', 10);
|
|
3785
|
-
setValues({
|
|
3786
|
-
contributionValueCurrency: value,
|
|
3787
|
-
contributionValueKgs: value / pricePerKg / 1000
|
|
3788
|
-
});
|
|
3789
|
-
}
|
|
3790
|
-
},
|
|
3791
|
-
label: formatMessage({
|
|
3792
|
-
id: "portfolio.smallCheckout.contributionValueCurrency.label." + currency
|
|
3793
|
-
}),
|
|
3794
|
-
rightAddonsOrElements: [React.createElement(InputRightAddon, {
|
|
3795
|
-
key: "currencyUnit"
|
|
3796
|
-
}, formatMessage({
|
|
3797
|
-
id: "portfolio.smallCheckout.contributionValueCurrency.unit." + currency
|
|
3798
|
-
}))],
|
|
3799
|
-
isInvalid: !!errors.contributionValueCurrency && touched.contributionValueCurrency,
|
|
3800
|
-
errorMessage: errors.contributionValueCurrency
|
|
3801
|
-
});
|
|
3802
|
-
})), React.createElement(Box, {
|
|
3803
|
-
width: "full"
|
|
3804
|
-
}, React.createElement(Field, {
|
|
3805
|
-
name: "contributionValueKgs"
|
|
3806
|
-
}, function (_ref6) {
|
|
3807
|
-
var field = _ref6.field;
|
|
3808
|
-
return React.createElement(BoemlyFormControl, {
|
|
3809
|
-
id: "contributionValueKgs",
|
|
3810
|
-
size: "md",
|
|
3811
|
-
inputType: "NumberInput",
|
|
3812
|
-
numberInputProps: {
|
|
3813
|
-
value: field.value,
|
|
3814
|
-
onChange: function onChange(valueString) {
|
|
3815
|
-
var value = parseInt(valueString || '0', 10);
|
|
3816
|
-
setValues({
|
|
3817
|
-
contributionValueCurrency: value * pricePerKg * 1000,
|
|
3818
|
-
contributionValueKgs: value
|
|
3819
|
-
});
|
|
3820
|
-
}
|
|
3821
|
-
},
|
|
3822
|
-
label: formatMessage({
|
|
3823
|
-
id: 'portfolio.smallCheckout.contributionValueKgs.label'
|
|
3824
|
-
}),
|
|
3825
|
-
rightAddonsOrElements: [React.createElement(InputRightAddon, {
|
|
3826
|
-
key: "tCO\u2082"
|
|
3827
|
-
}, "tCO\u2082")],
|
|
3828
|
-
isInvalid: !!errors.contributionValueKgs && touched.contributionValueKgs,
|
|
3829
|
-
errorMessage: errors.contributionValueKgs
|
|
3830
|
-
});
|
|
3831
|
-
}))), React.createElement(Spacer, {
|
|
3832
|
-
height: "4"
|
|
3833
|
-
}), React.createElement(Button, {
|
|
3834
|
-
type: "submit",
|
|
3835
|
-
width: "full"
|
|
3836
|
-
}, formatMessage({
|
|
3837
|
-
id: 'portfolio.smallCheckout.submitButton'
|
|
3838
|
-
})));
|
|
3839
|
-
}), React.createElement(Flex, {
|
|
3840
|
-
width: "full",
|
|
3841
|
-
justifyContent: "center",
|
|
3842
|
-
alignItems: "center",
|
|
3843
|
-
mt: "6",
|
|
3844
|
-
gap: "2"
|
|
3845
|
-
}, React.createElement(Image, {
|
|
3846
|
-
src: CDN_URI + "/assets/v3/strapi-slices/globe-love-icon.svg",
|
|
3847
|
-
alt: "Icon",
|
|
3848
|
-
width: 20,
|
|
3849
|
-
height: 20
|
|
3850
|
-
}), React.createElement(Text, {
|
|
3851
|
-
size: "smLowNormal"
|
|
3852
|
-
}, checkoutText)), React.createElement(Divider, {
|
|
3853
|
-
my: "6"
|
|
3854
|
-
}), React.createElement(Flex, {
|
|
3855
|
-
width: "full",
|
|
3856
|
-
alignItems: "center",
|
|
3857
|
-
direction: "column"
|
|
3858
|
-
}, title && React.createElement(Text, {
|
|
3859
|
-
size: "smLowBold",
|
|
3860
|
-
textAlign: "center",
|
|
3861
|
-
color: "black",
|
|
3862
|
-
mb: "2"
|
|
3863
|
-
}, title), subtitle && React.createElement(Text, {
|
|
3864
|
-
size: "smRegularNormal",
|
|
3865
|
-
textAlign: "center",
|
|
3866
|
-
mb: "3"
|
|
3867
|
-
}, subtitle), button && React.createElement(StrapiLinkButton, {
|
|
3868
|
-
link: {
|
|
3869
|
-
id: 1,
|
|
3870
|
-
intercomLauncher: true,
|
|
3871
|
-
text: button.text
|
|
3872
|
-
},
|
|
3873
|
-
variant: "outline"
|
|
3874
|
-
})));
|
|
3875
|
-
};
|
|
3876
|
-
|
|
3877
|
-
var convertAreaM2ToHa = function convertAreaM2ToHa(areaInM2) {
|
|
3878
|
-
return parseInt(areaInM2, 10) / 10000;
|
|
3879
|
-
};
|
|
3880
|
-
|
|
3881
|
-
var convertCo2AmountKgToTons = function convertCo2AmountKgToTons(amount) {
|
|
3882
|
-
return parseInt(amount, 10) / 1000;
|
|
3883
|
-
};
|
|
3884
|
-
|
|
3885
|
-
var FORMAT_AS_HECTARE_CONFIG = {
|
|
3886
|
-
unit: 'hectare',
|
|
3887
|
-
unitDisplay: 'short',
|
|
3888
|
-
style: 'unit',
|
|
3889
|
-
maximumFractionDigits: 2
|
|
3890
|
-
};
|
|
3891
|
-
var FORMAT_AS_PERCENT_CONFIG = {
|
|
3892
|
-
style: 'percent',
|
|
3893
|
-
maximumFractionDigits: 2
|
|
3894
|
-
};
|
|
3895
|
-
|
|
3896
|
-
var getTimeSpanInYears = function getTimeSpanInYears(start, end) {
|
|
3897
|
-
var monthsDifference = end.getMonth() - start.getMonth();
|
|
3898
|
-
var yearsDifference = end.getFullYear() - start.getFullYear();
|
|
3899
|
-
if (monthsDifference > 4) {
|
|
3900
|
-
return yearsDifference + 1;
|
|
3901
|
-
}
|
|
3902
|
-
if (monthsDifference < -4) {
|
|
3903
|
-
return yearsDifference - 1;
|
|
3904
|
-
}
|
|
3905
|
-
return yearsDifference;
|
|
3906
|
-
};
|
|
3907
|
-
|
|
3908
|
-
var ProjectInfo = function ProjectInfo(_ref) {
|
|
3909
|
-
var project = _ref.project,
|
|
3910
|
-
subtitles = _ref.subtitles;
|
|
3911
|
-
var _useContext = useContext(IntlContext),
|
|
3912
|
-
formatMessage = _useContext.formatMessage,
|
|
3913
|
-
formatNumber = _useContext.formatNumber,
|
|
3914
|
-
formatDate = _useContext.formatDate;
|
|
3915
|
-
return React.createElement(Container, {
|
|
3916
|
-
p: "2",
|
|
3917
|
-
width: "full"
|
|
3918
|
-
}, React.createElement(Heading, {
|
|
3919
|
-
size: "xl",
|
|
3920
|
-
textAlign: "left"
|
|
3921
|
-
}, formatMessage({
|
|
3922
|
-
id: 'features.projectInfo.projectInfo.value'
|
|
3923
|
-
})), React.createElement(Spacer, {
|
|
3924
|
-
height: "8"
|
|
3925
|
-
}), React.createElement(SimpleGrid, {
|
|
3926
|
-
columns: [1, null, null, 2],
|
|
3927
|
-
gap: "8",
|
|
3928
|
-
spacingX: "10",
|
|
3929
|
-
spacingY: "8"
|
|
3930
|
-
}, project.area && React.createElement(Box, null, React.createElement(LabelTextPair, {
|
|
3931
|
-
label: formatMessage({
|
|
3932
|
-
id: 'features.projectInfo.properties.area'
|
|
3933
|
-
}),
|
|
3934
|
-
text: formatNumber(convertAreaM2ToHa(project.area.toString()), FORMAT_AS_HECTARE_CONFIG),
|
|
3935
|
-
caption: subtitles.areaSubtitle
|
|
3936
|
-
})), project.location && React.createElement(Box, null, React.createElement(LabelTextPair, {
|
|
3937
|
-
label: formatMessage({
|
|
3938
|
-
id: 'features.projectInfo.properties.location'
|
|
3939
|
-
}),
|
|
3940
|
-
text: project.location,
|
|
3941
|
-
caption: subtitles.locationSubtitle
|
|
3942
|
-
})), project.start && React.createElement(Box, null, React.createElement(LabelTextPair, {
|
|
3943
|
-
label: formatMessage({
|
|
3944
|
-
id: 'features.projectInfo.properties.start'
|
|
3945
|
-
}),
|
|
3946
|
-
text: formatDate(project.start, {
|
|
3947
|
-
year: 'numeric',
|
|
3948
|
-
month: 'long'
|
|
3949
|
-
}),
|
|
3950
|
-
caption: subtitles.startSubtitle
|
|
3951
|
-
})), project.start && project.end && React.createElement(Box, null, React.createElement(LabelTextPair, {
|
|
3952
|
-
label: formatMessage({
|
|
3953
|
-
id: 'features.projectInfo.properties.timeSpan'
|
|
3954
|
-
}),
|
|
3955
|
-
text: formatMessage({
|
|
3956
|
-
id: 'features.projectInfo.properties.year'
|
|
3957
|
-
}, {
|
|
3958
|
-
years: getTimeSpanInYears(new Date(project.start), new Date(project.end))
|
|
3959
|
-
}),
|
|
3960
|
-
caption: subtitles.timeSpanSubtitle
|
|
3961
|
-
}))), project.projectType || project.projectDeveloper || project.verificationStandard ? React.createElement(React.Fragment, null, React.createElement(Spacer, {
|
|
3962
|
-
height: "6"
|
|
3963
|
-
}), React.createElement(Divider, null), React.createElement(Spacer, {
|
|
3964
|
-
height: "6"
|
|
3965
|
-
})) : React.createElement(React.Fragment, null), React.createElement(SimpleGrid, {
|
|
3966
|
-
columns: [1, null, null, 2],
|
|
3967
|
-
spacingX: "10",
|
|
3968
|
-
spacingY: "8"
|
|
3969
|
-
}, project.projectType && React.createElement(Box, null, React.createElement(LabelTextPair, {
|
|
3970
|
-
label: formatMessage({
|
|
3971
|
-
id: 'features.projectInfo.properties.projectType'
|
|
3972
|
-
}),
|
|
3973
|
-
text: project.projectType.title,
|
|
3974
|
-
caption: subtitles.projectTypeSubtitle
|
|
3975
|
-
})), project.projectDeveloper && React.createElement(Box, null, React.createElement(LabelTextPair, {
|
|
3976
|
-
label: formatMessage({
|
|
3977
|
-
id: 'features.projectInfo.properties.projectDeveloper'
|
|
3978
|
-
}),
|
|
3979
|
-
text: project.projectDeveloper.name,
|
|
3980
|
-
caption: subtitles.projectDeveloperSubtitle
|
|
3981
|
-
}))), project.verificationStandard ? React.createElement(React.Fragment, null, project.projectType || project.projectDeveloper ? React.createElement(Spacer, {
|
|
3982
|
-
height: "6"
|
|
3983
|
-
}) : React.createElement(React.Fragment, null), React.createElement(Flex, {
|
|
3984
|
-
justifyContent: "space-between",
|
|
3985
|
-
alignItems: "center"
|
|
3986
|
-
}, React.createElement(Box, null, React.createElement(LabelTextPair, {
|
|
3987
|
-
label: formatMessage({
|
|
3988
|
-
id: 'features.projectInfo.properties.verificationStandard.label'
|
|
3989
|
-
}),
|
|
3990
|
-
text: formatMessage({
|
|
3991
|
-
id: "features.projectInfo.properties.verificationStandard.value." + project.verificationStandard.id,
|
|
3992
|
-
defaultMessage: project.verificationStandard.id
|
|
3993
|
-
}),
|
|
3994
|
-
caption: subtitles.verificationStandardSubtitle
|
|
3995
|
-
})), project.defaultIssuer && React.createElement(Box, {
|
|
3996
|
-
position: "relative",
|
|
3997
|
-
width: "14",
|
|
3998
|
-
height: "8"
|
|
3999
|
-
}, React.createElement(Image, {
|
|
4000
|
-
src: project.defaultIssuer.logoUrl,
|
|
4001
|
-
alt: project.defaultIssuer.name + " logo",
|
|
4002
|
-
fill: true,
|
|
4003
|
-
style: {
|
|
4004
|
-
objectFit: 'contain'
|
|
4005
|
-
}
|
|
4006
|
-
})))) : React.createElement(React.Fragment, null), project.forecastedAmountYearly && project.riskBuffer ? React.createElement(React.Fragment, null, React.createElement(Spacer, {
|
|
4007
|
-
height: "8"
|
|
4008
|
-
}), React.createElement(Divider, null), React.createElement(Spacer, {
|
|
4009
|
-
height: "8"
|
|
4010
|
-
}), React.createElement(SimpleGrid, {
|
|
4011
|
-
columns: [1, null, null, 2],
|
|
4012
|
-
spacingX: "10",
|
|
4013
|
-
spacingY: "8"
|
|
4014
|
-
}, React.createElement(Box, null, React.createElement(LabelTextPair, {
|
|
4015
|
-
label: formatMessage({
|
|
4016
|
-
id: 'features.projectInfo.properties.forecastedAmountYear.label'
|
|
4017
|
-
}),
|
|
4018
|
-
text: formatMessage({
|
|
4019
|
-
id: 'unit.formatter.tonsCo2PerYear'
|
|
4020
|
-
}, {
|
|
4021
|
-
number: formatNumber(convertCo2AmountKgToTons(project.forecastedAmountYearly.toString()), {
|
|
4022
|
-
maximumFractionDigits: 0
|
|
4023
|
-
})
|
|
4024
|
-
}),
|
|
4025
|
-
caption: subtitles.forecastedAmountSubtitle
|
|
4026
|
-
})), React.createElement(Box, null, React.createElement(LabelTextPair, {
|
|
4027
|
-
label: formatMessage({
|
|
4028
|
-
id: 'features.projectInfo.properties.riskBuffer'
|
|
4029
|
-
}),
|
|
4030
|
-
text: formatNumber(project.riskBuffer / 100, FORMAT_AS_PERCENT_CONFIG),
|
|
4031
|
-
caption: subtitles.riskBufferSubtitle
|
|
4032
|
-
})))) : React.createElement(React.Fragment, null), project.creditsAvailable ? React.createElement(Box, {
|
|
4033
|
-
mt: "2"
|
|
4034
|
-
}, React.createElement(CreditsAvailableBadge, {
|
|
4035
|
-
status: project.creditsAvailable
|
|
4036
|
-
})) : React.createElement(React.Fragment, null));
|
|
4037
|
-
};
|
|
4038
|
-
|
|
4039
|
-
var DocumentsDownloadList = function DocumentsDownloadList(_ref) {
|
|
4040
|
-
var documentUrls = _ref.documentUrls;
|
|
4041
|
-
var _useContext = useContext(IntlContext),
|
|
4042
|
-
formatMessage = _useContext.formatMessage;
|
|
4043
|
-
return React.createElement(Container, {
|
|
4044
|
-
p: "2"
|
|
4045
|
-
}, React.createElement(Heading, {
|
|
4046
|
-
size: "xl",
|
|
4047
|
-
textAlign: "left"
|
|
4048
|
-
}, formatMessage({
|
|
4049
|
-
id: 'features.portfolio.documentsDownloadList.projectDocuments'
|
|
4050
|
-
})), React.createElement(Flex, {
|
|
4051
|
-
flexDir: "column"
|
|
4052
|
-
}, documentUrls.map(function (documentUrl) {
|
|
4053
|
-
return React.createElement(Flex, {
|
|
4054
|
-
justifyContent: "space-between",
|
|
4055
|
-
alignItems: "center",
|
|
4056
|
-
mt: "6",
|
|
4057
|
-
key: documentUrl.text
|
|
4058
|
-
}, React.createElement(Flex, {
|
|
4059
|
-
alignItems: "center"
|
|
4060
|
-
}, React.createElement(Center, {
|
|
4061
|
-
w: "8",
|
|
4062
|
-
h: "8",
|
|
4063
|
-
borderRadius: "full",
|
|
4064
|
-
borderWidth: "1px",
|
|
4065
|
-
borderColor: "grey.200"
|
|
4066
|
-
}, React.createElement(FilePdf, null)), React.createElement(Spacer, {
|
|
4067
|
-
width: "4"
|
|
4068
|
-
}), React.createElement(Flex, {
|
|
4069
|
-
flexDir: "column"
|
|
4070
|
-
}, React.createElement(Text, {
|
|
4071
|
-
size: "smMonoNormal"
|
|
4072
|
-
}, "PDF"), React.createElement(Text, {
|
|
4073
|
-
size: "mdLowBold",
|
|
4074
|
-
color: "black",
|
|
4075
|
-
textAlign: "left"
|
|
4076
|
-
}, documentUrl.text))), React.createElement(Spacer, {
|
|
4077
|
-
width: "32"
|
|
4078
|
-
}), React.createElement(IconButton, {
|
|
4079
|
-
variant: "outline",
|
|
4080
|
-
"aria-label": formatMessage({
|
|
4081
|
-
id: 'features.portfolio.documentsDownloadList.downloadDocument'
|
|
4082
|
-
}),
|
|
4083
|
-
icon: React.createElement(DownloadSimple, null),
|
|
4084
|
-
as: Link,
|
|
4085
|
-
href: documentUrl.url,
|
|
4086
|
-
size: "sm"
|
|
4087
|
-
}));
|
|
4088
|
-
})));
|
|
4089
|
-
};
|
|
4090
|
-
|
|
4091
|
-
var Contact = function Contact(_ref) {
|
|
4092
|
-
var avatar = _ref.avatar,
|
|
4093
|
-
title = _ref.title,
|
|
4094
|
-
text = _ref.text,
|
|
4095
|
-
button = _ref.button;
|
|
4096
|
-
return React.createElement(Container, {
|
|
4097
|
-
backgroundColor: "primary.100",
|
|
4098
|
-
border: "none",
|
|
4099
|
-
p: "8",
|
|
4100
|
-
height: "full"
|
|
4101
|
-
}, React.createElement(Flex, {
|
|
4102
|
-
flexDir: "column",
|
|
4103
|
-
justifyContent: "center",
|
|
4104
|
-
alignItems: "center",
|
|
4105
|
-
height: "full"
|
|
4106
|
-
}, avatar ? React.createElement(Box, {
|
|
4107
|
-
position: "relative",
|
|
4108
|
-
width: "20",
|
|
4109
|
-
height: "20",
|
|
4110
|
-
borderRadius: "full",
|
|
4111
|
-
overflow: "hidden"
|
|
4112
|
-
}, React.createElement(Image, {
|
|
4113
|
-
src: strapiMediaUrl(avatar.img, 'small'),
|
|
4114
|
-
alt: avatar.alt,
|
|
4115
|
-
fill: true,
|
|
4116
|
-
objectFit: avatar.objectFit
|
|
4117
|
-
})) : React.createElement(React.Fragment, null), title ? React.createElement(Heading, {
|
|
4118
|
-
mt: "6",
|
|
4119
|
-
size: "md",
|
|
4120
|
-
fontWeight: "500",
|
|
4121
|
-
textAlign: "center",
|
|
4122
|
-
color: "black"
|
|
4123
|
-
}, title) : React.createElement(React.Fragment, null), text ? React.createElement(Text, {
|
|
4124
|
-
mt: "2",
|
|
4125
|
-
size: "smRegularNormal",
|
|
4126
|
-
textAlign: "center"
|
|
4127
|
-
}, text) : React.createElement(React.Fragment, null), button ? React.createElement(StrapiLinkButton, {
|
|
4128
|
-
mt: "6",
|
|
4129
|
-
link: button,
|
|
4130
|
-
size: "md",
|
|
4131
|
-
variant: "outline"
|
|
4132
|
-
}) : React.createElement(React.Fragment, null)));
|
|
4133
|
-
};
|
|
4134
|
-
|
|
4135
|
-
var ProjectFacts = function ProjectFacts(_ref) {
|
|
4136
|
-
var slice = _ref.slice,
|
|
4137
|
-
project = _ref.project;
|
|
4138
|
-
if (!project) {
|
|
4139
|
-
return React.createElement(React.Fragment, null, "Invalid configuration, check if a project this id exists in the FPM");
|
|
4140
|
-
}
|
|
4141
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, React.createElement(Flex, {
|
|
4142
|
-
flexDir: ['column', null, null, 'row'],
|
|
4143
|
-
gap: "4",
|
|
4144
|
-
width: "full"
|
|
4145
|
-
}, React.createElement(ProjectInfo, {
|
|
4146
|
-
project: project,
|
|
4147
|
-
subtitles: slice
|
|
4148
|
-
}), React.createElement(Flex, {
|
|
4149
|
-
flexDir: "column",
|
|
4150
|
-
gap: "4",
|
|
4151
|
-
width: "full"
|
|
4152
|
-
}, slice.documentUrls && slice.documentUrls.length > 0 && React.createElement(DocumentsDownloadList, {
|
|
4153
|
-
documentUrls: slice.documentUrls
|
|
4154
|
-
}), slice.batchId && slice.pricePerKg && slice.currency && slice.initialContributionValue ? React.createElement(SmallCheckout, {
|
|
4155
|
-
batchId: slice.batchId,
|
|
4156
|
-
checkoutText: slice.checkoutText,
|
|
4157
|
-
currency: slice.currency,
|
|
4158
|
-
initialContributionValue: slice.initialContributionValue,
|
|
4159
|
-
pricePerKg: slice.pricePerKg,
|
|
4160
|
-
title: slice.customTitle,
|
|
4161
|
-
subtitle: slice.customSubtitle,
|
|
4162
|
-
button: slice.customButton
|
|
4163
|
-
}) : (slice.contactTitle || slice.contactText || slice.contactButton || slice.contactAvatar) && React.createElement(Contact, {
|
|
4164
|
-
title: slice.contactTitle,
|
|
4165
|
-
text: slice.contactText,
|
|
4166
|
-
button: slice.contactButton,
|
|
4167
|
-
avatar: slice.contactAvatar
|
|
4168
|
-
})))));
|
|
4169
|
-
};
|
|
4170
|
-
|
|
4171
|
-
var CustomerStories = function CustomerStories(_ref) {
|
|
4172
|
-
var slice = _ref.slice,
|
|
4173
|
-
customerStories = _ref.customerStories;
|
|
4174
|
-
var _useContext = useContext(IntlContext),
|
|
4175
|
-
formatMessage = _useContext.formatMessage;
|
|
4176
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, React.createElement(SimpleGrid, {
|
|
4177
|
-
columns: [1, null, null, 2],
|
|
4178
|
-
spacingX: 56,
|
|
4179
|
-
spacingY: 24
|
|
4180
|
-
}, slice.customer_stories.map(function (_ref2) {
|
|
4181
|
-
var attributes = _ref2.attributes;
|
|
4182
|
-
var customerStory = customerStories.find(function (cs) {
|
|
4183
|
-
return cs.attributes.slug === attributes.slug;
|
|
4184
|
-
});
|
|
4185
|
-
if (!customerStory) {
|
|
4186
|
-
return null;
|
|
4187
|
-
}
|
|
4188
|
-
return React.createElement(Container, {
|
|
4189
|
-
padding: "none",
|
|
4190
|
-
key: customerStory.id
|
|
4191
|
-
}, React.createElement(Center, {
|
|
4192
|
-
height: "24",
|
|
4193
|
-
backgroundColor: "primary.50",
|
|
4194
|
-
borderTopRadius: "xl"
|
|
4195
|
-
}, React.createElement(Box, {
|
|
4196
|
-
position: "relative",
|
|
4197
|
-
height: "12",
|
|
4198
|
-
width: "12"
|
|
4199
|
-
}, React.createElement(Image, {
|
|
4200
|
-
src: strapiMediaUrl(customerStory.attributes.customerLogo.img, 'medium'),
|
|
4201
|
-
alt: customerStory.attributes.customerLogo.alt,
|
|
4202
|
-
fill: true,
|
|
4203
|
-
style: {
|
|
4204
|
-
objectFit: customerStory.attributes.customerLogo.objectFit
|
|
4205
|
-
}
|
|
4206
|
-
}))), React.createElement(Box, {
|
|
4207
|
-
px: "6",
|
|
4208
|
-
pt: "12",
|
|
4209
|
-
pb: "6"
|
|
4210
|
-
}, React.createElement(Text, {
|
|
4211
|
-
size: "xsMonoUppercase",
|
|
4212
|
-
color: "gray.500",
|
|
4213
|
-
mb: "2"
|
|
4214
|
-
}, customerStory.attributes.customerIndustry), React.createElement(Heading, {
|
|
4215
|
-
size: "xl"
|
|
4216
|
-
}, customerStory.attributes.title), React.createElement(Button, {
|
|
4217
|
-
as: Link,
|
|
4218
|
-
href: "/customer-stories/" + customerStory.attributes.slug,
|
|
4219
|
-
variant: "outline",
|
|
4220
|
-
size: "sm",
|
|
4221
|
-
mt: "12"
|
|
4222
|
-
}, formatMessage({
|
|
4223
|
-
id: 'sections.customerStories.more'
|
|
4224
|
-
}))));
|
|
4225
|
-
}))));
|
|
4226
|
-
};
|
|
4227
|
-
|
|
4228
|
-
var BULLET_POINT_VARIANTS = {
|
|
4229
|
-
gray: {
|
|
4230
|
-
bulletPointColor: 'black'
|
|
4231
|
-
},
|
|
4232
|
-
green: {
|
|
4233
|
-
bulletPointColor: 'white'
|
|
4234
|
-
},
|
|
4235
|
-
white: {
|
|
4236
|
-
bulletPointColor: 'black'
|
|
4237
|
-
}
|
|
4238
|
-
};
|
|
4239
|
-
var Icon = function Icon(_ref) {
|
|
4240
|
-
var variant = _ref.variant,
|
|
4241
|
-
icon = _ref.icon;
|
|
4242
|
-
switch (icon) {
|
|
4243
|
-
case 'check':
|
|
4244
|
-
return React.createElement(Check, {
|
|
4245
|
-
size: 20,
|
|
4246
|
-
color: "var(--boemly-colors-primary-500)"
|
|
4247
|
-
});
|
|
4248
|
-
case 'cross':
|
|
4249
|
-
return React.createElement(X, {
|
|
4250
|
-
size: 20,
|
|
4251
|
-
color: "var(--boemly-colors-red-500)"
|
|
4252
|
-
});
|
|
4253
|
-
default:
|
|
4254
|
-
return React.createElement(Box, {
|
|
4255
|
-
"data-testid": "bullet-point-box",
|
|
4256
|
-
borderRadius: "full",
|
|
4257
|
-
backgroundColor: BULLET_POINT_VARIANTS[variant].bulletPointColor,
|
|
4258
|
-
width: "2",
|
|
4259
|
-
height: "2",
|
|
4260
|
-
margin: "1.5"
|
|
4261
|
-
});
|
|
4262
|
-
}
|
|
4263
|
-
};
|
|
4264
|
-
|
|
4265
|
-
var VARIANTS = {
|
|
4266
|
-
gray: {
|
|
4267
|
-
backgroundColor: 'primary.50',
|
|
4268
|
-
textColor: 'black',
|
|
4269
|
-
subTitleColor: 'gray.500',
|
|
4270
|
-
factColor: 'primary.800',
|
|
4271
|
-
dividerColor: 'gray.200'
|
|
4272
|
-
},
|
|
4273
|
-
green: {
|
|
4274
|
-
backgroundColor: 'primary.800',
|
|
4275
|
-
textColor: 'white',
|
|
4276
|
-
subTitleColor: 'whiteAlpha.900',
|
|
4277
|
-
factColor: 'white',
|
|
4278
|
-
dividerColor: 'whiteAlpha.200'
|
|
4279
|
-
},
|
|
4280
|
-
white: {
|
|
4281
|
-
backgroundColor: 'white',
|
|
4282
|
-
textColor: 'black',
|
|
4283
|
-
subTitleColor: 'gray.500',
|
|
4284
|
-
factColor: 'primary.800',
|
|
4285
|
-
dividerColor: 'gray.200'
|
|
4286
|
-
}
|
|
4287
|
-
};
|
|
4288
|
-
var Comparison = function Comparison(_ref) {
|
|
4289
|
-
var slice = _ref.slice;
|
|
4290
|
-
var _useContext = useContext(IntlContext),
|
|
4291
|
-
formatMessage = _useContext.formatMessage;
|
|
4292
|
-
return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, slice.title ? React.createElement(React.Fragment, null, React.createElement(Flex, {
|
|
4293
|
-
alignItems: "center",
|
|
4294
|
-
flexDirection: "column"
|
|
4295
|
-
}, React.createElement(DefaultSectionHeader, {
|
|
4296
|
-
tagline: slice.tagline,
|
|
4297
|
-
title: slice.title,
|
|
4298
|
-
text: slice.subTitle,
|
|
4299
|
-
textProps: {
|
|
4300
|
-
maxW: '2xl',
|
|
4301
|
-
textAlign: 'center'
|
|
4302
|
-
},
|
|
4303
|
-
titleProps: {
|
|
4304
|
-
textAlign: 'center',
|
|
4305
|
-
maxWidth: '3xl'
|
|
4306
|
-
},
|
|
4307
|
-
taglineProps: {
|
|
4308
|
-
textAlign: 'center',
|
|
4309
|
-
maxWidth: '3xl'
|
|
4310
|
-
}
|
|
4311
|
-
})), React.createElement(Spacer, {
|
|
4312
|
-
height: "12"
|
|
4313
|
-
})) : React.createElement(React.Fragment, null), React.createElement(SimpleGrid, {
|
|
4314
|
-
columns: [1, null, null, null, slice.comparisonCards.length],
|
|
4315
|
-
spacing: "4"
|
|
4316
|
-
}, slice.comparisonCards.map(function (comparisonCard) {
|
|
4317
|
-
return React.createElement(Container, {
|
|
4318
|
-
boxShadow: comparisonCard.variant === 'green' ? 'xl' : 'base',
|
|
4319
|
-
border: comparisonCard.variant === 'green' ? 'primary.800' : undefined,
|
|
4320
|
-
zIndex: "base",
|
|
4321
|
-
key: comparisonCard.id,
|
|
4322
|
-
position: "relative",
|
|
4323
|
-
elevation: "none",
|
|
4324
|
-
p: "3",
|
|
4325
|
-
backgroundColor: VARIANTS[comparisonCard.variant].backgroundColor
|
|
4326
|
-
}, comparisonCard.variant === 'green' ? React.createElement(Box, {
|
|
4327
|
-
position: "absolute",
|
|
4328
|
-
left: "0",
|
|
4329
|
-
top: "0",
|
|
4330
|
-
width: "full",
|
|
4331
|
-
height: "full",
|
|
4332
|
-
zIndex: "-1"
|
|
4333
|
-
}, React.createElement(Image, {
|
|
4334
|
-
src: CDN_URI + "/assets/v3/strapi-slices/shapes-comparison.svg",
|
|
4335
|
-
alt: formatMessage({
|
|
4336
|
-
id: 'sections.comparison.backgroundShapes'
|
|
4337
|
-
}),
|
|
4338
|
-
fill: true,
|
|
4339
|
-
style: {
|
|
4340
|
-
objectFit: 'cover',
|
|
4341
|
-
borderRadius: 'var(--boemly-radii-xl)'
|
|
4342
|
-
}
|
|
4343
|
-
})) : React.createElement(React.Fragment, null), React.createElement(Flex, {
|
|
4344
|
-
flexDir: "column",
|
|
4345
|
-
gap: "4"
|
|
4346
|
-
}, comparisonCard.image && React.createElement(Box, {
|
|
4347
|
-
position: "relative",
|
|
4348
|
-
height: "7",
|
|
4349
|
-
width: "100%"
|
|
4350
|
-
}, React.createElement(Image, {
|
|
4351
|
-
src: strapiMediaUrl(comparisonCard.image.img, 'small'),
|
|
4352
|
-
alt: comparisonCard.image.alt,
|
|
4353
|
-
fill: true,
|
|
4354
|
-
style: {
|
|
4355
|
-
objectFit: comparisonCard.image.objectFit
|
|
4356
|
-
}
|
|
4357
|
-
})), React.createElement(Flex, {
|
|
4358
|
-
gap: "2",
|
|
4359
|
-
alignItems: "center",
|
|
4360
|
-
flexWrap: "wrap"
|
|
4361
|
-
}, React.createElement(Heading, {
|
|
4362
|
-
size: "2xl",
|
|
4363
|
-
color: VARIANTS[comparisonCard.variant].textColor,
|
|
4364
|
-
whiteSpace: "pre-line"
|
|
4365
|
-
}, comparisonCard.title), comparisonCard.badge && React.createElement(Badge, {
|
|
4366
|
-
backgroundColor: "green.100",
|
|
4367
|
-
borderRadius: "md",
|
|
4368
|
-
whiteSpace: "pre-line"
|
|
4369
|
-
}, comparisonCard.badge))), React.createElement(Spacer, {
|
|
4370
|
-
height: "4"
|
|
4371
|
-
}), React.createElement(Text, {
|
|
4372
|
-
size: "smRegularNormal",
|
|
4373
|
-
color: VARIANTS[comparisonCard.variant].subTitleColor
|
|
4374
|
-
}, comparisonCard.subTitle), comparisonCard.factTitle || comparisonCard.factSubtitle || comparisonCard.button ? React.createElement(React.Fragment, null, React.createElement(Spacer, {
|
|
4375
|
-
height: "6"
|
|
4376
|
-
}), React.createElement(Flex, {
|
|
4377
|
-
flexDir: "column"
|
|
4378
|
-
}, comparisonCard.factTitle && React.createElement(React.Fragment, null, React.createElement(Text, {
|
|
4379
|
-
color: VARIANTS[comparisonCard.variant].factColor,
|
|
4380
|
-
size: "lgMonoNormal"
|
|
4381
|
-
}, comparisonCard.factTitle), React.createElement(Text, {
|
|
4382
|
-
color: VARIANTS[comparisonCard.variant].factColor,
|
|
4383
|
-
size: "smLowNormal"
|
|
4384
|
-
}, comparisonCard.factSubtitle)), comparisonCard.button && React.createElement(StrapiLinkButton, {
|
|
4385
|
-
mt: "6",
|
|
4386
|
-
link: comparisonCard.button,
|
|
4387
|
-
size: "md",
|
|
4388
|
-
variant: "outline",
|
|
4389
|
-
rightIcon: React.createElement(CaretRight, {
|
|
4390
|
-
size: 16,
|
|
4391
|
-
weight: "bold"
|
|
4392
|
-
})
|
|
4393
|
-
}))) : React.createElement(React.Fragment, null), React.createElement(React.Fragment, null, comparisonCard.lists.map(function (list) {
|
|
4394
|
-
return React.createElement(Box, {
|
|
4395
|
-
key: list.id
|
|
4396
|
-
}, React.createElement(Divider, {
|
|
4397
|
-
my: "8",
|
|
4398
|
-
color: VARIANTS[comparisonCard.variant].dividerColor
|
|
4399
|
-
}), React.createElement(Text, {
|
|
4400
|
-
size: "smLowBold",
|
|
4401
|
-
color: VARIANTS[comparisonCard.variant].textColor
|
|
4402
|
-
}, list.title), React.createElement(React.Fragment, null, list.items.map(function (item) {
|
|
4403
|
-
return React.createElement(Box, {
|
|
4404
|
-
key: item.id
|
|
4405
|
-
}, React.createElement(Spacer, {
|
|
4406
|
-
height: "4"
|
|
4407
|
-
}), React.createElement(Flex, {
|
|
4408
|
-
gap: "4",
|
|
4409
|
-
alignItems: "center"
|
|
4410
|
-
}, React.createElement(Box, null, React.createElement(Icon, {
|
|
4411
|
-
variant: comparisonCard.variant,
|
|
4412
|
-
icon: item.icon
|
|
4413
|
-
})), React.createElement(Text, {
|
|
4414
|
-
size: "smLowNormal",
|
|
4415
|
-
color: VARIANTS[comparisonCard.variant].textColor
|
|
4416
|
-
}, item.text)));
|
|
4417
|
-
})));
|
|
4418
|
-
})));
|
|
4419
|
-
}))));
|
|
4420
|
-
};
|
|
4421
|
-
|
|
4422
|
-
var SliceRenderer = function SliceRenderer(_ref) {
|
|
4423
|
-
var slices = _ref.slices,
|
|
4424
|
-
blogPosts = _ref.blogPosts,
|
|
4425
|
-
projects = _ref.projects,
|
|
4426
|
-
customerStories = _ref.customerStories,
|
|
4427
|
-
_ref$locale = _ref.locale,
|
|
4428
|
-
locale = _ref$locale === void 0 ? 'en' : _ref$locale,
|
|
4429
|
-
CustomSlice = _ref.CustomSlice;
|
|
4430
|
-
return React.createElement(ContextProvider, {
|
|
4431
|
-
locale: locale
|
|
4432
|
-
}, slices.map(function (slice) {
|
|
4433
|
-
switch (slice.__component) {
|
|
4434
|
-
case 'sections.hero':
|
|
4435
|
-
return React.createElement(Hero, {
|
|
4436
|
-
key: slice.__component + "-" + slice.id,
|
|
4437
|
-
slice: slice
|
|
4438
|
-
});
|
|
4439
|
-
case 'sections.map-hero':
|
|
4440
|
-
return React.createElement(MapHero, {
|
|
4441
|
-
key: slice.__component + "-" + slice.id,
|
|
4442
|
-
slice: slice
|
|
4443
|
-
});
|
|
4444
|
-
case 'sections.rich-text':
|
|
4445
|
-
return React.createElement(RichTextSection, {
|
|
4446
|
-
key: slice.__component + "-" + slice.id,
|
|
4447
|
-
slice: slice
|
|
4448
|
-
});
|
|
4449
|
-
case 'sections.left-text-right-card':
|
|
4450
|
-
return React.createElement(LeftTextRightCard, {
|
|
4451
|
-
key: slice.__component + "-" + slice.id,
|
|
4452
|
-
slice: slice
|
|
4453
|
-
});
|
|
4454
|
-
case 'sections.text-with-card':
|
|
4455
|
-
return React.createElement(TextWithCard, {
|
|
4456
|
-
key: slice.__component + "-" + slice.id,
|
|
4457
|
-
slice: slice
|
|
4458
|
-
});
|
|
4459
|
-
case 'sections.logo-grid-with-text':
|
|
4460
|
-
return React.createElement(LogoGridWithText, {
|
|
4461
|
-
key: slice.__component + "-" + slice.id,
|
|
4462
|
-
slice: slice
|
|
4463
|
-
});
|
|
4464
|
-
case 'sections.quote-cards':
|
|
4465
|
-
return React.createElement(QuoteCards, {
|
|
4466
|
-
key: slice.__component + "-" + slice.id,
|
|
4467
|
-
slice: slice
|
|
4468
|
-
});
|
|
4469
|
-
case 'sections.q-and-a':
|
|
4470
|
-
return React.createElement(QAndA, {
|
|
4471
|
-
key: slice.__component + "-" + slice.id,
|
|
4472
|
-
slice: slice
|
|
4473
|
-
});
|
|
4474
|
-
case 'sections.image-grid':
|
|
4475
|
-
return React.createElement(ImageGrid, {
|
|
4476
|
-
key: slice.__component + "-" + slice.id,
|
|
4477
|
-
slice: slice
|
|
4478
|
-
});
|
|
4479
|
-
case 'sections.full-width-image':
|
|
4480
|
-
return React.createElement(FullWidthImage, {
|
|
4481
|
-
key: slice.__component + "-" + slice.id,
|
|
4482
|
-
slice: slice
|
|
4483
|
-
});
|
|
4484
|
-
case 'sections.text-with-text-cards':
|
|
4485
|
-
return React.createElement(TextWithTextCards, {
|
|
4486
|
-
key: slice.__component + "-" + slice.id,
|
|
4487
|
-
slice: slice
|
|
4488
|
-
});
|
|
4489
|
-
case 'sections.text-card-grid':
|
|
4490
|
-
return React.createElement(TextCardGrid, {
|
|
4491
|
-
key: slice.__component + "-" + slice.id,
|
|
4492
|
-
slice: slice
|
|
4493
|
-
});
|
|
4494
|
-
case 'sections.icon-grid':
|
|
4495
|
-
return React.createElement(IconGrid, {
|
|
4496
|
-
key: slice.__component + "-" + slice.id,
|
|
4497
|
-
slice: slice
|
|
4498
|
-
});
|
|
4499
|
-
case 'sections.image-text-sequence':
|
|
4500
|
-
return React.createElement(ImageTextSequence, {
|
|
4501
|
-
key: slice.__component + "-" + slice.id,
|
|
4502
|
-
slice: slice
|
|
4503
|
-
});
|
|
4504
|
-
case 'sections.steps':
|
|
4505
|
-
return React.createElement(Steps, {
|
|
4506
|
-
key: slice.__component + "-" + slice.id,
|
|
4507
|
-
slice: slice
|
|
4508
|
-
});
|
|
4509
|
-
case 'sections.text-carousel':
|
|
4510
|
-
return React.createElement(TextCarousel, {
|
|
4511
|
-
key: slice.__component + "-" + slice.id,
|
|
4512
|
-
slice: slice
|
|
4513
|
-
});
|
|
4514
|
-
case 'sections.link-cards-grid':
|
|
4515
|
-
return React.createElement(LinkCardsGrid, {
|
|
4516
|
-
key: slice.__component + "-" + slice.id,
|
|
4517
|
-
slice: slice
|
|
4518
|
-
});
|
|
4519
|
-
case 'sections.small-hero':
|
|
4520
|
-
return React.createElement(SmallHero, {
|
|
4521
|
-
key: slice.__component + "-" + slice.id,
|
|
4522
|
-
slice: slice,
|
|
4523
|
-
theme: "dark"
|
|
4524
|
-
});
|
|
4525
|
-
case 'sections.small-hero-light':
|
|
4526
|
-
return React.createElement(SmallHero, {
|
|
4527
|
-
key: slice.__component + "-" + slice.id,
|
|
4528
|
-
slice: slice,
|
|
4529
|
-
theme: "light"
|
|
4530
|
-
});
|
|
4531
|
-
case 'sections.project-facts':
|
|
4532
|
-
return React.createElement(ProjectFacts, {
|
|
4533
|
-
key: slice.__component + "-" + slice.id,
|
|
4534
|
-
slice: slice,
|
|
4535
|
-
project: projects.find(function (p) {
|
|
4536
|
-
return p.id === slice.projectId;
|
|
4537
|
-
})
|
|
4538
|
-
});
|
|
4539
|
-
case 'sections.projects-grid':
|
|
4540
|
-
return React.createElement(ProjectsGrid, {
|
|
4541
|
-
key: slice.__component + "-" + slice.id,
|
|
4542
|
-
slice: slice
|
|
4543
|
-
});
|
|
4544
|
-
case 'sections.projects-map':
|
|
4545
|
-
return React.createElement(ProjectsMap, {
|
|
4546
|
-
key: slice.__component + "-" + slice.id,
|
|
4547
|
-
slice: slice,
|
|
4548
|
-
projects: projects
|
|
4549
|
-
});
|
|
4550
|
-
case 'sections.video':
|
|
4551
|
-
return React.createElement(Video, {
|
|
4552
|
-
key: slice.__component + "-" + slice.id,
|
|
4553
|
-
slice: slice
|
|
4554
|
-
});
|
|
4555
|
-
case 'sections.full-width-highlight-quote':
|
|
4556
|
-
return React.createElement(FullWidthHighlightQuote, {
|
|
4557
|
-
key: slice.__component + "-" + slice.id,
|
|
4558
|
-
slice: slice
|
|
4559
|
-
});
|
|
4560
|
-
case 'sections.full-width-image-slider':
|
|
4561
|
-
return React.createElement(FullWidthImageSlider, {
|
|
4562
|
-
key: slice.__component + "-" + slice.id,
|
|
4563
|
-
slice: slice
|
|
4564
|
-
});
|
|
4565
|
-
case 'sections.side-by-side-images':
|
|
4566
|
-
return React.createElement(SideBySideImages, {
|
|
4567
|
-
key: slice.__component + "-" + slice.id,
|
|
4568
|
-
slice: slice
|
|
4569
|
-
});
|
|
4570
|
-
case 'sections.cta-only':
|
|
4571
|
-
return React.createElement(CtaOnly, {
|
|
4572
|
-
key: slice.__component + "-" + slice.id,
|
|
4573
|
-
slice: slice
|
|
4574
|
-
});
|
|
4575
|
-
case 'sections.cta':
|
|
4576
|
-
return React.createElement(Cta, {
|
|
4577
|
-
key: slice.__component + "-" + slice.id,
|
|
4578
|
-
slice: slice
|
|
4579
|
-
});
|
|
4580
|
-
case 'sections.shop-checkout':
|
|
4581
|
-
return React.createElement(ShopCheckout, {
|
|
4582
|
-
key: slice.__component + "-" + slice.id,
|
|
4583
|
-
slice: slice
|
|
4584
|
-
});
|
|
4585
|
-
case 'sections.facts':
|
|
4586
|
-
return React.createElement(Facts, {
|
|
4587
|
-
key: slice.__component + "-" + slice.id,
|
|
4588
|
-
slice: slice
|
|
4589
|
-
});
|
|
4590
|
-
case 'sections.blog-cards':
|
|
4591
|
-
return React.createElement(BlogCards, {
|
|
4592
|
-
key: slice.__component + "-" + slice.id,
|
|
4593
|
-
slice: slice,
|
|
4594
|
-
blogPosts: blogPosts
|
|
4595
|
-
});
|
|
4596
|
-
case 'sections.blog':
|
|
4597
|
-
return React.createElement(Blog, {
|
|
4598
|
-
key: slice.__component + "-" + slice.id,
|
|
4599
|
-
slice: _extends({}, slice, {
|
|
4600
|
-
blog_posts: slice.blog_posts.data
|
|
4601
|
-
}),
|
|
4602
|
-
blogPosts: blogPosts
|
|
4603
|
-
});
|
|
4604
|
-
case 'sections.glossary':
|
|
4605
|
-
return React.createElement(Glossary, {
|
|
4606
|
-
key: slice.__component + "-" + slice.id,
|
|
4607
|
-
slice: _extends({}, slice, {
|
|
4608
|
-
glossary_items: slice.glossary_items.data
|
|
4609
|
-
})
|
|
4610
|
-
});
|
|
4611
|
-
case 'sections.customer-stories':
|
|
4612
|
-
return React.createElement(CustomerStories, {
|
|
4613
|
-
key: slice.__component + "-" + slice.id,
|
|
4614
|
-
slice: _extends({}, slice, {
|
|
4615
|
-
customer_stories: slice.customer_stories.data
|
|
4616
|
-
}),
|
|
4617
|
-
customerStories: customerStories
|
|
4618
|
-
});
|
|
4619
|
-
case 'sections.comparison':
|
|
4620
|
-
return React.createElement(Comparison, {
|
|
4621
|
-
key: slice.__component + "-" + slice.id,
|
|
4622
|
-
slice: slice
|
|
4623
|
-
});
|
|
4624
|
-
default:
|
|
4625
|
-
if (CustomSlice) {
|
|
4626
|
-
return React.createElement(CustomSlice, {
|
|
4627
|
-
key: slice.__component + "-" + slice.id,
|
|
4628
|
-
id: slice.__component,
|
|
4629
|
-
slice: slice
|
|
4630
|
-
});
|
|
4631
|
-
}
|
|
4632
|
-
return React.createElement("div", {
|
|
4633
|
-
key: slice.__component + "-" + slice.id
|
|
4634
|
-
}, "Slice component not supported");
|
|
4635
|
-
}
|
|
4636
|
-
}));
|
|
4637
|
-
};
|
|
4638
|
-
|
|
4639
|
-
export { SliceRenderer };
|
|
4640
|
-
//# sourceMappingURL=strapi-slices.esm.js.map
|