@burdenoff/fluidgrids-fe-sdk 2026.803.4 → 2026.804.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ExecutionDetailPage-FF2DYKAZ.js +10 -0
- package/dist/{ExecutionDetailPage-FCY3S336.js.map → ExecutionDetailPage-FF2DYKAZ.js.map} +1 -1
- package/dist/ExecutionsListPage-NKISRFMA.js +9 -0
- package/dist/{ExecutionsListPage-IZJPACQV.js.map → ExecutionsListPage-NKISRFMA.js.map} +1 -1
- package/dist/MissingNodesInstallModal-HA5L3FK2.js +185 -0
- package/dist/MissingNodesInstallModal-HA5L3FK2.js.map +1 -0
- package/dist/{TemplateConfigurationModal-MTR7VP6G.js → TemplateConfigurationModal-MXNGZQIC.js} +91 -21
- package/dist/TemplateConfigurationModal-MXNGZQIC.js.map +1 -0
- package/dist/{TemplateDetailPanel-T3ZHXOHX.js → TemplateDetailPanel-CJ3NPVTP.js} +50 -14
- package/dist/TemplateDetailPanel-CJ3NPVTP.js.map +1 -0
- package/dist/{WorkflowBuilder-WMAHTZEI.js → WorkflowBuilder-ETVB66U6.js} +9 -9
- package/dist/{WorkflowBuilder-WMAHTZEI.js.map → WorkflowBuilder-ETVB66U6.js.map} +1 -1
- package/dist/WorkflowsList-TZAN3YBA.js +11 -0
- package/dist/{WorkflowsList-BXESQVAH.js.map → WorkflowsList-TZAN3YBA.js.map} +1 -1
- package/dist/{chunk-WAVGHDYH.js → chunk-6PNRM3KQ.js} +469 -114
- package/dist/chunk-6PNRM3KQ.js.map +1 -0
- package/dist/chunk-7VNIEIR6.js +21 -0
- package/dist/chunk-7VNIEIR6.js.map +1 -0
- package/dist/{chunk-F5ACDIYR.js → chunk-IWKLEFC7.js} +205 -51
- package/dist/chunk-IWKLEFC7.js.map +1 -0
- package/dist/{chunk-MRVS73S2.js → chunk-OHGXRM6Z.js} +7 -23
- package/dist/chunk-OHGXRM6Z.js.map +1 -0
- package/dist/chunk-P5PKRQAO.js +25 -0
- package/dist/chunk-P5PKRQAO.js.map +1 -0
- package/dist/{chunk-CQAHXNT2.js → chunk-SG7Z2IRQ.js} +55 -18
- package/dist/chunk-SG7Z2IRQ.js.map +1 -0
- package/dist/chunk-WQ4QNHDN.js +29639 -0
- package/dist/chunk-WQ4QNHDN.js.map +1 -0
- package/dist/{chunk-ZM4SSEVI.js → chunk-Y36DJHU3.js} +211 -3
- package/dist/chunk-Y36DJHU3.js.map +1 -0
- package/dist/{chunk-CBUOMHGH.js → chunk-YJKZSUNC.js} +140 -47
- package/dist/chunk-YJKZSUNC.js.map +1 -0
- package/dist/index.d.ts +33 -2
- package/dist/index.js +643 -182
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/ExecutionDetailPage-FCY3S336.js +0 -9
- package/dist/ExecutionsListPage-IZJPACQV.js +0 -8
- package/dist/TemplateConfigurationModal-MTR7VP6G.js.map +0 -1
- package/dist/TemplateDetailPanel-T3ZHXOHX.js.map +0 -1
- package/dist/WorkflowsList-BXESQVAH.js +0 -11
- package/dist/blocks-7KN7ZRE6.js +0 -11
- package/dist/blocks-7KN7ZRE6.js.map +0 -1
- package/dist/chunk-7LLCYNKY.js +0 -10910
- package/dist/chunk-7LLCYNKY.js.map +0 -1
- package/dist/chunk-CBUOMHGH.js.map +0 -1
- package/dist/chunk-CQAHXNT2.js.map +0 -1
- package/dist/chunk-F5ACDIYR.js.map +0 -1
- package/dist/chunk-MRVS73S2.js.map +0 -1
- package/dist/chunk-OAPYQFQU.js +0 -197
- package/dist/chunk-OAPYQFQU.js.map +0 -1
- package/dist/chunk-WAVGHDYH.js.map +0 -1
- package/dist/chunk-Z3NRSPTV.js +0 -15355
- package/dist/chunk-Z3NRSPTV.js.map +0 -1
- package/dist/chunk-ZM4SSEVI.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ExecutionDetailDocument, ExecutionStatsDocument, throwIfResultError, PauseExecutionDocument, ResumeExecutionDocument, CancelExecutionDocument, RetryNodeDocument, TerminateExecutionDocument, ExecutionsListDocument } from './chunk-V5UEEB74.js';
|
|
2
2
|
import { getFluidGridsClient } from './chunk-5BDQNSP3.js';
|
|
3
|
+
import { useTr } from './chunk-7VNIEIR6.js';
|
|
3
4
|
import { Icon } from '@iconify/react';
|
|
4
5
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
5
6
|
import { create } from 'zustand';
|
|
@@ -338,29 +339,117 @@ var useExecutionsStore = create((set) => ({
|
|
|
338
339
|
}),
|
|
339
340
|
clearLiveRuns: () => set({ liveRunIds: /* @__PURE__ */ new Set() })
|
|
340
341
|
}));
|
|
341
|
-
var STATUS_OPTIONS = [
|
|
342
|
-
{ value: "all", label: "All Statuses" },
|
|
343
|
-
{ value: "RUNNING", label: "Running" },
|
|
344
|
-
{ value: "COMPLETED", label: "Completed" },
|
|
345
|
-
{ value: "FAILED", label: "Failed" },
|
|
346
|
-
{ value: "PENDING", label: "Pending" },
|
|
347
|
-
{ value: "CANCELLED", label: "Cancelled" },
|
|
348
|
-
{ value: "WAITING", label: "Waiting" },
|
|
349
|
-
{ value: "TERMINATED", label: "Terminated" }
|
|
350
|
-
];
|
|
351
|
-
var DATE_PRESETS = [
|
|
352
|
-
{ value: "all", label: "All Time" },
|
|
353
|
-
{ value: "today", label: "Today" },
|
|
354
|
-
{ value: "yesterday", label: "Yesterday" },
|
|
355
|
-
{ value: "7days", label: "Last 7 Days" },
|
|
356
|
-
{ value: "30days", label: "Last 30 Days" },
|
|
357
|
-
{ value: "90days", label: "Last 90 Days" },
|
|
358
|
-
{ value: "custom", label: "Custom Range" }
|
|
359
|
-
];
|
|
360
342
|
function ExecutionFilters({
|
|
361
343
|
workflows = [],
|
|
362
344
|
onRefresh
|
|
363
345
|
}) {
|
|
346
|
+
const tr = useTr();
|
|
347
|
+
const statusOptions = [
|
|
348
|
+
{
|
|
349
|
+
value: "all",
|
|
350
|
+
label: tr(
|
|
351
|
+
"fluidgrids.executions.executionFilters.statusAll",
|
|
352
|
+
"All Statuses"
|
|
353
|
+
)
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
value: "RUNNING",
|
|
357
|
+
label: tr(
|
|
358
|
+
"fluidgrids.executions.executionFilters.statusRunning",
|
|
359
|
+
"Running"
|
|
360
|
+
)
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
value: "COMPLETED",
|
|
364
|
+
label: tr(
|
|
365
|
+
"fluidgrids.executions.executionFilters.statusCompleted",
|
|
366
|
+
"Completed"
|
|
367
|
+
)
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
value: "FAILED",
|
|
371
|
+
label: tr(
|
|
372
|
+
"fluidgrids.executions.executionFilters.statusFailed",
|
|
373
|
+
"Failed"
|
|
374
|
+
)
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
value: "PENDING",
|
|
378
|
+
label: tr(
|
|
379
|
+
"fluidgrids.executions.executionFilters.statusPending",
|
|
380
|
+
"Pending"
|
|
381
|
+
)
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
value: "CANCELLED",
|
|
385
|
+
label: tr(
|
|
386
|
+
"fluidgrids.executions.executionFilters.statusCancelled",
|
|
387
|
+
"Cancelled"
|
|
388
|
+
)
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
value: "WAITING",
|
|
392
|
+
label: tr(
|
|
393
|
+
"fluidgrids.executions.executionFilters.statusWaiting",
|
|
394
|
+
"Waiting"
|
|
395
|
+
)
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
value: "TERMINATED",
|
|
399
|
+
label: tr(
|
|
400
|
+
"fluidgrids.executions.executionFilters.statusTerminated",
|
|
401
|
+
"Terminated"
|
|
402
|
+
)
|
|
403
|
+
}
|
|
404
|
+
];
|
|
405
|
+
const datePresets = [
|
|
406
|
+
{
|
|
407
|
+
value: "all",
|
|
408
|
+
label: tr(
|
|
409
|
+
"fluidgrids.executions.executionFilters.dateAllTime",
|
|
410
|
+
"All Time"
|
|
411
|
+
)
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
value: "today",
|
|
415
|
+
label: tr("fluidgrids.executions.executionFilters.dateToday", "Today")
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
value: "yesterday",
|
|
419
|
+
label: tr(
|
|
420
|
+
"fluidgrids.executions.executionFilters.dateYesterday",
|
|
421
|
+
"Yesterday"
|
|
422
|
+
)
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
value: "7days",
|
|
426
|
+
label: tr(
|
|
427
|
+
"fluidgrids.executions.executionFilters.dateLast7Days",
|
|
428
|
+
"Last 7 Days"
|
|
429
|
+
)
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
value: "30days",
|
|
433
|
+
label: tr(
|
|
434
|
+
"fluidgrids.executions.executionFilters.dateLast30Days",
|
|
435
|
+
"Last 30 Days"
|
|
436
|
+
)
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
value: "90days",
|
|
440
|
+
label: tr(
|
|
441
|
+
"fluidgrids.executions.executionFilters.dateLast90Days",
|
|
442
|
+
"Last 90 Days"
|
|
443
|
+
)
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
value: "custom",
|
|
447
|
+
label: tr(
|
|
448
|
+
"fluidgrids.executions.executionFilters.dateCustomRange",
|
|
449
|
+
"Custom Range"
|
|
450
|
+
)
|
|
451
|
+
}
|
|
452
|
+
];
|
|
364
453
|
const {
|
|
365
454
|
filter,
|
|
366
455
|
setStatusFilter,
|
|
@@ -435,7 +524,10 @@ function ExecutionFilters({
|
|
|
435
524
|
"input",
|
|
436
525
|
{
|
|
437
526
|
type: "text",
|
|
438
|
-
placeholder:
|
|
527
|
+
placeholder: tr(
|
|
528
|
+
"fluidgrids.executions.executionFilters.searchPlaceholder",
|
|
529
|
+
"Search by workflow name or run ID..."
|
|
530
|
+
),
|
|
439
531
|
value: filter.search,
|
|
440
532
|
onChange: (e) => setSearchQuery(e.target.value),
|
|
441
533
|
className: "w-full pl-[3.25rem] pr-4 py-2 bg-background-secondary border border-border-secondary rounded-lg text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-action-primary-bg focus:border-transparent"
|
|
@@ -456,7 +548,7 @@ function ExecutionFilters({
|
|
|
456
548
|
value: filter.status,
|
|
457
549
|
onChange: (e) => setStatusFilter(e.target.value),
|
|
458
550
|
className: "px-3 py-2 bg-background-secondary border border-border-secondary rounded-lg text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg",
|
|
459
|
-
children:
|
|
551
|
+
children: statusOptions.map((option) => /* @__PURE__ */ jsx("option", { value: option.value, children: option.label }, option.value))
|
|
460
552
|
}
|
|
461
553
|
),
|
|
462
554
|
workflows.length > 0 && /* @__PURE__ */ jsxs(
|
|
@@ -466,7 +558,10 @@ function ExecutionFilters({
|
|
|
466
558
|
onChange: (e) => setWorkflowFilter(e.target.value),
|
|
467
559
|
className: "px-3 py-2 bg-background-secondary border border-border-secondary rounded-lg text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg max-w-[200px]",
|
|
468
560
|
children: [
|
|
469
|
-
/* @__PURE__ */ jsx("option", { value: "", children:
|
|
561
|
+
/* @__PURE__ */ jsx("option", { value: "", children: tr(
|
|
562
|
+
"fluidgrids.executions.executionFilters.allWorkflows",
|
|
563
|
+
"All Workflows"
|
|
564
|
+
) }),
|
|
470
565
|
workflows.map((wf) => /* @__PURE__ */ jsx("option", { value: wf.workflowKey, children: wf.name }, wf.workflowKey))
|
|
471
566
|
]
|
|
472
567
|
}
|
|
@@ -477,12 +572,12 @@ function ExecutionFilters({
|
|
|
477
572
|
value: filter.dateRange.preset,
|
|
478
573
|
onChange: (e) => handleDatePresetChange(e.target.value),
|
|
479
574
|
className: "px-3 py-2 bg-background-secondary border border-border-secondary rounded-lg text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg",
|
|
480
|
-
children:
|
|
575
|
+
children: datePresets.map((option) => /* @__PURE__ */ jsx("option", { value: option.value, children: option.label }, option.value))
|
|
481
576
|
}
|
|
482
577
|
)
|
|
483
578
|
] }),
|
|
484
579
|
showCustomDate && /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-3 items-center p-3 bg-background-secondary rounded-lg border border-border-secondary", children: [
|
|
485
|
-
/* @__PURE__ */ jsx("label", { className: "text-sm text-text-secondary", children: "From:" }),
|
|
580
|
+
/* @__PURE__ */ jsx("label", { className: "text-sm text-text-secondary", children: tr("fluidgrids.executions.executionFilters.fromLabel", "From:") }),
|
|
486
581
|
/* @__PURE__ */ jsx(
|
|
487
582
|
"input",
|
|
488
583
|
{
|
|
@@ -496,7 +591,7 @@ function ExecutionFilters({
|
|
|
496
591
|
className: "px-3 py-1.5 bg-background-primary border border-border-secondary rounded text-text-primary text-sm"
|
|
497
592
|
}
|
|
498
593
|
),
|
|
499
|
-
/* @__PURE__ */ jsx("label", { className: "text-sm text-text-secondary", children: "To:" }),
|
|
594
|
+
/* @__PURE__ */ jsx("label", { className: "text-sm text-text-secondary", children: tr("fluidgrids.executions.executionFilters.toLabel", "To:") }),
|
|
500
595
|
/* @__PURE__ */ jsx(
|
|
501
596
|
"input",
|
|
502
597
|
{
|
|
@@ -531,7 +626,10 @@ function ExecutionFilters({
|
|
|
531
626
|
className: "w-4 h-4 rounded border-border-secondary text-action-primary-bg focus:ring-action-primary-bg"
|
|
532
627
|
}
|
|
533
628
|
),
|
|
534
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm text-text-secondary", children:
|
|
629
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-text-secondary", children: tr(
|
|
630
|
+
"fluidgrids.executions.executionFilters.autoRefresh",
|
|
631
|
+
"Auto-refresh"
|
|
632
|
+
) })
|
|
535
633
|
] }),
|
|
536
634
|
onRefresh && /* @__PURE__ */ jsxs(
|
|
537
635
|
Button,
|
|
@@ -542,7 +640,7 @@ function ExecutionFilters({
|
|
|
542
640
|
className: "gap-1.5",
|
|
543
641
|
children: [
|
|
544
642
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:refresh", width: 16 }),
|
|
545
|
-
"Refresh"
|
|
643
|
+
tr("fluidgrids.executions.executionFilters.refresh", "Refresh")
|
|
546
644
|
]
|
|
547
645
|
}
|
|
548
646
|
)
|
|
@@ -564,7 +662,10 @@ function ExecutionFilters({
|
|
|
564
662
|
className: "gap-1.5",
|
|
565
663
|
children: [
|
|
566
664
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:filter-remove", width: 16 }),
|
|
567
|
-
|
|
665
|
+
tr(
|
|
666
|
+
"fluidgrids.executions.executionFilters.clearFilters",
|
|
667
|
+
"Clear Filters"
|
|
668
|
+
)
|
|
568
669
|
]
|
|
569
670
|
}
|
|
570
671
|
)
|
|
@@ -617,6 +718,7 @@ function ExecutionStats({
|
|
|
617
718
|
loading,
|
|
618
719
|
onFilterByStatus
|
|
619
720
|
}) {
|
|
721
|
+
const tr = useTr();
|
|
620
722
|
if (loading) {
|
|
621
723
|
return /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-6 gap-4", children: [...Array(6)].map((_, i) => /* @__PURE__ */ jsx(
|
|
622
724
|
"div",
|
|
@@ -638,7 +740,10 @@ function ExecutionStats({
|
|
|
638
740
|
/* @__PURE__ */ jsx(
|
|
639
741
|
StatCard,
|
|
640
742
|
{
|
|
641
|
-
label:
|
|
743
|
+
label: tr(
|
|
744
|
+
"fluidgrids.executions.executionStats.totalRuns",
|
|
745
|
+
"Total Runs"
|
|
746
|
+
),
|
|
642
747
|
value: stats.total.toLocaleString(),
|
|
643
748
|
icon: "mdi:play-box-multiple",
|
|
644
749
|
color: "text-text-primary",
|
|
@@ -648,7 +753,7 @@ function ExecutionStats({
|
|
|
648
753
|
/* @__PURE__ */ jsx(
|
|
649
754
|
StatCard,
|
|
650
755
|
{
|
|
651
|
-
label: "Running",
|
|
756
|
+
label: tr("fluidgrids.executions.executionStats.running", "Running"),
|
|
652
757
|
value: stats.running,
|
|
653
758
|
icon: "mdi:play-circle",
|
|
654
759
|
color: "text-[var(--color-status-info-text)]",
|
|
@@ -658,7 +763,10 @@ function ExecutionStats({
|
|
|
658
763
|
/* @__PURE__ */ jsx(
|
|
659
764
|
StatCard,
|
|
660
765
|
{
|
|
661
|
-
label:
|
|
766
|
+
label: tr(
|
|
767
|
+
"fluidgrids.executions.executionStats.completed",
|
|
768
|
+
"Completed"
|
|
769
|
+
),
|
|
662
770
|
value: stats.completed.toLocaleString(),
|
|
663
771
|
icon: "mdi:check-circle",
|
|
664
772
|
color: "text-[var(--color-status-success-text)]",
|
|
@@ -668,7 +776,7 @@ function ExecutionStats({
|
|
|
668
776
|
/* @__PURE__ */ jsx(
|
|
669
777
|
StatCard,
|
|
670
778
|
{
|
|
671
|
-
label: "Failed",
|
|
779
|
+
label: tr("fluidgrids.executions.executionStats.failed", "Failed"),
|
|
672
780
|
value: stats.failed,
|
|
673
781
|
icon: "mdi:alert-circle",
|
|
674
782
|
color: "text-[var(--color-status-error-text)]",
|
|
@@ -678,7 +786,10 @@ function ExecutionStats({
|
|
|
678
786
|
/* @__PURE__ */ jsx(
|
|
679
787
|
StatCard,
|
|
680
788
|
{
|
|
681
|
-
label:
|
|
789
|
+
label: tr(
|
|
790
|
+
"fluidgrids.executions.executionStats.successRate",
|
|
791
|
+
"Success Rate"
|
|
792
|
+
),
|
|
682
793
|
value: `${(stats.successRate ?? 0).toFixed(1)}%`,
|
|
683
794
|
icon: "mdi:percent",
|
|
684
795
|
color: "text-accent"
|
|
@@ -687,7 +798,10 @@ function ExecutionStats({
|
|
|
687
798
|
/* @__PURE__ */ jsx(
|
|
688
799
|
StatCard,
|
|
689
800
|
{
|
|
690
|
-
label:
|
|
801
|
+
label: tr(
|
|
802
|
+
"fluidgrids.executions.executionStats.avgDuration",
|
|
803
|
+
"Avg Duration"
|
|
804
|
+
),
|
|
691
805
|
value: formatDuration3(stats.avgDuration ?? 0),
|
|
692
806
|
icon: "mdi:timer",
|
|
693
807
|
color: "text-[var(--color-status-warning-text)]"
|
|
@@ -734,6 +848,7 @@ function ExecutionTable({
|
|
|
734
848
|
onRowClick,
|
|
735
849
|
onAction
|
|
736
850
|
}) {
|
|
851
|
+
const tr = useTr();
|
|
737
852
|
const navigate = useNavigate();
|
|
738
853
|
const {
|
|
739
854
|
selection,
|
|
@@ -756,7 +871,8 @@ function ExecutionTable({
|
|
|
756
871
|
const date = new Date(dateStr);
|
|
757
872
|
const now = /* @__PURE__ */ new Date();
|
|
758
873
|
const diff = now.getTime() - date.getTime();
|
|
759
|
-
if (diff < 6e4)
|
|
874
|
+
if (diff < 6e4)
|
|
875
|
+
return tr("fluidgrids.executions.executionTable.justNow", "Just now");
|
|
760
876
|
if (diff < 36e5) return `${Math.round(diff / 6e4)}m ago`;
|
|
761
877
|
if (diff < 864e5) return `${Math.round(diff / 36e5)}h ago`;
|
|
762
878
|
if (diff < 6048e5) return `${Math.round(diff / 864e5)}d ago`;
|
|
@@ -771,18 +887,60 @@ function ExecutionTable({
|
|
|
771
887
|
const actions = [];
|
|
772
888
|
switch (execution.status) {
|
|
773
889
|
case "RUNNING":
|
|
774
|
-
actions.push({
|
|
775
|
-
|
|
890
|
+
actions.push({
|
|
891
|
+
icon: "mdi:pause",
|
|
892
|
+
label: tr(
|
|
893
|
+
"fluidgrids.executions.executionTable.actionPause",
|
|
894
|
+
"Pause"
|
|
895
|
+
),
|
|
896
|
+
action: "pause"
|
|
897
|
+
});
|
|
898
|
+
actions.push({
|
|
899
|
+
icon: "mdi:stop",
|
|
900
|
+
label: tr(
|
|
901
|
+
"fluidgrids.executions.executionTable.actionCancel",
|
|
902
|
+
"Cancel"
|
|
903
|
+
),
|
|
904
|
+
action: "cancel"
|
|
905
|
+
});
|
|
776
906
|
break;
|
|
777
907
|
case "WAITING":
|
|
778
|
-
actions.push({
|
|
779
|
-
|
|
908
|
+
actions.push({
|
|
909
|
+
icon: "mdi:play",
|
|
910
|
+
label: tr(
|
|
911
|
+
"fluidgrids.executions.executionTable.actionResume",
|
|
912
|
+
"Resume"
|
|
913
|
+
),
|
|
914
|
+
action: "resume"
|
|
915
|
+
});
|
|
916
|
+
actions.push({
|
|
917
|
+
icon: "mdi:stop",
|
|
918
|
+
label: tr(
|
|
919
|
+
"fluidgrids.executions.executionTable.actionCancel",
|
|
920
|
+
"Cancel"
|
|
921
|
+
),
|
|
922
|
+
action: "cancel"
|
|
923
|
+
});
|
|
780
924
|
break;
|
|
781
925
|
case "FAILED":
|
|
782
|
-
actions.push({
|
|
926
|
+
actions.push({
|
|
927
|
+
icon: "mdi:refresh",
|
|
928
|
+
label: tr(
|
|
929
|
+
"fluidgrids.executions.executionTable.actionRetry",
|
|
930
|
+
"Retry"
|
|
931
|
+
),
|
|
932
|
+
action: "retry"
|
|
933
|
+
});
|
|
783
934
|
break;
|
|
784
935
|
case "PENDING":
|
|
785
|
-
actions.push({
|
|
936
|
+
actions.push({
|
|
937
|
+
icon: "mdi:stop",
|
|
938
|
+
label: tr(
|
|
939
|
+
"fluidgrids.executions.executionTable.actionCancel",
|
|
940
|
+
"Cancel"
|
|
941
|
+
),
|
|
942
|
+
action: "cancel"
|
|
943
|
+
});
|
|
786
944
|
break;
|
|
787
945
|
}
|
|
788
946
|
return actions;
|
|
@@ -791,12 +949,30 @@ function ExecutionTable({
|
|
|
791
949
|
return /* @__PURE__ */ jsx("div", { className: "bg-background-secondary rounded-lg border border-border-secondary overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs("table", { className: "w-full min-w-[800px]", children: [
|
|
792
950
|
/* @__PURE__ */ jsx("thead", { className: "bg-background-tertiary border-b border-border-secondary", children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
793
951
|
/* @__PURE__ */ jsx("th", { className: "w-10 px-4 py-3" }),
|
|
794
|
-
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase", children:
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase", children:
|
|
799
|
-
|
|
952
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase", children: tr(
|
|
953
|
+
"fluidgrids.executions.executionTable.colStatus",
|
|
954
|
+
"Status"
|
|
955
|
+
) }),
|
|
956
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase", children: tr(
|
|
957
|
+
"fluidgrids.executions.executionTable.colWorkflow",
|
|
958
|
+
"Workflow"
|
|
959
|
+
) }),
|
|
960
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase", children: tr(
|
|
961
|
+
"fluidgrids.executions.executionTable.colRunId",
|
|
962
|
+
"Run ID"
|
|
963
|
+
) }),
|
|
964
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase", children: tr(
|
|
965
|
+
"fluidgrids.executions.executionTable.colStarted",
|
|
966
|
+
"Started"
|
|
967
|
+
) }),
|
|
968
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase", children: tr(
|
|
969
|
+
"fluidgrids.executions.executionTable.colDuration",
|
|
970
|
+
"Duration"
|
|
971
|
+
) }),
|
|
972
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase", children: tr(
|
|
973
|
+
"fluidgrids.executions.executionTable.colProgress",
|
|
974
|
+
"Progress"
|
|
975
|
+
) }),
|
|
800
976
|
/* @__PURE__ */ jsx("th", { className: "px-4 py-3" })
|
|
801
977
|
] }) }),
|
|
802
978
|
/* @__PURE__ */ jsx("tbody", { children: [...Array(5)].map((_, i) => /* @__PURE__ */ jsx("tr", { className: "border-b border-border-secondary", children: /* @__PURE__ */ jsx("td", { colSpan: 8, className: "px-4 py-4", children: /* @__PURE__ */ jsx("div", { className: "h-8 bg-background-tertiary rounded animate-pulse" }) }) }, i)) })
|
|
@@ -812,9 +988,18 @@ function ExecutionTable({
|
|
|
812
988
|
width: 48
|
|
813
989
|
}
|
|
814
990
|
),
|
|
815
|
-
/* @__PURE__ */ jsx("h3", { className: "text-lg font-medium text-text-primary mb-2", children:
|
|
816
|
-
|
|
817
|
-
|
|
991
|
+
/* @__PURE__ */ jsx("h3", { className: "text-lg font-medium text-text-primary mb-2", children: tr(
|
|
992
|
+
"fluidgrids.executions.executionTable.emptyTitle",
|
|
993
|
+
"No executions found"
|
|
994
|
+
) }),
|
|
995
|
+
/* @__PURE__ */ jsx("p", { className: "text-text-secondary mb-4", children: tr(
|
|
996
|
+
"fluidgrids.executions.executionTable.emptyDescription",
|
|
997
|
+
"There are no workflow executions matching your filters."
|
|
998
|
+
) }),
|
|
999
|
+
/* @__PURE__ */ jsx(Button, { variant: "outline", onClick: () => navigate("../list"), children: tr(
|
|
1000
|
+
"fluidgrids.executions.executionTable.viewWorkflows",
|
|
1001
|
+
"View Workflows"
|
|
1002
|
+
) })
|
|
818
1003
|
] });
|
|
819
1004
|
}
|
|
820
1005
|
return /* @__PURE__ */ jsxs("div", { className: "bg-background-secondary rounded-lg border border-border-secondary overflow-hidden", children: [
|
|
@@ -829,12 +1014,24 @@ function ExecutionTable({
|
|
|
829
1014
|
className: "w-4 h-4 rounded border-border-secondary"
|
|
830
1015
|
}
|
|
831
1016
|
) }),
|
|
832
|
-
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase tracking-wider", children: "Status" }),
|
|
833
|
-
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase tracking-wider", children:
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase tracking-wider", children: "
|
|
1017
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase tracking-wider", children: tr("fluidgrids.executions.executionTable.colStatus", "Status") }),
|
|
1018
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase tracking-wider", children: tr(
|
|
1019
|
+
"fluidgrids.executions.executionTable.colWorkflow",
|
|
1020
|
+
"Workflow"
|
|
1021
|
+
) }),
|
|
1022
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase tracking-wider", children: tr("fluidgrids.executions.executionTable.colRunId", "Run ID") }),
|
|
1023
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase tracking-wider", children: tr(
|
|
1024
|
+
"fluidgrids.executions.executionTable.colStarted",
|
|
1025
|
+
"Started"
|
|
1026
|
+
) }),
|
|
1027
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase tracking-wider", children: tr(
|
|
1028
|
+
"fluidgrids.executions.executionTable.colDuration",
|
|
1029
|
+
"Duration"
|
|
1030
|
+
) }),
|
|
1031
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-text-secondary uppercase tracking-wider", children: tr(
|
|
1032
|
+
"fluidgrids.executions.executionTable.colProgress",
|
|
1033
|
+
"Progress"
|
|
1034
|
+
) }),
|
|
838
1035
|
/* @__PURE__ */ jsx("th", { className: "px-4 py-3 w-32" })
|
|
839
1036
|
] }) }),
|
|
840
1037
|
/* @__PURE__ */ jsx("tbody", { className: "divide-y divide-border-secondary", children: executions.map((execution) => {
|
|
@@ -933,7 +1130,10 @@ function ExecutionTable({
|
|
|
933
1130
|
{
|
|
934
1131
|
onClick: () => navigate(`../runs/${execution.id}`),
|
|
935
1132
|
className: "p-1.5 rounded hover:bg-background-tertiary text-text-secondary",
|
|
936
|
-
title:
|
|
1133
|
+
title: tr(
|
|
1134
|
+
"fluidgrids.executions.executionTable.viewDetails",
|
|
1135
|
+
"View Details"
|
|
1136
|
+
),
|
|
937
1137
|
children: /* @__PURE__ */ jsx(Icon, { icon: "mdi:arrow-right", width: 18 })
|
|
938
1138
|
}
|
|
939
1139
|
)
|
|
@@ -951,32 +1151,56 @@ function ExecutionTable({
|
|
|
951
1151
|
className: "px-4 py-4 bg-background-tertiary/30",
|
|
952
1152
|
children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-4", children: [
|
|
953
1153
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
954
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs text-text-secondary mb-1", children:
|
|
1154
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs text-text-secondary mb-1", children: tr(
|
|
1155
|
+
"fluidgrids.executions.executionTable.triggerNode",
|
|
1156
|
+
"Trigger Node"
|
|
1157
|
+
) }),
|
|
955
1158
|
/* @__PURE__ */ jsx("div", { className: "text-sm text-text-primary font-medium", children: execution.triggerNodeId })
|
|
956
1159
|
] }),
|
|
957
1160
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
958
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs text-text-secondary mb-1", children:
|
|
1161
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs text-text-secondary mb-1", children: tr(
|
|
1162
|
+
"fluidgrids.executions.executionTable.nodeStats",
|
|
1163
|
+
"Node Stats"
|
|
1164
|
+
) }),
|
|
959
1165
|
/* @__PURE__ */ jsxs("div", { className: "flex gap-2 text-sm", children: [
|
|
960
1166
|
/* @__PURE__ */ jsxs("span", { className: "text-[var(--color-status-success-text)]", children: [
|
|
961
1167
|
execution.completedNodes ?? 0,
|
|
962
|
-
"
|
|
1168
|
+
" ",
|
|
1169
|
+
tr(
|
|
1170
|
+
"fluidgrids.executions.executionTable.completed",
|
|
1171
|
+
"completed"
|
|
1172
|
+
)
|
|
963
1173
|
] }),
|
|
964
1174
|
(execution.failedNodes ?? 0) > 0 && /* @__PURE__ */ jsxs("span", { className: "text-[var(--color-status-error-text)]", children: [
|
|
965
1175
|
execution.failedNodes,
|
|
966
|
-
"
|
|
1176
|
+
" ",
|
|
1177
|
+
tr(
|
|
1178
|
+
"fluidgrids.executions.executionTable.failed",
|
|
1179
|
+
"failed"
|
|
1180
|
+
)
|
|
967
1181
|
] }),
|
|
968
1182
|
(execution.skippedNodes ?? 0) > 0 && /* @__PURE__ */ jsxs("span", { className: "text-tertiary", children: [
|
|
969
1183
|
execution.skippedNodes,
|
|
970
|
-
"
|
|
1184
|
+
" ",
|
|
1185
|
+
tr(
|
|
1186
|
+
"fluidgrids.executions.executionTable.skipped",
|
|
1187
|
+
"skipped"
|
|
1188
|
+
)
|
|
971
1189
|
] })
|
|
972
1190
|
] })
|
|
973
1191
|
] }),
|
|
974
1192
|
execution.errorMessage && /* @__PURE__ */ jsxs("div", { className: "col-span-2", children: [
|
|
975
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs text-text-secondary mb-1", children:
|
|
1193
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs text-text-secondary mb-1", children: tr(
|
|
1194
|
+
"fluidgrids.executions.executionTable.error",
|
|
1195
|
+
"Error"
|
|
1196
|
+
) }),
|
|
976
1197
|
/* @__PURE__ */ jsx("div", { className: "text-sm text-[var(--color-status-error-text)] bg-[var(--color-status-error-bg-subtle)] p-2 rounded", children: execution.errorMessage })
|
|
977
1198
|
] }),
|
|
978
1199
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
979
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs text-text-secondary mb-1", children:
|
|
1200
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs text-text-secondary mb-1", children: tr(
|
|
1201
|
+
"fluidgrids.executions.executionTable.fullRunId",
|
|
1202
|
+
"Full Run ID"
|
|
1203
|
+
) }),
|
|
980
1204
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-mono text-text-secondary break-all", children: execution.id })
|
|
981
1205
|
] })
|
|
982
1206
|
] })
|
|
@@ -985,7 +1209,10 @@ function ExecutionTable({
|
|
|
985
1209
|
] });
|
|
986
1210
|
}) })
|
|
987
1211
|
] }) }),
|
|
988
|
-
/* @__PURE__ */ jsx("div", { className: "sm:hidden px-4 py-2 bg-background-tertiary border-t border-border-secondary text-xs text-text-secondary text-center", children:
|
|
1212
|
+
/* @__PURE__ */ jsx("div", { className: "sm:hidden px-4 py-2 bg-background-tertiary border-t border-border-secondary text-xs text-text-secondary text-center", children: tr(
|
|
1213
|
+
"fluidgrids.executions.executionTable.swipeHint",
|
|
1214
|
+
"Swipe to see more columns"
|
|
1215
|
+
) })
|
|
989
1216
|
] });
|
|
990
1217
|
}
|
|
991
1218
|
function formatDuration(ms) {
|
|
@@ -1031,6 +1258,7 @@ function ExecutionCards({
|
|
|
1031
1258
|
onCardClick,
|
|
1032
1259
|
onAction
|
|
1033
1260
|
}) {
|
|
1261
|
+
const tr = useTr();
|
|
1034
1262
|
if (loading) {
|
|
1035
1263
|
return /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsxs(
|
|
1036
1264
|
"div",
|
|
@@ -1062,8 +1290,14 @@ function ExecutionCards({
|
|
|
1062
1290
|
className: "mb-3 opacity-40"
|
|
1063
1291
|
}
|
|
1064
1292
|
),
|
|
1065
|
-
/* @__PURE__ */ jsx("p", { className: "text-lg font-medium", children:
|
|
1066
|
-
|
|
1293
|
+
/* @__PURE__ */ jsx("p", { className: "text-lg font-medium", children: tr(
|
|
1294
|
+
"fluidgrids.executions.executionCards.emptyTitle",
|
|
1295
|
+
"No executions found"
|
|
1296
|
+
) }),
|
|
1297
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm mt-1", children: tr(
|
|
1298
|
+
"fluidgrids.executions.executionCards.emptyDescription",
|
|
1299
|
+
"Run a workflow to see results here"
|
|
1300
|
+
) })
|
|
1067
1301
|
] });
|
|
1068
1302
|
}
|
|
1069
1303
|
return /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4", children: executions.map((execution) => {
|
|
@@ -1089,7 +1323,10 @@ function ExecutionCards({
|
|
|
1089
1323
|
] }),
|
|
1090
1324
|
/* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
|
|
1091
1325
|
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-xs text-text-tertiary mb-1", children: [
|
|
1092
|
-
/* @__PURE__ */ jsx("span", { children:
|
|
1326
|
+
/* @__PURE__ */ jsx("span", { children: tr(
|
|
1327
|
+
"fluidgrids.executions.executionCards.progressLabel",
|
|
1328
|
+
"Progress"
|
|
1329
|
+
) }),
|
|
1093
1330
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
1094
1331
|
Math.round(execution.progress),
|
|
1095
1332
|
"%"
|
|
@@ -1161,7 +1398,11 @@ function ExecutionCards({
|
|
|
1161
1398
|
className: "flex items-center gap-1 text-xs px-2 py-1 rounded bg-background-tertiary hover:bg-yellow-50 dark:hover:bg-yellow-900/20 text-text-secondary hover:text-yellow-600 transition-colors",
|
|
1162
1399
|
children: [
|
|
1163
1400
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:pause", width: 12 }),
|
|
1164
|
-
"
|
|
1401
|
+
" ",
|
|
1402
|
+
tr(
|
|
1403
|
+
"fluidgrids.executions.executionCards.pauseButton",
|
|
1404
|
+
"Pause"
|
|
1405
|
+
)
|
|
1165
1406
|
]
|
|
1166
1407
|
}
|
|
1167
1408
|
),
|
|
@@ -1176,7 +1417,11 @@ function ExecutionCards({
|
|
|
1176
1417
|
className: "flex items-center gap-1 text-xs px-2 py-1 rounded bg-background-tertiary hover:bg-red-50 dark:hover:bg-red-900/20 text-text-secondary hover:text-red-600 transition-colors",
|
|
1177
1418
|
children: [
|
|
1178
1419
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:stop", width: 12 }),
|
|
1179
|
-
"
|
|
1420
|
+
" ",
|
|
1421
|
+
tr(
|
|
1422
|
+
"fluidgrids.executions.executionCards.cancelButton",
|
|
1423
|
+
"Cancel"
|
|
1424
|
+
)
|
|
1180
1425
|
]
|
|
1181
1426
|
}
|
|
1182
1427
|
)
|
|
@@ -1246,6 +1491,7 @@ function ExecutionTimeline({
|
|
|
1246
1491
|
onItemClick,
|
|
1247
1492
|
onAction
|
|
1248
1493
|
}) {
|
|
1494
|
+
const tr = useTr();
|
|
1249
1495
|
if (loading) {
|
|
1250
1496
|
return /* @__PURE__ */ jsx("div", { className: "space-y-6 pl-8", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsxs("div", { className: "flex gap-4 animate-pulse", children: [
|
|
1251
1497
|
/* @__PURE__ */ jsx("div", { className: "w-3 h-3 rounded-full bg-background-tertiary mt-1.5 shrink-0" }),
|
|
@@ -1259,8 +1505,14 @@ function ExecutionTimeline({
|
|
|
1259
1505
|
if (executions.length === 0) {
|
|
1260
1506
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center py-16 text-text-secondary", children: [
|
|
1261
1507
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:timeline", width: 48, className: "mb-3 opacity-40" }),
|
|
1262
|
-
/* @__PURE__ */ jsx("p", { className: "text-lg font-medium", children:
|
|
1263
|
-
|
|
1508
|
+
/* @__PURE__ */ jsx("p", { className: "text-lg font-medium", children: tr(
|
|
1509
|
+
"fluidgrids.executions.executionTimeline.emptyTitle",
|
|
1510
|
+
"No executions found"
|
|
1511
|
+
) }),
|
|
1512
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm mt-1", children: tr(
|
|
1513
|
+
"fluidgrids.executions.executionTimeline.emptyDescription",
|
|
1514
|
+
"Run a workflow to see the timeline"
|
|
1515
|
+
) })
|
|
1264
1516
|
] });
|
|
1265
1517
|
}
|
|
1266
1518
|
const grouped = groupByDate(executions);
|
|
@@ -1278,7 +1530,11 @@ function ExecutionTimeline({
|
|
|
1278
1530
|
/* @__PURE__ */ jsx("div", { className: "flex-1 h-px bg-border-secondary" }),
|
|
1279
1531
|
/* @__PURE__ */ jsxs("span", { className: "text-xs text-text-tertiary", children: [
|
|
1280
1532
|
dateExecutions.length,
|
|
1281
|
-
"
|
|
1533
|
+
" ",
|
|
1534
|
+
tr(
|
|
1535
|
+
"fluidgrids.executions.executionTimeline.runsCountSuffix",
|
|
1536
|
+
"runs"
|
|
1537
|
+
)
|
|
1282
1538
|
] })
|
|
1283
1539
|
] }),
|
|
1284
1540
|
/* @__PURE__ */ jsxs("div", { className: "relative ml-4", children: [
|
|
@@ -1332,7 +1588,11 @@ function ExecutionTimeline({
|
|
|
1332
1588
|
execution.completedNodes ?? 0,
|
|
1333
1589
|
"/",
|
|
1334
1590
|
execution.totalNodes,
|
|
1335
|
-
"
|
|
1591
|
+
" ",
|
|
1592
|
+
tr(
|
|
1593
|
+
"fluidgrids.executions.executionTimeline.nodesCountSuffix",
|
|
1594
|
+
"nodes"
|
|
1595
|
+
)
|
|
1336
1596
|
] })
|
|
1337
1597
|
] }),
|
|
1338
1598
|
execution.errorMessage && /* @__PURE__ */ jsx("p", { className: "mt-1.5 text-xs text-red-500 dark:text-red-400 truncate max-w-sm", children: execution.errorMessage })
|
|
@@ -1354,7 +1614,10 @@ function ExecutionTimeline({
|
|
|
1354
1614
|
onAction("cancel", execution);
|
|
1355
1615
|
},
|
|
1356
1616
|
className: "opacity-0 group-hover:opacity-100 p-1 rounded hover:bg-red-50 dark:hover:bg-red-900/20 text-text-tertiary hover:text-red-600 transition-all",
|
|
1357
|
-
title:
|
|
1617
|
+
title: tr(
|
|
1618
|
+
"fluidgrids.executions.executionTimeline.cancelTooltip",
|
|
1619
|
+
"Cancel execution"
|
|
1620
|
+
),
|
|
1358
1621
|
children: /* @__PURE__ */ jsx(Icon, { icon: "mdi:stop", width: 14 })
|
|
1359
1622
|
}
|
|
1360
1623
|
)
|
|
@@ -1402,6 +1665,7 @@ function NodeTimeline({
|
|
|
1402
1665
|
onRetryNode,
|
|
1403
1666
|
onViewChildRun
|
|
1404
1667
|
}) {
|
|
1668
|
+
const tr = useTr();
|
|
1405
1669
|
const [expandedNodes, setExpandedNodes] = useState(/* @__PURE__ */ new Set());
|
|
1406
1670
|
const [selectedTab, setSelectedTab] = useState("output");
|
|
1407
1671
|
const toggleNode = (nodeId) => {
|
|
@@ -1431,11 +1695,15 @@ function NodeTimeline({
|
|
|
1431
1695
|
});
|
|
1432
1696
|
};
|
|
1433
1697
|
const formatJsonData = (data) => {
|
|
1434
|
-
if (data === null || data === void 0)
|
|
1698
|
+
if (data === null || data === void 0)
|
|
1699
|
+
return tr("fluidgrids.executions.nodeTimeline.noData", "No data");
|
|
1435
1700
|
try {
|
|
1436
1701
|
return JSON.stringify(data, null, 2);
|
|
1437
1702
|
} catch {
|
|
1438
|
-
return
|
|
1703
|
+
return tr(
|
|
1704
|
+
"fluidgrids.executions.nodeTimeline.unableToDisplayData",
|
|
1705
|
+
"Unable to display data"
|
|
1706
|
+
);
|
|
1439
1707
|
}
|
|
1440
1708
|
};
|
|
1441
1709
|
const hasMetadata = (metadata) => {
|
|
@@ -1455,7 +1723,10 @@ function NodeTimeline({
|
|
|
1455
1723
|
if (nodeStates.length === 0) {
|
|
1456
1724
|
return /* @__PURE__ */ jsxs("div", { className: "text-center py-8 text-text-secondary", children: [
|
|
1457
1725
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:timeline-outline", className: "mx-auto mb-2", width: 32 }),
|
|
1458
|
-
/* @__PURE__ */ jsx("p", { children:
|
|
1726
|
+
/* @__PURE__ */ jsx("p", { children: tr(
|
|
1727
|
+
"fluidgrids.executions.nodeTimeline.emptyState",
|
|
1728
|
+
"No node executions yet"
|
|
1729
|
+
) })
|
|
1459
1730
|
] });
|
|
1460
1731
|
}
|
|
1461
1732
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
@@ -1530,11 +1801,21 @@ function NodeTimeline({
|
|
|
1530
1801
|
] }),
|
|
1531
1802
|
hasChildRun && /* @__PURE__ */ jsxs("span", { className: "px-2 py-0.5 text-xs bg-indigo-100 text-indigo-700 rounded flex items-center gap-1", children: [
|
|
1532
1803
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:sitemap", width: 12 }),
|
|
1533
|
-
|
|
1804
|
+
tr(
|
|
1805
|
+
"fluidgrids.executions.nodeTimeline.subWorkflowBadge",
|
|
1806
|
+
"Sub-workflow"
|
|
1807
|
+
)
|
|
1534
1808
|
] }),
|
|
1535
|
-
isWaitingSubworkflow && /* @__PURE__ */ jsx("span", { className: "px-2 py-0.5 text-xs bg-purple-100 text-purple-700 rounded animate-pulse", children:
|
|
1809
|
+
isWaitingSubworkflow && /* @__PURE__ */ jsx("span", { className: "px-2 py-0.5 text-xs bg-purple-100 text-purple-700 rounded animate-pulse", children: tr(
|
|
1810
|
+
"fluidgrids.executions.nodeTimeline.waitingBadge",
|
|
1811
|
+
"Waiting..."
|
|
1812
|
+
) }),
|
|
1536
1813
|
node.attemptCount > 1 && /* @__PURE__ */ jsxs("span", { className: "px-2 py-0.5 text-xs bg-[var(--color-status-warning-bg-subtle)] text-[var(--color-status-warning-text)] rounded", children: [
|
|
1537
|
-
|
|
1814
|
+
tr(
|
|
1815
|
+
"fluidgrids.executions.nodeTimeline.attemptLabel",
|
|
1816
|
+
"Attempt"
|
|
1817
|
+
),
|
|
1818
|
+
" ",
|
|
1538
1819
|
node.attemptCount
|
|
1539
1820
|
] }),
|
|
1540
1821
|
/* @__PURE__ */ jsx(
|
|
@@ -1556,7 +1837,10 @@ function NodeTimeline({
|
|
|
1556
1837
|
{
|
|
1557
1838
|
onClick: () => setSelectedTab("output"),
|
|
1558
1839
|
className: `px-3 py-1.5 text-sm rounded ${selectedTab === "output" ? "bg-action-primary-bg text-white" : "bg-background-tertiary text-text-secondary"}`,
|
|
1559
|
-
children:
|
|
1840
|
+
children: tr(
|
|
1841
|
+
"fluidgrids.executions.nodeTimeline.outputTab",
|
|
1842
|
+
"Output"
|
|
1843
|
+
)
|
|
1560
1844
|
}
|
|
1561
1845
|
),
|
|
1562
1846
|
/* @__PURE__ */ jsx(
|
|
@@ -1564,7 +1848,10 @@ function NodeTimeline({
|
|
|
1564
1848
|
{
|
|
1565
1849
|
onClick: () => setSelectedTab("input"),
|
|
1566
1850
|
className: `px-3 py-1.5 text-sm rounded ${selectedTab === "input" ? "bg-action-primary-bg text-white" : "bg-background-tertiary text-text-secondary"}`,
|
|
1567
|
-
children:
|
|
1851
|
+
children: tr(
|
|
1852
|
+
"fluidgrids.executions.nodeTimeline.inputTab",
|
|
1853
|
+
"Input"
|
|
1854
|
+
)
|
|
1568
1855
|
}
|
|
1569
1856
|
)
|
|
1570
1857
|
] }),
|
|
@@ -1572,7 +1859,10 @@ function NodeTimeline({
|
|
|
1572
1859
|
node.error && /* @__PURE__ */ jsxs("div", { className: "mt-3 p-3 bg-[var(--color-status-error-bg-subtle)] border border-[var(--color-status-error-border)] rounded", children: [
|
|
1573
1860
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-[var(--color-status-error-text)] mb-1", children: [
|
|
1574
1861
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:alert-circle", width: 16 }),
|
|
1575
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium text-sm", children:
|
|
1862
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-sm", children: tr(
|
|
1863
|
+
"fluidgrids.executions.nodeTimeline.errorLabel",
|
|
1864
|
+
"Error"
|
|
1865
|
+
) }),
|
|
1576
1866
|
node.errorType && /* @__PURE__ */ jsx("span", { className: "text-xs bg-[var(--color-status-error-bg)] px-2 py-0.5 rounded", children: node.errorType })
|
|
1577
1867
|
] }),
|
|
1578
1868
|
/* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--color-status-error-text)]", children: node.error })
|
|
@@ -1585,7 +1875,10 @@ function NodeTimeline({
|
|
|
1585
1875
|
className: "px-3 py-1.5 text-sm bg-indigo-600 text-white rounded hover:bg-indigo-700 flex items-center gap-1.5",
|
|
1586
1876
|
children: [
|
|
1587
1877
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:sitemap", width: 16 }),
|
|
1588
|
-
|
|
1878
|
+
tr(
|
|
1879
|
+
"fluidgrids.executions.nodeTimeline.viewSubWorkflowRun",
|
|
1880
|
+
"View Sub-Workflow Run"
|
|
1881
|
+
)
|
|
1589
1882
|
]
|
|
1590
1883
|
}
|
|
1591
1884
|
),
|
|
@@ -1596,13 +1889,19 @@ function NodeTimeline({
|
|
|
1596
1889
|
className: "px-3 py-1.5 text-sm bg-action-primary-bg text-white rounded hover:bg-action-primary-bg/90 flex items-center gap-1.5",
|
|
1597
1890
|
children: [
|
|
1598
1891
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:refresh", width: 16 }),
|
|
1599
|
-
|
|
1892
|
+
tr(
|
|
1893
|
+
"fluidgrids.executions.nodeTimeline.retryNodeButton",
|
|
1894
|
+
"Retry Node"
|
|
1895
|
+
)
|
|
1600
1896
|
]
|
|
1601
1897
|
}
|
|
1602
1898
|
)
|
|
1603
1899
|
] }),
|
|
1604
1900
|
hasMetadata(node.metadata) && /* @__PURE__ */ jsxs("details", { className: "mt-3", children: [
|
|
1605
|
-
/* @__PURE__ */ jsx("summary", { className: "text-xs text-text-secondary cursor-pointer hover:text-text-primary", children:
|
|
1901
|
+
/* @__PURE__ */ jsx("summary", { className: "text-xs text-text-secondary cursor-pointer hover:text-text-primary", children: tr(
|
|
1902
|
+
"fluidgrids.executions.nodeTimeline.metadataSummary",
|
|
1903
|
+
"Metadata"
|
|
1904
|
+
) }),
|
|
1606
1905
|
/* @__PURE__ */ jsx("pre", { className: "mt-2 text-xs text-text-secondary bg-background-tertiary p-2 rounded overflow-auto max-h-32", children: formatJsonData(node.metadata) })
|
|
1607
1906
|
] })
|
|
1608
1907
|
] })
|
|
@@ -1675,6 +1974,7 @@ function RunLogViewer({
|
|
|
1675
1974
|
onMinLevelChange,
|
|
1676
1975
|
onLoadMore
|
|
1677
1976
|
}) {
|
|
1977
|
+
const tr = useTr();
|
|
1678
1978
|
const [search, setSearch] = useState("");
|
|
1679
1979
|
const [showTimestamps, setShowTimestamps] = useState(true);
|
|
1680
1980
|
const [wrap, setWrap] = useState(true);
|
|
@@ -1799,8 +2099,14 @@ function RunLogViewer({
|
|
|
1799
2099
|
type: "search",
|
|
1800
2100
|
value: search,
|
|
1801
2101
|
onChange: (e) => setSearch(e.target.value),
|
|
1802
|
-
placeholder:
|
|
1803
|
-
|
|
2102
|
+
placeholder: tr(
|
|
2103
|
+
"fluidgrids.executions.runLogViewer.searchPlaceholder",
|
|
2104
|
+
"Search log"
|
|
2105
|
+
),
|
|
2106
|
+
"aria-label": tr(
|
|
2107
|
+
"fluidgrids.executions.runLogViewer.searchAriaLabel",
|
|
2108
|
+
"Search log"
|
|
2109
|
+
),
|
|
1804
2110
|
className: "w-full pl-8 pr-3 py-1.5 text-sm rounded border border-border-secondary bg-background-primary text-text-primary"
|
|
1805
2111
|
}
|
|
1806
2112
|
)
|
|
@@ -1812,13 +2118,23 @@ function RunLogViewer({
|
|
|
1812
2118
|
onChange: (e) => onMinLevelChange(
|
|
1813
2119
|
e.target.value === "ALL" ? null : e.target.value
|
|
1814
2120
|
),
|
|
1815
|
-
"aria-label":
|
|
2121
|
+
"aria-label": tr(
|
|
2122
|
+
"fluidgrids.executions.runLogViewer.minLevelAriaLabel",
|
|
2123
|
+
"Minimum log level"
|
|
2124
|
+
),
|
|
1816
2125
|
className: "px-2 py-1.5 text-sm rounded border border-border-secondary bg-background-primary text-text-primary",
|
|
1817
2126
|
children: [
|
|
1818
|
-
/* @__PURE__ */ jsx("option", { value: "ALL", children:
|
|
2127
|
+
/* @__PURE__ */ jsx("option", { value: "ALL", children: tr(
|
|
2128
|
+
"fluidgrids.executions.runLogViewer.allLevelsOption",
|
|
2129
|
+
"All levels"
|
|
2130
|
+
) }),
|
|
1819
2131
|
LEVEL_ORDER.map((level) => /* @__PURE__ */ jsxs("option", { value: level, children: [
|
|
1820
2132
|
level,
|
|
1821
|
-
"
|
|
2133
|
+
" ",
|
|
2134
|
+
tr(
|
|
2135
|
+
"fluidgrids.executions.runLogViewer.andAboveSuffix",
|
|
2136
|
+
"and above"
|
|
2137
|
+
)
|
|
1822
2138
|
] }, level))
|
|
1823
2139
|
]
|
|
1824
2140
|
}
|
|
@@ -1832,7 +2148,10 @@ function RunLogViewer({
|
|
|
1832
2148
|
"aria-pressed": showTimestamps,
|
|
1833
2149
|
children: [
|
|
1834
2150
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:clock-outline", className: "mr-1", width: 16 }),
|
|
1835
|
-
|
|
2151
|
+
tr(
|
|
2152
|
+
"fluidgrids.executions.runLogViewer.timestampsButton",
|
|
2153
|
+
"Timestamps"
|
|
2154
|
+
)
|
|
1836
2155
|
]
|
|
1837
2156
|
}
|
|
1838
2157
|
),
|
|
@@ -1845,7 +2164,7 @@ function RunLogViewer({
|
|
|
1845
2164
|
"aria-pressed": wrap,
|
|
1846
2165
|
children: [
|
|
1847
2166
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:wrap", className: "mr-1", width: 16 }),
|
|
1848
|
-
"Wrap"
|
|
2167
|
+
tr("fluidgrids.executions.runLogViewer.wrapButton", "Wrap")
|
|
1849
2168
|
]
|
|
1850
2169
|
}
|
|
1851
2170
|
),
|
|
@@ -1865,7 +2184,10 @@ function RunLogViewer({
|
|
|
1865
2184
|
width: 16
|
|
1866
2185
|
}
|
|
1867
2186
|
),
|
|
1868
|
-
follow ?
|
|
2187
|
+
follow ? tr(
|
|
2188
|
+
"fluidgrids.executions.runLogViewer.followingButton",
|
|
2189
|
+
"Following"
|
|
2190
|
+
) : tr("fluidgrids.executions.runLogViewer.followButton", "Follow")
|
|
1869
2191
|
]
|
|
1870
2192
|
}
|
|
1871
2193
|
),
|
|
@@ -1878,7 +2200,7 @@ function RunLogViewer({
|
|
|
1878
2200
|
disabled: lines.length === 0,
|
|
1879
2201
|
children: [
|
|
1880
2202
|
/* @__PURE__ */ jsx(Icon, { icon: "mdi:download", className: "mr-1", width: 16 }),
|
|
1881
|
-
"Raw"
|
|
2203
|
+
tr("fluidgrids.executions.runLogViewer.rawButton", "Raw")
|
|
1882
2204
|
]
|
|
1883
2205
|
}
|
|
1884
2206
|
)
|
|
@@ -1886,9 +2208,9 @@ function RunLogViewer({
|
|
|
1886
2208
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3 text-xs text-text-secondary", children: [
|
|
1887
2209
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
1888
2210
|
visible.length,
|
|
1889
|
-
"
|
|
1890
|
-
visible.length === 1 ? "" : "
|
|
1891
|
-
search.trim() && ` matching \u201C${search}\u201D`
|
|
2211
|
+
" ",
|
|
2212
|
+
visible.length === 1 ? tr("fluidgrids.executions.runLogViewer.lineCountSingular", "line") : tr("fluidgrids.executions.runLogViewer.lineCountPlural", "lines"),
|
|
2213
|
+
search.trim() && ` ${tr("fluidgrids.executions.runLogViewer.matchingLabel", "matching")} \u201C${search}\u201D`
|
|
1892
2214
|
] }),
|
|
1893
2215
|
active && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
1894
2216
|
/* @__PURE__ */ jsx(
|
|
@@ -1897,18 +2219,30 @@ function RunLogViewer({
|
|
|
1897
2219
|
className: `inline-block w-2 h-2 rounded-full ${streaming ? "bg-[var(--color-status-success-bg)]" : "bg-[var(--color-status-info-bg)]"}`
|
|
1898
2220
|
}
|
|
1899
2221
|
),
|
|
1900
|
-
streaming ?
|
|
2222
|
+
streaming ? tr(
|
|
2223
|
+
"fluidgrids.executions.runLogViewer.streamingIndicator",
|
|
2224
|
+
"Streaming"
|
|
2225
|
+
) : tr(
|
|
2226
|
+
"fluidgrids.executions.runLogViewer.pollingIndicator",
|
|
2227
|
+
"Polling"
|
|
2228
|
+
)
|
|
1901
2229
|
] }),
|
|
1902
2230
|
hasMore && /* @__PURE__ */ jsx(
|
|
1903
2231
|
"button",
|
|
1904
2232
|
{
|
|
1905
2233
|
onClick: onLoadMore,
|
|
1906
2234
|
className: "text-action-primary-text hover:underline",
|
|
1907
|
-
children:
|
|
2235
|
+
children: tr(
|
|
2236
|
+
"fluidgrids.executions.runLogViewer.loadMoreLines",
|
|
2237
|
+
"Load more lines"
|
|
2238
|
+
)
|
|
1908
2239
|
}
|
|
1909
2240
|
)
|
|
1910
2241
|
] }),
|
|
1911
|
-
limitReached && /* @__PURE__ */ jsx("div", { className: "px-3 py-2 rounded border border-[var(--color-status-warning-border)] bg-[var(--color-status-warning-bg-subtle)] text-[var(--color-status-warning-text)] text-sm", children:
|
|
2242
|
+
limitReached && /* @__PURE__ */ jsx("div", { className: "px-3 py-2 rounded border border-[var(--color-status-warning-border)] bg-[var(--color-status-warning-bg-subtle)] text-[var(--color-status-warning-text)] text-sm", children: tr(
|
|
2243
|
+
"fluidgrids.executions.runLogViewer.limitReachedNotice",
|
|
2244
|
+
"This run hit its log limit \u2014 later lines were dropped. Reduce logging inside loops, or split the workflow into sub-workflows."
|
|
2245
|
+
) }),
|
|
1912
2246
|
/* @__PURE__ */ jsxs(
|
|
1913
2247
|
"div",
|
|
1914
2248
|
{
|
|
@@ -1925,7 +2259,16 @@ function RunLogViewer({
|
|
|
1925
2259
|
width: 32
|
|
1926
2260
|
}
|
|
1927
2261
|
),
|
|
1928
|
-
/* @__PURE__ */ jsx("p", { children: search.trim() ?
|
|
2262
|
+
/* @__PURE__ */ jsx("p", { children: search.trim() ? tr(
|
|
2263
|
+
"fluidgrids.executions.runLogViewer.noSearchMatches",
|
|
2264
|
+
"No lines match your search"
|
|
2265
|
+
) : active ? tr(
|
|
2266
|
+
"fluidgrids.executions.runLogViewer.waitingForFirstLine",
|
|
2267
|
+
"Waiting for the first log line\u2026"
|
|
2268
|
+
) : tr(
|
|
2269
|
+
"fluidgrids.executions.runLogViewer.noLogOutput",
|
|
2270
|
+
"This run produced no log output"
|
|
2271
|
+
) })
|
|
1929
2272
|
] }) : groups.map((group) => {
|
|
1930
2273
|
const groupCollapsed = isCollapsed(group);
|
|
1931
2274
|
return /* @__PURE__ */ jsxs(
|
|
@@ -1985,7 +2328,7 @@ function RunLogViewer({
|
|
|
1985
2328
|
"span",
|
|
1986
2329
|
{
|
|
1987
2330
|
className: "text-text-secondary flex-shrink-0",
|
|
1988
|
-
title:
|
|
2331
|
+
title: `${tr("fluidgrids.executions.runLogViewer.attemptTooltip", "Attempt")} ${line.attempt}`,
|
|
1989
2332
|
children: [
|
|
1990
2333
|
"#",
|
|
1991
2334
|
line.attempt
|
|
@@ -2000,7 +2343,10 @@ function RunLogViewer({
|
|
|
2000
2343
|
line.message,
|
|
2001
2344
|
line.truncated && /* @__PURE__ */ jsxs("span", { className: "text-text-secondary", children: [
|
|
2002
2345
|
" ",
|
|
2003
|
-
|
|
2346
|
+
tr(
|
|
2347
|
+
"fluidgrids.executions.runLogViewer.truncatedSuffix",
|
|
2348
|
+
"(truncated)"
|
|
2349
|
+
)
|
|
2004
2350
|
] })
|
|
2005
2351
|
]
|
|
2006
2352
|
}
|
|
@@ -2009,8 +2355,14 @@ function RunLogViewer({
|
|
|
2009
2355
|
"button",
|
|
2010
2356
|
{
|
|
2011
2357
|
onClick: () => copyLineLink(line.id),
|
|
2012
|
-
title:
|
|
2013
|
-
|
|
2358
|
+
title: tr(
|
|
2359
|
+
"fluidgrids.executions.runLogViewer.copyLineLinkTooltip",
|
|
2360
|
+
"Copy link to this line"
|
|
2361
|
+
),
|
|
2362
|
+
"aria-label": tr(
|
|
2363
|
+
"fluidgrids.executions.runLogViewer.copyLineLinkAriaLabel",
|
|
2364
|
+
"Copy link to this line"
|
|
2365
|
+
),
|
|
2014
2366
|
className: "opacity-0 group-hover:opacity-100 text-text-secondary hover:text-text-primary flex-shrink-0",
|
|
2015
2367
|
children: /* @__PURE__ */ jsx(Icon, { icon: "mdi:link-variant", width: 14 })
|
|
2016
2368
|
}
|
|
@@ -2034,6 +2386,7 @@ function Pagination({
|
|
|
2034
2386
|
totalItems,
|
|
2035
2387
|
showPageSize = true
|
|
2036
2388
|
}) {
|
|
2389
|
+
const tr = useTr();
|
|
2037
2390
|
const { pagination, setPage, setPageSize } = useExecutionsStore();
|
|
2038
2391
|
const { page, pageSize, total } = pagination;
|
|
2039
2392
|
const totalPages = Math.ceil((totalItems ?? total) / pageSize);
|
|
@@ -2074,21 +2427,23 @@ function Pagination({
|
|
|
2074
2427
|
}
|
|
2075
2428
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col sm:flex-row items-center justify-between gap-4 py-4", children: [
|
|
2076
2429
|
/* @__PURE__ */ jsxs("div", { className: "text-sm text-text-secondary", children: [
|
|
2077
|
-
"Showing",
|
|
2430
|
+
tr("fluidgrids.executions.pagination.showingLabel", "Showing"),
|
|
2078
2431
|
" ",
|
|
2079
2432
|
/* @__PURE__ */ jsx("span", { className: "font-medium text-text-primary", children: startItem }),
|
|
2080
|
-
"
|
|
2433
|
+
" ",
|
|
2434
|
+
tr("fluidgrids.executions.pagination.toLabel", "to"),
|
|
2081
2435
|
" ",
|
|
2082
2436
|
/* @__PURE__ */ jsx("span", { className: "font-medium text-text-primary", children: endItem }),
|
|
2083
|
-
"
|
|
2437
|
+
" ",
|
|
2438
|
+
tr("fluidgrids.executions.pagination.ofLabel", "of"),
|
|
2084
2439
|
" ",
|
|
2085
2440
|
/* @__PURE__ */ jsx("span", { className: "font-medium text-text-primary", children: totalItems ?? total }),
|
|
2086
2441
|
" ",
|
|
2087
|
-
"results"
|
|
2442
|
+
tr("fluidgrids.executions.pagination.resultsLabel", "results")
|
|
2088
2443
|
] }),
|
|
2089
2444
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
2090
2445
|
showPageSize && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
2091
|
-
/* @__PURE__ */ jsx("label", { className: "text-sm text-text-secondary", children: "Show" }),
|
|
2446
|
+
/* @__PURE__ */ jsx("label", { className: "text-sm text-text-secondary", children: tr("fluidgrids.executions.pagination.pageSizeLabel", "Show") }),
|
|
2092
2447
|
/* @__PURE__ */ jsx(
|
|
2093
2448
|
"select",
|
|
2094
2449
|
{
|
|
@@ -2459,5 +2814,5 @@ function useAutoRefresh(refetchFn, enabled = true, interval = 5e3) {
|
|
|
2459
2814
|
}
|
|
2460
2815
|
|
|
2461
2816
|
export { ExecutionCards, ExecutionFilters, ExecutionStats, ExecutionStatusBadge, ExecutionTable, ExecutionTimeline, NodeTimeline, Pagination, RunLogViewer, buildNodeDisplayMap, formatRunVersion, useAutoRefresh, useExecution, useExecutionActions, useExecutionStats, useExecutionsStore, useExecutionsWithStore };
|
|
2462
|
-
//# sourceMappingURL=chunk-
|
|
2463
|
-
//# sourceMappingURL=chunk-
|
|
2817
|
+
//# sourceMappingURL=chunk-6PNRM3KQ.js.map
|
|
2818
|
+
//# sourceMappingURL=chunk-6PNRM3KQ.js.map
|