@burdenoff/fluidgrids-fe-sdk 2026.1021.9 → 2026.1021.10
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/{ExecutionDetailPage-CEXLJ6GN.js → ExecutionDetailPage-6UKPMPL2.js} +2 -2
- package/dist/{ExecutionsListPage-KBDJJNV6.js → ExecutionsListPage-3IFRZU6A.js} +2 -2
- package/dist/{chunk-3SCUZ75C.js → chunk-GU233T6U.js} +11 -3
- package/dist/{chunk-XOUL22OI.js → chunk-QL7CDZ7B.js} +81 -42
- package/dist/{chunk-OM24EQUG.js → chunk-YB6WGQTY.js} +1 -1
- package/dist/executions.js +3 -3
- package/dist/index.js +6 -6
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { ExecutionDetailPage } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { ExecutionDetailPage } from './chunk-QL7CDZ7B.js';
|
|
2
|
+
import './chunk-GU233T6U.js';
|
|
3
3
|
import './chunk-QBFAJNUC.js';
|
|
4
4
|
import './chunk-ONVGFVNH.js';
|
|
5
5
|
import './chunk-JL7CASN5.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { ExecutionsListPage } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { ExecutionsListPage } from './chunk-YB6WGQTY.js';
|
|
2
|
+
import './chunk-GU233T6U.js';
|
|
3
3
|
import './chunk-QBFAJNUC.js';
|
|
4
4
|
import './chunk-O6E247J6.js';
|
|
5
5
|
import './chunk-D3UWK7GY.js';
|
|
@@ -122,6 +122,14 @@ var NODE_STATUS_CONFIG = {
|
|
|
122
122
|
borderColor: "border-red-200 dark:border-red-800",
|
|
123
123
|
icon: "mdi:timer-off-outline"
|
|
124
124
|
},
|
|
125
|
+
// A node parked by a Wait node, an external webhook/form resume, or a person (BOFF-7651).
|
|
126
|
+
WAITING: {
|
|
127
|
+
label: "Waiting",
|
|
128
|
+
color: "text-purple-600 dark:text-purple-400",
|
|
129
|
+
bgColor: "bg-purple-50 dark:bg-purple-900/20",
|
|
130
|
+
borderColor: "border-purple-200 dark:border-purple-800",
|
|
131
|
+
icon: "mdi:timer-sand"
|
|
132
|
+
},
|
|
125
133
|
WAITING_SUBWORKFLOW: {
|
|
126
134
|
label: "Waiting",
|
|
127
135
|
color: "text-purple-600 dark:text-purple-400",
|
|
@@ -138,7 +146,7 @@ function ExecutionStatusBadge({
|
|
|
138
146
|
animated = true
|
|
139
147
|
}) {
|
|
140
148
|
const tr = useTr();
|
|
141
|
-
const config = RUN_STATUS_CONFIG[status];
|
|
149
|
+
const config = RUN_STATUS_CONFIG[status] ?? RUN_STATUS_CONFIG.PENDING;
|
|
142
150
|
const labels = {
|
|
143
151
|
PENDING: tr(
|
|
144
152
|
"fluidgrids.executions.executionFilters.statusPending",
|
|
@@ -196,7 +204,7 @@ function ExecutionStatusBadge({
|
|
|
196
204
|
className: animated && isRunning ? "animate-spin" : ""
|
|
197
205
|
}
|
|
198
206
|
),
|
|
199
|
-
showLabel && /* @__PURE__ */ jsx("span", { children: labels[status] })
|
|
207
|
+
showLabel && /* @__PURE__ */ jsx("span", { children: labels[status] ?? config.label })
|
|
200
208
|
]
|
|
201
209
|
}
|
|
202
210
|
);
|
|
@@ -208,7 +216,7 @@ function NodeStatusBadge({
|
|
|
208
216
|
showLabel = true,
|
|
209
217
|
animated = true
|
|
210
218
|
}) {
|
|
211
|
-
const config = NODE_STATUS_CONFIG[status];
|
|
219
|
+
const config = NODE_STATUS_CONFIG[status] ?? NODE_STATUS_CONFIG.PENDING;
|
|
212
220
|
const sizeClasses = {
|
|
213
221
|
sm: "px-1.5 py-0.5 text-xs gap-1",
|
|
214
222
|
md: "px-2 py-1 text-sm gap-1.5",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useExecution, buildNodeDisplayMap, useExecutionActions, useAutoRefresh, ExecutionStatusBadge, formatRunVersion, NodeTimeline, RunLogViewer } from './chunk-
|
|
1
|
+
import { useExecution, buildNodeDisplayMap, useExecutionActions, useAutoRefresh, ExecutionStatusBadge, formatRunVersion, NodeTimeline, RunLogViewer } from './chunk-GU233T6U.js';
|
|
2
2
|
import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-ONVGFVNH.js';
|
|
3
3
|
import { getFluidGridsConfig } from './chunk-UZG3ZIQM.js';
|
|
4
4
|
import { RunLogsDocument, RunLogAppendedDocument } from './chunk-L2UWPFJM.js';
|
|
@@ -165,6 +165,38 @@ function useRunLogs(runId, options = {}) {
|
|
|
165
165
|
refetch
|
|
166
166
|
};
|
|
167
167
|
}
|
|
168
|
+
|
|
169
|
+
// src/modules/human-response/utils/recipient.ts
|
|
170
|
+
var USER_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
171
|
+
function recipientParts(recipient) {
|
|
172
|
+
return (recipient ?? "").split(",").map((part) => part.trim()).filter(Boolean);
|
|
173
|
+
}
|
|
174
|
+
function inAppResponderIds(recipient) {
|
|
175
|
+
return [
|
|
176
|
+
...new Set(recipientParts(recipient).filter((part) => USER_ID.test(part)))
|
|
177
|
+
];
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// src/modules/human-response/hooks/useRecipientLabel.ts
|
|
181
|
+
function useRecipientLabel(request, fallback) {
|
|
182
|
+
const idsKey = request.channel === "IN_APP" ? inAppResponderIds(request.recipient).join(",") : "";
|
|
183
|
+
const inputs = useMemo(
|
|
184
|
+
() => idsKey ? idsKey.split(",").map((actorId) => ({ actorId, actorType: "user" })) : [],
|
|
185
|
+
[idsKey]
|
|
186
|
+
);
|
|
187
|
+
const config = getFluidGridsConfig();
|
|
188
|
+
const profiles = useActorProfiles(inputs, {
|
|
189
|
+
workspaceId: config.workspaceId || void 0,
|
|
190
|
+
orgId: config.organizationId,
|
|
191
|
+
authToken: config.authToken
|
|
192
|
+
});
|
|
193
|
+
if (!request.recipient) return fallback;
|
|
194
|
+
if (!idsKey) return request.recipient;
|
|
195
|
+
const ids = new Set(idsKey.split(","));
|
|
196
|
+
return recipientParts(request.recipient).map(
|
|
197
|
+
(part) => ids.has(part) ? profiles[part]?.displayName ?? buildActorFallback({ actorId: part, actorType: "user" }).displayName : part
|
|
198
|
+
).join(", ");
|
|
199
|
+
}
|
|
168
200
|
var HUMAN_REQUEST_FIELDS = gql`
|
|
169
201
|
fragment WorkflowHumanRequestFields on WorkflowHumanRequest {
|
|
170
202
|
id
|
|
@@ -446,7 +478,10 @@ function HumanRequestCard({
|
|
|
446
478
|
(field) => field.required && !(values[field.name] ?? "").trim()
|
|
447
479
|
);
|
|
448
480
|
const emptyText = request.responseType === "FREE_TEXT" && !text.trim();
|
|
449
|
-
const recipient =
|
|
481
|
+
const recipient = useRecipientLabel(
|
|
482
|
+
request,
|
|
483
|
+
request.channel === "IN_APP" ? tr("fluidgrids.humanResponse.anyMember", "any workspace member") : ""
|
|
484
|
+
);
|
|
450
485
|
return /* @__PURE__ */ jsxs(
|
|
451
486
|
Card,
|
|
452
487
|
{
|
|
@@ -474,7 +509,7 @@ function HumanRequestCard({
|
|
|
474
509
|
"fluidgrids.humanResponse.askedVia",
|
|
475
510
|
"Asked {{recipient}} via {{channel}}",
|
|
476
511
|
{
|
|
477
|
-
recipient
|
|
512
|
+
recipient,
|
|
478
513
|
channel: channelLabel(request.channel, tr)
|
|
479
514
|
}
|
|
480
515
|
),
|
|
@@ -640,45 +675,49 @@ function RunHumanRequests({ requests }) {
|
|
|
640
675
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:account-clock-outline", width: 18 }),
|
|
641
676
|
tr("fluidgrids.humanResponse.runHeading", "Waiting on people")
|
|
642
677
|
] }),
|
|
643
|
-
requests.map((request) => {
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
678
|
+
requests.map((request) => /* @__PURE__ */ jsx(RunHumanRequestRow, { request }, request.id))
|
|
679
|
+
]
|
|
680
|
+
}
|
|
681
|
+
);
|
|
682
|
+
}
|
|
683
|
+
function RunHumanRequestRow({ request }) {
|
|
684
|
+
const tr = useTr();
|
|
685
|
+
const answer = answerRows(request, tr);
|
|
686
|
+
const recipient = useRecipientLabel(
|
|
687
|
+
request,
|
|
688
|
+
tr("fluidgrids.humanResponse.anyMember", "any workspace member")
|
|
689
|
+
);
|
|
690
|
+
return /* @__PURE__ */ jsxs(
|
|
691
|
+
"div",
|
|
692
|
+
{
|
|
693
|
+
className: "flex flex-col gap-0.5 text-sm sm:flex-row sm:flex-wrap sm:items-baseline sm:gap-x-2",
|
|
694
|
+
"data-testid": "run-human-request",
|
|
695
|
+
"data-status": request.status,
|
|
696
|
+
children: [
|
|
697
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-text-primary", children: request.title }),
|
|
698
|
+
/* @__PURE__ */ jsxs("span", { className: "text-text-secondary", children: [
|
|
699
|
+
tr(
|
|
700
|
+
"fluidgrids.humanResponse.askedVia",
|
|
701
|
+
"Asked {{recipient}} via {{channel}}",
|
|
702
|
+
{ recipient, channel: channelLabel(request.channel, tr) }
|
|
703
|
+
),
|
|
704
|
+
" \xB7 ",
|
|
705
|
+
outcome(request, tr)
|
|
706
|
+
] }),
|
|
707
|
+
answer.length > 0 && /* @__PURE__ */ jsx(
|
|
708
|
+
"dl",
|
|
709
|
+
{
|
|
710
|
+
className: "mt-1 w-full space-y-0.5 text-xs sm:mt-0",
|
|
711
|
+
"data-testid": "run-human-answer",
|
|
712
|
+
children: answer.map((row) => /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
713
|
+
/* @__PURE__ */ jsxs("dt", { className: "shrink-0 font-medium text-text-secondary", children: [
|
|
714
|
+
row.label,
|
|
715
|
+
":"
|
|
716
|
+
] }),
|
|
717
|
+
/* @__PURE__ */ jsx("dd", { className: "whitespace-pre-wrap break-words text-text-primary", children: row.value })
|
|
718
|
+
] }, row.key))
|
|
719
|
+
}
|
|
720
|
+
)
|
|
682
721
|
]
|
|
683
722
|
}
|
|
684
723
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh, ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination } from './chunk-
|
|
1
|
+
import { useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh, ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination } from './chunk-GU233T6U.js';
|
|
2
2
|
import { useWorkflowDefinitions } from './chunk-O6E247J6.js';
|
|
3
3
|
import { useExecutionsStore } from './chunk-UZG3ZIQM.js';
|
|
4
4
|
import { useTr } from './chunk-UULVIT25.js';
|
package/dist/executions.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './chunk-AD3BXTJS.js';
|
|
2
|
-
export { ExecutionsListPage } from './chunk-
|
|
3
|
-
export { ExecutionDetailPage } from './chunk-
|
|
4
|
-
import './chunk-
|
|
2
|
+
export { ExecutionsListPage } from './chunk-YB6WGQTY.js';
|
|
3
|
+
export { ExecutionDetailPage } from './chunk-QL7CDZ7B.js';
|
|
4
|
+
import './chunk-GU233T6U.js';
|
|
5
5
|
import './chunk-QBFAJNUC.js';
|
|
6
6
|
import './chunk-ONVGFVNH.js';
|
|
7
7
|
import './chunk-JL7CASN5.js';
|
package/dist/index.js
CHANGED
|
@@ -4,10 +4,10 @@ export { WorkflowBuilder as WorkflowBuilderPage } from './chunk-RFG3PJX3.js';
|
|
|
4
4
|
export { WorkflowsList } from './chunk-3RIZZY32.js';
|
|
5
5
|
import './chunk-6N27YGMB.js';
|
|
6
6
|
import './chunk-AD3BXTJS.js';
|
|
7
|
-
export { ExecutionsListPage } from './chunk-
|
|
8
|
-
import { usePendingHumanRequests, HumanRequestCard } from './chunk-
|
|
9
|
-
export { ExecutionDetailPage, HumanRequestCard, RunHumanRequests, usePendingHumanRequests, useRespondToHumanRequest, useRunHumanRequests } from './chunk-
|
|
10
|
-
import './chunk-
|
|
7
|
+
export { ExecutionsListPage } from './chunk-YB6WGQTY.js';
|
|
8
|
+
import { usePendingHumanRequests, HumanRequestCard } from './chunk-QL7CDZ7B.js';
|
|
9
|
+
export { ExecutionDetailPage, HumanRequestCard, RunHumanRequests, usePendingHumanRequests, useRespondToHumanRequest, useRunHumanRequests } from './chunk-QL7CDZ7B.js';
|
|
10
|
+
import './chunk-GU233T6U.js';
|
|
11
11
|
export { HistoryPage } from './chunk-EPYVZPGU.js';
|
|
12
12
|
export { NodesPage, fetchAllNodesWithManifests, useLazyNodeManifest, useNodeEndpoint, useNodeEndpoints, useNodeManifest } from './chunk-6B6XOZ4V.js';
|
|
13
13
|
export { DataSinkDashboardPage, ErrorAnalyticsPage, InsightsPage } from './chunk-KZYQPCMK.js';
|
|
@@ -72,12 +72,12 @@ var WorkflowBuilder3 = lazy(
|
|
|
72
72
|
}))
|
|
73
73
|
);
|
|
74
74
|
var ExecutionsListPage2 = lazy(
|
|
75
|
-
() => import('./ExecutionsListPage-
|
|
75
|
+
() => import('./ExecutionsListPage-3IFRZU6A.js').then((m) => ({
|
|
76
76
|
default: m.ExecutionsListPage
|
|
77
77
|
}))
|
|
78
78
|
);
|
|
79
79
|
var ExecutionDetailPage2 = lazy(
|
|
80
|
-
() => import('./ExecutionDetailPage-
|
|
80
|
+
() => import('./ExecutionDetailPage-6UKPMPL2.js').then((m) => ({
|
|
81
81
|
default: m.ExecutionDetailPage
|
|
82
82
|
}))
|
|
83
83
|
);
|