@se-studio/brightline-shared 0.0.9 → 0.0.10

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.
@@ -0,0 +1,5 @@
1
+ export interface AhoyTrackingProps {
2
+ isEnterprisePage?: boolean;
3
+ }
4
+ export declare const AhoyTracking: React.FC<AhoyTrackingProps>;
5
+ //# sourceMappingURL=AhoyTracking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AhoyTracking.d.ts","sourceRoot":"","sources":["../../src/components/AhoyTracking.tsx"],"names":[],"mappings":"AA+BA,MAAM,WAAW,iBAAiB;IAEhC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwDpD,CAAC"}
@@ -0,0 +1,81 @@
1
+ 'use client';
2
+ import { usePathname } from 'next/navigation';
3
+ import { useEffect, useState } from 'react';
4
+ import { isCategoryAccepted, onConsentReady } from '../consent';
5
+ const enabled = process.env.NEXT_PUBLIC_AHOY_ENABLED === 'true';
6
+ const apiUrl = process.env.NEXT_PUBLIC_AHOY_API_URL;
7
+ const debugEnabled = process.env.NEXT_PUBLIC_AHOY_DEBUG === 'true';
8
+ async function loadAhoy() {
9
+ const ahoyModule = await import('ahoy.js');
10
+ const ahoy = ahoyModule.default;
11
+ ahoy.configure({
12
+ urlPrefix: '',
13
+ visitsUrl: `${apiUrl}/ahoy/visits`,
14
+ eventsUrl: `${apiUrl}/ahoy/events`,
15
+ platform: 'Homepage',
16
+ useBeacon: true,
17
+ startOnReady: true,
18
+ trackVisits: true,
19
+ cookies: true,
20
+ cookieDomain: process.env.NEXT_PUBLIC_AHOY_COOKIE_DOMAIN,
21
+ withCredentials: true,
22
+ visitParams: {},
23
+ visitDuration: 60,
24
+ });
25
+ return ahoy;
26
+ }
27
+ export const AhoyTracking = ({ isEnterprisePage = false }) => {
28
+ const pathname = usePathname();
29
+ const [ahoyClient, setAhoyClient] = useState();
30
+ const [consentGranted, setConsentGranted] = useState(isCategoryAccepted('analytics'));
31
+ useEffect(() => {
32
+ const unsubscribe = onConsentReady((categories) => {
33
+ setConsentGranted(categories.includes('analytics'));
34
+ });
35
+ return unsubscribe;
36
+ }, []);
37
+ useEffect(() => {
38
+ if (!consentGranted || !enabled || !apiUrl) {
39
+ return;
40
+ }
41
+ loadAhoy()
42
+ .then((ahoy) => setAhoyClient(ahoy))
43
+ .catch((error) => {
44
+ console.error('Failed to load ahoy', error);
45
+ });
46
+ }, [consentGranted]);
47
+ useEffect(() => {
48
+ if (!consentGranted || !enabled || !ahoyClient) {
49
+ return;
50
+ }
51
+ try {
52
+ ahoyClient.start();
53
+ if (debugEnabled) {
54
+ ahoyClient.debug();
55
+ }
56
+ ahoyClient.trackView();
57
+ ahoyClient.trackClicks('a, button, input[type=submit]');
58
+ ahoyClient.trackSubmits('form');
59
+ }
60
+ catch (error) {
61
+ console.error('Error configuring ahoy', error);
62
+ }
63
+ }, [consentGranted, ahoyClient]);
64
+ useEffect(() => {
65
+ if (!consentGranted || !enabled || !ahoyClient || !isEnterprisePage) {
66
+ return;
67
+ }
68
+ try {
69
+ const searchParams = new URLSearchParams(window.location.search);
70
+ ahoyClient.track('MarketingLandingPage:Viewed', {
71
+ query_parameters: searchParams,
72
+ page_slug: pathname,
73
+ });
74
+ }
75
+ catch (error) {
76
+ console.error('Failed to report enterprise page', error);
77
+ }
78
+ }, [consentGranted, pathname, ahoyClient, isEnterprisePage]);
79
+ return null;
80
+ };
81
+ //# sourceMappingURL=AhoyTracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AhoyTracking.js","sourceRoot":"","sources":["../../src/components/AhoyTracking.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const ClarityScript: React.FC;
2
+ //# sourceMappingURL=ClarityScript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClarityScript.d.ts","sourceRoot":"","sources":["../../src/components/ClarityScript.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAuBjC,CAAC"}
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ import { useEffect, useState } from 'react';
3
+ import { isCategoryAccepted, onConsentReady } from '../consent';
4
+ export const ClarityScript = () => {
5
+ const [consentGranted, setConsentGranted] = useState(isCategoryAccepted('analytics'));
6
+ const [initialized, setInitialized] = useState(false);
7
+ useEffect(() => {
8
+ const unsubscribe = onConsentReady((categories) => {
9
+ setConsentGranted(categories.includes('analytics'));
10
+ });
11
+ return unsubscribe;
12
+ }, []);
13
+ useEffect(() => {
14
+ const clarityKey = process.env.NEXT_PUBLIC_CLARITY_KEY;
15
+ if (!consentGranted || !clarityKey || initialized) {
16
+ return;
17
+ }
18
+ import('@microsoft/clarity').then((clarity) => {
19
+ clarity.default.init(clarityKey);
20
+ setInitialized(true);
21
+ });
22
+ }, [consentGranted, initialized]);
23
+ return null;
24
+ };
25
+ //# sourceMappingURL=ClarityScript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClarityScript.js","sourceRoot":"","sources":["../../src/components/ClarityScript.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQhE,MAAM,CAAC,MAAM,aAAa,GAAa,GAAG,EAAE;IAC1C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IACtF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,UAAU,EAAE,EAAE;YAChD,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;QACvD,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjC,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IAElC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const TrustCommanderScript: React.FC;
2
+ //# sourceMappingURL=TrustCommanderScript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrustCommanderScript.d.ts","sourceRoot":"","sources":["../../src/components/TrustCommanderScript.tsx"],"names":[],"mappings":"AAaA,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAoBxC,CAAC"}
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import Script from 'next/script';
4
+ import { useEffect, useState } from 'react';
5
+ import { isCategoryAccepted, onConsentReady } from '../consent';
6
+ export const TrustCommanderScript = () => {
7
+ const [consentGranted, setConsentGranted] = useState(isCategoryAccepted('analytics') || isCategoryAccepted('advertising'));
8
+ useEffect(() => {
9
+ const unsubscribe = onConsentReady((categories) => {
10
+ setConsentGranted(categories.includes('analytics') || categories.includes('advertising'));
11
+ });
12
+ return unsubscribe;
13
+ }, []);
14
+ const tctmId = process.env.NEXT_PUBLIC_TCTM_ID;
15
+ if (!consentGranted || !tctmId) {
16
+ return null;
17
+ }
18
+ return (_jsx(Script, { id: "tctm-script", async: true, src: `//${tctmId}.tctm.co/t.js`, strategy: "afterInteractive" }));
19
+ };
20
+ //# sourceMappingURL=TrustCommanderScript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrustCommanderScript.js","sourceRoot":"","sources":["../../src/components/TrustCommanderScript.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAShE,MAAM,CAAC,MAAM,oBAAoB,GAAa,GAAG,EAAE;IACjD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAClD,kBAAkB,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,aAAa,CAAC,CACrE,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,UAAU,EAAE,EAAE;YAChD,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC/C,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,MAAM,IAAC,EAAE,EAAC,aAAa,EAAC,KAAK,QAAC,GAAG,EAAE,KAAK,MAAM,eAAe,EAAE,QAAQ,EAAC,kBAAkB,GAAG,CAC/F,CAAC;AACJ,CAAC,CAAC"}
@@ -1,6 +1,8 @@
1
- export type { GTMScriptProps } from './GTMScript';
2
- export { GTMScript } from './GTMScript';
1
+ export type { AhoyTrackingProps } from './AhoyTracking';
2
+ export { AhoyTracking } from './AhoyTracking';
3
+ export { ClarityScript } from './ClarityScript';
3
4
  export type { NavigationEventsProps } from './NavigationEvents';
4
5
  export { NavigationEvents } from './NavigationEvents';
5
6
  export { PrivacyFooterLinks } from './PrivacyFooterLinks';
7
+ export { TrustCommanderScript } from './TrustCommanderScript';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,4 +1,6 @@
1
- export { GTMScript } from './GTMScript';
1
+ export { AhoyTracking } from './AhoyTracking';
2
+ export { ClarityScript } from './ClarityScript';
2
3
  export { NavigationEvents } from './NavigationEvents';
3
4
  export { PrivacyFooterLinks } from './PrivacyFooterLinks';
5
+ export { TrustCommanderScript } from './TrustCommanderScript';
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { createBrightlineAnalyticsAdapter } from './adapters/BrightlineAnalyticsAdapter';
2
- export type { GTMScriptProps, NavigationEventsProps, } from './components';
3
- export { GTMScript, NavigationEvents, PrivacyFooterLinks } from './components';
2
+ export type { AhoyTrackingProps, NavigationEventsProps } from './components';
3
+ export { AhoyTracking, ClarityScript, NavigationEvents, PrivacyFooterLinks, TrustCommanderScript, } from './components';
4
4
  export type { BrightlineSharedConfig } from './config';
5
5
  export type { ConsentCategory, ConsentChangeListener, OursConsentChangeCallback, OursConsentObject, } from './consent';
6
6
  export { getAcceptedCategories, isAdvertisingAllowed, isCategoryAccepted, isOursCMPLoaded, isTrackingAllowed, onConsentReady, waitForOursCMP, } from './consent';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,YAAY,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC/E,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,QAAQ,CAAC;AACtD,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,WAAW,EACX,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,EAChB,yCAAyC,GAC1C,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,QAAQ,CAAC;AACtD,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,WAAW,EACX,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,EAChB,yCAAyC,GAC1C,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { createBrightlineAnalyticsAdapter } from './adapters/BrightlineAnalyticsAdapter';
2
- export { GTMScript, NavigationEvents, PrivacyFooterLinks } from './components';
2
+ export { AhoyTracking, ClarityScript, NavigationEvents, PrivacyFooterLinks, TrustCommanderScript, } from './components';
3
3
  export { getAcceptedCategories, isAdvertisingAllowed, isCategoryAccepted, isOursCMPLoaded, isTrackingAllowed, onConsentReady, waitForOursCMP, } from './consent';
4
4
  export { BrightlineConfigProvider, useBrightlineConfig } from './context';
5
5
  export { initializeBrightlineTracking } from './init';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAMzF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQ/E,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,QAAQ,CAAC;AAMtD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,WAAW,EACX,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,EAChB,yCAAyC,GAC1C,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAGzF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAQtB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,QAAQ,CAAC;AAMtD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,WAAW,EACX,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,EAChB,yCAAyC,GAC1C,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../src/tracking/segment.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAyDxD,wBAAsB,eAAe,CACnC,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,eAAe,EAC9D,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,KAAK,EAAE,OAAO,GAAG,IAAI,EACrB,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,OAAO,EACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,eAAe,EACrE,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE,CAAC,GACP,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,eAAe,EAC/D,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE,CAAC,EACR,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,eAAe,EAC9D,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,IAAI,CAAC,CAcf"}
1
+ {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../src/tracking/segment.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AA4CxD,wBAAsB,eAAe,CACnC,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,eAAe,EAC9D,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,KAAK,EAAE,OAAO,GAAG,IAAI,EACrB,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,OAAO,EACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,eAAe,EACrE,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE,CAAC,GACP,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,eAAe,EAC/D,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE,CAAC,EACR,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,eAAe,EAC9D,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,IAAI,CAAC,CAcf"}
@@ -1,7 +1,5 @@
1
1
  import { AnalyticsBrowser } from '@segment/analytics-next';
2
2
  import { isCategoryAccepted, onConsentReady } from '../consent';
3
- import { getFbcValue } from './fbcTracking';
4
- import { pushFormSubmitToDataLayer } from './gtm';
5
3
  import { buildLandingPageProperties } from './landingPageProperties';
6
4
  let analytics = null;
7
5
  let consentListenerAttached = false;
@@ -21,16 +19,6 @@ function createAnalytics(config) {
21
19
  if (!writeKey) {
22
20
  return null;
23
21
  }
24
- if (window.dataLayer) {
25
- window.dataLayer.push({
26
- event: 'clear_data_layer',
27
- transaction_id: '',
28
- tracking_event_name: '',
29
- conversion_id: '',
30
- conversion_label: '',
31
- fbclid: '',
32
- });
33
- }
34
22
  return AnalyticsBrowser.load({ writeKey }, { initialPageview: false });
35
23
  }
36
24
  function ensureConsentListener(config) {
@@ -82,16 +70,6 @@ export async function reportFormSubmit(config, formName, sectionLabel, optIn, tr
82
70
  };
83
71
  await analytics.track('FormSubmit', properties);
84
72
  }
85
- pushFormSubmitToDataLayer({
86
- formName,
87
- data,
88
- trackingEventName,
89
- conversionId,
90
- conversionLabel,
91
- sectionLabel,
92
- optIn,
93
- partial,
94
- });
95
73
  }
96
74
  export async function reportTrackingEventName(config, sectionLabel, trackingEventName, data) {
97
75
  ensureConsentListener(config);
@@ -127,25 +105,6 @@ export async function reportButtonClick(config, sectionLabel, trackingEventName,
127
105
  }
128
106
  await analytics.track('ButtonClick', properties);
129
107
  }
130
- if (typeof window !== 'undefined' && window.dataLayer && isCategoryAccepted('analytics')) {
131
- const fbclid = getFbcValue();
132
- window.dataLayer.push({
133
- event: 'button_click',
134
- tracking_event_name: trackingEventName || '',
135
- conversion_id: conversionId || '',
136
- conversion_label: conversionLabel || '',
137
- section_label: sectionLabel || undefined,
138
- fbclid: fbclid ?? undefined,
139
- });
140
- window.dataLayer.push({
141
- event: 'clear_data_layer',
142
- tracking_event_name: '',
143
- conversion_id: '',
144
- conversion_label: '',
145
- section_label: undefined,
146
- fbclid: undefined,
147
- });
148
- }
149
108
  }
150
109
  export async function trackWithSegment(config, eventName, data) {
151
110
  ensureConsentListener(config);
@@ -1 +1 @@
1
- {"version":3,"file":"segment.js","sourceRoot":"","sources":["../../src/tracking/segment.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAErE,IAAI,SAAS,GAAoD,IAAI,CAAC;AACtE,IAAI,uBAAuB,GAAG,KAAK,CAAC;AAEpC,SAAS,WAAW,CAAC,MAA0C;IAC7D,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,MAAM,EAAE,eAAe,CAAC;AACjC,CAAC;AAED,SAAS,eAAe,CACtB,MAA0C;IAE1C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,EAAE,kBAAkB;YACzB,cAAc,EAAE,EAAE;YAClB,mBAAmB,EAAE,EAAE;YACvB,aAAa,EAAE,EAAE;YACjB,gBAAgB,EAAE,EAAE;YACpB,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;IACL,CAAC;IAED,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA0C;IACvE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,uBAAuB,EAAE,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,uBAAuB,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,CAAC,UAAU,EAAE,EAAE;QAC5B,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACnD,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAA0C,EAC1C,IAAY;IAEZ,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG;YACjB,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC;YACvC,IAAI;YACJ,GAAG,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;SAC/D,CAAC;QACF,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAA0C,EAC1C,QAAgB,EAChB,YAAuC,EACvC,KAAqB,EACrB,iBAA4C,EAC5C,IAAO,EACP,OAAiB,EACjB,YAA4B,EAC5B,eAA+B;IAE/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,YAAY;YAC3B,CAAC,CAAC;gBACE,GAAG,IAAI;gBACP,YAAY;gBACZ,QAAQ;gBACR,OAAO,EAAE,OAAO,IAAI,KAAK;gBACzB,KAAK,EAAE,KAAK,IAAI,KAAK;aACtB;YACH,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,UAAU,GAAG;YACjB,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC;YACvC,iBAAiB,EAAE,iBAAiB,IAAI,SAAS;YACjD,YAAY,EAAE,YAAY,IAAI,SAAS;YACvC,eAAe,EAAE,eAAe,IAAI,SAAS;YAC7C,GAAG,QAAQ;SACZ,CAAC;QAEF,MAAM,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,yBAAyB,CAAC;QACxB,QAAQ;QACR,IAAI;QACJ,iBAAiB;QACjB,YAAY;QACZ,eAAe;QACf,YAAY;QACZ,KAAK;QACL,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA0C,EAC1C,YAAuC,EACvC,iBAA4C,EAC5C,IAAQ;IAER,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,IAAI,iBAAiB,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG;YACjB,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC;YACvC,iBAAiB;YACjB,YAAY,EAAE,YAAY,IAAI,SAAS;YACvC,GAAG,IAAI;SACR,CAAC;QACF,MAAM,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAA0C,EAC1C,YAAuC,EACvC,iBAA4C,EAC5C,IAAQ,EACR,YAA4B,EAC5B,eAA+B;IAE/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG;YACjB,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC;YACvC,iBAAiB,EAAE,iBAAiB,IAAI,SAAS;YACjD,YAAY,EAAE,YAAY,IAAI,SAAS;YACvC,YAAY,EAAE,YAAY,IAAI,SAAS;YACvC,eAAe,EAAE,eAAe,IAAI,SAAS;YAC7C,GAAG,IAAI;SACR,CAAC;QAEF,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QACzF,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;QAE7B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,EAAE,cAAc;YACrB,mBAAmB,EAAE,iBAAiB,IAAI,EAAE;YAC5C,aAAa,EAAE,YAAY,IAAI,EAAE;YACjC,gBAAgB,EAAE,eAAe,IAAI,EAAE;YACvC,aAAa,EAAE,YAAY,IAAI,SAAS;YACxC,MAAM,EAAE,MAAM,IAAI,SAAS;SAC5B,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,EAAE,kBAAkB;YACzB,mBAAmB,EAAE,EAAE;YACvB,aAAa,EAAE,EAAE;YACjB,gBAAgB,EAAE,EAAE;YACpB,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAA0C,EAC1C,SAAiB,EACjB,IAAO;IAEP,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG;YACjB,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC;YACvC,GAAG,IAAI;SACR,CAAC;QACF,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"segment.js","sourceRoot":"","sources":["../../src/tracking/segment.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAErE,IAAI,SAAS,GAAoD,IAAI,CAAC;AACtE,IAAI,uBAAuB,GAAG,KAAK,CAAC;AAEpC,SAAS,WAAW,CAAC,MAA0C;IAC7D,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,MAAM,EAAE,eAAe,CAAC;AACjC,CAAC;AAED,SAAS,eAAe,CACtB,MAA0C;IAE1C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA0C;IACvE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,uBAAuB,EAAE,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,uBAAuB,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,CAAC,UAAU,EAAE,EAAE;QAC5B,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACnD,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAA0C,EAC1C,IAAY;IAEZ,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG;YACjB,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC;YACvC,IAAI;YACJ,GAAG,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;SAC/D,CAAC;QACF,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAA0C,EAC1C,QAAgB,EAChB,YAAuC,EACvC,KAAqB,EACrB,iBAA4C,EAC5C,IAAO,EACP,OAAiB,EACjB,YAA4B,EAC5B,eAA+B;IAE/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,YAAY;YAC3B,CAAC,CAAC;gBACE,GAAG,IAAI;gBACP,YAAY;gBACZ,QAAQ;gBACR,OAAO,EAAE,OAAO,IAAI,KAAK;gBACzB,KAAK,EAAE,KAAK,IAAI,KAAK;aACtB;YACH,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,UAAU,GAAG;YACjB,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC;YACvC,iBAAiB,EAAE,iBAAiB,IAAI,SAAS;YACjD,YAAY,EAAE,YAAY,IAAI,SAAS;YACvC,eAAe,EAAE,eAAe,IAAI,SAAS;YAC7C,GAAG,QAAQ;SACZ,CAAC;QAEF,MAAM,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA0C,EAC1C,YAAuC,EACvC,iBAA4C,EAC5C,IAAQ;IAER,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,IAAI,iBAAiB,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG;YACjB,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC;YACvC,iBAAiB;YACjB,YAAY,EAAE,YAAY,IAAI,SAAS;YACvC,GAAG,IAAI;SACR,CAAC;QACF,MAAM,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAA0C,EAC1C,YAAuC,EACvC,iBAA4C,EAC5C,IAAQ,EACR,YAA4B,EAC5B,eAA+B;IAE/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG;YACjB,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC;YACvC,iBAAiB,EAAE,iBAAiB,IAAI,SAAS;YACjD,YAAY,EAAE,YAAY,IAAI,SAAS;YACvC,YAAY,EAAE,YAAY,IAAI,SAAS;YACvC,eAAe,EAAE,eAAe,IAAI,SAAS;YAC7C,GAAG,IAAI;SACR,CAAC;QAEF,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAA0C,EAC1C,SAAiB,EACjB,IAAO;IAEP,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG;YACjB,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC;YACvC,GAAG,IAAI;SACR,CAAC;QACF,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/brightline-shared",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "description": "Shared components and logic for Brightline and Brightlife Kids",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,13 +26,16 @@
26
26
  "react-dom": "^19.2.0"
27
27
  },
28
28
  "dependencies": {
29
+ "@microsoft/clarity": "^1.0.2",
29
30
  "@oursprivacy/cdp-sdk": "^1.0.1",
30
31
  "@segment/analytics-next": "^1.81.1",
31
- "@se-studio/core-data-types": "1.0.60",
32
- "@se-studio/core-ui": "1.0.60"
32
+ "ahoy.js": "^0.4.4",
33
+ "@se-studio/core-data-types": "1.0.61",
34
+ "@se-studio/core-ui": "1.0.61"
33
35
  },
34
36
  "devDependencies": {
35
37
  "@biomejs/biome": "^2.3.14",
38
+ "@types/ahoy.js": "^0.4.2",
36
39
  "@types/node": "^22.19.8",
37
40
  "@types/react": "^19.2.11",
38
41
  "@types/react-dom": "^19.2.3",
@@ -1,5 +0,0 @@
1
- export interface GTMScriptProps {
2
- containerId?: string;
3
- }
4
- export declare function GTMScript({ containerId }: GTMScriptProps): React.ReactNode;
5
- //# sourceMappingURL=GTMScript.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GTMScript.d.ts","sourceRoot":"","sources":["../../src/components/GTMScript.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAQD,wBAAgB,SAAS,CAAC,EAAE,WAAW,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,SAAS,CA6C1E"}
@@ -1,37 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import Script from 'next/script';
4
- import { useEffect, useState } from 'react';
5
- import { isCategoryAccepted, onConsentReady } from '../consent';
6
- export function GTMScript({ containerId }) {
7
- const [consentGranted, setConsentGranted] = useState(() => isCategoryAccepted('analytics') || isCategoryAccepted('advertising'));
8
- useEffect(() => {
9
- const updateDataLayer = (state) => {
10
- if (typeof window !== 'undefined') {
11
- window.dataLayer = window.dataLayer || [];
12
- window.dataLayer.push({
13
- event: 'consent_update',
14
- consent_granted: state,
15
- });
16
- }
17
- };
18
- updateDataLayer(consentGranted);
19
- const unsubscribe = onConsentReady((categories) => {
20
- const isAllowed = categories.includes('analytics') || categories.includes('advertising');
21
- setConsentGranted(isAllowed);
22
- updateDataLayer(isAllowed);
23
- });
24
- return unsubscribe;
25
- }, [consentGranted]);
26
- if (!consentGranted || !containerId) {
27
- return null;
28
- }
29
- return (_jsx(Script, { id: "gtm-script", strategy: "afterInteractive", dangerouslySetInnerHTML: {
30
- __html: `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
31
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
32
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
33
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
34
- })(window,document,'script','dataLayer','${containerId}');`,
35
- } }));
36
- }
37
- //# sourceMappingURL=GTMScript.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GTMScript.js","sourceRoot":"","sources":["../../src/components/GTMScript.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAYhE,MAAM,UAAU,SAAS,CAAC,EAAE,WAAW,EAAkB;IACvD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAClD,GAAG,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAC3E,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,eAAe,GAAG,CAAC,KAAc,EAAE,EAAE;YACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;gBAC1C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;oBACpB,KAAK,EAAE,gBAAgB;oBACvB,eAAe,EAAE,KAAK;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,eAAe,CAAC,cAAc,CAAC,CAAC;QAEhC,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,UAAU,EAAE,EAAE;YAChD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACzF,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC7B,eAAe,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,MAAM,IACL,EAAE,EAAC,YAAY,EACf,QAAQ,EAAC,kBAAkB,EAE3B,uBAAuB,EAAE;YACvB,MAAM,EAAE;;;;2CAI2B,WAAW,KAAK;SACpD,GACD,CACH,CAAC;AACJ,CAAC"}
@@ -1,13 +0,0 @@
1
- interface FormSubmitGtmData {
2
- formName: string;
3
- data: Record<string, unknown>;
4
- trackingEventName?: string | null;
5
- conversionId?: string | null;
6
- conversionLabel?: string | null;
7
- sectionLabel?: string | null;
8
- optIn?: boolean | null;
9
- partial?: boolean;
10
- }
11
- export declare function pushFormSubmitToDataLayer({ formName, data, trackingEventName, conversionId, conversionLabel, sectionLabel, optIn, partial, }: FormSubmitGtmData): void;
12
- export {};
13
- //# sourceMappingURL=gtm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gtm.d.ts","sourceRoot":"","sources":["../../src/tracking/gtm.ts"],"names":[],"mappings":"AAwCA,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,EACR,IAAI,EACJ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,KAAK,EACL,OAAe,GAChB,EAAE,iBAAiB,GAAG,IAAI,CAiC1B"}
@@ -1,53 +0,0 @@
1
- import { isCategoryAccepted } from '../consent';
2
- import { getFbcValue } from './fbcTracking';
3
- function createFormDataHash(formName, data, conversionId, conversionLabel) {
4
- const sortedData = Object.keys(data)
5
- .sort()
6
- .reduce((result, key) => {
7
- result[key] = data[key];
8
- return result;
9
- }, {});
10
- const hashInput = JSON.stringify({
11
- formName,
12
- data: sortedData,
13
- conversionId: conversionId || '',
14
- conversionLabel: conversionLabel || '',
15
- });
16
- let hash = 5381;
17
- for (let i = 0; i < hashInput.length; i++) {
18
- hash = (hash * 33) ^ hashInput.charCodeAt(i);
19
- }
20
- return Math.abs(hash).toString(36);
21
- }
22
- export function pushFormSubmitToDataLayer({ formName, data, trackingEventName, conversionId, conversionLabel, sectionLabel, optIn, partial = false, }) {
23
- if (typeof window === 'undefined' || !window.dataLayer || !isCategoryAccepted('analytics')) {
24
- return;
25
- }
26
- const transactionId = createFormDataHash(formName, data, conversionId, conversionLabel);
27
- const fbclid = getFbcValue();
28
- window.dataLayer.push({
29
- event: 'form_submit',
30
- transaction_id: transactionId,
31
- form_name: formName,
32
- tracking_event_name: trackingEventName || '',
33
- conversion_id: conversionId || '',
34
- conversion_label: conversionLabel || '',
35
- section_label: sectionLabel || undefined,
36
- opt_in: optIn ?? false,
37
- partial,
38
- fbclid: fbclid ?? undefined,
39
- });
40
- window.dataLayer.push({
41
- event: 'clear_data_layer',
42
- transaction_id: '',
43
- form_name: undefined,
44
- tracking_event_name: '',
45
- conversion_id: '',
46
- conversion_label: '',
47
- section_label: undefined,
48
- opt_in: undefined,
49
- partial: undefined,
50
- fbclid: undefined,
51
- });
52
- }
53
- //# sourceMappingURL=gtm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gtm.js","sourceRoot":"","sources":["../../src/tracking/gtm.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,SAAS,kBAAkB,CACzB,QAAgB,EAChB,IAA6B,EAC7B,YAA4B,EAC5B,eAA+B;IAE/B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACjC,IAAI,EAAE;SACN,MAAM,CACL,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACd,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,EAA6B,CAC9B,CAAC;IAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,QAAQ;QACR,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,YAAY,IAAI,EAAE;QAChC,eAAe,EAAE,eAAe,IAAI,EAAE;KACvC,CAAC,CAAC;IAEH,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAgBD,MAAM,UAAU,yBAAyB,CAAC,EACxC,QAAQ,EACR,IAAI,EACJ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,KAAK,EACL,OAAO,GAAG,KAAK,GACG;IAClB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAE7B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QACpB,KAAK,EAAE,aAAa;QACpB,cAAc,EAAE,aAAa;QAC7B,SAAS,EAAE,QAAQ;QACnB,mBAAmB,EAAE,iBAAiB,IAAI,EAAE;QAC5C,aAAa,EAAE,YAAY,IAAI,EAAE;QACjC,gBAAgB,EAAE,eAAe,IAAI,EAAE;QACvC,aAAa,EAAE,YAAY,IAAI,SAAS;QACxC,MAAM,EAAE,KAAK,IAAI,KAAK;QACtB,OAAO;QACP,MAAM,EAAE,MAAM,IAAI,SAAS;KAC5B,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QACpB,KAAK,EAAE,kBAAkB;QACzB,cAAc,EAAE,EAAE;QAClB,SAAS,EAAE,SAAS;QACpB,mBAAmB,EAAE,EAAE;QACvB,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,EAAE;QACpB,aAAa,EAAE,SAAS;QACxB,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC"}