@burdenoff/fluidgrids-fe-sdk 2026.1008.2 → 2026.1010.1
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-JB5UYJMF.js +12 -0
- package/dist/{ExecutionDetailPage-HPAU7U3E.js.map → ExecutionDetailPage-JB5UYJMF.js.map} +1 -1
- package/dist/ExecutionsListPage-RDGTW6UF.js +11 -0
- package/dist/{ExecutionsListPage-TLXVEIRK.js.map → ExecutionsListPage-RDGTW6UF.js.map} +1 -1
- package/dist/{WorkflowBuilder-YJLWNBT3.js → WorkflowBuilder-AQSWNBKH.js} +7 -7
- package/dist/{WorkflowBuilder-YJLWNBT3.js.map → WorkflowBuilder-AQSWNBKH.js.map} +1 -1
- package/dist/WorkflowsList-CE2CRD7W.js +14 -0
- package/dist/{WorkflowsList-YSZWXFMZ.js.map → WorkflowsList-CE2CRD7W.js.map} +1 -1
- package/dist/{chunk-3B5YEXSW.js → chunk-47RAP7HT.js} +13 -4
- package/dist/chunk-47RAP7HT.js.map +1 -0
- package/dist/{chunk-LVKUOMLJ.js → chunk-CZ7APZ5B.js} +5 -5
- package/dist/{chunk-LVKUOMLJ.js.map → chunk-CZ7APZ5B.js.map} +1 -1
- package/dist/{chunk-F2BBRTLB.js → chunk-DFGJKGWH.js} +6 -4
- package/dist/chunk-DFGJKGWH.js.map +1 -0
- package/dist/{chunk-NG32SZ75.js → chunk-FA7S7YMY.js} +3 -3
- package/dist/{chunk-NG32SZ75.js.map → chunk-FA7S7YMY.js.map} +1 -1
- package/dist/{chunk-WYQ4OBES.js → chunk-HK7IRZLW.js} +4 -4
- package/dist/{chunk-WYQ4OBES.js.map → chunk-HK7IRZLW.js.map} +1 -1
- package/dist/{chunk-IOV4YPQU.js → chunk-M2YFTRLL.js} +4 -4
- package/dist/{chunk-IOV4YPQU.js.map → chunk-M2YFTRLL.js.map} +1 -1
- package/dist/{chunk-W7APOU2R.js → chunk-OJ3AVTEY.js} +64 -9
- package/dist/chunk-OJ3AVTEY.js.map +1 -0
- package/dist/{chunk-WKALLY4E.js → chunk-PAZHTUZ4.js} +4 -4
- package/dist/{chunk-WKALLY4E.js.map → chunk-PAZHTUZ4.js.map} +1 -1
- package/dist/{chunk-I2766GDR.js → chunk-PKWVMJFF.js} +11 -5
- package/dist/chunk-PKWVMJFF.js.map +1 -0
- package/dist/{chunk-WXNDAONY.js → chunk-T3ZCEAHR.js} +3 -3
- package/dist/{chunk-WXNDAONY.js.map → chunk-T3ZCEAHR.js.map} +1 -1
- package/dist/{chunk-W73HBP7B.js → chunk-UQYGUZEP.js} +6 -6
- package/dist/{chunk-W73HBP7B.js.map → chunk-UQYGUZEP.js.map} +1 -1
- package/dist/{chunk-2C6CUHM3.js → chunk-XBIHI224.js} +3 -3
- package/dist/{chunk-2C6CUHM3.js.map → chunk-XBIHI224.js.map} +1 -1
- package/dist/{chunk-KIJDG6MG.js → chunk-Z5HU6MUG.js} +4 -4
- package/dist/{chunk-KIJDG6MG.js.map → chunk-Z5HU6MUG.js.map} +1 -1
- package/dist/config-SCVEDF5V.js +3 -0
- package/dist/{config-YHUOLDAL.js.map → config-SCVEDF5V.js.map} +1 -1
- package/dist/executions.js +5 -5
- package/dist/history.js +3 -3
- package/dist/index.d.ts +16 -5
- package/dist/index.js +25 -20
- package/dist/index.js.map +1 -1
- package/dist/settings.js +2 -2
- package/dist/templates.js +5 -5
- package/dist/{workflow-builder-CpdCzzst.d.ts → workflow-builder-DvbjeuIN.d.ts} +5 -1
- package/dist/workflow-builder.d.ts +1 -1
- package/dist/workflow-builder.js +6 -6
- package/dist/workflows-list.js +4 -4
- package/package.json +1 -1
- package/dist/ExecutionDetailPage-HPAU7U3E.js +0 -12
- package/dist/ExecutionsListPage-TLXVEIRK.js +0 -11
- package/dist/WorkflowsList-YSZWXFMZ.js +0 -14
- package/dist/chunk-3B5YEXSW.js.map +0 -1
- package/dist/chunk-F2BBRTLB.js.map +0 -1
- package/dist/chunk-I2766GDR.js.map +0 -1
- package/dist/chunk-W7APOU2R.js.map +0 -1
- package/dist/config-YHUOLDAL.js +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/history/pages/HistoryPage.tsx"],"names":[],"mappings":"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","file":"chunk-IOV4YPQU.js","sourcesContent":["/**\n * HistoryPage — cross-workflow version history.\n *\n * Fetches every version row in one paginated `workflowDefinitions` query\n * (latestOnly defaults to false, so the list API already returns one row per\n * version) and resolves \"Changed By\" ids to human names via the shared\n * actor-profile lookup.\n */\nimport { useState, useMemo, useCallback } from \"react\";\nimport { useNavigate } from \"react-router\";\nimport { Icon } from \"@iconify/react\";\nimport { Button } from \"@burdenoff/fe-libs/button\";\nimport {\n Skeleton,\n Input,\n Badge,\n Select,\n SelectTrigger,\n SelectValue,\n SelectContent,\n SelectItem,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n TooltipProvider,\n} from \"@burdenoff/fe-libs/ui\";\nimport {\n useActorProfiles,\n buildActorFallback,\n type ActorInput,\n} from \"@burdenoff/fe-libs/shared\";\nimport { useWorkflowDefinitions } from \"../../../hooks/useWorkflows\";\nimport { useTr } from \"../../../hooks/useTr\";\nimport { getFluidGridsConfig } from \"../../../config\";\n\n// ============================================================================\n// Constants\n// ============================================================================\n\nconst PAGE_SIZE = 20;\n\n/** Upper bound on version rows fetched for the screen (newest first). */\nconst FETCH_LIMIT = 500;\n\nfunction useStatusStyles() {\n const tr = useTr();\n return useMemo<\n Record<\n string,\n {\n label: string;\n variant: \"default\" | \"secondary\" | \"outline\" | \"destructive\";\n }\n >\n >(\n () => ({\n ACTIVE: {\n label: tr(\"fluidgrids.history.historyPage.statusActive\", \"Active\"),\n variant: \"default\",\n },\n DRAFT: {\n label: tr(\"fluidgrids.history.historyPage.statusDraft\", \"Draft\"),\n variant: \"secondary\",\n },\n ARCHIVED: {\n label: tr(\"fluidgrids.history.historyPage.statusArchived\", \"Archived\"),\n variant: \"outline\",\n },\n DEPRECATED: {\n label: tr(\n \"fluidgrids.history.historyPage.statusDeprecated\",\n \"Deprecated\",\n ),\n variant: \"destructive\",\n },\n }),\n [tr],\n );\n}\n\n// ============================================================================\n// Sub-Components\n// ============================================================================\n\nfunction HistoryTableSkeleton() {\n return (\n <div className=\"space-y-3\">\n {Array.from({ length: 6 }).map((_, i) => (\n <Skeleton\n key={i}\n className=\"h-14 w-full rounded-lg bg-card-foreground/10\"\n />\n ))}\n </div>\n );\n}\n\nfunction EmptyState() {\n const tr = useTr();\n return (\n <div className=\"flex flex-col items-center justify-center py-20 text-center\">\n <div className=\"rounded-full bg-background-secondary p-4 mb-4\">\n <Icon icon=\"mdi:history\" width={40} className=\"text-text-secondary\" />\n </div>\n <h3 className=\"text-lg font-semibold text-text-primary mb-2\">\n {tr(\"fluidgrids.history.historyPage.emptyTitle\", \"No version history\")}\n </h3>\n <p className=\"text-sm text-text-secondary max-w-md\">\n {tr(\n \"fluidgrids.history.historyPage.emptyHint\",\n \"Version history will appear here once you create and update workflows.\",\n )}\n </p>\n </div>\n );\n}\n\nfunction ErrorState({\n message,\n onRetry,\n}: {\n message: string;\n onRetry: () => void;\n}) {\n const tr = useTr();\n return (\n <div className=\"p-4 bg-[var(--color-status-error-bg-subtle)] border border-[var(--color-status-error-border)] rounded-lg\">\n <div className=\"flex items-center gap-2 text-[var(--color-status-error-text)]\">\n <Icon icon=\"mdi:alert-circle\" width={20} />\n <span className=\"font-medium\">\n {tr(\n \"fluidgrids.history.historyPage.errorHeading\",\n \"Error loading history\",\n )}\n </span>\n </div>\n <p className=\"mt-1 text-sm text-[var(--color-status-error-text)]\">\n {message}\n </p>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={onRetry}\n className=\"mt-3 border-[var(--color-status-error-border)] text-[var(--color-status-error-text)] hover:bg-[var(--color-status-error-bg-subtle)]\"\n >\n {tr(\"fluidgrids.history.historyPage.errorRetry\", \"Retry\")}\n </Button>\n </div>\n );\n}\n\nfunction StatCard({\n label,\n value,\n valueClassName,\n}: {\n label: string;\n value: number;\n valueClassName?: string;\n}) {\n return (\n <div className=\"p-3 rounded-lg bg-background-secondary border border-border-secondary\">\n <p className=\"text-xs text-text-secondary\">{label}</p>\n <p\n className={`text-xl font-bold ${valueClassName ?? \"text-text-primary\"}`}\n >\n {value}\n </p>\n </div>\n );\n}\n\n// ============================================================================\n// Main Component\n// ============================================================================\n\nexport function HistoryPage() {\n const tr = useTr();\n const navigate = useNavigate();\n const STATUS_STYLES = useStatusStyles();\n const [search, setSearch] = useState(\"\");\n const [workflowFilter, setWorkflowFilter] = useState<string>(\"all\");\n const [page, setPage] = useState(0);\n\n // One query returns every version row (latestOnly is false by default),\n // newest first — no per-workflow fan-out needed.\n const {\n workflows: versionRows,\n total,\n hasMore,\n loading,\n error,\n refetch,\n } = useWorkflowDefinitions({ limit: FETCH_LIMIT });\n\n const allRows = useMemo(\n () =>\n [...versionRows].sort(\n (a, b) =>\n new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime(),\n ),\n [versionRows],\n );\n\n // Distinct workflows (latest row per key) for the stat + filter dropdown.\n const distinctWorkflows = useMemo(() => {\n const byKey = new Map<string, { workflowKey: string; name: string }>();\n for (const row of allRows) {\n if (!byKey.has(row.workflowKey)) {\n byKey.set(row.workflowKey, {\n workflowKey: row.workflowKey,\n name: row.name,\n });\n }\n }\n return [...byKey.values()];\n }, [allRows]);\n\n // Resolve createdById → display names (workspace-scoped, cached, batched).\n const config = getFluidGridsConfig();\n const actorInputs = useMemo<ActorInput[]>(() => {\n const ids = new Set<string>();\n for (const row of allRows) {\n if (row.createdById) ids.add(row.createdById);\n }\n return [...ids].map((actorId) => ({ actorId, actorType: \"user\" }));\n }, [allRows]);\n const actorProfiles = useActorProfiles(actorInputs, {\n workspaceId: config.workspaceId || undefined,\n orgId: config.organizationId,\n authToken: config.authToken,\n });\n\n const changedByLabel = useCallback(\n (createdById?: string | null): string => {\n if (!createdById) return \"—\";\n return (\n actorProfiles[createdById]?.displayName ??\n buildActorFallback({ actorId: createdById, actorType: \"user\" })\n .displayName\n );\n },\n [actorProfiles],\n );\n\n // Filter rows\n const filteredRows = useMemo(() => {\n let rows = allRows;\n\n if (workflowFilter !== \"all\") {\n rows = rows.filter((r) => r.workflowKey === workflowFilter);\n }\n\n if (search.trim()) {\n const q = search.toLowerCase();\n rows = rows.filter(\n (r) =>\n r.name.toLowerCase().includes(q) ||\n r.version.toLowerCase().includes(q) ||\n r.workflowKey.toLowerCase().includes(q) ||\n changedByLabel(r.createdById).toLowerCase().includes(q),\n );\n }\n\n return rows;\n }, [allRows, workflowFilter, search, changedByLabel]);\n\n // Pagination\n const totalPages = Math.max(1, Math.ceil(filteredRows.length / PAGE_SIZE));\n const paginatedRows = filteredRows.slice(\n page * PAGE_SIZE,\n (page + 1) * PAGE_SIZE,\n );\n\n const handleNavigateToVersion = (workflowKey: string, version: string) => {\n navigate(`../workflow/${workflowKey}/${version}`);\n };\n\n const formatDate = (dateStr: string) => {\n try {\n return new Intl.DateTimeFormat(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n }).format(new Date(dateStr));\n } catch {\n return dateStr;\n }\n };\n\n const countByStatus = (status: string) =>\n allRows.filter((r) => r.status === status).length;\n\n return (\n <div className=\"p-4 sm:p-6 bg-background-primary min-h-screen\">\n {/* Header */}\n <div\n className=\"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6\"\n data-tour=\"fluidgrids-history-header\"\n >\n <div>\n <h1 className=\"text-2xl sm:text-3xl font-bold text-text-primary\">\n {tr(\"fluidgrids.history.historyPage.title\", \"Version History\")}\n </h1>\n <p className=\"text-text-secondary mt-1\">\n {tr(\n \"fluidgrids.history.historyPage.subtitle\",\n \"Track changes and versions across all workflows\",\n )}\n </p>\n </div>\n <div className=\"flex items-center gap-3\">\n <Button variant=\"outline\" onClick={() => refetch()}>\n <Icon icon=\"mdi:refresh\" className=\"mr-2\" width={16} />\n {tr(\"fluidgrids.history.historyPage.refreshButton\", \"Refresh\")}\n </Button>\n <Button variant=\"outline\" onClick={() => navigate(\"../list\")}>\n <Icon icon=\"mdi:arrow-left\" className=\"mr-2\" width={16} />\n {tr(\n \"fluidgrids.history.historyPage.backToWorkflowsButton\",\n \"Back to Workflows\",\n )}\n </Button>\n </div>\n </div>\n\n {/* Filters */}\n <div className=\"flex flex-col sm:flex-row gap-3 mb-6\">\n <div\n className=\"relative flex-1 max-w-sm\"\n data-tour=\"fluidgrids-history-search\"\n >\n <Icon\n icon=\"mdi:magnify\"\n width={18}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary\"\n />\n <Input\n placeholder={tr(\n \"fluidgrids.history.historyPage.searchPlaceholder\",\n \"Search by name, version, key, or author...\",\n )}\n value={search}\n onChange={(e) => {\n setSearch(e.target.value);\n setPage(0);\n }}\n className=\"pl-10 bg-background-secondary border-border-secondary\"\n />\n </div>\n <Select\n value={workflowFilter}\n onValueChange={(val) => {\n setWorkflowFilter(val);\n setPage(0);\n }}\n >\n <SelectTrigger\n className=\"w-[220px] bg-background-secondary border-border-secondary\"\n data-tour=\"fluidgrids-history-workflow-filter\"\n >\n <SelectValue\n placeholder={tr(\n \"fluidgrids.history.historyPage.workflowFilterPlaceholder\",\n \"All Workflows\",\n )}\n />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">\n {tr(\n \"fluidgrids.history.historyPage.workflowFilterAllOption\",\n \"All Workflows\",\n )}\n </SelectItem>\n {distinctWorkflows.map((w) => (\n <SelectItem key={w.workflowKey} value={w.workflowKey}>\n {w.name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n {/* Stats */}\n <div className=\"grid grid-cols-2 sm:grid-cols-5 gap-3 mb-6\">\n <StatCard\n label={tr(\n \"fluidgrids.history.historyPage.statTotalVersions\",\n \"Total Versions\",\n )}\n value={total || allRows.length}\n />\n <StatCard\n label={tr(\n \"fluidgrids.history.historyPage.statWorkflows\",\n \"Workflows\",\n )}\n value={distinctWorkflows.length}\n />\n <StatCard\n label={tr(\"fluidgrids.history.historyPage.statActive\", \"Active\")}\n value={countByStatus(\"ACTIVE\")}\n valueClassName=\"text-[var(--color-status-success-text)]\"\n />\n <StatCard\n label={tr(\"fluidgrids.history.historyPage.statDraft\", \"Draft\")}\n value={countByStatus(\"DRAFT\")}\n valueClassName=\"text-[var(--color-status-warning-text)]\"\n />\n <StatCard\n label={tr(\"fluidgrids.history.historyPage.statArchived\", \"Archived\")}\n value={countByStatus(\"ARCHIVED\")}\n />\n </div>\n\n {hasMore && (\n <p className=\"text-xs text-text-secondary mb-4\">\n {tr(\n \"fluidgrids.history.historyPage.partialResultsHint\",\n \"Showing the {{shown}} most recent versions of {{total}}.\",\n { shown: allRows.length, total: total ?? allRows.length },\n )}\n </p>\n )}\n\n {/* Error State */}\n {error && (\n <div className=\"mb-6\">\n <ErrorState message={error.message} onRetry={refetch} />\n </div>\n )}\n\n {/* Table */}\n {loading ? (\n <HistoryTableSkeleton />\n ) : filteredRows.length === 0 ? (\n <EmptyState />\n ) : (\n <div className=\"overflow-x-auto rounded-lg border border-border-secondary\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-border-secondary bg-background-secondary\">\n <th className=\"text-left px-4 py-3 font-medium text-text-secondary\">\n {tr(\n \"fluidgrids.history.historyPage.columnWorkflowName\",\n \"Workflow Name\",\n )}\n </th>\n <th className=\"text-left px-4 py-3 font-medium text-text-secondary\">\n {tr(\n \"fluidgrids.history.historyPage.columnVersion\",\n \"Version\",\n )}\n </th>\n <th className=\"text-left px-4 py-3 font-medium text-text-secondary\">\n {tr(\"fluidgrids.history.historyPage.columnStatus\", \"Status\")}\n </th>\n <th className=\"text-left px-4 py-3 font-medium text-text-secondary\">\n {tr(\n \"fluidgrids.history.historyPage.columnChangedBy\",\n \"Changed By\",\n )}\n </th>\n <th className=\"text-left px-4 py-3 font-medium text-text-secondary\">\n {tr(\n \"fluidgrids.history.historyPage.columnChangedAt\",\n \"Changed At\",\n )}\n </th>\n <th className=\"text-right px-4 py-3 font-medium text-text-secondary\">\n {tr(\n \"fluidgrids.history.historyPage.columnActions\",\n \"Actions\",\n )}\n </th>\n </tr>\n </thead>\n <tbody>\n {paginatedRows.map((row) => {\n const statusStyle =\n STATUS_STYLES[row.status] ?? STATUS_STYLES.DRAFT;\n return (\n <tr\n key={row.id}\n className=\"border-b border-border-secondary last:border-0 hover:bg-background-secondary/50 cursor-pointer transition-colors\"\n onClick={() =>\n handleNavigateToVersion(row.workflowKey, row.version)\n }\n >\n <td className=\"px-4 py-3\">\n <div className=\"flex items-center gap-2\">\n <Icon\n icon=\"mdi:workflow\"\n width={18}\n className=\"text-text-secondary\"\n />\n <div>\n <p className=\"font-medium text-text-primary\">\n {row.name}\n </p>\n <p className=\"text-xs text-text-secondary\">\n {row.workflowKey}\n </p>\n </div>\n </div>\n </td>\n <td className=\"px-4 py-3\">\n <code className=\"text-xs bg-background-secondary px-2 py-0.5 rounded text-text-primary\">\n {row.version}\n </code>\n </td>\n <td className=\"px-4 py-3\">\n <Badge variant={statusStyle.variant}>\n {statusStyle.label}\n </Badge>\n </td>\n <td className=\"px-4 py-3 text-text-secondary\">\n <div\n className=\"flex items-center gap-1.5\"\n title={row.createdById ?? undefined}\n >\n <Icon icon=\"mdi:account\" width={16} />\n <span className=\"truncate max-w-[160px]\">\n {changedByLabel(row.createdById)}\n </span>\n </div>\n </td>\n <td className=\"px-4 py-3 text-text-secondary\">\n {formatDate(row.updatedAt)}\n </td>\n <td className=\"px-4 py-3 text-right\">\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={(e) => {\n e.stopPropagation();\n handleNavigateToVersion(\n row.workflowKey,\n row.version,\n );\n }}\n className=\"p-1.5 rounded hover:bg-background-secondary text-text-secondary hover:text-text-primary transition-colors\"\n >\n <Icon icon=\"mdi:open-in-new\" width={16} />\n </button>\n </TooltipTrigger>\n <TooltipContent>\n {tr(\n \"fluidgrids.history.historyPage.openInBuilderTooltip\",\n \"Open in builder\",\n )}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n )}\n\n {/* Pagination */}\n {filteredRows.length > PAGE_SIZE && (\n <div className=\"flex items-center justify-between mt-4 px-1\">\n <p className=\"text-sm text-text-secondary\">\n Showing {page * PAGE_SIZE + 1}–\n {Math.min((page + 1) * PAGE_SIZE, filteredRows.length)} of{\" \"}\n {filteredRows.length}\n </p>\n <div className=\"flex gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n disabled={page === 0}\n onClick={() => setPage((p) => p - 1)}\n >\n <Icon icon=\"mdi:chevron-left\" width={16} />\n {tr(\n \"fluidgrids.history.historyPage.previousPageButton\",\n \"Previous\",\n )}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n disabled={page >= totalPages - 1}\n onClick={() => setPage((p) => p + 1)}\n >\n {tr(\"fluidgrids.history.historyPage.nextPageButton\", \"Next\")}\n <Icon icon=\"mdi:chevron-right\" width={16} />\n </Button>\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/modules/history/pages/HistoryPage.tsx"],"names":[],"mappings":"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","file":"chunk-M2YFTRLL.js","sourcesContent":["/**\n * HistoryPage — cross-workflow version history.\n *\n * Fetches every version row in one paginated `workflowDefinitions` query\n * (latestOnly defaults to false, so the list API already returns one row per\n * version) and resolves \"Changed By\" ids to human names via the shared\n * actor-profile lookup.\n */\nimport { useState, useMemo, useCallback } from \"react\";\nimport { useNavigate } from \"react-router\";\nimport { Icon } from \"@iconify/react\";\nimport { Button } from \"@burdenoff/fe-libs/button\";\nimport {\n Skeleton,\n Input,\n Badge,\n Select,\n SelectTrigger,\n SelectValue,\n SelectContent,\n SelectItem,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n TooltipProvider,\n} from \"@burdenoff/fe-libs/ui\";\nimport {\n useActorProfiles,\n buildActorFallback,\n type ActorInput,\n} from \"@burdenoff/fe-libs/shared\";\nimport { useWorkflowDefinitions } from \"../../../hooks/useWorkflows\";\nimport { useTr } from \"../../../hooks/useTr\";\nimport { getFluidGridsConfig } from \"../../../config\";\n\n// ============================================================================\n// Constants\n// ============================================================================\n\nconst PAGE_SIZE = 20;\n\n/** Upper bound on version rows fetched for the screen (newest first). */\nconst FETCH_LIMIT = 500;\n\nfunction useStatusStyles() {\n const tr = useTr();\n return useMemo<\n Record<\n string,\n {\n label: string;\n variant: \"default\" | \"secondary\" | \"outline\" | \"destructive\";\n }\n >\n >(\n () => ({\n ACTIVE: {\n label: tr(\"fluidgrids.history.historyPage.statusActive\", \"Active\"),\n variant: \"default\",\n },\n DRAFT: {\n label: tr(\"fluidgrids.history.historyPage.statusDraft\", \"Draft\"),\n variant: \"secondary\",\n },\n ARCHIVED: {\n label: tr(\"fluidgrids.history.historyPage.statusArchived\", \"Archived\"),\n variant: \"outline\",\n },\n DEPRECATED: {\n label: tr(\n \"fluidgrids.history.historyPage.statusDeprecated\",\n \"Deprecated\",\n ),\n variant: \"destructive\",\n },\n }),\n [tr],\n );\n}\n\n// ============================================================================\n// Sub-Components\n// ============================================================================\n\nfunction HistoryTableSkeleton() {\n return (\n <div className=\"space-y-3\">\n {Array.from({ length: 6 }).map((_, i) => (\n <Skeleton\n key={i}\n className=\"h-14 w-full rounded-lg bg-card-foreground/10\"\n />\n ))}\n </div>\n );\n}\n\nfunction EmptyState() {\n const tr = useTr();\n return (\n <div className=\"flex flex-col items-center justify-center py-20 text-center\">\n <div className=\"rounded-full bg-background-secondary p-4 mb-4\">\n <Icon icon=\"mdi:history\" width={40} className=\"text-text-secondary\" />\n </div>\n <h3 className=\"text-lg font-semibold text-text-primary mb-2\">\n {tr(\"fluidgrids.history.historyPage.emptyTitle\", \"No version history\")}\n </h3>\n <p className=\"text-sm text-text-secondary max-w-md\">\n {tr(\n \"fluidgrids.history.historyPage.emptyHint\",\n \"Version history will appear here once you create and update workflows.\",\n )}\n </p>\n </div>\n );\n}\n\nfunction ErrorState({\n message,\n onRetry,\n}: {\n message: string;\n onRetry: () => void;\n}) {\n const tr = useTr();\n return (\n <div className=\"p-4 bg-[var(--color-status-error-bg-subtle)] border border-[var(--color-status-error-border)] rounded-lg\">\n <div className=\"flex items-center gap-2 text-[var(--color-status-error-text)]\">\n <Icon icon=\"mdi:alert-circle\" width={20} />\n <span className=\"font-medium\">\n {tr(\n \"fluidgrids.history.historyPage.errorHeading\",\n \"Error loading history\",\n )}\n </span>\n </div>\n <p className=\"mt-1 text-sm text-[var(--color-status-error-text)]\">\n {message}\n </p>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={onRetry}\n className=\"mt-3 border-[var(--color-status-error-border)] text-[var(--color-status-error-text)] hover:bg-[var(--color-status-error-bg-subtle)]\"\n >\n {tr(\"fluidgrids.history.historyPage.errorRetry\", \"Retry\")}\n </Button>\n </div>\n );\n}\n\nfunction StatCard({\n label,\n value,\n valueClassName,\n}: {\n label: string;\n value: number;\n valueClassName?: string;\n}) {\n return (\n <div className=\"p-3 rounded-lg bg-background-secondary border border-border-secondary\">\n <p className=\"text-xs text-text-secondary\">{label}</p>\n <p\n className={`text-xl font-bold ${valueClassName ?? \"text-text-primary\"}`}\n >\n {value}\n </p>\n </div>\n );\n}\n\n// ============================================================================\n// Main Component\n// ============================================================================\n\nexport function HistoryPage() {\n const tr = useTr();\n const navigate = useNavigate();\n const STATUS_STYLES = useStatusStyles();\n const [search, setSearch] = useState(\"\");\n const [workflowFilter, setWorkflowFilter] = useState<string>(\"all\");\n const [page, setPage] = useState(0);\n\n // One query returns every version row (latestOnly is false by default),\n // newest first — no per-workflow fan-out needed.\n const {\n workflows: versionRows,\n total,\n hasMore,\n loading,\n error,\n refetch,\n } = useWorkflowDefinitions({ limit: FETCH_LIMIT });\n\n const allRows = useMemo(\n () =>\n [...versionRows].sort(\n (a, b) =>\n new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime(),\n ),\n [versionRows],\n );\n\n // Distinct workflows (latest row per key) for the stat + filter dropdown.\n const distinctWorkflows = useMemo(() => {\n const byKey = new Map<string, { workflowKey: string; name: string }>();\n for (const row of allRows) {\n if (!byKey.has(row.workflowKey)) {\n byKey.set(row.workflowKey, {\n workflowKey: row.workflowKey,\n name: row.name,\n });\n }\n }\n return [...byKey.values()];\n }, [allRows]);\n\n // Resolve createdById → display names (workspace-scoped, cached, batched).\n const config = getFluidGridsConfig();\n const actorInputs = useMemo<ActorInput[]>(() => {\n const ids = new Set<string>();\n for (const row of allRows) {\n if (row.createdById) ids.add(row.createdById);\n }\n return [...ids].map((actorId) => ({ actorId, actorType: \"user\" }));\n }, [allRows]);\n const actorProfiles = useActorProfiles(actorInputs, {\n workspaceId: config.workspaceId || undefined,\n orgId: config.organizationId,\n authToken: config.authToken,\n });\n\n const changedByLabel = useCallback(\n (createdById?: string | null): string => {\n if (!createdById) return \"—\";\n return (\n actorProfiles[createdById]?.displayName ??\n buildActorFallback({ actorId: createdById, actorType: \"user\" })\n .displayName\n );\n },\n [actorProfiles],\n );\n\n // Filter rows\n const filteredRows = useMemo(() => {\n let rows = allRows;\n\n if (workflowFilter !== \"all\") {\n rows = rows.filter((r) => r.workflowKey === workflowFilter);\n }\n\n if (search.trim()) {\n const q = search.toLowerCase();\n rows = rows.filter(\n (r) =>\n r.name.toLowerCase().includes(q) ||\n r.version.toLowerCase().includes(q) ||\n r.workflowKey.toLowerCase().includes(q) ||\n changedByLabel(r.createdById).toLowerCase().includes(q),\n );\n }\n\n return rows;\n }, [allRows, workflowFilter, search, changedByLabel]);\n\n // Pagination\n const totalPages = Math.max(1, Math.ceil(filteredRows.length / PAGE_SIZE));\n const paginatedRows = filteredRows.slice(\n page * PAGE_SIZE,\n (page + 1) * PAGE_SIZE,\n );\n\n const handleNavigateToVersion = (workflowKey: string, version: string) => {\n navigate(`../workflow/${workflowKey}/${version}`);\n };\n\n const formatDate = (dateStr: string) => {\n try {\n return new Intl.DateTimeFormat(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n }).format(new Date(dateStr));\n } catch {\n return dateStr;\n }\n };\n\n const countByStatus = (status: string) =>\n allRows.filter((r) => r.status === status).length;\n\n return (\n <div className=\"p-4 sm:p-6 bg-background-primary min-h-screen\">\n {/* Header */}\n <div\n className=\"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6\"\n data-tour=\"fluidgrids-history-header\"\n >\n <div>\n <h1 className=\"text-2xl sm:text-3xl font-bold text-text-primary\">\n {tr(\"fluidgrids.history.historyPage.title\", \"Version History\")}\n </h1>\n <p className=\"text-text-secondary mt-1\">\n {tr(\n \"fluidgrids.history.historyPage.subtitle\",\n \"Track changes and versions across all workflows\",\n )}\n </p>\n </div>\n <div className=\"flex items-center gap-3\">\n <Button variant=\"outline\" onClick={() => refetch()}>\n <Icon icon=\"mdi:refresh\" className=\"mr-2\" width={16} />\n {tr(\"fluidgrids.history.historyPage.refreshButton\", \"Refresh\")}\n </Button>\n <Button variant=\"outline\" onClick={() => navigate(\"../list\")}>\n <Icon icon=\"mdi:arrow-left\" className=\"mr-2\" width={16} />\n {tr(\n \"fluidgrids.history.historyPage.backToWorkflowsButton\",\n \"Back to Workflows\",\n )}\n </Button>\n </div>\n </div>\n\n {/* Filters */}\n <div className=\"flex flex-col sm:flex-row gap-3 mb-6\">\n <div\n className=\"relative flex-1 max-w-sm\"\n data-tour=\"fluidgrids-history-search\"\n >\n <Icon\n icon=\"mdi:magnify\"\n width={18}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary\"\n />\n <Input\n placeholder={tr(\n \"fluidgrids.history.historyPage.searchPlaceholder\",\n \"Search by name, version, key, or author...\",\n )}\n value={search}\n onChange={(e) => {\n setSearch(e.target.value);\n setPage(0);\n }}\n className=\"pl-10 bg-background-secondary border-border-secondary\"\n />\n </div>\n <Select\n value={workflowFilter}\n onValueChange={(val) => {\n setWorkflowFilter(val);\n setPage(0);\n }}\n >\n <SelectTrigger\n className=\"w-[220px] bg-background-secondary border-border-secondary\"\n data-tour=\"fluidgrids-history-workflow-filter\"\n >\n <SelectValue\n placeholder={tr(\n \"fluidgrids.history.historyPage.workflowFilterPlaceholder\",\n \"All Workflows\",\n )}\n />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">\n {tr(\n \"fluidgrids.history.historyPage.workflowFilterAllOption\",\n \"All Workflows\",\n )}\n </SelectItem>\n {distinctWorkflows.map((w) => (\n <SelectItem key={w.workflowKey} value={w.workflowKey}>\n {w.name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n {/* Stats */}\n <div className=\"grid grid-cols-2 sm:grid-cols-5 gap-3 mb-6\">\n <StatCard\n label={tr(\n \"fluidgrids.history.historyPage.statTotalVersions\",\n \"Total Versions\",\n )}\n value={total || allRows.length}\n />\n <StatCard\n label={tr(\n \"fluidgrids.history.historyPage.statWorkflows\",\n \"Workflows\",\n )}\n value={distinctWorkflows.length}\n />\n <StatCard\n label={tr(\"fluidgrids.history.historyPage.statActive\", \"Active\")}\n value={countByStatus(\"ACTIVE\")}\n valueClassName=\"text-[var(--color-status-success-text)]\"\n />\n <StatCard\n label={tr(\"fluidgrids.history.historyPage.statDraft\", \"Draft\")}\n value={countByStatus(\"DRAFT\")}\n valueClassName=\"text-[var(--color-status-warning-text)]\"\n />\n <StatCard\n label={tr(\"fluidgrids.history.historyPage.statArchived\", \"Archived\")}\n value={countByStatus(\"ARCHIVED\")}\n />\n </div>\n\n {hasMore && (\n <p className=\"text-xs text-text-secondary mb-4\">\n {tr(\n \"fluidgrids.history.historyPage.partialResultsHint\",\n \"Showing the {{shown}} most recent versions of {{total}}.\",\n { shown: allRows.length, total: total ?? allRows.length },\n )}\n </p>\n )}\n\n {/* Error State */}\n {error && (\n <div className=\"mb-6\">\n <ErrorState message={error.message} onRetry={refetch} />\n </div>\n )}\n\n {/* Table */}\n {loading ? (\n <HistoryTableSkeleton />\n ) : filteredRows.length === 0 ? (\n <EmptyState />\n ) : (\n <div className=\"overflow-x-auto rounded-lg border border-border-secondary\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-border-secondary bg-background-secondary\">\n <th className=\"text-left px-4 py-3 font-medium text-text-secondary\">\n {tr(\n \"fluidgrids.history.historyPage.columnWorkflowName\",\n \"Workflow Name\",\n )}\n </th>\n <th className=\"text-left px-4 py-3 font-medium text-text-secondary\">\n {tr(\n \"fluidgrids.history.historyPage.columnVersion\",\n \"Version\",\n )}\n </th>\n <th className=\"text-left px-4 py-3 font-medium text-text-secondary\">\n {tr(\"fluidgrids.history.historyPage.columnStatus\", \"Status\")}\n </th>\n <th className=\"text-left px-4 py-3 font-medium text-text-secondary\">\n {tr(\n \"fluidgrids.history.historyPage.columnChangedBy\",\n \"Changed By\",\n )}\n </th>\n <th className=\"text-left px-4 py-3 font-medium text-text-secondary\">\n {tr(\n \"fluidgrids.history.historyPage.columnChangedAt\",\n \"Changed At\",\n )}\n </th>\n <th className=\"text-right px-4 py-3 font-medium text-text-secondary\">\n {tr(\n \"fluidgrids.history.historyPage.columnActions\",\n \"Actions\",\n )}\n </th>\n </tr>\n </thead>\n <tbody>\n {paginatedRows.map((row) => {\n const statusStyle =\n STATUS_STYLES[row.status] ?? STATUS_STYLES.DRAFT;\n return (\n <tr\n key={row.id}\n className=\"border-b border-border-secondary last:border-0 hover:bg-background-secondary/50 cursor-pointer transition-colors\"\n onClick={() =>\n handleNavigateToVersion(row.workflowKey, row.version)\n }\n >\n <td className=\"px-4 py-3\">\n <div className=\"flex items-center gap-2\">\n <Icon\n icon=\"mdi:workflow\"\n width={18}\n className=\"text-text-secondary\"\n />\n <div>\n <p className=\"font-medium text-text-primary\">\n {row.name}\n </p>\n <p className=\"text-xs text-text-secondary\">\n {row.workflowKey}\n </p>\n </div>\n </div>\n </td>\n <td className=\"px-4 py-3\">\n <code className=\"text-xs bg-background-secondary px-2 py-0.5 rounded text-text-primary\">\n {row.version}\n </code>\n </td>\n <td className=\"px-4 py-3\">\n <Badge variant={statusStyle.variant}>\n {statusStyle.label}\n </Badge>\n </td>\n <td className=\"px-4 py-3 text-text-secondary\">\n <div\n className=\"flex items-center gap-1.5\"\n title={row.createdById ?? undefined}\n >\n <Icon icon=\"mdi:account\" width={16} />\n <span className=\"truncate max-w-[160px]\">\n {changedByLabel(row.createdById)}\n </span>\n </div>\n </td>\n <td className=\"px-4 py-3 text-text-secondary\">\n {formatDate(row.updatedAt)}\n </td>\n <td className=\"px-4 py-3 text-right\">\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={(e) => {\n e.stopPropagation();\n handleNavigateToVersion(\n row.workflowKey,\n row.version,\n );\n }}\n className=\"p-1.5 rounded hover:bg-background-secondary text-text-secondary hover:text-text-primary transition-colors\"\n >\n <Icon icon=\"mdi:open-in-new\" width={16} />\n </button>\n </TooltipTrigger>\n <TooltipContent>\n {tr(\n \"fluidgrids.history.historyPage.openInBuilderTooltip\",\n \"Open in builder\",\n )}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n )}\n\n {/* Pagination */}\n {filteredRows.length > PAGE_SIZE && (\n <div className=\"flex items-center justify-between mt-4 px-1\">\n <p className=\"text-sm text-text-secondary\">\n Showing {page * PAGE_SIZE + 1}–\n {Math.min((page + 1) * PAGE_SIZE, filteredRows.length)} of{\" \"}\n {filteredRows.length}\n </p>\n <div className=\"flex gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n disabled={page === 0}\n onClick={() => setPage((p) => p - 1)}\n >\n <Icon icon=\"mdi:chevron-left\" width={16} />\n {tr(\n \"fluidgrids.history.historyPage.previousPageButton\",\n \"Previous\",\n )}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n disabled={page >= totalPages - 1}\n onClick={() => setPage((p) => p + 1)}\n >\n {tr(\"fluidgrids.history.historyPage.nextPageButton\", \"Next\")}\n <Icon icon=\"mdi:chevron-right\" width={16} />\n </Button>\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -7,15 +7,15 @@ import { GetMyNodeInstallationsDocument, BrowseWorkflowTemplatesDocument, Instal
|
|
|
7
7
|
import { QuotaExhaustedDialog } from './chunk-AANIWER2.js';
|
|
8
8
|
import { SdkPermissionGate, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from './chunk-W23ZXNKU.js';
|
|
9
9
|
import { cn as cn$1 } from './chunk-3ZYUGTIT.js';
|
|
10
|
-
import { useWorkflowVersions, useRestoreWorkflowVersion, useActivateWorkflow, useDeleteWorkflow, useLazyWorkflowDefinition, useDeactivateWorkflow } from './chunk-
|
|
11
|
-
import { config, getFluidGridsConfig, validateTrustedOrigin, setFluidGridsConfig, resetFluidGridsConfig } from './chunk-
|
|
12
|
-
import { useFlowStore } from './chunk-
|
|
10
|
+
import { useWorkflowVersions, useRestoreWorkflowVersion, useActivateWorkflow, useDeleteWorkflow, useLazyWorkflowDefinition, useDeactivateWorkflow } from './chunk-XBIHI224.js';
|
|
11
|
+
import { config, getFluidGridsConfig, validateTrustedOrigin, resetFluidGridsExecutionState, setFluidGridsConfig, resetFluidGridsConfig } from './chunk-DFGJKGWH.js';
|
|
12
|
+
import { useFlowStore } from './chunk-47RAP7HT.js';
|
|
13
13
|
import { NodeEndpointConfigsDocument, NodeManifestDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, ExecuteStepDocument, TriggerWorkflowDocument, RunFromNodeDocument, ExecutionDetailDocument, WorkflowRunDocument, FluidgridsEntityTagsDocument, AvailableFluidgridsTagsDocument, SearchFluidgridsTagsDocument, TagFluidgridsEntityDocument, UntagFluidgridsEntityDocument, ReplaceFluidgridsEntityTagsDocument, CreateFluidgridsTagDocument, NodeSchemaIntrospectionDocument, useWorkflowPinnedDataQuery, usePinNodeDataMutation, useUnpinNodeDataMutation, useRunFromNodeEligibilityQuery, EventRegistrationsDocument, NodeUsageStatusDocument, RemoveNodeFromWorkflowsDocument } from './chunk-3P4YQ7DO.js';
|
|
14
14
|
import { throwIfResultError, describeOperationError } from './chunk-LMO5ASOE.js';
|
|
15
15
|
import { useTr, FluidGridsTranslationProvider, ENGLISH_FALLBACK_TRANSLATOR } from './chunk-7YWBH2A5.js';
|
|
16
16
|
import { waitForFluidGridsClient, getFluidGridsClient, getFluidGridsClientSafe, createFluidGridsClient, setFluidGridsClient, resetFluidGridsClient } from './chunk-ZBMMEE5U.js';
|
|
17
17
|
import * as React2 from 'react';
|
|
18
|
-
import React2__default, { forwardRef, useState, useImperativeHandle, useRef, useEffect, useMemo, memo, createContext, lazy, useCallback, useContext, useLayoutEffect, Suspense, useDeferredValue } from 'react';
|
|
18
|
+
import React2__default, { forwardRef, useState, useImperativeHandle, useRef, useEffect, useMemo, memo, createContext, lazy, useCallback, useSyncExternalStore, useContext, useLayoutEffect, Suspense, useDeferredValue } from 'react';
|
|
19
19
|
import { Textarea, Input, Button, Card, Badge, CardContent as CardContent$1, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuItem, DropdownMenuSeparator, Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription, Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, TooltipProvider, AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction, Popover, PopoverTrigger, PopoverContent, Tooltip, TooltipTrigger, TooltipContent, Toaster, Tabs, TabsList, TabsTrigger, TabsContent, CardHeader as CardHeader$1, CardTitle as CardTitle$1, CardDescription as CardDescription$1, ScrollArea, Label, Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from '@burdenoff/fe-libs/ui';
|
|
20
20
|
import { cn } from '@burdenoff/fe-libs/utils';
|
|
21
21
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -6060,6 +6060,8 @@ function FluidGridsProvider({
|
|
|
6060
6060
|
authToken,
|
|
6061
6061
|
workspaceToken,
|
|
6062
6062
|
workspaceId,
|
|
6063
|
+
productId,
|
|
6064
|
+
userId,
|
|
6063
6065
|
trustedOrigins,
|
|
6064
6066
|
tenantId,
|
|
6065
6067
|
organizationId,
|
|
@@ -6070,6 +6072,43 @@ function FluidGridsProvider({
|
|
|
6070
6072
|
children
|
|
6071
6073
|
}) {
|
|
6072
6074
|
validateTrustedOrigin(trustedOrigins);
|
|
6075
|
+
const [selection, setSelection] = useState(() => ({
|
|
6076
|
+
prop: productId,
|
|
6077
|
+
productId: productId ?? getFluidGridsConfig().productId
|
|
6078
|
+
}));
|
|
6079
|
+
if (selection.prop !== productId) {
|
|
6080
|
+
setSelection({ prop: productId, productId });
|
|
6081
|
+
}
|
|
6082
|
+
const resolvedProductId = selection.prop === productId ? selection.productId : productId;
|
|
6083
|
+
const identity = JSON.stringify([
|
|
6084
|
+
apiGatewayUrl,
|
|
6085
|
+
workspaceId,
|
|
6086
|
+
tenantId,
|
|
6087
|
+
resolvedProductId,
|
|
6088
|
+
userId
|
|
6089
|
+
]);
|
|
6090
|
+
const [readiness] = useState(() => {
|
|
6091
|
+
let activeIdentity2 = null;
|
|
6092
|
+
const listeners2 = /* @__PURE__ */ new Set();
|
|
6093
|
+
return {
|
|
6094
|
+
subscribe: (listener) => {
|
|
6095
|
+
listeners2.add(listener);
|
|
6096
|
+
return () => {
|
|
6097
|
+
listeners2.delete(listener);
|
|
6098
|
+
};
|
|
6099
|
+
},
|
|
6100
|
+
snapshot: () => activeIdentity2,
|
|
6101
|
+
set: (value) => {
|
|
6102
|
+
activeIdentity2 = value;
|
|
6103
|
+
for (const listener of listeners2) listener();
|
|
6104
|
+
}
|
|
6105
|
+
};
|
|
6106
|
+
});
|
|
6107
|
+
const activeIdentity = useSyncExternalStore(
|
|
6108
|
+
readiness.subscribe,
|
|
6109
|
+
readiness.snapshot,
|
|
6110
|
+
() => null
|
|
6111
|
+
);
|
|
6073
6112
|
const workspaceClient = useMemo(() => {
|
|
6074
6113
|
if (externalWorkspaceClient) {
|
|
6075
6114
|
return externalWorkspaceClient;
|
|
@@ -6083,6 +6122,7 @@ function FluidGridsProvider({
|
|
|
6083
6122
|
authToken,
|
|
6084
6123
|
workspaceToken,
|
|
6085
6124
|
workspaceId,
|
|
6125
|
+
productId: resolvedProductId,
|
|
6086
6126
|
tenantId
|
|
6087
6127
|
});
|
|
6088
6128
|
}
|
|
@@ -6094,6 +6134,7 @@ function FluidGridsProvider({
|
|
|
6094
6134
|
authToken,
|
|
6095
6135
|
workspaceToken,
|
|
6096
6136
|
workspaceId,
|
|
6137
|
+
resolvedProductId,
|
|
6097
6138
|
tenantId,
|
|
6098
6139
|
externalWorkspaceClient,
|
|
6099
6140
|
legacyClient
|
|
@@ -6120,6 +6161,14 @@ function FluidGridsProvider({
|
|
|
6120
6161
|
organizationId,
|
|
6121
6162
|
externalGlobalClient
|
|
6122
6163
|
]);
|
|
6164
|
+
useEffect(() => {
|
|
6165
|
+
resetFluidGridsExecutionState();
|
|
6166
|
+
readiness.set(identity);
|
|
6167
|
+
return () => {
|
|
6168
|
+
readiness.set(null);
|
|
6169
|
+
resetFluidGridsExecutionState();
|
|
6170
|
+
};
|
|
6171
|
+
}, [identity, readiness]);
|
|
6123
6172
|
useEffect(() => {
|
|
6124
6173
|
setFluidGridsClient(workspaceClient);
|
|
6125
6174
|
return () => {
|
|
@@ -6141,6 +6190,7 @@ function FluidGridsProvider({
|
|
|
6141
6190
|
globalApiUrl,
|
|
6142
6191
|
authToken,
|
|
6143
6192
|
workspaceId,
|
|
6193
|
+
productId: resolvedProductId,
|
|
6144
6194
|
trustedOrigins,
|
|
6145
6195
|
tenantId,
|
|
6146
6196
|
organizationId
|
|
@@ -6153,6 +6203,7 @@ function FluidGridsProvider({
|
|
|
6153
6203
|
globalApiUrl,
|
|
6154
6204
|
authToken,
|
|
6155
6205
|
workspaceId,
|
|
6206
|
+
resolvedProductId,
|
|
6156
6207
|
trustedOrigins,
|
|
6157
6208
|
tenantId,
|
|
6158
6209
|
organizationId
|
|
@@ -6163,6 +6214,8 @@ function FluidGridsProvider({
|
|
|
6163
6214
|
globalApiUrl,
|
|
6164
6215
|
authToken,
|
|
6165
6216
|
workspaceId,
|
|
6217
|
+
productId: resolvedProductId,
|
|
6218
|
+
userId,
|
|
6166
6219
|
trustedOrigins,
|
|
6167
6220
|
tenantId,
|
|
6168
6221
|
organizationId,
|
|
@@ -6175,6 +6228,8 @@ function FluidGridsProvider({
|
|
|
6175
6228
|
globalApiUrl,
|
|
6176
6229
|
authToken,
|
|
6177
6230
|
workspaceId,
|
|
6231
|
+
resolvedProductId,
|
|
6232
|
+
userId,
|
|
6178
6233
|
trustedOrigins,
|
|
6179
6234
|
tenantId,
|
|
6180
6235
|
organizationId,
|
|
@@ -6185,7 +6240,7 @@ function FluidGridsProvider({
|
|
|
6185
6240
|
// previous language until remount.
|
|
6186
6241
|
t
|
|
6187
6242
|
]);
|
|
6188
|
-
return /* @__PURE__ */ jsx(FluidGridsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(FluidGridsTranslationProvider, { t: t ?? ENGLISH_FALLBACK_TRANSLATOR, children: /* @__PURE__ */ jsx(ApolloProvider, { client: workspaceClient, children }) }) });
|
|
6243
|
+
return /* @__PURE__ */ jsx(FluidGridsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(FluidGridsTranslationProvider, { t: t ?? ENGLISH_FALLBACK_TRANSLATOR, children: /* @__PURE__ */ jsx(ApolloProvider, { client: workspaceClient, children: activeIdentity === identity ? children : null }) }) });
|
|
6189
6244
|
}
|
|
6190
6245
|
function useFluidGridsContext() {
|
|
6191
6246
|
const context = useContext(FluidGridsContext);
|
|
@@ -10833,7 +10888,7 @@ function DesktopSidebarFragment({
|
|
|
10833
10888
|
if (nodesToInstall.length > 0) {
|
|
10834
10889
|
const { getGlobalStoreClient: getStore } = await import('./global-client-OW43ZRDR.js');
|
|
10835
10890
|
const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-IMNN4YME.js');
|
|
10836
|
-
const { getFluidGridsConfig: getFluidGridsConfig3 } = await import('./config-
|
|
10891
|
+
const { getFluidGridsConfig: getFluidGridsConfig3 } = await import('./config-SCVEDF5V.js');
|
|
10837
10892
|
const storeClient = getStore();
|
|
10838
10893
|
const cfg = getFluidGridsConfig3();
|
|
10839
10894
|
for (let i = 0; i < nodesToInstall.length; i++) {
|
|
@@ -10889,7 +10944,7 @@ function DesktopSidebarFragment({
|
|
|
10889
10944
|
);
|
|
10890
10945
|
}
|
|
10891
10946
|
const { getFluidGridsClient: getFluidGridsClient2 } = await import('./client-YFAZ23OL.js');
|
|
10892
|
-
const { getFluidGridsConfig: getFluidGridsConfig2 } = await import('./config-
|
|
10947
|
+
const { getFluidGridsConfig: getFluidGridsConfig2 } = await import('./config-SCVEDF5V.js');
|
|
10893
10948
|
const { gql: gql10 } = await import('@apollo/client/core');
|
|
10894
10949
|
const IMPORT_MUTATION = gql10`
|
|
10895
10950
|
mutation ImportWorkflowTemplate(
|
|
@@ -25431,5 +25486,5 @@ var FlowBuilderPage = ({
|
|
|
25431
25486
|
};
|
|
25432
25487
|
|
|
25433
25488
|
export { Card2 as Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ConnectionFormDialog, ConnectionSelector, EntityTagPicker, FLUIDGRIDS_ENTITY_TYPES, FlowBuilderPage, FluidGridsMark, FluidGridsProvider, TemplateCard, buildNodeCheck, buildRequiredNodeTypes, listCustomBlocks, mergeStickyNotes, refetchStoreNodes, registerCustomBlock, resolveUiSpec, stripSubmitActions, tagLabel, useAvailableTags, useConnection, useConnections, useConnectionsByProvider, useCreateConnection, useCreateTag, useDraftEntityTags, useEntityTags, useFluidGridsContext, useImportWorkflowTemplate, useInitiateOAuth, useInstalledNodes, useNodeExecution, useProviders, useReplaceEntityTags, useSearchTags, useTagEntity, useUntagEntity, useWorkflowTemplates };
|
|
25434
|
-
//# sourceMappingURL=chunk-
|
|
25435
|
-
//# sourceMappingURL=chunk-
|
|
25489
|
+
//# sourceMappingURL=chunk-OJ3AVTEY.js.map
|
|
25490
|
+
//# sourceMappingURL=chunk-OJ3AVTEY.js.map
|