@burdenoff/fluidgrids-fe-sdk 2026.923.8 → 2026.924.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.
@@ -5943,7 +5943,7 @@ function NodePropertyPanel({
5943
5943
  const sampleData2 = useMemo(() => {
5944
5944
  return data?.args?.state ?? {};
5945
5945
  }, [data?.args?.state]);
5946
- const fetchScheduledJobs = useCallback(async () => {
5946
+ useCallback(async () => {
5947
5947
  try {
5948
5948
  setIsLoading(true);
5949
5949
  const response = await fetch(
@@ -5977,9 +5977,6 @@ function NodePropertyPanel({
5977
5977
  setIsLoading(false);
5978
5978
  }
5979
5979
  }, [id]);
5980
- useEffect(() => {
5981
- fetchScheduledJobs();
5982
- }, [fetchScheduledJobs]);
5983
5980
  useEffect(() => {
5984
5981
  const filtered = scheduledJobs.filter((job) => {
5985
5982
  const searchLower = searchTerm.toLowerCase();
@@ -12015,8 +12012,8 @@ function DesktopSidebarFragment({
12015
12012
  }
12016
12013
  const { getFluidGridsClient: getFluidGridsClient2 } = await import('./client-AMUUS7VE.js');
12017
12014
  const { getFluidGridsConfig: getFluidGridsConfig2 } = await import('./config-5UMLMALY.js');
12018
- const { gql: gql10 } = await import('@apollo/client/core');
12019
- const IMPORT_MUTATION = gql10`
12015
+ const { gql: gql11 } = await import('@apollo/client/core');
12016
+ const IMPORT_MUTATION = gql11`
12020
12017
  mutation ImportWorkflowTemplate(
12021
12018
  $input: ImportWorkflowTemplateInput!
12022
12019
  ) {
@@ -12162,8 +12159,8 @@ function DesktopSidebarFragment({
12162
12159
  { id: "template-load" }
12163
12160
  );
12164
12161
  const { getGlobalStoreClient: getGlobalStoreClient2 } = await import('./global-client-OW43ZRDR.js');
12165
- const { gql: gql10 } = await import('@apollo/client/core');
12166
- const GET_TEMPLATE_DETAIL = gql10`
12162
+ const { gql: gql11 } = await import('@apollo/client/core');
12163
+ const GET_TEMPLATE_DETAIL = gql11`
12167
12164
  query GetWorkflowTemplateDetail($id: ID!) {
12168
12165
  product(id: $id) {
12169
12166
  id
@@ -22339,6 +22336,161 @@ function WebhookUrlField({ webhookUrl, loading }) {
22339
22336
  ) })
22340
22337
  ] });
22341
22338
  }
22339
+ var LIST_WORKFLOWS_QUERY = gql`
22340
+ query ListWorkflowDefinitionsForPicker($limit: Int, $offset: Int) {
22341
+ workflowDefinitions(input: { limit: $limit, offset: $offset }) {
22342
+ items {
22343
+ id
22344
+ workflowKey
22345
+ name
22346
+ version
22347
+ status
22348
+ }
22349
+ }
22350
+ }
22351
+ `;
22352
+ function WorkflowPickerField({
22353
+ value,
22354
+ onChange,
22355
+ testId
22356
+ }) {
22357
+ const tr = useTr();
22358
+ const [workflows, setWorkflows] = useState([]);
22359
+ const [loading, setLoading] = useState(false);
22360
+ const [failed, setFailed] = useState(false);
22361
+ const [search, setSearch] = useState("");
22362
+ const [open, setOpen] = useState(false);
22363
+ const load = useCallback(async () => {
22364
+ const client = getFluidGridsClient();
22365
+ if (!client) {
22366
+ setFailed(true);
22367
+ return;
22368
+ }
22369
+ setLoading(true);
22370
+ try {
22371
+ const result = await client.query({
22372
+ query: LIST_WORKFLOWS_QUERY,
22373
+ variables: { limit: 200, offset: 0 },
22374
+ fetchPolicy: "cache-first"
22375
+ });
22376
+ const data = result.data;
22377
+ setWorkflows(
22378
+ (data?.workflowDefinitions?.items ?? []).map((w) => ({
22379
+ workflowKey: w.workflowKey,
22380
+ name: w.name || w.workflowKey,
22381
+ version: w.version,
22382
+ status: w.status
22383
+ }))
22384
+ );
22385
+ setFailed(false);
22386
+ } catch {
22387
+ setFailed(true);
22388
+ } finally {
22389
+ setLoading(false);
22390
+ }
22391
+ }, []);
22392
+ useEffect(() => {
22393
+ void load();
22394
+ }, [load]);
22395
+ const byKey = /* @__PURE__ */ new Map();
22396
+ for (const workflow of workflows) {
22397
+ const existing = byKey.get(workflow.workflowKey);
22398
+ if (!existing || workflow.status === "ACTIVE" && existing.status !== "ACTIVE") {
22399
+ byKey.set(workflow.workflowKey, workflow);
22400
+ }
22401
+ }
22402
+ const options = [...byKey.values()].filter((w) => {
22403
+ const needle = search.trim().toLowerCase();
22404
+ if (!needle) return true;
22405
+ return w.name.toLowerCase().includes(needle) || w.workflowKey.toLowerCase().includes(needle);
22406
+ });
22407
+ const selected = byKey.get(value);
22408
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", "data-testid": testId, children: [
22409
+ /* @__PURE__ */ jsxs(
22410
+ "button",
22411
+ {
22412
+ type: "button",
22413
+ onClick: () => setOpen((o) => !o),
22414
+ className: "flex items-center justify-between gap-2 rounded-md border border-input bg-background px-2.5 py-1.5 text-left text-sm outline-none transition-colors hover:border-primary",
22415
+ children: [
22416
+ /* @__PURE__ */ jsx("span", { className: cn("truncate", !value && "text-muted-foreground"), children: selected ? `${selected.name} (${selected.workflowKey.slice(0, 8)}\u2026)` : value || tr(
22417
+ "fluidgrids.builder.workflowPicker.placeholder",
22418
+ "Select a workflow to call"
22419
+ ) }),
22420
+ /* @__PURE__ */ jsx(
22421
+ Icon,
22422
+ {
22423
+ icon: open ? "mdi:chevron-up" : "mdi:chevron-down",
22424
+ className: "h-4 w-4 shrink-0 text-muted-foreground"
22425
+ }
22426
+ )
22427
+ ]
22428
+ }
22429
+ ),
22430
+ open && /* @__PURE__ */ jsxs("div", { className: "rounded-md border border-border bg-background p-2", children: [
22431
+ /* @__PURE__ */ jsx(
22432
+ "input",
22433
+ {
22434
+ autoFocus: true,
22435
+ value: search,
22436
+ onChange: (e) => setSearch(e.target.value),
22437
+ placeholder: tr(
22438
+ "fluidgrids.builder.workflowPicker.search",
22439
+ "Search workflows"
22440
+ ),
22441
+ className: "mb-2 w-full rounded-md border border-input bg-background px-2 py-1 text-sm outline-none focus:border-primary"
22442
+ }
22443
+ ),
22444
+ loading && /* @__PURE__ */ jsx("div", { className: "px-2 py-1.5 text-xs text-muted-foreground", children: tr("fluidgrids.builder.workflowPicker.loading", "Loading\u2026") }),
22445
+ !loading && options.length === 0 && /* @__PURE__ */ jsx("div", { className: "px-2 py-1.5 text-xs text-muted-foreground", children: failed ? tr(
22446
+ "fluidgrids.builder.workflowPicker.failed",
22447
+ "Could not load workflows \u2014 enter a workflow key below."
22448
+ ) : tr(
22449
+ "fluidgrids.builder.workflowPicker.empty",
22450
+ "No workflows found"
22451
+ ) }),
22452
+ /* @__PURE__ */ jsx("div", { className: "max-h-48 overflow-y-auto", children: options.map((workflow) => /* @__PURE__ */ jsxs(
22453
+ "button",
22454
+ {
22455
+ type: "button",
22456
+ onClick: () => {
22457
+ onChange(workflow.workflowKey);
22458
+ setOpen(false);
22459
+ setSearch("");
22460
+ },
22461
+ className: cn(
22462
+ "flex w-full flex-col items-start gap-0.5 rounded px-2 py-1.5 text-left hover:bg-muted",
22463
+ workflow.workflowKey === value && "bg-muted"
22464
+ ),
22465
+ children: [
22466
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground", children: workflow.name }),
22467
+ /* @__PURE__ */ jsxs("span", { className: "font-mono text-[10px] text-muted-foreground", children: [
22468
+ workflow.workflowKey,
22469
+ " \xB7 v",
22470
+ workflow.version,
22471
+ " \xB7",
22472
+ " ",
22473
+ workflow.status
22474
+ ] })
22475
+ ]
22476
+ },
22477
+ workflow.workflowKey
22478
+ )) })
22479
+ ] }),
22480
+ /* @__PURE__ */ jsx(
22481
+ "input",
22482
+ {
22483
+ value,
22484
+ onChange: (e) => onChange(e.target.value),
22485
+ placeholder: tr(
22486
+ "fluidgrids.builder.workflowPicker.manual",
22487
+ "\u2026or paste a workflow key"
22488
+ ),
22489
+ className: "w-full rounded-md border border-input bg-background px-2.5 py-1.5 font-mono text-xs outline-none focus:border-primary"
22490
+ }
22491
+ )
22492
+ ] });
22493
+ }
22342
22494
  var LOAD_NODE_OPTIONS = gql`
22343
22495
  query LoadNodeOptions(
22344
22496
  $nodeType: String!
@@ -23023,6 +23175,26 @@ function NodeParamsForm({
23023
23175
  )
23024
23176
  ] }, p.name);
23025
23177
  }
23178
+ if (p.type === "workflow" || nodeType === "internal:subworkflow" && p.name === "workflowKey") {
23179
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
23180
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
23181
+ /* @__PURE__ */ jsx("label", { className: "text-xs font-medium text-foreground", children: tr(
23182
+ "fluidgrids.builder.nodeParamsForm.workflowLabel",
23183
+ "Workflow to call"
23184
+ ) }),
23185
+ p.required && /* @__PURE__ */ jsx("span", { className: "text-destructive", children: "*" })
23186
+ ] }),
23187
+ /* @__PURE__ */ jsx(
23188
+ WorkflowPickerField,
23189
+ {
23190
+ value: typeof argsState[p.name] === "string" ? argsState[p.name] : "",
23191
+ onChange: (workflowKey) => writeFixed(p.name, workflowKey),
23192
+ testId: `${testIdPrefix}-workflow-picker`
23193
+ }
23194
+ ),
23195
+ p.description && /* @__PURE__ */ jsx("span", { className: "text-[11px] leading-snug text-muted-foreground", children: p.description })
23196
+ ] }, p.name);
23197
+ }
23026
23198
  const mode = modeByField[p.name] ?? (mapping[p.name] !== void 0 ? "expression" : "fixed");
23027
23199
  const exprValue = mapping[p.name] ?? "";
23028
23200
  const fixedValue = argsState[p.name];
@@ -25817,5 +25989,5 @@ var FlowBuilderPage = ({
25817
25989
  };
25818
25990
 
25819
25991
  export { Card2 as Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ConnectionFormDialog, ConnectionSelector, EntityTagPicker, FLUIDGRIDS_ENTITY_TYPES, FlowBuilderPage, FluidGridsProvider, ProviderPicker, SchemaConnectionForm, ScopePicker, TemplateCard, buildNodeCheck, buildRequiredNodeTypes, listCustomBlocks, mergeStickyNotes, refetchStoreNodes, registerCustomBlock, resolveUiSpec, stripSubmitActions, tagLabel, useAvailableTags, useConnection, useConnectionDialog, useConnections, useConnectionsByProvider, useCreateConnection, useCreateTag, useDraftEntityTags, useEntityTags, useFluidGridsContext, useImportWorkflowTemplate, useInitiateOAuth, useInstalledNodes, useNodeExecution, useProviderByKey, useProviderCatalog, useProviders, useReplaceEntityTags, useSearchTags, useTagEntity, useUntagEntity, useWorkflowTemplates };
25820
- //# sourceMappingURL=chunk-LETX2CLF.js.map
25821
- //# sourceMappingURL=chunk-LETX2CLF.js.map
25992
+ //# sourceMappingURL=chunk-KUPUHY7N.js.map
25993
+ //# sourceMappingURL=chunk-KUPUHY7N.js.map