@parhelia/core 0.4.12872 → 0.4.12875
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/config/config.js +9 -2
- package/dist/config/config.js.map +1 -1
- package/dist/editor/ContentTree.js +11 -2
- package/dist/editor/ContentTree.js.map +1 -1
- package/dist/editor/client/EditorShell.js +8 -3
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +5 -0
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.js +44 -30
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/itemsRepository.d.ts +6 -0
- package/dist/editor/client/itemsRepository.js +3 -0
- package/dist/editor/client/itemsRepository.js.map +1 -1
- package/dist/editor/reviews/commentTargetPicker.d.ts +4 -0
- package/dist/editor/reviews/commentTargetPicker.js +4 -0
- package/dist/editor/reviews/commentTargetPicker.js.map +1 -1
- package/dist/editor/services/analyticsService.d.ts +131 -0
- package/dist/editor/services/analyticsService.js +17 -0
- package/dist/editor/services/analyticsService.js.map +1 -0
- package/dist/editor/settings/panels/McpAccessPanel.d.ts +3 -3
- package/dist/editor/settings/panels/McpAccessPanel.js +18 -38
- package/dist/editor/settings/panels/McpAccessPanel.js.map +1 -1
- package/dist/editor/settings/panels/McpGrantList.d.ts +8 -0
- package/dist/editor/settings/panels/McpGrantList.js +21 -0
- package/dist/editor/settings/panels/McpGrantList.js.map +1 -0
- package/dist/editor/settings/panels/McpServerPanel.d.ts +7 -0
- package/dist/editor/settings/panels/McpServerPanel.js +84 -0
- package/dist/editor/settings/panels/McpServerPanel.js.map +1 -0
- package/dist/editor/settings/panels/index.d.ts +1 -0
- package/dist/editor/settings/panels/index.js +1 -0
- package/dist/editor/settings/panels/index.js.map +1 -1
- package/dist/editor/sidebar/analytics/PagePerformance.d.ts +6 -0
- package/dist/editor/sidebar/analytics/PagePerformance.js +142 -0
- package/dist/editor/sidebar/analytics/PagePerformance.js.map +1 -0
- package/dist/editor/sidebar/analytics/analyticsFormat.d.ts +10 -0
- package/dist/editor/sidebar/analytics/analyticsFormat.js +57 -0
- package/dist/editor/sidebar/analytics/analyticsFormat.js.map +1 -0
- package/dist/editor/treeRelevantFields.d.ts +16 -0
- package/dist/editor/treeRelevantFields.js +37 -0
- package/dist/editor/treeRelevantFields.js.map +1 -0
- package/dist/editor/ui/PublishDialog.d.ts +5 -1
- package/dist/editor/ui/PublishDialog.js +98 -17
- package/dist/editor/ui/PublishDialog.js.map +1 -1
- package/dist/editor/ui/WorkboxItemsTable.d.ts +17 -2
- package/dist/editor/ui/WorkboxItemsTable.js +26 -12
- package/dist/editor/ui/WorkboxItemsTable.js.map +1 -1
- package/dist/editor/ui/publishReadiness.d.ts +11 -1
- package/dist/editor/ui/publishReadiness.js +34 -30
- package/dist/editor/ui/publishReadiness.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/coalescedReload.d.ts +19 -0
- package/dist/lib/coalescedReload.js +53 -0
- package/dist/lib/coalescedReload.js.map +1 -0
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useEffect, useState } from "react";
|
|
4
|
+
import { ExternalLink, Info, RefreshCw, TrendingDown, TrendingUp } from "lucide-react";
|
|
5
|
+
import { useEditContext } from "../../client/editContext";
|
|
6
|
+
import { usePageViewState } from "../../page-viewer/pageViewContext";
|
|
7
|
+
import { SimpleToolbar } from "../../ui/SimpleToolbar";
|
|
8
|
+
import { SimpleIconButton } from "../../ui/SimpleIconButton";
|
|
9
|
+
import { LoadingState } from "../../ui/LoadingState";
|
|
10
|
+
import { Alert, AlertDescription, AlertTitle } from "../../../components/ui/alert";
|
|
11
|
+
import { cn } from "../../../lib/utils";
|
|
12
|
+
import { getPageAnalytics, } from "../../services/analyticsService";
|
|
13
|
+
import { changeTone, formatChange, formatCount, formatDate, formatMetricValue, share, } from "./analyticsFormat";
|
|
14
|
+
/**
|
|
15
|
+
* "How much is this page used?" — GA4 metrics for the current item, site and language, plus
|
|
16
|
+
* Search Console when configured. Every number shows its definition and window; "no data" is
|
|
17
|
+
* never shown as zero.
|
|
18
|
+
*/
|
|
19
|
+
export function PagePerformance() {
|
|
20
|
+
const editContext = useEditContext();
|
|
21
|
+
const pageContext = editContext?.workspaceId === "editor"
|
|
22
|
+
? editContext.getActiveSlotContext()?.primaryPageViewContext
|
|
23
|
+
: undefined;
|
|
24
|
+
const siteName = usePageViewState(pageContext, (state) => state.site?.name);
|
|
25
|
+
const descriptor = editContext?.currentItemDescriptor;
|
|
26
|
+
const [report, setReport] = useState();
|
|
27
|
+
const [error, setError] = useState();
|
|
28
|
+
const [loading, setLoading] = useState(false);
|
|
29
|
+
const [reloadKey, setReloadKey] = useState(0);
|
|
30
|
+
const itemId = descriptor?.id;
|
|
31
|
+
const language = descriptor?.language;
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (!itemId || !language)
|
|
34
|
+
return;
|
|
35
|
+
const controller = new AbortController();
|
|
36
|
+
setLoading(true);
|
|
37
|
+
setError(undefined);
|
|
38
|
+
getPageAnalytics(itemId, language, siteName, controller.signal)
|
|
39
|
+
.then((data) => {
|
|
40
|
+
if (!controller.signal.aborted)
|
|
41
|
+
setReport(data);
|
|
42
|
+
})
|
|
43
|
+
.catch((e) => {
|
|
44
|
+
if (!controller.signal.aborted) {
|
|
45
|
+
setReport(undefined);
|
|
46
|
+
setError(e instanceof Error ? e.message : String(e));
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
.finally(() => {
|
|
50
|
+
if (!controller.signal.aborted)
|
|
51
|
+
setLoading(false);
|
|
52
|
+
});
|
|
53
|
+
return () => controller.abort();
|
|
54
|
+
}, [itemId, language, siteName, reloadKey]);
|
|
55
|
+
const reload = useCallback(() => setReloadKey((k) => k + 1), []);
|
|
56
|
+
if (!editContext)
|
|
57
|
+
return null;
|
|
58
|
+
if (editContext.user?.isLimitedPreviewUser)
|
|
59
|
+
return null;
|
|
60
|
+
return (_jsxs("div", { className: "absolute inset-0 flex flex-col", "data-testid": "page-performance-panel", children: [_jsxs(SimpleToolbar, { children: [_jsx("span", { className: "text-neutral-grey-50 truncate px-1 text-xs", children: report?.window
|
|
61
|
+
? `${formatDate(report.window.current.startDate)} – ${formatDate(report.window.current.endDate)} vs previous ${report.window.days} days`
|
|
62
|
+
: "Last 28 complete days" }), _jsx("div", { className: "ml-auto" }), _jsx(SimpleIconButton, { onClick: reload, icon: _jsx(RefreshCw, { className: cn("h-4 w-4", loading && "animate-spin"), strokeWidth: 1 }), label: "Reload", "data-testid": "page-performance-reload" })] }), _jsx("div", { className: "flex-1 overflow-y-auto p-3 text-sm", children: !itemId ? (_jsx(EmptyState, { children: "Open a page to see how it is used." })) : loading && !report ? (_jsx(LoadingState, { variant: "fill", message: "Loading analytics\u2026" })) : error ? (_jsxs(Alert, { variant: "destructive", children: [_jsx(AlertTitle, { children: "Analytics could not be loaded" }), _jsx(AlertDescription, { children: error })] })) : report ? (_jsx(ReportView, { report: report })) : null })] }));
|
|
63
|
+
}
|
|
64
|
+
function ReportView({ report }) {
|
|
65
|
+
const hasGa4 = report.status === "ok";
|
|
66
|
+
return (_jsxs("div", { className: "flex flex-col gap-4", children: [!hasGa4 && _jsx(StatusAlert, { status: report.status, message: report.message, source: "GA4" }), hasGa4 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "grid grid-cols-2 gap-2", children: report.headline.map((metric) => (_jsx(MetricTile, { metric: metric }, metric.key))) }), _jsxs(Section, { title: "Daily views", children: [_jsx(TrendChart, { points: report.trend, publishDates: report.publishEvents.map((p) => p.date) }), report.publishEvents.some((p) => report.trend.some((t) => t.date === p.date)) && (_jsx("p", { className: "text-neutral-grey-50 mt-1 text-xs", children: "Purple marks: published from Parhelia. Shown as context, not as the cause of a change." }))] }), report.keyEvents.length > 0 && (_jsx(Section, { title: "Key events on this page", children: _jsx("table", { className: "w-full text-xs", children: _jsx("tbody", { children: report.keyEvents.map((event) => (_jsxs("tr", { className: "border-border-default border-b last:border-0", children: [_jsx("td", { className: "py-1 font-mono", children: event.name }), _jsx("td", { className: "py-1 text-right", children: formatCount(event.current) }), _jsxs("td", { className: "text-neutral-grey-50 py-1 pl-2 text-right", children: ["prev. ", formatCount(event.previous ?? 0)] })] }, event.name))) }) }) })), _jsx(Section, { title: "Traffic sources", children: _jsx(Breakdown, { rows: report.channels }) }), _jsx(Section, { title: "Devices", children: _jsx(Breakdown, { rows: report.devices }) }), report.countries.length > 0 && (_jsx(Section, { title: "Countries", children: _jsx(Breakdown, { rows: report.countries }) })), _jsx(Section, { title: "Sessions including this page", hint: "These describe whole sessions in which this page was viewed, not this page's effectiveness.", children: _jsx("div", { className: "flex flex-col gap-1", children: report.sessionContext.map((metric) => (_jsx(MetricRow, { metric: metric }, metric.key))) }) }), (report.scroll90Events ?? 0) > 0 || report.outboundClicks.length > 0 ? (_jsxs(Section, { title: "Interactions", children: [report.scroll90Events !== undefined && (_jsxs("div", { className: "flex justify-between text-xs", title: "Enhanced measurement fires scroll once, at 90% depth.", children: [_jsx("span", { children: "Scrolled to 90%" }), _jsx("span", { children: formatCount(report.scroll90Events) })] })), report.outboundClicks.length > 0 && (_jsx("div", { className: "text-neutral-grey-50 mt-1 text-xs", children: "Outbound clicks" })), report.outboundClicks.map((click) => (_jsxs("div", { className: "flex justify-between gap-2 text-xs", children: [_jsx("span", { className: "truncate", title: click.name, children: click.name }), _jsx("span", { children: formatCount(click.current) })] }, click.name)))] })) : null, _jsx(Quality, { report: report })] })), report.search && _jsx(SearchSection, { search: report.search }), report.clarity && _jsx(ClaritySection, { clarity: report.clarity }), _jsx(Footer, { report: report })] }));
|
|
67
|
+
}
|
|
68
|
+
function MetricTile({ metric }) {
|
|
69
|
+
const tone = changeTone(metric);
|
|
70
|
+
const change = formatChange(metric.changePercent);
|
|
71
|
+
return (_jsxs("div", { className: "border-border-default rounded-md border p-2", title: `${metric.definition}${metric.denominator ? ` Divided by ${metric.denominator}.` : ""}`, "data-testid": `page-performance-metric-${metric.key}`, children: [_jsx("div", { className: "text-neutral-grey-50 text-xs", children: metric.label }), _jsx("div", { className: "text-lg font-medium", children: formatMetricValue(metric.current, metric.unit) }), _jsxs("div", { className: "flex items-center gap-1 text-xs", children: [change && (_jsxs("span", { className: cn("flex items-center gap-0.5", tone === "up" && "text-feedback-green", tone === "down" && "text-feedback-red", tone === "flat" && "text-neutral-grey-50"), children: [tone === "up" && _jsx(TrendingUp, { className: "h-3 w-3", strokeWidth: 1.5 }), tone === "down" && _jsx(TrendingDown, { className: "h-3 w-3", strokeWidth: 1.5 }), change] })), _jsxs("span", { className: "text-neutral-grey-50", children: ["prev. ", formatMetricValue(metric.previous, metric.unit)] })] })] }));
|
|
72
|
+
}
|
|
73
|
+
function MetricRow({ metric }) {
|
|
74
|
+
const change = formatChange(metric.changePercent);
|
|
75
|
+
return (_jsxs("div", { className: "flex justify-between gap-2 text-xs", title: metric.definition, children: [_jsx("span", { children: metric.label.replace(" (sessions including this page)", "") }), _jsxs("span", { children: [formatMetricValue(metric.current, metric.unit), change && _jsxs("span", { className: "text-neutral-grey-50 ml-1", children: ["(", change, ")"] })] })] }));
|
|
76
|
+
}
|
|
77
|
+
function TrendChart({ points, publishDates, }) {
|
|
78
|
+
if (points.length === 0)
|
|
79
|
+
return _jsx(EmptyState, { children: "No daily data." });
|
|
80
|
+
const width = 280;
|
|
81
|
+
const height = 64;
|
|
82
|
+
const max = Math.max(1, ...points.map((p) => p.views));
|
|
83
|
+
const step = points.length > 1 ? width / (points.length - 1) : width;
|
|
84
|
+
const coordinates = points.map((p, i) => [i * step, height - (p.views / max) * (height - 4) - 2]);
|
|
85
|
+
const line = coordinates.map(([x, y]) => `${x.toFixed(1)},${y.toFixed(1)}`).join(" ");
|
|
86
|
+
const markers = points
|
|
87
|
+
.map((p, i) => (publishDates.includes(p.date) ? i * step : null))
|
|
88
|
+
.filter((x) => x !== null);
|
|
89
|
+
return (_jsxs("div", { children: [_jsxs("svg", { viewBox: `0 0 ${width} ${height}`, className: "text-highlight-100 h-16 w-full", preserveAspectRatio: "none", role: "img", "aria-label": "Daily page views", children: [markers.map((x) => (_jsx("line", { x1: x, x2: x, y1: 0, y2: height, stroke: "currentColor", strokeOpacity: 0.35, strokeDasharray: "2 2" }, x))), _jsx("polyline", { points: line, fill: "none", stroke: "currentColor", strokeWidth: 1.5, vectorEffect: "non-scaling-stroke" }), points.map((p, i) => (_jsx("rect", { x: i * step - step / 2, y: 0, width: step, height: height, fill: "transparent", children: _jsx("title", { children: `${formatDate(p.date)}: ${formatCount(p.views)} views, ${formatCount(p.users)} users` }) }, p.date)))] }), _jsxs("div", { className: "text-neutral-grey-50 flex justify-between text-[10px]", children: [_jsx("span", { children: formatDate(points[0].date) }), _jsxs("span", { children: ["max ", formatCount(max), " views/day"] }), _jsx("span", { children: formatDate(points[points.length - 1].date) })] })] }));
|
|
90
|
+
}
|
|
91
|
+
function Breakdown({ rows }) {
|
|
92
|
+
if (rows.length === 0)
|
|
93
|
+
return _jsx(EmptyState, { children: "No data." });
|
|
94
|
+
const total = rows.reduce((sum, r) => sum + r.views, 0);
|
|
95
|
+
return (_jsx("div", { className: "flex flex-col gap-1", children: rows.map((row) => (_jsxs("div", { className: "text-xs", title: `${formatCount(row.views)} views, ${formatCount(row.users)} users`, children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "truncate", children: row.label }), _jsxs("span", { className: "text-neutral-grey-50", children: [formatCount(row.views), " \u00B7 ", share(row.views, total), "%"] })] }), _jsx("div", { className: "bg-neutral-grey-5 h-1 rounded", children: _jsx("div", { className: "bg-highlight-100 h-1 rounded", style: { width: `${share(row.views, total)}%` } }) })] }, row.label))) }));
|
|
96
|
+
}
|
|
97
|
+
function SearchSection({ search }) {
|
|
98
|
+
return (_jsx(Section, { title: "Google Search", hint: search.current
|
|
99
|
+
? `${formatDate(search.current.startDate)} – ${formatDate(search.current.endDate)}, final data`
|
|
100
|
+
: undefined, children: search.status !== "ok" ? (_jsx(StatusAlert, { status: search.status, message: search.message, source: "Search Console" })) : (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("div", { className: "grid grid-cols-2 gap-2", children: search.totals.map((metric) => (_jsx(MetricTile, { metric: metric }, metric.key))) }), search.topQueries.length > 0 && (_jsxs("div", { children: [_jsxs("table", { className: "w-full text-xs", "data-testid": "page-performance-queries", children: [_jsx("thead", { children: _jsxs("tr", { className: "text-neutral-grey-50 text-left", children: [_jsx("th", { className: "py-1 font-normal", children: "Top queries" }), _jsx("th", { className: "py-1 text-right font-normal", children: "Clicks" }), _jsx("th", { className: "py-1 text-right font-normal", children: "Impr." }), _jsx("th", { className: "py-1 text-right font-normal", children: "CTR" }), _jsx("th", { className: "py-1 text-right font-normal", children: "Pos." })] }) }), _jsx("tbody", { children: search.topQueries.map((q) => (_jsxs("tr", { className: "border-border-default border-t", children: [_jsx("td", { className: "max-w-0 truncate py-1 pr-1", title: q.query, children: q.query }), _jsx("td", { className: "py-1 text-right", children: formatCount(q.clicks) }), _jsx("td", { className: "py-1 text-right", children: formatCount(q.impressions) }), _jsx("td", { className: "py-1 text-right", children: formatMetricValue(q.ctr, "ratio") }), _jsx("td", { className: "py-1 text-right", children: formatMetricValue(q.position, "position") })] }, q.query))) })] }), _jsx("p", { className: "text-neutral-grey-50 mt-1 text-xs", children: "Top rows only: Google hides rare queries, so these do not add up to the totals." })] })), search.searchConsoleUrl && _jsx(ExternalLinkRow, { href: search.searchConsoleUrl, children: "Open in Search Console" })] })) }));
|
|
101
|
+
}
|
|
102
|
+
/** Behaviour signals from Microsoft Clarity: the last few days only, so no comparison. */
|
|
103
|
+
function ClaritySection({ clarity }) {
|
|
104
|
+
return (_jsx(Section, { title: "Clarity", hint: `Last ${clarity.days} days, no comparison period. Shares are of this page's Clarity sessions.`, children: _jsxs("div", { className: "flex flex-col gap-2", "data-testid": "page-performance-clarity", children: [clarity.status !== "ok" ? (_jsx(StatusAlert, { status: clarity.status, message: clarity.message, source: "Clarity" })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex flex-col gap-1 text-xs", children: [_jsx(Row, { label: "Sessions", value: formatMetricValue(clarity.sessions, "count") }), _jsx(Row, { label: "Average scroll depth", value: clarity.averageScrollDepthPercent === undefined ? "—" : `${Math.round(clarity.averageScrollDepthPercent)}%` }), clarity.activeTimeSeconds !== undefined && (_jsx(Row, { label: "Active time", value: formatMetricValue(clarity.activeTimeSeconds, "seconds") })), clarity.signals.map((signal) => (_jsx("div", { title: signal.definition, children: _jsx(Row, { label: signal.label, value: signal.sessionsPercent === undefined
|
|
105
|
+
? formatMetricValue(signal.count, "count")
|
|
106
|
+
: `${formatMetricValue(signal.sessionsPercent / 100, "ratio")} of sessions` }) }, signal.key)))] }), clarity.notes.map((note) => (_jsx("p", { className: "text-neutral-grey-50 text-xs", children: note }, note)))] })), _jsxs("div", { className: "flex flex-wrap gap-3", children: [clarity.heatmapUrl && _jsx(ExternalLinkRow, { href: clarity.heatmapUrl, children: "Heatmap" }), clarity.recordingsUrl && _jsx(ExternalLinkRow, { href: clarity.recordingsUrl, children: "Recordings" })] })] }) }));
|
|
107
|
+
}
|
|
108
|
+
function Row({ label, value }) {
|
|
109
|
+
return (_jsxs("div", { className: "flex justify-between gap-2", children: [_jsx("span", { children: label }), _jsx("span", { children: value })] }));
|
|
110
|
+
}
|
|
111
|
+
function Quality({ report }) {
|
|
112
|
+
const notes = report.quality.notes;
|
|
113
|
+
const timeZoneNote = report.window && !report.window.timeZoneResolved
|
|
114
|
+
? "Dates are shown in UTC; the property's time zone is unknown on this server."
|
|
115
|
+
: null;
|
|
116
|
+
if (notes.length === 0 && !timeZoneNote)
|
|
117
|
+
return null;
|
|
118
|
+
return (_jsxs(Alert, { variant: "info", children: [_jsx(Info, { className: "h-4 w-4", strokeWidth: 1.5 }), _jsx(AlertTitle, { children: "About these numbers" }), _jsx(AlertDescription, { children: _jsxs("ul", { className: "list-disc pl-4", children: [notes.map((note) => (_jsx("li", { children: note }, note))), timeZoneNote && _jsx("li", { children: timeZoneNote })] }) })] }));
|
|
119
|
+
}
|
|
120
|
+
function StatusAlert({ status, message, source, }) {
|
|
121
|
+
const title = status === "not-configured"
|
|
122
|
+
? `${source} is not set up for this site`
|
|
123
|
+
: status === "no-url"
|
|
124
|
+
? "This page has no public URL"
|
|
125
|
+
: status === "no-data"
|
|
126
|
+
? `${source} has no data for this page`
|
|
127
|
+
: `${source} is unavailable`;
|
|
128
|
+
return (_jsxs(Alert, { variant: status === "error" ? "destructive" : status === "no-data" ? "default" : "warning", children: [_jsx(AlertTitle, { children: title }), message && _jsx(AlertDescription, { children: message })] }));
|
|
129
|
+
}
|
|
130
|
+
function Footer({ report }) {
|
|
131
|
+
return (_jsxs("div", { className: "text-neutral-grey-50 flex flex-col gap-1 border-t pt-2 text-xs", children: [report.page?.pageUrls && report.page.pageUrls.length > 0 && (_jsxs("div", { title: report.page.pageUrls.join("\n"), children: ["Matched URL: ", _jsx("span", { className: "break-all", children: report.page.pageUrls[0] }), report.page.host && _jsxs(_Fragment, { children: [" on host ", report.page.host] })] })), report.window?.lastCompleteDay && (_jsxs("div", { children: ["Data through ", formatDate(report.window.lastCompleteDay), " (today and yesterday are still being processed)."] })), report.ga4ReportUrl && _jsx(ExternalLinkRow, { href: report.ga4ReportUrl, children: "Open Google Analytics" })] }));
|
|
132
|
+
}
|
|
133
|
+
function ExternalLinkRow({ href, children }) {
|
|
134
|
+
return (_jsxs("a", { href: href, target: "_blank", rel: "noopener noreferrer", className: "text-highlight-100 inline-flex items-center gap-1 text-xs hover:underline", children: [children, _jsx(ExternalLink, { className: "h-3 w-3", strokeWidth: 1.5 })] }));
|
|
135
|
+
}
|
|
136
|
+
function Section({ title, hint, children }) {
|
|
137
|
+
return (_jsxs("section", { className: "flex flex-col gap-2", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-xs font-medium uppercase tracking-wide", children: title }), hint && _jsx("p", { className: "text-neutral-grey-50 text-xs", children: hint })] }), children] }));
|
|
138
|
+
}
|
|
139
|
+
function EmptyState({ children }) {
|
|
140
|
+
return _jsx("div", { className: "text-neutral-grey-50 py-4 text-center text-xs", children: children });
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=PagePerformance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PagePerformance.js","sourceRoot":"","sources":["../../../../src/editor/sidebar/analytics/PagePerformance.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AnalyticsMetric } from "../../services/analyticsService";
|
|
2
|
+
/** "No data" (undefined) is shown as an em dash, never as 0. */
|
|
3
|
+
export declare function formatMetricValue(value: number | undefined | null, unit: AnalyticsMetric["unit"]): string;
|
|
4
|
+
export declare function formatDuration(seconds: number): string;
|
|
5
|
+
export declare function formatChange(changePercent: number | undefined | null): string | null;
|
|
6
|
+
/** For average position a falling number is an improvement. */
|
|
7
|
+
export declare function changeTone(metric: Pick<AnalyticsMetric, "changePercent" | "unit">): "up" | "down" | "flat";
|
|
8
|
+
export declare function formatDate(isoDate: string | undefined): string;
|
|
9
|
+
export declare function formatCount(value: number): string;
|
|
10
|
+
export declare function share(value: number, total: number): number;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const integer = new Intl.NumberFormat("en-US", { maximumFractionDigits: 0 });
|
|
2
|
+
const decimal = new Intl.NumberFormat("en-US", { maximumFractionDigits: 1 });
|
|
3
|
+
/** "No data" (undefined) is shown as an em dash, never as 0. */
|
|
4
|
+
export function formatMetricValue(value, unit) {
|
|
5
|
+
if (value === undefined || value === null || Number.isNaN(value))
|
|
6
|
+
return "—";
|
|
7
|
+
switch (unit) {
|
|
8
|
+
case "seconds":
|
|
9
|
+
return formatDuration(value);
|
|
10
|
+
case "ratio":
|
|
11
|
+
return `${decimal.format(value * 100)}%`;
|
|
12
|
+
case "position":
|
|
13
|
+
return decimal.format(value);
|
|
14
|
+
default:
|
|
15
|
+
return integer.format(value);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function formatDuration(seconds) {
|
|
19
|
+
if (seconds < 60)
|
|
20
|
+
return `${Math.round(seconds)}s`;
|
|
21
|
+
const minutes = Math.floor(seconds / 60);
|
|
22
|
+
const rest = Math.round(seconds % 60);
|
|
23
|
+
return rest === 0 ? `${minutes}m` : `${minutes}m ${rest}s`;
|
|
24
|
+
}
|
|
25
|
+
export function formatChange(changePercent) {
|
|
26
|
+
if (changePercent === undefined || changePercent === null)
|
|
27
|
+
return null;
|
|
28
|
+
const sign = changePercent > 0 ? "+" : "";
|
|
29
|
+
return `${sign}${decimal.format(changePercent)}%`;
|
|
30
|
+
}
|
|
31
|
+
/** For average position a falling number is an improvement. */
|
|
32
|
+
export function changeTone(metric) {
|
|
33
|
+
const change = metric.changePercent;
|
|
34
|
+
if (change === undefined || change === null || Math.abs(change) < 0.5)
|
|
35
|
+
return "flat";
|
|
36
|
+
const better = metric.unit === "position" ? change < 0 : change > 0;
|
|
37
|
+
return better ? "up" : "down";
|
|
38
|
+
}
|
|
39
|
+
export function formatDate(isoDate) {
|
|
40
|
+
if (!isoDate)
|
|
41
|
+
return "";
|
|
42
|
+
const [year, month, day] = isoDate.split("-").map(Number);
|
|
43
|
+
if (!year || !month || !day)
|
|
44
|
+
return isoDate;
|
|
45
|
+
return new Date(Date.UTC(year, month - 1, day)).toLocaleDateString(undefined, {
|
|
46
|
+
month: "short",
|
|
47
|
+
day: "numeric",
|
|
48
|
+
timeZone: "UTC",
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
export function formatCount(value) {
|
|
52
|
+
return integer.format(value);
|
|
53
|
+
}
|
|
54
|
+
export function share(value, total) {
|
|
55
|
+
return total > 0 ? Math.round((value / total) * 100) : 0;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=analyticsFormat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyticsFormat.js","sourceRoot":"","sources":["../../../../src/editor/sidebar/analytics/analyticsFormat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type TreeChangeDetails = {
|
|
2
|
+
children?: boolean;
|
|
3
|
+
fields?: string[];
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Whether an item change can alter what the tree shows for that node. A save
|
|
7
|
+
* that only wrote content fields (a translation writes one save per field)
|
|
8
|
+
* changes nothing visible, so the node needs no re-read.
|
|
9
|
+
*/
|
|
10
|
+
export declare function treeChangeAffectsNode(changes: TreeChangeDetails): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the node's children list must be reloaded for this change. Servers
|
|
13
|
+
* that predate the explicit flag leave `children` unset on field-only saves;
|
|
14
|
+
* such a save never changes the children.
|
|
15
|
+
*/
|
|
16
|
+
export declare function treeChangeReloadsChildren(changes: TreeChangeDetails): boolean;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard fields whose value shows up in the content tree: the label, the
|
|
3
|
+
* icon, whether the item is a page, whether it can be written, its order.
|
|
4
|
+
* IDs as serialized in the repository's Sitecore items.
|
|
5
|
+
*/
|
|
6
|
+
const TREE_RELEVANT_FIELD_IDS = new Set([
|
|
7
|
+
"b5e02ad9-d56f-4c41-a065-a133db87bdeb", // __Display name
|
|
8
|
+
"06d5295c-ed2f-4a54-9bf2-26228d113318", // __Icon
|
|
9
|
+
"f1a1fe9e-a60c-4ddb-a3a0-bb5b29fe732e", // __Renderings
|
|
10
|
+
"04bf00db-f5fb-41f7-8ab7-22408372a981", // __Final Renderings
|
|
11
|
+
"dec8d2d5-e3cf-48b6-a653-8e69e2716641", // __Security
|
|
12
|
+
"9c6106ea-7a5a-48e2-8cad-f0f693b1e2d4", // __Read Only
|
|
13
|
+
"ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e", // __Sortorder
|
|
14
|
+
]);
|
|
15
|
+
const normalizeFieldId = (id) => id.replace(/[{}]/g, "").toLowerCase();
|
|
16
|
+
/**
|
|
17
|
+
* Whether an item change can alter what the tree shows for that node. A save
|
|
18
|
+
* that only wrote content fields (a translation writes one save per field)
|
|
19
|
+
* changes nothing visible, so the node needs no re-read.
|
|
20
|
+
*/
|
|
21
|
+
export function treeChangeAffectsNode(changes) {
|
|
22
|
+
if (changes.children === true)
|
|
23
|
+
return true;
|
|
24
|
+
const fields = changes.fields;
|
|
25
|
+
if (!fields || fields.length === 0)
|
|
26
|
+
return true;
|
|
27
|
+
return fields.some((id) => TREE_RELEVANT_FIELD_IDS.has(normalizeFieldId(id)));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Whether the node's children list must be reloaded for this change. Servers
|
|
31
|
+
* that predate the explicit flag leave `children` unset on field-only saves;
|
|
32
|
+
* such a save never changes the children.
|
|
33
|
+
*/
|
|
34
|
+
export function treeChangeReloadsChildren(changes) {
|
|
35
|
+
return changes.children ?? !(changes.fields && changes.fields.length > 0);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=treeRelevantFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeRelevantFields.js","sourceRoot":"","sources":["../../src/editor/treeRelevantFields.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,sCAAsC,EAAE,iBAAiB;IACzD,sCAAsC,EAAE,SAAS;IACjD,sCAAsC,EAAE,eAAe;IACvD,sCAAsC,EAAE,qBAAqB;IAC7D,sCAAsC,EAAE,aAAa;IACrD,sCAAsC,EAAE,cAAc;IACtD,sCAAsC,EAAE,cAAc;CACvD,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAO/E;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA0B;IAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA0B;IAClE,OAAO,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -8,7 +8,11 @@ type PublishDialogProps = DialogProps<PublishItemOperation | null>;
|
|
|
8
8
|
* not yet published, so datasource, layout and media changes go out with the
|
|
9
9
|
* page. An "Include subitems" option additionally publishes everything below
|
|
10
10
|
* the page; related items that the deep publish already covers are then left
|
|
11
|
-
* out of the batch.
|
|
11
|
+
* out of the batch. Every row the batch would publish has a checkbox, so the
|
|
12
|
+
* user can leave the page or single related items out; deselecting the page
|
|
13
|
+
* also turns off "Include subitems". Rows that cannot be chosen (already
|
|
14
|
+
* published, blocked, covered by the subitems) show a disabled checkbox with
|
|
15
|
+
* the reason. Per-row workflow commands act inline; the list refreshes
|
|
12
16
|
* in place as workboxItems updates and is shown with the current item first,
|
|
13
17
|
* then related items by template and item path. A live summary explains
|
|
14
18
|
* which items will stay behind, why, and what visitors will see, and a hint
|
|
@@ -13,8 +13,8 @@ import { Checkbox } from "../../components/ui/checkbox";
|
|
|
13
13
|
import { StyledDialogTitle } from "../../components/ui/styled-dialog-title";
|
|
14
14
|
import { DynamicRenderingsPublishWarning } from "./DynamicRenderingsPublishWarning";
|
|
15
15
|
import { Spinner } from "./Spinner";
|
|
16
|
-
import { WorkboxItemsTable } from "./WorkboxItemsTable";
|
|
17
|
-
import { findCurrentWorkboxItem, getPublishReadiness, getPublishValidationSummary, sortWorkboxItemsForPublish, } from "./publishReadiness";
|
|
16
|
+
import { WorkboxItemsTable, } from "./WorkboxItemsTable";
|
|
17
|
+
import { findCurrentWorkboxItem, getPublishReadiness, getPublishReasonText, getPublishValidationSummary, getWorkboxItemKey, sortWorkboxItemsForPublish, } from "./publishReadiness";
|
|
18
18
|
import { PublishReadinessSummary } from "./PublishReadinessSummary";
|
|
19
19
|
import { usePublishingItem } from "./usePublishingItem";
|
|
20
20
|
/**
|
|
@@ -24,7 +24,11 @@ import { usePublishingItem } from "./usePublishingItem";
|
|
|
24
24
|
* not yet published, so datasource, layout and media changes go out with the
|
|
25
25
|
* page. An "Include subitems" option additionally publishes everything below
|
|
26
26
|
* the page; related items that the deep publish already covers are then left
|
|
27
|
-
* out of the batch.
|
|
27
|
+
* out of the batch. Every row the batch would publish has a checkbox, so the
|
|
28
|
+
* user can leave the page or single related items out; deselecting the page
|
|
29
|
+
* also turns off "Include subitems". Rows that cannot be chosen (already
|
|
30
|
+
* published, blocked, covered by the subitems) show a disabled checkbox with
|
|
31
|
+
* the reason. Per-row workflow commands act inline; the list refreshes
|
|
28
32
|
* in place as workboxItems updates and is shown with the current item first,
|
|
29
33
|
* then related items by template and item path. A live summary explains
|
|
30
34
|
* which items will stay behind, why, and what visitors will see, and a hint
|
|
@@ -36,6 +40,9 @@ export function PublishDialog({ onClose }) {
|
|
|
36
40
|
const editContext = useEditContext();
|
|
37
41
|
const [isPublishing, setIsPublishing] = useState(false);
|
|
38
42
|
const [includeSubitems, setIncludeSubitems] = useState(false);
|
|
43
|
+
// Deselected row keys rather than selected ones, so rows that appear or
|
|
44
|
+
// become ready while the dialog is open are included by default.
|
|
45
|
+
const [excludedKeys, setExcludedKeys] = useState(() => new Set());
|
|
39
46
|
const publishingItem = usePublishingItem(editContext?.item);
|
|
40
47
|
const currentPublishItem = publishingItem.item;
|
|
41
48
|
const currentPublishDescriptor = publishingItem.isEmbedded
|
|
@@ -46,13 +53,71 @@ export function PublishDialog({ onClose }) {
|
|
|
46
53
|
if (!editContext)
|
|
47
54
|
return null;
|
|
48
55
|
const currentPublishWorkboxItem = findCurrentWorkboxItem(workboxItems, currentPublishDescriptor);
|
|
56
|
+
// A page without a row of its own cannot be deselected.
|
|
57
|
+
const pageKey = currentPublishWorkboxItem
|
|
58
|
+
? getWorkboxItemKey(currentPublishWorkboxItem.item)
|
|
59
|
+
: undefined;
|
|
60
|
+
const pageSelected = !pageKey || !excludedKeys.has(pageKey);
|
|
61
|
+
// The deep publish hangs off the page, so it goes when the page does.
|
|
62
|
+
const publishSubitems = includeSubitems && pageSelected;
|
|
49
63
|
const readiness = getPublishReadiness({
|
|
50
64
|
workboxItems,
|
|
51
65
|
currentItem: currentPublishDescriptor,
|
|
52
66
|
pagePath: currentPublishItem?.path || currentPublishWorkboxItem?.path,
|
|
53
|
-
includeSubitems,
|
|
67
|
+
includeSubitems: publishSubitems,
|
|
68
|
+
excludedKeys,
|
|
54
69
|
});
|
|
55
70
|
const blockedByWorkflowState = readiness.currentPage?.blockedByWorkflow ?? false;
|
|
71
|
+
const hasSelection = pageSelected || readiness.batchDescriptors.length > 0;
|
|
72
|
+
const entriesByKey = new Map(readiness.entries.map((entry) => [entry.key, entry]));
|
|
73
|
+
const selection = {
|
|
74
|
+
getState: (row) => {
|
|
75
|
+
const key = getWorkboxItemKey(row.item);
|
|
76
|
+
if (key === pageKey) {
|
|
77
|
+
return blockedByWorkflowState
|
|
78
|
+
? {
|
|
79
|
+
checked: false,
|
|
80
|
+
selectable: false,
|
|
81
|
+
title: "Move this page to a final workflow state to publish it.",
|
|
82
|
+
}
|
|
83
|
+
: { checked: pageSelected, selectable: true };
|
|
84
|
+
}
|
|
85
|
+
const entry = entriesByKey.get(key);
|
|
86
|
+
if (!entry)
|
|
87
|
+
return { checked: false, selectable: false };
|
|
88
|
+
if (entry.coveredBySubitems) {
|
|
89
|
+
return {
|
|
90
|
+
checked: true,
|
|
91
|
+
selectable: false,
|
|
92
|
+
title: "Published with the subitems of this page.",
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
if (entry.selectable) {
|
|
96
|
+
return { checked: !entry.excluded, selectable: true };
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
checked: false,
|
|
100
|
+
selectable: false,
|
|
101
|
+
title: entry.item.isPublished
|
|
102
|
+
? "Already published."
|
|
103
|
+
: entry.reason
|
|
104
|
+
? getPublishReasonText(entry.reason, entry.affectedTargets, entry.targetCount)
|
|
105
|
+
: "Not ready to publish.",
|
|
106
|
+
};
|
|
107
|
+
},
|
|
108
|
+
onChange: (rows, checked) => setExcludedKeys((current) => {
|
|
109
|
+
const next = new Set(current);
|
|
110
|
+
rows.forEach((row) => {
|
|
111
|
+
const key = getWorkboxItemKey(row.item);
|
|
112
|
+
if (checked)
|
|
113
|
+
next.delete(key);
|
|
114
|
+
else
|
|
115
|
+
next.add(key);
|
|
116
|
+
});
|
|
117
|
+
return next;
|
|
118
|
+
}),
|
|
119
|
+
disabled: isPublishing || editContext.readonly,
|
|
120
|
+
};
|
|
56
121
|
const validationSummary = getPublishValidationSummary(workboxItems, editContext.validationResult);
|
|
57
122
|
const openValidationSidebar = () => {
|
|
58
123
|
editContext.openSidebar("validation");
|
|
@@ -65,16 +130,21 @@ export function PublishDialog({ onClose }) {
|
|
|
65
130
|
currentPublishItem?.canWriteItem !== false &&
|
|
66
131
|
currentPublishItem?.canWriteLanguage !== false &&
|
|
67
132
|
!editContext.readonly &&
|
|
68
|
-
!blockedByWorkflowState
|
|
133
|
+
!blockedByWorkflowState &&
|
|
134
|
+
hasSelection;
|
|
69
135
|
const publishButtonTooltip = !currentPublishDescriptor
|
|
70
136
|
? "No current item is available to publish."
|
|
71
137
|
: blockedByWorkflowState
|
|
72
138
|
? `Move this item to a final workflow state before publishing${currentPublishWorkboxItem?.workflowState
|
|
73
139
|
? ` (currently "${currentPublishWorkboxItem.workflowState}")`
|
|
74
140
|
: ""}.`
|
|
75
|
-
:
|
|
76
|
-
? "
|
|
77
|
-
:
|
|
141
|
+
: !hasSelection
|
|
142
|
+
? "Select at least one item to publish."
|
|
143
|
+
: !pageSelected
|
|
144
|
+
? "Publish the selected related items."
|
|
145
|
+
: publishSubitems
|
|
146
|
+
? "Publish the current item and everything below it."
|
|
147
|
+
: "Publish the current item.";
|
|
78
148
|
const publishCurrentItem = async () => {
|
|
79
149
|
if (!currentPublishDescriptor || !canPublishCurrentItem)
|
|
80
150
|
return;
|
|
@@ -102,29 +172,38 @@ export function PublishDialog({ onClose }) {
|
|
|
102
172
|
workboxItems,
|
|
103
173
|
currentItem: item.descriptor,
|
|
104
174
|
pagePath: item.path || currentPublishWorkboxItem?.path,
|
|
105
|
-
includeSubitems,
|
|
175
|
+
includeSubitems: publishSubitems,
|
|
176
|
+
excludedKeys,
|
|
106
177
|
});
|
|
107
178
|
const relatedItems = batch.batchDescriptors;
|
|
108
|
-
const items =
|
|
179
|
+
const items = pageSelected
|
|
180
|
+
? [item.descriptor, ...relatedItems]
|
|
181
|
+
: relatedItems;
|
|
182
|
+
if (items.length === 0)
|
|
183
|
+
return;
|
|
109
184
|
const languages = [
|
|
110
185
|
...new Set(items.map((descriptor) => descriptor.language)),
|
|
111
186
|
];
|
|
112
|
-
const
|
|
187
|
+
const pageName = item.displayName || item.name;
|
|
188
|
+
const subject = `${pageName}${publishSubitems ? " with subitems" : ""}`;
|
|
189
|
+
const relatedText = `${relatedItems.length} related item${relatedItems.length === 1 ? "" : "s"}`;
|
|
113
190
|
const operation = {
|
|
114
191
|
type: "publish-item",
|
|
115
192
|
id: uuid(),
|
|
116
193
|
date: new Date().toISOString(),
|
|
117
|
-
title:
|
|
118
|
-
? `Publish ${
|
|
119
|
-
:
|
|
120
|
-
|
|
194
|
+
title: !pageSelected
|
|
195
|
+
? `Publish ${relatedText} of ${pageName}`
|
|
196
|
+
: relatedItems.length === 0
|
|
197
|
+
? `Publish ${subject}`
|
|
198
|
+
: `Publish ${subject} and ${relatedText}`,
|
|
199
|
+
description: `smart publish of ${items.length} item${items.length === 1 ? "" : "s"}${publishSubitems ? " with subitems" : ""} to ${targetDatabases.length} target(s)`,
|
|
121
200
|
mainItem: item.descriptor,
|
|
122
201
|
item: item.descriptor,
|
|
123
202
|
items,
|
|
124
203
|
targetDatabases,
|
|
125
204
|
languages,
|
|
126
205
|
publishMode: "smart",
|
|
127
|
-
includeSubitems,
|
|
206
|
+
includeSubitems: publishSubitems,
|
|
128
207
|
publishRelatedItems: false,
|
|
129
208
|
canUndo: false,
|
|
130
209
|
};
|
|
@@ -155,6 +234,8 @@ export function PublishDialog({ onClose }) {
|
|
|
155
234
|
? "One listed item has validation issues."
|
|
156
235
|
: `${validationSummary.itemCount} listed items have validation issues.` }), _jsxs(AlertDescription, { children: ["Publishing is still possible, but the", " ", validationSummary.issueCount === 1
|
|
157
236
|
? "issue"
|
|
158
|
-
: `${validationSummary.issueCount} issues`, " ", "will go live as well. Review and fix", " ", validationSummary.issueCount === 1 ? "it" : "them", " in the", " ", _jsx(Button, { variant: "link", className: "h-auto p-0 text-sm font-medium", onClick: openValidationSidebar, "data-testid": "publish-validation-hint-link", children: "Validation sidebar" }), "."] })] })), !publishingItem.isLoading && !publishingItem.error && (_jsx(DynamicRenderingsPublishWarning, { page: currentPublishDescriptor, className: "mb-4" })), _jsx("div", { className: "min-h-[12rem]", children: _jsx(WorkboxItemsTable, { items: workboxItems, isLoading: editContext.isWorkboxLoading, emptyMessage: "No items to publish.", onValidationAction: () => onClose(null) }) })] }), _jsxs(DialogFooter, { className: "mt-auto shrink-0 border-t bg-white px-6 py-4 sm:items-center", children: [_jsxs("label", { className: "flex cursor-pointer items-center gap-3 sm:mr-auto", "data-testid": "publish-dialog-include-subitems-option", children: [_jsx(Checkbox, { checked:
|
|
237
|
+
: `${validationSummary.issueCount} issues`, " ", "will go live as well. Review and fix", " ", validationSummary.issueCount === 1 ? "it" : "them", " in the", " ", _jsx(Button, { variant: "link", className: "h-auto p-0 text-sm font-medium", onClick: openValidationSidebar, "data-testid": "publish-validation-hint-link", children: "Validation sidebar" }), "."] })] })), !publishingItem.isLoading && !publishingItem.error && (_jsx(DynamicRenderingsPublishWarning, { page: currentPublishDescriptor, className: "mb-4" })), _jsx("div", { className: "min-h-[12rem]", children: _jsx(WorkboxItemsTable, { items: workboxItems, isLoading: editContext.isWorkboxLoading, emptyMessage: "No items to publish.", selection: selection, onValidationAction: () => onClose(null) }) })] }), _jsxs(DialogFooter, { className: "mt-auto shrink-0 border-t bg-white px-6 py-4 sm:items-center", children: [_jsxs("label", { className: "flex cursor-pointer items-center gap-3 sm:mr-auto", "data-testid": "publish-dialog-include-subitems-option", children: [_jsx(Checkbox, { checked: publishSubitems, onCheckedChange: (checked) => setIncludeSubitems(!!checked), disabled: isPublishing || editContext.readonly || !pageSelected, "data-testid": "publish-dialog-include-subitems" }), _jsxs("span", { children: [_jsx("span", { className: "block text-sm font-medium", children: "Include subitems" }), _jsx("span", { className: "text-2xs text-muted-foreground block", children: pageSelected
|
|
238
|
+
? "Also publish everything below this page."
|
|
239
|
+
: "Select this page to also publish everything below it." })] })] }), _jsx(Button, { variant: "outline", onClick: () => onClose(null), children: "Close" }), _jsx(Button, { onClick: publishCurrentItem, disabled: !canPublishCurrentItem, title: publishButtonTooltip, "data-testid": "publish-dialog-submit", children: isPublishing ? (_jsxs(_Fragment, { children: [_jsx(Spinner, { size: "sm" }), " Publishing..."] })) : (_jsxs(_Fragment, { children: [_jsx(Rocket, { className: "h-3.5 w-3.5", strokeWidth: 1 }), "Publish"] })) })] })] }) }));
|
|
159
240
|
}
|
|
160
241
|
//# sourceMappingURL=PublishDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublishDialog.js","sourceRoot":"","sources":["../../../src/editor/ui/PublishDialog.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PublishDialog.js","sourceRoot":"","sources":["../../../src/editor/ui/PublishDialog.tsx"],"names":[],"mappings":"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"}
|