gatsby-matrix-theme 53.26.7 → 53.27.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/CHANGELOG.md +35 -0
- package/gatsby-node.js +55 -0
- package/package.json +3 -2
- package/src/components/molecules/operator-details/index.js +3 -1
- package/src/components/molecules/widget/defaultMinHeight.js +8 -0
- package/src/components/molecules/widget/index.js +54 -8
- package/src/components/molecules/widget/widget.module.scss +0 -12
- package/src/components/molecules/widget/widget.test.js +91 -0
- package/storybook/public/477.a61c8cf0.iframe.bundle.js +1 -0
- package/storybook/public/{477.0df7d903.iframe.bundle.js → 858.b4936b2d.iframe.bundle.js} +1 -1
- package/storybook/public/iframe.html +1 -1
- package/storybook/public/main.7aa3553d.iframe.bundle.js +1 -0
- package/storybook/public/project.json +1 -1
- package/storybook/public/{runtime~main.d2ee136d.iframe.bundle.js → runtime~main.1bd78bca.iframe.bundle.js} +1 -1
- package/widget-heights/README.md +90 -0
- package/widget-heights/applyWidgetHeights.js +98 -0
- package/widget-heights/applyWidgetHeights.test.js +156 -0
- package/widget-heights/collectUrls.js +84 -0
- package/widget-heights/collectUrls.test.js +82 -0
- package/widget-heights/config.js +73 -0
- package/widget-heights/measureHeights.js +338 -0
- package/widget-heights/measureHeights.test.js +202 -0
- package/widget-heights/semaphore.js +62 -0
- package/widget-heights/semaphore.test.js +64 -0
- package/storybook/public/240.10336b4c.iframe.bundle.js +0 -1
- package/storybook/public/main.a46ca3db.iframe.bundle.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,38 @@
|
|
|
1
|
+
# [53.27.0](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/compare/v53.26.7...v53.27.0) (2026-08-07)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* update operator details ([01829ea](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/01829ea85a3697e80ef3085974e4d59d87514d0d))
|
|
7
|
+
* **widget-heights:** add urlRewrites; point demo at public host so Access-gated dev widgets measure on CI ([5333ae3](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/5333ae3fc661412e72ddc92d214aa93884971aeb))
|
|
8
|
+
* **widget-heights:** measure posted postMessage height via embedded iframe, not body.scrollHeight ([51d58de](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/51d58de27037b0dda24101b2b4c7b59dcc454b76))
|
|
9
|
+
* **widget-heights:** measure via top-level postMessage + tiny-viewport scrollHeight, drop embed ([037c5bd](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/037c5bd8a465e325038237180f4eb69343c258b4))
|
|
10
|
+
* **widget-heights:** return null for blank/blocked full-height pages instead of bogus 900; default 600 ([e05b818](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/e05b8184a308dd0666e6b2657d2dec61088c36ed))
|
|
11
|
+
* **widget-heights:** serve embed probe from site origin + scrollHeight fallback when widget doesn't post ([4cf2ada](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/4cf2ada4cc2afb0e19a416bbb7a6dbe3c50095fa))
|
|
12
|
+
* **widget-heights:** wait for the post + realistic viewport + max height, so measurement never under-reserves ([7b32b0a](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/7b32b0a097fe775f97defc4a53cbd0046ba715c0))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Code Refactoring
|
|
16
|
+
|
|
17
|
+
* **widget:** extract fallback min-height to a shadowable file; default 560 ([05a3c31](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/05a3c3145893a4c856b607d1737df3684d26c490))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
* Merge branch 'feat/widget-build-time-heights' into 'master' ([de448f0](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/de448f0201845d692cbfb0d68d5e49ca757a3c90))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
* **widget-heights:** build-time iframe height measurement module (wh-mp-01) ([36da081](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/36da0810a9719f95403b82ff4fa2bd2a030b33c6))
|
|
26
|
+
* **widget-heights:** enable in demo + CI Chromium via Playwright bundled browser (wh-mp-04) ([416b84a](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/416b84a73beeea85a662e00892a97157e93930e8))
|
|
27
|
+
* **widget-heights:** measure fresh (no cache) via shared browser + build-wide semaphore ([d55f5f2](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/d55f5f2f90a45a175af37c0850b1d1b8e9b0c8af))
|
|
28
|
+
* **widget-heights:** onCreatePage hook wires build-time measurement into the build (wh-mp-02) ([9c3bbf2](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/9c3bbf28f474dd4097af9d3e0f85d8a253deaa52))
|
|
29
|
+
* **widget:** reserve build-time widget height as min-height with strict-origin resizer (wh-mp-03) ([9060e0f](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/9060e0f0d04f6da79e32102d569d1ee15c5e6877))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### norelease
|
|
33
|
+
|
|
34
|
+
* **widget-heights:** log per-URL measured height and URL to diagnose build-vs-render mismatch ([f7dfc14](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/commit/f7dfc14aecdc9808acdfa99cfa821766876b02ca))
|
|
35
|
+
|
|
1
36
|
## [53.26.7](https://gitlab.com/g2m-gentoo/team-floyd/themes/matrix-theme/compare/v53.26.6...v53.26.7) (2026-07-27)
|
|
2
37
|
|
|
3
38
|
|
package/gatsby-node.js
CHANGED
|
@@ -9,12 +9,22 @@
|
|
|
9
9
|
* SSR routes (no static HTML; listed in options.criticalCss.skipRoutes) are handled by the SSR
|
|
10
10
|
* counterpart in ./gatsby-ssr.js, which injects the full module CSS render-blocking at request time.
|
|
11
11
|
*
|
|
12
|
+
* Widget-heights (default OFF; enable per-site via options.widgetHeights.enabled):
|
|
13
|
+
* onCreatePage — measure each sports-widget iframe's height at build time and attach it to the
|
|
14
|
+
* page's widget modules, so the widget component can reserve space and stop shifting layout (CLS).
|
|
15
|
+
* Preview/SSR routes source modules at request time (getServerData) and can't be measured at build;
|
|
16
|
+
* there the component falls back to its default min-height (see ./widget-heights + widget component).
|
|
17
|
+
*
|
|
12
18
|
* All hooks are guarded so a failure degrades gracefully and never breaks a consumer build.
|
|
13
19
|
*/
|
|
14
20
|
|
|
15
21
|
const path = require('path');
|
|
16
22
|
const { resolveConfig } = require('./critical-css/config');
|
|
17
23
|
const { injectCriticalCss } = require('./critical-css/injectCriticalCss');
|
|
24
|
+
const { resolveConfig: resolveWidgetHeightsConfig } = require('./widget-heights/config');
|
|
25
|
+
const { measureHeights, closeSharedBrowser } = require('./widget-heights/measureHeights');
|
|
26
|
+
const { applyWidgetHeights } = require('./widget-heights/applyWidgetHeights');
|
|
27
|
+
const { createSemaphore } = require('./widget-heights/semaphore');
|
|
18
28
|
|
|
19
29
|
exports.onCreateWebpackConfig = ({ stage, getConfig, actions, reporter }, pluginOptions) => {
|
|
20
30
|
// The split only matters for the production JS/CSS build.
|
|
@@ -47,6 +57,11 @@ exports.onCreateWebpackConfig = ({ stage, getConfig, actions, reporter }, plugin
|
|
|
47
57
|
};
|
|
48
58
|
|
|
49
59
|
exports.onPostBuild = async ({ reporter, store }, pluginOptions) => {
|
|
60
|
+
// Release the shared measurement browser now that every page (and thus every onCreatePage measure)
|
|
61
|
+
// is done. No-op if widget-heights was disabled or never launched one; kept before the critical-css
|
|
62
|
+
// gate below so it always runs, even when critical-css is off but widget-heights was on.
|
|
63
|
+
await closeSharedBrowser();
|
|
64
|
+
|
|
50
65
|
const cfg = resolveConfig(pluginOptions);
|
|
51
66
|
if (!cfg.enabled) return;
|
|
52
67
|
try {
|
|
@@ -58,3 +73,43 @@ exports.onPostBuild = async ({ reporter, store }, pluginOptions) => {
|
|
|
58
73
|
reporter.warn(`[critical-css] onPostBuild skipped: ${e && e.message}`);
|
|
59
74
|
}
|
|
60
75
|
};
|
|
76
|
+
|
|
77
|
+
// --- widget-heights -----------------------------------------------------------------------------
|
|
78
|
+
|
|
79
|
+
// Both live for the process lifetime — correct for one-shot `gatsby build`. In `gatsby develop`,
|
|
80
|
+
// a page recreated at the same path won't be re-measured until restart (feature is build-oriented).
|
|
81
|
+
// seen: process each path at most once — makes the deletePage/createPage recreate a no-op
|
|
82
|
+
// (onCreatePage re-fires on it) instead of an infinite loop.
|
|
83
|
+
// inFlight: measure each URL at most once — collapses the many concurrent onCreatePage calls that
|
|
84
|
+
// share a marketSections widget URL into a single browser launch.
|
|
85
|
+
const widgetHeightsSeen = new Set();
|
|
86
|
+
const widgetHeightsInFlight = new Map();
|
|
87
|
+
// limit: build-wide Chromium cap. onCreatePage fires per page fire-and-forget, and a CMS site has
|
|
88
|
+
// one distinct widget URL per event/tournament page (hundreds). inFlight only dedupes
|
|
89
|
+
// IDENTICAL urls, so without a global gate every distinct url launches its own browser at
|
|
90
|
+
// once. Created lazily (once) at the configured concurrency and shared across all pages.
|
|
91
|
+
let widgetHeightsLimit = null;
|
|
92
|
+
|
|
93
|
+
exports.onCreatePage = async ({ page, reporter }, pluginOptions) => {
|
|
94
|
+
const cfg = resolveWidgetHeightsConfig(pluginOptions);
|
|
95
|
+
if (!cfg.enabled) return;
|
|
96
|
+
// Build-time only — like the critical-css hooks. Gatsby AWAITS onCreatePage before a page is
|
|
97
|
+
// available, so measuring (a live, multi-second network+browser op) in `develop` blocks every
|
|
98
|
+
// widget page from loading, especially with hundreds queued behind the semaphore. The feature only
|
|
99
|
+
// optimizes the production static HTML; in develop/serve the widget just uses its default height.
|
|
100
|
+
if (process.env.gatsby_executing_command !== 'build') return;
|
|
101
|
+
if (!widgetHeightsLimit) widgetHeightsLimit = createSemaphore(cfg.concurrency);
|
|
102
|
+
try {
|
|
103
|
+
await applyWidgetHeights({
|
|
104
|
+
page,
|
|
105
|
+
reporter,
|
|
106
|
+
config: cfg,
|
|
107
|
+
measure: measureHeights,
|
|
108
|
+
seen: widgetHeightsSeen,
|
|
109
|
+
inFlight: widgetHeightsInFlight,
|
|
110
|
+
limit: widgetHeightsLimit,
|
|
111
|
+
});
|
|
112
|
+
} catch (e) {
|
|
113
|
+
reporter.warn(`[widget-heights] onCreatePage skipped for ${page && page.path}: ${e && e.message}`);
|
|
114
|
+
}
|
|
115
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gatsby-matrix-theme",
|
|
3
|
-
"version": "53.
|
|
3
|
+
"version": "53.27.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"description": "Matrix Theme NPM Package",
|
|
6
6
|
"author": "",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"url": "https://storybook-matrix.gigmedia.com/"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@react-icons/all-files": "^4.1.0",
|
|
27
26
|
"@gigmedia/enigma-utils": "^1.20.0",
|
|
27
|
+
"@react-icons/all-files": "^4.1.0",
|
|
28
28
|
"gatsby": "^5.11.0",
|
|
29
29
|
"gatsby-core-theme": "44.35.1",
|
|
30
30
|
"gatsby-plugin-sharp": "^5.11.0",
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
"identity-obj-proxy": "^3.0.0",
|
|
63
63
|
"jest": "^29.6.1",
|
|
64
64
|
"jest-environment-jsdom": "^29.5.0",
|
|
65
|
+
"playwright": "1.61.1",
|
|
65
66
|
"sass-resources-loader": "^2.2.5"
|
|
66
67
|
},
|
|
67
68
|
"browserslist": "> 0.25%, not dead"
|
|
@@ -52,6 +52,7 @@ const OperatorDetails = ({
|
|
|
52
52
|
itemPosition,
|
|
53
53
|
showVerificationBadge = false,
|
|
54
54
|
verificationBadgeByName = false,
|
|
55
|
+
reviewPathProp = null,
|
|
55
56
|
}) => {
|
|
56
57
|
const itemName = item?.name || item?.relation?.name;
|
|
57
58
|
const status = item?.status || item?.relation?.status;
|
|
@@ -59,7 +60,7 @@ const OperatorDetails = ({
|
|
|
59
60
|
const trackerType = tracker.toLowerCase().replace(' ', '_');
|
|
60
61
|
|
|
61
62
|
const image = item?.logo;
|
|
62
|
-
const reviewPath =
|
|
63
|
+
const reviewPath = reviewPathProp || item?.review_link || item?.path || null;
|
|
63
64
|
const rating = item?.rating || item?.relation?.rating;
|
|
64
65
|
|
|
65
66
|
// eslint-disable-next-line react/prop-types
|
|
@@ -251,6 +252,7 @@ OperatorDetails.propTypes = {
|
|
|
251
252
|
itemPosition: PropTypes.number,
|
|
252
253
|
showVerificationBadge: PropTypes.bool,
|
|
253
254
|
verificationBadgeByName: PropTypes.bool,
|
|
255
|
+
reviewPathProp: PropTypes.string,
|
|
254
256
|
};
|
|
255
257
|
|
|
256
258
|
export default OperatorDetails;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fallback `min-height` (px) reserved when no build-time measurement exists (preview/SSR, or
|
|
3
|
+
* measurement was impossible). Tier-3 last resort — measured heights always win in the component.
|
|
4
|
+
* On this path under-reserving reintroduces CLS, over-reserving only adds whitespace.
|
|
5
|
+
* Override per-site via Gatsby shadowing (no need to shadow the whole component):
|
|
6
|
+
* src/gatsby-matrix-theme/components/molecules/widget/defaultMinHeight.js → export default 600;
|
|
7
|
+
*/
|
|
8
|
+
export default 560;
|
|
@@ -1,15 +1,60 @@
|
|
|
1
|
-
import React, { useRef } from 'react';
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
2
|
import styles from './widget.module.scss';
|
|
3
|
+
// Fallback floor when no build-time heights exist. Extracted to its own file so a consumer site can
|
|
4
|
+
// override it via Gatsby shadowing without shadowing this whole component — see that file's header.
|
|
5
|
+
import DEFAULT_MIN_HEIGHT from './defaultMinHeight';
|
|
6
|
+
|
|
7
|
+
// The sports widget ships with no reserved height, so it paints at the ~154px HTML default and jumps
|
|
8
|
+
// to its real height when it posts a `message` — a large layout shift (CLS), worst on mobile where
|
|
9
|
+
// lazy-loading lands the resize right as the iframe enters the viewport. `module.heights` is the
|
|
10
|
+
// build-time measured ladder ({ [width]: px }, attached by the widget-heights gatsby-node hook); we
|
|
11
|
+
// reserve its tallest rung as a `min-height` floor so nothing shifts. `min-height` (not `height`)
|
|
12
|
+
// lets the postMessage resizer still grow the iframe for taller content and absorbs its settle.
|
|
13
|
+
const reserveHeight = (heights) => {
|
|
14
|
+
const values = heights && typeof heights === 'object' ? Object.values(heights) : [];
|
|
15
|
+
const valid = values.map(Number).filter((n) => Number.isFinite(n) && n > 0);
|
|
16
|
+
return valid.length ? Math.max(...valid) : DEFAULT_MIN_HEIGHT;
|
|
17
|
+
};
|
|
3
18
|
|
|
4
19
|
const index = ({ module }) => {
|
|
5
20
|
const iframeRef = useRef(null);
|
|
6
21
|
const url =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
22
|
+
process.env.GATSBY_ENV === 'development'
|
|
23
|
+
? module.url.replace(
|
|
24
|
+
'https://sportswidget.irishluck.ie',
|
|
25
|
+
'https://dev.sportswidget.gigmedia.com'
|
|
26
|
+
)
|
|
27
|
+
: module.url;
|
|
28
|
+
|
|
29
|
+
// Resizer: the widget posts its real height; floor absorbs anything below the reservation.
|
|
30
|
+
// Strict origin + source checks (exact origin match, and the message must come from THIS iframe)
|
|
31
|
+
// so a page with two widgets can't be resized by the wrong one or by a hostile frame.
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
let widgetOrigin;
|
|
34
|
+
try {
|
|
35
|
+
widgetOrigin = new URL(url).origin;
|
|
36
|
+
} catch {
|
|
37
|
+
// Malformed module.url (bad CMS/preview data): skip the resizer. The reserved min-height still
|
|
38
|
+
// holds, so the widget just won't grow past it — never a crash.
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const handleMessage = (event) => {
|
|
43
|
+
if (event.origin !== widgetOrigin) return;
|
|
44
|
+
if (event.source !== iframeRef.current?.contentWindow) return;
|
|
45
|
+
|
|
46
|
+
const { data } = event;
|
|
47
|
+
const height = data?.height ?? data?.frameHeight ?? data;
|
|
48
|
+
|
|
49
|
+
if (iframeRef.current && height && !Number.isNaN(Number(height))) {
|
|
50
|
+
iframeRef.current.style.height = `${Number(height)}px`;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
window.addEventListener('message', handleMessage);
|
|
55
|
+
return () => window.removeEventListener('message', handleMessage);
|
|
56
|
+
}, [url]);
|
|
57
|
+
|
|
13
58
|
return (
|
|
14
59
|
<iframe
|
|
15
60
|
ref={iframeRef}
|
|
@@ -17,10 +62,11 @@ const index = ({ module }) => {
|
|
|
17
62
|
scrolling="no"
|
|
18
63
|
style={{
|
|
19
64
|
width: '100%',
|
|
65
|
+
minHeight: `${reserveHeight(module.heights)}px`,
|
|
20
66
|
display: 'block',
|
|
21
67
|
overflow: 'hidden',
|
|
22
68
|
}}
|
|
23
|
-
className={
|
|
69
|
+
className={styles.iframe}
|
|
24
70
|
src={`${url}&linkFormat=${process.env.TRACKER_LINK_FORMAT_MAIN_WIDGET}`}
|
|
25
71
|
loading="lazy"
|
|
26
72
|
/>
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/* eslint-disable react/prop-types */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { render, fireEvent } from '@testing-library/react';
|
|
4
|
+
import '@testing-library/jest-dom/extend-expect';
|
|
5
|
+
import Widget from '.';
|
|
6
|
+
import DEFAULT_MIN_HEIGHT from './defaultMinHeight';
|
|
7
|
+
|
|
8
|
+
const URL = 'https://sportswidget.gigmedia.com/tournament/matches?token=abc';
|
|
9
|
+
|
|
10
|
+
const renderWidget = (module) => {
|
|
11
|
+
const { container } = render(<Widget module={{ url: URL, ...module }} />);
|
|
12
|
+
return container.querySelector('iframe');
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
describe('Widget component', () => {
|
|
16
|
+
test('reserves the tallest measured rung as min-height (no CLS)', () => {
|
|
17
|
+
const iframe = renderWidget({ heights: { 320: 499, 360: 486, 768: 380, 960: 348 } });
|
|
18
|
+
// tallest rung wins so the widest reservation covers every viewport
|
|
19
|
+
expect(iframe).toHaveStyle('min-height: 499px');
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test('falls back to the default floor when heights are absent', () => {
|
|
23
|
+
const iframe = renderWidget({});
|
|
24
|
+
expect(iframe).toHaveStyle(`min-height: ${DEFAULT_MIN_HEIGHT}px`);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test('falls back to the default floor when heights are empty/garbage', () => {
|
|
28
|
+
const iframe = renderWidget({ heights: { 320: 0, 360: NaN } });
|
|
29
|
+
expect(iframe).toHaveStyle(`min-height: ${DEFAULT_MIN_HEIGHT}px`);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test('resizer grows the iframe when the widget posts a taller height', () => {
|
|
33
|
+
const iframe = renderWidget({ heights: { 320: 499 } });
|
|
34
|
+
fireEvent(
|
|
35
|
+
window,
|
|
36
|
+
new MessageEvent('message', {
|
|
37
|
+
data: { height: 620 },
|
|
38
|
+
source: iframe.contentWindow,
|
|
39
|
+
origin: 'https://sportswidget.gigmedia.com',
|
|
40
|
+
})
|
|
41
|
+
);
|
|
42
|
+
expect(iframe.style.height).toBe('620px');
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test('resizer ignores messages from a foreign origin', () => {
|
|
46
|
+
const iframe = renderWidget({ heights: { 320: 499 } });
|
|
47
|
+
fireEvent(
|
|
48
|
+
window,
|
|
49
|
+
new MessageEvent('message', {
|
|
50
|
+
data: { height: 620 },
|
|
51
|
+
source: iframe.contentWindow,
|
|
52
|
+
origin: 'https://sportswidget.attacker.com',
|
|
53
|
+
})
|
|
54
|
+
);
|
|
55
|
+
expect(iframe.style.height).toBe('');
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
test('resizer ignores a right-origin message from the wrong source (other widget / hostile frame)', () => {
|
|
59
|
+
const iframe = renderWidget({ heights: { 320: 499 } });
|
|
60
|
+
fireEvent(
|
|
61
|
+
window,
|
|
62
|
+
new MessageEvent('message', {
|
|
63
|
+
data: { height: 620 },
|
|
64
|
+
source: window, // not iframe.contentWindow
|
|
65
|
+
origin: 'https://sportswidget.gigmedia.com',
|
|
66
|
+
})
|
|
67
|
+
);
|
|
68
|
+
expect(iframe.style.height).toBe('');
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test.each([
|
|
72
|
+
['data.frameHeight', { frameHeight: 640 }, '640px'],
|
|
73
|
+
['bare numeric data', 660, '660px'],
|
|
74
|
+
])('resizer accepts height from %s', (_label, data, expected) => {
|
|
75
|
+
const iframe = renderWidget({ heights: { 320: 499 } });
|
|
76
|
+
fireEvent(
|
|
77
|
+
window,
|
|
78
|
+
new MessageEvent('message', {
|
|
79
|
+
data,
|
|
80
|
+
source: iframe.contentWindow,
|
|
81
|
+
origin: 'https://sportswidget.gigmedia.com',
|
|
82
|
+
})
|
|
83
|
+
);
|
|
84
|
+
expect(iframe.style.height).toBe(expected);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
test('does not crash and still reserves height when module.url is malformed', () => {
|
|
88
|
+
const iframe = renderWidget({ url: 'not a url', heights: { 320: 499 } });
|
|
89
|
+
expect(iframe).toHaveStyle('min-height: 499px');
|
|
90
|
+
});
|
|
91
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkgatsby_matrix_theme=self.webpackChunkgatsby_matrix_theme||[]).push([[477],{"./src/components/molecules/widget/index.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>widget});var react=__webpack_require__("../node_modules/react/index.js"),injectStylesIntoStyleTag=__webpack_require__("../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),injectStylesIntoStyleTag_default=__webpack_require__.n(injectStylesIntoStyleTag),widget_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]!./src/components/molecules/widget/widget.module.scss"),options={insert:"head",singleton:!1};injectStylesIntoStyleTag_default()(widget_module.A,options);const widget_widget_module=widget_module.A.locals||{};var process=__webpack_require__("../node_modules/process/browser.js");function _toConsumableArray(r){return function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}(r)||function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}var index=function(_ref){var heights,valid,module=_ref.module,iframeRef=(0,react.useRef)(null),url="development"===process.env.GATSBY_ENV?module.url.replace("https://sportswidget.irishluck.ie","https://dev.sportswidget.gigmedia.com"):module.url;return(0,react.useEffect)((function(){var widgetOrigin;try{widgetOrigin=new URL(url).origin}catch{return}var handleMessage=function(event){var _iframeRef$current,_ref2,_data$height;if(event.origin===widgetOrigin&&event.source===(null===(_iframeRef$current=iframeRef.current)||void 0===_iframeRef$current?void 0:_iframeRef$current.contentWindow)){var data=event.data,height=null!==(_ref2=null!==(_data$height=null==data?void 0:data.height)&&void 0!==_data$height?_data$height:null==data?void 0:data.frameHeight)&&void 0!==_ref2?_ref2:data;iframeRef.current&&height&&!Number.isNaN(Number(height))&&(iframeRef.current.style.height=`${Number(height)}px`)}};return window.addEventListener("message",handleMessage),function(){return window.removeEventListener("message",handleMessage)}}),[url]),react.createElement("iframe",{ref:iframeRef,title:"widget",scrolling:"no",style:{width:"100%",minHeight:`${heights=module.heights,valid=(heights&&"object"==typeof heights?Object.values(heights):[]).map(Number).filter((function(n){return Number.isFinite(n)&&n>0})),valid.length?Math.max.apply(Math,_toConsumableArray(valid)):560}px`,display:"block",overflow:"hidden"},className:widget_widget_module.iframe,src:`${url}&linkFormat=${process.env.TRACKER_LINK_FORMAT_MAIN_WIDGET}`,loading:"lazy"})};index.displayName="index",index.__docgenInfo={description:"",methods:[],displayName:"index"};const widget=index;"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/components/molecules/widget/index.js"]={name:"index",docgenInfo:index.__docgenInfo,path:"src/components/molecules/widget/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]!./src/components/molecules/widget/widget.module.scss":(module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../node_modules/css-loader/dist/runtime/cssWithMappingToString.js"),_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_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(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".GXxvytSG33Ebdfm3FUw0Rg\\=\\={border:0;width:100%}","",{version:3,sources:["webpack://./src/components/molecules/widget/widget.module.scss"],names:[],mappings:"AAcA,4BACI,QAAA,CACA,UAAA",sourcesContent:['/* stylelint-disable no-invalid-position-at-import-rule */\n@use \'sass:map\';\n\n// NOTE: General Styles\n@import "../../../../../node_modules/gatsby-core-theme/src/styles/utils/variables/stack-order";\n@import "../../../../../node_modules/gatsby-core-theme/src/styles/utils/variables/typography";\n@import "../../../../../node_modules/gatsby-core-theme/src/styles/utils/variables/layout";\n@import "../../../../../node_modules/gatsby-core-theme/src/styles/utils/media-queries";\n@import "../../../../../node_modules/gatsby-core-theme/src/styles/utils/icons";\n@import "../../../../../node_modules/gatsby-core-theme/src/styles/utils/tooltip";\n@import "../../../../../node_modules/gatsby-core-theme/src/styles/utils/loader";\n@import "../../../../../node_modules/gatsby-core-theme/src/styles/utils/mixins";\n@import "../../../../../node_modules/gatsby-core-theme/src/styles/utils/scrollbar";\n@import "../../../../../node_modules/gatsby-core-theme/src/styles/utils/animations";\n.iframe {\n border: 0;\n width: 100%;\n}\n'],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={iframe:"GXxvytSG33Ebdfm3FUw0Rg=="};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkgatsby_matrix_theme=self.webpackChunkgatsby_matrix_theme||[]).push([[
|
|
1
|
+
"use strict";(self.webpackChunkgatsby_matrix_theme=self.webpackChunkgatsby_matrix_theme||[]).push([[858],{"./src/components/molecules/operator-summary/index.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>index});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../node_modules/react/index.js"),_template_one__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/components/molecules/operator-summary/template-one/index.js"),_template_two__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/components/molecules/operator-summary/template-two/index.js"),_template_three__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/components/molecules/operator-summary/template-three/index.js"),_excluded=["template"];function index(_ref){var _ref$template=_ref.template,template=void 0===_ref$template?"template_one":_ref$template,props=function _objectWithoutProperties(e,t){if(null==e)return{};var o,r,i=function _objectWithoutPropertiesLoose(r,e){if(null==r)return{};var t={};for(var n in r)if({}.hasOwnProperty.call(r,n)){if(e.indexOf(n)>=0)continue;t[n]=r[n]}return t}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)o=n[r],t.indexOf(o)>=0||{}.propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}(_ref,_excluded);switch(template){case"template_two":return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_template_two__WEBPACK_IMPORTED_MODULE_2__.A,props);case"template_three":return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_template_three__WEBPACK_IMPORTED_MODULE_3__.A,props);default:return react__WEBPACK_IMPORTED_MODULE_0__.createElement(_template_one__WEBPACK_IMPORTED_MODULE_1__.A,props)}}index.__docgenInfo={description:"",methods:[],displayName:"index",props:{template:{defaultValue:{value:"'template_one'",computed:!1},required:!1}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/components/molecules/operator-summary/index.js"]={name:"index",docgenInfo:index.__docgenInfo,path:"src/components/molecules/operator-summary/index.js"})}}]);
|
|
@@ -361,4 +361,4 @@
|
|
|
361
361
|
|
|
362
362
|
|
|
363
363
|
|
|
364
|
-
window['STORIES'] = [{"titlePrefix":"","directory":"./src","files":"**/**/**/*.stories.js","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.stories\\.js)$"},{"titlePrefix":"","directory":"./src","files":"**/**/**/**/*.stories.js","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.stories\\.js)$"},{"titlePrefix":"","directory":"./src","files":"**/**/**/**/**/*.stories.js","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/header/variants/default/template-one","files":"template-one.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/header\\/variants\\/default\\/template-one\\/template-one\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/header/variants/operator/template-one-two","files":"template-one-two.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/header\\/variants\\/operator\\/template-one-two\\/template-one-two\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/footer/variants","files":"template-one.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/footer\\/variants\\/template-one\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/footer/variants","files":"template-two.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/footer\\/variants\\/template-two\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/footer/variants","files":"template-three.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/footer\\/variants\\/template-three\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/organisms/navigation","files":"navigation.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/organisms\\/navigation\\/navigation\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/organisms/anchor/template-one","files":"anchor.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/organisms\\/anchor\\/template-one\\/anchor\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/organisms/anchor/template-two","files":"template-two.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/organisms\\/anchor\\/template-two\\/template-two\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/bonus/template-one","files":"bonus.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/bonus\\/template-one\\/bonus\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/bonus/template-two","files":"bonus.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/bonus\\/template-two\\/bonus\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content","files":"text.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/text\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content","files":"show-more.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/show-more\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content","files":"content.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/content\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content/lists","files":"lists.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/lists\\/lists\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content/frame","files":"frame.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/frame\\/frame\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content/table","files":"table-one.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/table\\/table-one\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content/table","files":"table-two.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/table\\/table-two\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/pagination","files":"pagination.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/pagination\\/pagination\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/organisms/carousel/template-one","files":"template-one.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/organisms\\/carousel\\/template-one\\/template-one\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/organisms/carousel/template-two","files":"template-two.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/organisms\\/carousel\\/template-two\\/template-two\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/icon/template-one","files":"template-one.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/icon\\/template-one\\/template-one\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image/template-one","files":"template-one.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image\\/template-one\\/template-one\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image/template-two","files":"template-two.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image\\/template-two\\/template-two\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image-text/template-one","files":"template-one.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image-text\\/template-one\\/template-one\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image-text/template-two","files":"template-two.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image-text\\/template-two\\/template-two\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image-text/template-three","files":"template-three.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image-text\\/template-three\\/template-three\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image-text/template-five","files":"template-five.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image-text\\/template-five\\/template-five\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image-text/template-six","files":"template-six.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image-text\\/template-six\\/template-six\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/sport-odds/template-one","files":"template-one.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/sport-odds\\/template-one\\/template-one\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/sport-odds/template-two","files":"template-two.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/sport-odds\\/template-two\\/template-two\\.stories)$"}];</script><script src="runtime~main.
|
|
364
|
+
window['STORIES'] = [{"titlePrefix":"","directory":"./src","files":"**/**/**/*.stories.js","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.stories\\.js)$"},{"titlePrefix":"","directory":"./src","files":"**/**/**/**/*.stories.js","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.stories\\.js)$"},{"titlePrefix":"","directory":"./src","files":"**/**/**/**/**/*.stories.js","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/header/variants/default/template-one","files":"template-one.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/header\\/variants\\/default\\/template-one\\/template-one\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/header/variants/operator/template-one-two","files":"template-one-two.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/header\\/variants\\/operator\\/template-one-two\\/template-one-two\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/footer/variants","files":"template-one.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/footer\\/variants\\/template-one\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/footer/variants","files":"template-two.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/footer\\/variants\\/template-two\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/footer/variants","files":"template-three.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/footer\\/variants\\/template-three\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/organisms/navigation","files":"navigation.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/organisms\\/navigation\\/navigation\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/organisms/anchor/template-one","files":"anchor.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/organisms\\/anchor\\/template-one\\/anchor\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/organisms/anchor/template-two","files":"template-two.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/organisms\\/anchor\\/template-two\\/template-two\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/bonus/template-one","files":"bonus.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/bonus\\/template-one\\/bonus\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/bonus/template-two","files":"bonus.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/bonus\\/template-two\\/bonus\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content","files":"text.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/text\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content","files":"show-more.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/show-more\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content","files":"content.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/content\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content/lists","files":"lists.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/lists\\/lists\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content/frame","files":"frame.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/frame\\/frame\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content/table","files":"table-one.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/table\\/table-one\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/content/table","files":"table-two.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/content\\/table\\/table-two\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/pagination","files":"pagination.stories.js","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/pagination\\/pagination\\.stories\\.js)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/organisms/carousel/template-one","files":"template-one.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/organisms\\/carousel\\/template-one\\/template-one\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/organisms/carousel/template-two","files":"template-two.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/organisms\\/carousel\\/template-two\\/template-two\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/icon/template-one","files":"template-one.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/icon\\/template-one\\/template-one\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image/template-one","files":"template-one.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image\\/template-one\\/template-one\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image/template-two","files":"template-two.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image\\/template-two\\/template-two\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image-text/template-one","files":"template-one.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image-text\\/template-one\\/template-one\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image-text/template-two","files":"template-two.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image-text\\/template-two\\/template-two\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image-text/template-three","files":"template-three.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image-text\\/template-three\\/template-three\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image-text/template-five","files":"template-five.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image-text\\/template-five\\/template-five\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/image-text/template-six","files":"template-six.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/image-text\\/template-six\\/template-six\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/sport-odds/template-one","files":"template-one.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/sport-odds\\/template-one\\/template-one\\.stories)$"},{"titlePrefix":"","directory":"../node_modules/gatsby-core-theme/src/components/molecules/spotlights_v2/sport-odds/template-two","files":"template-two.stories","importPathMatcher":"^(?:\\.\\.\\/node_modules\\/gatsby-core-theme\\/src\\/components\\/molecules\\/spotlights_v2\\/sport-odds\\/template-two\\/template-two\\.stories)$"}];</script><script src="runtime~main.1bd78bca.iframe.bundle.js"></script><script src="251.b46ecee9.iframe.bundle.js"></script><script src="main.7aa3553d.iframe.bundle.js"></script></body></html>
|