@burdenoff/microfe-planmagnet 2026.1001.5 → 2026.1001.7
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/planmagnet/PlanMagnetRoutes.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.js +10 -6
- package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -1
- package/dist/planmagnet/automation/automationRuleTypes.d.ts +31 -19
- package/dist/planmagnet/automation/automationRuleTypes.d.ts.map +1 -1
- package/dist/planmagnet/automation/automationRuleTypes.js +4 -8
- package/dist/planmagnet/automation/automationRuleTypes.js.map +1 -1
- package/dist/planmagnet/controls/CompetitorControls.d.ts +71 -0
- package/dist/planmagnet/controls/CompetitorControls.d.ts.map +1 -1
- package/dist/planmagnet/controls/CompetitorControls.js +346 -12
- package/dist/planmagnet/controls/CompetitorControls.js.map +1 -1
- package/dist/planmagnet/controls/FeatureControls.d.ts +23 -1
- package/dist/planmagnet/controls/FeatureControls.d.ts.map +1 -1
- package/dist/planmagnet/controls/FeatureControls.js +431 -229
- package/dist/planmagnet/controls/FeatureControls.js.map +1 -1
- package/dist/planmagnet/controls/FeedbackControls.d.ts +70 -0
- package/dist/planmagnet/controls/FeedbackControls.d.ts.map +1 -0
- package/dist/planmagnet/controls/FeedbackControls.js +153 -0
- package/dist/planmagnet/controls/FeedbackControls.js.map +1 -0
- package/dist/planmagnet/controls/Pickers.d.ts +15 -0
- package/dist/planmagnet/controls/Pickers.d.ts.map +1 -1
- package/dist/planmagnet/controls/Pickers.js +61 -1
- package/dist/planmagnet/controls/Pickers.js.map +1 -1
- package/dist/planmagnet/controls/PrioritizationControls.d.ts +36 -0
- package/dist/planmagnet/controls/PrioritizationControls.d.ts.map +1 -1
- package/dist/planmagnet/controls/PrioritizationControls.js +118 -1
- package/dist/planmagnet/controls/PrioritizationControls.js.map +1 -1
- package/dist/planmagnet/controls/SyncControls.d.ts.map +1 -1
- package/dist/planmagnet/controls/SyncControls.js +1 -0
- package/dist/planmagnet/controls/SyncControls.js.map +1 -1
- package/dist/planmagnet/controls/WebhookSubscriptionControls.d.ts +47 -0
- package/dist/planmagnet/controls/WebhookSubscriptionControls.d.ts.map +1 -0
- package/dist/planmagnet/controls/WebhookSubscriptionControls.js +542 -0
- package/dist/planmagnet/controls/WebhookSubscriptionControls.js.map +1 -0
- package/dist/planmagnet/dashboards/DashboardUI.js +8 -8
- package/dist/planmagnet/dashboards/cards/RiskSeverityCard.js +4 -4
- package/dist/planmagnet/dashboards/cards/SprintCapacityCard.d.ts.map +1 -1
- package/dist/planmagnet/dashboards/cards/SprintCapacityCard.js +67 -59
- package/dist/planmagnet/dashboards/cards/SprintCapacityCard.js.map +1 -1
- package/dist/planmagnet/forecast/DeliveryForecastCard.js +8 -8
- package/dist/planmagnet/forecast/ProjectOutlookCard.js +10 -10
- package/dist/planmagnet/forecast/ProjectRiskSummaryCard.js +9 -9
- package/dist/planmagnet/forecast/ResourceForecastCard.js +6 -6
- package/dist/planmagnet/integrations/syncTypes.d.ts +2 -1
- package/dist/planmagnet/integrations/syncTypes.d.ts.map +1 -1
- package/dist/planmagnet/integrations/syncTypes.js +19 -9
- package/dist/planmagnet/integrations/syncTypes.js.map +1 -1
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js +290 -283
- package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/CompetitorsCompetitorDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/CompetitorsCompetitorDetailPagePage.js +126 -63
- package/dist/planmagnet/pages/CompetitorsCompetitorDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/CompetitorsCompetitorsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/CompetitorsCompetitorsPagePage.js +14 -0
- package/dist/planmagnet/pages/CompetitorsCompetitorsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/CompetitorsCreateCompetitorPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/CompetitorsCreateCompetitorPagePage.js +93 -57
- package/dist/planmagnet/pages/CompetitorsCreateCompetitorPagePage.js.map +1 -1
- package/dist/planmagnet/pages/CompetitorsEditCompetitorPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/CompetitorsEditCompetitorPagePage.js +125 -83
- package/dist/planmagnet/pages/CompetitorsEditCompetitorPagePage.js.map +1 -1
- package/dist/planmagnet/pages/DashboardDashboardPagePage.js +23 -23
- package/dist/planmagnet/pages/DocsDocDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/DocsDocDetailPagePage.js +340 -248
- package/dist/planmagnet/pages/DocsDocDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/IntegrationsSyncDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/IntegrationsSyncDetailPagePage.js +172 -167
- package/dist/planmagnet/pages/IntegrationsSyncDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/IntegrationsSyncsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/IntegrationsSyncsPagePage.js +92 -83
- package/dist/planmagnet/pages/IntegrationsSyncsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/IntegrationsWebhooksPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/IntegrationsWebhooksPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/IntegrationsWebhooksPagePage.js +175 -0
- package/dist/planmagnet/pages/IntegrationsWebhooksPagePage.js.map +1 -0
- package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.js +226 -126
- package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js +151 -126
- package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.js +169 -122
- package/dist/planmagnet/pages/ProductsFeaturesPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js +165 -109
- package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsProductsPagePage.js +13 -13
- package/dist/planmagnet/pages/ProjectsAtRiskPagePage.js +9 -9
- package/dist/planmagnet/pages/ProjectsBudgetsPagePage.js +8 -8
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +15 -3
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsProjectsPagePage.js +12 -12
- package/dist/planmagnet/pages/ReportsReportsPagePage.js +23 -23
- package/dist/planmagnet/pages/TasksMyDashboardPagePage.js +18 -18
- package/dist/planmagnet/pages/TasksMyWorkPagePage.js +10 -10
- package/dist/planmagnet/pages/TasksTimeEntriesPagePage.js +5 -5
- package/dist/planmagnet/pages/TeamTeamPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TeamTeamPagePage.js +59 -53
- package/dist/planmagnet/pages/TeamTeamPagePage.js.map +1 -1
- package/dist/planmagnet/pages/analytics/DeliveryHealthCards.js +8 -8
- package/dist/planmagnet/pages/analytics/DeliveryKpisCard.js +6 -6
- package/dist/planmagnet/pages/analytics/MetricsCard.d.ts +8 -0
- package/dist/planmagnet/pages/analytics/MetricsCard.d.ts.map +1 -0
- package/dist/planmagnet/pages/analytics/MetricsCard.js +164 -0
- package/dist/planmagnet/pages/analytics/MetricsCard.js.map +1 -0
- package/dist/planmagnet/pages/analytics/QualityMetricsCard.js +6 -6
- package/dist/planmagnet/pages/analytics/SprintDeliveryCards.js +8 -8
- package/dist/planmagnet/pages/analytics/StatusFlowCard.js +7 -7
- package/dist/planmagnet/pages/analytics/ThroughputCard.js +7 -7
- package/dist/planmagnet/pages/analytics/WorkBreakdownCard.js +7 -7
- package/dist/planmagnet/people/People.d.ts +14 -0
- package/dist/planmagnet/people/People.d.ts.map +1 -1
- package/dist/planmagnet/people/People.js +36 -22
- package/dist/planmagnet/people/People.js.map +1 -1
- package/dist/planmagnet/team/UnmatchedCrewIdentities.d.ts +2 -0
- package/dist/planmagnet/team/UnmatchedCrewIdentities.d.ts.map +1 -0
- package/dist/planmagnet/team/UnmatchedCrewIdentities.js +155 -0
- package/dist/planmagnet/team/UnmatchedCrewIdentities.js.map +1 -0
- package/dist/planmagnet/webhooks/webhookTypes.d.ts +54 -0
- package/dist/planmagnet/webhooks/webhookTypes.d.ts.map +1 -0
- package/dist/planmagnet/webhooks/webhookTypes.js +17 -0
- package/dist/planmagnet/webhooks/webhookTypes.js.map +1 -0
- package/package.json +1 -1
|
@@ -2,16 +2,21 @@ import { usePlanMagnetNavigate as e } from "../providers/PlanMagnetProvider.js";
|
|
|
2
2
|
import { PersonName as t } from "../people/People.js";
|
|
3
3
|
import { detailPath as n } from "../utils/rowNavigation.js";
|
|
4
4
|
import { useEntityId as r } from "../hooks/useEntityId.js";
|
|
5
|
-
import {
|
|
6
|
-
import { CONFLICT_STRATEGY_EXPLANATION as
|
|
7
|
-
import { useState as
|
|
8
|
-
import { ExternalLink as
|
|
9
|
-
import { gql as
|
|
10
|
-
import { useQuery as
|
|
11
|
-
import { Fragment as
|
|
12
|
-
import { Badge as
|
|
5
|
+
import { conflictStrategyLabel as i, directionLabel as a, parseGithubFieldMapping as o, providerLabel as s } from "../integrations/syncTypes.js";
|
|
6
|
+
import { CONFLICT_STRATEGY_EXPLANATION as c, ConflictResolveActions as l, ConflictStatusBadge as u, DeleteSyncButton as d, EditSyncDialog as f, PauseResumeButton as p, RunNowButton as m, SyncHealthSummary as h, SyncRunResultSummary as g, SyncRunStatusBadge as _, SyncStatusBadge as v, TestConnectionButton as y, TruncatedText as b } from "../controls/SyncControls.js";
|
|
7
|
+
import { useState as x } from "react";
|
|
8
|
+
import { ExternalLink as S, History as C, Plug as w, ShieldAlert as T } from "lucide-react";
|
|
9
|
+
import { gql as E } from "@apollo/client";
|
|
10
|
+
import { useQuery as D } from "@apollo/client/react";
|
|
11
|
+
import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
|
|
12
|
+
import { Badge as j, Button as M, Card as N, CardContent as P, CardHeader as F, CardTitle as I, Tabs as L, TabsContent as R, TabsList as z, TabsTrigger as B } from "@burdenoff/fe-libs/ui";
|
|
13
13
|
//#region src/planmagnet/pages/IntegrationsSyncDetailPagePage.tsx
|
|
14
|
-
var
|
|
14
|
+
var V = {
|
|
15
|
+
SOURCE_WINS: "kept PlanMagnet",
|
|
16
|
+
TARGET_WINS: "took the provider",
|
|
17
|
+
MERGE: "merged",
|
|
18
|
+
MANUAL: "dismissed manually"
|
|
19
|
+
}, H = 20, U = 20, W = E`
|
|
15
20
|
query SyncDetail($id: ID!) {
|
|
16
21
|
planmagnetExternalSync(id: $id) {
|
|
17
22
|
id
|
|
@@ -41,7 +46,7 @@ var B = 20, V = 20, H = T`
|
|
|
41
46
|
}
|
|
42
47
|
}
|
|
43
48
|
}
|
|
44
|
-
`,
|
|
49
|
+
`, G = E`
|
|
45
50
|
query SyncRuns($syncId: ID!, $pagination: PlanmagnetPaginationInput) {
|
|
46
51
|
planmagnetSyncRuns(syncId: $syncId, pagination: $pagination) {
|
|
47
52
|
totalCount
|
|
@@ -65,7 +70,7 @@ var B = 20, V = 20, H = T`
|
|
|
65
70
|
}
|
|
66
71
|
}
|
|
67
72
|
}
|
|
68
|
-
`,
|
|
73
|
+
`, K = E`
|
|
69
74
|
query SyncConflicts(
|
|
70
75
|
$syncId: ID!
|
|
71
76
|
$status: PlanmagnetSyncConflictStatus
|
|
@@ -100,18 +105,18 @@ var B = 20, V = 20, H = T`
|
|
|
100
105
|
}
|
|
101
106
|
}
|
|
102
107
|
`;
|
|
103
|
-
function
|
|
104
|
-
let [n, r] =
|
|
108
|
+
function q({ syncId: e }) {
|
|
109
|
+
let [n, r] = x(!1), { data: i, loading: o, error: s, fetchMore: c } = D(G, { variables: {
|
|
105
110
|
syncId: e,
|
|
106
|
-
pagination: { first:
|
|
107
|
-
} }), l =
|
|
111
|
+
pagination: { first: H }
|
|
112
|
+
} }), l = i?.planmagnetSyncRuns, u = l?.items ?? [], d = async () => {
|
|
108
113
|
let e = l?.pageInfo.endCursor;
|
|
109
114
|
if (e) {
|
|
110
115
|
r(!0);
|
|
111
116
|
try {
|
|
112
117
|
await c({
|
|
113
118
|
variables: { pagination: {
|
|
114
|
-
first:
|
|
119
|
+
first: H,
|
|
115
120
|
after: e
|
|
116
121
|
} },
|
|
117
122
|
updateQuery: (e, { fetchMoreResult: t }) => ({ planmagnetSyncRuns: {
|
|
@@ -124,79 +129,79 @@ function G({ syncId: e }) {
|
|
|
124
129
|
}
|
|
125
130
|
}
|
|
126
131
|
};
|
|
127
|
-
return /* @__PURE__ */
|
|
132
|
+
return /* @__PURE__ */ A("div", {
|
|
128
133
|
className: "space-y-3",
|
|
129
134
|
"data-testid": "sync-runs",
|
|
130
135
|
children: [
|
|
131
|
-
s && /* @__PURE__ */
|
|
136
|
+
s && /* @__PURE__ */ A("p", {
|
|
132
137
|
role: "alert",
|
|
133
138
|
className: "text-sm text-destructive",
|
|
134
139
|
children: ["Run history could not be loaded: ", s.message]
|
|
135
140
|
}),
|
|
136
|
-
o && !
|
|
141
|
+
o && !i && /* @__PURE__ */ k("p", {
|
|
137
142
|
className: "text-sm text-muted-foreground",
|
|
138
143
|
children: "Loading run history…"
|
|
139
144
|
}),
|
|
140
|
-
l && u.length === 0 && /* @__PURE__ */
|
|
145
|
+
l && u.length === 0 && /* @__PURE__ */ k("p", {
|
|
141
146
|
className: "py-6 text-center text-sm text-muted-foreground",
|
|
142
147
|
children: "No runs yet — use \"Run now\" above to start the first one."
|
|
143
148
|
}),
|
|
144
|
-
/* @__PURE__ */
|
|
149
|
+
/* @__PURE__ */ k("div", {
|
|
145
150
|
className: "overflow-x-auto",
|
|
146
|
-
children: u.length > 0 && /* @__PURE__ */
|
|
151
|
+
children: u.length > 0 && /* @__PURE__ */ A("table", {
|
|
147
152
|
className: "w-full text-sm",
|
|
148
|
-
children: [/* @__PURE__ */
|
|
153
|
+
children: [/* @__PURE__ */ k("thead", { children: /* @__PURE__ */ A("tr", {
|
|
149
154
|
className: "text-left text-muted-foreground",
|
|
150
155
|
children: [
|
|
151
|
-
/* @__PURE__ */
|
|
156
|
+
/* @__PURE__ */ k("th", {
|
|
152
157
|
className: "py-1 pr-3 font-medium",
|
|
153
158
|
children: "Started"
|
|
154
159
|
}),
|
|
155
|
-
/* @__PURE__ */
|
|
160
|
+
/* @__PURE__ */ k("th", {
|
|
156
161
|
className: "py-1 pr-3 font-medium",
|
|
157
162
|
children: "Direction"
|
|
158
163
|
}),
|
|
159
|
-
/* @__PURE__ */
|
|
164
|
+
/* @__PURE__ */ k("th", {
|
|
160
165
|
className: "py-1 pr-3 font-medium",
|
|
161
166
|
children: "Status"
|
|
162
167
|
}),
|
|
163
|
-
/* @__PURE__ */
|
|
168
|
+
/* @__PURE__ */ k("th", {
|
|
164
169
|
className: "py-1 pr-3 font-medium",
|
|
165
170
|
children: "Created / updated / skipped"
|
|
166
171
|
}),
|
|
167
|
-
/* @__PURE__ */
|
|
172
|
+
/* @__PURE__ */ k("th", {
|
|
168
173
|
className: "py-1 pr-3 font-medium",
|
|
169
174
|
children: "Conflicts"
|
|
170
175
|
}),
|
|
171
|
-
/* @__PURE__ */
|
|
176
|
+
/* @__PURE__ */ k("th", {
|
|
172
177
|
className: "py-1 pr-3 font-medium",
|
|
173
178
|
children: "Triggered by"
|
|
174
179
|
}),
|
|
175
|
-
/* @__PURE__ */
|
|
180
|
+
/* @__PURE__ */ k("th", {
|
|
176
181
|
className: "py-1 font-medium",
|
|
177
182
|
children: "Error"
|
|
178
183
|
})
|
|
179
184
|
]
|
|
180
|
-
}) }), /* @__PURE__ */
|
|
185
|
+
}) }), /* @__PURE__ */ k("tbody", { children: u.map((e) => /* @__PURE__ */ A("tr", {
|
|
181
186
|
className: "border-t align-top",
|
|
182
187
|
"data-testid": "sync-run-row",
|
|
183
188
|
children: [
|
|
184
|
-
/* @__PURE__ */
|
|
189
|
+
/* @__PURE__ */ A("td", {
|
|
185
190
|
className: "py-1.5 pr-3 whitespace-nowrap",
|
|
186
|
-
children: [/* @__PURE__ */
|
|
191
|
+
children: [/* @__PURE__ */ k("div", { children: new Date(e.startedAt).toLocaleString() }), /* @__PURE__ */ A("div", {
|
|
187
192
|
className: "text-xs text-muted-foreground",
|
|
188
193
|
children: ["finished ", new Date(e.finishedAt).toLocaleString()]
|
|
189
194
|
})]
|
|
190
195
|
}),
|
|
191
|
-
/* @__PURE__ */
|
|
196
|
+
/* @__PURE__ */ k("td", {
|
|
192
197
|
className: "py-1.5 pr-3 whitespace-nowrap",
|
|
193
|
-
children:
|
|
198
|
+
children: a(e.direction)
|
|
194
199
|
}),
|
|
195
|
-
/* @__PURE__ */
|
|
200
|
+
/* @__PURE__ */ k("td", {
|
|
196
201
|
className: "py-1.5 pr-3",
|
|
197
|
-
children: /* @__PURE__ */
|
|
202
|
+
children: /* @__PURE__ */ k(_, { status: e.status })
|
|
198
203
|
}),
|
|
199
|
-
/* @__PURE__ */
|
|
204
|
+
/* @__PURE__ */ A("td", {
|
|
200
205
|
className: "py-1.5 pr-3 whitespace-nowrap",
|
|
201
206
|
children: [
|
|
202
207
|
e.itemsCreated,
|
|
@@ -206,21 +211,21 @@ function G({ syncId: e }) {
|
|
|
206
211
|
e.itemsSkipped
|
|
207
212
|
]
|
|
208
213
|
}),
|
|
209
|
-
/* @__PURE__ */
|
|
214
|
+
/* @__PURE__ */ k("td", {
|
|
210
215
|
className: "py-1.5 pr-3",
|
|
211
216
|
children: e.conflictCount
|
|
212
217
|
}),
|
|
213
|
-
/* @__PURE__ */
|
|
218
|
+
/* @__PURE__ */ k("td", {
|
|
214
219
|
className: "py-1.5 pr-3 whitespace-nowrap",
|
|
215
|
-
children: /* @__PURE__ */
|
|
220
|
+
children: /* @__PURE__ */ k(t, { id: e.triggeredBy })
|
|
216
221
|
}),
|
|
217
|
-
/* @__PURE__ */
|
|
222
|
+
/* @__PURE__ */ k("td", {
|
|
218
223
|
className: "py-1.5 text-status-error-text",
|
|
219
|
-
children: e.errorMessage ? /* @__PURE__ */
|
|
224
|
+
children: e.errorMessage ? /* @__PURE__ */ k(b, {
|
|
220
225
|
text: e.errorMessage,
|
|
221
226
|
max: 100,
|
|
222
227
|
className: "text-status-error-text"
|
|
223
|
-
}) : /* @__PURE__ */
|
|
228
|
+
}) : /* @__PURE__ */ k("span", {
|
|
224
229
|
className: "text-muted-foreground",
|
|
225
230
|
children: "—"
|
|
226
231
|
})
|
|
@@ -229,7 +234,7 @@ function G({ syncId: e }) {
|
|
|
229
234
|
}, e.id)) })]
|
|
230
235
|
})
|
|
231
236
|
}),
|
|
232
|
-
l?.pageInfo.hasNextPage && /* @__PURE__ */
|
|
237
|
+
l?.pageInfo.hasNextPage && /* @__PURE__ */ k(M, {
|
|
233
238
|
size: "sm",
|
|
234
239
|
variant: "outline",
|
|
235
240
|
onClick: () => void d(),
|
|
@@ -239,35 +244,35 @@ function G({ syncId: e }) {
|
|
|
239
244
|
]
|
|
240
245
|
});
|
|
241
246
|
}
|
|
242
|
-
function
|
|
247
|
+
function J({ conflict: n }) {
|
|
243
248
|
let r = e(), i = n.mapping, a = i?.internalType === "workitem";
|
|
244
|
-
return /* @__PURE__ */
|
|
249
|
+
return /* @__PURE__ */ A("li", {
|
|
245
250
|
className: "rounded-md border p-4 space-y-2",
|
|
246
251
|
"data-testid": "sync-conflict",
|
|
247
252
|
children: [
|
|
248
|
-
/* @__PURE__ */
|
|
253
|
+
/* @__PURE__ */ A("div", {
|
|
249
254
|
className: "flex flex-wrap items-center justify-between gap-2",
|
|
250
|
-
children: [/* @__PURE__ */
|
|
255
|
+
children: [/* @__PURE__ */ A("div", {
|
|
251
256
|
className: "flex flex-wrap items-center gap-2",
|
|
252
|
-
children: [/* @__PURE__ */
|
|
257
|
+
children: [/* @__PURE__ */ k(u, { status: n.status }), /* @__PURE__ */ A("span", {
|
|
253
258
|
className: "text-xs text-muted-foreground",
|
|
254
259
|
children: ["Detected ", new Date(n.createdAt).toLocaleString()]
|
|
255
260
|
})]
|
|
256
|
-
}), i && /* @__PURE__ */
|
|
261
|
+
}), i && /* @__PURE__ */ A("div", {
|
|
257
262
|
className: "flex items-center gap-2 text-xs",
|
|
258
|
-
children: [a ? /* @__PURE__ */
|
|
263
|
+
children: [a ? /* @__PURE__ */ k("button", {
|
|
259
264
|
type: "button",
|
|
260
265
|
className: "font-medium text-primary hover:underline",
|
|
261
266
|
onClick: () => r(`/tasks/task-detail-page?taskId=${encodeURIComponent(i.internalId)}`),
|
|
262
267
|
children: "Open in PlanMagnet"
|
|
263
|
-
}) : /* @__PURE__ */
|
|
268
|
+
}) : /* @__PURE__ */ A("span", {
|
|
264
269
|
className: "text-muted-foreground",
|
|
265
270
|
children: [
|
|
266
271
|
i.internalType,
|
|
267
272
|
" ",
|
|
268
273
|
i.internalId
|
|
269
274
|
]
|
|
270
|
-
}), i.externalUrl && /* @__PURE__ */
|
|
275
|
+
}), i.externalUrl && /* @__PURE__ */ A("a", {
|
|
271
276
|
href: i.externalUrl,
|
|
272
277
|
target: "_blank",
|
|
273
278
|
rel: "noreferrer noopener",
|
|
@@ -275,43 +280,43 @@ function K({ conflict: n }) {
|
|
|
275
280
|
children: [
|
|
276
281
|
"View on ",
|
|
277
282
|
i.externalType,
|
|
278
|
-
/* @__PURE__ */
|
|
283
|
+
/* @__PURE__ */ k(S, { className: "h-3 w-3" })
|
|
279
284
|
]
|
|
280
285
|
})]
|
|
281
286
|
})]
|
|
282
287
|
}),
|
|
283
|
-
/* @__PURE__ */
|
|
288
|
+
/* @__PURE__ */ A("p", {
|
|
284
289
|
className: "text-sm",
|
|
285
290
|
children: [
|
|
286
291
|
"Fields in conflict:",
|
|
287
292
|
" ",
|
|
288
|
-
/* @__PURE__ */
|
|
293
|
+
/* @__PURE__ */ k("span", {
|
|
289
294
|
className: "font-medium",
|
|
290
295
|
children: n.fields.length ? n.fields.join(", ") : "unknown"
|
|
291
296
|
})
|
|
292
297
|
]
|
|
293
298
|
}),
|
|
294
|
-
/* @__PURE__ */
|
|
299
|
+
/* @__PURE__ */ A("div", {
|
|
295
300
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-2 text-xs text-muted-foreground",
|
|
296
|
-
children: [/* @__PURE__ */
|
|
301
|
+
children: [/* @__PURE__ */ A("span", { children: ["PlanMagnet last updated ", new Date(n.localUpdatedAt).toLocaleString()] }), /* @__PURE__ */ A("span", { children: ["Provider last updated ", new Date(n.remoteUpdatedAt).toLocaleString()] })]
|
|
297
302
|
}),
|
|
298
|
-
n.status === "OPEN" ? /* @__PURE__ */
|
|
303
|
+
n.status === "OPEN" ? /* @__PURE__ */ k(l, { conflictId: n.id }) : /* @__PURE__ */ A("p", {
|
|
299
304
|
className: "text-xs text-muted-foreground",
|
|
300
305
|
children: [
|
|
301
306
|
"Resolved ",
|
|
302
307
|
n.resolvedAt ? new Date(n.resolvedAt).toLocaleString() : "",
|
|
303
|
-
n.resolution ? ` — ${n.resolution
|
|
304
|
-
n.resolvedBy ? /* @__PURE__ */
|
|
308
|
+
n.resolution ? ` — ${V[n.resolution] ?? n.resolution.toLowerCase()}` : "",
|
|
309
|
+
n.resolvedBy ? /* @__PURE__ */ A(O, { children: [" by ", /* @__PURE__ */ k(t, { id: n.resolvedBy })] }) : null
|
|
305
310
|
]
|
|
306
311
|
})
|
|
307
312
|
]
|
|
308
313
|
});
|
|
309
314
|
}
|
|
310
|
-
function
|
|
311
|
-
let [t, n] =
|
|
315
|
+
function Y({ syncId: e }) {
|
|
316
|
+
let [t, n] = x("OPEN"), [r, i] = x(!1), { data: a, loading: o, error: s, fetchMore: c } = D(K, { variables: {
|
|
312
317
|
syncId: e,
|
|
313
318
|
status: t === "ALL" ? void 0 : t,
|
|
314
|
-
pagination: { first:
|
|
319
|
+
pagination: { first: U }
|
|
315
320
|
} }), l = a?.planmagnetSyncConflicts, u = l?.items ?? [], d = async () => {
|
|
316
321
|
let e = l?.pageInfo.endCursor;
|
|
317
322
|
if (e) {
|
|
@@ -319,7 +324,7 @@ function q({ syncId: e }) {
|
|
|
319
324
|
try {
|
|
320
325
|
await c({
|
|
321
326
|
variables: { pagination: {
|
|
322
|
-
first:
|
|
327
|
+
first: U,
|
|
323
328
|
after: e
|
|
324
329
|
} },
|
|
325
330
|
updateQuery: (e, { fetchMoreResult: t }) => ({ planmagnetSyncConflicts: {
|
|
@@ -332,11 +337,11 @@ function q({ syncId: e }) {
|
|
|
332
337
|
}
|
|
333
338
|
}
|
|
334
339
|
};
|
|
335
|
-
return /* @__PURE__ */
|
|
340
|
+
return /* @__PURE__ */ A("div", {
|
|
336
341
|
className: "space-y-3",
|
|
337
342
|
"data-testid": "sync-conflicts",
|
|
338
343
|
children: [
|
|
339
|
-
/* @__PURE__ */
|
|
344
|
+
/* @__PURE__ */ k("div", {
|
|
340
345
|
className: "flex flex-wrap gap-1",
|
|
341
346
|
role: "group",
|
|
342
347
|
"aria-label": "Filter conflicts by status",
|
|
@@ -344,7 +349,7 @@ function q({ syncId: e }) {
|
|
|
344
349
|
"OPEN",
|
|
345
350
|
"RESOLVED",
|
|
346
351
|
"ALL"
|
|
347
|
-
].map((e) => /* @__PURE__ */
|
|
352
|
+
].map((e) => /* @__PURE__ */ k("button", {
|
|
348
353
|
type: "button",
|
|
349
354
|
"aria-pressed": t === e,
|
|
350
355
|
"data-testid": `sync-conflicts-status-${e}`,
|
|
@@ -353,24 +358,24 @@ function q({ syncId: e }) {
|
|
|
353
358
|
children: e === "ALL" ? "All" : e.charAt(0) + e.slice(1).toLowerCase()
|
|
354
359
|
}, e))
|
|
355
360
|
}),
|
|
356
|
-
s && /* @__PURE__ */
|
|
361
|
+
s && /* @__PURE__ */ A("p", {
|
|
357
362
|
role: "alert",
|
|
358
363
|
className: "text-sm text-destructive",
|
|
359
364
|
children: ["Conflicts could not be loaded: ", s.message]
|
|
360
365
|
}),
|
|
361
|
-
o && !a && /* @__PURE__ */
|
|
366
|
+
o && !a && /* @__PURE__ */ k("p", {
|
|
362
367
|
className: "text-sm text-muted-foreground",
|
|
363
368
|
children: "Loading conflicts…"
|
|
364
369
|
}),
|
|
365
|
-
l && u.length === 0 && /* @__PURE__ */
|
|
370
|
+
l && u.length === 0 && /* @__PURE__ */ k("p", {
|
|
366
371
|
className: "py-6 text-center text-sm text-muted-foreground",
|
|
367
372
|
children: t === "OPEN" ? "No open conflicts." : "No conflicts found."
|
|
368
373
|
}),
|
|
369
|
-
/* @__PURE__ */
|
|
374
|
+
/* @__PURE__ */ k("ul", {
|
|
370
375
|
className: "space-y-3",
|
|
371
|
-
children: u.map((e) => /* @__PURE__ */
|
|
376
|
+
children: u.map((e) => /* @__PURE__ */ k(J, { conflict: e }, e.id))
|
|
372
377
|
}),
|
|
373
|
-
l?.pageInfo.hasNextPage && /* @__PURE__ */
|
|
378
|
+
l?.pageInfo.hasNextPage && /* @__PURE__ */ k(M, {
|
|
374
379
|
size: "sm",
|
|
375
380
|
variant: "outline",
|
|
376
381
|
onClick: () => void d(),
|
|
@@ -380,206 +385,206 @@ function q({ syncId: e }) {
|
|
|
380
385
|
]
|
|
381
386
|
});
|
|
382
387
|
}
|
|
383
|
-
function
|
|
384
|
-
let t = r(),
|
|
388
|
+
function X() {
|
|
389
|
+
let t = r(), l = e(), [u, _] = x(null), { data: E, loading: O, error: M } = D(W, {
|
|
385
390
|
variables: { id: t },
|
|
386
391
|
skip: !t
|
|
387
392
|
});
|
|
388
|
-
if (!t) return /* @__PURE__ */
|
|
393
|
+
if (!t) return /* @__PURE__ */ k("div", {
|
|
389
394
|
className: "p-6 text-muted-foreground",
|
|
390
395
|
children: "No sync selected. Open one from Integrations."
|
|
391
396
|
});
|
|
392
|
-
if (
|
|
397
|
+
if (O && !E) return /* @__PURE__ */ k("div", {
|
|
393
398
|
className: "flex items-center justify-center p-12",
|
|
394
|
-
children: /* @__PURE__ */
|
|
399
|
+
children: /* @__PURE__ */ k("div", { className: "animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full" })
|
|
395
400
|
});
|
|
396
|
-
if (
|
|
401
|
+
if (M) return /* @__PURE__ */ A("div", {
|
|
397
402
|
className: "p-6 text-destructive",
|
|
398
|
-
children: ["Sync could not be loaded: ",
|
|
403
|
+
children: ["Sync could not be loaded: ", M.message]
|
|
399
404
|
});
|
|
400
|
-
let
|
|
401
|
-
if (!
|
|
405
|
+
let V = E?.planmagnetExternalSync;
|
|
406
|
+
if (!V) return /* @__PURE__ */ k("div", {
|
|
402
407
|
className: "p-6 text-muted-foreground",
|
|
403
408
|
children: "Sync not found."
|
|
404
409
|
});
|
|
405
|
-
let
|
|
406
|
-
return /* @__PURE__ */
|
|
410
|
+
let H = o(V.fieldMapping);
|
|
411
|
+
return /* @__PURE__ */ A("div", {
|
|
407
412
|
className: "space-y-6 p-6",
|
|
408
413
|
"data-testid": "sync-detail",
|
|
409
414
|
children: [
|
|
410
|
-
/* @__PURE__ */
|
|
415
|
+
/* @__PURE__ */ A("div", {
|
|
411
416
|
className: "flex flex-wrap items-start justify-between gap-4",
|
|
412
|
-
children: [/* @__PURE__ */
|
|
417
|
+
children: [/* @__PURE__ */ A("div", {
|
|
413
418
|
className: "flex items-start gap-3",
|
|
414
|
-
children: [/* @__PURE__ */
|
|
419
|
+
children: [/* @__PURE__ */ k(w, { className: "h-6 w-6 text-primary mt-0.5" }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("div", {
|
|
415
420
|
className: "flex flex-wrap items-center gap-2",
|
|
416
|
-
children: [/* @__PURE__ */
|
|
421
|
+
children: [/* @__PURE__ */ A("h1", {
|
|
417
422
|
className: "text-2xl font-semibold",
|
|
418
|
-
children: [
|
|
419
|
-
}), /* @__PURE__ */
|
|
420
|
-
}), /* @__PURE__ */
|
|
423
|
+
children: [s(V.provider), " sync"]
|
|
424
|
+
}), /* @__PURE__ */ k(v, { status: V.status })]
|
|
425
|
+
}), /* @__PURE__ */ A("p", {
|
|
421
426
|
className: "text-sm text-muted-foreground",
|
|
422
427
|
children: [
|
|
423
|
-
|
|
428
|
+
V.project ? /* @__PURE__ */ k("button", {
|
|
424
429
|
type: "button",
|
|
425
430
|
className: "text-primary hover:underline",
|
|
426
|
-
onClick: () =>
|
|
427
|
-
children:
|
|
431
|
+
onClick: () => l(n("/projects/project-detail-page", V.project?.id)),
|
|
432
|
+
children: V.project.name
|
|
428
433
|
}) : "Unknown project",
|
|
429
434
|
" · ",
|
|
430
|
-
|
|
435
|
+
a(V.direction)
|
|
431
436
|
]
|
|
432
437
|
})] })]
|
|
433
|
-
}), /* @__PURE__ */
|
|
438
|
+
}), /* @__PURE__ */ A("div", {
|
|
434
439
|
className: "flex flex-wrap items-center gap-2",
|
|
435
440
|
children: [
|
|
436
|
-
/* @__PURE__ */
|
|
437
|
-
syncId:
|
|
441
|
+
/* @__PURE__ */ k(m, {
|
|
442
|
+
syncId: V.id,
|
|
438
443
|
size: "default",
|
|
439
|
-
onResult:
|
|
444
|
+
onResult: _
|
|
440
445
|
}),
|
|
441
|
-
/* @__PURE__ */
|
|
442
|
-
syncId:
|
|
443
|
-
status:
|
|
446
|
+
/* @__PURE__ */ k(p, {
|
|
447
|
+
syncId: V.id,
|
|
448
|
+
status: V.status
|
|
444
449
|
}),
|
|
445
|
-
/* @__PURE__ */
|
|
446
|
-
/* @__PURE__ */
|
|
447
|
-
id:
|
|
448
|
-
provider:
|
|
449
|
-
direction:
|
|
450
|
-
conflictStrategy:
|
|
451
|
-
fieldMapping:
|
|
452
|
-
syncFilters:
|
|
450
|
+
/* @__PURE__ */ k(y, { syncId: V.id }),
|
|
451
|
+
/* @__PURE__ */ k(f, { sync: {
|
|
452
|
+
id: V.id,
|
|
453
|
+
provider: V.provider,
|
|
454
|
+
direction: V.direction,
|
|
455
|
+
conflictStrategy: V.conflictStrategy,
|
|
456
|
+
fieldMapping: V.fieldMapping,
|
|
457
|
+
syncFilters: V.syncFilters
|
|
453
458
|
} }),
|
|
454
|
-
/* @__PURE__ */
|
|
455
|
-
syncId:
|
|
456
|
-
label: `${
|
|
457
|
-
onDeleted: () =>
|
|
459
|
+
/* @__PURE__ */ k(d, {
|
|
460
|
+
syncId: V.id,
|
|
461
|
+
label: `${s(V.provider)} sync`,
|
|
462
|
+
onDeleted: () => l("/integrations/syncs-page")
|
|
458
463
|
})
|
|
459
464
|
]
|
|
460
465
|
})]
|
|
461
466
|
}),
|
|
462
|
-
|
|
463
|
-
/* @__PURE__ */
|
|
467
|
+
u && /* @__PURE__ */ k(g, { result: u }),
|
|
468
|
+
/* @__PURE__ */ A("div", {
|
|
464
469
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
465
|
-
children: [/* @__PURE__ */
|
|
470
|
+
children: [/* @__PURE__ */ A("div", {
|
|
466
471
|
className: "lg:col-span-2 space-y-6",
|
|
467
|
-
children: [/* @__PURE__ */
|
|
472
|
+
children: [/* @__PURE__ */ A(N, { children: [/* @__PURE__ */ k(F, { children: /* @__PURE__ */ k(I, { children: "Health" }) }), /* @__PURE__ */ A(P, {
|
|
468
473
|
className: "space-y-3",
|
|
469
|
-
children: [/* @__PURE__ */
|
|
474
|
+
children: [/* @__PURE__ */ k(h, { health: V.runHealth }), V.lastSyncError && /* @__PURE__ */ k("p", {
|
|
470
475
|
className: "text-sm text-status-error-text",
|
|
471
476
|
"data-testid": "sync-last-error",
|
|
472
|
-
children: /* @__PURE__ */
|
|
473
|
-
text:
|
|
477
|
+
children: /* @__PURE__ */ k(b, {
|
|
478
|
+
text: V.lastSyncError,
|
|
474
479
|
max: 200,
|
|
475
480
|
className: "text-status-error-text"
|
|
476
481
|
})
|
|
477
482
|
})]
|
|
478
|
-
})] }), /* @__PURE__ */
|
|
483
|
+
})] }), /* @__PURE__ */ A(N, { children: [/* @__PURE__ */ k(F, { children: /* @__PURE__ */ A(I, {
|
|
479
484
|
className: "flex items-center gap-2",
|
|
480
|
-
children: [/* @__PURE__ */
|
|
481
|
-
}) }), /* @__PURE__ */
|
|
485
|
+
children: [/* @__PURE__ */ k(C, { className: "h-4 w-4 text-primary" }), "History"]
|
|
486
|
+
}) }), /* @__PURE__ */ k(P, { children: /* @__PURE__ */ A(L, {
|
|
482
487
|
defaultValue: "runs",
|
|
483
488
|
children: [
|
|
484
|
-
/* @__PURE__ */
|
|
489
|
+
/* @__PURE__ */ A(z, { children: [/* @__PURE__ */ k(B, {
|
|
485
490
|
value: "runs",
|
|
486
491
|
"data-testid": "sync-tab-runs",
|
|
487
492
|
children: "Run history"
|
|
488
|
-
}), /* @__PURE__ */
|
|
493
|
+
}), /* @__PURE__ */ A(B, {
|
|
489
494
|
value: "conflicts",
|
|
490
495
|
"data-testid": "sync-tab-conflicts",
|
|
491
|
-
children: [/* @__PURE__ */
|
|
496
|
+
children: [/* @__PURE__ */ k(T, { className: "mr-1 h-3.5 w-3.5" }), "Conflicts"]
|
|
492
497
|
})] }),
|
|
493
|
-
/* @__PURE__ */
|
|
498
|
+
/* @__PURE__ */ k(R, {
|
|
494
499
|
value: "runs",
|
|
495
500
|
className: "mt-4",
|
|
496
|
-
children: /* @__PURE__ */
|
|
501
|
+
children: /* @__PURE__ */ k(q, { syncId: V.id })
|
|
497
502
|
}),
|
|
498
|
-
/* @__PURE__ */
|
|
503
|
+
/* @__PURE__ */ k(R, {
|
|
499
504
|
value: "conflicts",
|
|
500
505
|
className: "mt-4",
|
|
501
|
-
children: /* @__PURE__ */
|
|
506
|
+
children: /* @__PURE__ */ k(Y, { syncId: V.id })
|
|
502
507
|
})
|
|
503
508
|
]
|
|
504
509
|
}) })] })]
|
|
505
|
-
}), /* @__PURE__ */
|
|
510
|
+
}), /* @__PURE__ */ A(N, { children: [/* @__PURE__ */ k(F, { children: /* @__PURE__ */ k(I, { children: "Details" }) }), /* @__PURE__ */ A(P, {
|
|
506
511
|
className: "space-y-3 text-sm",
|
|
507
512
|
children: [
|
|
508
|
-
/* @__PURE__ */
|
|
513
|
+
/* @__PURE__ */ A("div", {
|
|
509
514
|
className: "flex justify-between gap-2",
|
|
510
|
-
children: [/* @__PURE__ */
|
|
515
|
+
children: [/* @__PURE__ */ k("span", {
|
|
511
516
|
className: "text-muted-foreground",
|
|
512
517
|
children: "External project"
|
|
513
|
-
}),
|
|
514
|
-
href:
|
|
518
|
+
}), V.externalProjectUrl ? /* @__PURE__ */ A("a", {
|
|
519
|
+
href: V.externalProjectUrl,
|
|
515
520
|
target: "_blank",
|
|
516
521
|
rel: "noreferrer noopener",
|
|
517
522
|
className: "inline-flex items-center gap-1 font-medium text-primary hover:underline",
|
|
518
|
-
children: [
|
|
519
|
-
}) : /* @__PURE__ */
|
|
523
|
+
children: [V.externalProjectId, /* @__PURE__ */ k(S, { className: "h-3 w-3" })]
|
|
524
|
+
}) : /* @__PURE__ */ k("span", {
|
|
520
525
|
className: "font-medium",
|
|
521
|
-
children:
|
|
526
|
+
children: V.externalProjectId
|
|
522
527
|
})]
|
|
523
528
|
}),
|
|
524
|
-
/* @__PURE__ */
|
|
529
|
+
/* @__PURE__ */ A("div", {
|
|
525
530
|
className: "flex justify-between gap-2",
|
|
526
|
-
children: [/* @__PURE__ */
|
|
531
|
+
children: [/* @__PURE__ */ k("span", {
|
|
527
532
|
className: "text-muted-foreground",
|
|
528
533
|
children: "Conflict strategy"
|
|
529
|
-
}), /* @__PURE__ */
|
|
534
|
+
}), /* @__PURE__ */ k(j, {
|
|
530
535
|
variant: "outline",
|
|
531
536
|
className: "text-xs",
|
|
532
|
-
children:
|
|
537
|
+
children: i(V.conflictStrategy)
|
|
533
538
|
})]
|
|
534
539
|
}),
|
|
535
|
-
/* @__PURE__ */
|
|
540
|
+
/* @__PURE__ */ k("p", {
|
|
536
541
|
className: "text-xs text-muted-foreground",
|
|
537
|
-
children:
|
|
542
|
+
children: c[V.conflictStrategy]
|
|
538
543
|
}),
|
|
539
|
-
|
|
540
|
-
/* @__PURE__ */
|
|
544
|
+
V.provider === "GITHUB" && /* @__PURE__ */ A("div", { children: [
|
|
545
|
+
/* @__PURE__ */ k("p", {
|
|
541
546
|
className: "text-muted-foreground",
|
|
542
547
|
children: "Field mapping"
|
|
543
548
|
}),
|
|
544
|
-
/* @__PURE__ */
|
|
549
|
+
/* @__PURE__ */ A("p", {
|
|
545
550
|
className: "font-medium",
|
|
546
|
-
children: ["Priority label: ", /* @__PURE__ */
|
|
551
|
+
children: ["Priority label: ", /* @__PURE__ */ k("code", { children: H.priority || "priority:" })]
|
|
547
552
|
}),
|
|
548
|
-
/* @__PURE__ */
|
|
553
|
+
/* @__PURE__ */ A("p", {
|
|
549
554
|
className: "font-medium",
|
|
550
|
-
children: ["Due-date label: ", /* @__PURE__ */
|
|
555
|
+
children: ["Due-date label: ", /* @__PURE__ */ k("code", { children: H.dueDate || "due:" })]
|
|
551
556
|
})
|
|
552
557
|
] }),
|
|
553
|
-
/* @__PURE__ */
|
|
558
|
+
/* @__PURE__ */ A("div", {
|
|
554
559
|
className: "flex justify-between",
|
|
555
|
-
children: [/* @__PURE__ */
|
|
560
|
+
children: [/* @__PURE__ */ k("span", {
|
|
556
561
|
className: "text-muted-foreground",
|
|
557
562
|
children: "Items synced"
|
|
558
|
-
}), /* @__PURE__ */
|
|
563
|
+
}), /* @__PURE__ */ k("span", {
|
|
559
564
|
className: "font-medium",
|
|
560
|
-
children:
|
|
565
|
+
children: V.totalItemsSynced
|
|
561
566
|
})]
|
|
562
567
|
}),
|
|
563
|
-
/* @__PURE__ */
|
|
568
|
+
/* @__PURE__ */ A("div", {
|
|
564
569
|
className: "flex justify-between",
|
|
565
|
-
children: [/* @__PURE__ */
|
|
570
|
+
children: [/* @__PURE__ */ k("span", {
|
|
566
571
|
className: "text-muted-foreground",
|
|
567
572
|
children: "Last synced"
|
|
568
|
-
}), /* @__PURE__ */
|
|
573
|
+
}), /* @__PURE__ */ k("span", { children: V.lastSyncedAt ? new Date(V.lastSyncedAt).toLocaleString() : "Never" })]
|
|
569
574
|
}),
|
|
570
|
-
/* @__PURE__ */
|
|
575
|
+
/* @__PURE__ */ A("div", {
|
|
571
576
|
className: "flex justify-between",
|
|
572
|
-
children: [/* @__PURE__ */
|
|
577
|
+
children: [/* @__PURE__ */ k("span", {
|
|
573
578
|
className: "text-muted-foreground",
|
|
574
579
|
children: "Created"
|
|
575
|
-
}), /* @__PURE__ */
|
|
580
|
+
}), /* @__PURE__ */ k("span", { children: new Date(V.createdAt).toLocaleDateString() })]
|
|
576
581
|
}),
|
|
577
|
-
/* @__PURE__ */
|
|
582
|
+
/* @__PURE__ */ A("div", {
|
|
578
583
|
className: "flex justify-between",
|
|
579
|
-
children: [/* @__PURE__ */
|
|
584
|
+
children: [/* @__PURE__ */ k("span", {
|
|
580
585
|
className: "text-muted-foreground",
|
|
581
586
|
children: "Updated"
|
|
582
|
-
}), /* @__PURE__ */
|
|
587
|
+
}), /* @__PURE__ */ k("span", { children: new Date(V.updatedAt).toLocaleDateString() })]
|
|
583
588
|
})
|
|
584
589
|
]
|
|
585
590
|
})] })]
|
|
@@ -588,6 +593,6 @@ function J() {
|
|
|
588
593
|
});
|
|
589
594
|
}
|
|
590
595
|
//#endregion
|
|
591
|
-
export {
|
|
596
|
+
export { X as IntegrationsSyncDetailPagePage };
|
|
592
597
|
|
|
593
598
|
//# sourceMappingURL=IntegrationsSyncDetailPagePage.js.map
|