react-fathom 0.1.0 → 0.1.1
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/README.md +215 -52
- package/dist/cjs/index.cjs +3 -4
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/next/index.cjs +186 -725
- package/dist/cjs/next/index.cjs.map +1 -1
- package/dist/es/index.js +3 -4
- package/dist/es/index.js.map +1 -1
- package/dist/es/next/index.js +186 -724
- package/dist/es/next/index.js.map +1 -1
- package/dist/react-fathom.js +3 -4
- package/dist/react-fathom.js.map +1 -1
- package/dist/react-fathom.min.js +2 -2
- package/dist/react-fathom.min.js.map +1 -1
- package/package.json +15 -1
- package/src/FathomProvider.tsx +0 -1
- package/src/next/NextFathomTrackViewApp.test.tsx +265 -0
- package/src/next/NextFathomTrackViewApp.tsx +78 -0
- package/src/next/NextFathomTrackViewPages.test.tsx +222 -0
- package/src/next/NextFathomTrackViewPages.tsx +83 -0
- package/src/next/compositions/withAppRouter.test.tsx +31 -10
- package/src/next/compositions/withAppRouter.tsx +10 -3
- package/src/next/compositions/withPagesRouter.test.tsx +31 -10
- package/src/next/compositions/withPagesRouter.tsx +10 -3
- package/src/next/index.ts +3 -3
- package/src/next/types.ts +0 -7
- package/src/types.ts +0 -1
- package/types/FathomProvider.d.ts.map +1 -1
- package/types/next/NextFathomProviderApp.d.ts.map +1 -1
- package/types/next/NextFathomProviderPages.d.ts.map +1 -1
- package/types/next/NextFathomTrackViewApp.d.ts +34 -0
- package/types/next/NextFathomTrackViewApp.d.ts.map +1 -0
- package/types/next/NextFathomTrackViewPages.d.ts +30 -0
- package/types/next/NextFathomTrackViewPages.d.ts.map +1 -0
- package/types/next/compositions/withAppRouter.d.ts +1 -0
- package/types/next/compositions/withAppRouter.d.ts.map +1 -1
- package/types/next/compositions/withPagesRouter.d.ts +1 -0
- package/types/next/compositions/withPagesRouter.d.ts.map +1 -1
- package/types/next/index.d.ts +2 -3
- package/types/next/index.d.ts.map +1 -1
- package/types/next/types.d.ts +0 -6
- package/types/next/types.d.ts.map +1 -1
- package/types/types.d.ts +0 -1
- package/types/types.d.ts.map +1 -1
- package/src/next/NextFathomProvider.test.tsx +0 -131
- package/src/next/NextFathomProvider.tsx +0 -62
- package/src/next/NextFathomProviderApp.test.tsx +0 -308
- package/src/next/NextFathomProviderApp.tsx +0 -106
- package/src/next/NextFathomProviderPages.test.tsx +0 -330
- package/src/next/NextFathomProviderPages.tsx +0 -112
package/dist/cjs/next/index.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/*! react-fathom - 0.1.
|
|
1
|
+
/*! react-fathom - 0.1.1 !*/
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var Fathom = require('fathom-client');
|
|
6
5
|
var router = require('next/router');
|
|
7
6
|
var navigation = require('next/navigation');
|
|
7
|
+
var Fathom = require('fathom-client');
|
|
8
8
|
|
|
9
9
|
function _interopNamespaceDefault(e) {
|
|
10
10
|
var n = Object.create(null);
|
|
@@ -25,22 +25,174 @@ function _interopNamespaceDefault(e) {
|
|
|
25
25
|
|
|
26
26
|
var Fathom__namespace = /*#__PURE__*/_interopNamespaceDefault(Fathom);
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
var FathomContext = /*#__PURE__*/React.createContext({});
|
|
29
|
+
|
|
30
|
+
var useFathom = function useFathom() {
|
|
31
|
+
var context = React.useContext(FathomContext);
|
|
32
|
+
return context;
|
|
33
|
+
};
|
|
34
|
+
useFathom.displayName = 'useFathom';
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Component that tracks pageviews for Next.js Pages Router.
|
|
38
|
+
* Must be used within a FathomProvider.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```tsx
|
|
42
|
+
* // pages/_app.tsx
|
|
43
|
+
* import { FathomProvider } from 'react-fathom'
|
|
44
|
+
* import { NextFathomTrackViewPages } from 'react-fathom/next'
|
|
45
|
+
*
|
|
46
|
+
* function MyApp({ Component, pageProps }) {
|
|
47
|
+
* return (
|
|
48
|
+
* <FathomProvider siteId="YOUR_SITE_ID">
|
|
49
|
+
* <NextFathomTrackViewPages />
|
|
50
|
+
* <Component {...pageProps} />
|
|
51
|
+
* </FathomProvider>
|
|
52
|
+
* )
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
var NextFathomTrackViewPages = function NextFathomTrackViewPages(_ref) {
|
|
57
|
+
var _ref$disableAutoTrack = _ref.disableAutoTrack,
|
|
58
|
+
disableAutoTrack = _ref$disableAutoTrack === void 0 ? false : _ref$disableAutoTrack;
|
|
59
|
+
var router$1 = router.useRouter();
|
|
60
|
+
var hasTrackedInitialPageview = React.useRef(false);
|
|
61
|
+
var _useFathom = useFathom(),
|
|
62
|
+
trackPageview = _useFathom.trackPageview,
|
|
63
|
+
client = _useFathom.client;
|
|
64
|
+
|
|
65
|
+
// Track pageviews on route changes
|
|
66
|
+
React.useEffect(function () {
|
|
67
|
+
if (!trackPageview || !client || disableAutoTrack) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
var handleRouteChangeComplete = function handleRouteChangeComplete(url) {
|
|
71
|
+
trackPageview({
|
|
72
|
+
url: window.location.origin + url
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
router$1.events.on('routeChangeComplete', handleRouteChangeComplete);
|
|
76
|
+
return function () {
|
|
77
|
+
router$1.events.off('routeChangeComplete', handleRouteChangeComplete);
|
|
78
|
+
};
|
|
79
|
+
}, [router$1.events, trackPageview, client, disableAutoTrack]);
|
|
80
|
+
|
|
81
|
+
// Track initial pageview (routeChangeComplete doesn't fire on initial load)
|
|
82
|
+
React.useEffect(function () {
|
|
83
|
+
if (!trackPageview || !client || disableAutoTrack || !router$1.isReady || hasTrackedInitialPageview.current) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
hasTrackedInitialPageview.current = true;
|
|
87
|
+
trackPageview({
|
|
88
|
+
url: window.location.href
|
|
89
|
+
});
|
|
90
|
+
}, [trackPageview, client, disableAutoTrack, router$1.isReady]);
|
|
91
|
+
|
|
92
|
+
// This component doesn't render anything
|
|
93
|
+
return null;
|
|
94
|
+
};
|
|
95
|
+
NextFathomTrackViewPages.displayName = 'NextFathomTrackViewPages';
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Component that tracks pageviews for Next.js App Router.
|
|
99
|
+
* Must be used within a FathomProvider.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```tsx
|
|
103
|
+
* // app/layout.tsx
|
|
104
|
+
* import { FathomProvider } from 'react-fathom'
|
|
105
|
+
* import { NextFathomTrackViewApp } from 'react-fathom/next'
|
|
106
|
+
*
|
|
107
|
+
* export default function RootLayout({ children }) {
|
|
108
|
+
* return (
|
|
109
|
+
* <html>
|
|
110
|
+
* <body>
|
|
111
|
+
* <FathomProvider siteId="YOUR_SITE_ID">
|
|
112
|
+
* <NextFathomTrackViewApp />
|
|
113
|
+
* {children}
|
|
114
|
+
* </FathomProvider>
|
|
115
|
+
* </body>
|
|
116
|
+
* </html>
|
|
117
|
+
* )
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
var NextFathomTrackViewApp = function NextFathomTrackViewApp(_ref) {
|
|
122
|
+
var _ref$disableAutoTrack = _ref.disableAutoTrack,
|
|
123
|
+
disableAutoTrack = _ref$disableAutoTrack === void 0 ? false : _ref$disableAutoTrack;
|
|
124
|
+
var pathname = navigation.usePathname();
|
|
125
|
+
var searchParams = navigation.useSearchParams();
|
|
126
|
+
var hasTrackedInitialPageview = React.useRef(false);
|
|
127
|
+
var _useFathom = useFathom(),
|
|
128
|
+
trackPageview = _useFathom.trackPageview,
|
|
129
|
+
client = _useFathom.client;
|
|
130
|
+
|
|
131
|
+
// Track pageviews on route changes
|
|
132
|
+
React.useEffect(function () {
|
|
133
|
+
if (!trackPageview || !client || disableAutoTrack) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
var searchString = searchParams === null || searchParams === void 0 ? void 0 : searchParams.toString();
|
|
137
|
+
var url = pathname + (searchString !== undefined && searchString !== '' ? "?".concat(searchString) : '');
|
|
138
|
+
|
|
139
|
+
// Track initial pageview only once
|
|
140
|
+
if (!hasTrackedInitialPageview.current) {
|
|
141
|
+
hasTrackedInitialPageview.current = true;
|
|
142
|
+
trackPageview({
|
|
143
|
+
url: window.location.origin + url
|
|
144
|
+
});
|
|
145
|
+
} else {
|
|
146
|
+
// Track subsequent route changes
|
|
147
|
+
trackPageview({
|
|
148
|
+
url: window.location.origin + url
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}, [pathname, searchParams, trackPageview, client, disableAutoTrack]);
|
|
152
|
+
|
|
153
|
+
// This component doesn't render anything
|
|
154
|
+
return null;
|
|
155
|
+
};
|
|
156
|
+
NextFathomTrackViewApp.displayName = 'NextFathomTrackViewApp';
|
|
157
|
+
|
|
158
|
+
function _objectWithoutPropertiesLoose(r, e) {
|
|
159
|
+
if (null == r) return {};
|
|
160
|
+
var t = {};
|
|
161
|
+
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
162
|
+
if (-1 !== e.indexOf(n)) continue;
|
|
163
|
+
t[n] = r[n];
|
|
164
|
+
}
|
|
165
|
+
return t;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function _objectWithoutProperties(e, t) {
|
|
169
|
+
if (null == e) return {};
|
|
170
|
+
var o,
|
|
171
|
+
r,
|
|
172
|
+
i = _objectWithoutPropertiesLoose(e, t);
|
|
173
|
+
if (Object.getOwnPropertySymbols) {
|
|
174
|
+
var n = Object.getOwnPropertySymbols(e);
|
|
175
|
+
for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
|
|
176
|
+
}
|
|
177
|
+
return i;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function _typeof(o) {
|
|
29
181
|
"@babel/helpers - typeof";
|
|
30
182
|
|
|
31
|
-
return _typeof
|
|
183
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
|
32
184
|
return typeof o;
|
|
33
185
|
} : function (o) {
|
|
34
186
|
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
35
|
-
}, _typeof
|
|
187
|
+
}, _typeof(o);
|
|
36
188
|
}
|
|
37
189
|
|
|
38
190
|
function toPrimitive(t, r) {
|
|
39
|
-
if ("object" != _typeof
|
|
191
|
+
if ("object" != _typeof(t) || !t) return t;
|
|
40
192
|
var e = t[Symbol.toPrimitive];
|
|
41
193
|
if (void 0 !== e) {
|
|
42
194
|
var i = e.call(t, r);
|
|
43
|
-
if ("object" != _typeof
|
|
195
|
+
if ("object" != _typeof(i)) return i;
|
|
44
196
|
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
45
197
|
}
|
|
46
198
|
return ("string" === r ? String : Number)(t);
|
|
@@ -48,7 +200,7 @@ function toPrimitive(t, r) {
|
|
|
48
200
|
|
|
49
201
|
function toPropertyKey(t) {
|
|
50
202
|
var i = toPrimitive(t, "string");
|
|
51
|
-
return "symbol" == _typeof
|
|
203
|
+
return "symbol" == _typeof(i) ? i : i + "";
|
|
52
204
|
}
|
|
53
205
|
|
|
54
206
|
function _defineProperty(e, r, t) {
|
|
@@ -60,16 +212,13 @@ function _defineProperty(e, r, t) {
|
|
|
60
212
|
}) : e[r] = t, e;
|
|
61
213
|
}
|
|
62
214
|
|
|
63
|
-
var
|
|
64
|
-
|
|
65
|
-
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
66
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
215
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
216
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
67
217
|
var FathomProvider = function FathomProvider(_ref) {
|
|
68
218
|
var children = _ref.children,
|
|
69
219
|
providedClient = _ref.client,
|
|
70
|
-
clientOptions = _ref.clientOptions
|
|
71
|
-
_ref.
|
|
72
|
-
var siteId = _ref.siteId,
|
|
220
|
+
clientOptions = _ref.clientOptions,
|
|
221
|
+
siteId = _ref.siteId,
|
|
73
222
|
providedDefaultPageviewOptions = _ref.defaultPageviewOptions,
|
|
74
223
|
providedDefaultEventOptions = _ref.defaultEventOptions;
|
|
75
224
|
// Read parent context if it exists
|
|
@@ -107,10 +256,10 @@ var FathomProvider = function FathomProvider(_ref) {
|
|
|
107
256
|
client.setSite(siteId);
|
|
108
257
|
}, [client]);
|
|
109
258
|
var trackEvent = React.useCallback(function (category, options) {
|
|
110
|
-
client.trackEvent(category, _objectSpread
|
|
259
|
+
client.trackEvent(category, _objectSpread(_objectSpread({}, defaultEventOptions), options));
|
|
111
260
|
}, [client, defaultEventOptions]);
|
|
112
261
|
var trackPageview = React.useCallback(function (options) {
|
|
113
|
-
client.trackPageview(_objectSpread
|
|
262
|
+
client.trackPageview(_objectSpread(_objectSpread({}, defaultPageviewOptions), options));
|
|
114
263
|
}, [client, defaultPageviewOptions]);
|
|
115
264
|
var trackGoal = React.useCallback(function (code, cents) {
|
|
116
265
|
client.trackGoal(code, cents);
|
|
@@ -138,711 +287,10 @@ var FathomProvider = function FathomProvider(_ref) {
|
|
|
138
287
|
};
|
|
139
288
|
FathomProvider.displayName = 'FathomProvider';
|
|
140
289
|
|
|
141
|
-
var
|
|
142
|
-
var context = React.useContext(FathomContext);
|
|
143
|
-
return context;
|
|
144
|
-
};
|
|
145
|
-
useFathom.displayName = 'useFathom';
|
|
146
|
-
|
|
147
|
-
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
148
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
149
|
-
var NextFathomProviderPages = function NextFathomProviderPages(_ref) {
|
|
150
|
-
var children = _ref.children,
|
|
151
|
-
providedClient = _ref.client,
|
|
152
|
-
clientOptions = _ref.clientOptions,
|
|
153
|
-
_ref$disableAutoTrack = _ref.disableAutoTrack,
|
|
154
|
-
disableAutoTrack = _ref$disableAutoTrack === void 0 ? false : _ref$disableAutoTrack,
|
|
155
|
-
siteId = _ref.siteId,
|
|
156
|
-
trackDefaultOptions = _ref.trackDefaultOptions,
|
|
157
|
-
providedDefaultPageviewOptions = _ref.defaultPageviewOptions;
|
|
158
|
-
var router$1 = router.useRouter();
|
|
159
|
-
var hasTrackedInitialPageview = React.useRef(false);
|
|
160
|
-
var parentContext = useFathom();
|
|
161
|
-
|
|
162
|
-
// Use provided client or fall back to parent client or default Fathom
|
|
163
|
-
var client = React.useMemo(function () {
|
|
164
|
-
var _ref2;
|
|
165
|
-
return (_ref2 = providedClient !== null && providedClient !== void 0 ? providedClient : parentContext.client) !== null && _ref2 !== void 0 ? _ref2 : Fathom__namespace;
|
|
166
|
-
}, [providedClient, parentContext.client]);
|
|
167
|
-
|
|
168
|
-
// Support both deprecated trackDefaultOptions and new defaultPageviewOptions
|
|
169
|
-
// Priority: providedDefaultPageviewOptions > trackDefaultOptions > parent defaultPageviewOptions
|
|
170
|
-
var defaultPageviewOptions = React.useMemo(function () {
|
|
171
|
-
var _ref3;
|
|
172
|
-
return (_ref3 = providedDefaultPageviewOptions !== null && providedDefaultPageviewOptions !== void 0 ? providedDefaultPageviewOptions : trackDefaultOptions) !== null && _ref3 !== void 0 ? _ref3 : parentContext.defaultPageviewOptions;
|
|
173
|
-
}, [providedDefaultPageviewOptions, trackDefaultOptions, parentContext.defaultPageviewOptions]);
|
|
174
|
-
var trackPageview = React.useCallback(function (options) {
|
|
175
|
-
if (siteId !== undefined && client !== undefined) {
|
|
176
|
-
client.trackPageview(_objectSpread$1(_objectSpread$1({}, defaultPageviewOptions), options));
|
|
177
|
-
}
|
|
178
|
-
}, [client, siteId, defaultPageviewOptions]);
|
|
179
|
-
|
|
180
|
-
// Initialize Fathom on mount
|
|
181
|
-
React.useEffect(function () {
|
|
182
|
-
if (siteId !== undefined && client !== undefined) {
|
|
183
|
-
client.load(siteId, clientOptions);
|
|
184
|
-
}
|
|
185
|
-
}, [client, clientOptions, siteId]);
|
|
186
|
-
|
|
187
|
-
// Track pageviews on route changes
|
|
188
|
-
React.useEffect(function () {
|
|
189
|
-
if (siteId === undefined || disableAutoTrack) {
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
var handleRouteChangeComplete = function handleRouteChangeComplete(url) {
|
|
193
|
-
trackPageview({
|
|
194
|
-
url: window.location.origin + url
|
|
195
|
-
});
|
|
196
|
-
};
|
|
197
|
-
router$1.events.on('routeChangeComplete', handleRouteChangeComplete);
|
|
198
|
-
return function () {
|
|
199
|
-
router$1.events.off('routeChangeComplete', handleRouteChangeComplete);
|
|
200
|
-
};
|
|
201
|
-
}, [router$1.events, siteId, disableAutoTrack, trackPageview]);
|
|
202
|
-
|
|
203
|
-
// Track initial pageview (routeChangeComplete doesn't fire on initial load)
|
|
204
|
-
React.useEffect(function () {
|
|
205
|
-
if (siteId !== undefined && !disableAutoTrack && router$1.isReady && !hasTrackedInitialPageview.current) {
|
|
206
|
-
hasTrackedInitialPageview.current = true;
|
|
207
|
-
trackPageview({
|
|
208
|
-
url: window.location.href
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
}, [siteId, disableAutoTrack, router$1.isReady, trackPageview]);
|
|
212
|
-
return /*#__PURE__*/React.createElement(FathomProvider, {
|
|
213
|
-
client: client,
|
|
214
|
-
clientOptions: clientOptions,
|
|
215
|
-
siteId: siteId,
|
|
216
|
-
defaultPageviewOptions: defaultPageviewOptions
|
|
217
|
-
}, children);
|
|
218
|
-
};
|
|
219
|
-
NextFathomProviderPages.displayName = 'NextFathomProviderPages';
|
|
220
|
-
|
|
221
|
-
var NextFathomProviderPages$1 = /*#__PURE__*/Object.freeze({
|
|
222
|
-
__proto__: null,
|
|
223
|
-
NextFathomProviderPages: NextFathomProviderPages,
|
|
224
|
-
default: NextFathomProviderPages
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
228
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
229
|
-
var NextFathomProviderApp = function NextFathomProviderApp(_ref) {
|
|
230
|
-
var children = _ref.children,
|
|
231
|
-
providedClient = _ref.client,
|
|
232
|
-
clientOptions = _ref.clientOptions,
|
|
233
|
-
_ref$disableAutoTrack = _ref.disableAutoTrack,
|
|
234
|
-
disableAutoTrack = _ref$disableAutoTrack === void 0 ? false : _ref$disableAutoTrack,
|
|
235
|
-
siteId = _ref.siteId,
|
|
236
|
-
trackDefaultOptions = _ref.trackDefaultOptions,
|
|
237
|
-
providedDefaultPageviewOptions = _ref.defaultPageviewOptions;
|
|
238
|
-
var pathname = navigation.usePathname();
|
|
239
|
-
var searchParams = navigation.useSearchParams();
|
|
240
|
-
var hasTrackedInitialPageview = React.useRef(false);
|
|
241
|
-
var parentContext = useFathom();
|
|
242
|
-
|
|
243
|
-
// Use provided client or fall back to parent client or default Fathom
|
|
244
|
-
var client = React.useMemo(function () {
|
|
245
|
-
var _ref2;
|
|
246
|
-
return (_ref2 = providedClient !== null && providedClient !== void 0 ? providedClient : parentContext.client) !== null && _ref2 !== void 0 ? _ref2 : Fathom__namespace;
|
|
247
|
-
}, [providedClient, parentContext.client]);
|
|
248
|
-
|
|
249
|
-
// Support both deprecated trackDefaultOptions and new defaultPageviewOptions
|
|
250
|
-
// Priority: providedDefaultPageviewOptions > trackDefaultOptions > parent defaultPageviewOptions
|
|
251
|
-
var defaultPageviewOptions = React.useMemo(function () {
|
|
252
|
-
var _ref3;
|
|
253
|
-
return (_ref3 = providedDefaultPageviewOptions !== null && providedDefaultPageviewOptions !== void 0 ? providedDefaultPageviewOptions : trackDefaultOptions) !== null && _ref3 !== void 0 ? _ref3 : parentContext.defaultPageviewOptions;
|
|
254
|
-
}, [providedDefaultPageviewOptions, trackDefaultOptions, parentContext.defaultPageviewOptions]);
|
|
255
|
-
var trackPageview = React.useCallback(function (options) {
|
|
256
|
-
if (siteId !== undefined && client !== undefined) {
|
|
257
|
-
client.trackPageview(_objectSpread(_objectSpread({}, defaultPageviewOptions), options));
|
|
258
|
-
}
|
|
259
|
-
}, [client, siteId, defaultPageviewOptions]);
|
|
260
|
-
|
|
261
|
-
// Initialize Fathom on mount
|
|
262
|
-
React.useEffect(function () {
|
|
263
|
-
if (siteId !== undefined && client !== undefined) {
|
|
264
|
-
client.load(siteId, clientOptions);
|
|
265
|
-
}
|
|
266
|
-
}, [client, clientOptions, siteId]);
|
|
267
|
-
|
|
268
|
-
// Track pageviews on route changes
|
|
269
|
-
React.useEffect(function () {
|
|
270
|
-
if (siteId === undefined || disableAutoTrack) {
|
|
271
|
-
return;
|
|
272
|
-
}
|
|
273
|
-
var searchString = searchParams === null || searchParams === void 0 ? void 0 : searchParams.toString();
|
|
274
|
-
var url = pathname + (searchString !== undefined && searchString !== '' ? "?".concat(searchString) : '');
|
|
275
|
-
|
|
276
|
-
// Track initial pageview only once
|
|
277
|
-
if (!hasTrackedInitialPageview.current) {
|
|
278
|
-
hasTrackedInitialPageview.current = true;
|
|
279
|
-
trackPageview({
|
|
280
|
-
url: window.location.origin + url
|
|
281
|
-
});
|
|
282
|
-
} else {
|
|
283
|
-
// Track subsequent route changes
|
|
284
|
-
trackPageview({
|
|
285
|
-
url: window.location.origin + url
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
}, [pathname, searchParams, siteId, disableAutoTrack, trackPageview]);
|
|
289
|
-
return /*#__PURE__*/React.createElement(FathomProvider, {
|
|
290
|
-
client: client,
|
|
291
|
-
clientOptions: clientOptions,
|
|
292
|
-
siteId: siteId,
|
|
293
|
-
defaultPageviewOptions: defaultPageviewOptions
|
|
294
|
-
}, children);
|
|
295
|
-
};
|
|
296
|
-
NextFathomProviderApp.displayName = 'NextFathomProviderApp';
|
|
297
|
-
|
|
298
|
-
var NextFathomProviderApp$1 = /*#__PURE__*/Object.freeze({
|
|
299
|
-
__proto__: null,
|
|
300
|
-
NextFathomProviderApp: NextFathomProviderApp,
|
|
301
|
-
default: NextFathomProviderApp
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
function _objectWithoutPropertiesLoose(r, e) {
|
|
305
|
-
if (null == r) return {};
|
|
306
|
-
var t = {};
|
|
307
|
-
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
308
|
-
if (-1 !== e.indexOf(n)) continue;
|
|
309
|
-
t[n] = r[n];
|
|
310
|
-
}
|
|
311
|
-
return t;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
function _objectWithoutProperties(e, t) {
|
|
315
|
-
if (null == e) return {};
|
|
316
|
-
var o,
|
|
317
|
-
r,
|
|
318
|
-
i = _objectWithoutPropertiesLoose(e, t);
|
|
319
|
-
if (Object.getOwnPropertySymbols) {
|
|
320
|
-
var n = Object.getOwnPropertySymbols(e);
|
|
321
|
-
for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
|
|
322
|
-
}
|
|
323
|
-
return i;
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
327
|
-
try {
|
|
328
|
-
var i = n[a](c),
|
|
329
|
-
u = i.value;
|
|
330
|
-
} catch (n) {
|
|
331
|
-
return void e(n);
|
|
332
|
-
}
|
|
333
|
-
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
334
|
-
}
|
|
335
|
-
function _asyncToGenerator(n) {
|
|
336
|
-
return function () {
|
|
337
|
-
var t = this,
|
|
338
|
-
e = arguments;
|
|
339
|
-
return new Promise(function (r, o) {
|
|
340
|
-
var a = n.apply(t, e);
|
|
341
|
-
function _next(n) {
|
|
342
|
-
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
|
|
343
|
-
}
|
|
344
|
-
function _throw(n) {
|
|
345
|
-
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
|
|
346
|
-
}
|
|
347
|
-
_next(void 0);
|
|
348
|
-
});
|
|
349
|
-
};
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
function getDefaultExportFromCjs (x) {
|
|
353
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
var regeneratorRuntime$1 = {exports: {}};
|
|
357
|
-
|
|
358
|
-
var OverloadYield = {exports: {}};
|
|
359
|
-
|
|
360
|
-
var hasRequiredOverloadYield;
|
|
361
|
-
|
|
362
|
-
function requireOverloadYield () {
|
|
363
|
-
if (hasRequiredOverloadYield) return OverloadYield.exports;
|
|
364
|
-
hasRequiredOverloadYield = 1;
|
|
365
|
-
(function (module) {
|
|
366
|
-
function _OverloadYield(e, d) {
|
|
367
|
-
this.v = e, this.k = d;
|
|
368
|
-
}
|
|
369
|
-
module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
370
|
-
} (OverloadYield));
|
|
371
|
-
return OverloadYield.exports;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
var regenerator$1 = {exports: {}};
|
|
375
|
-
|
|
376
|
-
var regeneratorDefine = {exports: {}};
|
|
377
|
-
|
|
378
|
-
var hasRequiredRegeneratorDefine;
|
|
379
|
-
|
|
380
|
-
function requireRegeneratorDefine () {
|
|
381
|
-
if (hasRequiredRegeneratorDefine) return regeneratorDefine.exports;
|
|
382
|
-
hasRequiredRegeneratorDefine = 1;
|
|
383
|
-
(function (module) {
|
|
384
|
-
function _regeneratorDefine(e, r, n, t) {
|
|
385
|
-
var i = Object.defineProperty;
|
|
386
|
-
try {
|
|
387
|
-
i({}, "", {});
|
|
388
|
-
} catch (e) {
|
|
389
|
-
i = 0;
|
|
390
|
-
}
|
|
391
|
-
module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
|
|
392
|
-
function o(r, n) {
|
|
393
|
-
_regeneratorDefine(e, r, function (e) {
|
|
394
|
-
return this._invoke(r, n, e);
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
r ? i ? i(e, r, {
|
|
398
|
-
value: n,
|
|
399
|
-
enumerable: !t,
|
|
400
|
-
configurable: !t,
|
|
401
|
-
writable: !t
|
|
402
|
-
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
403
|
-
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
|
|
404
|
-
}
|
|
405
|
-
module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
406
|
-
} (regeneratorDefine));
|
|
407
|
-
return regeneratorDefine.exports;
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
var hasRequiredRegenerator$1;
|
|
411
|
-
|
|
412
|
-
function requireRegenerator$1 () {
|
|
413
|
-
if (hasRequiredRegenerator$1) return regenerator$1.exports;
|
|
414
|
-
hasRequiredRegenerator$1 = 1;
|
|
415
|
-
(function (module) {
|
|
416
|
-
var regeneratorDefine = requireRegeneratorDefine();
|
|
417
|
-
function _regenerator() {
|
|
418
|
-
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
419
|
-
var e,
|
|
420
|
-
t,
|
|
421
|
-
r = "function" == typeof Symbol ? Symbol : {},
|
|
422
|
-
n = r.iterator || "@@iterator",
|
|
423
|
-
o = r.toStringTag || "@@toStringTag";
|
|
424
|
-
function i(r, n, o, i) {
|
|
425
|
-
var c = n && n.prototype instanceof Generator ? n : Generator,
|
|
426
|
-
u = Object.create(c.prototype);
|
|
427
|
-
return regeneratorDefine(u, "_invoke", function (r, n, o) {
|
|
428
|
-
var i,
|
|
429
|
-
c,
|
|
430
|
-
u,
|
|
431
|
-
f = 0,
|
|
432
|
-
p = o || [],
|
|
433
|
-
y = false,
|
|
434
|
-
G = {
|
|
435
|
-
p: 0,
|
|
436
|
-
n: 0,
|
|
437
|
-
v: e,
|
|
438
|
-
a: d,
|
|
439
|
-
f: d.bind(e, 4),
|
|
440
|
-
d: function d(t, r) {
|
|
441
|
-
return i = t, c = 0, u = e, G.n = r, a;
|
|
442
|
-
}
|
|
443
|
-
};
|
|
444
|
-
function d(r, n) {
|
|
445
|
-
for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
|
|
446
|
-
var o,
|
|
447
|
-
i = p[t],
|
|
448
|
-
d = G.p,
|
|
449
|
-
l = i[2];
|
|
450
|
-
r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
|
|
451
|
-
}
|
|
452
|
-
if (o || r > 1) return a;
|
|
453
|
-
throw y = true, n;
|
|
454
|
-
}
|
|
455
|
-
return function (o, p, l) {
|
|
456
|
-
if (f > 1) throw TypeError("Generator is already running");
|
|
457
|
-
for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
|
|
458
|
-
i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
|
|
459
|
-
try {
|
|
460
|
-
if (f = 2, i) {
|
|
461
|
-
if (c || (o = "next"), t = i[o]) {
|
|
462
|
-
if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
|
|
463
|
-
if (!t.done) return t;
|
|
464
|
-
u = t.value, c < 2 && (c = 0);
|
|
465
|
-
} else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
|
|
466
|
-
i = e;
|
|
467
|
-
} else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
|
|
468
|
-
} catch (t) {
|
|
469
|
-
i = e, c = 1, u = t;
|
|
470
|
-
} finally {
|
|
471
|
-
f = 1;
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
return {
|
|
475
|
-
value: t,
|
|
476
|
-
done: y
|
|
477
|
-
};
|
|
478
|
-
};
|
|
479
|
-
}(r, o, i), true), u;
|
|
480
|
-
}
|
|
481
|
-
var a = {};
|
|
482
|
-
function Generator() {}
|
|
483
|
-
function GeneratorFunction() {}
|
|
484
|
-
function GeneratorFunctionPrototype() {}
|
|
485
|
-
t = Object.getPrototypeOf;
|
|
486
|
-
var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {
|
|
487
|
-
return this;
|
|
488
|
-
}), t),
|
|
489
|
-
u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
|
|
490
|
-
function f(e) {
|
|
491
|
-
return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
|
|
492
|
-
}
|
|
493
|
-
return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function () {
|
|
494
|
-
return this;
|
|
495
|
-
}), regeneratorDefine(u, "toString", function () {
|
|
496
|
-
return "[object Generator]";
|
|
497
|
-
}), (module.exports = _regenerator = function _regenerator() {
|
|
498
|
-
return {
|
|
499
|
-
w: i,
|
|
500
|
-
m: f
|
|
501
|
-
};
|
|
502
|
-
}, module.exports.__esModule = true, module.exports["default"] = module.exports)();
|
|
503
|
-
}
|
|
504
|
-
module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
505
|
-
} (regenerator$1));
|
|
506
|
-
return regenerator$1.exports;
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
var regeneratorAsync = {exports: {}};
|
|
510
|
-
|
|
511
|
-
var regeneratorAsyncGen = {exports: {}};
|
|
512
|
-
|
|
513
|
-
var regeneratorAsyncIterator = {exports: {}};
|
|
514
|
-
|
|
515
|
-
var hasRequiredRegeneratorAsyncIterator;
|
|
516
|
-
|
|
517
|
-
function requireRegeneratorAsyncIterator () {
|
|
518
|
-
if (hasRequiredRegeneratorAsyncIterator) return regeneratorAsyncIterator.exports;
|
|
519
|
-
hasRequiredRegeneratorAsyncIterator = 1;
|
|
520
|
-
(function (module) {
|
|
521
|
-
var OverloadYield = requireOverloadYield();
|
|
522
|
-
var regeneratorDefine = requireRegeneratorDefine();
|
|
523
|
-
function AsyncIterator(t, e) {
|
|
524
|
-
function n(r, o, i, f) {
|
|
525
|
-
try {
|
|
526
|
-
var c = t[r](o),
|
|
527
|
-
u = c.value;
|
|
528
|
-
return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {
|
|
529
|
-
n("next", t, i, f);
|
|
530
|
-
}, function (t) {
|
|
531
|
-
n("throw", t, i, f);
|
|
532
|
-
}) : e.resolve(u).then(function (t) {
|
|
533
|
-
c.value = t, i(c);
|
|
534
|
-
}, function (t) {
|
|
535
|
-
return n("throw", t, i, f);
|
|
536
|
-
});
|
|
537
|
-
} catch (t) {
|
|
538
|
-
f(t);
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
var r;
|
|
542
|
-
this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
|
|
543
|
-
return this;
|
|
544
|
-
})), regeneratorDefine(this, "_invoke", function (t, o, i) {
|
|
545
|
-
function f() {
|
|
546
|
-
return new e(function (e, r) {
|
|
547
|
-
n(t, i, e, r);
|
|
548
|
-
});
|
|
549
|
-
}
|
|
550
|
-
return r = r ? r.then(f, f) : f();
|
|
551
|
-
}, true);
|
|
552
|
-
}
|
|
553
|
-
module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
554
|
-
} (regeneratorAsyncIterator));
|
|
555
|
-
return regeneratorAsyncIterator.exports;
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
var hasRequiredRegeneratorAsyncGen;
|
|
559
|
-
|
|
560
|
-
function requireRegeneratorAsyncGen () {
|
|
561
|
-
if (hasRequiredRegeneratorAsyncGen) return regeneratorAsyncGen.exports;
|
|
562
|
-
hasRequiredRegeneratorAsyncGen = 1;
|
|
563
|
-
(function (module) {
|
|
564
|
-
var regenerator = requireRegenerator$1();
|
|
565
|
-
var regeneratorAsyncIterator = requireRegeneratorAsyncIterator();
|
|
566
|
-
function _regeneratorAsyncGen(r, e, t, o, n) {
|
|
567
|
-
return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);
|
|
568
|
-
}
|
|
569
|
-
module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
570
|
-
} (regeneratorAsyncGen));
|
|
571
|
-
return regeneratorAsyncGen.exports;
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
var hasRequiredRegeneratorAsync;
|
|
575
|
-
|
|
576
|
-
function requireRegeneratorAsync () {
|
|
577
|
-
if (hasRequiredRegeneratorAsync) return regeneratorAsync.exports;
|
|
578
|
-
hasRequiredRegeneratorAsync = 1;
|
|
579
|
-
(function (module) {
|
|
580
|
-
var regeneratorAsyncGen = requireRegeneratorAsyncGen();
|
|
581
|
-
function _regeneratorAsync(n, e, r, t, o) {
|
|
582
|
-
var a = regeneratorAsyncGen(n, e, r, t, o);
|
|
583
|
-
return a.next().then(function (n) {
|
|
584
|
-
return n.done ? n.value : a.next();
|
|
585
|
-
});
|
|
586
|
-
}
|
|
587
|
-
module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
588
|
-
} (regeneratorAsync));
|
|
589
|
-
return regeneratorAsync.exports;
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
var regeneratorKeys = {exports: {}};
|
|
593
|
-
|
|
594
|
-
var hasRequiredRegeneratorKeys;
|
|
595
|
-
|
|
596
|
-
function requireRegeneratorKeys () {
|
|
597
|
-
if (hasRequiredRegeneratorKeys) return regeneratorKeys.exports;
|
|
598
|
-
hasRequiredRegeneratorKeys = 1;
|
|
599
|
-
(function (module) {
|
|
600
|
-
function _regeneratorKeys(e) {
|
|
601
|
-
var n = Object(e),
|
|
602
|
-
r = [];
|
|
603
|
-
for (var t in n) r.unshift(t);
|
|
604
|
-
return function e() {
|
|
605
|
-
for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = false, e;
|
|
606
|
-
return e.done = true, e;
|
|
607
|
-
};
|
|
608
|
-
}
|
|
609
|
-
module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
610
|
-
} (regeneratorKeys));
|
|
611
|
-
return regeneratorKeys.exports;
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
var regeneratorValues = {exports: {}};
|
|
615
|
-
|
|
616
|
-
var _typeof = {exports: {}};
|
|
617
|
-
|
|
618
|
-
var hasRequired_typeof;
|
|
619
|
-
|
|
620
|
-
function require_typeof () {
|
|
621
|
-
if (hasRequired_typeof) return _typeof.exports;
|
|
622
|
-
hasRequired_typeof = 1;
|
|
623
|
-
(function (module) {
|
|
624
|
-
function _typeof(o) {
|
|
625
|
-
"@babel/helpers - typeof";
|
|
626
|
-
|
|
627
|
-
return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
|
628
|
-
return typeof o;
|
|
629
|
-
} : function (o) {
|
|
630
|
-
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
631
|
-
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
|
|
632
|
-
}
|
|
633
|
-
module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
634
|
-
} (_typeof));
|
|
635
|
-
return _typeof.exports;
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
var hasRequiredRegeneratorValues;
|
|
639
|
-
|
|
640
|
-
function requireRegeneratorValues () {
|
|
641
|
-
if (hasRequiredRegeneratorValues) return regeneratorValues.exports;
|
|
642
|
-
hasRequiredRegeneratorValues = 1;
|
|
643
|
-
(function (module) {
|
|
644
|
-
var _typeof = require_typeof()["default"];
|
|
645
|
-
function _regeneratorValues(e) {
|
|
646
|
-
if (null != e) {
|
|
647
|
-
var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
|
|
648
|
-
r = 0;
|
|
649
|
-
if (t) return t.call(e);
|
|
650
|
-
if ("function" == typeof e.next) return e;
|
|
651
|
-
if (!isNaN(e.length)) return {
|
|
652
|
-
next: function next() {
|
|
653
|
-
return e && r >= e.length && (e = void 0), {
|
|
654
|
-
value: e && e[r++],
|
|
655
|
-
done: !e
|
|
656
|
-
};
|
|
657
|
-
}
|
|
658
|
-
};
|
|
659
|
-
}
|
|
660
|
-
throw new TypeError(_typeof(e) + " is not iterable");
|
|
661
|
-
}
|
|
662
|
-
module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
663
|
-
} (regeneratorValues));
|
|
664
|
-
return regeneratorValues.exports;
|
|
665
|
-
}
|
|
666
|
-
|
|
667
|
-
var hasRequiredRegeneratorRuntime;
|
|
668
|
-
|
|
669
|
-
function requireRegeneratorRuntime () {
|
|
670
|
-
if (hasRequiredRegeneratorRuntime) return regeneratorRuntime$1.exports;
|
|
671
|
-
hasRequiredRegeneratorRuntime = 1;
|
|
672
|
-
(function (module) {
|
|
673
|
-
var OverloadYield = requireOverloadYield();
|
|
674
|
-
var regenerator = requireRegenerator$1();
|
|
675
|
-
var regeneratorAsync = requireRegeneratorAsync();
|
|
676
|
-
var regeneratorAsyncGen = requireRegeneratorAsyncGen();
|
|
677
|
-
var regeneratorAsyncIterator = requireRegeneratorAsyncIterator();
|
|
678
|
-
var regeneratorKeys = requireRegeneratorKeys();
|
|
679
|
-
var regeneratorValues = requireRegeneratorValues();
|
|
680
|
-
function _regeneratorRuntime() {
|
|
681
|
-
|
|
682
|
-
var r = regenerator(),
|
|
683
|
-
e = r.m(_regeneratorRuntime),
|
|
684
|
-
t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
|
|
685
|
-
function n(r) {
|
|
686
|
-
var e = "function" == typeof r && r.constructor;
|
|
687
|
-
return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
|
|
688
|
-
}
|
|
689
|
-
var o = {
|
|
690
|
-
"throw": 1,
|
|
691
|
-
"return": 2,
|
|
692
|
-
"break": 3,
|
|
693
|
-
"continue": 3
|
|
694
|
-
};
|
|
695
|
-
function a(r) {
|
|
696
|
-
var e, t;
|
|
697
|
-
return function (n) {
|
|
698
|
-
e || (e = {
|
|
699
|
-
stop: function stop() {
|
|
700
|
-
return t(n.a, 2);
|
|
701
|
-
},
|
|
702
|
-
"catch": function _catch() {
|
|
703
|
-
return n.v;
|
|
704
|
-
},
|
|
705
|
-
abrupt: function abrupt(r, e) {
|
|
706
|
-
return t(n.a, o[r], e);
|
|
707
|
-
},
|
|
708
|
-
delegateYield: function delegateYield(r, o, a) {
|
|
709
|
-
return e.resultName = o, t(n.d, regeneratorValues(r), a);
|
|
710
|
-
},
|
|
711
|
-
finish: function finish(r) {
|
|
712
|
-
return t(n.f, r);
|
|
713
|
-
}
|
|
714
|
-
}, t = function t(r, _t, o) {
|
|
715
|
-
n.p = e.prev, n.n = e.next;
|
|
716
|
-
try {
|
|
717
|
-
return r(_t, o);
|
|
718
|
-
} finally {
|
|
719
|
-
e.next = n.n;
|
|
720
|
-
}
|
|
721
|
-
}), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
|
|
722
|
-
try {
|
|
723
|
-
return r.call(this, e);
|
|
724
|
-
} finally {
|
|
725
|
-
n.p = e.prev, n.n = e.next;
|
|
726
|
-
}
|
|
727
|
-
};
|
|
728
|
-
}
|
|
729
|
-
return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
|
|
730
|
-
return {
|
|
731
|
-
wrap: function wrap(e, t, n, o) {
|
|
732
|
-
return r.w(a(e), t, n, o && o.reverse());
|
|
733
|
-
},
|
|
734
|
-
isGeneratorFunction: n,
|
|
735
|
-
mark: r.m,
|
|
736
|
-
awrap: function awrap(r, e) {
|
|
737
|
-
return new OverloadYield(r, e);
|
|
738
|
-
},
|
|
739
|
-
AsyncIterator: regeneratorAsyncIterator,
|
|
740
|
-
async: function async(r, e, t, o, u) {
|
|
741
|
-
return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);
|
|
742
|
-
},
|
|
743
|
-
keys: regeneratorKeys,
|
|
744
|
-
values: regeneratorValues
|
|
745
|
-
};
|
|
746
|
-
}, module.exports.__esModule = true, module.exports["default"] = module.exports)();
|
|
747
|
-
}
|
|
748
|
-
module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
749
|
-
} (regeneratorRuntime$1));
|
|
750
|
-
return regeneratorRuntime$1.exports;
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
var regenerator;
|
|
754
|
-
var hasRequiredRegenerator;
|
|
755
|
-
|
|
756
|
-
function requireRegenerator () {
|
|
757
|
-
if (hasRequiredRegenerator) return regenerator;
|
|
758
|
-
hasRequiredRegenerator = 1;
|
|
759
|
-
// TODO(Babel 8): Remove this file.
|
|
760
|
-
|
|
761
|
-
var runtime = requireRegeneratorRuntime()();
|
|
762
|
-
regenerator = runtime;
|
|
763
|
-
|
|
764
|
-
// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
|
|
765
|
-
try {
|
|
766
|
-
regeneratorRuntime = runtime;
|
|
767
|
-
} catch (accidentalStrictMode) {
|
|
768
|
-
if (typeof globalThis === "object") {
|
|
769
|
-
globalThis.regeneratorRuntime = runtime;
|
|
770
|
-
} else {
|
|
771
|
-
Function("r", "regeneratorRuntime = r")(runtime);
|
|
772
|
-
}
|
|
773
|
-
}
|
|
774
|
-
return regenerator;
|
|
775
|
-
}
|
|
776
|
-
|
|
777
|
-
var regeneratorExports = requireRegenerator();
|
|
778
|
-
var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regeneratorExports);
|
|
779
|
-
|
|
780
|
-
var _excluded = ["router", "fallback"];
|
|
781
|
-
// Dynamically import providers to enable code-splitting
|
|
782
|
-
var NextFathomProviderAppLazy = /*#__PURE__*/React.lazy(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
783
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
784
|
-
while (1) switch (_context.prev = _context.next) {
|
|
785
|
-
case 0:
|
|
786
|
-
_context.next = 1;
|
|
787
|
-
return Promise.resolve().then(function () { return NextFathomProviderApp$1; });
|
|
788
|
-
case 1:
|
|
789
|
-
return _context.abrupt("return", _context.sent);
|
|
790
|
-
case 2:
|
|
791
|
-
case "end":
|
|
792
|
-
return _context.stop();
|
|
793
|
-
}
|
|
794
|
-
}, _callee);
|
|
795
|
-
})));
|
|
796
|
-
var NextFathomProviderPagesLazy = /*#__PURE__*/React.lazy(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
797
|
-
return _regeneratorRuntime.wrap(function (_context2) {
|
|
798
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
799
|
-
case 0:
|
|
800
|
-
_context2.next = 1;
|
|
801
|
-
return Promise.resolve().then(function () { return NextFathomProviderPages$1; });
|
|
802
|
-
case 1:
|
|
803
|
-
return _context2.abrupt("return", _context2.sent);
|
|
804
|
-
case 2:
|
|
805
|
-
case "end":
|
|
806
|
-
return _context2.stop();
|
|
807
|
-
}
|
|
808
|
-
}, _callee2);
|
|
809
|
-
})));
|
|
810
|
-
|
|
811
|
-
/**
|
|
812
|
-
* Unified provider component that conditionally renders the appropriate
|
|
813
|
-
* Next.js router provider based on the `router` prop.
|
|
814
|
-
* Providers are dynamically loaded to avoid bundling both router types.
|
|
815
|
-
*
|
|
816
|
-
* @example
|
|
817
|
-
* ```tsx
|
|
818
|
-
* // App Router (default)
|
|
819
|
-
* <NextFathomProvider siteId="YOUR_SITE_ID" router="app">
|
|
820
|
-
* <App>{children}</App>
|
|
821
|
-
* </NextFathomProvider>
|
|
822
|
-
*
|
|
823
|
-
* // Pages Router
|
|
824
|
-
* <NextFathomProvider siteId="YOUR_SITE_ID" router="pages">
|
|
825
|
-
* <App>{children}</App>
|
|
826
|
-
* </NextFathomProvider>
|
|
827
|
-
* ```
|
|
828
|
-
*/
|
|
829
|
-
var NextFathomProvider = function NextFathomProvider(_ref3) {
|
|
830
|
-
var _ref3$router = _ref3.router,
|
|
831
|
-
router = _ref3$router === void 0 ? 'app' : _ref3$router,
|
|
832
|
-
_ref3$fallback = _ref3.fallback,
|
|
833
|
-
fallback = _ref3$fallback === void 0 ? null : _ref3$fallback,
|
|
834
|
-
props = _objectWithoutProperties(_ref3, _excluded);
|
|
835
|
-
var Provider = React.useMemo(function () {
|
|
836
|
-
return router === 'pages' ? NextFathomProviderPagesLazy : NextFathomProviderAppLazy;
|
|
837
|
-
}, [router]);
|
|
838
|
-
return /*#__PURE__*/React.createElement(React.Suspense, {
|
|
839
|
-
fallback: fallback
|
|
840
|
-
}, /*#__PURE__*/React.createElement(Provider, props));
|
|
841
|
-
};
|
|
842
|
-
NextFathomProvider.displayName = 'NextFathomProvider';
|
|
843
|
-
|
|
290
|
+
var _excluded$1 = ["disableAutoTrack"];
|
|
844
291
|
/**
|
|
845
292
|
* Higher-order component that wraps your Next.js Pages Router app with FathomProvider
|
|
293
|
+
* and automatically tracks pageviews using NextFathomTrackViewPages.
|
|
846
294
|
*
|
|
847
295
|
* @example
|
|
848
296
|
* ```tsx
|
|
@@ -863,14 +311,22 @@ NextFathomProvider.displayName = 'NextFathomProvider';
|
|
|
863
311
|
*/
|
|
864
312
|
var withPagesRouter = function withPagesRouter(Component, providerProps) {
|
|
865
313
|
var WithPagesRouter = function WithPagesRouter(props) {
|
|
866
|
-
|
|
314
|
+
// Extract disableAutoTrack for the tracking component
|
|
315
|
+
var _ref = providerProps !== null && providerProps !== void 0 ? providerProps : {},
|
|
316
|
+
disableAutoTrack = _ref.disableAutoTrack,
|
|
317
|
+
fathomProviderProps = _objectWithoutProperties(_ref, _excluded$1);
|
|
318
|
+
return /*#__PURE__*/React.createElement(FathomProvider, fathomProviderProps, /*#__PURE__*/React.createElement(NextFathomTrackViewPages, {
|
|
319
|
+
disableAutoTrack: disableAutoTrack
|
|
320
|
+
}), /*#__PURE__*/React.createElement(Component, props));
|
|
867
321
|
};
|
|
868
322
|
WithPagesRouter.displayName = "withPagesRouter(".concat(Component.displayName || Component.name || 'Component', ")");
|
|
869
323
|
return WithPagesRouter;
|
|
870
324
|
};
|
|
871
325
|
|
|
326
|
+
var _excluded = ["disableAutoTrack"];
|
|
872
327
|
/**
|
|
873
328
|
* Higher-order component that wraps your Next.js App Router app with FathomProvider
|
|
329
|
+
* and automatically tracks pageviews using NextFathomTrackViewApp.
|
|
874
330
|
*
|
|
875
331
|
* @example
|
|
876
332
|
* ```tsx
|
|
@@ -895,15 +351,20 @@ var withPagesRouter = function withPagesRouter(Component, providerProps) {
|
|
|
895
351
|
*/
|
|
896
352
|
var withAppRouter = function withAppRouter(Component, providerProps) {
|
|
897
353
|
var WithAppRouter = function WithAppRouter(props) {
|
|
898
|
-
|
|
354
|
+
// Extract disableAutoTrack for the tracking component
|
|
355
|
+
var _ref = providerProps !== null && providerProps !== void 0 ? providerProps : {},
|
|
356
|
+
disableAutoTrack = _ref.disableAutoTrack,
|
|
357
|
+
fathomProviderProps = _objectWithoutProperties(_ref, _excluded);
|
|
358
|
+
return /*#__PURE__*/React.createElement(FathomProvider, fathomProviderProps, /*#__PURE__*/React.createElement(NextFathomTrackViewApp, {
|
|
359
|
+
disableAutoTrack: disableAutoTrack
|
|
360
|
+
}), /*#__PURE__*/React.createElement(Component, props));
|
|
899
361
|
};
|
|
900
362
|
WithAppRouter.displayName = "withAppRouter(".concat(Component.displayName || Component.name || 'Component', ")");
|
|
901
363
|
return WithAppRouter;
|
|
902
364
|
};
|
|
903
365
|
|
|
904
|
-
exports.
|
|
905
|
-
exports.
|
|
906
|
-
exports.NextFathomProviderPages = NextFathomProviderPages;
|
|
366
|
+
exports.NextFathomTrackViewApp = NextFathomTrackViewApp;
|
|
367
|
+
exports.NextFathomTrackViewPages = NextFathomTrackViewPages;
|
|
907
368
|
exports.withAppRouter = withAppRouter;
|
|
908
369
|
exports.withPagesRouter = withPagesRouter;
|
|
909
370
|
/* Copyright 2025 - Ryan Hefner <hi@ryanhefner.com> (https://www.ryanhefner.com) */
|