@netlify/spark-ui 0.0.46-alpha.3 → 0.0.46-alpha.4
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/dist/analytics/index.d.ts +2 -1
- package/dist/components/preact/SearchModal/hooks/useSearchLogger.js +17 -17
- package/package.json +1 -1
- package/packages/analytics/GoogleAnalytics.astro +8 -3
- package/packages/analytics/GoogleTagManager.astro +10 -4
- package/packages/analytics/GoogleTagManagerNoscript.astro +9 -0
- package/packages/analytics/analytics.ts +8 -2
- package/packages/analytics/index.ts +2 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { default as GoogleTagManager } from './GoogleTagManager.astro';
|
|
2
|
+
import { default as GoogleTagManagerNoscript } from './GoogleTagManagerNoscript.astro';
|
|
2
3
|
import { default as GoogleAnalytics } from './GoogleAnalytics.astro';
|
|
3
4
|
import { default as Analytics } from './analytics';
|
|
4
|
-
export { Analytics, GoogleAnalytics, GoogleTagManager };
|
|
5
|
+
export { Analytics, GoogleAnalytics, GoogleTagManager, GoogleTagManagerNoscript };
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as g, y as f, q as k } from "../../../../chunks/hooks.module.CNV9mxng.js";
|
|
2
2
|
class y {
|
|
3
3
|
/**
|
|
4
4
|
* Pushes an event payload into the dataLayer.
|
|
5
5
|
* @param eventName e.g. 'www:search_query_changed'
|
|
6
6
|
* @param payload additional key/value data
|
|
7
7
|
*/
|
|
8
|
-
track(
|
|
9
|
-
gtag("event",
|
|
8
|
+
track(e, o = {}) {
|
|
9
|
+
typeof gtag == "function" ? gtag("event", e, { ...o }) : console.error("gtag is not defined. Tracking event failed.", e);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
function
|
|
13
|
-
const n =
|
|
14
|
-
return
|
|
12
|
+
function s(r, e) {
|
|
13
|
+
const n = g(new y()).current;
|
|
14
|
+
return f(() => {
|
|
15
15
|
if (!(r != null && r.searchTerm)) return;
|
|
16
16
|
const c = { query: r == null ? void 0 : r.searchTerm };
|
|
17
|
-
|
|
18
|
-
}, [r == null ? void 0 : r.searchTerm]),
|
|
17
|
+
e && (c.debug_mode = !0), n.track("spark_search:query_changed", c);
|
|
18
|
+
}, [r == null ? void 0 : r.searchTerm]), f(() => {
|
|
19
19
|
if (!(r != null && r.results)) return;
|
|
20
20
|
const c = { query: r == null ? void 0 : r.searchTerm };
|
|
21
|
-
|
|
21
|
+
e && (c.debug_mode = !0), r != null && r.searchTerm && r.results.length === 0 && n.track("spark_search:no_results", c);
|
|
22
22
|
}, [r == null ? void 0 : r.results]), {
|
|
23
|
-
handleClick:
|
|
23
|
+
handleClick: k((c) => {
|
|
24
24
|
var i;
|
|
25
|
-
const
|
|
26
|
-
if (!
|
|
27
|
-
const
|
|
28
|
-
resultTitle:
|
|
29
|
-
resultUrl:
|
|
25
|
+
const l = c.target.closest("a");
|
|
26
|
+
if (!l) return;
|
|
27
|
+
const h = (i = l.querySelector(".n-search-link-label")) == null ? void 0 : i.innerHTML, d = l.getAttribute("href"), u = {
|
|
28
|
+
resultTitle: h,
|
|
29
|
+
resultUrl: d
|
|
30
30
|
};
|
|
31
|
-
|
|
31
|
+
e && (u.debug_mode = !0), n.track("spark_search:result_clicked", u);
|
|
32
32
|
}, [])
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
export {
|
|
36
|
-
|
|
36
|
+
s as useSearchLogger
|
|
37
37
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@netlify/spark-ui",
|
|
3
3
|
"description": "Assets, design tokens, components, and utilities",
|
|
4
|
-
"version": "0.0.46-alpha.
|
|
4
|
+
"version": "0.0.46-alpha.4",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/components/preact/index.js",
|
|
7
7
|
"types": "dist/components/preact/index.d.ts",
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
const { gaId } = Astro.props;
|
|
3
|
+
|
|
4
|
+
if (!gaId) console.error ('[GoogleTagManager] no GTM id provided')
|
|
5
|
+
---
|
|
1
6
|
<!-- Google tag (gtag.js) -->
|
|
2
|
-
<script async src
|
|
3
|
-
<script>
|
|
7
|
+
<script async src=`https://www.googletagmanager.com/gtag/js?id=${gaId}`></script>
|
|
8
|
+
<script define:vars={{id: gaId}}>
|
|
4
9
|
window.dataLayer = window.dataLayer || [];
|
|
5
10
|
function gtag(){dataLayer.push(arguments);}
|
|
6
11
|
gtag('js', new Date());
|
|
7
12
|
|
|
8
|
-
gtag('config',
|
|
13
|
+
gtag('config', id);
|
|
9
14
|
</script>
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
const { gtmId, gaId } = Astro.props;
|
|
3
|
+
|
|
4
|
+
if (!gtmId) console.error ('[GoogleTagManager] no GTM id provided')
|
|
5
|
+
if (!gaId) console.error ('[GoogleTagManager] no GA id provided')
|
|
6
|
+
---
|
|
1
7
|
<!-- Google Tag Manager -->
|
|
2
|
-
<script>
|
|
8
|
+
<script define:vars={{id: gtmId}}>
|
|
3
9
|
(function (w, d, s, l, i) {
|
|
4
10
|
w[l] = w[l] || [];
|
|
5
11
|
w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
|
|
@@ -9,15 +15,15 @@
|
|
|
9
15
|
j.async = true;
|
|
10
16
|
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
|
|
11
17
|
f.parentNode.insertBefore(j, f);
|
|
12
|
-
})(window, document, 'script', 'dataLayer',
|
|
18
|
+
})(window, document, 'script', 'dataLayer', id);
|
|
13
19
|
</script>
|
|
14
20
|
<!-- End Google Tag Manager -->
|
|
15
21
|
|
|
16
22
|
<!-- Google Analytics (gtag.js) -->
|
|
17
|
-
<script>
|
|
23
|
+
<script define:vars={{id: gaId}}>
|
|
18
24
|
function gtag(){dataLayer.push(arguments);}
|
|
19
25
|
gtag('js', new Date());
|
|
20
26
|
|
|
21
|
-
gtag('config',
|
|
27
|
+
gtag('config', id);
|
|
22
28
|
</script>
|
|
23
29
|
<!-- End Google Analytics (gtag.js) -->
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
export default class Analytics {
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* Pushes an event payload into the dataLayer.
|
|
4
5
|
* @param eventName e.g. 'www:search_query_changed'
|
|
5
6
|
* @param payload additional key/value data
|
|
6
7
|
*/
|
|
7
8
|
track(eventName: string, payload: Record<string, any> = {}): void {
|
|
8
|
-
gtag
|
|
9
|
+
// Ensures that gtag is available before pushing events
|
|
10
|
+
if (typeof gtag === 'function') {
|
|
11
|
+
gtag('event', eventName, { ...payload });
|
|
12
|
+
} else {
|
|
13
|
+
console.error(`gtag is not defined. Tracking event failed.`, eventName);
|
|
14
|
+
}
|
|
9
15
|
}
|
|
10
|
-
}
|
|
16
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import GoogleTagManager from "./GoogleTagManager.astro";
|
|
2
|
+
import GoogleTagManagerNoscript from "./GoogleTagManagerNoscript.astro";
|
|
2
3
|
import GoogleAnalytics from "./GoogleAnalytics.astro";
|
|
3
4
|
import Analytics from "./analytics"
|
|
4
5
|
|
|
5
|
-
export { Analytics, GoogleAnalytics, GoogleTagManager }
|
|
6
|
+
export { Analytics, GoogleAnalytics, GoogleTagManager, GoogleTagManagerNoscript }
|