@admin-layout/tailwind-design-pro 10.1.1-alpha.15 → 10.1.1-alpha.16

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,8 @@
1
+ import React from 'react';
2
+ interface DeepLinkWaitingPageProps {
3
+ redirectDelay?: number;
4
+ googleAnalyticsId?: string;
5
+ }
6
+ declare const DeepLinkWaitingPage: React.FC<DeepLinkWaitingPageProps>;
7
+ export default DeepLinkWaitingPage;
8
+ //# sourceMappingURL=DeepLinkWaitingPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepLinkWaitingPage.d.ts","sourceRoot":"","sources":["../../../src/components/DeepLinkWaitingPage/DeepLinkWaitingPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,UAAU,wBAAwB;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA0K3D,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,146 @@
1
+ import {jsx,jsxs}from'react/jsx-runtime';import {useState,useEffect}from'react';import {useSearchParams,useParams}from'react-router-dom';import {initGA,trackPageView,trackEvent}from'../../utils/analytics.js';import {config}from'../../config/env-config.js';import {EVENT_ACTIONS,EVENT_CATEGORIES}from'../../config/analytics-config.js';const DeepLinkWaitingPage = ({
2
+ redirectDelay = 5,
3
+ googleAnalyticsId = config.GOOGLE_ANALYTICS_ID
4
+ }) => {
5
+ const [searchParams] = useSearchParams();
6
+ const {
7
+ propertyId
8
+ } = useParams();
9
+ const [countdown, setCountdown] = useState(redirectDelay);
10
+ const [redirectUrl, setRedirectUrl] = useState('');
11
+ useEffect(() => {
12
+ // Initialize Google Analytics if enabled
13
+ {
14
+ initGA(googleAnalyticsId);
15
+ }
16
+ // Get the redirect URL from URL parameters
17
+ const url = searchParams.get('redirectUrl');
18
+ if (url) {
19
+ setRedirectUrl(url);
20
+ }
21
+ // Track page view if enabled
22
+ {
23
+ trackPageView(window.location.pathname, `Deep Link Waiting Page - Property: ${propertyId || 'Unknown'}`);
24
+ }
25
+ // Start countdown
26
+ const timer = setInterval(() => {
27
+ setCountdown(prev => {
28
+ if (prev <= 1) {
29
+ clearInterval(timer);
30
+ // Track auto-redirect event if enabled
31
+ {
32
+ trackEvent(EVENT_CATEGORIES.REDIRECTION, EVENT_ACTIONS.AUTO_REDIRECT, `To: ${url || 'Unknown'}`);
33
+ }
34
+ // Redirect after countdown finishes
35
+ window.location.href = url || '';
36
+ return 0;
37
+ }
38
+ return prev - 1;
39
+ });
40
+ }, 1000);
41
+ return () => clearInterval(timer);
42
+ }, [searchParams, redirectDelay, propertyId, googleAnalyticsId]);
43
+ const handleManualRedirect = () => {
44
+ if (redirectUrl) {
45
+ // Track manual click event if enabled
46
+ {
47
+ trackEvent(EVENT_CATEGORIES.REDIRECTION, EVENT_ACTIONS.MANUAL_CLICK, `To: ${redirectUrl}`, countdown);
48
+ }
49
+ window.location.href = redirectUrl;
50
+ }
51
+ };
52
+ return jsx("div", {
53
+ className: "flex flex-col items-center justify-center min-h-screen bg-gray-50 p-4",
54
+ children: jsxs("div", {
55
+ className: "max-w-3xl w-full bg-white rounded-lg shadow-lg p-8 text-center",
56
+ children: [jsx("h1", {
57
+ className: "text-2xl font-bold mb-6",
58
+ children: "Thank you, almost there..."
59
+ }), jsxs("div", {
60
+ className: "flex justify-center items-center space-x-8 mb-10",
61
+ children: [jsxs("div", {
62
+ className: "text-center",
63
+ children: [jsx("img", {
64
+ src: "https://pbs.twimg.com/profile_images/1687470682165112833/egFUxwF-_400x400.jpg",
65
+ alt: "Our Logo",
66
+ className: "w-32 h-auto mb-2"
67
+ }), jsx("p", {
68
+ children: "You've found your property"
69
+ })]
70
+ }), jsxs("div", {
71
+ className: "flex items-center",
72
+ children: [jsx("div", {
73
+ className: "w-12 h-12 bg-blue-500 rounded-full flex items-center justify-center text-white",
74
+ children: jsx("svg", {
75
+ xmlns: "http://www.w3.org/2000/svg",
76
+ className: "h-6 w-6",
77
+ fill: "none",
78
+ viewBox: "0 0 24 24",
79
+ stroke: "currentColor",
80
+ children: jsx("path", {
81
+ strokeLinecap: "round",
82
+ strokeLinejoin: "round",
83
+ strokeWidth: 2,
84
+ d: "M14 5l7 7m0 0l-7 7m7-7H3"
85
+ })
86
+ })
87
+ }), jsx("div", {
88
+ className: "w-16 h-2 bg-gray-200",
89
+ children: jsx("div", {
90
+ className: "h-full bg-blue-500",
91
+ style: {
92
+ width: `${countdown / redirectDelay * 100}%`
93
+ }
94
+ })
95
+ }), jsx("div", {
96
+ className: "w-12 h-12 bg-gray-200 rounded-full flex items-center justify-center text-gray-500",
97
+ children: jsx("svg", {
98
+ xmlns: "http://www.w3.org/2000/svg",
99
+ className: "h-6 w-6",
100
+ fill: "none",
101
+ viewBox: "0 0 24 24",
102
+ stroke: "currentColor",
103
+ children: jsx("path", {
104
+ strokeLinecap: "round",
105
+ strokeLinejoin: "round",
106
+ strokeWidth: 2,
107
+ d: "M14 5l7 7m0 0l-7 7m7-7H3"
108
+ })
109
+ })
110
+ })]
111
+ }), jsxs("div", {
112
+ className: "text-center",
113
+ children: [jsx("img", {
114
+ src: searchParams.get('partnerLogo') || '/images/partner-logo.png',
115
+ alt: "Partner Logo",
116
+ className: "w-32 h-auto mb-2"
117
+ }), jsxs("p", {
118
+ children: ["Now complete your booking with", jsx("br", {}), "the property provider ", searchParams.get('partnerName')]
119
+ })]
120
+ })]
121
+ }), jsxs("p", {
122
+ className: "mb-4",
123
+ children: ["You will be redirected in ", jsx("span", {
124
+ className: "font-bold",
125
+ children: countdown
126
+ }), " seconds"]
127
+ }), jsx("button", {
128
+ onClick: handleManualRedirect,
129
+ className: "px-6 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 transition-colors",
130
+ children: "Continue Now"
131
+ }), jsxs("p", {
132
+ className: "mt-8 text-sm text-gray-500",
133
+ children: ["If you are not redirected to ", searchParams.get('partnerName') || 'the provider', " in a few seconds, please", ' ', jsx("a", {
134
+ href: redirectUrl,
135
+ className: "text-blue-600 hover:underline",
136
+ onClick: () => {
137
+ {
138
+ trackEvent(EVENT_CATEGORIES.REDIRECTION, EVENT_ACTIONS.LINK_CLICK, `To: ${redirectUrl}`, countdown);
139
+ }
140
+ },
141
+ children: "click here"
142
+ }), "."]
143
+ })]
144
+ })
145
+ });
146
+ };export{DeepLinkWaitingPage as default};//# sourceMappingURL=DeepLinkWaitingPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepLinkWaitingPage.js","sources":["../../../src/components/DeepLinkWaitingPage/DeepLinkWaitingPage.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"8UAUA,MAAM,mBAAmB,GAAuC,CAAC;AAI7D,EAAA,aAAmB,GAAA,CAAA;AACnB,EAAA,iBAAkB,GAAA,MAAK,CAAA;MACjB;QACA,CAAA,YAAY,CAAA,GAAgB,iBAAI;QAE7B;;AAEL,GAAA,GAAA,SAAoB,EAAA;kBACV,EAAkB,YAAA,CAAA,GAAA,QAAE,CAAA,aAAA,CAAA;QAC9B,CAAC,WAAA,EAAA,cAAA,CAAA,GAAA,QAAA,CAAA,EAAA,CAAA;WAE0C,CAAA,MAAA;;IAEjC;YACN,CAAc,iBAAI,CAAC;;;UAInB,GAAA,GAAA,YAAgB,CAAC,GAAA,CAAA,aAAW,CAAA;AAC5B,IAAA,IAAA,GAAA,EAAA;oBACH,CAAA,GAAA,CAAA;;AAGD;AACI,IAAsB;AAClB,MAAA,aAAA,CAAI,MAAI,CAAA,QAAQ,CAAA,QAAA,EAAA,CAAA,mCAAA,EAAA,UAAA,IAAA,SAAA,CAAA,CAAA,CAAA;;;6BAGR,CAAA,MAAA;AACA,MAAA,YAAA,CAAA,IAAA,IAAA;oBAKJ,CAAC,EAAA;uBACmC,CAAA,KAAA,CAAA;;AAEpC,UAAS;sBACZ,CAAA,gBAAA,CAAA,WAAA,EAAA,aAAA,CAAA,aAAA,EAAA,CAAA,IAAA,EAAA,GAAA,IAAA,SAAA,CAAA,CAAA,CAAA;;AAEL;UACH,MAAO,CAAC,QAAA,CAAA,IAAA,GAAA,GAAA,IAAA,EAAA;AAET,UAAA,QAAU;;QAGR,OAAA,IAAA,GAAA,CAAA;QACF;YACI;iBACI,aAAA,CAAA,KAAiB,CAAA;AACjB,GAAA,EAAA,CAAA,YAAA,EAAA,aACI,EAAA,UAAiB,EAAA,iBACJ,CAAA,CAAA;4BAIpB,GAAA,MAAA;AACD,IAAA,IAAA,WAAO,EAAQ;;AAEvB,MAAE;AAEF,QAAA,UACI,CAAA,gBAAc,CAAA,WAAwE,EAAA,aAAA,CAAA,YAAA,EAAA,CAAA,IAAA,EAAA,WAAA,CAAA,CAAA,EAAA,SAAA,CAAA;;AAwF9D,MAAA,MAAA,CAAA,QAAA,CAAA,IAAA,GAAA,WAAA;;AAOR,GAAA;AASxB,EAAE,OAAAA,GAAA,CAAA,KAAA,EAAA;AAEF,IAAA,SAAA,EAAe,uEAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyCard.d.ts","sourceRoot":"","sources":["../../../src/components/UI/PropertyCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAezE,UAAU,aAAa;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,iBAAiB,GAAG;IACrB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;CACtB,CAAC;AAgEF,eAAO,MAAM,YAAY,GAAI,sHAW1B,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,4CA0W1D,CAAC"}
1
+ {"version":3,"file":"PropertyCard.d.ts","sourceRoot":"","sources":["../../../src/components/UI/PropertyCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAezE,UAAU,aAAa;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,iBAAiB,GAAG;IACrB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;CACtB,CAAC;AAgFF,eAAO,MAAM,YAAY,GAAI,sHAW1B,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,4CA0W1D,CAAC"}
@@ -1,12 +1,17 @@
1
1
  import {jsx,Fragment,jsxs}from'react/jsx-runtime';import {useMemo,useState,useEffect,useCallback}from'react';import {BsHeart}from'@react-icons/all-files/bs/BsHeart.js';import {BsStarFill}from'@react-icons/all-files/bs/BsStarFill.js';import {FaUserAlt}from'@react-icons/all-files/fa/FaUserAlt.js';import {useTranslation}from'react-i18next';import {WithAuthentication}from'@adminide-stack/user-auth0-browser/lib/index.component.js';import {Splide,SplideSlide}from'@cdmbase/react-splide';import {useLocation}from'@remix-run/react';import {format}from'date-fns';import {startCase}from'lodash-es';import {useTailwindTheme}from'../../hooks/useTailwindTheme.js';import {useGetCurrentLongLat}from'../../hooks/use-get-current-lat-long.js';import {LocationIcon}from'./icons/LocationIcon.js';import {renderDynamicIcon}from'../../helpers/DynamicIcon.js';import {config}from'../../config/env-config.js';const convertHotelName = name => {
2
2
  return name.toLowerCase().replace(/[^a-z0-9\s-]/g, '').replace(/[\s-]+/g, '-').replace(/-+/g, '-');
3
3
  };
4
+ const airbnbLogo = 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/69/Airbnb_Logo_B%C3%A9lo.svg/512px-Airbnb_Logo_B%C3%A9lo.svg.png';
5
+ const bookingLogo = 'https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Booking.com_logo.svg/1920px-Booking.com_logo.svg.png';
6
+ const pricelineLogo = 'https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Priceline.com_logo.svg/1920px-Priceline.com_logo.svg.png';
4
7
  const generateHref = (room, from, to, adults, children) => {
5
8
  switch (room.__typename) {
6
9
  case 'AirbnbProperty':
7
- return `https://www.airbnb.com/rooms/${room.id}?check_in=${from}&check_out=${to}&guests=${adults + children || 1}`;
10
+ const airbnbPropertyDeepLink = `/deep-link/property/${room.id}?redirectUrl=${encodeURIComponent(`https://www.airbnb.com/rooms/${room.id}?check_in=${from}&check_out=${to}&guests=${adults + children || 1}`)}&partnerName=${encodeURIComponent('Airbnb.com')}&partnerLogo=${airbnbLogo}`;
11
+ return airbnbPropertyDeepLink;
8
12
  case 'BookingProperty':
9
- return `https://www.booking.com/hotel/${room.address.city.state.country.id}/${convertHotelName(room.name)}.html`;
13
+ const bookingPropertyDeepLink = `/deep-link/property/${room.id}?redirectUrl=${encodeURIComponent(`https://www.booking.com/hotel/${room.address.city.state.country.id}/${convertHotelName(room.name)}.html`)}&partnerName=${encodeURIComponent('Booking.com')}&partnerLogo=${bookingLogo}`;
14
+ return bookingPropertyDeepLink;
10
15
  case 'PricelineProperty':
11
16
  const propertyId = room.metadata?.id_t;
12
17
  const cityId = room?.metadata?.city?.id || '';
@@ -14,7 +19,8 @@ const generateHref = (room, from, to, adults, children) => {
14
19
  const checkOutDate = typeof to === 'string' ? to : format(new Date(to), 'yyyyMMdd');
15
20
  const roomCount = 1;
16
21
  const adultCount = adults;
17
- return `https://www.priceline.com/relax/at/${propertyId}/from/${checkInDate}/to/${checkOutDate}/rooms/${roomCount}/adults/${adultCount}?cityId=${cityId}&cur=USD&psl=${propertyId}`;
22
+ const procelinePropertyDeepLink = `/deep-link/property/${room.id}?redirectUrl=${encodeURIComponent(`https://www.priceline.com/relax/at/${propertyId}/from/${checkInDate}/to/${checkOutDate}/rooms/${roomCount}/adults/${adultCount}?cityId=${cityId}&cur=USD&psl=${propertyId}`)}&partnerName=${encodeURIComponent('Priceline.com')}&partnerLogo=${pricelineLogo}`;
23
+ return procelinePropertyDeepLink;
18
24
  default:
19
25
  return `/property/${room.id}`;
20
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyCard.js","sources":["../../../src/components/UI/PropertyCard.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"PropertyCard.js","sources":["../../../src/components/UI/PropertyCard.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compute.d.ts","sourceRoot":"","sources":["../src/compute.ts"],"names":[],"mappings":"AA0BA,QAAA,MAAM,aAAa,0CAA0C,CAAC;AAG9D,QAAA,MAAM,cAAc,0CAA2C,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"compute.d.ts","sourceRoot":"","sources":["../src/compute.ts"],"names":[],"mappings":"AAqCA,QAAA,MAAM,aAAa,0CAA0C,CAAC;AAG9D,QAAA,MAAM,cAAc,0CAA2C,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
package/lib/compute.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { getFilteredMenus, getFilteredRoutes } from '@common-stack/client-react/lib/utils/filteredRoutes.js';
2
2
  import { config } from './config/env-config.js';
3
+ import { IMenuPosition } from '@common-stack/client-react';
3
4
  const key = 'root-layout';
4
5
  const tailwindDesignProPage = [{
5
6
  key: key,
@@ -30,6 +31,17 @@ const tailwindDesignProPage = [{
30
31
  componentPath: "@admin-layout/tailwind-design-pro/lib/components/UpdateSettingsResource/UpdateSettingsResource.js",
31
32
  hasLoader: true,
32
33
  hasAction: true
34
+ },
35
+ // Add DeepLinkWaitingPage route
36
+ {
37
+ path: `//deep-link/property/:propertyId`,
38
+ key: 'deep-link',
39
+ exact: true,
40
+ hideInMenu: true,
41
+ clientOnly: true,
42
+ position: IMenuPosition.Middle,
43
+ componentPath: "@admin-layout/tailwind-design-pro/lib/components/DeepLinkWaitingPage/DeepLinkWaitingPage.js",
44
+ hasComponent: true
33
45
  }];
34
46
  // get menus
35
47
  getFilteredMenus(tailwindDesignProPage);
@@ -1 +1 @@
1
- {"version":3,"file":"compute.js","sources":["../src/compute.ts"],"sourcesContent":[null],"names":[],"mappings":"oJAEA,MAAM,GAAG,GAAG,aAAa;AAEzB,MAAM,qBAAqB,GAAU,CAAA;AACjC,EAAA,GAAA,EAAA,GAAA;AACI,EAAA,IAAA,EAAA,aAAQ;AACR,EAAA,IAAA,EAAA,MAAM,CAAa,WAAA;QACnB,UAAY;AACZ,EAAA,gBAAgB,EAAA,CAAA,GAAA,CAAA;SACA,KAAA;AAChB,EAAA,SAAA,EAAK,MAAO,OAAA,0CAAA;AACZ,CAAA,EAAA;AACH,EAAA,GAAA,EAAA,0BAAA;AACD,EAAA,aAAA,EAAA,IAAA;AACI,EAAA,IAAA,EAAA,wBAA+B;AAC/B,EAAA,eAAA,EAAA,IAAe;AACf,EAAA,IAAA,EAAA;AACA,EAAA,SAAA,EAAA,MAAA,OAAqB,+DAAA,CAAA;AACrB,EAAA,IAAA,EAAA;AACA,CAAA,CAAA;AACA;AACH,gBAAA,CAAA,qBAAA;;AAGO,MAAA,cAAA,GAAA,iBAAA,CAAA,qBAAA"}
1
+ {"version":3,"file":"compute.js","sources":["../src/compute.ts"],"sourcesContent":[null],"names":[],"mappings":"2MAGA,MAAM,GAAG,GAAG,aAAa;AAEzB,MAAM,qBAAqB,GAAU,CAAA;AACjC,EAAA,GAAA,EAAA,GAAA;AACI,EAAA,IAAA,EAAA,aAAQ;AACR,EAAA,IAAA,EAAA,MAAM,CAAa,WAAA;QACnB,UAAY;AACZ,EAAA,gBAAgB,EAAA,CAAA,GAAA,CAAA;SACA,KAAA;AAChB,EAAA,SAAA,EAAK,MAAO,OAAA,0CAAA;AACZ,CAAA,EAAA;AACH,EAAA,GAAA,EAAA,0BAAA;AACD,EAAA,aAAA,EAAA,IAAA;AACI,EAAA,IAAA,EAAA,wBAA+B;AAC/B,EAAA,eAAA,EAAA,IAAe;AACf,EAAA,IAAA,EAAA;AACA,EAAA,SAAA,EAAA,MAAA,OAAqB,+DAAA,CAAA;AACrB,EAAA,IAAA,EAAA;AACA,CAAA;AACA;AACH;MAC+B,EAAA,CAAA,gCAAA,CAAA;AAChC,EAAA,GAAA,EAAA,WAAA;AACI,EAAA,KAAA,EAAA;AACA,EAAA,YAAgB,IAAA;AAChB,EAAA,UAAA,MAAW;AACX,EAAA,SAAA,EAAA,aAAgB,yDAAA,CAAA;AAChB,EAAA,QAAA,EAAA,aAAgB,CAAA;AAChB,CAAA,CAAA;;AAEH,gBAAA,CAAA,qBAAA;;AAGO,MAAA,cAAA,GAAA,iBAAA,CAAA,qBAAA"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Google Analytics Configuration
3
+ */
4
+ export declare const ANALYTICS_CONFIG: {
5
+ enabled: boolean;
6
+ debug: boolean;
7
+ GA4_MEASUREMENT_ID: string;
8
+ trackEvents: {
9
+ pageViews: boolean;
10
+ clicks: boolean;
11
+ redirections: boolean;
12
+ errors: boolean;
13
+ };
14
+ trackUserProperties: {
15
+ userId: boolean;
16
+ deviceInfo: boolean;
17
+ location: boolean;
18
+ };
19
+ };
20
+ export declare const EVENT_CATEGORIES: {
21
+ REDIRECTION: string;
22
+ USER_INTERACTION: string;
23
+ SYSTEM: string;
24
+ ERROR: string;
25
+ };
26
+ export declare const EVENT_ACTIONS: {
27
+ AUTO_REDIRECT: string;
28
+ MANUAL_CLICK: string;
29
+ LINK_CLICK: string;
30
+ BUTTON_CLICK: string;
31
+ FORM_SUBMIT: string;
32
+ SEARCH: string;
33
+ VIEW_ITEM: string;
34
+ ADD_TO_CART: string;
35
+ REMOVE_FROM_CART: string;
36
+ BEGIN_CHECKOUT: string;
37
+ ADD_PAYMENT_INFO: string;
38
+ PURCHASE: string;
39
+ LOAD: string;
40
+ INIT: string;
41
+ API_ERROR: string;
42
+ CLIENT_ERROR: string;
43
+ };
44
+ export declare const GA4_EVENTS: {
45
+ PAGE_VIEW: string;
46
+ SEARCH: string;
47
+ VIEW_ITEM: string;
48
+ VIEW_ITEM_LIST: string;
49
+ SELECT_ITEM: string;
50
+ ADD_TO_CART: string;
51
+ REMOVE_FROM_CART: string;
52
+ BEGIN_CHECKOUT: string;
53
+ ADD_PAYMENT_INFO: string;
54
+ PURCHASE: string;
55
+ LOGIN: string;
56
+ SIGN_UP: string;
57
+ USER_ENGAGEMENT: string;
58
+ };
59
+ //# sourceMappingURL=analytics-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-config.d.ts","sourceRoot":"","sources":["../../src/config/analytics-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;CAwB5B,CAAC;AAGF,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;CAwBzB,CAAC;AAGF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CActB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import {config}from'./env-config.js';/**
2
+ * Google Analytics Configuration
3
+ */
4
+ // Configuration for analytics tracking
5
+ const ANALYTICS_CONFIG = {
6
+ // Enable or disable analytics tracking
7
+ enabled: true,
8
+ // Enable or disable debugging messages in console
9
+ debug: process.env.NODE_ENV === 'development',
10
+ // GA4 Measurement ID
11
+ GA4_MEASUREMENT_ID: config.GOOGLE_ANALYTICS_ID,
12
+ // Configure what events to track
13
+ trackEvents: {
14
+ pageViews: true,
15
+ clicks: true,
16
+ redirections: true,
17
+ errors: true
18
+ },
19
+ // Configure what user properties to track
20
+ trackUserProperties: {
21
+ userId: true,
22
+ deviceInfo: true,
23
+ location: false // Be careful with privacy regulations like GDPR
24
+ }
25
+ };
26
+ // Analytics event categories
27
+ const EVENT_CATEGORIES = {
28
+ REDIRECTION: 'Redirection'};
29
+ // Analytics event actions
30
+ const EVENT_ACTIONS = {
31
+ // Redirections
32
+ AUTO_REDIRECT: 'Auto Redirect',
33
+ MANUAL_CLICK: 'Manual Click',
34
+ LINK_CLICK: 'Link Click'};export{ANALYTICS_CONFIG,EVENT_ACTIONS,EVENT_CATEGORIES};//# sourceMappingURL=analytics-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-config.js","sources":["../../src/config/analytics-config.ts"],"sourcesContent":[null],"names":[],"mappings":"qCAAA;;AAEG;AAIH;AACa,MAAA,gBAAgB,GAAG;;AAE5B,EAAA,OAAA,EAAO,IAAM;;AAGb,EAAA,KAAA,EAAK,OAAS,CAAA,YAAK,kBAA0B;;oBAG3B,EAAA,MAAQ,CAAA,mBAAoB;;AAG9C,EAAA,WAAA,EAAW;AACP,IAAA,SAAA,EAAA,IAAW;AACX,IAAA,MAAA,EAAA,IAAQ;AACR,IAAA,YAAA,EAAA,IAAc;AACd,IAAA,MAAA,EAAA;AACH,GAAA;;AAGD,EAAA,mBAAA,EAAmB;AACf,IAAA,MAAA,EAAA,IAAQ;AACR,IAAA,UAAA,EAAA,IAAY;YACJ,EAAA,KAAO;AAClB;;AAGL;AACa,MAAA,gBAAgB,GAAG;AAC5B,EAAA,WAAA,EAAW;AAMf;AACa,MAAA,aAAa,GAAG;;AAEzB,EAAA,aAAA,EAAa,eAAiB;AAC9B,EAAA,YAAA,EAAY,cAAgB;AAC5B,EAAA,UAAA,EAAU"}
@@ -16,5 +16,6 @@ export declare const config: Readonly<{
16
16
  PRICELINE_API_KEY: string;
17
17
  DEFAULT_COORDINATES: string;
18
18
  ENABLE_SETTING_DRAWER: boolean;
19
+ GOOGLE_ANALYTICS_ID: string;
19
20
  } & import("envalid").CleanedEnvAccessors>;
20
21
  //# sourceMappingURL=env-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env-config.d.ts","sourceRoot":"","sources":["../../src/config/env-config.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;0CAqCjB,CAAC"}
1
+ {"version":3,"file":"env-config.d.ts","sourceRoot":"","sources":["../../src/config/env-config.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;0CAsCjB,CAAC"}
@@ -1,4 +1,4 @@
1
- import {cleanEnv,bool,str,num}from'envalid';import {getEnvironment}from'@common-stack/core';import {SCROLL_THRESHOLD,LAYOUT_SETTINGS}from'./constants.js';const env = getEnvironment();
1
+ import {cleanEnv,str,bool,num}from'envalid';import {getEnvironment}from'@common-stack/core';import {SCROLL_THRESHOLD,LAYOUT_SETTINGS}from'./constants.js';const env = getEnvironment();
2
2
  const defaultScrollThreshold = JSON.stringify({
3
3
  MIN: SCROLL_THRESHOLD.MIN,
4
4
  MAX: SCROLL_THRESHOLD.MAX,
@@ -72,5 +72,8 @@ const config = cleanEnv(env, {
72
72
  ENABLE_SETTING_DRAWER: bool({
73
73
  default: false,
74
74
  desc: 'Enable setting drawer'
75
+ }),
76
+ GOOGLE_ANALYTICS_ID: str({
77
+ default: 'G-L5J3SYZ69C'
75
78
  })
76
79
  });export{config};//# sourceMappingURL=env-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env-config.js","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":[],"mappings":"0JAIA,MAAM,GAAG,GAAG,cAAc,EAAE;AAE5B,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC;KACvC,EAAA,gBAAkB,CAAA,GAAI;KACtB,EAAA,gBAAkB,CAAA,GAAI;MACrB,EAAA,gBAAkB,CAAA,IAAK;SACpB,EAAA,gBAAkB,CAAA;AAC5B,CAAA,CAAC;AAEW,MAAA,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;AAChC,EAAA,WAAA,EAAW,GAAE,CAAA;AACb,IAAA,OAAA,EAAA,aAAA;AACA,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;AACA,EAAA,gCAA4B,EAAI,IAAS,CAAA;AACzC,IAAA,OAAA,EAAA,KAAc;AACd,IAAA,IAAA,EAAA;AAEA,GAAA,CAAA;kBACmB,EAAA,GAAA,CAAA;IACnB,OAAiC,EAAA,sBAAA;AAC7B,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;iBACF,EAAA,GAAA,CAAA;IACF,OAAkC,EAAA,IAAA,CAAA,SAAA,CAAA,eAAK,CAAC;AACpC,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;4BACF,EAAA,GAAA,CAAA;IACF,OAA8B,EAAA,EAAA;QAC1B,EAAO;AACP,GAAA,CAAA;gBACF,EAAA,GAAA,CAAA;IACF,OAA0B,EAAA,EAAA;AACtB,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;qBACF,EAAA,GAAA,CAAA;IACF,OAA6B,EAAA,EAAA;AACzB,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;eACF,EAAA,GAAA,CAAA;IACF,OAAiB,EAAA,SAAA;IACjB,IAAmB,EAAA;AACf,GAAA,CAAA;AACA,EAAA,mBAA+C,EAAA,GAAA,CAAA;WACjD,EAAA;AACF,GAAA,CAAA;AACH,EAAC,iCAAC,EAAA,GAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"env-config.js","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":[],"mappings":"0JAIA,MAAM,GAAG,GAAG,cAAc,EAAE;AAE5B,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC;KACvC,EAAA,gBAAkB,CAAA,GAAI;KACtB,EAAA,gBAAkB,CAAA,GAAI;MACrB,EAAA,gBAAkB,CAAA,IAAK;SACpB,EAAA,gBAAkB,CAAA;AAC5B,CAAA,CAAC;AAEW,MAAA,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;AAChC,EAAA,WAAA,EAAW,GAAE,CAAA;AACb,IAAA,OAAA,EAAA,aAAA;AACA,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;AACA,EAAA,gCAA4B,EAAI,IAAS,CAAA;AACzC,IAAA,OAAA,EAAA,KAAc;AACd,IAAA,IAAA,EAAA;AAEA,GAAA,CAAA;kBACmB,EAAA,GAAA,CAAA;IACnB,OAAiC,EAAA,sBAAA;AAC7B,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;iBACF,EAAA,GAAA,CAAA;IACF,OAAkC,EAAA,IAAA,CAAA,SAAA,CAAA,eAAK,CAAC;AACpC,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;4BACF,EAAA,GAAA,CAAA;IACF,OAA8B,EAAA,EAAA;QAC1B,EAAO;AACP,GAAA,CAAA;gBACF,EAAA,GAAA,CAAA;IACF,OAA0B,EAAA,EAAA;AACtB,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;qBACF,EAAA,GAAA,CAAA;IACF,OAA6B,EAAA,EAAA;AACzB,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;eACF,EAAA,GAAA,CAAA;IACF,OAAiB,EAAA,SAAA;IACjB,IAAmB,EAAA;AACf,GAAA,CAAA;AACA,EAAA,mBAA+C,EAAA,GAAA,CAAA;WACjD,EAAA;AACF,GAAA,CAAA;wCACoC,CAAA;AACvC,IAAE,OAAA,EAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,3 @@
1
+ export * from './env-config';
2
+ export * from './analytics-config';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
package/lib/routes.json CHANGED
@@ -38,5 +38,17 @@
38
38
  "hasLoader": true,
39
39
  "hasAction": true
40
40
  }
41
+ },
42
+ {
43
+ "//deep-link/property/:propertyId": {
44
+ "path": "//deep-link/property/:propertyId",
45
+ "key": "deep-link",
46
+ "exact": true,
47
+ "hideInMenu": true,
48
+ "clientOnly": true,
49
+ "position": "MIDDLE",
50
+ "componentPath": "@admin-layout/tailwind-design-pro/lib/components/DeepLinkWaitingPage/DeepLinkWaitingPage.js",
51
+ "hasComponent": true
52
+ }
41
53
  }
42
54
  ]
@@ -0,0 +1,43 @@
1
+ export interface GA4EventParams {
2
+ page_location?: string;
3
+ page_referrer?: string;
4
+ page_title?: string;
5
+ user_id?: string;
6
+ search_term?: string;
7
+ currency?: string;
8
+ value?: number;
9
+ items?: Array<{
10
+ item_id: string;
11
+ item_name: string;
12
+ item_category?: string;
13
+ price?: number;
14
+ quantity?: number;
15
+ [key: string]: any;
16
+ }>;
17
+ [key: string]: any;
18
+ }
19
+ /**
20
+ * Helper function to format property data for GA4 item tracking
21
+ */
22
+ export declare const formatPropertyForGA4: (property: any) => GA4EventParams["items"][0];
23
+ /**
24
+ * Helper function to create standard GA4 page view event params
25
+ */
26
+ export declare const createPageViewParams: (pageTitle: string, additionalParams?: GA4EventParams) => GA4EventParams;
27
+ /**
28
+ * Helper function to create standard GA4 search event params
29
+ */
30
+ export declare const createSearchParams: (searchTerm: string, additionalParams?: GA4EventParams) => GA4EventParams;
31
+ /**
32
+ * Helper function to track user engagement events
33
+ */
34
+ export declare const trackUserEngagement: (analytics: any, eventName: string, params?: GA4EventParams) => void;
35
+ /**
36
+ * Helper function to track property views
37
+ */
38
+ export declare const trackPropertyView: (analytics: any, property: any) => void;
39
+ /**
40
+ * Helper function to track property searches
41
+ */
42
+ export declare const trackPropertySearch: (analytics: any, searchTerm: string, filters?: Record<string, any>) => void;
43
+ //# sourceMappingURL=analytics-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-utils.d.ts","sourceRoot":"","sources":["../../src/utils/analytics-utils.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAE3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACtB,CAAC,CAAC;IAGH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,GAAG,KAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAU7E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,EAAE,mBAAmB,cAAc,KAAG,cAO3F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,EAAE,mBAAmB,cAAc,KAAG,cAK1F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,GAAG,EAAE,WAAW,MAAM,EAAE,SAAS,cAAc,SAK7F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,GAAG,EAAE,UAAU,GAAG,SAG9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,GAAG,EAAE,YAAY,MAAM,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAIpG,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { GA4EventParams } from './analytics-utils';
2
+ /**
3
+ * Initialize Google Analytics
4
+ * @param {string} measurementId - Google Analytics measurement ID (GA4)
5
+ */
6
+ export declare const initGA: (measurementId: string) => void;
7
+ /**
8
+ * Track a GA4 standard event
9
+ * @param {string} eventName - GA4 event name
10
+ * @param {GA4EventParams} eventParams - Event parameters
11
+ */
12
+ export declare const trackGA4Event: (eventName: string, eventParams?: GA4EventParams) => void;
13
+ /**
14
+ * Check if Google Analytics is initialized
15
+ * @returns {boolean} Whether GA is initialized
16
+ */
17
+ export declare const isGAInitialized: () => boolean;
18
+ /**
19
+ * Track page views
20
+ * @param {string} path - URL path to track
21
+ * @param {string} title - Page title
22
+ */
23
+ export declare const trackPageView: (path: string, title?: string) => void;
24
+ /**
25
+ * Track events
26
+ * @param {string} category - Event category
27
+ * @param {string} action - Event action
28
+ * @param {string} label - Event label (optional)
29
+ * @param {number} value - Event value (optional)
30
+ */
31
+ export declare const trackEvent: (category: string, action: string, label?: string, value?: number) => void;
32
+ /**
33
+ * Track exception events
34
+ * @param {string} description - Error description
35
+ * @param {boolean} fatal - Whether the error was fatal
36
+ */
37
+ export declare const trackException: (description: string, fatal?: boolean) => void;
38
+ /**
39
+ * Track user properties
40
+ * @param {Record<string, string | number | boolean>} properties - User properties to track
41
+ */
42
+ export declare const setUserProperties: (properties: Record<string, string | number | boolean>) => void;
43
+ /**
44
+ * Set user ID for cross-device tracking
45
+ * @param {string} userId - User ID
46
+ */
47
+ export declare const setUserId: (userId: string) => void;
48
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/utils/analytics.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,eAAe,MAAM,KAAG,IAmF9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,EAAE,cAAc,cAAc,KAAG,IAiB/E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,OAElC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,IAsB5D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,EAAE,QAAQ,MAAM,EAAE,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,IA0B7F,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,aAAa,MAAM,EAAE,QAAO,OAAe,KAAG,IAmB5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAAG,IAiBzF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,KAAG,IAsB1C,CAAC"}
@@ -0,0 +1,169 @@
1
+ import ReactGA from'react-ga4';import {ANALYTICS_CONFIG}from'../config/analytics-config.js';let isInitialized = false;
2
+ /**
3
+ * Initialize Google Analytics
4
+ * @param {string} measurementId - Google Analytics measurement ID (GA4)
5
+ */
6
+ const initGA = measurementId => {
7
+ if (!measurementId) {
8
+ console.warn('Google Analytics Measurement ID is missing');
9
+ return;
10
+ }
11
+ if (isInitialized) {
12
+ if (ANALYTICS_CONFIG.debug) {
13
+ console.log('Google Analytics already initialized, skipping');
14
+ }
15
+ return;
16
+ }
17
+ try {
18
+ ReactGA.initialize(measurementId, {
19
+ gaOptions: {
20
+ debug_mode: ANALYTICS_CONFIG.debug,
21
+ send_page_view: false // We'll manually track the first page view
22
+ }
23
+ });
24
+ isInitialized = true;
25
+ if (ANALYTICS_CONFIG.debug) {
26
+ console.log('Google Analytics initialized with ID:', measurementId);
27
+ }
28
+ // Track initial page view
29
+ trackPageView(window.location.pathname, document.title);
30
+ // Set user properties if enabled
31
+ if (ANALYTICS_CONFIG.trackUserProperties.deviceInfo) {
32
+ setDeviceInfo();
33
+ }
34
+ // Listen for analytics events from our XState machines
35
+ window.addEventListener('analytics.event', e => {
36
+ const analyticsEvent = e.detail;
37
+ if (!analyticsEvent || !analyticsEvent.type) return;
38
+ // Process the event based on its type
39
+ switch (analyticsEvent.type) {
40
+ case 'TRACK_EVENT':
41
+ trackEvent(analyticsEvent.params?.event_category || 'User Interaction', analyticsEvent.name, analyticsEvent.params?.event_label, analyticsEvent.params?.value);
42
+ break;
43
+ case 'PAGE_VIEW':
44
+ trackPageView(analyticsEvent.params?.page_path || window.location.pathname, analyticsEvent.page || analyticsEvent.params?.page_title);
45
+ break;
46
+ case 'SEARCH':
47
+ trackGA4Event('search', analyticsEvent.params);
48
+ break;
49
+ case 'VIEW_ITEM':
50
+ trackGA4Event('view_item', analyticsEvent.params);
51
+ break;
52
+ case 'USER_ENGAGEMENT':
53
+ trackGA4Event('user_engagement', analyticsEvent.params);
54
+ break;
55
+ case 'BEGIN_CHECKOUT':
56
+ trackGA4Event('begin_checkout', analyticsEvent.params);
57
+ break;
58
+ case 'ADD_PAYMENT_INFO':
59
+ trackGA4Event('add_payment_info', analyticsEvent.params);
60
+ break;
61
+ case 'PURCHASE':
62
+ trackGA4Event('purchase', analyticsEvent.params);
63
+ break;
64
+ default:
65
+ // For other events, track as a custom event
66
+ if (analyticsEvent.name) {
67
+ trackEvent('Custom', analyticsEvent.name, undefined, undefined);
68
+ }
69
+ }
70
+ });
71
+ } catch (error) {
72
+ console.error('Error initializing Google Analytics:', error);
73
+ }
74
+ };
75
+ /**
76
+ * Track a GA4 standard event
77
+ * @param {string} eventName - GA4 event name
78
+ * @param {GA4EventParams} eventParams - Event parameters
79
+ */
80
+ const trackGA4Event = (eventName, eventParams) => {
81
+ if (!isInitialized) {
82
+ if (ANALYTICS_CONFIG.debug) {
83
+ console.warn(`Attempted to track GA4 event ${eventName} before initialization`);
84
+ }
85
+ return;
86
+ }
87
+ try {
88
+ ReactGA.event(eventName, eventParams);
89
+ if (ANALYTICS_CONFIG.debug) {
90
+ console.log(`GA4 event tracked: ${eventName}`, eventParams);
91
+ }
92
+ } catch (error) {
93
+ console.error(`Error tracking GA4 event ${eventName}:`, error);
94
+ }
95
+ };
96
+ /**
97
+ * Track page views
98
+ * @param {string} path - URL path to track
99
+ * @param {string} title - Page title
100
+ */
101
+ const trackPageView = (path, title) => {
102
+ if (!isInitialized) {
103
+ if (ANALYTICS_CONFIG.debug) {
104
+ console.warn('Attempted to track page view before initialization:', path);
105
+ }
106
+ return;
107
+ }
108
+ try {
109
+ ReactGA.send({
110
+ hitType: 'pageview',
111
+ page: path,
112
+ title,
113
+ location: window.location.href
114
+ });
115
+ if (ANALYTICS_CONFIG.debug) {
116
+ console.log(`Page view tracked: ${path}${title ? ` (${title})` : ''}`);
117
+ }
118
+ } catch (error) {
119
+ console.error('Error tracking page view:', error);
120
+ }
121
+ };
122
+ /**
123
+ * Track events
124
+ * @param {string} category - Event category
125
+ * @param {string} action - Event action
126
+ * @param {string} label - Event label (optional)
127
+ * @param {number} value - Event value (optional)
128
+ */
129
+ const trackEvent = (category, action, label, value) => {
130
+ if (!isInitialized) {
131
+ if (ANALYTICS_CONFIG.debug) {
132
+ console.warn('Attempted to track event before initialization:', category, action);
133
+ }
134
+ return;
135
+ }
136
+ try {
137
+ ReactGA.event({
138
+ category,
139
+ action,
140
+ label,
141
+ value
142
+ });
143
+ if (ANALYTICS_CONFIG.debug) {
144
+ console.log(`Event tracked: ${category} - ${action}${label ? ` - ${label}` : ''}${value !== undefined ? ` (${value})` : ''}`);
145
+ }
146
+ } catch (error) {
147
+ console.error('Error tracking event:', error);
148
+ }
149
+ };
150
+ /**
151
+ * Set device information as user properties
152
+ */
153
+ const setDeviceInfo = () => {
154
+ if (!isInitialized) return;
155
+ try {
156
+ const deviceInfo = {
157
+ screenResolution: `${window.screen.width}x${window.screen.height}`,
158
+ viewportSize: `${window.innerWidth}x${window.innerHeight}`,
159
+ userAgent: navigator.userAgent,
160
+ language: navigator.language
161
+ };
162
+ ReactGA.set(deviceInfo);
163
+ if (ANALYTICS_CONFIG.debug) {
164
+ console.log('Device info set:', deviceInfo);
165
+ }
166
+ } catch (error) {
167
+ console.error('Error setting device info:', error);
168
+ }
169
+ };export{initGA,trackEvent,trackGA4Event,trackPageView};//# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sources":["../../src/utils/analytics.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@admin-layout/tailwind-design-pro",
3
- "version": "10.1.1-alpha.15",
3
+ "version": "10.1.1-alpha.16",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -61,5 +61,5 @@
61
61
  "typescript": {
62
62
  "definition": "lib/index.d.ts"
63
63
  },
64
- "gitHead": "56161aebfaeec7b7896a991426f30da5988443c5"
64
+ "gitHead": "fd4898d38116be427ab4ef1432f8d3d02332b144"
65
65
  }