@carlonicora/nextjs-jsonapi 6.1.0 → 6.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AssistantMessageInterface-S7oyERTT.d.mts → AssistantMessageInterface-0ZQ1EJKO.d.mts} +1 -1
- package/dist/{AssistantMessageInterface-DHJJO_Z_.d.ts → AssistantMessageInterface-CA-hZ5Wj.d.ts} +1 -1
- package/dist/{BlockNoteEditor-SAU3G6H7.js → BlockNoteEditor-CT4XUXPC.js} +19 -19
- package/dist/{BlockNoteEditor-SAU3G6H7.js.map → BlockNoteEditor-CT4XUXPC.js.map} +1 -1
- package/dist/{BlockNoteEditor-FZNU4YQT.mjs → BlockNoteEditor-M6UQRVRK.mjs} +4 -4
- package/dist/{BlockNoteViewer-7BTV7QQA.js → BlockNoteViewer-MFLWF3Y2.js} +3 -3
- package/dist/{BlockNoteViewer-7BTV7QQA.js.map → BlockNoteViewer-MFLWF3Y2.js.map} +1 -1
- package/dist/{BlockNoteViewer-6XDDVTN6.mjs → BlockNoteViewer-XZJ5Y7WN.mjs} +2 -2
- package/dist/{BlogPostInterface-BB_4wcDR.d.mts → BlogPostInterface-BN2mXc46.d.mts} +1 -1
- package/dist/{BlogPostInterface-bWAT1rfR.d.ts → BlogPostInterface-CTGfsR1I.d.ts} +1 -1
- package/dist/{auth.interface-CSzJ1oP1.d.ts → auth.interface-D5606g19.d.ts} +1 -1
- package/dist/{auth.interface-DD4uQv2K.d.mts → auth.interface-tsOuc0Fi.d.mts} +1 -1
- package/dist/billing/index.d.mts +3 -3
- package/dist/billing/index.d.ts +3 -3
- package/dist/billing/index.js +501 -493
- package/dist/billing/index.js.map +1 -1
- package/dist/billing/index.mjs +13 -5
- package/dist/billing/index.mjs.map +1 -1
- package/dist/{chunk-USYZNWKS.mjs → chunk-3FD6Y734.mjs} +74 -15
- package/dist/chunk-3FD6Y734.mjs.map +1 -0
- package/dist/{chunk-F4JB7YAP.js → chunk-DSGP6GC3.js} +8 -8
- package/dist/{chunk-F4JB7YAP.js.map → chunk-DSGP6GC3.js.map} +1 -1
- package/dist/{chunk-GFGKMUPZ.mjs → chunk-O2TEUH5S.mjs} +2 -2
- package/dist/{chunk-MTI2UXDA.js → chunk-QJIDORHM.js} +4 -4
- package/dist/{chunk-MTI2UXDA.js.map → chunk-QJIDORHM.js.map} +1 -1
- package/dist/{chunk-JVJS5RHB.mjs → chunk-RUJCWOJE.mjs} +2 -2
- package/dist/{chunk-U7DR5VDT.mjs → chunk-TIT4CJYQ.mjs} +1233 -1181
- package/dist/chunk-TIT4CJYQ.mjs.map +1 -0
- package/dist/{chunk-TPZS46IM.js → chunk-V4I3XKOM.js} +3 -3
- package/dist/{chunk-TPZS46IM.js.map → chunk-V4I3XKOM.js.map} +1 -1
- package/dist/{chunk-T3YQ47EF.js → chunk-XZCCIKX3.js} +152 -93
- package/dist/chunk-XZCCIKX3.js.map +1 -0
- package/dist/{chunk-IPYXT7MH.js → chunk-Y7JIQNM6.js} +922 -870
- package/dist/chunk-Y7JIQNM6.js.map +1 -0
- package/dist/{chunk-RYZYKG6W.mjs → chunk-ZDUT5JPT.mjs} +2 -2
- package/dist/client/index.d.mts +4 -4
- package/dist/client/index.d.ts +4 -4
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/components/index.d.mts +22 -6
- package/dist/components/index.d.ts +22 -6
- package/dist/components/index.js +10 -4
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +10 -4
- package/dist/contexts/index.d.mts +5 -5
- package/dist/contexts/index.d.ts +5 -5
- package/dist/contexts/index.js +4 -4
- package/dist/contexts/index.mjs +3 -3
- package/dist/core/index.d.mts +23 -13
- package/dist/core/index.d.ts +23 -13
- package/dist/core/index.js +8 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +7 -1
- package/dist/{currency-DrEVd_Xs.d.mts → currency-BhuEoBOn.d.mts} +2 -115
- package/dist/{currency-8ErEC39n.d.ts → currency-CBgZkS0u.d.ts} +2 -115
- package/dist/email-automations/index.js +92 -92
- package/dist/email-automations/index.mjs +3 -3
- package/dist/features/analytics/index.d.mts +11 -3
- package/dist/features/analytics/index.d.ts +11 -3
- package/dist/features/analytics/index.js +129 -127
- package/dist/features/analytics/index.js.map +1 -1
- package/dist/features/analytics/index.mjs +12 -10
- package/dist/features/analytics/index.mjs.map +1 -1
- package/dist/features/analytics/server.js +4 -4
- package/dist/features/analytics/server.mjs +2 -2
- package/dist/features/blog/index.d.mts +4 -4
- package/dist/features/blog/index.d.ts +4 -4
- package/dist/features/blog/index.js +150 -150
- package/dist/features/blog/index.mjs +3 -3
- package/dist/features/blog/server.d.mts +4 -4
- package/dist/features/blog/server.d.ts +4 -4
- package/dist/features/blog/server.js +16 -16
- package/dist/features/blog/server.mjs +1 -1
- package/dist/features/help/index.js +37 -37
- package/dist/features/help/index.mjs +3 -3
- package/dist/features/tokenusage/index.js +127 -127
- package/dist/features/tokenusage/index.mjs +4 -4
- package/dist/index.d.mts +8 -8
- package/dist/index.d.ts +8 -8
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -2
- package/dist/{notification.interface-BB6GPpZY.d.mts → notification.interface-CF5h90U2.d.mts} +1 -1
- package/dist/{notification.interface-CmAGrijJ.d.ts → notification.interface-DQReXAD7.d.ts} +1 -1
- package/dist/{s3.service-Bz_K-tjz.d.ts → s3.service-BTCpmp5g.d.ts} +11 -4
- package/dist/{s3.service-D5zNCEW3.d.mts → s3.service-CzFBDEuQ.d.mts} +11 -4
- package/dist/server/index.d.mts +5 -5
- package/dist/server/index.d.ts +5 -5
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +2 -2
- package/dist/stripe-price.interface-D6mKjAdr.d.mts +132 -0
- package/dist/stripe-price.interface-DGqcklFJ.d.ts +132 -0
- package/dist/{useSocket-B0H9pmmH.d.ts → useSocket-BM3q9A0C.d.ts} +1 -1
- package/dist/{useSocket-B5RQb6v2.d.mts → useSocket-CwSoq6VS.d.mts} +1 -1
- package/dist/{user.interface-CIWGlbqM.d.mts → user.interface-BYnGJ7ss.d.mts} +37 -2
- package/dist/{user.interface-C0ZdsBZj.d.ts → user.interface-BqPjVyJI.d.ts} +37 -2
- package/messages/en.json +8 -0
- package/messages/it.json +8 -0
- package/package.json +1 -1
- package/src/components/containers/RoundPageContainer.tsx +7 -2
- package/src/components/index.ts +5 -0
- package/src/features/analytics/components/AnalyticsTracker.tsx +22 -9
- package/src/features/analytics/components/__tests__/AnalyticsTracker.spec.tsx +67 -0
- package/src/features/analytics/data/__tests__/models.spec.ts +13 -0
- package/src/features/analytics/data/analytics-event.ts +1 -0
- package/src/features/analytics/data/analytics.types.ts +2 -0
- package/src/features/billing/components/containers/BillingDashboardContainer.tsx +20 -3
- package/src/features/billing/components/widgets/CreditWarningBanner.tsx +93 -0
- package/src/features/billing/data/credit-warning.spec.ts +96 -0
- package/src/features/billing/data/credit-warning.ts +57 -0
- package/src/features/billing/data/index.ts +3 -0
- package/src/features/billing/i18n-keys.ts +6 -0
- package/src/features/company/data/company.interface.ts +11 -0
- package/src/features/company/data/company.service.ts +17 -0
- package/src/features/company/data/company.spec.ts +29 -0
- package/src/features/company/data/company.ts +31 -0
- package/dist/chunk-IPYXT7MH.js.map +0 -1
- package/dist/chunk-T3YQ47EF.js.map +0 -1
- package/dist/chunk-U7DR5VDT.mjs.map +0 -1
- package/dist/chunk-USYZNWKS.mjs.map +0 -1
- package/dist/feature.interface-BO25VLlx.d.ts +0 -19
- package/dist/feature.interface-CXb1-vNq.d.mts +0 -19
- /package/dist/{BlockNoteEditor-FZNU4YQT.mjs.map → BlockNoteEditor-M6UQRVRK.mjs.map} +0 -0
- /package/dist/{BlockNoteViewer-6XDDVTN6.mjs.map → BlockNoteViewer-XZJ5Y7WN.mjs.map} +0 -0
- /package/dist/{chunk-GFGKMUPZ.mjs.map → chunk-O2TEUH5S.mjs.map} +0 -0
- /package/dist/{chunk-JVJS5RHB.mjs.map → chunk-RUJCWOJE.mjs.map} +0 -0
- /package/dist/{chunk-RYZYKG6W.mjs.map → chunk-ZDUT5JPT.mjs.map} +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkV4I3XKOMjs = require('../../chunk-V4I3XKOM.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
@@ -33,8 +33,8 @@ var _chunkTPZS46IMjs = require('../../chunk-TPZS46IM.js');
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
var
|
|
37
|
-
require('../../chunk-
|
|
36
|
+
var _chunkY7JIQNM6js = require('../../chunk-Y7JIQNM6.js');
|
|
37
|
+
require('../../chunk-DSGP6GC3.js');
|
|
38
38
|
require('../../chunk-G4JR3SFV.js');
|
|
39
39
|
|
|
40
40
|
|
|
@@ -48,7 +48,7 @@ require('../../chunk-G4JR3SFV.js');
|
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
|
|
51
|
-
var
|
|
51
|
+
var _chunkXZCCIKX3js = require('../../chunk-XZCCIKX3.js');
|
|
52
52
|
require('../../chunk-GHE4VT2R.js');
|
|
53
53
|
require('../../chunk-LXKSUWAV.js');
|
|
54
54
|
require('../../chunk-JTPRJNT2.js');
|
|
@@ -63,7 +63,7 @@ var _react = require('react');
|
|
|
63
63
|
var _uuid = require('uuid');
|
|
64
64
|
|
|
65
65
|
// src/features/analytics/data/AnalyticsService.ts
|
|
66
|
-
var AnalyticsService = class extends
|
|
66
|
+
var AnalyticsService = class extends _chunkXZCCIKX3js.AbstractService {
|
|
67
67
|
static {
|
|
68
68
|
_chunk7QVYU63Ejs.__name.call(void 0, this, "AnalyticsService");
|
|
69
69
|
}
|
|
@@ -75,9 +75,9 @@ var AnalyticsService = class extends _chunkT3YQ47EFjs.AbstractService {
|
|
|
75
75
|
static async track(input) {
|
|
76
76
|
try {
|
|
77
77
|
await this.callApi({
|
|
78
|
-
type:
|
|
78
|
+
type: _chunkXZCCIKX3js.Modules.AnalyticsEvent,
|
|
79
79
|
method: "POST" /* POST */,
|
|
80
|
-
endpoint: new (0,
|
|
80
|
+
endpoint: new (0, _chunkXZCCIKX3js.EndpointCreator)({ endpoint: _chunkXZCCIKX3js.Modules.AnalyticsEvent }).generate(),
|
|
81
81
|
input,
|
|
82
82
|
suppressGlobalError: true
|
|
83
83
|
});
|
|
@@ -163,18 +163,19 @@ _chunk7QVYU63Ejs.__name.call(void 0, maskSensitivePath, "maskSensitivePath");
|
|
|
163
163
|
function AnalyticsTracker({ hasConsent, resolveSection, sensitivePrefixes }) {
|
|
164
164
|
const pathname = _navigation.usePathname.call(void 0, );
|
|
165
165
|
const lastPath = _react.useRef.call(void 0, null);
|
|
166
|
-
const
|
|
166
|
+
const lastKnownConsent = _react.useRef.call(void 0, void 0);
|
|
167
167
|
const attribution = _react.useRef.call(void 0, null);
|
|
168
168
|
_react.useEffect.call(void 0, () => {
|
|
169
|
-
if (
|
|
169
|
+
if (hasConsent === void 0) return;
|
|
170
|
+
if (hasConsent === false) clearVisitorCookie();
|
|
170
171
|
if (!pathname) return;
|
|
171
172
|
if (typeof navigator !== "undefined" && navigator.webdriver) return;
|
|
172
173
|
const path = pathname.split(/[?#]/)[0] || "/";
|
|
173
174
|
if (path.startsWith(EXCLUDED_PREFIX)) return;
|
|
174
175
|
const isNewPath = lastPath.current !== path;
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
if (!isNewPath && !
|
|
176
|
+
const consentGranted = hasConsent === true && lastKnownConsent.current === false;
|
|
177
|
+
lastKnownConsent.current = hasConsent;
|
|
178
|
+
if (!isNewPath && !consentGranted) return;
|
|
178
179
|
lastPath.current = path;
|
|
179
180
|
const sentPath = maskSensitivePath(path, sensitivePrefixes);
|
|
180
181
|
const input = {
|
|
@@ -184,12 +185,13 @@ function AnalyticsTracker({ hasConsent, resolveSection, sensitivePrefixes }) {
|
|
|
184
185
|
screenWidth: window.innerWidth
|
|
185
186
|
};
|
|
186
187
|
if (hasConsent) input.visitorId = ensureVisitorCookie();
|
|
188
|
+
if (consentGranted) input.consentGranted = true;
|
|
187
189
|
const isFirstEvent = attribution.current === null;
|
|
188
190
|
if (isFirstEvent) {
|
|
189
191
|
const referrer = readExternalReferrer();
|
|
190
192
|
attribution.current = { ...referrer ? { referrer } : {}, ...readUtm(window.location.search) };
|
|
191
193
|
}
|
|
192
|
-
if (isFirstEvent ||
|
|
194
|
+
if (isFirstEvent || consentGranted) Object.assign(input, attribution.current);
|
|
193
195
|
void AnalyticsService.track(input);
|
|
194
196
|
}, [pathname, hasConsent, resolveSection, sensitivePrefixes]);
|
|
195
197
|
return null;
|
|
@@ -224,7 +226,7 @@ function AnalyticsAdminFilterBar({ section, granularity, onChange }) {
|
|
|
224
226
|
};
|
|
225
227
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
226
228
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-md:w-full max-md:[&_#date]:w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
227
|
-
|
|
229
|
+
_chunkY7JIQNM6js.DateRangeSelector,
|
|
228
230
|
{
|
|
229
231
|
onDateChange: (range) => {
|
|
230
232
|
if (!_optionalChain([range, 'optionalAccess', _ => _.from]) || !_optionalChain([range, 'optionalAccess', _2 => _2.to])) return;
|
|
@@ -268,13 +270,13 @@ function Segmented({
|
|
|
268
270
|
children: options.map((option) => {
|
|
269
271
|
const selected = option.value === value;
|
|
270
272
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
271
|
-
|
|
273
|
+
_chunkY7JIQNM6js.Button,
|
|
272
274
|
{
|
|
273
275
|
type: "button",
|
|
274
276
|
size: "sm",
|
|
275
277
|
variant: selected ? "default" : "ghost",
|
|
276
278
|
"aria-pressed": selected,
|
|
277
|
-
className:
|
|
279
|
+
className: _chunkXZCCIKX3js.cn.call(void 0, !selected && "text-muted-foreground"),
|
|
278
280
|
onClick: () => onSelect(option.value),
|
|
279
281
|
children: option.label
|
|
280
282
|
},
|
|
@@ -294,45 +296,45 @@ function withFilters(endpoint, filters) {
|
|
|
294
296
|
return endpoint;
|
|
295
297
|
}
|
|
296
298
|
_chunk7QVYU63Ejs.__name.call(void 0, withFilters, "withFilters");
|
|
297
|
-
var AnalyticsAdminService = class extends
|
|
299
|
+
var AnalyticsAdminService = class extends _chunkXZCCIKX3js.AbstractService {
|
|
298
300
|
static {
|
|
299
301
|
_chunk7QVYU63Ejs.__name.call(void 0, this, "AnalyticsAdminService");
|
|
300
302
|
}
|
|
301
303
|
/** Headline tiles: one row per window (current, previous). */
|
|
302
304
|
static async getSummary(filters) {
|
|
303
|
-
const endpoint = withFilters(new (0,
|
|
305
|
+
const endpoint = withFilters(new (0, _chunkXZCCIKX3js.EndpointCreator)({ endpoint: _chunkXZCCIKX3js.Modules.AnalyticsSummary }), filters);
|
|
304
306
|
return this.callApi({
|
|
305
|
-
type:
|
|
307
|
+
type: _chunkXZCCIKX3js.Modules.AnalyticsSummary,
|
|
306
308
|
method: "GET" /* GET */,
|
|
307
309
|
endpoint: endpoint.generate()
|
|
308
310
|
});
|
|
309
311
|
}
|
|
310
312
|
static async getTimeline(params) {
|
|
311
|
-
const endpoint = withFilters(new (0,
|
|
313
|
+
const endpoint = withFilters(new (0, _chunkXZCCIKX3js.EndpointCreator)({ endpoint: _chunkXZCCIKX3js.Modules.AnalyticsTimeline }), params);
|
|
312
314
|
endpoint.addAdditionalParam("granularity", params.granularity);
|
|
313
315
|
return this.callApi({
|
|
314
|
-
type:
|
|
316
|
+
type: _chunkXZCCIKX3js.Modules.AnalyticsTimeline,
|
|
315
317
|
method: "GET" /* GET */,
|
|
316
318
|
endpoint: endpoint.generate()
|
|
317
319
|
});
|
|
318
320
|
}
|
|
319
321
|
static async getBreakdown(params) {
|
|
320
|
-
const endpoint = withFilters(new (0,
|
|
322
|
+
const endpoint = withFilters(new (0, _chunkXZCCIKX3js.EndpointCreator)({ endpoint: _chunkXZCCIKX3js.Modules.AnalyticsBreakdown }), params);
|
|
321
323
|
endpoint.addAdditionalParam("dimension", params.dimension);
|
|
322
324
|
if (params.limit !== void 0) endpoint.addAdditionalParam("limit", String(params.limit));
|
|
323
325
|
return this.callApi({
|
|
324
|
-
type:
|
|
326
|
+
type: _chunkXZCCIKX3js.Modules.AnalyticsBreakdown,
|
|
325
327
|
method: "GET" /* GET */,
|
|
326
328
|
endpoint: endpoint.generate()
|
|
327
329
|
});
|
|
328
330
|
}
|
|
329
331
|
/** Newest sessions first, cursor-paginated through `next`. */
|
|
330
332
|
static async getSessions(params) {
|
|
331
|
-
const endpoint = withFilters(new (0,
|
|
333
|
+
const endpoint = withFilters(new (0, _chunkXZCCIKX3js.EndpointCreator)({ endpoint: _chunkXZCCIKX3js.Modules.AnalyticsSession }), params);
|
|
332
334
|
if (params.visitorId) endpoint.addAdditionalParam("visitorId", params.visitorId);
|
|
333
335
|
if (params.userId) endpoint.addAdditionalParam("userId", params.userId);
|
|
334
336
|
return this.callApi({
|
|
335
|
-
type:
|
|
337
|
+
type: _chunkXZCCIKX3js.Modules.AnalyticsSession,
|
|
336
338
|
method: "GET" /* GET */,
|
|
337
339
|
endpoint: endpoint.generate(),
|
|
338
340
|
next: params.next
|
|
@@ -340,20 +342,20 @@ var AnalyticsAdminService = class extends _chunkT3YQ47EFjs.AbstractService {
|
|
|
340
342
|
}
|
|
341
343
|
static async getSession(params) {
|
|
342
344
|
return this.callApi({
|
|
343
|
-
type:
|
|
345
|
+
type: _chunkXZCCIKX3js.Modules.AnalyticsSession,
|
|
344
346
|
method: "GET" /* GET */,
|
|
345
|
-
endpoint: new (0,
|
|
347
|
+
endpoint: new (0, _chunkXZCCIKX3js.EndpointCreator)({ endpoint: _chunkXZCCIKX3js.Modules.AnalyticsSession, id: params.id }).generate()
|
|
346
348
|
});
|
|
347
349
|
}
|
|
348
350
|
/** The journey: every page view of one session, oldest first. */
|
|
349
351
|
static async getSessionPageViews(params) {
|
|
350
352
|
return this.callApi({
|
|
351
|
-
type:
|
|
353
|
+
type: _chunkXZCCIKX3js.Modules.AnalyticsPageView,
|
|
352
354
|
method: "GET" /* GET */,
|
|
353
|
-
endpoint: new (0,
|
|
354
|
-
endpoint:
|
|
355
|
+
endpoint: new (0, _chunkXZCCIKX3js.EndpointCreator)({
|
|
356
|
+
endpoint: _chunkXZCCIKX3js.Modules.AnalyticsSession,
|
|
355
357
|
id: params.sessionId,
|
|
356
|
-
childEndpoint:
|
|
358
|
+
childEndpoint: _chunkXZCCIKX3js.Modules.AnalyticsPageView
|
|
357
359
|
}).generate()
|
|
358
360
|
});
|
|
359
361
|
}
|
|
@@ -449,7 +451,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
|
|
|
449
451
|
const sessionsNext = {};
|
|
450
452
|
try {
|
|
451
453
|
const nextSessions = await AnalyticsAdminService.next({
|
|
452
|
-
type:
|
|
454
|
+
type: _chunkXZCCIKX3js.Modules.AnalyticsSession,
|
|
453
455
|
endpoint: sessionsNextPage,
|
|
454
456
|
next: sessionsNext
|
|
455
457
|
});
|
|
@@ -504,7 +506,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
|
|
|
504
506
|
error
|
|
505
507
|
]
|
|
506
508
|
);
|
|
507
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
509
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsAdminContext.Provider, { value: contextValue, children }) });
|
|
508
510
|
}, "AnalyticsAdminProvider");
|
|
509
511
|
var useAnalyticsAdmin = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
|
|
510
512
|
const ctx = _react.useContext.call(void 0, AnalyticsAdminContext);
|
|
@@ -524,7 +526,7 @@ var _lucidereact = require('lucide-react');
|
|
|
524
526
|
var ZERO = { visitors: 0, sessions: 0, pageViews: 0, pagesPerSession: 0, consentShare: 0 };
|
|
525
527
|
function AnalyticsAdminTiles({ summary }) {
|
|
526
528
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
527
|
-
const { decimal } =
|
|
529
|
+
const { decimal } = _chunkV4I3XKOMjs.useUsageFormatters.call(void 0, );
|
|
528
530
|
const rowFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (window2) => _nullishCoalesce(summary.find((r) => r.section === "total" && r.window === window2), () => ( ZERO)), "rowFor");
|
|
529
531
|
const current = rowFor("current");
|
|
530
532
|
const previous = rowFor("previous");
|
|
@@ -537,7 +539,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
537
539
|
testId: "analytics-tile-visitors",
|
|
538
540
|
label: t("analytics.admin.tiles.visitors"),
|
|
539
541
|
value: decimal(current.visitors, 0),
|
|
540
|
-
delta:
|
|
542
|
+
delta: _chunkV4I3XKOMjs.percentageDelta.call(void 0, current.visitors, previous.visitors),
|
|
541
543
|
previousLabel,
|
|
542
544
|
decimal
|
|
543
545
|
}
|
|
@@ -548,7 +550,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
548
550
|
testId: "analytics-tile-sessions",
|
|
549
551
|
label: t("analytics.admin.tiles.sessions"),
|
|
550
552
|
value: decimal(current.sessions, 0),
|
|
551
|
-
delta:
|
|
553
|
+
delta: _chunkV4I3XKOMjs.percentageDelta.call(void 0, current.sessions, previous.sessions),
|
|
552
554
|
previousLabel,
|
|
553
555
|
decimal
|
|
554
556
|
}
|
|
@@ -559,7 +561,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
559
561
|
testId: "analytics-tile-page-views",
|
|
560
562
|
label: t("analytics.admin.tiles.page_views"),
|
|
561
563
|
value: decimal(current.pageViews, 0),
|
|
562
|
-
delta:
|
|
564
|
+
delta: _chunkV4I3XKOMjs.percentageDelta.call(void 0, current.pageViews, previous.pageViews),
|
|
563
565
|
previousLabel,
|
|
564
566
|
decimal
|
|
565
567
|
}
|
|
@@ -572,7 +574,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
572
574
|
testId: "analytics-tile-pages-per-session",
|
|
573
575
|
label: t("analytics.admin.tiles.pages_per_session"),
|
|
574
576
|
value: decimal(current.pagesPerSession, 1),
|
|
575
|
-
delta:
|
|
577
|
+
delta: _chunkV4I3XKOMjs.percentageDelta.call(void 0, current.pagesPerSession, previous.pagesPerSession),
|
|
576
578
|
decimal
|
|
577
579
|
}
|
|
578
580
|
),
|
|
@@ -597,8 +599,8 @@ function LeadTile({
|
|
|
597
599
|
previousLabel,
|
|
598
600
|
decimal
|
|
599
601
|
}) {
|
|
600
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
601
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
602
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.Card, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.CardContent, { className: "grid gap-1", children: [
|
|
603
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.MicroLabel, { children: label }),
|
|
602
604
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: value }),
|
|
603
605
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1", children: [
|
|
604
606
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Delta, { testId: `${testId}-delta`, delta, decimal }),
|
|
@@ -614,8 +616,8 @@ function SupportingTile({
|
|
|
614
616
|
delta,
|
|
615
617
|
decimal
|
|
616
618
|
}) {
|
|
617
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
618
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
619
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.Card, { "data-testid": testId, size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.CardContent, { className: "grid gap-1", children: [
|
|
620
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.MicroLabel, { children: label }),
|
|
619
621
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
|
|
620
622
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: value }),
|
|
621
623
|
delta !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Delta, { testId: `${testId}-delta`, delta, decimal })
|
|
@@ -638,7 +640,7 @@ function Delta({
|
|
|
638
640
|
"span",
|
|
639
641
|
{
|
|
640
642
|
"data-testid": testId,
|
|
641
|
-
className:
|
|
643
|
+
className: _chunkXZCCIKX3js.cn.call(void 0,
|
|
642
644
|
"inline-flex items-center gap-0.5 text-xs tabular-nums",
|
|
643
645
|
increased ? "text-success" : "text-destructive"
|
|
644
646
|
),
|
|
@@ -666,15 +668,15 @@ function AnalyticsBreakdownTable({ breakdowns }) {
|
|
|
666
668
|
route: t("analytics.admin.dimensions.route"),
|
|
667
669
|
landing: t("analytics.admin.dimensions.landing")
|
|
668
670
|
};
|
|
669
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
670
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
671
|
-
ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
671
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.Tabs, { defaultValue: ANALYTICS_DIMENSIONS[0], children: [
|
|
672
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TabsList, { className: "max-md:w-full max-md:justify-start max-md:overflow-x-auto", children: ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TabsTrigger, { value: dimension, children: labels[dimension] }, dimension)) }),
|
|
673
|
+
ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TabsContent, { value: dimension, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BreakdownRows, { rows: _nullishCoalesce(breakdowns[dimension], () => ( [])) }) }, dimension))
|
|
672
674
|
] });
|
|
673
675
|
}
|
|
674
676
|
_chunk7QVYU63Ejs.__name.call(void 0, AnalyticsBreakdownTable, "AnalyticsBreakdownTable");
|
|
675
677
|
function BreakdownRows({ rows }) {
|
|
676
678
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
677
|
-
const { decimal } =
|
|
679
|
+
const { decimal } = _chunkV4I3XKOMjs.useUsageFormatters.call(void 0, );
|
|
678
680
|
const sortedRows = _react.useMemo.call(void 0, () => [...rows].sort((a, b) => b.visitors - a.visitors), [rows]);
|
|
679
681
|
if (sortedRows.length === 0) {
|
|
680
682
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") });
|
|
@@ -683,18 +685,18 @@ function BreakdownRows({ rows }) {
|
|
|
683
685
|
// The package's <Table> wraps itself in an `overflow-x-clip` container, which
|
|
684
686
|
// would swallow the overflow before this scroller ever saw it — hence the
|
|
685
687
|
// child override. Wide tables must scroll, never widen the page.
|
|
686
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
687
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
688
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
689
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
690
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
691
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
688
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.Table, { children: [
|
|
689
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.TableRow, { children: [
|
|
690
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.key") }),
|
|
691
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.visitors") }),
|
|
692
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.sessions") }),
|
|
693
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.page_views") })
|
|
692
694
|
] }) }),
|
|
693
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
694
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
695
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
696
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
697
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
695
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableBody, { children: sortedRows.map((row) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.TableRow, { "data-testid": `analytics-breakdown-row-${row.id}`, children: [
|
|
696
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-xs", children: row.key === OTHER_KEY ? t("analytics.admin.other") : row.key }),
|
|
697
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.visitors, 0) }),
|
|
698
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.sessions, 0) }),
|
|
699
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) })
|
|
698
700
|
] }, row.id)) })
|
|
699
701
|
] }) })
|
|
700
702
|
);
|
|
@@ -709,48 +711,48 @@ var VISITOR_SUFFIX_LENGTH = 6;
|
|
|
709
711
|
function AnalyticsSessionsTable({ rows, sessionPageUrl, onLoadMore, hasMore }) {
|
|
710
712
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
711
713
|
const locale = _nextintl.useLocale.call(void 0, );
|
|
712
|
-
const generateUrl =
|
|
713
|
-
const { decimal } =
|
|
714
|
+
const generateUrl = _chunkY7JIQNM6js.usePageUrlGenerator.call(void 0, );
|
|
715
|
+
const { decimal } = _chunkV4I3XKOMjs.useUsageFormatters.call(void 0, );
|
|
714
716
|
const dateTime = _react.useMemo.call(void 0, () => new Intl.DateTimeFormat(locale, { dateStyle: "short", timeStyle: "short" }), [locale]);
|
|
715
717
|
if (rows.length === 0) {
|
|
716
718
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") });
|
|
717
719
|
}
|
|
718
720
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3", children: [
|
|
719
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
720
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
721
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
722
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
723
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
724
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
725
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
726
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
721
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.Table, { children: [
|
|
722
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.TableRow, { children: [
|
|
723
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.started") }),
|
|
724
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.visitor") }),
|
|
725
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.source") }),
|
|
726
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.landing") }),
|
|
727
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.pages") }),
|
|
728
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.device") })
|
|
727
729
|
] }) }),
|
|
728
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
730
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableBody, { children: rows.map((row) => {
|
|
729
731
|
const source = [_nullishCoalesce(row.utmSource, () => ( row.referrerHost)), row.utmMedium].filter(Boolean).join(" / ");
|
|
730
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
731
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
732
|
-
|
|
732
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.TableRow, { "data-testid": `analytics-session-row-${row.id}`, children: [
|
|
733
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-xs tabular-nums", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
734
|
+
_chunkY7JIQNM6js.Link,
|
|
733
735
|
{
|
|
734
736
|
href: generateUrl({ page: sessionPageUrl, id: row.id }),
|
|
735
737
|
"data-testid": `analytics-session-link-${row.id}`,
|
|
736
738
|
children: dateTime.format(row.startedAt)
|
|
737
739
|
}
|
|
738
740
|
) }),
|
|
739
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
741
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-xs", children: row.user ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col", children: [
|
|
740
742
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: row.user.name }),
|
|
741
743
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: row.user.email })
|
|
742
744
|
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
|
|
743
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
745
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
|
|
744
746
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs tabular-nums", children: row.visitorId.slice(-VISITOR_SUFFIX_LENGTH) })
|
|
745
747
|
] }) }),
|
|
746
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
747
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
748
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
749
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
748
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-xs", children: source }),
|
|
749
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-xs", children: row.landingRoute }),
|
|
750
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) }),
|
|
751
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-muted-foreground text-xs", children: row.deviceType })
|
|
750
752
|
] }, row.id);
|
|
751
753
|
}) })
|
|
752
754
|
] }) }),
|
|
753
|
-
hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
755
|
+
hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.Button, { type: "button", variant: "outline", size: "sm", onClick: onLoadMore, children: t("analytics.admin.load_more") }) })
|
|
754
756
|
] });
|
|
755
757
|
}
|
|
756
758
|
_chunk7QVYU63Ejs.__name.call(void 0, AnalyticsSessionsTable, "AnalyticsSessionsTable");
|
|
@@ -782,7 +784,7 @@ var inferGranularity = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (buc
|
|
|
782
784
|
}, "inferGranularity");
|
|
783
785
|
function AnalyticsTimelineChart({ rows, className }) {
|
|
784
786
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
785
|
-
const { compact, bucketDate, decimal } =
|
|
787
|
+
const { compact, bucketDate, decimal } = _chunkV4I3XKOMjs.useUsageFormatters.call(void 0, );
|
|
786
788
|
const { resolvedTheme } = _nextthemes.useTheme.call(void 0, );
|
|
787
789
|
const mode = resolvedTheme === "dark" ? "dark" : "light";
|
|
788
790
|
const chartData = _react.useMemo.call(void 0, () => {
|
|
@@ -817,7 +819,7 @@ function AnalyticsTimelineChart({ rows, className }) {
|
|
|
817
819
|
// rtl-ok: deliberate LTR island (chart)
|
|
818
820
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className, dir: "ltr", children: [
|
|
819
821
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", "data-testid": "analytics-timeline-data", children: JSON.stringify(chartData) }),
|
|
820
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
822
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.ChartContainer, { config: chartConfig, className: "aspect-auto h-72 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _recharts.BarChart, { accessibilityLayer: true, data: chartData, margin: { top: 8, right: 8, bottom: 0, left: 0 }, children: [
|
|
821
823
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _recharts.CartesianGrid, { vertical: false }),
|
|
822
824
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
823
825
|
_recharts.XAxis,
|
|
@@ -841,10 +843,10 @@ function AnalyticsTimelineChart({ rows, className }) {
|
|
|
841
843
|
}
|
|
842
844
|
),
|
|
843
845
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
844
|
-
|
|
846
|
+
_chunkY7JIQNM6js.ChartTooltip,
|
|
845
847
|
{
|
|
846
848
|
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
847
|
-
|
|
849
|
+
_chunkY7JIQNM6js.ChartTooltipContent,
|
|
848
850
|
{
|
|
849
851
|
labelFormatter: (value) => bucketDate(String(value), granularity),
|
|
850
852
|
valueFormatter: (value) => decimal(Number(value), 0)
|
|
@@ -852,13 +854,13 @@ function AnalyticsTimelineChart({ rows, className }) {
|
|
|
852
854
|
)
|
|
853
855
|
}
|
|
854
856
|
),
|
|
855
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
857
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.ChartLegend, { content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.ChartLegendContent, {}) }),
|
|
856
858
|
SERIES.map((series, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
857
859
|
_recharts.Bar,
|
|
858
860
|
{
|
|
859
861
|
dataKey: series,
|
|
860
862
|
maxBarSize: 28,
|
|
861
|
-
fill:
|
|
863
|
+
fill: _chunkV4I3XKOMjs.seriesColor.call(void 0, index, mode),
|
|
862
864
|
stroke: "var(--background)",
|
|
863
865
|
strokeWidth: 2,
|
|
864
866
|
radius: [4, 4, 0, 0]
|
|
@@ -887,25 +889,25 @@ function AnalyticsAdminContainer() {
|
|
|
887
889
|
error
|
|
888
890
|
} = useAnalyticsAdmin();
|
|
889
891
|
if (error) {
|
|
890
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
892
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.RoundPageContainer, { module: _chunkXZCCIKX3js.Modules.AnalyticsSummary, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
|
|
891
893
|
}
|
|
892
|
-
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
893
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
894
|
+
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.RoundPageContainer, { module: _chunkXZCCIKX3js.Modules.AnalyticsSummary, fullWidth: true, forceHeader: true });
|
|
895
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.RoundPageContainer, { module: _chunkXZCCIKX3js.Modules.AnalyticsSummary, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
|
|
894
896
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
895
897
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsAdminTiles, { summary }),
|
|
896
898
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-xs", children: t("analytics.admin.tiles.summarised_note") })
|
|
897
899
|
] }),
|
|
898
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
899
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
900
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
900
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.Card, { children: [
|
|
901
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardTitle, { children: t("analytics.admin.panels.over_time") }) }),
|
|
902
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsTimelineChart, { rows: timeline }) })
|
|
901
903
|
] }),
|
|
902
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
903
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
904
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
904
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.Card, { children: [
|
|
905
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardTitle, { children: t("analytics.admin.panels.breakdown") }) }),
|
|
906
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsBreakdownTable, { breakdowns }) })
|
|
905
907
|
] }),
|
|
906
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
907
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
908
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
908
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.Card, { children: [
|
|
909
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardTitle, { children: t("analytics.admin.panels.sessions") }) }),
|
|
910
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
909
911
|
AnalyticsSessionsTable,
|
|
910
912
|
{
|
|
911
913
|
rows: sessions,
|
|
@@ -928,7 +930,7 @@ var OTHER_SESSIONS_WINDOW_DAYS = 395;
|
|
|
928
930
|
function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_URL }) {
|
|
929
931
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
930
932
|
const locale = _nextintl.useLocale.call(void 0, );
|
|
931
|
-
const generateUrl =
|
|
933
|
+
const generateUrl = _chunkY7JIQNM6js.usePageUrlGenerator.call(void 0, );
|
|
932
934
|
const [session, setSession] = _react.useState.call(void 0, void 0);
|
|
933
935
|
const [pageViews, setPageViews] = _react.useState.call(void 0, []);
|
|
934
936
|
const [otherSessions, setOtherSessions] = _react.useState.call(void 0, []);
|
|
@@ -984,26 +986,26 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
|
|
|
984
986
|
const title = { type: t("analytics.admin.panels.journey") };
|
|
985
987
|
const renderBody = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
|
|
986
988
|
if (error) {
|
|
987
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
989
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.RoundPageContainer, { module: _chunkXZCCIKX3js.Modules.AnalyticsSession, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
|
|
988
990
|
}
|
|
989
|
-
if (isLoading || !session) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
991
|
+
if (isLoading || !session) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.RoundPageContainer, { module: _chunkXZCCIKX3js.Modules.AnalyticsSession, fullWidth: true, forceHeader: true });
|
|
990
992
|
const source = [_nullishCoalesce(session.utmSource, () => ( session.referrerHost)), session.utmMedium, session.utmCampaign].filter(Boolean).join(" / ");
|
|
991
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
992
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
993
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.RoundPageContainer, { module: _chunkXZCCIKX3js.Modules.AnalyticsSession, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
|
|
994
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.Card, { "data-testid": "analytics-journey-attribution", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.CardContent, { className: "flex flex-col gap-3", children: [
|
|
993
995
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
994
996
|
session.user ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col", children: [
|
|
995
997
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: session.user.name }),
|
|
996
998
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: session.user.email })
|
|
997
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
998
|
-
session.consented ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
999
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
|
|
1000
|
+
session.consented ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.Badge, { variant: "softGreen", children: t("analytics.admin.consented") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.Badge, { variant: "softGray", children: t("analytics.admin.not_consented") })
|
|
999
1001
|
] }),
|
|
1000
1002
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3 sm:grid-cols-3", children: [
|
|
1001
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1002
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1003
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1004
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1003
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.DetailField, { label: t("analytics.admin.columns.started"), value: dateTime.format(session.startedAt) }),
|
|
1004
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.DetailField, { label: t("analytics.admin.columns.source"), value: source }),
|
|
1005
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.DetailField, { label: t("analytics.admin.columns.landing"), value: session.landingRoute }),
|
|
1006
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.DetailField, { label: t("analytics.admin.columns.device"), value: session.deviceType }),
|
|
1005
1007
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1006
|
-
|
|
1008
|
+
_chunkY7JIQNM6js.DetailField,
|
|
1007
1009
|
{
|
|
1008
1010
|
label: t("analytics.admin.columns.visitor"),
|
|
1009
1011
|
value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: session.visitorId })
|
|
@@ -1011,31 +1013,31 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
|
|
|
1011
1013
|
)
|
|
1012
1014
|
] })
|
|
1013
1015
|
] }) }),
|
|
1014
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1015
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1016
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1016
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.Card, { children: [
|
|
1017
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardTitle, { children: t("analytics.admin.columns.pages") }) }),
|
|
1018
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardContent, { children: pageViews.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") }) : (
|
|
1017
1019
|
// The package's <Table> wraps itself in an `overflow-x-clip`
|
|
1018
1020
|
// container — hence the child override, so wide rows scroll.
|
|
1019
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1020
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1021
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1022
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1023
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1021
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.Table, { children: [
|
|
1022
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.TableRow, { children: [
|
|
1023
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.time") }),
|
|
1024
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.gap") }),
|
|
1025
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.path") })
|
|
1024
1026
|
] }) }),
|
|
1025
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1027
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableBody, { children: pageViews.map((pageView, index) => {
|
|
1026
1028
|
const previous = index > 0 ? pageViews[index - 1] : void 0;
|
|
1027
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1028
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1029
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1030
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1029
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.TableRow, { "data-testid": `analytics-pageview-row-${pageView.id}`, children: [
|
|
1030
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-xs tabular-nums", children: dateTime.format(pageView.createdAt) }),
|
|
1031
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-end text-xs tabular-nums", children: previous ? formatGap(pageView.createdAt.getTime() - previous.createdAt.getTime()) : "\u2014" }),
|
|
1032
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.TableCell, { className: "text-xs", children: pageView.path })
|
|
1031
1033
|
] }, pageView.id);
|
|
1032
1034
|
}) })
|
|
1033
1035
|
] }) })
|
|
1034
1036
|
) })
|
|
1035
1037
|
] }),
|
|
1036
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1037
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1038
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1038
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY7JIQNM6js.Card, { children: [
|
|
1039
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardTitle, { children: t("analytics.admin.panels.other_sessions") }) }),
|
|
1040
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1039
1041
|
AnalyticsSessionsTable,
|
|
1040
1042
|
{
|
|
1041
1043
|
rows: otherSessions,
|
|
@@ -1047,7 +1049,7 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
|
|
|
1047
1049
|
] })
|
|
1048
1050
|
] }) });
|
|
1049
1051
|
}, "renderBody");
|
|
1050
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1052
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY7JIQNM6js.SharedProvider, { value: { breadcrumbs: breadcrumb, title }, children: renderBody() });
|
|
1051
1053
|
}
|
|
1052
1054
|
_chunk7QVYU63Ejs.__name.call(void 0, AnalyticsJourneyContainer, "AnalyticsJourneyContainer");
|
|
1053
1055
|
function unit(locale, name, value) {
|
|
@@ -1155,5 +1157,5 @@ var ANALYTICS_ADMIN_I18N_KEYS = [
|
|
|
1155
1157
|
|
|
1156
1158
|
|
|
1157
1159
|
|
|
1158
|
-
exports.ANALYTICS_ADMIN_I18N_KEYS = ANALYTICS_ADMIN_I18N_KEYS; exports.ANALYTICS_DIMENSIONS = ANALYTICS_DIMENSIONS; exports.ANALYTICS_GRANULARITIES = ANALYTICS_GRANULARITIES; exports.ANALYTICS_SECTIONS = ANALYTICS_SECTIONS; exports.AnalyticsAdminContainer = AnalyticsAdminContainer; exports.AnalyticsAdminFilterBar = AnalyticsAdminFilterBar; exports.AnalyticsAdminPageContainer = AnalyticsAdminPageContainer; exports.AnalyticsAdminProvider = AnalyticsAdminProvider; exports.AnalyticsAdminService = AnalyticsAdminService; exports.AnalyticsAdminTiles = AnalyticsAdminTiles; exports.AnalyticsBreakdown =
|
|
1160
|
+
exports.ANALYTICS_ADMIN_I18N_KEYS = ANALYTICS_ADMIN_I18N_KEYS; exports.ANALYTICS_DIMENSIONS = ANALYTICS_DIMENSIONS; exports.ANALYTICS_GRANULARITIES = ANALYTICS_GRANULARITIES; exports.ANALYTICS_SECTIONS = ANALYTICS_SECTIONS; exports.AnalyticsAdminContainer = AnalyticsAdminContainer; exports.AnalyticsAdminFilterBar = AnalyticsAdminFilterBar; exports.AnalyticsAdminPageContainer = AnalyticsAdminPageContainer; exports.AnalyticsAdminProvider = AnalyticsAdminProvider; exports.AnalyticsAdminService = AnalyticsAdminService; exports.AnalyticsAdminTiles = AnalyticsAdminTiles; exports.AnalyticsBreakdown = _chunkXZCCIKX3js.AnalyticsBreakdown; exports.AnalyticsBreakdownTable = AnalyticsBreakdownTable; exports.AnalyticsEvent = _chunkXZCCIKX3js.AnalyticsEvent; exports.AnalyticsJourneyContainer = AnalyticsJourneyContainer; exports.AnalyticsJourneyPageContainer = AnalyticsJourneyPageContainer; exports.AnalyticsPageView = _chunkXZCCIKX3js.AnalyticsPageView; exports.AnalyticsService = AnalyticsService; exports.AnalyticsSession = _chunkXZCCIKX3js.AnalyticsSession; exports.AnalyticsSessionsTable = AnalyticsSessionsTable; exports.AnalyticsSummary = _chunkXZCCIKX3js.AnalyticsSummary; exports.AnalyticsTimeline = _chunkXZCCIKX3js.AnalyticsTimeline; exports.AnalyticsTimelineChart = AnalyticsTimelineChart; exports.AnalyticsTracker = AnalyticsTracker; exports.analyticsModules = _chunkXZCCIKX3js.analyticsModules; exports.useAnalyticsAdmin = useAnalyticsAdmin;
|
|
1159
1161
|
//# sourceMappingURL=index.js.map
|