@carlonicora/nextjs-jsonapi 6.23.0 → 6.25.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/{BlockNoteEditor-PPRML5CO.js → BlockNoteEditor-TNX77GCD.js} +28 -25
- package/dist/BlockNoteEditor-TNX77GCD.js.map +1 -0
- package/dist/{BlockNoteEditor-UO4ZRCUM.mjs → BlockNoteEditor-Z5LDF47Z.mjs} +13 -10
- package/dist/{BlockNoteEditor-UO4ZRCUM.mjs.map → BlockNoteEditor-Z5LDF47Z.mjs.map} +1 -1
- package/dist/{BlockNoteViewer-K2HBF3IP.js → BlockNoteViewer-6KQJODNF.js} +9 -7
- package/dist/BlockNoteViewer-6KQJODNF.js.map +1 -0
- package/dist/{BlockNoteViewer-2TJZ6JET.mjs → BlockNoteViewer-TQ452ZYW.mjs} +8 -6
- package/dist/{BlockNoteViewer-2TJZ6JET.mjs.map → BlockNoteViewer-TQ452ZYW.mjs.map} +1 -1
- package/dist/JsonApiRequest-OKNQZLS6.js +26 -0
- package/dist/{JsonApiRequest-KC6DOHKT.js.map → JsonApiRequest-OKNQZLS6.js.map} +1 -1
- package/dist/{JsonApiRequest-ADLBJ5RX.mjs → JsonApiRequest-WNPDS356.mjs} +2 -2
- package/dist/billing/index.js +504 -517
- package/dist/billing/index.js.map +1 -1
- package/dist/billing/index.mjs +20 -33
- package/dist/billing/index.mjs.map +1 -1
- package/dist/{chunk-VNUT2D27.mjs → chunk-2PWYG2WJ.mjs} +2 -2
- package/dist/{chunk-W4ML6D2X.mjs → chunk-3U7YJ73T.mjs} +7 -7
- package/dist/{chunk-BQ2WAG4K.js → chunk-3VNDFKT7.js} +19 -19
- package/dist/{chunk-BQ2WAG4K.js.map → chunk-3VNDFKT7.js.map} +1 -1
- package/dist/{chunk-BE6UMM5X.mjs → chunk-47HNJQ7U.mjs} +3 -3
- package/dist/chunk-5T2AQMQ2.mjs +90 -0
- package/dist/chunk-5T2AQMQ2.mjs.map +1 -0
- package/dist/{chunk-A5M3MORY.js → chunk-5WM72MLE.js} +3 -3
- package/dist/{chunk-A5M3MORY.js.map → chunk-5WM72MLE.js.map} +1 -1
- package/dist/{chunk-S7SPAC6X.mjs → chunk-73NKUBMP.mjs} +3 -3
- package/dist/chunk-743M4TIB.mjs +76 -0
- package/dist/chunk-743M4TIB.mjs.map +1 -0
- package/dist/{chunk-HN7L6RRW.js → chunk-CSBQAPHD.js} +903 -955
- package/dist/chunk-CSBQAPHD.js.map +1 -0
- package/dist/{chunk-YTDGYI62.mjs → chunk-DWPHHUMV.mjs} +3 -3
- package/dist/{chunk-53SD4YRF.js → chunk-FBHUUPRV.js} +5 -5
- package/dist/{chunk-53SD4YRF.js.map → chunk-FBHUUPRV.js.map} +1 -1
- package/dist/{chunk-T6G2F2BK.mjs → chunk-HJT7TXGG.mjs} +16 -68
- package/dist/chunk-HJT7TXGG.mjs.map +1 -0
- package/dist/chunk-HROKKUBQ.js +156 -0
- package/dist/chunk-HROKKUBQ.js.map +1 -0
- package/dist/{chunk-TMV7TL7O.mjs → chunk-JELEQV5T.mjs} +8 -6
- package/dist/{chunk-TMV7TL7O.mjs.map → chunk-JELEQV5T.mjs.map} +1 -1
- package/dist/{chunk-TNTCLVUR.js → chunk-JGL4P3DS.js} +17 -15
- package/dist/chunk-JGL4P3DS.js.map +1 -0
- package/dist/{chunk-7OIWOPM5.mjs → chunk-K7KLUYS7.mjs} +4 -3
- package/dist/chunk-K7KLUYS7.mjs.map +1 -0
- package/dist/{chunk-HP6DT6K3.mjs → chunk-KVYYPKRO.mjs} +311 -241
- package/dist/chunk-KVYYPKRO.mjs.map +1 -0
- package/dist/{chunk-RCOKQ3R4.js → chunk-LNO2JLU3.js} +2 -2
- package/dist/{chunk-RCOKQ3R4.js.map → chunk-LNO2JLU3.js.map} +1 -1
- package/dist/{chunk-R5722NLL.js → chunk-M6SNTMK6.js} +1388 -1318
- package/dist/chunk-M6SNTMK6.js.map +1 -0
- package/dist/{chunk-GMMDXINC.js → chunk-N3NQS7X6.js} +12 -12
- package/dist/{chunk-GMMDXINC.js.map → chunk-N3NQS7X6.js.map} +1 -1
- package/dist/chunk-NP3AFULU.js +76 -0
- package/dist/chunk-NP3AFULU.js.map +1 -0
- package/dist/{chunk-SO3YUCL6.js → chunk-OOM54Z5Z.js} +6 -5
- package/dist/chunk-OOM54Z5Z.js.map +1 -0
- package/dist/{chunk-YSE2Z4RB.js → chunk-PQQFOONG.js} +12 -12
- package/dist/{chunk-YSE2Z4RB.js.map → chunk-PQQFOONG.js.map} +1 -1
- package/dist/chunk-RW6XZGZG.mjs +156 -0
- package/dist/chunk-RW6XZGZG.mjs.map +1 -0
- package/dist/chunk-SYMI4IDW.js +90 -0
- package/dist/chunk-SYMI4IDW.js.map +1 -0
- package/dist/{chunk-N2BFT7KI.mjs → chunk-W7U6O3OE.mjs} +2 -71
- package/dist/chunk-W7U6O3OE.mjs.map +1 -0
- package/dist/{chunk-YMCL3JXZ.mjs → chunk-YPBIPE2B.mjs} +2 -2
- package/dist/{chunk-P7L6OFX5.js → chunk-Z6T2575A.js} +12 -81
- package/dist/chunk-Z6T2575A.js.map +1 -0
- package/dist/client/index.js +13 -10
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +17 -14
- package/dist/components/forms/DatePickerPopover.d.ts.map +1 -1
- package/dist/components/forms/DateRangeSelector.d.ts.map +1 -1
- package/dist/components/forms/EditorSheet.d.ts +6 -1
- package/dist/components/forms/EditorSheet.d.ts.map +1 -1
- package/dist/components/forms/FormDate.d.ts.map +1 -1
- package/dist/components/forms/FormDateTime.d.ts.map +1 -1
- package/dist/components/forms/time-cycle.d.ts +14 -0
- package/dist/components/forms/time-cycle.d.ts.map +1 -0
- package/dist/components/index.js +11 -8
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +10 -7
- package/dist/components/tables/cells/cell.date.d.ts.map +1 -1
- package/dist/components/tables/cells/cell.dateTime.d.ts.map +1 -1
- package/dist/contexts/DateLocaleContext.d.ts +56 -0
- package/dist/contexts/DateLocaleContext.d.ts.map +1 -0
- package/dist/contexts/index.d.ts +1 -0
- package/dist/contexts/index.d.ts.map +1 -1
- package/dist/contexts/index.js +24 -8
- package/dist/contexts/index.js.map +1 -1
- package/dist/contexts/index.mjs +23 -7
- package/dist/core/index.js +17 -6
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +19 -8
- package/dist/date-locale/index.d.ts +2 -0
- package/dist/date-locale/index.d.ts.map +1 -0
- package/dist/date-locale/index.js +21 -0
- package/dist/date-locale/index.js.map +1 -0
- package/dist/date-locale/index.mjs +21 -0
- package/dist/email-automations/index.js +131 -123
- package/dist/email-automations/index.js.map +1 -1
- package/dist/email-automations/index.mjs +23 -15
- package/dist/email-automations/index.mjs.map +1 -1
- package/dist/features/account-deletion/components/AccountDeletionAdminTrigger.d.ts.map +1 -1
- package/dist/features/analytics/components/AnalyticsJourneyContainer.d.ts.map +1 -1
- package/dist/features/analytics/components/AnalyticsSessionsTable.d.ts.map +1 -1
- package/dist/features/analytics/index.js +154 -147
- package/dist/features/analytics/index.js.map +1 -1
- package/dist/features/analytics/index.mjs +32 -25
- package/dist/features/analytics/index.mjs.map +1 -1
- package/dist/features/analytics/server.js +11 -9
- package/dist/features/analytics/server.js.map +1 -1
- package/dist/features/analytics/server.mjs +9 -7
- package/dist/features/analytics/server.mjs.map +1 -1
- package/dist/features/billing/components/utils/date.d.ts +3 -3
- package/dist/features/billing/components/utils/format-options.d.ts +6 -4
- package/dist/features/billing/components/utils/format-options.d.ts.map +1 -1
- package/dist/features/billing/components/utils/useBillingFormatOptions.d.ts +5 -1
- package/dist/features/billing/components/utils/useBillingFormatOptions.d.ts.map +1 -1
- package/dist/features/billing/stripe-usage/components/details/UsageSummaryCard.d.ts.map +1 -1
- package/dist/features/billing/stripe-usage/components/lists/UsageHistoryTable.d.ts.map +1 -1
- package/dist/features/blog/components/admin/BlogTranslationStatus.d.ts.map +1 -1
- package/dist/features/blog/components/public/BlogPostMeta.d.ts.map +1 -1
- package/dist/features/blog/hooks/useBlogPostTableStructure.d.ts.map +1 -1
- package/dist/features/blog/index.js +168 -162
- package/dist/features/blog/index.js.map +1 -1
- package/dist/features/blog/index.mjs +25 -19
- package/dist/features/blog/index.mjs.map +1 -1
- package/dist/features/blog/server.js +29 -27
- package/dist/features/blog/server.js.map +1 -1
- package/dist/features/blog/server.mjs +8 -6
- package/dist/features/blog/server.mjs.map +1 -1
- package/dist/features/email-automation/hooks/useEmailAutomationEnrollmentTableStructure.d.ts.map +1 -1
- package/dist/features/handbook/components/parts/HandbookIndexStatus.d.ts.map +1 -1
- package/dist/features/help/components/HelpArticleBody.d.ts.map +1 -1
- package/dist/features/help/index.js +48 -43
- package/dist/features/help/index.js.map +1 -1
- package/dist/features/help/index.mjs +15 -10
- package/dist/features/help/index.mjs.map +1 -1
- package/dist/features/notification/components/notifications/Notification.d.ts +2 -1
- package/dist/features/notification/components/notifications/Notification.d.ts.map +1 -1
- package/dist/features/notification/contexts/NotificationContext.d.ts.map +1 -1
- package/dist/features/notification/hooks/useNotificationTableStructure.d.ts.map +1 -1
- package/dist/features/oauth/components/OAuthClientCard.d.ts.map +1 -1
- package/dist/features/oauth/components/OAuthClientDetail.d.ts.map +1 -1
- package/dist/features/tokenusage/index.js +133 -130
- package/dist/features/tokenusage/index.js.map +1 -1
- package/dist/features/tokenusage/index.mjs +10 -7
- package/dist/features/tokenusage/index.mjs.map +1 -1
- package/dist/features/tokenusage/lib/formatters.d.ts +6 -3
- package/dist/features/tokenusage/lib/formatters.d.ts.map +1 -1
- package/dist/index.js +19 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +23 -11
- package/dist/local-transport-AT4TE264.js +15 -0
- package/dist/{local-transport-MJPOKPTU.js.map → local-transport-AT4TE264.js.map} +1 -1
- package/dist/{local-transport-RVD4FZGA.mjs → local-transport-KWEUZ4GX.mjs} +5 -5
- package/dist/offline/index.js +56 -54
- package/dist/offline/index.js.map +1 -1
- package/dist/offline/index.mjs +23 -21
- package/dist/offline/index.mjs.map +1 -1
- package/dist/{request-4AWGPIGH.mjs → request-6GAIWWTG.mjs} +2 -2
- package/dist/{request-H5FZBZA2.js → request-BWO4Y434.js} +3 -3
- package/dist/{request-H5FZBZA2.js.map → request-BWO4Y434.js.map} +1 -1
- package/dist/server/ServerSession.d.ts +2 -0
- package/dist/server/ServerSession.d.ts.map +1 -1
- package/dist/server/index.js +10 -8
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +9 -7
- package/dist/utils/date-formatter.d.ts +45 -4
- package/dist/utils/date-formatter.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/write-through-KNRI5L4V.mjs +15 -0
- package/dist/write-through-KNRI5L4V.mjs.map +1 -0
- package/dist/write-through-MYHQ6GJU.js +15 -0
- package/dist/{write-through-HE2QSOVI.js.map → write-through-MYHQ6GJU.js.map} +1 -1
- package/messages/en.json +1 -0
- package/messages/it.json +1 -0
- package/package.json +6 -1
- package/src/components/forms/DatePickerPopover.tsx +5 -3
- package/src/components/forms/DateRangeSelector.tsx +9 -7
- package/src/components/forms/EditorSheet.tsx +8 -0
- package/src/components/forms/FormDate.tsx +5 -3
- package/src/components/forms/FormDateTime.tsx +75 -39
- package/src/components/forms/__tests__/EditorSheet.spec.tsx +30 -0
- package/src/components/forms/__tests__/time-cycle.spec.ts +37 -0
- package/src/components/forms/time-cycle.ts +27 -0
- package/src/components/tables/cells/cell.date.tsx +3 -5
- package/src/components/tables/cells/cell.dateTime.tsx +3 -7
- package/src/contexts/DateLocaleContext.tsx +106 -0
- package/src/contexts/__tests__/DateLocaleContext.spec.tsx +175 -0
- package/src/contexts/index.ts +1 -0
- package/src/date-locale/index.ts +12 -0
- package/src/features/account-deletion/components/AccountDeletionAdminTrigger.tsx +3 -4
- package/src/features/analytics/components/AnalyticsJourneyContainer.tsx +8 -8
- package/src/features/analytics/components/AnalyticsSessionsTable.tsx +4 -6
- package/src/features/auth/components/two-factor/PasskeyList.tsx +3 -3
- package/src/features/auth/components/two-factor/TotpAuthenticatorList.tsx +3 -3
- package/src/features/billing/components/utils/__tests__/billing-formatters.spec.ts +14 -6
- package/src/features/billing/components/utils/date.ts +5 -5
- package/src/features/billing/components/utils/format-options.ts +6 -4
- package/src/features/billing/components/utils/useBillingFormatOptions.ts +8 -2
- package/src/features/billing/stripe-usage/components/details/UsageSummaryCard.tsx +4 -12
- package/src/features/billing/stripe-usage/components/lists/UsageHistoryTable.tsx +4 -17
- package/src/features/blog/components/admin/BlogTranslationStatus.tsx +3 -2
- package/src/features/blog/components/public/BlogPostMeta.tsx +5 -4
- package/src/features/blog/components/public/__tests__/BlogList.spec.tsx +1 -2
- package/src/features/blog/components/public/__tests__/BlogPostView.spec.tsx +2 -3
- package/src/features/blog/hooks/useBlogPostTableStructure.tsx +4 -8
- package/src/features/email-automation/hooks/useEmailAutomationEnrollmentTableStructure.tsx +11 -5
- package/src/features/email-blast/components/containers/EmailBlastContainer.tsx +3 -3
- package/src/features/email-blast/hooks/useEmailBlastTableStructure.tsx +4 -4
- package/src/features/handbook/components/parts/HandbookIndexStatus.tsx +4 -3
- package/src/features/help/components/HelpArticleBody.tsx +4 -3
- package/src/features/notification/components/notifications/Notification.tsx +38 -7
- package/src/features/notification/contexts/NotificationContext.tsx +6 -3
- package/src/features/notification/hooks/useNotificationTableStructure.tsx +6 -5
- package/src/features/oauth/components/OAuthClientCard.tsx +8 -5
- package/src/features/oauth/components/OAuthClientDetail.tsx +3 -6
- package/src/features/tokenusage/lib/__tests__/formatters.spec.ts +19 -0
- package/src/features/tokenusage/lib/formatters.ts +11 -6
- package/src/features/waitlist/hooks/useWaitlistTableStructure.tsx +5 -5
- package/src/server/ServerSession.ts +3 -0
- package/src/server/__tests__/ServerSession.read.spec.ts +18 -1
- package/src/utils/__tests__/date-formatter.spec.ts +134 -10
- package/src/utils/date-formatter.ts +200 -44
- package/src/utils/index.ts +11 -1
- package/dist/BlockNoteEditor-PPRML5CO.js.map +0 -1
- package/dist/BlockNoteViewer-K2HBF3IP.js.map +0 -1
- package/dist/JsonApiRequest-KC6DOHKT.js +0 -26
- package/dist/chunk-7OIWOPM5.mjs.map +0 -1
- package/dist/chunk-HN7L6RRW.js.map +0 -1
- package/dist/chunk-HP6DT6K3.mjs.map +0 -1
- package/dist/chunk-N2BFT7KI.mjs.map +0 -1
- package/dist/chunk-P7L6OFX5.js.map +0 -1
- package/dist/chunk-R5722NLL.js.map +0 -1
- package/dist/chunk-SO3YUCL6.js.map +0 -1
- package/dist/chunk-T6G2F2BK.mjs.map +0 -1
- package/dist/chunk-TNTCLVUR.js.map +0 -1
- package/dist/local-transport-MJPOKPTU.js +0 -15
- package/dist/write-through-7I3LA2WN.mjs +0 -15
- package/dist/write-through-HE2QSOVI.js +0 -15
- /package/dist/{JsonApiRequest-ADLBJ5RX.mjs.map → JsonApiRequest-WNPDS356.mjs.map} +0 -0
- /package/dist/{chunk-VNUT2D27.mjs.map → chunk-2PWYG2WJ.mjs.map} +0 -0
- /package/dist/{chunk-W4ML6D2X.mjs.map → chunk-3U7YJ73T.mjs.map} +0 -0
- /package/dist/{chunk-BE6UMM5X.mjs.map → chunk-47HNJQ7U.mjs.map} +0 -0
- /package/dist/{chunk-S7SPAC6X.mjs.map → chunk-73NKUBMP.mjs.map} +0 -0
- /package/dist/{chunk-YTDGYI62.mjs.map → chunk-DWPHHUMV.mjs.map} +0 -0
- /package/dist/{chunk-YMCL3JXZ.mjs.map → chunk-YPBIPE2B.mjs.map} +0 -0
- /package/dist/{local-transport-RVD4FZGA.mjs.map → date-locale/index.mjs.map} +0 -0
- /package/dist/{request-4AWGPIGH.mjs.map → local-transport-KWEUZ4GX.mjs.map} +0 -0
- /package/dist/{write-through-7I3LA2WN.mjs.map → request-6GAIWWTG.mjs.map} +0 -0
|
@@ -31,9 +31,12 @@
|
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var _chunkM6SNTMK6js = require('../../chunk-M6SNTMK6.js');
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
var _chunkSYMI4IDWjs = require('../../chunk-SYMI4IDW.js');
|
|
35
38
|
require('../../chunk-3EPNHTMH.js');
|
|
36
|
-
require('../../chunk-
|
|
39
|
+
require('../../chunk-JGL4P3DS.js');
|
|
37
40
|
require('../../chunk-G4JR3SFV.js');
|
|
38
41
|
|
|
39
42
|
|
|
@@ -46,18 +49,21 @@ require('../../chunk-G4JR3SFV.js');
|
|
|
46
49
|
|
|
47
50
|
|
|
48
51
|
|
|
52
|
+
var _chunkCSBQAPHDjs = require('../../chunk-CSBQAPHD.js');
|
|
53
|
+
|
|
49
54
|
|
|
50
|
-
var
|
|
55
|
+
var _chunkHROKKUBQjs = require('../../chunk-HROKKUBQ.js');
|
|
51
56
|
require('../../chunk-DGN3PR2F.js');
|
|
52
57
|
|
|
53
58
|
|
|
54
59
|
|
|
55
|
-
var
|
|
56
|
-
require('../../chunk-
|
|
57
|
-
require('../../chunk-
|
|
60
|
+
var _chunkZ6T2575Ajs = require('../../chunk-Z6T2575A.js');
|
|
61
|
+
require('../../chunk-3VNDFKT7.js');
|
|
62
|
+
require('../../chunk-5WM72MLE.js');
|
|
58
63
|
require('../../chunk-WUNSG3IN.js');
|
|
59
|
-
require('../../chunk-
|
|
64
|
+
require('../../chunk-LNO2JLU3.js');
|
|
60
65
|
require('../../chunk-LXKSUWAV.js');
|
|
66
|
+
require('../../chunk-NP3AFULU.js');
|
|
61
67
|
|
|
62
68
|
|
|
63
69
|
var _chunk7QVYU63Ejs = require('../../chunk-7QVYU63E.js');
|
|
@@ -68,7 +74,7 @@ var _react = require('react');
|
|
|
68
74
|
var _uuid = require('uuid');
|
|
69
75
|
|
|
70
76
|
// src/features/analytics/data/AnalyticsService.ts
|
|
71
|
-
var AnalyticsService = class extends
|
|
77
|
+
var AnalyticsService = class extends _chunkCSBQAPHDjs.AbstractService {
|
|
72
78
|
static {
|
|
73
79
|
_chunk7QVYU63Ejs.__name.call(void 0, this, "AnalyticsService");
|
|
74
80
|
}
|
|
@@ -80,9 +86,9 @@ var AnalyticsService = class extends _chunkHN7L6RRWjs.AbstractService {
|
|
|
80
86
|
static async track(input) {
|
|
81
87
|
try {
|
|
82
88
|
await this.callApi({
|
|
83
|
-
type:
|
|
89
|
+
type: _chunkZ6T2575Ajs.Modules.AnalyticsEvent,
|
|
84
90
|
method: "POST" /* POST */,
|
|
85
|
-
endpoint: new (0,
|
|
91
|
+
endpoint: new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.AnalyticsEvent }).generate(),
|
|
86
92
|
input,
|
|
87
93
|
suppressGlobalError: true
|
|
88
94
|
});
|
|
@@ -231,7 +237,7 @@ function AnalyticsAdminFilterBar({ section, granularity, onChange }) {
|
|
|
231
237
|
};
|
|
232
238
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
233
239
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-md:w-full max-md:[&_#date]:w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
234
|
-
|
|
240
|
+
_chunkM6SNTMK6js.DateRangeSelector,
|
|
235
241
|
{
|
|
236
242
|
onDateChange: (range) => {
|
|
237
243
|
if (!_optionalChain([range, 'optionalAccess', _ => _.from]) || !_optionalChain([range, 'optionalAccess', _2 => _2.to])) return;
|
|
@@ -275,13 +281,13 @@ function Segmented({
|
|
|
275
281
|
children: options.map((option) => {
|
|
276
282
|
const selected = option.value === value;
|
|
277
283
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
278
|
-
|
|
284
|
+
_chunkM6SNTMK6js.Button,
|
|
279
285
|
{
|
|
280
286
|
type: "button",
|
|
281
287
|
size: "sm",
|
|
282
288
|
variant: selected ? "default" : "ghost",
|
|
283
289
|
"aria-pressed": selected,
|
|
284
|
-
className:
|
|
290
|
+
className: _chunkCSBQAPHDjs.cn.call(void 0, !selected && "text-muted-foreground"),
|
|
285
291
|
onClick: () => onSelect(option.value),
|
|
286
292
|
children: option.label
|
|
287
293
|
},
|
|
@@ -301,24 +307,24 @@ function withFilters(endpoint, filters) {
|
|
|
301
307
|
return endpoint;
|
|
302
308
|
}
|
|
303
309
|
_chunk7QVYU63Ejs.__name.call(void 0, withFilters, "withFilters");
|
|
304
|
-
var AnalyticsAdminService = class extends
|
|
310
|
+
var AnalyticsAdminService = class extends _chunkCSBQAPHDjs.AbstractService {
|
|
305
311
|
static {
|
|
306
312
|
_chunk7QVYU63Ejs.__name.call(void 0, this, "AnalyticsAdminService");
|
|
307
313
|
}
|
|
308
314
|
/** Headline tiles: one row per window (current, previous). */
|
|
309
315
|
static async getSummary(filters) {
|
|
310
|
-
const endpoint = withFilters(new (0,
|
|
316
|
+
const endpoint = withFilters(new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.AnalyticsSummary }), filters);
|
|
311
317
|
return this.callApi({
|
|
312
|
-
type:
|
|
318
|
+
type: _chunkZ6T2575Ajs.Modules.AnalyticsSummary,
|
|
313
319
|
method: "GET" /* GET */,
|
|
314
320
|
endpoint: endpoint.generate()
|
|
315
321
|
});
|
|
316
322
|
}
|
|
317
323
|
static async getTimeline(params) {
|
|
318
|
-
const endpoint = withFilters(new (0,
|
|
324
|
+
const endpoint = withFilters(new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.AnalyticsTimeline }), params);
|
|
319
325
|
endpoint.addAdditionalParam("granularity", params.granularity);
|
|
320
326
|
return this.callApi({
|
|
321
|
-
type:
|
|
327
|
+
type: _chunkZ6T2575Ajs.Modules.AnalyticsTimeline,
|
|
322
328
|
method: "GET" /* GET */,
|
|
323
329
|
endpoint: endpoint.generate()
|
|
324
330
|
});
|
|
@@ -328,32 +334,32 @@ var AnalyticsAdminService = class extends _chunkHN7L6RRWjs.AbstractService {
|
|
|
328
334
|
* Always daily and never filtered by section, so it skips withFilters.
|
|
329
335
|
*/
|
|
330
336
|
static async getDailyUniques(params) {
|
|
331
|
-
const endpoint = new (0,
|
|
337
|
+
const endpoint = new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.AnalyticsDailyUniqueTimeline });
|
|
332
338
|
endpoint.addAdditionalParam("fromDate", params.fromDate);
|
|
333
339
|
endpoint.addAdditionalParam("toDate", params.toDate);
|
|
334
340
|
return this.callApi({
|
|
335
|
-
type:
|
|
341
|
+
type: _chunkZ6T2575Ajs.Modules.AnalyticsDailyUniqueTimeline,
|
|
336
342
|
method: "GET" /* GET */,
|
|
337
343
|
endpoint: endpoint.generate()
|
|
338
344
|
});
|
|
339
345
|
}
|
|
340
346
|
static async getBreakdown(params) {
|
|
341
|
-
const endpoint = withFilters(new (0,
|
|
347
|
+
const endpoint = withFilters(new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.AnalyticsBreakdown }), params);
|
|
342
348
|
endpoint.addAdditionalParam("dimension", params.dimension);
|
|
343
349
|
if (params.limit !== void 0) endpoint.addAdditionalParam("limit", String(params.limit));
|
|
344
350
|
return this.callApi({
|
|
345
|
-
type:
|
|
351
|
+
type: _chunkZ6T2575Ajs.Modules.AnalyticsBreakdown,
|
|
346
352
|
method: "GET" /* GET */,
|
|
347
353
|
endpoint: endpoint.generate()
|
|
348
354
|
});
|
|
349
355
|
}
|
|
350
356
|
/** Newest sessions first, cursor-paginated through `next`. */
|
|
351
357
|
static async getSessions(params) {
|
|
352
|
-
const endpoint = withFilters(new (0,
|
|
358
|
+
const endpoint = withFilters(new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.AnalyticsSession }), params);
|
|
353
359
|
if (params.visitorId) endpoint.addAdditionalParam("visitorId", params.visitorId);
|
|
354
360
|
if (params.userId) endpoint.addAdditionalParam("userId", params.userId);
|
|
355
361
|
return this.callApi({
|
|
356
|
-
type:
|
|
362
|
+
type: _chunkZ6T2575Ajs.Modules.AnalyticsSession,
|
|
357
363
|
method: "GET" /* GET */,
|
|
358
364
|
endpoint: endpoint.generate(),
|
|
359
365
|
next: params.next
|
|
@@ -361,20 +367,20 @@ var AnalyticsAdminService = class extends _chunkHN7L6RRWjs.AbstractService {
|
|
|
361
367
|
}
|
|
362
368
|
static async getSession(params) {
|
|
363
369
|
return this.callApi({
|
|
364
|
-
type:
|
|
370
|
+
type: _chunkZ6T2575Ajs.Modules.AnalyticsSession,
|
|
365
371
|
method: "GET" /* GET */,
|
|
366
|
-
endpoint: new (0,
|
|
372
|
+
endpoint: new (0, _chunkZ6T2575Ajs.EndpointCreator)({ endpoint: _chunkZ6T2575Ajs.Modules.AnalyticsSession, id: params.id }).generate()
|
|
367
373
|
});
|
|
368
374
|
}
|
|
369
375
|
/** The journey: every page view of one session, oldest first. */
|
|
370
376
|
static async getSessionPageViews(params) {
|
|
371
377
|
return this.callApi({
|
|
372
|
-
type:
|
|
378
|
+
type: _chunkZ6T2575Ajs.Modules.AnalyticsPageView,
|
|
373
379
|
method: "GET" /* GET */,
|
|
374
|
-
endpoint: new (0,
|
|
375
|
-
endpoint:
|
|
380
|
+
endpoint: new (0, _chunkZ6T2575Ajs.EndpointCreator)({
|
|
381
|
+
endpoint: _chunkZ6T2575Ajs.Modules.AnalyticsSession,
|
|
376
382
|
id: params.sessionId,
|
|
377
|
-
childEndpoint:
|
|
383
|
+
childEndpoint: _chunkZ6T2575Ajs.Modules.AnalyticsPageView
|
|
378
384
|
}).generate()
|
|
379
385
|
});
|
|
380
386
|
}
|
|
@@ -443,8 +449,8 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
|
|
|
443
449
|
// The local calendar days the admin picked: the picker emits local-midnight
|
|
444
450
|
// instants, so slicing the UTC instant would shift the range a day east of UTC.
|
|
445
451
|
AnalyticsAdminService.getDailyUniques({
|
|
446
|
-
fromDate:
|
|
447
|
-
toDate:
|
|
452
|
+
fromDate: _chunkHROKKUBQjs.formatLocalDate.call(void 0, new Date(from)),
|
|
453
|
+
toDate: _chunkHROKKUBQjs.formatLocalDate.call(void 0, new Date(to))
|
|
448
454
|
})
|
|
449
455
|
]).then(([nextSummary, nextTimeline, nextBreakdowns, nextSessions, nextDailyUniques]) => {
|
|
450
456
|
if (cancelled) return;
|
|
@@ -478,7 +484,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
|
|
|
478
484
|
const sessionsNext = {};
|
|
479
485
|
try {
|
|
480
486
|
const nextSessions = await AnalyticsAdminService.next({
|
|
481
|
-
type:
|
|
487
|
+
type: _chunkZ6T2575Ajs.Modules.AnalyticsSession,
|
|
482
488
|
endpoint: sessionsNextPage,
|
|
483
489
|
next: sessionsNext
|
|
484
490
|
});
|
|
@@ -535,7 +541,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
|
|
|
535
541
|
error
|
|
536
542
|
]
|
|
537
543
|
);
|
|
538
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
544
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsAdminContext.Provider, { value: contextValue, children }) });
|
|
539
545
|
}, "AnalyticsAdminProvider");
|
|
540
546
|
var useAnalyticsAdmin = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
|
|
541
547
|
const ctx = _react.useContext.call(void 0, AnalyticsAdminContext);
|
|
@@ -555,7 +561,7 @@ var _lucidereact = require('lucide-react');
|
|
|
555
561
|
var ZERO = { visitors: 0, sessions: 0, pageViews: 0, pagesPerSession: 0, consentShare: 0 };
|
|
556
562
|
function AnalyticsAdminTiles({ summary }) {
|
|
557
563
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
558
|
-
const { decimal } =
|
|
564
|
+
const { decimal } = _chunkM6SNTMK6js.useUsageFormatters.call(void 0, );
|
|
559
565
|
const rowFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (window2) => _nullishCoalesce(summary.find((r) => r.section === "total" && r.window === window2), () => ( ZERO)), "rowFor");
|
|
560
566
|
const current = rowFor("current");
|
|
561
567
|
const previous = rowFor("previous");
|
|
@@ -568,7 +574,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
568
574
|
testId: "analytics-tile-visitors",
|
|
569
575
|
label: t("analytics.admin.tiles.visitors"),
|
|
570
576
|
value: decimal(current.visitors, 0),
|
|
571
|
-
delta:
|
|
577
|
+
delta: _chunkM6SNTMK6js.percentageDelta.call(void 0, current.visitors, previous.visitors),
|
|
572
578
|
previousLabel,
|
|
573
579
|
decimal
|
|
574
580
|
}
|
|
@@ -579,7 +585,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
579
585
|
testId: "analytics-tile-sessions",
|
|
580
586
|
label: t("analytics.admin.tiles.sessions"),
|
|
581
587
|
value: decimal(current.sessions, 0),
|
|
582
|
-
delta:
|
|
588
|
+
delta: _chunkM6SNTMK6js.percentageDelta.call(void 0, current.sessions, previous.sessions),
|
|
583
589
|
previousLabel,
|
|
584
590
|
decimal
|
|
585
591
|
}
|
|
@@ -590,7 +596,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
590
596
|
testId: "analytics-tile-page-views",
|
|
591
597
|
label: t("analytics.admin.tiles.page_views"),
|
|
592
598
|
value: decimal(current.pageViews, 0),
|
|
593
|
-
delta:
|
|
599
|
+
delta: _chunkM6SNTMK6js.percentageDelta.call(void 0, current.pageViews, previous.pageViews),
|
|
594
600
|
previousLabel,
|
|
595
601
|
decimal
|
|
596
602
|
}
|
|
@@ -603,7 +609,7 @@ function AnalyticsAdminTiles({ summary }) {
|
|
|
603
609
|
testId: "analytics-tile-pages-per-session",
|
|
604
610
|
label: t("analytics.admin.tiles.pages_per_session"),
|
|
605
611
|
value: decimal(current.pagesPerSession, 1),
|
|
606
|
-
delta:
|
|
612
|
+
delta: _chunkM6SNTMK6js.percentageDelta.call(void 0, current.pagesPerSession, previous.pagesPerSession),
|
|
607
613
|
decimal
|
|
608
614
|
}
|
|
609
615
|
),
|
|
@@ -628,8 +634,8 @@ function LeadTile({
|
|
|
628
634
|
previousLabel,
|
|
629
635
|
decimal
|
|
630
636
|
}) {
|
|
631
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
632
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
637
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.Card, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.CardContent, { className: "grid gap-1", children: [
|
|
638
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.MicroLabel, { children: label }),
|
|
633
639
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: value }),
|
|
634
640
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1", children: [
|
|
635
641
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Delta, { testId: `${testId}-delta`, delta, decimal }),
|
|
@@ -645,8 +651,8 @@ function SupportingTile({
|
|
|
645
651
|
delta,
|
|
646
652
|
decimal
|
|
647
653
|
}) {
|
|
648
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
649
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
654
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.Card, { "data-testid": testId, size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.CardContent, { className: "grid gap-1", children: [
|
|
655
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.MicroLabel, { children: label }),
|
|
650
656
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
|
|
651
657
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: value }),
|
|
652
658
|
delta !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Delta, { testId: `${testId}-delta`, delta, decimal })
|
|
@@ -669,7 +675,7 @@ function Delta({
|
|
|
669
675
|
"span",
|
|
670
676
|
{
|
|
671
677
|
"data-testid": testId,
|
|
672
|
-
className:
|
|
678
|
+
className: _chunkCSBQAPHDjs.cn.call(void 0,
|
|
673
679
|
"inline-flex items-center gap-0.5 text-xs tabular-nums",
|
|
674
680
|
increased ? "text-success" : "text-destructive"
|
|
675
681
|
),
|
|
@@ -697,15 +703,15 @@ function AnalyticsBreakdownTable({ breakdowns }) {
|
|
|
697
703
|
route: t("analytics.admin.dimensions.route"),
|
|
698
704
|
landing: t("analytics.admin.dimensions.landing")
|
|
699
705
|
};
|
|
700
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
701
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
702
|
-
ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
706
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.Tabs, { defaultValue: ANALYTICS_DIMENSIONS[0], children: [
|
|
707
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.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, _chunkM6SNTMK6js.TabsTrigger, { value: dimension, children: labels[dimension] }, dimension)) }),
|
|
708
|
+
ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TabsContent, { value: dimension, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BreakdownRows, { rows: _nullishCoalesce(breakdowns[dimension], () => ( [])) }) }, dimension))
|
|
703
709
|
] });
|
|
704
710
|
}
|
|
705
711
|
_chunk7QVYU63Ejs.__name.call(void 0, AnalyticsBreakdownTable, "AnalyticsBreakdownTable");
|
|
706
712
|
function BreakdownRows({ rows }) {
|
|
707
713
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
708
|
-
const { decimal } =
|
|
714
|
+
const { decimal } = _chunkM6SNTMK6js.useUsageFormatters.call(void 0, );
|
|
709
715
|
const sortedRows = _react.useMemo.call(void 0, () => [...rows].sort((a, b) => b.visitors - a.visitors), [rows]);
|
|
710
716
|
if (sortedRows.length === 0) {
|
|
711
717
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") });
|
|
@@ -714,18 +720,18 @@ function BreakdownRows({ rows }) {
|
|
|
714
720
|
// The package's <Table> wraps itself in an `overflow-x-clip` container, which
|
|
715
721
|
// would swallow the overflow before this scroller ever saw it — hence the
|
|
716
722
|
// child override. Wide tables must scroll, never widen the page.
|
|
717
|
-
/* @__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,
|
|
718
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
719
|
-
/* @__PURE__ */ _jsxruntime.jsx.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, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.Table, { children: [
|
|
724
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.TableRow, { children: [
|
|
725
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.key") }),
|
|
726
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.visitors") }),
|
|
727
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.sessions") }),
|
|
728
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.page_views") })
|
|
723
729
|
] }) }),
|
|
724
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
725
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
726
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
727
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
728
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
730
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableBody, { children: sortedRows.map((row) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.TableRow, { "data-testid": `analytics-breakdown-row-${row.id}`, children: [
|
|
731
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-xs", children: row.key === OTHER_KEY ? t("analytics.admin.other") : row.key }),
|
|
732
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.visitors, 0) }),
|
|
733
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.sessions, 0) }),
|
|
734
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) })
|
|
729
735
|
] }, row.id)) })
|
|
730
736
|
] }) })
|
|
731
737
|
);
|
|
@@ -763,10 +769,10 @@ function buildDailyUniquesSeries(rows, metric, todayKey) {
|
|
|
763
769
|
_chunk7QVYU63Ejs.__name.call(void 0, buildDailyUniquesSeries, "buildDailyUniquesSeries");
|
|
764
770
|
function AnalyticsDailyUniquesChart({ rows, metric, className }) {
|
|
765
771
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
766
|
-
const { compact, bucketDate, decimal } =
|
|
772
|
+
const { compact, bucketDate, decimal } = _chunkM6SNTMK6js.useUsageFormatters.call(void 0, );
|
|
767
773
|
const { resolvedTheme } = _nextthemes.useTheme.call(void 0, );
|
|
768
774
|
const mode = resolvedTheme === "dark" ? "dark" : "light";
|
|
769
|
-
const color =
|
|
775
|
+
const color = _chunkM6SNTMK6js.seriesColor.call(void 0, METRIC_SLOT[metric], mode);
|
|
770
776
|
const chartData = _react.useMemo.call(void 0, () => buildDailyUniquesSeries(rows, metric, bucketKey(/* @__PURE__ */ new Date())), [rows, metric]);
|
|
771
777
|
const points = _react.useMemo.call(void 0, () => chartData.map(({ day, value }) => ({ day, value })), [chartData]);
|
|
772
778
|
const seriesLabel = t(`analytics.admin.daily_uniques.${metric}`);
|
|
@@ -795,7 +801,7 @@ function AnalyticsDailyUniquesChart({ rows, metric, className }) {
|
|
|
795
801
|
// rtl-ok: deliberate LTR island (chart)
|
|
796
802
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className, dir: "ltr", children: [
|
|
797
803
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", "data-testid": `analytics-daily-${metric}-data`, children: JSON.stringify(points) }),
|
|
798
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
804
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.ChartContainer, { config: chartConfig, className: "aspect-auto h-72 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _recharts.LineChart, { accessibilityLayer: true, data: chartData, margin: { top: 8, right: 16, bottom: 0, left: 0 }, children: [
|
|
799
805
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _recharts.CartesianGrid, { vertical: false }),
|
|
800
806
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
801
807
|
_recharts.XAxis,
|
|
@@ -821,11 +827,11 @@ function AnalyticsDailyUniquesChart({ rows, metric, className }) {
|
|
|
821
827
|
}
|
|
822
828
|
),
|
|
823
829
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
824
|
-
|
|
830
|
+
_chunkM6SNTMK6js.ChartTooltip,
|
|
825
831
|
{
|
|
826
832
|
filterNull: false,
|
|
827
833
|
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
828
|
-
|
|
834
|
+
_chunkM6SNTMK6js.ChartTooltipContent,
|
|
829
835
|
{
|
|
830
836
|
labelFormatter: (value, payload) => {
|
|
831
837
|
const entry = _optionalChain([payload, 'optionalAccess', _6 => _6[0], 'optionalAccess', _7 => _7.payload]);
|
|
@@ -883,53 +889,51 @@ _chunk7QVYU63Ejs.__name.call(void 0, AnalyticsDailyUniquesChart, "AnalyticsDaily
|
|
|
883
889
|
// src/features/analytics/components/AnalyticsSessionsTable.tsx
|
|
884
890
|
|
|
885
891
|
|
|
886
|
-
|
|
887
892
|
var VISITOR_SUFFIX_LENGTH = 6;
|
|
888
893
|
function AnalyticsSessionsTable({ rows, sessionPageUrl, onLoadMore, hasMore }) {
|
|
889
894
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
890
|
-
const
|
|
891
|
-
const generateUrl =
|
|
892
|
-
const { decimal } =
|
|
893
|
-
const dateTime = _react.useMemo.call(void 0, () => new Intl.DateTimeFormat(locale, { dateStyle: "short", timeStyle: "short" }), [locale]);
|
|
895
|
+
const dates = _chunkSYMI4IDWjs.useDateFormatter.call(void 0, );
|
|
896
|
+
const generateUrl = _chunkM6SNTMK6js.usePageUrlGenerator.call(void 0, );
|
|
897
|
+
const { decimal } = _chunkM6SNTMK6js.useUsageFormatters.call(void 0, );
|
|
894
898
|
if (rows.length === 0) {
|
|
895
899
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") });
|
|
896
900
|
}
|
|
897
901
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3", children: [
|
|
898
|
-
/* @__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,
|
|
899
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
900
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
901
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
902
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
903
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
904
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
905
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
902
|
+
/* @__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, _chunkM6SNTMK6js.Table, { children: [
|
|
903
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.TableRow, { children: [
|
|
904
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.started") }),
|
|
905
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.visitor") }),
|
|
906
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.source") }),
|
|
907
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.landing") }),
|
|
908
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.pages") }),
|
|
909
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.device") })
|
|
906
910
|
] }) }),
|
|
907
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
911
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableBody, { children: rows.map((row) => {
|
|
908
912
|
const source = [_nullishCoalesce(row.utmSource, () => ( row.referrerHost)), row.utmMedium].filter(Boolean).join(" / ");
|
|
909
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
910
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
911
|
-
|
|
913
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.TableRow, { "data-testid": `analytics-session-row-${row.id}`, children: [
|
|
914
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-xs tabular-nums", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
915
|
+
_chunkM6SNTMK6js.Link,
|
|
912
916
|
{
|
|
913
917
|
href: generateUrl({ page: sessionPageUrl, id: row.id }),
|
|
914
918
|
"data-testid": `analytics-session-link-${row.id}`,
|
|
915
|
-
children:
|
|
919
|
+
children: dates.format(row.startedAt, "dateTime")
|
|
916
920
|
}
|
|
917
921
|
) }),
|
|
918
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
922
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-xs", children: row.user ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col", children: [
|
|
919
923
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: row.user.name }),
|
|
920
924
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: row.user.email })
|
|
921
925
|
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
|
|
922
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
926
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
|
|
923
927
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs tabular-nums", children: row.visitorId.slice(-VISITOR_SUFFIX_LENGTH) })
|
|
924
928
|
] }) }),
|
|
925
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
926
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
927
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
928
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
929
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-xs", children: source }),
|
|
930
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-xs", children: row.landingRoute }),
|
|
931
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) }),
|
|
932
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-muted-foreground text-xs", children: row.deviceType })
|
|
929
933
|
] }, row.id);
|
|
930
934
|
}) })
|
|
931
935
|
] }) }),
|
|
932
|
-
hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
936
|
+
hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.Button, { type: "button", variant: "outline", size: "sm", onClick: onLoadMore, children: t("analytics.admin.load_more") }) })
|
|
933
937
|
] });
|
|
934
938
|
}
|
|
935
939
|
_chunk7QVYU63Ejs.__name.call(void 0, AnalyticsSessionsTable, "AnalyticsSessionsTable");
|
|
@@ -961,7 +965,7 @@ var inferGranularity = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (buc
|
|
|
961
965
|
}, "inferGranularity");
|
|
962
966
|
function AnalyticsTimelineChart({ rows, className }) {
|
|
963
967
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
964
|
-
const { compact, bucketDate, decimal } =
|
|
968
|
+
const { compact, bucketDate, decimal } = _chunkM6SNTMK6js.useUsageFormatters.call(void 0, );
|
|
965
969
|
const { resolvedTheme } = _nextthemes.useTheme.call(void 0, );
|
|
966
970
|
const mode = resolvedTheme === "dark" ? "dark" : "light";
|
|
967
971
|
const chartData = _react.useMemo.call(void 0, () => {
|
|
@@ -996,7 +1000,7 @@ function AnalyticsTimelineChart({ rows, className }) {
|
|
|
996
1000
|
// rtl-ok: deliberate LTR island (chart)
|
|
997
1001
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className, dir: "ltr", children: [
|
|
998
1002
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", "data-testid": "analytics-timeline-data", children: JSON.stringify(chartData) }),
|
|
999
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1003
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.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: [
|
|
1000
1004
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _recharts.CartesianGrid, { vertical: false }),
|
|
1001
1005
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1002
1006
|
_recharts.XAxis,
|
|
@@ -1020,10 +1024,10 @@ function AnalyticsTimelineChart({ rows, className }) {
|
|
|
1020
1024
|
}
|
|
1021
1025
|
),
|
|
1022
1026
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1023
|
-
|
|
1027
|
+
_chunkM6SNTMK6js.ChartTooltip,
|
|
1024
1028
|
{
|
|
1025
1029
|
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1026
|
-
|
|
1030
|
+
_chunkM6SNTMK6js.ChartTooltipContent,
|
|
1027
1031
|
{
|
|
1028
1032
|
labelFormatter: (value) => bucketDate(String(value), granularity),
|
|
1029
1033
|
valueFormatter: (value) => decimal(Number(value), 0)
|
|
@@ -1031,13 +1035,13 @@ function AnalyticsTimelineChart({ rows, className }) {
|
|
|
1031
1035
|
)
|
|
1032
1036
|
}
|
|
1033
1037
|
),
|
|
1034
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1038
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.ChartLegend, { content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.ChartLegendContent, {}) }),
|
|
1035
1039
|
SERIES.map((series, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1036
1040
|
_recharts.Bar,
|
|
1037
1041
|
{
|
|
1038
1042
|
dataKey: series,
|
|
1039
1043
|
maxBarSize: 28,
|
|
1040
|
-
fill:
|
|
1044
|
+
fill: _chunkM6SNTMK6js.seriesColor.call(void 0, index, mode),
|
|
1041
1045
|
stroke: "var(--background)",
|
|
1042
1046
|
strokeWidth: 2,
|
|
1043
1047
|
radius: [4, 4, 0, 0]
|
|
@@ -1067,33 +1071,33 @@ function AnalyticsAdminContainer() {
|
|
|
1067
1071
|
error
|
|
1068
1072
|
} = useAnalyticsAdmin();
|
|
1069
1073
|
if (error) {
|
|
1070
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1074
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.RoundPageContainer, { module: _chunkZ6T2575Ajs.Modules.AnalyticsSummary, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
|
|
1071
1075
|
}
|
|
1072
|
-
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1073
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1076
|
+
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.RoundPageContainer, { module: _chunkZ6T2575Ajs.Modules.AnalyticsSummary, fullWidth: true, forceHeader: true });
|
|
1077
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.RoundPageContainer, { module: _chunkZ6T2575Ajs.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: [
|
|
1074
1078
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
1075
1079
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsAdminTiles, { summary }),
|
|
1076
1080
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-xs", children: t("analytics.admin.tiles.summarised_note") })
|
|
1077
1081
|
] }),
|
|
1078
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1079
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1080
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1082
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.Card, { children: [
|
|
1083
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardTitle, { children: t("analytics.admin.panels.over_time") }) }),
|
|
1084
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsTimelineChart, { rows: timeline }) })
|
|
1081
1085
|
] }),
|
|
1082
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1083
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1084
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1086
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.Card, { "data-testid": "analytics-daily-visitors-card", children: [
|
|
1087
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardTitle, { children: t("analytics.admin.panels.daily_visitors") }) }),
|
|
1088
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsDailyUniquesChart, { rows: dailyUniques, metric: "visitors" }) })
|
|
1085
1089
|
] }),
|
|
1086
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1087
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1088
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1090
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.Card, { "data-testid": "analytics-daily-users-card", children: [
|
|
1091
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardTitle, { children: t("analytics.admin.panels.daily_users") }) }),
|
|
1092
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsDailyUniquesChart, { rows: dailyUniques, metric: "users" }) })
|
|
1089
1093
|
] }),
|
|
1090
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1091
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1092
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1094
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.Card, { children: [
|
|
1095
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardTitle, { children: t("analytics.admin.panels.breakdown") }) }),
|
|
1096
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsBreakdownTable, { breakdowns }) })
|
|
1093
1097
|
] }),
|
|
1094
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1095
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1096
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1098
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.Card, { children: [
|
|
1099
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardTitle, { children: t("analytics.admin.panels.sessions") }) }),
|
|
1100
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1097
1101
|
AnalyticsSessionsTable,
|
|
1098
1102
|
{
|
|
1099
1103
|
rows: sessions,
|
|
@@ -1116,7 +1120,8 @@ var OTHER_SESSIONS_WINDOW_DAYS = 395;
|
|
|
1116
1120
|
function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_URL }) {
|
|
1117
1121
|
const t = _nextintl.useTranslations.call(void 0, );
|
|
1118
1122
|
const locale = _nextintl.useLocale.call(void 0, );
|
|
1119
|
-
const
|
|
1123
|
+
const dates = _chunkSYMI4IDWjs.useDateFormatter.call(void 0, );
|
|
1124
|
+
const generateUrl = _chunkM6SNTMK6js.usePageUrlGenerator.call(void 0, );
|
|
1120
1125
|
const [session, setSession] = _react.useState.call(void 0, void 0);
|
|
1121
1126
|
const [pageViews, setPageViews] = _react.useState.call(void 0, []);
|
|
1122
1127
|
const [otherSessions, setOtherSessions] = _react.useState.call(void 0, []);
|
|
@@ -1155,10 +1160,6 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
|
|
|
1155
1160
|
cancelled = true;
|
|
1156
1161
|
};
|
|
1157
1162
|
}, [sessionId]);
|
|
1158
|
-
const dateTime = _react.useMemo.call(void 0,
|
|
1159
|
-
() => new Intl.DateTimeFormat(locale, { dateStyle: "short", timeStyle: "medium" }),
|
|
1160
|
-
[locale]
|
|
1161
|
-
);
|
|
1162
1163
|
const formatGap = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (milliseconds) => {
|
|
1163
1164
|
const seconds = Math.max(0, Math.round(milliseconds / 1e3));
|
|
1164
1165
|
if (seconds < 60) return unit(locale, "second", seconds);
|
|
@@ -1172,26 +1173,32 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
|
|
|
1172
1173
|
const title = { type: t("analytics.admin.panels.journey") };
|
|
1173
1174
|
const renderBody = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
|
|
1174
1175
|
if (error) {
|
|
1175
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1176
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.RoundPageContainer, { module: _chunkZ6T2575Ajs.Modules.AnalyticsSession, fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
|
|
1176
1177
|
}
|
|
1177
|
-
if (isLoading || !session) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1178
|
+
if (isLoading || !session) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.RoundPageContainer, { module: _chunkZ6T2575Ajs.Modules.AnalyticsSession, fullWidth: true, forceHeader: true });
|
|
1178
1179
|
const source = [_nullishCoalesce(session.utmSource, () => ( session.referrerHost)), session.utmMedium, session.utmCampaign].filter(Boolean).join(" / ");
|
|
1179
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1180
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1180
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.RoundPageContainer, { module: _chunkZ6T2575Ajs.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: [
|
|
1181
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.Card, { "data-testid": "analytics-journey-attribution", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.CardContent, { className: "flex flex-col gap-3", children: [
|
|
1181
1182
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
1182
1183
|
session.user ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col", children: [
|
|
1183
1184
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: session.user.name }),
|
|
1184
1185
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: session.user.email })
|
|
1185
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1186
|
-
session.consented ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1186
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
|
|
1187
|
+
session.consented ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.Badge, { variant: "softGreen", children: t("analytics.admin.consented") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.Badge, { variant: "softGray", children: t("analytics.admin.not_consented") })
|
|
1187
1188
|
] }),
|
|
1188
1189
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3 sm:grid-cols-3", children: [
|
|
1189
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR5722NLLjs.DetailField, { label: t("analytics.admin.columns.started"), value: dateTime.format(session.startedAt) }),
|
|
1190
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR5722NLLjs.DetailField, { label: t("analytics.admin.columns.source"), value: source }),
|
|
1191
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR5722NLLjs.DetailField, { label: t("analytics.admin.columns.landing"), value: session.landingRoute }),
|
|
1192
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR5722NLLjs.DetailField, { label: t("analytics.admin.columns.device"), value: session.deviceType }),
|
|
1193
1190
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1194
|
-
|
|
1191
|
+
_chunkM6SNTMK6js.DetailField,
|
|
1192
|
+
{
|
|
1193
|
+
label: t("analytics.admin.columns.started"),
|
|
1194
|
+
value: dates.format(session.startedAt, "dateTimeSeconds")
|
|
1195
|
+
}
|
|
1196
|
+
),
|
|
1197
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.DetailField, { label: t("analytics.admin.columns.source"), value: source }),
|
|
1198
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.DetailField, { label: t("analytics.admin.columns.landing"), value: session.landingRoute }),
|
|
1199
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.DetailField, { label: t("analytics.admin.columns.device"), value: session.deviceType }),
|
|
1200
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1201
|
+
_chunkM6SNTMK6js.DetailField,
|
|
1195
1202
|
{
|
|
1196
1203
|
label: t("analytics.admin.columns.visitor"),
|
|
1197
1204
|
value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: session.visitorId })
|
|
@@ -1199,31 +1206,31 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
|
|
|
1199
1206
|
)
|
|
1200
1207
|
] })
|
|
1201
1208
|
] }) }),
|
|
1202
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1203
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1204
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1209
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.Card, { children: [
|
|
1210
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardTitle, { children: t("analytics.admin.columns.pages") }) }),
|
|
1211
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardContent, { children: pageViews.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") }) : (
|
|
1205
1212
|
// The package's <Table> wraps itself in an `overflow-x-clip`
|
|
1206
1213
|
// container — hence the child override, so wide rows scroll.
|
|
1207
|
-
/* @__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,
|
|
1208
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1209
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1210
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1211
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1214
|
+
/* @__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, _chunkM6SNTMK6js.Table, { children: [
|
|
1215
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.TableRow, { children: [
|
|
1216
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.time") }),
|
|
1217
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.gap") }),
|
|
1218
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.path") })
|
|
1212
1219
|
] }) }),
|
|
1213
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1220
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableBody, { children: pageViews.map((pageView, index) => {
|
|
1214
1221
|
const previous = index > 0 ? pageViews[index - 1] : void 0;
|
|
1215
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1216
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1217
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1218
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1222
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.TableRow, { "data-testid": `analytics-pageview-row-${pageView.id}`, children: [
|
|
1223
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-xs tabular-nums", children: dates.format(pageView.createdAt, "dateTimeSeconds") }),
|
|
1224
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-end text-xs tabular-nums", children: previous ? formatGap(pageView.createdAt.getTime() - previous.createdAt.getTime()) : "\u2014" }),
|
|
1225
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.TableCell, { className: "text-xs", children: pageView.path })
|
|
1219
1226
|
] }, pageView.id);
|
|
1220
1227
|
}) })
|
|
1221
1228
|
] }) })
|
|
1222
1229
|
) })
|
|
1223
1230
|
] }),
|
|
1224
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1225
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1226
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1231
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkM6SNTMK6js.Card, { children: [
|
|
1232
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardTitle, { children: t("analytics.admin.panels.other_sessions") }) }),
|
|
1233
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1227
1234
|
AnalyticsSessionsTable,
|
|
1228
1235
|
{
|
|
1229
1236
|
rows: otherSessions,
|
|
@@ -1235,7 +1242,7 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
|
|
|
1235
1242
|
] })
|
|
1236
1243
|
] }) });
|
|
1237
1244
|
}, "renderBody");
|
|
1238
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1245
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM6SNTMK6js.SharedProvider, { value: { breadcrumbs: breadcrumb, title }, children: renderBody() });
|
|
1239
1246
|
}
|
|
1240
1247
|
_chunk7QVYU63Ejs.__name.call(void 0, AnalyticsJourneyContainer, "AnalyticsJourneyContainer");
|
|
1241
1248
|
function unit(locale, name, value) {
|
|
@@ -1352,5 +1359,5 @@ var ANALYTICS_ADMIN_I18N_KEYS = [
|
|
|
1352
1359
|
|
|
1353
1360
|
|
|
1354
1361
|
|
|
1355
|
-
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 =
|
|
1362
|
+
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 = _chunkCSBQAPHDjs.AnalyticsBreakdown; exports.AnalyticsBreakdownTable = AnalyticsBreakdownTable; exports.AnalyticsDailyUniqueTimeline = _chunkCSBQAPHDjs.AnalyticsDailyUniqueTimeline; exports.AnalyticsDailyUniquesChart = AnalyticsDailyUniquesChart; exports.AnalyticsEvent = _chunkCSBQAPHDjs.AnalyticsEvent; exports.AnalyticsJourneyContainer = AnalyticsJourneyContainer; exports.AnalyticsJourneyPageContainer = AnalyticsJourneyPageContainer; exports.AnalyticsPageView = _chunkCSBQAPHDjs.AnalyticsPageView; exports.AnalyticsService = AnalyticsService; exports.AnalyticsSession = _chunkCSBQAPHDjs.AnalyticsSession; exports.AnalyticsSessionsTable = AnalyticsSessionsTable; exports.AnalyticsSummary = _chunkCSBQAPHDjs.AnalyticsSummary; exports.AnalyticsTimeline = _chunkCSBQAPHDjs.AnalyticsTimeline; exports.AnalyticsTimelineChart = AnalyticsTimelineChart; exports.AnalyticsTracker = AnalyticsTracker; exports.analyticsModules = _chunkCSBQAPHDjs.analyticsModules; exports.useAnalyticsAdmin = useAnalyticsAdmin;
|
|
1356
1363
|
//# sourceMappingURL=index.js.map
|