gatsby-matrix-theme 40.0.14 → 40.0.15

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.
Files changed (30) hide show
  1. package/.storybook/preview.js +8 -0
  2. package/CHANGELOG.md +22 -0
  3. package/package.json +2 -2
  4. package/src/components/atoms/feedback/template-one/template-one.stories.js +1 -1
  5. package/src/components/atoms/feedback/template-two/template-two.stories.js +1 -1
  6. package/src/components/atoms/info-grid/grid-item/index.js +7 -1
  7. package/src/components/atoms/info-grid/grid-item/item.module.scss +55 -3
  8. package/src/components/atoms/info-grid/template-one/index.js +9 -1
  9. package/src/components/atoms/info-grid/template-one/info-grid-template-three.stories.js +118 -0
  10. package/src/components/atoms/info-grid/template-one/info-grid.module.scss +10 -0
  11. package/src/components/atoms/info-grid/template-one/info-grid.stories.js +26 -2
  12. package/src/components/atoms/info-grid/template-two/info-grid.stories.js +1 -1
  13. package/src/components/atoms/review-credits/review-credits.stories.js +1 -1
  14. package/src/components/molecules/game-iframe/index.js +5 -3
  15. package/src/constants/info-grid.js +8 -0
  16. package/src/gatsby-core-theme/components/molecules/module/index.js +12 -2
  17. package/src/gatsby-core-theme/styles/utils/variables/_main.scss +2 -1
  18. package/storybook/public/907.7ea80ce9.iframe.bundle.js +2 -0
  19. package/storybook/public/{972.5d63ec47.iframe.bundle.js → 972.dc06b5b5.iframe.bundle.js} +4 -4
  20. package/storybook/public/{972.5d63ec47.iframe.bundle.js.map → 972.dc06b5b5.iframe.bundle.js.map} +1 -1
  21. package/storybook/public/iframe.html +1 -1
  22. package/storybook/public/main.a8cbc4c3.iframe.bundle.js +2 -0
  23. package/storybook/public/main.a8cbc4c3.iframe.bundle.js.LICENSE.txt +1 -0
  24. package/storybook/public/project.json +1 -1
  25. package/storybook/public/runtime~main.4427aac3.iframe.bundle.js +1 -0
  26. package/tests/factories/authors/author.factory.js +4 -0
  27. package/storybook/public/main.0577a3da.iframe.bundle.js +0 -2
  28. package/storybook/public/runtime~main.bc7c15ed.iframe.bundle.js +0 -1
  29. /package/storybook/public/{main.0577a3da.iframe.bundle.js.LICENSE.txt → 907.7ea80ce9.iframe.bundle.js.LICENSE.txt} +0 -0
  30. /package/storybook/public/{972.5d63ec47.iframe.bundle.js.LICENSE.txt → 972.dc06b5b5.iframe.bundle.js.LICENSE.txt} +0 -0
@@ -63,6 +63,14 @@ export const parameters = {
63
63
  'Template Two',
64
64
  'Template Three',
65
65
  ],
66
+ 'Template Blocks',
67
+ [
68
+ 'Calculators',
69
+ 'Contact us page',
70
+ 'FeedBack Counter',
71
+ 'Info Grid',
72
+ ['Template One', 'Template Two', 'Template Three'],
73
+ ],
66
74
  ],
67
75
  'Atoms',
68
76
  'Molecules',
package/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## [40.0.15](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v40.0.14...v40.0.15) (2024-04-23)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add translation key for iframe button and add template newsletter ([31498bf](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/31498bf48204948346670fe27cf4fc42516bef9b))
7
+ * fix test ([0517641](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/0517641624d5dbe8af803bc8637fe63c38285eca))
8
+
9
+
10
+ ### Code Refactoring
11
+
12
+ * change path on storybook ([4e6d658](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/4e6d65838e819bf8d6f9f236b577fc104a3a6847))
13
+ * change to storybook ([86a863b](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/86a863b33193b40cbc50f0dbd13196e878cb190f))
14
+ * change to storybook page template ([39b226d](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/39b226daf424347b37aa7253a93b12d794fa768d))
15
+ * changes to info grid author and storybook ([ba149f2](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/ba149f2ac3af2741a96a5f7e3f1901541ec67a97))
16
+ * changes to storybook order ([39e4743](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/39e4743cc1f8e572227852261a561dc13cbe71e1))
17
+ * correction to info grid constant template name ([ed6b2c2](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/ed6b2c20b40e8edcd86830b64ff802b843eec7c2))
18
+
19
+
20
+ * Merge branch 'tm-4272-author-info-grid' into 'master' ([61e1ae2](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/61e1ae2e586d5459deaa1cd546bb48a42d3ca78f))
21
+ * Merge branch 'newsletter-iframe' into 'master' ([7b846f6](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/7b846f6d1fca2636921d93b872f0446457e5de7c))
22
+
1
23
  ## [40.0.14](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v40.0.13...v40.0.14) (2024-04-22)
2
24
 
3
25
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gatsby-matrix-theme",
3
- "version": "40.0.14",
3
+ "version": "40.0.15",
4
4
  "main": "index.js",
5
5
  "description": "Matrix Theme NPM Package",
6
6
  "author": "",
@@ -25,7 +25,7 @@
25
25
  "dependencies": {
26
26
  "@react-icons/all-files": "^4.1.0",
27
27
  "gatsby": "^5.11.0",
28
- "gatsby-core-theme": "30.0.114",
28
+ "gatsby-core-theme": "30.0.115",
29
29
  "gatsby-plugin-sharp": "^5.11.0",
30
30
  "gatsby-plugin-sitemap": "^3.3.0",
31
31
  "gatsby-transformer-sharp": "^5.11.0",
@@ -10,7 +10,7 @@ import {
10
10
  import TemplateOne from '.';
11
11
 
12
12
  export default {
13
- title: 'Theme/Modules/Template Blocks/FeadBack Counter/Template One /Template One',
13
+ title: 'Theme/Modules/Template Blocks/FeedBack Counter/Template One /Template One',
14
14
  component: TemplateOne,
15
15
  argTypes: {
16
16
  title: 'Would you recommend (Casino Name)?',
@@ -10,7 +10,7 @@ import {
10
10
  import TemplateOne from '.';
11
11
 
12
12
  export default {
13
- title: 'Theme/Modules/Template Blocks/FeadBack Counter/Template Two /Template two',
13
+ title: 'Theme/Modules/Template Blocks/FeedBack Counter/Template Two /Template two',
14
14
  component: TemplateOne,
15
15
  argTypes: {
16
16
  title: 'Would you recommend (Casino Name)?',
@@ -13,6 +13,7 @@ const InfoGridItem = ({
13
13
  gridLabels,
14
14
  gridItems,
15
15
  template,
16
+ templateThree,
16
17
  }) => {
17
18
  const { translations } = useContext(Context) || {};
18
19
  const [showMore, setShowMore] = useState(false);
@@ -26,7 +27,11 @@ const InfoGridItem = ({
26
27
  });
27
28
 
28
29
  return (
29
- <div className={`${templateTwo ? styles.columnItem || '' : styles.gridItem || ''}`}>
30
+ <div
31
+ className={`${templateTwo ? styles.columnItem || '' : styles.gridItem || ''} ${
32
+ templateThree ? styles.templateThree || '' : ''
33
+ }`}
34
+ >
30
35
  <span>
31
36
  {showEmojis ? title : removeEmojis(title)}
32
37
  {showHyphen && ':'}
@@ -44,6 +49,7 @@ InfoGridItem.propTypes = {
44
49
  gridLabels: PropTypes.shape({}),
45
50
  gridItems: PropTypes.shape({}),
46
51
  template: PropTypes.string,
52
+ templateThree: PropTypes.bool,
47
53
  };
48
54
 
49
55
  export default InfoGridItem;
@@ -54,7 +54,6 @@
54
54
  }
55
55
  }
56
56
 
57
-
58
57
  .gridItem {
59
58
  @include flex-align(center, space-between);
60
59
  padding: 0.8rem;
@@ -125,8 +124,7 @@
125
124
 
126
125
  &:nth-of-type(2) {
127
126
  font-size: 1.6rem;
128
- line-height: 2.7rem;
129
-
127
+ line-height: 2.7rem;
130
128
  }
131
129
 
132
130
  > button,
@@ -136,4 +134,58 @@
136
134
  }
137
135
  }
138
136
  }
137
+ }
138
+
139
+ .templateThree {
140
+ background: #fafafa;
141
+ padding: 2.4rem;
142
+ gap: 0.4rem;
143
+ border: none;
144
+ border-radius: 1.6rem;
145
+ @include flex-direction(column);
146
+ @include flex-align(flex-start, flex-start);
147
+
148
+ span {
149
+ color: var(--info-grid-template-three-title-color);
150
+ font-weight: 700;
151
+
152
+ &:first-of-type {
153
+ text-transform: uppercase;
154
+ letter-spacing: 0.16em;
155
+ }
156
+
157
+ &:nth-of-type(2) {
158
+ font-size: 1.8rem;
159
+ line-height: 2.6rem;
160
+ padding: 0;
161
+ text-align: left;
162
+ font-weight: 700;
163
+ color: var(--info-grid-template-three-text-color);
164
+
165
+ a {
166
+ color: var(--info-grid-template-three-text-color);
167
+ text-decoration: none;
168
+ }
169
+ }
170
+ }
171
+
172
+ @include min(tablet) {
173
+ gap: 1.6rem;
174
+
175
+ &::before {
176
+ display: none;
177
+ }
178
+
179
+ span {
180
+ &:first-of-type {
181
+ font-size: 1.6rem;
182
+ line-height: 2.4rem;
183
+ }
184
+
185
+ &:nth-of-type(2) {
186
+ font-size: 2rem;
187
+ line-height: 2.8rem;
188
+ }
189
+ }
190
+ }
139
191
  }
@@ -22,6 +22,7 @@ const InfoGrid = ({
22
22
  showSeeMoreButton = false,
23
23
  showInitial = 6,
24
24
  showTitle = true,
25
+ templateThree = false,
25
26
  }) => {
26
27
  const ref = useRef();
27
28
  const { translations } = useContext(Context) || {};
@@ -36,7 +37,12 @@ const InfoGrid = ({
36
37
  const templateTwo = showSeeMoreButton;
37
38
 
38
39
  const showGridItems = () => (
39
- <div ref={ref} className={`${templateTwo ? styles.singleColumn || '' : styles.grid || ''}`}>
40
+ <div
41
+ ref={ref}
42
+ className={`${templateTwo ? styles.singleColumn || '' : styles.grid || ''} ${
43
+ templateThree ? styles.templateThree || '' : ''
44
+ }`}
45
+ >
40
46
  {Object.keys(gridItems)
41
47
  .slice(
42
48
  0,
@@ -56,6 +62,7 @@ const InfoGrid = ({
56
62
  gridLabels={gridLabels}
57
63
  gridItems={gridItems}
58
64
  template={template}
65
+ templateThree={templateThree}
59
66
  />
60
67
  ))}
61
68
  </div>
@@ -133,6 +140,7 @@ InfoGrid.propTypes = {
133
140
  showEmojis: PropTypes.bool,
134
141
  showSeeMoreButton: PropTypes.bool,
135
142
  showInitial: PropTypes.number,
143
+ templateThree: PropTypes.bool,
136
144
  };
137
145
 
138
146
  export default InfoGrid;
@@ -0,0 +1,118 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ import React from 'react';
3
+ import {
4
+ Title,
5
+ Description,
6
+ Primary,
7
+ PRIMARY_STORY,
8
+ ArgsTable,
9
+ } from '@storybook/addon-docs/blocks';
10
+ import { MdInfo } from '@react-icons/all-files/md/MdInfo';
11
+ import { MdPortrait } from '@react-icons/all-files/md/MdPortrait';
12
+ import getOperatorData from '../../../../../tests/factories/pages/operator.factory';
13
+ import getAuthorList from '../../../../../tests/factories/authors/author.factory';
14
+ import InfoGrid from '.';
15
+
16
+ const pageData = getOperatorData();
17
+ const authorPageData = {
18
+ ...pageData,
19
+ relation: getAuthorList({})[1],
20
+ template: 'authors',
21
+ type: 'authors',
22
+ pageTemplate: 'authors',
23
+ };
24
+
25
+ export default {
26
+ title: 'Theme/Modules/Template Blocks/Info Grid/Template Three',
27
+ component: InfoGrid,
28
+ argTypes: {
29
+ page: {
30
+ name: 'page',
31
+ type: { name: 'object', required: true },
32
+ description: 'Page object',
33
+ defaultValue: authorPageData,
34
+ },
35
+ onlyMobile: {
36
+ name: 'onlyMobile',
37
+ type: { name: 'boolean', required: false },
38
+ defaultValue: true,
39
+ description:
40
+ 'Show/hide collapse button on mobile using collapse component. Only for grid view. Not available for two column view',
41
+ },
42
+ showTwoColumns: {
43
+ name: 'showTwoColumns',
44
+ type: { name: 'boolean', required: false },
45
+ defaultValue: false,
46
+ description: 'Show as two columns. Default is to show as grid.',
47
+ },
48
+ showHyphen: {
49
+ name: 'showHyphen',
50
+ type: { name: 'boolean', required: false },
51
+ defaultValue: false,
52
+ description: 'Show ":" after labels.',
53
+ },
54
+ infoIcon: {
55
+ name: 'infoIcon',
56
+ type: { name: 'element', required: false },
57
+ defaultValue: <MdInfo />,
58
+ description:
59
+ 'Show icon for column heading. Only available for two column view. Set "showTwoColumns" to true to test this',
60
+ },
61
+ detailsIcon: {
62
+ name: 'detailsIcon',
63
+ type: { name: 'element', required: false },
64
+ defaultValue: <MdPortrait />,
65
+ description:
66
+ 'Show icon for column heading. Only available for two column view. Set "showTwoColumns" to true to test this',
67
+ },
68
+ showEmojis: {
69
+ name: 'showEmojis',
70
+ type: { name: 'boolean', required: false },
71
+ defaultValue: false,
72
+ description: 'Show/hide emojis on labels.',
73
+ },
74
+ showSeeMoreButton: {
75
+ name: 'showSeeMoreButton',
76
+ type: { name: 'boolean', required: false },
77
+ defaultValue: false,
78
+ description: 'Switch to template two',
79
+ },
80
+ showInitial: {
81
+ name: 'showInitial',
82
+ type: { name: 'number', required: false },
83
+ defaultValue: 6,
84
+ description: 'Initial number of items to show. Only on template two',
85
+ },
86
+ templateThree: {
87
+ name: 'templateThree',
88
+ type: { name: 'boolean', required: false },
89
+ defaultValue: true,
90
+ description: 'Show as Template three for author review pages',
91
+ },
92
+ },
93
+ parameters: {
94
+ docs: {
95
+ description: {
96
+ component:
97
+ 'A component that gets an object of data and generates divs including keys/values. This is the Default view',
98
+ },
99
+ page: () => (
100
+ <>
101
+ <Title />
102
+ <Description />
103
+ <Primary />
104
+ <ArgsTable story={PRIMARY_STORY} />
105
+ </>
106
+ ),
107
+ },
108
+ },
109
+ };
110
+
111
+ const Template = (args) => (
112
+ <div style={{ background: '#ffffff' }}>
113
+ <InfoGrid {...args} />
114
+ </div>
115
+ );
116
+
117
+ export const Default = Template.bind({});
118
+ Default.args = {};
@@ -94,4 +94,14 @@
94
94
  line-height: 2.2rem;
95
95
  text-transform: capitalize;
96
96
  color: var(--color-4);
97
+ }
98
+
99
+ .templateThree {
100
+ gap: 1rem;
101
+
102
+ @include min(tablet) {
103
+ display: grid;
104
+ grid-template-columns: repeat(3, 1fr);
105
+ }
106
+
97
107
  }
@@ -10,12 +10,20 @@ import {
10
10
  import { MdInfo } from '@react-icons/all-files/md/MdInfo';
11
11
  import { MdPortrait } from '@react-icons/all-files/md/MdPortrait';
12
12
  import getOperatorData from '../../../../../tests/factories/pages/operator.factory';
13
+ import getAuthorList from '../../../../../tests/factories/authors/author.factory';
13
14
  import InfoGrid from '.';
14
15
 
15
16
  const pageData = getOperatorData();
17
+ const authorPageData = {
18
+ ...pageData,
19
+ relation: getAuthorList({})[1],
20
+ template: 'author',
21
+ type: 'author',
22
+ pageTemplate: 'author',
23
+ };
16
24
 
17
25
  export default {
18
- title: 'Theme/Modules/Template Blocks/Operator review page/Info Grid/Template One',
26
+ title: 'Theme/Modules/Template Blocks/Info Grid/Template One',
19
27
  component: InfoGrid,
20
28
  argTypes: {
21
29
  page: {
@@ -75,6 +83,12 @@ export default {
75
83
  defaultValue: 6,
76
84
  description: 'Initial number of items to show. Only on template two',
77
85
  },
86
+ templateThree: {
87
+ name: 'templateThree',
88
+ type: { name: 'boolean', required: false },
89
+ defaultValue: false,
90
+ description: 'Show as Template three for author review pages',
91
+ },
78
92
  },
79
93
  parameters: {
80
94
  docs: {
@@ -94,7 +108,17 @@ export default {
94
108
  },
95
109
  };
96
110
 
97
- const Template = (args) => <InfoGrid {...args} />;
111
+ const Template = (args) => (
112
+ <div style={{ background: '#ffffff' }}>
113
+ <InfoGrid {...args} />
114
+ </div>
115
+ );
98
116
 
99
117
  export const Default = Template.bind({});
100
118
  Default.args = {};
119
+
120
+ export const TemplateThree = Template.bind({});
121
+ TemplateThree.args = {
122
+ page: authorPageData,
123
+ templateThree: true,
124
+ };
@@ -13,7 +13,7 @@ import InfoGrid from '.';
13
13
  const pageData = getOperatorData();
14
14
 
15
15
  export default {
16
- title: 'Theme/Modules/Template Blocks/Operator review page/Info Grid/Template Two',
16
+ title: 'Theme/Modules/Template Blocks/Info Grid/Template Two',
17
17
  component: InfoGrid,
18
18
  argTypes: {
19
19
  page: {
@@ -19,7 +19,7 @@ const authorData = getAuthorList({})[1];
19
19
  const reviewerData = getAuthorList({})[1];
20
20
 
21
21
  export default {
22
- title: 'Theme/Atoms/Review Credits',
22
+ title: 'Theme/Layout/Author/Review Credits',
23
23
  component: Author,
24
24
  argTypes: {
25
25
  author: {
@@ -1,8 +1,8 @@
1
- import React, { useState, useEffect } from 'react';
1
+ import React, { useState, useEffect, useContext } from 'react';
2
2
  import PropTypes from 'prop-types';
3
-
3
+ import { Context } from 'gatsby-core-theme/src/context/MainProvider';
4
4
  import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
5
- import { imagePrettyUrl } from 'gatsby-core-theme/src/helpers/getters';
5
+ import { imagePrettyUrl, translate } from 'gatsby-core-theme/src/helpers/getters';
6
6
  import Iframe from 'gatsby-core-theme/src/components/atoms/iframe';
7
7
  import Button from 'gatsby-core-theme/src/components/atoms/button/button';
8
8
  import GatsbyImg from 'gatsby-core-theme/src/hooks/gatsby-img';
@@ -10,6 +10,7 @@ import styles from './game-iframe.module.scss';
10
10
 
11
11
  const GameIframe = ({ page }) => {
12
12
  const [showIframe, setShowIframe] = useState(false);
13
+ const { translations } = useContext(Context) || {};
13
14
 
14
15
  useEffect(() => {
15
16
  const playfreeLinks = document.querySelectorAll('button.playfree');
@@ -59,6 +60,7 @@ const GameIframe = ({ page }) => {
59
60
  isInternalLink={false}
60
61
  buttonType="primary"
61
62
  buttonSize="m"
63
+ btnText={translate(translations, 'play_now_iframe', 'Play Now')}
62
64
  />
63
65
  </div>
64
66
  {showIframe && (
@@ -65,6 +65,14 @@ export const defaultInfoGrid = {
65
65
  stake: ['affiliate_games[market].extra_fields.stake', 'Effort', (value) => getMaxStake(value)],
66
66
  bonus_features: ['affiliate_games[market].extra_fields.bonus_features', 'Bonus features'],
67
67
  },
68
+ authors: {
69
+ university: ['university', 'Alumni Of'],
70
+ degree: ['degree', '📧 Degree'],
71
+ pronouns: ['pronouns', 'Pronouns'],
72
+ email_address: ['email_address', 'Email Address', (value) => generateLink(value)],
73
+ lives_in: ['lives_in', 'Lives In'],
74
+ articles_written: ['pages_count', 'Articles Written'],
75
+ },
68
76
  };
69
77
 
70
78
  export const twoColInfoGrid = {
@@ -109,12 +109,11 @@ const Modules = ({ module, pageContext, index, exclOperator, serverData }) => {
109
109
  // Template blocks
110
110
  case 'info_grid':
111
111
  case 'information_grid':
112
- return loadable(() => import('../../../../components/atoms/info-grid/template-one'));
113
112
  case 'operator_information_block':
114
113
  if (getSectionExtraField(null, page, 'operator_is_placeholder') === '1') {
115
114
  return null;
116
115
  }
117
- return loadable(() => import('../../../../components/atoms/info-grid/template-two'));
116
+ return loadable(() => import('../../../../components/atoms/info-grid/template-one'));
118
117
  case 'content_box':
119
118
  return loadable(() => import('gatsby-core-theme/src/components/atoms/content-box'));
120
119
  case 'timeline':
@@ -161,6 +160,8 @@ const Modules = ({ module, pageContext, index, exclOperator, serverData }) => {
161
160
  case 'powerball':
162
161
  if (!serverData?.lotto?.data?.find((x) => x?.name === module?.name)) return;
163
162
  return loadable(() => import('../../../../components/molecules/sportstake/lotto-module'));
163
+ case 'newsletter':
164
+ return loadable(() => import('gatsby-core-theme/src/components/molecules/newsletter'));
164
165
  default:
165
166
  return null;
166
167
  }
@@ -187,6 +188,10 @@ const Modules = ({ module, pageContext, index, exclOperator, serverData }) => {
187
188
  prettyLink: prettyTracker(module?.value, 'main', false, page?.template),
188
189
  isStickyCta: false,
189
190
  };
191
+ case 'newsletter':
192
+ return {
193
+ isSticky: false,
194
+ };
190
195
  case 'iframe':
191
196
  return {
192
197
  src: module?.iframe_source,
@@ -238,6 +243,11 @@ const Modules = ({ module, pageContext, index, exclOperator, serverData }) => {
238
243
 
239
244
  return { serverData: serverData?.lotto?.data?.find((x) => x?.name === moduleName)?.result };
240
245
  }
246
+ case 'info_grid':
247
+ case 'information_grid':
248
+ case 'operator_information_block': {
249
+ return page.type.includes('author') ? { templateThree: true } : { templateThree: false };
250
+ }
241
251
  default:
242
252
  return {
243
253
  anchorLabel,
@@ -223,7 +223,8 @@
223
223
  --info-grid-mobile-border-color: var(--color-57);
224
224
  --info-grid-column-border: 1px solid #a5bcf0;
225
225
  --info-grid-column-background-color: var(--color-4);
226
- --paragraph-color: var(--color-6);
226
+ --info-grid-template-three-title-color: #6f817a;
227
+ --info-grid-template-three-text-color: #6b50cc;
227
228
 
228
229
  // Tooltip
229
230
  --tooltip-background-color: #6e33e5;
@@ -0,0 +1,2 @@
1
+ /*! For license information please see 907.7ea80ce9.iframe.bundle.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunkgatsby_matrix_theme=self.webpackChunkgatsby_matrix_theme||[]).push([[907],{"../node_modules/gatsby-core-theme/src/components/molecules/newsletter/index.js":function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:function(){return newsletter}});__webpack_require__("../node_modules/core-js/modules/es.array.concat.js"),__webpack_require__("../node_modules/core-js/modules/es.symbol.js"),__webpack_require__("../node_modules/core-js/modules/es.symbol.description.js"),__webpack_require__("../node_modules/core-js/modules/es.object.to-string.js"),__webpack_require__("../node_modules/core-js/modules/es.symbol.iterator.js"),__webpack_require__("../node_modules/core-js/modules/es.string.iterator.js"),__webpack_require__("../node_modules/core-js/modules/es.array.iterator.js"),__webpack_require__("../node_modules/core-js/modules/web.dom-collections.iterator.js"),__webpack_require__("../node_modules/core-js/modules/es.array.slice.js"),__webpack_require__("../node_modules/core-js/modules/es.array.from.js");var react=__webpack_require__("../node_modules/react/index.js"),MdClose=__webpack_require__("../node_modules/@react-icons/all-files/md/MdClose.js"),prop_types=__webpack_require__("../node_modules/gatsby-core-theme/node_modules/prop-types/index.js"),prop_types_default=__webpack_require__.n(prop_types),MainProvider=__webpack_require__("../node_modules/gatsby-core-theme/src/context/MainProvider.js"),getters=__webpack_require__("../node_modules/gatsby-core-theme/src/helpers/getters.mjs"),injectStylesIntoStyleTag=__webpack_require__("../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),injectStylesIntoStyleTag_default=__webpack_require__.n(injectStylesIntoStyleTag),newsletter_button_module=__webpack_require__("../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[10].use[1]!../node_modules/sass-loader/dist/cjs.js!../node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[10].use[3]!../node_modules/gatsby-core-theme/src/components/molecules/newsletter/toggle-button/newsletter-button.module.scss"),options={insert:"head",singleton:!1},toggle_button_newsletter_button_module=(injectStylesIntoStyleTag_default()(newsletter_button_module.Z,options),newsletter_button_module.Z.locals||{}),NewsletterButton=function NewsletterButton(_ref){var _ref$text=_ref.text,text=void 0===_ref$text?"Bonus alert":_ref$text,toggleNewsLetter=_ref.toggleNewsLetter,_ref$active=_ref.active,active=void 0===_ref$active||_ref$active;return react.createElement("button",{onClick:toggleNewsLetter,className:"".concat((null==toggle_button_newsletter_button_module?void 0:toggle_button_newsletter_button_module.button)||""," ").concat(active&&toggle_button_newsletter_button_module.active||"")},text)};NewsletterButton.displayName="NewsletterButton",NewsletterButton.propTypes={text:prop_types_default().string,toggleNewsLetter:prop_types_default().bool,active:prop_types_default().bool},NewsletterButton.__docgenInfo={description:"",methods:[],displayName:"NewsletterButton",props:{text:{defaultValue:{value:"'Bonus alert'",computed:!1},description:"",type:{name:"string"},required:!1},active:{defaultValue:{value:"true",computed:!1},description:"",type:{name:"bool"},required:!1},toggleNewsLetter:{description:"",type:{name:"bool"},required:!1}}};var toggle_button=NewsletterButton;"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["../node_modules/gatsby-core-theme/src/components/molecules/newsletter/toggle-button/index.js"]={name:"NewsletterButton",docgenInfo:NewsletterButton.__docgenInfo,path:"../node_modules/gatsby-core-theme/src/components/molecules/newsletter/toggle-button/index.js"});__webpack_require__("../node_modules/core-js/modules/es.promise.js"),__webpack_require__("../node_modules/core-js/modules/es.object.define-property.js"),__webpack_require__("../node_modules/core-js/modules/es.symbol.async-iterator.js"),__webpack_require__("../node_modules/core-js/modules/es.symbol.to-string-tag.js"),__webpack_require__("../node_modules/core-js/modules/es.math.to-string-tag.js"),__webpack_require__("../node_modules/core-js/modules/es.json.to-string-tag.js"),__webpack_require__("../node_modules/core-js/modules/es.object.get-prototype-of.js"),__webpack_require__("../node_modules/core-js/modules/web.dom-collections.for-each.js"),__webpack_require__("../node_modules/core-js/modules/es.object.set-prototype-of.js");var organisms_form=__webpack_require__("../node_modules/gatsby-core-theme/src/components/organisms/form/index.js"),constants_forms=__webpack_require__("../node_modules/gatsby-core-theme/src/constants/forms.js"),process=__webpack_require__("../node_modules/process/browser.js");function _typeof(obj){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}function _regeneratorRuntime(){_regeneratorRuntime=function _regeneratorRuntime(){return exports};var exports={},Op=Object.prototype,hasOwn=Op.hasOwnProperty,defineProperty=Object.defineProperty||function(obj,key,desc){obj[key]=desc.value},$Symbol="function"==typeof Symbol?Symbol:{},iteratorSymbol=$Symbol.iterator||"@@iterator",asyncIteratorSymbol=$Symbol.asyncIterator||"@@asyncIterator",toStringTagSymbol=$Symbol.toStringTag||"@@toStringTag";function define(obj,key,value){return Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}),obj[key]}try{define({},"")}catch(err){define=function define(obj,key,value){return obj[key]=value}}function wrap(innerFn,outerFn,self,tryLocsList){var protoGenerator=outerFn&&outerFn.prototype instanceof Generator?outerFn:Generator,generator=Object.create(protoGenerator.prototype),context=new Context(tryLocsList||[]);return defineProperty(generator,"_invoke",{value:makeInvokeMethod(innerFn,self,context)}),generator}function tryCatch(fn,obj,arg){try{return{type:"normal",arg:fn.call(obj,arg)}}catch(err){return{type:"throw",arg:err}}}exports.wrap=wrap;var ContinueSentinel={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var IteratorPrototype={};define(IteratorPrototype,iteratorSymbol,(function(){return this}));var getProto=Object.getPrototypeOf,NativeIteratorPrototype=getProto&&getProto(getProto(values([])));NativeIteratorPrototype&&NativeIteratorPrototype!==Op&&hasOwn.call(NativeIteratorPrototype,iteratorSymbol)&&(IteratorPrototype=NativeIteratorPrototype);var Gp=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(IteratorPrototype);function defineIteratorMethods(prototype){["next","throw","return"].forEach((function(method){define(prototype,method,(function(arg){return this._invoke(method,arg)}))}))}function AsyncIterator(generator,PromiseImpl){function invoke(method,arg,resolve,reject){var record=tryCatch(generator[method],generator,arg);if("throw"!==record.type){var result=record.arg,value=result.value;return value&&"object"==_typeof(value)&&hasOwn.call(value,"__await")?PromiseImpl.resolve(value.__await).then((function(value){invoke("next",value,resolve,reject)}),(function(err){invoke("throw",err,resolve,reject)})):PromiseImpl.resolve(value).then((function(unwrapped){result.value=unwrapped,resolve(result)}),(function(error){return invoke("throw",error,resolve,reject)}))}reject(record.arg)}var previousPromise;defineProperty(this,"_invoke",{value:function value(method,arg){function callInvokeWithMethodAndArg(){return new PromiseImpl((function(resolve,reject){invoke(method,arg,resolve,reject)}))}return previousPromise=previousPromise?previousPromise.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(innerFn,self,context){var state="suspendedStart";return function(method,arg){if("executing"===state)throw new Error("Generator is already running");if("completed"===state){if("throw"===method)throw arg;return doneResult()}for(context.method=method,context.arg=arg;;){var delegate=context.delegate;if(delegate){var delegateResult=maybeInvokeDelegate(delegate,context);if(delegateResult){if(delegateResult===ContinueSentinel)continue;return delegateResult}}if("next"===context.method)context.sent=context._sent=context.arg;else if("throw"===context.method){if("suspendedStart"===state)throw state="completed",context.arg;context.dispatchException(context.arg)}else"return"===context.method&&context.abrupt("return",context.arg);state="executing";var record=tryCatch(innerFn,self,context);if("normal"===record.type){if(state=context.done?"completed":"suspendedYield",record.arg===ContinueSentinel)continue;return{value:record.arg,done:context.done}}"throw"===record.type&&(state="completed",context.method="throw",context.arg=record.arg)}}}function maybeInvokeDelegate(delegate,context){var methodName=context.method,method=delegate.iterator[methodName];if(void 0===method)return context.delegate=null,"throw"===methodName&&delegate.iterator.return&&(context.method="return",context.arg=void 0,maybeInvokeDelegate(delegate,context),"throw"===context.method)||"return"!==methodName&&(context.method="throw",context.arg=new TypeError("The iterator does not provide a '"+methodName+"' method")),ContinueSentinel;var record=tryCatch(method,delegate.iterator,context.arg);if("throw"===record.type)return context.method="throw",context.arg=record.arg,context.delegate=null,ContinueSentinel;var info=record.arg;return info?info.done?(context[delegate.resultName]=info.value,context.next=delegate.nextLoc,"return"!==context.method&&(context.method="next",context.arg=void 0),context.delegate=null,ContinueSentinel):info:(context.method="throw",context.arg=new TypeError("iterator result is not an object"),context.delegate=null,ContinueSentinel)}function pushTryEntry(locs){var entry={tryLoc:locs[0]};1 in locs&&(entry.catchLoc=locs[1]),2 in locs&&(entry.finallyLoc=locs[2],entry.afterLoc=locs[3]),this.tryEntries.push(entry)}function resetTryEntry(entry){var record=entry.completion||{};record.type="normal",delete record.arg,entry.completion=record}function Context(tryLocsList){this.tryEntries=[{tryLoc:"root"}],tryLocsList.forEach(pushTryEntry,this),this.reset(!0)}function values(iterable){if(iterable){var iteratorMethod=iterable[iteratorSymbol];if(iteratorMethod)return iteratorMethod.call(iterable);if("function"==typeof iterable.next)return iterable;if(!isNaN(iterable.length)){var i=-1,next=function next(){for(;++i<iterable.length;)if(hasOwn.call(iterable,i))return next.value=iterable[i],next.done=!1,next;return next.value=void 0,next.done=!0,next};return next.next=next}}return{next:doneResult}}function doneResult(){return{value:void 0,done:!0}}return GeneratorFunction.prototype=GeneratorFunctionPrototype,defineProperty(Gp,"constructor",{value:GeneratorFunctionPrototype,configurable:!0}),defineProperty(GeneratorFunctionPrototype,"constructor",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,toStringTagSymbol,"GeneratorFunction"),exports.isGeneratorFunction=function(genFun){var ctor="function"==typeof genFun&&genFun.constructor;return!!ctor&&(ctor===GeneratorFunction||"GeneratorFunction"===(ctor.displayName||ctor.name))},exports.mark=function(genFun){return Object.setPrototypeOf?Object.setPrototypeOf(genFun,GeneratorFunctionPrototype):(genFun.__proto__=GeneratorFunctionPrototype,define(genFun,toStringTagSymbol,"GeneratorFunction")),genFun.prototype=Object.create(Gp),genFun},exports.awrap=function(arg){return{__await:arg}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,asyncIteratorSymbol,(function(){return this})),exports.AsyncIterator=AsyncIterator,exports.async=function(innerFn,outerFn,self,tryLocsList,PromiseImpl){void 0===PromiseImpl&&(PromiseImpl=Promise);var iter=new AsyncIterator(wrap(innerFn,outerFn,self,tryLocsList),PromiseImpl);return exports.isGeneratorFunction(outerFn)?iter:iter.next().then((function(result){return result.done?result.value:iter.next()}))},defineIteratorMethods(Gp),define(Gp,toStringTagSymbol,"Generator"),define(Gp,iteratorSymbol,(function(){return this})),define(Gp,"toString",(function(){return"[object Generator]"})),exports.keys=function(val){var object=Object(val),keys=[];for(var key in object)keys.push(key);return keys.reverse(),function next(){for(;keys.length;){var key=keys.pop();if(key in object)return next.value=key,next.done=!1,next}return next.done=!0,next}},exports.values=values,Context.prototype={constructor:Context,reset:function reset(skipTempReset){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(resetTryEntry),!skipTempReset)for(var name in this)"t"===name.charAt(0)&&hasOwn.call(this,name)&&!isNaN(+name.slice(1))&&(this[name]=void 0)},stop:function stop(){this.done=!0;var rootRecord=this.tryEntries[0].completion;if("throw"===rootRecord.type)throw rootRecord.arg;return this.rval},dispatchException:function dispatchException(exception){if(this.done)throw exception;var context=this;function handle(loc,caught){return record.type="throw",record.arg=exception,context.next=loc,caught&&(context.method="next",context.arg=void 0),!!caught}for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i],record=entry.completion;if("root"===entry.tryLoc)return handle("end");if(entry.tryLoc<=this.prev){var hasCatch=hasOwn.call(entry,"catchLoc"),hasFinally=hasOwn.call(entry,"finallyLoc");if(hasCatch&&hasFinally){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0);if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc)}else if(hasCatch){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0)}else{if(!hasFinally)throw new Error("try statement without catch or finally");if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc)}}}},abrupt:function abrupt(type,arg){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev<entry.finallyLoc){var finallyEntry=entry;break}}finallyEntry&&("break"===type||"continue"===type)&&finallyEntry.tryLoc<=arg&&arg<=finallyEntry.finallyLoc&&(finallyEntry=null);var record=finallyEntry?finallyEntry.completion:{};return record.type=type,record.arg=arg,finallyEntry?(this.method="next",this.next=finallyEntry.finallyLoc,ContinueSentinel):this.complete(record)},complete:function complete(record,afterLoc){if("throw"===record.type)throw record.arg;return"break"===record.type||"continue"===record.type?this.next=record.arg:"return"===record.type?(this.rval=this.arg=record.arg,this.method="return",this.next="end"):"normal"===record.type&&afterLoc&&(this.next=afterLoc),ContinueSentinel},finish:function finish(finallyLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc)return this.complete(entry.completion,entry.afterLoc),resetTryEntry(entry),ContinueSentinel}},catch:function _catch(tryLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc===tryLoc){var record=entry.completion;if("throw"===record.type){var thrown=record.arg;resetTryEntry(entry)}return thrown}}throw new Error("illegal catch attempt")},delegateYield:function delegateYield(iterable,resultName,nextLoc){return this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc},"next"===this.method&&(this.arg=void 0),ContinueSentinel}},exports}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){return void reject(error)}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise((function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(void 0)}))}}function _slicedToArray(arr,i){return function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}(arr)||function _iterableToArrayLimit(arr,i){var _i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null!=_i){var _s,_e,_x,_r,_arr=[],_n=!0,_d=!1;try{if(_x=(_i=_i.call(arr)).next,0===i){if(Object(_i)!==_i)return;_n=!1}else for(;!(_n=(_s=_x.call(_i)).done)&&(_arr.push(_s.value),_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{if(!_n&&null!=_i.return&&(_r=_i.return(),Object(_r)!==_r))return}finally{if(_d)throw _e}}return _arr}}(arr,i)||function _unsupportedIterableToArray(o,minLen){if(!o)return;if("string"==typeof o)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);"Object"===n&&o.constructor&&(n=o.constructor.name);if("Map"===n||"Set"===n)return Array.from(o);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}(arr,i)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}var NewsletterForm=function NewsletterForm(_ref){var handleApi=_ref.handleApi,redirectUrl=_ref.redirectUrl,_ref$submitText=_ref.submitText,submitText=void 0===_ref$submitText?"Submit":_ref$submitText,market=_ref.market,setErr=_ref.setErr,_useState2=_slicedToArray((0,react.useState)(""),2),ip=_useState2[0],setIP=_useState2[1],_useState4=_slicedToArray((0,react.useState)(!1),2),error=_useState4[0],setError=_useState4[1],translations=((0,react.useContext)(MainProvider._)||{}).translations,getData=function(){var _ref3=_asyncToGenerator(_regeneratorRuntime().mark((function _callee(){return _regeneratorRuntime().wrap((function _callee$(_context){for(;;)switch(_context.prev=_context.next){case 0:return _context.next=2,fetch("https://geolocation-db.com/json/",{method:"GET"}).then((function(response){return response.json()})).then((function(data){return setIP(data.IPv4)})).catch((function(err){}));case 2:case"end":return _context.stop()}}),_callee)})));return function getData(){return _ref3.apply(this,arguments)}}();(0,react.useEffect)((function(){getData()}),[]);var bacomApi=function(){var _ref4=_asyncToGenerator(_regeneratorRuntime().mark((function _callee2(name,email,phomeNumber){var timestamp,refUrl,validatePhoneNr;return _regeneratorRuntime().wrap((function _callee2$(_context2){for(;;)switch(_context2.prev=_context2.next){case 0:return timestamp=Date.now()/1e3|0,refUrl=process.env.BACOM_REF_URL,validatePhoneNr=void 0===phomeNumber,_context2.next=5,fetch("https://bacom.dk/subscribe/gig/?firstname=".concat(name,"&user_ip=").concat(ip,"&ref_name=").concat(process.env.BACOM_REF_NAME,"&ref_url=").concat(refUrl,"&timestamp=").concat(timestamp,"&country=").concat(process.env.COUNTRY,"&email=").concat(email).concat(validatePhoneNr?"":"&phone_number=".concat(phomeNumber)),{method:"GET",headers:{"Content-Type":"application/json",Accept:"application/json"}}).then((function(res){return res.text().then((function(text){"OK"===text?window.location.href=redirectUrl:setError(!0)}))}));case 5:case"end":return _context2.stop()}}),_callee2)})));return function bacomApi(_x2,_x3,_x4){return _ref4.apply(this,arguments)}}();return error||setErr?react.createElement("span",null,(0,getters.Iu)(translations,"fail_error_newsletter","Something went wrong. Please try again later!")," "):react.createElement(organisms_form.Z,{formOptions:constants_forms.M[market]||constants_forms.M.default,successMessage:(0,getters.Iu)(translations,"newsletter_form_thanks",""),failMessage:(0,getters.Iu)(translations,"fail_error_newsletter","Something went wrong. Please try again later!"),customeSubmit:function handelSubmit(e){var _e$name,_e$email,_e$phomeNumber,_e$name2,_e$email2,_e$phomeNumber2;return handleApi?handleApi(null==e||null===(_e$name=e.name)||void 0===_e$name?void 0:_e$name.value,null==e||null===(_e$email=e.email)||void 0===_e$email?void 0:_e$email.value,null==e||null===(_e$phomeNumber=e.phomeNumber)||void 0===_e$phomeNumber?void 0:_e$phomeNumber.value,ip):bacomApi(null==e||null===(_e$name2=e.name)||void 0===_e$name2?void 0:_e$name2.value,null==e||null===(_e$email2=e.email)||void 0===_e$email2?void 0:_e$email2.value,null==e||null===(_e$phomeNumber2=e.phomeNumber)||void 0===_e$phomeNumber2?void 0:_e$phomeNumber2.value)},customError:!0,buttonLabel:submitText})};NewsletterForm.displayName="NewsletterForm",NewsletterForm.propTypes={handleApi:prop_types_default().func,redirectUrl:prop_types_default().string,submitText:prop_types_default().string,market:prop_types_default().string,setErr:prop_types_default().bool},NewsletterForm.__docgenInfo={description:"",methods:[],displayName:"NewsletterForm",props:{submitText:{defaultValue:{value:"'Submit'",computed:!1},description:"",type:{name:"string"},required:!1},handleApi:{description:"",type:{name:"func"},required:!1},redirectUrl:{description:"",type:{name:"string"},required:!1},market:{description:"",type:{name:"string"},required:!1},setErr:{description:"",type:{name:"bool"},required:!1}}};var newsletter_form=NewsletterForm;"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["../node_modules/gatsby-core-theme/src/components/molecules/newsletter/form/index.js"]={name:"NewsletterForm",docgenInfo:NewsletterForm.__docgenInfo,path:"../node_modules/gatsby-core-theme/src/components/molecules/newsletter/form/index.js"});var newsletter_module=__webpack_require__("../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[10].use[1]!../node_modules/sass-loader/dist/cjs.js!../node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[10].use[3]!../node_modules/gatsby-core-theme/src/components/molecules/newsletter/newsletter.module.scss"),newsletter_module_options={insert:"head",singleton:!1},newsletter_newsletter_module=(injectStylesIntoStyleTag_default()(newsletter_module.Z,newsletter_module_options),newsletter_module.Z.locals||{});function newsletter_slicedToArray(arr,i){return function newsletter_arrayWithHoles(arr){if(Array.isArray(arr))return arr}(arr)||function newsletter_iterableToArrayLimit(arr,i){var _i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null!=_i){var _s,_e,_x,_r,_arr=[],_n=!0,_d=!1;try{if(_x=(_i=_i.call(arr)).next,0===i){if(Object(_i)!==_i)return;_n=!1}else for(;!(_n=(_s=_x.call(_i)).done)&&(_arr.push(_s.value),_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{if(!_n&&null!=_i.return&&(_r=_i.return(),Object(_r)!==_r))return}finally{if(_d)throw _e}}return _arr}}(arr,i)||function newsletter_unsupportedIterableToArray(o,minLen){if(!o)return;if("string"==typeof o)return newsletter_arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);"Object"===n&&o.constructor&&(n=o.constructor.name);if("Map"===n||"Set"===n)return Array.from(o);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return newsletter_arrayLikeToArray(o,minLen)}(arr,i)||function newsletter_nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function newsletter_arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}var Newsletter=function Newsletter(_ref){var page=_ref.page,_ref$openBtnText=_ref.openBtnText,openBtnText=void 0===_ref$openBtnText?"Unlock Bonuses":_ref$openBtnText,_ref$isSticky=_ref.isSticky,isSticky=void 0===_ref$isSticky||_ref$isSticky,_useState2=newsletter_slicedToArray((0,react.useState)(!1),2),toggleNewsetter=_useState2[0],setToggleNewsletter=_useState2[1],_useState4=newsletter_slicedToArray((0,react.useState)(!1),2),isClicked=_useState4[0],setIsClicked=_useState4[1],translations=((0,react.useContext)(MainProvider._)||{}).translations,redirectUrl="/"===(null==page?void 0:page.path)?"".concat((0,getters.Gr)(null==page?void 0:page.path),"?subscribed=true"):"".concat((0,getters.Gr)(null==page?void 0:page.path),"/?subscribed=true");return react.createElement(react.Fragment,null,toggleNewsetter&&react.createElement("div",{className:(null==newsletter_newsletter_module?void 0:newsletter_newsletter_module.layer)||"",onClick:function onClick(){return setToggleNewsletter(!1)},"aria-hidden":"true"}),react.createElement("div",{className:isSticky?newsletter_newsletter_module.content||"":newsletter_newsletter_module.contentPage||""},isSticky&&react.createElement(toggle_button,{active:!toggleNewsetter,text:(0,getters.Iu)(translations,"newsletter_open_btn",openBtnText),toggleNewsLetter:function statesCombined(){setToggleNewsletter(!toggleNewsetter),setIsClicked(!0)},isClicked:isClicked,gtmClass:"newsletter-gtm btn-cta"}),react.createElement("div",{className:isSticky?"".concat((null==newsletter_newsletter_module?void 0:newsletter_newsletter_module.form)||""," ").concat(toggleNewsetter&&(null==newsletter_newsletter_module?void 0:newsletter_newsletter_module.active)||""):(null==newsletter_newsletter_module?void 0:newsletter_newsletter_module.formPage)||""},react.createElement(newsletter_form,{market:null==page?void 0:page.market,redirectUrl:redirectUrl}),isSticky&&react.createElement(MdClose.F,{className:(null==newsletter_newsletter_module?void 0:newsletter_newsletter_module.closeBtn)||"",onClick:function onClick(){return setToggleNewsletter(!1)},title:"Close Icon"}))))};Newsletter.propTypes={openBtnText:prop_types_default().string,page:prop_types_default().shape({path:prop_types_default().string,template:prop_types_default().string,type:prop_types_default().string,market:prop_types_default().string}),isSticky:prop_types_default().bool},Newsletter.__docgenInfo={description:"",methods:[],displayName:"Newsletter",props:{openBtnText:{defaultValue:{value:"'Unlock Bonuses'",computed:!1},description:"",type:{name:"string"},required:!1},isSticky:{defaultValue:{value:"true",computed:!1},description:"",type:{name:"bool"},required:!1},page:{description:"",type:{name:"shape",value:{path:{name:"string",required:!1},template:{name:"string",required:!1},type:{name:"string",required:!1},market:{name:"string",required:!1}}},required:!1}}};var newsletter=Newsletter;"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["../node_modules/gatsby-core-theme/src/components/molecules/newsletter/index.js"]={name:"Newsletter",docgenInfo:Newsletter.__docgenInfo,path:"../node_modules/gatsby-core-theme/src/components/molecules/newsletter/index.js"})},"../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[10].use[1]!../node_modules/sass-loader/dist/cjs.js!../node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[10].use[3]!../node_modules/gatsby-core-theme/src/components/molecules/newsletter/newsletter.module.scss":function(module,__webpack_exports__,__webpack_require__){var _css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../node_modules/css-loader/dist/runtime/cssWithMappingToString.js"),_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__),_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("../node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".osQVXffrfIVDaJrBXNdUpw\\=\\={margin:0 auto}@media only screen and (min-width:768px){.osQVXffrfIVDaJrBXNdUpw\\=\\= .Kjw1GkkaF6Sj8T2JZQgZlg\\=\\={width:70rem;left:2rem;z-index:15}}@media only screen and (max-width:767px){.osQVXffrfIVDaJrBXNdUpw\\=\\= .Kjw1GkkaF6Sj8T2JZQgZlg\\=\\={bottom:30%}}.FbVesRwjDq6MOvjbxpJAqw\\=\\={position:absolute;width:100vw;height:100vh;top:0}.ncslz-PEZwOxh5cuw6HurQ\\=\\={position:fixed;background:#fff;box-shadow:0 .4rem 1.6rem rgba(0,0,0,.2);border-radius:.4rem;padding:2rem;transition:0s;bottom:-100%;z-index:var(--scroll-to-top-index)}@media only screen and (min-width:768px){.ncslz-PEZwOxh5cuw6HurQ\\=\\={display:flex;flex-direction:column;left:-90rem;max-width:90rem;height:fit-content;top:25vh;position:fixed}}.rrqTRI4i6t0vC6Zvq1zTHQ\\=\\={position:absolute;right:1rem;top:1rem;width:2.5rem;height:2.5rem;cursor:pointer;z-index:2;border:none;color:#00889e}.dwUfBNN1D5YlnXbixVp86A\\=\\={padding:3.2rem 1.6rem;width:100%;background:var(--newsletter-container-background-color);z-index:var(--scroll-to-top-index);max-width:100rem;margin:0 auto}.ncslz-PEZwOxh5cuw6HurQ\\=\\=>div{background:rgba(0,0,0,0);box-shadow:none}","",{version:3,sources:["webpack://./../node_modules/gatsby-core-theme/src/components/molecules/newsletter/newsletter.module.scss","webpack://./../node_modules/gatsby-core-theme/src/styles/utils/_media-queries.scss","webpack://./../node_modules/gatsby-core-theme/src/styles/utils/_mixins.scss"],names:[],mappings:"AAcA,4BACE,aAAA,CCqCA,yCDnCE,wDACE,WAAA,CACA,SAAA,CACA,UAAA,CAAA,CCuCJ,yCDnCE,wDACE,UAAA,CAAA,CAIN,4BACE,iBAAA,CACA,WAAA,CACA,YAAA,CACA,KAAA,CAEF,4BACE,cAAA,CACA,eAAA,CACA,wCAAA,CACA,mBAAA,CACA,YAAA,CACA,aAAA,CACA,YAAA,CACA,kCAAA,CCSA,yCDjBF,4BE5BE,YAAA,CACA,qBFqC0B,CACxB,WAAA,CACA,eAAA,CACA,kBAAA,CACA,QAAA,CACA,cAAA,CAAA,CAIJ,4BACE,iBAAA,CACA,UAAA,CACA,QAAA,CACA,YAAA,CACA,aAAA,CACA,cAAA,CACA,SAAA,CACA,WAAA,CACA,aAAA,CAEF,4BACE,qBAAA,CACA,UAAA,CACA,uDAAA,CACA,kCAAA,CACA,gBAAA,CACA,aAAA,CAKA,gCACE,wBAAA,CACA,eAAA",sourcesContent:["// Global styles extended in each theme\n\n// Utils\n@import '../../../styles/utils/variables/typography';\n@import '../../../styles/utils/variables/layout';\n@import '../../../styles/utils/variables/stack-order';\n@import '../../../styles/utils/media-queries';\n@import '../../../styles/utils/icons';\n@import '../../../styles/utils/tooltip';\n@import '../../../styles/utils/loader';\n@import '../../../styles/utils/mixins';\n@import '../../../styles/utils/scrollbar';\n@import '../../../styles/utils/animations';\n\n.content {\n margin: 0 auto;\n @include min(tablet) {\n .active {\n width: 70rem;\n left: 2rem;\n z-index: 15;\n }\n }\n @include max(mobile) {\n .active {\n bottom: 30%;\n }\n }\n}\n.layer {\n position: absolute;\n width: 100vw;\n height: 100vh;\n top: 0;\n}\n.form {\n position: fixed;\n background: #fff;\n box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.2);\n border-radius: 0.4rem;\n padding: 2rem;\n transition: 0s;\n bottom: -100%;\n z-index: var(--scroll-to-top-index);\n @include min(tablet) {\n @include flex-direction(column);\n left: -90rem;\n max-width: 90rem;\n height: fit-content;\n top: 25vh;\n position: fixed;\n }\n}\n\n.closeBtn {\n position: absolute;\n right: 1rem;\n top: 1rem;\n width: 2.5rem;\n height: 2.5rem;\n cursor: pointer;\n z-index: 2;\n border: none;\n color: #00889e;\n}\n.contentPage {\n padding: 3.2rem 1.6rem;\n width: 100%;\n background: var(--newsletter-container-background-color);\n z-index: var(--scroll-to-top-index);\n max-width: 100rem;\n margin: 0 auto;\n}\n\n.form{\n // form style\n >div{\n background: transparent;\n box-shadow: none;\n h2{\n\n }\n p{\n\n }\n form{\n \n label{\n\n }\n input{\n\n }\n }\n }\n}","$media-query-sizes: (\n mobile-s: (\n min: 320px,\n max: 374px,\n ),\n mobile-m: (\n min: 375px,\n max: 424px,\n ),\n mobile: (\n min: 425px,\n max: 767px,\n ),\n tablet: (\n min: 768px,\n max: 991px,\n ),\n laptop: (\n min: 992px,\n max: 1199px,\n ),\n desktop: (\n min: 1200px,\n ),\n);\n\n// Get media query sizes\n$screen: 'only screen';\n@function media-query($media, $optional-media: '', $min: true) {\n $media-label: '';\n\n @if ($optional-media != '') {\n $media-sizes-min: map-get($media-query-sizes, $media);\n $media-sizes-max: map-get($media-query-sizes, $optional-media);\n $media-label: $screen +\n \" and (min-width:#{map-get($media-sizes-min, 'min')}) and (max-width:#{map-get($media-sizes-max, 'max')})\";\n } @else {\n $query: 'max';\n\n @if ($min) {\n $query: 'min';\n }\n\n $media-sizes: map-get($media-query-sizes, $media);\n $media-label: $screen + ' and (#{$query}-width:#{map-get($media-sizes, $query)})';\n }\n\n @return $media-label;\n}\n\n// Min media query\n@mixin min($media) {\n @media #{media-query($media)} {\n @content;\n }\n}\n\n// Max media query\n@mixin max($media) {\n @media #{media-query($media, '', false)} {\n @content;\n }\n}\n\n// Min & max media query\n@mixin min-max($min, $max) {\n @media #{media-query($min, $max)} {\n @content;\n }\n}\n\n// Use this ONLY if you need a media query that doesn't fit the $media-query-sizes breakpoints above\n// Pass number, for example @include custom-min(992)\n@mixin custom-min($min) {\n @media #{$screen} and (min-width: #{$min}px) {\n @content;\n }\n}\n\n@mixin custom-max($max) {\n @media #{$screen} and (max-width: #{$max}px) {\n @content;\n }\n}\n\n@mixin custom-min-max($min, $max) {\n @media #{$screen} and (min-width: #{$min}px) and (max-width: #{$max}px) {\n @content;\n }\n}\n\n// Landscape\n// (If we find more use cases of this in the future, might want to refactor this and include it in the media-query function for $screen)\n// Pass number\n$landscape: 'screen and (orientation:landscape)';\n\n@mixin landscape-max($max) {\n @media #{$landscape} and (max-width: #{$max}px) {\n @content;\n }\n}\n\n@mixin landscape-min($min) {\n @media #{$landscape} and (min-width: #{$min}px) {\n @content;\n }\n}\n","@mixin flex-align($align-items, $justify-content) {\n display: flex;\n align-items: $align-items;\n justify-content: $justify-content;\n}\n\n@mixin flex-direction($flex-direction) {\n display: flex;\n flex-direction: $flex-direction;\n}\n\n@mixin overflow($overflow-type, $overflow-value, $scrolling) {\n #{$overflow-type}: $overflow-value;\n -webkit-overflow-scrolling: $scrolling; // Autoprefixer doesn't add\n}\n\n@mixin text-background($bgcolor, $text-color) {\n background: $bgcolor;\n border-radius: 100px;\n color: $text-color;\n font-weight: 700;\n @include flex-align(center, center);\n padding: 0 2rem;\n}\n\n@mixin link-color($color) {\n color: $color;\n\n &:hover {\n color: $color;\n }\n}\n\n// Using em because I want images in content to inherit size based on parent element (not root)\n@mixin content-img-float($direction) {\n float: $direction;\n @if $direction == right {\n margin: var(--img-float-direction-right, 0 0 2.4rem 4.8rem);\n } @else if $direction == left {\n margin: var(--img-float-direction-left, 0 4.8rem 2.4rem 0);\n } @else {\n margin: 0 1em 1em 0;\n }\n}\n\n@mixin content-img-align($direction: center, $spacing: var(--content-img-spacing, 1em)) {\n display: block;\n @if $direction == right {\n margin: $spacing 0 $spacing auto;\n } @else if $direction == left {\n margin: $spacing auto $spacing 0;\n } @else {\n margin: $spacing auto;\n }\n}\n\n@mixin section-arrow-down($color, $width, $height) {\n position: relative;\n &:after {\n top: 100%;\n left: 50%;\n border: solid transparent;\n content: '';\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n border-color: rgba(0, 0, 0, 0);\n border-top: $height solid $color;\n border-right: calc($width / 2) solid transparent;\n border-left: calc($width / 2) solid transparent;\n margin-left: -calc($width / 2);\n }\n}\n\n@mixin gradientBtn($color1, $color2, $color3) {\n background: linear-gradient(to bottom, $color1 0, $color2 14%, $color3 61%);\n &:hover {\n background: linear-gradient(to bottom, $color1 0, $color2 14%, $color3 61%);\n }\n}\n\n@mixin sportBtn($color1, $color2) {\n background: linear-gradient(to bottom, $color1 0, $color2 100%);\n &:hover {\n background: linear-gradient(to bottom, $color2 0, $color1 100%);\n }\n}\n\n@mixin star($border-color: #ffb400, $fill-color: #ffb400, $width: 16px, $line-height: 2rem) {\n line-height: $line-height;\n width: $width;\n font-weight: normal;\n display: inline-block;\n color: $fill-color;\n font-size: 15px;\n position: relative;\n text-shadow: -1px 0 $border-color, 0 1px $border-color, 1px 0 $border-color, 0 -1px $border-color;\n\n &:last-child {\n margin-right: 0;\n }\n &:before {\n content: '\\2605';\n }\n}\n\n@mixin half-star($border-color: #ffb400, $half-empty-color: #ffb400, $half-full-color: white) {\n line-height: 2rem;\n width: 16px;\n font-weight: normal;\n display: inline-block;\n color: $half-full-color;\n font-size: 15px;\n position: relative;\n &:before {\n content: '\\2605';\n }\n text-shadow: -1px 0 $border-color, 0 1px $border-color, 1px 0 $border-color, 0 -1px $border-color;\n &:after {\n content: '\\2605';\n color: $half-empty-color;\n position: absolute;\n width: 7px;\n overflow: hidden;\n bottom: 0;\n left: 0;\n }\n}\n\n@mixin border-gradient($color-1, $color-2, $bgcolor, $radius: 0.8rem, $border-width: 2px) {\n background: $bgcolor;\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: $radius;\n border: $border-width solid transparent;\n background: $color-1, $color-2 border-box;\n -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);\n -webkit-mask-composite: destination-out;\n mask-composite: exclude;\n }\n}\n\n@mixin border-gradient-single($color-1, $bgcolor, $radius: 0.8rem, $border-width: 0.1rem) {\n background: $bgcolor;\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: $radius;\n border: $border-width solid transparent;\n background: $color-1 border-box;\n -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);\n -webkit-mask-composite: destination-out;\n mask-composite: exclude;\n }\n}\n\n@mixin buttonsColor($color1, $color2, $color3, $textColor: 'white') {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n background-color: $color1;\n color: $textColor;\n padding: 0.9rem 3rem;\n font-weight: 700;\n font-size: 1.8rem;\n border-radius: var(--border-radius);\n\n > svg {\n flex: none;\n margin-left: 0.8rem;\n }\n\n &:hover {\n background-color: $color2;\n color: $textColor;\n }\n\n &:active {\n background-color: $color3;\n color: $textColor;\n }\n}\n"],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={content:"osQVXffrfIVDaJrBXNdUpw==",active:"Kjw1GkkaF6Sj8T2JZQgZlg==",layer:"FbVesRwjDq6MOvjbxpJAqw==",form:"ncslz-PEZwOxh5cuw6HurQ==",closeBtn:"rrqTRI4i6t0vC6Zvq1zTHQ==",contentPage:"dwUfBNN1D5YlnXbixVp86A=="},__webpack_exports__.Z=___CSS_LOADER_EXPORT___},"../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[10].use[1]!../node_modules/sass-loader/dist/cjs.js!../node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[10].use[3]!../node_modules/gatsby-core-theme/src/components/molecules/newsletter/toggle-button/newsletter-button.module.scss":function(module,__webpack_exports__,__webpack_require__){var _css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../node_modules/css-loader/dist/runtime/cssWithMappingToString.js"),_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__),_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("../node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,"._9c3HEc4Oa9BzFBj9U9V2Dg\\=\\={border:none;background-color:#00889e;padding:1rem;color:#fff;border-radius:0 .5rem .5rem 0;position:fixed;z-index:var(--scroll-to-top-index)}@media only screen and (max-width:767px){._9c3HEc4Oa9BzFBj9U9V2Dg\\=\\={bottom:-70rem;width:100%}.qgItsvbr63UIbTgWJgwNcg\\=\\={border-radius:0;bottom:0}}.qgItsvbr63UIbTgWJgwNcg\\=\\={transition:0s}@media only screen and (min-width:768px){._9c3HEc4Oa9BzFBj9U9V2Dg\\=\\={width:15rem;left:-70rem;top:50vh}.qgItsvbr63UIbTgWJgwNcg\\=\\={left:0}}","",{version:3,sources:["webpack://./../node_modules/gatsby-core-theme/src/components/molecules/newsletter/toggle-button/newsletter-button.module.scss","webpack://./../node_modules/gatsby-core-theme/src/styles/utils/_media-queries.scss"],names:[],mappings:"AAcA,6BACE,WAAA,CACA,wBAAA,CACA,YAAA,CACA,UAAA,CACA,6BAAA,CACA,cAAA,CACA,kCAAA,CCsCA,yCDnCA,6BACE,aAAA,CACA,UAAA,CAEF,4BACE,eAAA,CACA,QAAA,CAAA,CAGJ,4BACE,aAAA,CCkBA,yCDdA,6BACE,WAAA,CACA,WAAA,CACA,QAAA,CAEF,4BACE,MAAA,CAAA",sourcesContent:["// Global styles extended in each theme\n\n// Utils\n@import '../../../../styles/utils/variables/typography';\n@import '../../../../styles/utils/variables/layout';\n@import '../../../../styles/utils/variables/stack-order';\n@import '../../../../styles/utils/media-queries';\n@import '../../../../styles/utils/icons';\n@import '../../../../styles/utils/tooltip';\n@import '../../../../styles/utils/loader';\n@import '../../../../styles/utils/mixins';\n@import '../../../../styles/utils/scrollbar';\n@import '../../../../styles/utils/animations';\n\n.button {\n border: none;\n background-color: #00889e;\n padding: 1rem;\n color: white;\n border-radius: 0 0.5rem 0.5rem 0;\n position: fixed;\n z-index: var(--scroll-to-top-index);\n}\n@include max(mobile) {\n .button {\n bottom: -70rem;\n width: 100%;\n }\n .active {\n border-radius: 0;\n bottom: 0;\n }\n}\n.active {\n transition: 0s;\n}\n\n@include min(tablet) {\n .button {\n width: 15rem;\n left: -70rem;\n top: 50vh;\n }\n .active {\n left: 0;\n }\n}\n","$media-query-sizes: (\n mobile-s: (\n min: 320px,\n max: 374px,\n ),\n mobile-m: (\n min: 375px,\n max: 424px,\n ),\n mobile: (\n min: 425px,\n max: 767px,\n ),\n tablet: (\n min: 768px,\n max: 991px,\n ),\n laptop: (\n min: 992px,\n max: 1199px,\n ),\n desktop: (\n min: 1200px,\n ),\n);\n\n// Get media query sizes\n$screen: 'only screen';\n@function media-query($media, $optional-media: '', $min: true) {\n $media-label: '';\n\n @if ($optional-media != '') {\n $media-sizes-min: map-get($media-query-sizes, $media);\n $media-sizes-max: map-get($media-query-sizes, $optional-media);\n $media-label: $screen +\n \" and (min-width:#{map-get($media-sizes-min, 'min')}) and (max-width:#{map-get($media-sizes-max, 'max')})\";\n } @else {\n $query: 'max';\n\n @if ($min) {\n $query: 'min';\n }\n\n $media-sizes: map-get($media-query-sizes, $media);\n $media-label: $screen + ' and (#{$query}-width:#{map-get($media-sizes, $query)})';\n }\n\n @return $media-label;\n}\n\n// Min media query\n@mixin min($media) {\n @media #{media-query($media)} {\n @content;\n }\n}\n\n// Max media query\n@mixin max($media) {\n @media #{media-query($media, '', false)} {\n @content;\n }\n}\n\n// Min & max media query\n@mixin min-max($min, $max) {\n @media #{media-query($min, $max)} {\n @content;\n }\n}\n\n// Use this ONLY if you need a media query that doesn't fit the $media-query-sizes breakpoints above\n// Pass number, for example @include custom-min(992)\n@mixin custom-min($min) {\n @media #{$screen} and (min-width: #{$min}px) {\n @content;\n }\n}\n\n@mixin custom-max($max) {\n @media #{$screen} and (max-width: #{$max}px) {\n @content;\n }\n}\n\n@mixin custom-min-max($min, $max) {\n @media #{$screen} and (min-width: #{$min}px) and (max-width: #{$max}px) {\n @content;\n }\n}\n\n// Landscape\n// (If we find more use cases of this in the future, might want to refactor this and include it in the media-query function for $screen)\n// Pass number\n$landscape: 'screen and (orientation:landscape)';\n\n@mixin landscape-max($max) {\n @media #{$landscape} and (max-width: #{$max}px) {\n @content;\n }\n}\n\n@mixin landscape-min($min) {\n @media #{$landscape} and (min-width: #{$min}px) {\n @content;\n }\n}\n"],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={button:"_9c3HEc4Oa9BzFBj9U9V2Dg==",active:"qgItsvbr63UIbTgWJgwNcg=="},__webpack_exports__.Z=___CSS_LOADER_EXPORT___}}]);