@carlonicora/nextjs-jsonapi 5.7.0 → 5.7.2
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/{BlockNoteEditor-ZHXXFWUJ.js → BlockNoteEditor-G45WMJ5V.js} +19 -19
- package/dist/{BlockNoteEditor-ZHXXFWUJ.js.map → BlockNoteEditor-G45WMJ5V.js.map} +1 -1
- package/dist/{BlockNoteEditor-R3WXUFHX.mjs → BlockNoteEditor-R3745ALQ.mjs} +4 -4
- package/dist/{BlockNoteViewer-SD3ZFIXD.js → BlockNoteViewer-5PGOVURC.js} +3 -3
- package/dist/{BlockNoteViewer-SD3ZFIXD.js.map → BlockNoteViewer-5PGOVURC.js.map} +1 -1
- package/dist/{BlockNoteViewer-BVVN6D3T.mjs → BlockNoteViewer-TNK3OMH5.mjs} +2 -2
- package/dist/billing/index.d.mts +6 -5
- package/dist/billing/index.d.ts +6 -5
- package/dist/billing/index.js +496 -494
- package/dist/billing/index.js.map +1 -1
- package/dist/billing/index.mjs +8 -6
- package/dist/billing/index.mjs.map +1 -1
- package/dist/{chunk-5TH2DSAH.js → chunk-3CSPHMVK.js} +2 -3
- package/dist/chunk-3CSPHMVK.js.map +1 -0
- package/dist/{chunk-OKCV4GPJ.mjs → chunk-6KAYEYFU.mjs} +2 -2
- package/dist/{chunk-FK26NX3S.mjs → chunk-CJS5WA4E.mjs} +1 -2
- package/dist/chunk-CJS5WA4E.mjs.map +1 -0
- package/dist/{chunk-XOSC3FFP.js → chunk-CP7BXAFH.js} +8 -8
- package/dist/{chunk-XOSC3FFP.js.map → chunk-CP7BXAFH.js.map} +1 -1
- package/dist/{chunk-ZCOPOO7T.js → chunk-EXG4ANC7.js} +875 -873
- package/dist/chunk-EXG4ANC7.js.map +1 -0
- package/dist/{chunk-CFB6FHIY.mjs → chunk-JCNB5KTQ.mjs} +14 -12
- package/dist/chunk-JCNB5KTQ.mjs.map +1 -0
- package/dist/{chunk-RGQYFSJF.mjs → chunk-KOA5PZZA.mjs} +2 -2
- package/dist/{chunk-WCHLCOZG.mjs → chunk-RJMLAW5O.mjs} +2 -2
- package/dist/{chunk-IJME5SAM.js → chunk-WU47MIZZ.js} +4 -4
- package/dist/{chunk-IJME5SAM.js.map → chunk-WU47MIZZ.js.map} +1 -1
- package/dist/{chunk-2TXE57LE.js → chunk-YG4YFAYY.js} +3 -3
- package/dist/{chunk-2TXE57LE.js.map → chunk-YG4YFAYY.js.map} +1 -1
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/components/index.js +4 -4
- package/dist/components/index.mjs +3 -3
- package/dist/contexts/index.js +4 -4
- package/dist/contexts/index.mjs +3 -3
- package/dist/core/index.d.mts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +2 -2
- package/dist/core/index.mjs +1 -1
- package/dist/{currency-pK9eRYRC.d.ts → currency-8ErEC39n.d.ts} +3 -2
- package/dist/{currency-DT_dveBx.d.mts → currency-DrEVd_Xs.d.mts} +3 -2
- package/dist/email-automations/index.js +92 -92
- package/dist/email-automations/index.mjs +3 -3
- package/dist/features/analytics/index.js +121 -121
- package/dist/features/analytics/index.mjs +4 -4
- package/dist/features/analytics/server.js +4 -4
- package/dist/features/analytics/server.mjs +2 -2
- package/dist/features/blog/index.js +150 -150
- package/dist/features/blog/index.mjs +3 -3
- 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 +124 -124
- package/dist/features/tokenusage/index.mjs +4 -4
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/index.mjs +2 -2
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +2 -2
- package/package.json +1 -1
- package/src/features/billing/components/utils/__tests__/billing-formatters.spec.ts +13 -2
- package/src/features/billing/components/utils/date.ts +7 -5
- package/src/features/billing/components/utils/format-options.ts +4 -2
- package/src/features/billing/stripe-coupon/components/containers/CouponContainer.tsx +2 -2
- package/src/features/billing/stripe-coupon/components/forms/CouponEditor.tsx +1 -11
- package/src/features/billing/stripe-coupon/utils/__tests__/coupon-page-module.spec.ts +32 -0
- package/src/features/billing/stripe-coupon/utils/coupon-page-module.ts +13 -0
- package/src/features/billing/stripe-usage/components/details/UsageSummaryCard.tsx +2 -1
- package/src/features/billing/stripe-usage/components/lists/UsageHistoryTable.tsx +2 -1
- package/src/features/oauth/components/OAuthClientDetail.tsx +2 -1
- package/dist/chunk-5TH2DSAH.js.map +0 -1
- package/dist/chunk-CFB6FHIY.mjs.map +0 -1
- package/dist/chunk-FK26NX3S.mjs.map +0 -1
- package/dist/chunk-ZCOPOO7T.js.map +0 -1
- /package/dist/{BlockNoteEditor-R3WXUFHX.mjs.map → BlockNoteEditor-R3745ALQ.mjs.map} +0 -0
- /package/dist/{BlockNoteViewer-BVVN6D3T.mjs.map → BlockNoteViewer-TNK3OMH5.mjs.map} +0 -0
- /package/dist/{chunk-OKCV4GPJ.mjs.map → chunk-6KAYEYFU.mjs.map} +0 -0
- /package/dist/{chunk-RGQYFSJF.mjs.map → chunk-KOA5PZZA.mjs.map} +0 -0
- /package/dist/{chunk-WCHLCOZG.mjs.map → chunk-RJMLAW5O.mjs.map} +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkYG4YFAYYjs = require('../../chunk-YG4YFAYY.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
@@ -33,8 +33,8 @@ var _chunk2TXE57LEjs = require('../../chunk-2TXE57LE.js');
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
var
|
|
37
|
-
require('../../chunk-
|
|
36
|
+
var _chunkEXG4ANC7js = require('../../chunk-EXG4ANC7.js');
|
|
37
|
+
require('../../chunk-CP7BXAFH.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 _chunk3CSPHMVKjs = require('../../chunk-3CSPHMVK.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 _chunk3CSPHMVKjs.AbstractService {
|
|
67
67
|
static {
|
|
68
68
|
_chunk7QVYU63Ejs.__name.call(void 0, this, "AnalyticsService");
|
|
69
69
|
}
|
|
@@ -75,9 +75,9 @@ var AnalyticsService = class extends _chunk5TH2DSAHjs.AbstractService {
|
|
|
75
75
|
static async track(input) {
|
|
76
76
|
try {
|
|
77
77
|
await this.callApi({
|
|
78
|
-
type:
|
|
78
|
+
type: _chunk3CSPHMVKjs.Modules.AnalyticsEvent,
|
|
79
79
|
method: "POST" /* POST */,
|
|
80
|
-
endpoint: new (0,
|
|
80
|
+
endpoint: new (0, _chunk3CSPHMVKjs.EndpointCreator)({ endpoint: _chunk3CSPHMVKjs.Modules.AnalyticsEvent }).generate(),
|
|
81
81
|
input,
|
|
82
82
|
suppressGlobalError: true
|
|
83
83
|
});
|
|
@@ -224,7 +224,7 @@ function AnalyticsAdminFilterBar({ section, granularity, onChange }) {
|
|
|
224
224
|
};
|
|
225
225
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
226
226
|
/* @__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
|
-
|
|
227
|
+
_chunkEXG4ANC7js.DateRangeSelector,
|
|
228
228
|
{
|
|
229
229
|
onDateChange: (range) => {
|
|
230
230
|
if (!_optionalChain([range, 'optionalAccess', _ => _.from]) || !_optionalChain([range, 'optionalAccess', _2 => _2.to])) return;
|
|
@@ -268,13 +268,13 @@ function Segmented({
|
|
|
268
268
|
children: options.map((option) => {
|
|
269
269
|
const selected = option.value === value;
|
|
270
270
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
271
|
-
|
|
271
|
+
_chunkEXG4ANC7js.Button,
|
|
272
272
|
{
|
|
273
273
|
type: "button",
|
|
274
274
|
size: "sm",
|
|
275
275
|
variant: selected ? "default" : "ghost",
|
|
276
276
|
"aria-pressed": selected,
|
|
277
|
-
className:
|
|
277
|
+
className: _chunk3CSPHMVKjs.cn.call(void 0, !selected && "text-muted-foreground"),
|
|
278
278
|
onClick: () => onSelect(option.value),
|
|
279
279
|
children: option.label
|
|
280
280
|
},
|
|
@@ -294,45 +294,45 @@ function withFilters(endpoint, filters) {
|
|
|
294
294
|
return endpoint;
|
|
295
295
|
}
|
|
296
296
|
_chunk7QVYU63Ejs.__name.call(void 0, withFilters, "withFilters");
|
|
297
|
-
var AnalyticsAdminService = class extends
|
|
297
|
+
var AnalyticsAdminService = class extends _chunk3CSPHMVKjs.AbstractService {
|
|
298
298
|
static {
|
|
299
299
|
_chunk7QVYU63Ejs.__name.call(void 0, this, "AnalyticsAdminService");
|
|
300
300
|
}
|
|
301
301
|
/** Headline tiles: one row per window (current, previous). */
|
|
302
302
|
static async getSummary(filters) {
|
|
303
|
-
const endpoint = withFilters(new (0,
|
|
303
|
+
const endpoint = withFilters(new (0, _chunk3CSPHMVKjs.EndpointCreator)({ endpoint: _chunk3CSPHMVKjs.Modules.AnalyticsSummary }), filters);
|
|
304
304
|
return this.callApi({
|
|
305
|
-
type:
|
|
305
|
+
type: _chunk3CSPHMVKjs.Modules.AnalyticsSummary,
|
|
306
306
|
method: "GET" /* GET */,
|
|
307
307
|
endpoint: endpoint.generate()
|
|
308
308
|
});
|
|
309
309
|
}
|
|
310
310
|
static async getTimeline(params) {
|
|
311
|
-
const endpoint = withFilters(new (0,
|
|
311
|
+
const endpoint = withFilters(new (0, _chunk3CSPHMVKjs.EndpointCreator)({ endpoint: _chunk3CSPHMVKjs.Modules.AnalyticsTimeline }), params);
|
|
312
312
|
endpoint.addAdditionalParam("granularity", params.granularity);
|
|
313
313
|
return this.callApi({
|
|
314
|
-
type:
|
|
314
|
+
type: _chunk3CSPHMVKjs.Modules.AnalyticsTimeline,
|
|
315
315
|
method: "GET" /* GET */,
|
|
316
316
|
endpoint: endpoint.generate()
|
|
317
317
|
});
|
|
318
318
|
}
|
|
319
319
|
static async getBreakdown(params) {
|
|
320
|
-
const endpoint = withFilters(new (0,
|
|
320
|
+
const endpoint = withFilters(new (0, _chunk3CSPHMVKjs.EndpointCreator)({ endpoint: _chunk3CSPHMVKjs.Modules.AnalyticsBreakdown }), params);
|
|
321
321
|
endpoint.addAdditionalParam("dimension", params.dimension);
|
|
322
322
|
if (params.limit !== void 0) endpoint.addAdditionalParam("limit", String(params.limit));
|
|
323
323
|
return this.callApi({
|
|
324
|
-
type:
|
|
324
|
+
type: _chunk3CSPHMVKjs.Modules.AnalyticsBreakdown,
|
|
325
325
|
method: "GET" /* GET */,
|
|
326
326
|
endpoint: endpoint.generate()
|
|
327
327
|
});
|
|
328
328
|
}
|
|
329
329
|
/** Newest sessions first, cursor-paginated through `next`. */
|
|
330
330
|
static async getSessions(params) {
|
|
331
|
-
const endpoint = withFilters(new (0,
|
|
331
|
+
const endpoint = withFilters(new (0, _chunk3CSPHMVKjs.EndpointCreator)({ endpoint: _chunk3CSPHMVKjs.Modules.AnalyticsSession }), params);
|
|
332
332
|
if (params.visitorId) endpoint.addAdditionalParam("visitorId", params.visitorId);
|
|
333
333
|
if (params.userId) endpoint.addAdditionalParam("userId", params.userId);
|
|
334
334
|
return this.callApi({
|
|
335
|
-
type:
|
|
335
|
+
type: _chunk3CSPHMVKjs.Modules.AnalyticsSession,
|
|
336
336
|
method: "GET" /* GET */,
|
|
337
337
|
endpoint: endpoint.generate(),
|
|
338
338
|
next: params.next
|
|
@@ -340,20 +340,20 @@ var AnalyticsAdminService = class extends _chunk5TH2DSAHjs.AbstractService {
|
|
|
340
340
|
}
|
|
341
341
|
static async getSession(params) {
|
|
342
342
|
return this.callApi({
|
|
343
|
-
type:
|
|
343
|
+
type: _chunk3CSPHMVKjs.Modules.AnalyticsSession,
|
|
344
344
|
method: "GET" /* GET */,
|
|
345
|
-
endpoint: new (0,
|
|
345
|
+
endpoint: new (0, _chunk3CSPHMVKjs.EndpointCreator)({ endpoint: _chunk3CSPHMVKjs.Modules.AnalyticsSession, id: params.id }).generate()
|
|
346
346
|
});
|
|
347
347
|
}
|
|
348
348
|
/** The journey: every page view of one session, oldest first. */
|
|
349
349
|
static async getSessionPageViews(params) {
|
|
350
350
|
return this.callApi({
|
|
351
|
-
type:
|
|
351
|
+
type: _chunk3CSPHMVKjs.Modules.AnalyticsPageView,
|
|
352
352
|
method: "GET" /* GET */,
|
|
353
|
-
endpoint: new (0,
|
|
354
|
-
endpoint:
|
|
353
|
+
endpoint: new (0, _chunk3CSPHMVKjs.EndpointCreator)({
|
|
354
|
+
endpoint: _chunk3CSPHMVKjs.Modules.AnalyticsSession,
|
|
355
355
|
id: params.sessionId,
|
|
356
|
-
childEndpoint:
|
|
356
|
+
childEndpoint: _chunk3CSPHMVKjs.Modules.AnalyticsPageView
|
|
357
357
|
}).generate()
|
|
358
358
|
});
|
|
359
359
|
}
|
|
@@ -449,7 +449,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
|
|
|
449
449
|
const sessionsNext = {};
|
|
450
450
|
try {
|
|
451
451
|
const nextSessions = await AnalyticsAdminService.next({
|
|
452
|
-
type:
|
|
452
|
+
type: _chunk3CSPHMVKjs.Modules.AnalyticsSession,
|
|
453
453
|
endpoint: sessionsNextPage,
|
|
454
454
|
next: sessionsNext
|
|
455
455
|
});
|
|
@@ -504,7 +504,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
|
|
|
504
504
|
error
|
|
505
505
|
]
|
|
506
506
|
);
|
|
507
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
507
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsAdminContext.Provider, { value: contextValue, children }) });
|
|
508
508
|
}, "AnalyticsAdminProvider");
|
|
509
509
|
var useAnalyticsAdmin = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
|
|
510
510
|
const ctx = _react.useContext.call(void 0, AnalyticsAdminContext);
|
|
@@ -524,7 +524,7 @@ var _lucidereact = require('lucide-react');
|
|
|
524
524
|
var ZERO = { visitors: 0, sessions: 0, pageViews: 0, pagesPerSession: 0, consentShare: 0 };
|
|
525
525
|
function AnalyticsAdminTiles({ summary }) {
|
|
526
526
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
527
|
-
const { decimal } =
|
|
527
|
+
const { decimal } = _chunkYG4YFAYYjs.useUsageFormatters.call(void 0, );
|
|
528
528
|
const rowFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (window2) => _nullishCoalesce(summary.find((r) => r.section === "total" && r.window === window2), () => ( ZERO)), "rowFor");
|
|
529
529
|
const current = rowFor("current");
|
|
530
530
|
const previous = rowFor("previous");
|
|
@@ -537,7 +537,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
537
537
|
testId: "analytics-tile-visitors",
|
|
538
538
|
label: t("analytics.admin.tiles.visitors"),
|
|
539
539
|
value: decimal(current.visitors, 0),
|
|
540
|
-
delta:
|
|
540
|
+
delta: _chunkYG4YFAYYjs.percentageDelta.call(void 0, current.visitors, previous.visitors),
|
|
541
541
|
previousLabel,
|
|
542
542
|
decimal
|
|
543
543
|
}
|
|
@@ -548,7 +548,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
548
548
|
testId: "analytics-tile-sessions",
|
|
549
549
|
label: t("analytics.admin.tiles.sessions"),
|
|
550
550
|
value: decimal(current.sessions, 0),
|
|
551
|
-
delta:
|
|
551
|
+
delta: _chunkYG4YFAYYjs.percentageDelta.call(void 0, current.sessions, previous.sessions),
|
|
552
552
|
previousLabel,
|
|
553
553
|
decimal
|
|
554
554
|
}
|
|
@@ -559,7 +559,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
559
559
|
testId: "analytics-tile-page-views",
|
|
560
560
|
label: t("analytics.admin.tiles.page_views"),
|
|
561
561
|
value: decimal(current.pageViews, 0),
|
|
562
|
-
delta:
|
|
562
|
+
delta: _chunkYG4YFAYYjs.percentageDelta.call(void 0, current.pageViews, previous.pageViews),
|
|
563
563
|
previousLabel,
|
|
564
564
|
decimal
|
|
565
565
|
}
|
|
@@ -572,7 +572,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
572
572
|
testId: "analytics-tile-pages-per-session",
|
|
573
573
|
label: t("analytics.admin.tiles.pages_per_session"),
|
|
574
574
|
value: decimal(current.pagesPerSession, 1),
|
|
575
|
-
delta:
|
|
575
|
+
delta: _chunkYG4YFAYYjs.percentageDelta.call(void 0, current.pagesPerSession, previous.pagesPerSession),
|
|
576
576
|
decimal
|
|
577
577
|
}
|
|
578
578
|
),
|
|
@@ -597,8 +597,8 @@ function LeadTile({
|
|
|
597
597
|
previousLabel,
|
|
598
598
|
decimal
|
|
599
599
|
}) {
|
|
600
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
601
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
600
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.Card, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.CardContent, { className: "grid gap-1", children: [
|
|
601
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.MicroLabel, { children: label }),
|
|
602
602
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: value }),
|
|
603
603
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1", children: [
|
|
604
604
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Delta, { testId: `${testId}-delta`, delta, decimal }),
|
|
@@ -614,8 +614,8 @@ function SupportingTile({
|
|
|
614
614
|
delta,
|
|
615
615
|
decimal
|
|
616
616
|
}) {
|
|
617
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
618
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
617
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.Card, { "data-testid": testId, size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.CardContent, { className: "grid gap-1", children: [
|
|
618
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.MicroLabel, { children: label }),
|
|
619
619
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
|
|
620
620
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: value }),
|
|
621
621
|
delta !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Delta, { testId: `${testId}-delta`, delta, decimal })
|
|
@@ -638,7 +638,7 @@ function Delta({
|
|
|
638
638
|
"span",
|
|
639
639
|
{
|
|
640
640
|
"data-testid": testId,
|
|
641
|
-
className:
|
|
641
|
+
className: _chunk3CSPHMVKjs.cn.call(void 0,
|
|
642
642
|
"inline-flex items-center gap-0.5 text-xs tabular-nums",
|
|
643
643
|
increased ? "text-success" : "text-destructive"
|
|
644
644
|
),
|
|
@@ -666,15 +666,15 @@ function AnalyticsBreakdownTable({ breakdowns }) {
|
|
|
666
666
|
route: t("analytics.admin.dimensions.route"),
|
|
667
667
|
landing: t("analytics.admin.dimensions.landing")
|
|
668
668
|
};
|
|
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,
|
|
669
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.Tabs, { defaultValue: ANALYTICS_DIMENSIONS[0], children: [
|
|
670
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.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, _chunkEXG4ANC7js.TabsTrigger, { value: dimension, children: labels[dimension] }, dimension)) }),
|
|
671
|
+
ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TabsContent, { value: dimension, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BreakdownRows, { rows: _nullishCoalesce(breakdowns[dimension], () => ( [])) }) }, dimension))
|
|
672
672
|
] });
|
|
673
673
|
}
|
|
674
674
|
_chunk7QVYU63Ejs.__name.call(void 0, AnalyticsBreakdownTable, "AnalyticsBreakdownTable");
|
|
675
675
|
function BreakdownRows({ rows }) {
|
|
676
676
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
677
|
-
const { decimal } =
|
|
677
|
+
const { decimal } = _chunkYG4YFAYYjs.useUsageFormatters.call(void 0, );
|
|
678
678
|
const sortedRows = _react.useMemo.call(void 0, () => [...rows].sort((a, b) => b.visitors - a.visitors), [rows]);
|
|
679
679
|
if (sortedRows.length === 0) {
|
|
680
680
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") });
|
|
@@ -683,18 +683,18 @@ function BreakdownRows({ rows }) {
|
|
|
683
683
|
// The package's <Table> wraps itself in an `overflow-x-clip` container, which
|
|
684
684
|
// would swallow the overflow before this scroller ever saw it — hence the
|
|
685
685
|
// 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,
|
|
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, _chunkEXG4ANC7js.Table, { children: [
|
|
687
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.TableRow, { children: [
|
|
688
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.key") }),
|
|
689
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.visitors") }),
|
|
690
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.sessions") }),
|
|
691
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.page_views") })
|
|
692
692
|
] }) }),
|
|
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,
|
|
693
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableBody, { children: sortedRows.map((row) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.TableRow, { "data-testid": `analytics-breakdown-row-${row.id}`, children: [
|
|
694
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-xs", children: row.key === OTHER_KEY ? t("analytics.admin.other") : row.key }),
|
|
695
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.visitors, 0) }),
|
|
696
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.sessions, 0) }),
|
|
697
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) })
|
|
698
698
|
] }, row.id)) })
|
|
699
699
|
] }) })
|
|
700
700
|
);
|
|
@@ -709,48 +709,48 @@ var VISITOR_SUFFIX_LENGTH = 6;
|
|
|
709
709
|
function AnalyticsSessionsTable({ rows, sessionPageUrl, onLoadMore, hasMore }) {
|
|
710
710
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
711
711
|
const locale = _nextintl.useLocale.call(void 0, );
|
|
712
|
-
const generateUrl =
|
|
713
|
-
const { decimal } =
|
|
712
|
+
const generateUrl = _chunkEXG4ANC7js.usePageUrlGenerator.call(void 0, );
|
|
713
|
+
const { decimal } = _chunkYG4YFAYYjs.useUsageFormatters.call(void 0, );
|
|
714
714
|
const dateTime = _react.useMemo.call(void 0, () => new Intl.DateTimeFormat(locale, { dateStyle: "short", timeStyle: "short" }), [locale]);
|
|
715
715
|
if (rows.length === 0) {
|
|
716
716
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") });
|
|
717
717
|
}
|
|
718
718
|
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,
|
|
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, _chunkEXG4ANC7js.Table, { children: [
|
|
720
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.TableRow, { children: [
|
|
721
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.started") }),
|
|
722
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.visitor") }),
|
|
723
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.source") }),
|
|
724
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.landing") }),
|
|
725
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.pages") }),
|
|
726
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.device") })
|
|
727
727
|
] }) }),
|
|
728
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
728
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableBody, { children: rows.map((row) => {
|
|
729
729
|
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
|
-
|
|
730
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.TableRow, { "data-testid": `analytics-session-row-${row.id}`, children: [
|
|
731
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-xs tabular-nums", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
732
|
+
_chunkEXG4ANC7js.Link,
|
|
733
733
|
{
|
|
734
734
|
href: generateUrl({ page: sessionPageUrl, id: row.id }),
|
|
735
735
|
"data-testid": `analytics-session-link-${row.id}`,
|
|
736
736
|
children: dateTime.format(row.startedAt)
|
|
737
737
|
}
|
|
738
738
|
) }),
|
|
739
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
739
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-xs", children: row.user ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col", children: [
|
|
740
740
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: row.user.name }),
|
|
741
741
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: row.user.email })
|
|
742
742
|
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
|
|
743
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
743
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
|
|
744
744
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs tabular-nums", children: row.visitorId.slice(-VISITOR_SUFFIX_LENGTH) })
|
|
745
745
|
] }) }),
|
|
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,
|
|
746
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-xs", children: source }),
|
|
747
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-xs", children: row.landingRoute }),
|
|
748
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) }),
|
|
749
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-muted-foreground text-xs", children: row.deviceType })
|
|
750
750
|
] }, row.id);
|
|
751
751
|
}) })
|
|
752
752
|
] }) }),
|
|
753
|
-
hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
753
|
+
hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.Button, { type: "button", variant: "outline", size: "sm", onClick: onLoadMore, children: t("analytics.admin.load_more") }) })
|
|
754
754
|
] });
|
|
755
755
|
}
|
|
756
756
|
_chunk7QVYU63Ejs.__name.call(void 0, AnalyticsSessionsTable, "AnalyticsSessionsTable");
|
|
@@ -782,7 +782,7 @@ var inferGranularity = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (buc
|
|
|
782
782
|
}, "inferGranularity");
|
|
783
783
|
function AnalyticsTimelineChart({ rows, className }) {
|
|
784
784
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
785
|
-
const { compact, bucketDate, decimal } =
|
|
785
|
+
const { compact, bucketDate, decimal } = _chunkYG4YFAYYjs.useUsageFormatters.call(void 0, );
|
|
786
786
|
const { resolvedTheme } = _nextthemes.useTheme.call(void 0, );
|
|
787
787
|
const mode = resolvedTheme === "dark" ? "dark" : "light";
|
|
788
788
|
const chartData = _react.useMemo.call(void 0, () => {
|
|
@@ -817,7 +817,7 @@ function AnalyticsTimelineChart({ rows, className }) {
|
|
|
817
817
|
// rtl-ok: deliberate LTR island (chart)
|
|
818
818
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className, dir: "ltr", children: [
|
|
819
819
|
/* @__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,
|
|
820
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.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
821
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _recharts.CartesianGrid, { vertical: false }),
|
|
822
822
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
823
823
|
_recharts.XAxis,
|
|
@@ -841,10 +841,10 @@ function AnalyticsTimelineChart({ rows, className }) {
|
|
|
841
841
|
}
|
|
842
842
|
),
|
|
843
843
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
844
|
-
|
|
844
|
+
_chunkEXG4ANC7js.ChartTooltip,
|
|
845
845
|
{
|
|
846
846
|
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
847
|
-
|
|
847
|
+
_chunkEXG4ANC7js.ChartTooltipContent,
|
|
848
848
|
{
|
|
849
849
|
labelFormatter: (value) => bucketDate(String(value), granularity),
|
|
850
850
|
valueFormatter: (value) => decimal(Number(value), 0)
|
|
@@ -852,13 +852,13 @@ function AnalyticsTimelineChart({ rows, className }) {
|
|
|
852
852
|
)
|
|
853
853
|
}
|
|
854
854
|
),
|
|
855
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
855
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.ChartLegend, { content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.ChartLegendContent, {}) }),
|
|
856
856
|
SERIES.map((series, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
857
857
|
_recharts.Bar,
|
|
858
858
|
{
|
|
859
859
|
dataKey: series,
|
|
860
860
|
maxBarSize: 28,
|
|
861
|
-
fill:
|
|
861
|
+
fill: _chunkYG4YFAYYjs.seriesColor.call(void 0, index, mode),
|
|
862
862
|
stroke: "var(--background)",
|
|
863
863
|
strokeWidth: 2,
|
|
864
864
|
radius: [4, 4, 0, 0]
|
|
@@ -887,25 +887,25 @@ function AnalyticsAdminContainer() {
|
|
|
887
887
|
error
|
|
888
888
|
} = useAnalyticsAdmin();
|
|
889
889
|
if (error) {
|
|
890
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
890
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.RoundPageContainer, { module: _chunk3CSPHMVKjs.Modules.AnalyticsSummary, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
|
|
891
891
|
}
|
|
892
|
-
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
893
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
892
|
+
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.RoundPageContainer, { module: _chunk3CSPHMVKjs.Modules.AnalyticsSummary, fullWidth: true, forceHeader: true });
|
|
893
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.RoundPageContainer, { module: _chunk3CSPHMVKjs.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
894
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
895
895
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsAdminTiles, { summary }),
|
|
896
896
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-xs", children: t("analytics.admin.tiles.summarised_note") })
|
|
897
897
|
] }),
|
|
898
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
899
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
900
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
898
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.Card, { children: [
|
|
899
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardTitle, { children: t("analytics.admin.panels.over_time") }) }),
|
|
900
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsTimelineChart, { rows: timeline }) })
|
|
901
901
|
] }),
|
|
902
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
903
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
904
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
902
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.Card, { children: [
|
|
903
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardTitle, { children: t("analytics.admin.panels.breakdown") }) }),
|
|
904
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsBreakdownTable, { breakdowns }) })
|
|
905
905
|
] }),
|
|
906
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
907
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
908
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
906
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.Card, { children: [
|
|
907
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardTitle, { children: t("analytics.admin.panels.sessions") }) }),
|
|
908
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
909
909
|
AnalyticsSessionsTable,
|
|
910
910
|
{
|
|
911
911
|
rows: sessions,
|
|
@@ -928,7 +928,7 @@ var OTHER_SESSIONS_WINDOW_DAYS = 395;
|
|
|
928
928
|
function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_URL }) {
|
|
929
929
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
930
930
|
const locale = _nextintl.useLocale.call(void 0, );
|
|
931
|
-
const generateUrl =
|
|
931
|
+
const generateUrl = _chunkEXG4ANC7js.usePageUrlGenerator.call(void 0, );
|
|
932
932
|
const [session, setSession] = _react.useState.call(void 0, void 0);
|
|
933
933
|
const [pageViews, setPageViews] = _react.useState.call(void 0, []);
|
|
934
934
|
const [otherSessions, setOtherSessions] = _react.useState.call(void 0, []);
|
|
@@ -984,26 +984,26 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
|
|
|
984
984
|
const title = { type: t("analytics.admin.panels.journey") };
|
|
985
985
|
const renderBody = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
|
|
986
986
|
if (error) {
|
|
987
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
987
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.RoundPageContainer, { module: _chunk3CSPHMVKjs.Modules.AnalyticsSession, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
|
|
988
988
|
}
|
|
989
|
-
if (isLoading || !session) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
989
|
+
if (isLoading || !session) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.RoundPageContainer, { module: _chunk3CSPHMVKjs.Modules.AnalyticsSession, fullWidth: true, forceHeader: true });
|
|
990
990
|
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,
|
|
991
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.RoundPageContainer, { module: _chunk3CSPHMVKjs.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: [
|
|
992
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.Card, { "data-testid": "analytics-journey-attribution", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.CardContent, { className: "flex flex-col gap-3", children: [
|
|
993
993
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
994
994
|
session.user ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col", children: [
|
|
995
995
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: session.user.name }),
|
|
996
996
|
/* @__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,
|
|
997
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
|
|
998
|
+
session.consented ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.Badge, { variant: "softGreen", children: t("analytics.admin.consented") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.Badge, { variant: "softGray", children: t("analytics.admin.not_consented") })
|
|
999
999
|
] }),
|
|
1000
1000
|
/* @__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,
|
|
1001
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.DetailField, { label: t("analytics.admin.columns.started"), value: dateTime.format(session.startedAt) }),
|
|
1002
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.DetailField, { label: t("analytics.admin.columns.source"), value: source }),
|
|
1003
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.DetailField, { label: t("analytics.admin.columns.landing"), value: session.landingRoute }),
|
|
1004
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.DetailField, { label: t("analytics.admin.columns.device"), value: session.deviceType }),
|
|
1005
1005
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1006
|
-
|
|
1006
|
+
_chunkEXG4ANC7js.DetailField,
|
|
1007
1007
|
{
|
|
1008
1008
|
label: t("analytics.admin.columns.visitor"),
|
|
1009
1009
|
value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: session.visitorId })
|
|
@@ -1011,31 +1011,31 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
|
|
|
1011
1011
|
)
|
|
1012
1012
|
] })
|
|
1013
1013
|
] }) }),
|
|
1014
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1015
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1016
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1014
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.Card, { children: [
|
|
1015
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardTitle, { children: t("analytics.admin.columns.pages") }) }),
|
|
1016
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.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
1017
|
// The package's <Table> wraps itself in an `overflow-x-clip`
|
|
1018
1018
|
// 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,
|
|
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, _chunkEXG4ANC7js.Table, { children: [
|
|
1020
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.TableRow, { children: [
|
|
1021
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.time") }),
|
|
1022
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.gap") }),
|
|
1023
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.path") })
|
|
1024
1024
|
] }) }),
|
|
1025
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1025
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableBody, { children: pageViews.map((pageView, index) => {
|
|
1026
1026
|
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,
|
|
1027
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.TableRow, { "data-testid": `analytics-pageview-row-${pageView.id}`, children: [
|
|
1028
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-xs tabular-nums", children: dateTime.format(pageView.createdAt) }),
|
|
1029
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-end text-xs tabular-nums", children: previous ? formatGap(pageView.createdAt.getTime() - previous.createdAt.getTime()) : "\u2014" }),
|
|
1030
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.TableCell, { className: "text-xs", children: pageView.path })
|
|
1031
1031
|
] }, pageView.id);
|
|
1032
1032
|
}) })
|
|
1033
1033
|
] }) })
|
|
1034
1034
|
) })
|
|
1035
1035
|
] }),
|
|
1036
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1037
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1038
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1036
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEXG4ANC7js.Card, { children: [
|
|
1037
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardTitle, { children: t("analytics.admin.panels.other_sessions") }) }),
|
|
1038
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1039
1039
|
AnalyticsSessionsTable,
|
|
1040
1040
|
{
|
|
1041
1041
|
rows: otherSessions,
|
|
@@ -1047,7 +1047,7 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
|
|
|
1047
1047
|
] })
|
|
1048
1048
|
] }) });
|
|
1049
1049
|
}, "renderBody");
|
|
1050
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1050
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEXG4ANC7js.SharedProvider, { value: { breadcrumbs: breadcrumb, title }, children: renderBody() });
|
|
1051
1051
|
}
|
|
1052
1052
|
_chunk7QVYU63Ejs.__name.call(void 0, AnalyticsJourneyContainer, "AnalyticsJourneyContainer");
|
|
1053
1053
|
function unit(locale, name, value) {
|
|
@@ -1155,5 +1155,5 @@ var ANALYTICS_ADMIN_I18N_KEYS = [
|
|
|
1155
1155
|
|
|
1156
1156
|
|
|
1157
1157
|
|
|
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 =
|
|
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 = _chunk3CSPHMVKjs.AnalyticsBreakdown; exports.AnalyticsBreakdownTable = AnalyticsBreakdownTable; exports.AnalyticsEvent = _chunk3CSPHMVKjs.AnalyticsEvent; exports.AnalyticsJourneyContainer = AnalyticsJourneyContainer; exports.AnalyticsJourneyPageContainer = AnalyticsJourneyPageContainer; exports.AnalyticsPageView = _chunk3CSPHMVKjs.AnalyticsPageView; exports.AnalyticsService = AnalyticsService; exports.AnalyticsSession = _chunk3CSPHMVKjs.AnalyticsSession; exports.AnalyticsSessionsTable = AnalyticsSessionsTable; exports.AnalyticsSummary = _chunk3CSPHMVKjs.AnalyticsSummary; exports.AnalyticsTimeline = _chunk3CSPHMVKjs.AnalyticsTimeline; exports.AnalyticsTimelineChart = AnalyticsTimelineChart; exports.AnalyticsTracker = AnalyticsTracker; exports.analyticsModules = _chunk3CSPHMVKjs.analyticsModules; exports.useAnalyticsAdmin = useAnalyticsAdmin;
|
|
1159
1159
|
//# sourceMappingURL=index.js.map
|