@datatechsolutions/ui 2.11.44 → 2.11.47

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.
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkKEUOCEOO_js = require('./chunk-KEUOCEOO.js');
4
+ var chunk2IOPJ5BM_js = require('./chunk-2IOPJ5BM.js');
5
5
  var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
6
6
  var chunkP4YYEM4B_js = require('./chunk-P4YYEM4B.js');
7
7
  var chunkPWBWP5FJ_js = require('./chunk-PWBWP5FJ.js');
@@ -1218,7 +1218,8 @@ function DatasourceNodeConfigForm({
1218
1218
  onCancel,
1219
1219
  datasources,
1220
1220
  onLoadTables,
1221
- onLoadSchema
1221
+ onLoadSchema,
1222
+ readOnly = false
1222
1223
  }) {
1223
1224
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow.datasourceNodeConfig");
1224
1225
  const [activeSectionId, setActiveSectionId] = react.useState("connection");
@@ -1340,9 +1341,12 @@ function DatasourceNodeConfigForm({
1340
1341
  {
1341
1342
  type: "button",
1342
1343
  onClick: () => {
1343
- handleDatasourceChange(datasource.id);
1344
- setActiveSectionId("table");
1344
+ if (!readOnly) {
1345
+ handleDatasourceChange(datasource.id);
1346
+ setActiveSectionId("table");
1347
+ }
1345
1348
  },
1349
+ disabled: readOnly && datasource.id !== selectedDatasourceId,
1346
1350
  className: `flex items-center gap-3 rounded-xl border px-3 py-2.5 text-left transition-all ${isSelected ? "border-cyan-500/50 bg-cyan-500/5 ring-1 ring-cyan-500/20 dark:border-cyan-400/40 dark:bg-cyan-400/5" : "border-gray-200 bg-white hover:border-gray-300 hover:shadow-sm dark:border-white/10 dark:bg-white/[0.03] dark:hover:border-white/20"}`,
1347
1351
  children: [
1348
1352
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center", children: logo2 ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo2, alt: datasource.dialect, className: "h-7 w-7" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ServerStackIcon, { className: "h-6 w-6 text-gray-400" }) }),
@@ -1384,8 +1388,10 @@ function DatasourceNodeConfigForm({
1384
1388
  {
1385
1389
  type: "button",
1386
1390
  onClick: () => {
1387
- handleTableChange(table);
1388
- setActiveSectionId("columns");
1391
+ if (!readOnly) {
1392
+ handleTableChange(table);
1393
+ setActiveSectionId("columns");
1394
+ }
1389
1395
  },
1390
1396
  className: `flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${isSelected ? "bg-cyan-500/10 font-semibold text-cyan-700 dark:text-cyan-300" : "text-gray-700 hover:bg-gray-100/60 dark:text-gray-300 dark:hover:bg-white/5"}`,
1391
1397
  children: [
@@ -1409,7 +1415,7 @@ function DatasourceNodeConfigForm({
1409
1415
  availableColumns.length,
1410
1416
  " selected"
1411
1417
  ] }),
1412
- /* @__PURE__ */ jsxRuntime.jsx(
1418
+ !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
1413
1419
  "button",
1414
1420
  {
1415
1421
  type: "button",
@@ -1443,7 +1449,9 @@ function DatasourceNodeConfigForm({
1443
1449
  "button",
1444
1450
  {
1445
1451
  type: "button",
1446
- onClick: () => handleToggleColumn(column.name),
1452
+ onClick: () => {
1453
+ if (!readOnly) handleToggleColumn(column.name);
1454
+ },
1447
1455
  className: `flex w-full items-center gap-2 rounded-lg px-3 py-1.5 text-left transition-colors ${isSelected ? "bg-cyan-500/8 dark:bg-cyan-400/5" : "hover:bg-gray-100/60 dark:hover:bg-white/5"}`,
1448
1456
  children: [
1449
1457
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors ${isSelected ? "border-cyan-500 bg-cyan-500 dark:border-cyan-400 dark:bg-cyan-400" : "border-gray-300 dark:border-gray-600"}`, children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-2.5 w-2.5 text-white" }) }),
@@ -1464,7 +1472,7 @@ function DatasourceNodeConfigForm({
1464
1472
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
1465
1473
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1466
1474
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("filtersHelp") }),
1467
- /* @__PURE__ */ jsxRuntime.jsxs(
1475
+ !readOnly && /* @__PURE__ */ jsxRuntime.jsxs(
1468
1476
  "button",
1469
1477
  {
1470
1478
  type: "button",
@@ -1498,7 +1506,8 @@ function DatasourceNodeConfigForm({
1498
1506
  {
1499
1507
  value: columnName,
1500
1508
  onChange: (event) => handleUpdateFilterField(variableName, event.target.value),
1501
- className: "flex-1 rounded bg-transparent text-xs text-gray-900 outline-none dark:text-white",
1509
+ disabled: readOnly,
1510
+ className: "flex-1 rounded bg-transparent text-xs text-gray-900 outline-none disabled:opacity-60 dark:text-white",
1502
1511
  children: [
1503
1512
  /* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: t("columnName") }),
1504
1513
  availableColumns.map((column) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: column.name, children: column.name }, column.name))
@@ -1513,10 +1522,11 @@ function DatasourceNodeConfigForm({
1513
1522
  value: variableName,
1514
1523
  onChange: (event) => handleUpdateFilterVariable(variableName, event.target.value),
1515
1524
  placeholder: t("variableReference"),
1525
+ readOnly,
1516
1526
  className: "flex-1 bg-transparent text-xs text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500"
1517
1527
  }
1518
1528
  ),
1519
- /* @__PURE__ */ jsxRuntime.jsx(
1529
+ !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
1520
1530
  "button",
1521
1531
  {
1522
1532
  type: "button",
@@ -1541,6 +1551,7 @@ function DatasourceNodeConfigForm({
1541
1551
  value: outputVariable,
1542
1552
  onChange: (event) => setOutputVariable(event.target.value),
1543
1553
  placeholder: "datasourceResult",
1554
+ readOnly,
1544
1555
  className: "flex-1 bg-transparent text-sm text-gray-900 outline-none placeholder:text-gray-400 dark:text-white dark:placeholder:text-gray-500"
1545
1556
  }
1546
1557
  )
@@ -1557,6 +1568,7 @@ function DatasourceNodeConfigForm({
1557
1568
  onChange: (event) => setLimit(Math.max(1, Number.parseInt(event.target.value, 10) || 1)),
1558
1569
  min: 1,
1559
1570
  max: 1e4,
1571
+ readOnly,
1560
1572
  className: "w-32 rounded-xl border border-gray-200 bg-white px-3 py-2.5 text-sm text-gray-900 outline-none focus:border-cyan-400 dark:border-white/10 dark:bg-white/[0.03] dark:text-white"
1561
1573
  }
1562
1574
  )
@@ -1608,7 +1620,7 @@ function DatasourceNodeConfigForm({
1608
1620
  }
1609
1621
  const logo = getDatasourceLogo(selectedDatasourceId, selectedDatasource?.dialect);
1610
1622
  return /* @__PURE__ */ jsxRuntime.jsx(
1611
- chunkKEUOCEOO_js.GlassModal,
1623
+ chunk2IOPJ5BM_js.GlassModal,
1612
1624
  {
1613
1625
  open,
1614
1626
  onClose: onCancel,
@@ -1622,10 +1634,10 @@ function DatasourceNodeConfigForm({
1622
1634
  activeSectionId,
1623
1635
  onSectionChange: setActiveSectionId
1624
1636
  },
1625
- footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 px-6 py-3", children: [
1626
- /* @__PURE__ */ jsxRuntime.jsx(chunkKEUOCEOO_js.Button, { outline: true, onClick: onCancel, children: t("cancel") }),
1627
- /* @__PURE__ */ jsxRuntime.jsx(chunkKEUOCEOO_js.Button, { color: "cyan", onClick: handleSave, disabled: !canSave, children: t("save") })
1628
- ] }),
1637
+ footer: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end gap-2 px-6 py-3", children: readOnly ? /* @__PURE__ */ jsxRuntime.jsx(chunk2IOPJ5BM_js.Button, { outline: true, onClick: onCancel, children: "Close" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1638
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2IOPJ5BM_js.Button, { outline: true, onClick: onCancel, children: t("cancel") }),
1639
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2IOPJ5BM_js.Button, { color: "cyan", onClick: handleSave, disabled: !canSave, children: t("save") })
1640
+ ] }) }),
1629
1641
  children: renderSection()
1630
1642
  }
1631
1643
  );
@@ -2131,7 +2143,7 @@ var AgentToolFlowNode = react.memo(function AgentToolFlowNode2({ id, data, selec
2131
2143
  event.stopPropagation();
2132
2144
  },
2133
2145
  children: /* @__PURE__ */ jsxRuntime.jsx(
2134
- chunkKEUOCEOO_js.ToggleSwitch,
2146
+ chunk2IOPJ5BM_js.ToggleSwitch,
2135
2147
  {
2136
2148
  checked: Boolean(agentTool.enabled),
2137
2149
  onChange: () => data.onToggle?.(agentTool),
@@ -2239,7 +2251,7 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
2239
2251
  event.preventDefault();
2240
2252
  },
2241
2253
  children: /* @__PURE__ */ jsxRuntime.jsx(
2242
- chunkKEUOCEOO_js.ToggleSwitch,
2254
+ chunk2IOPJ5BM_js.ToggleSwitch,
2243
2255
  {
2244
2256
  checked: Boolean(tool.enabled),
2245
2257
  onChange: () => onToggle(tool),
@@ -2391,7 +2403,7 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
2391
2403
  event.preventDefault();
2392
2404
  },
2393
2405
  children: /* @__PURE__ */ jsxRuntime.jsx(
2394
- chunkKEUOCEOO_js.ToggleSwitch,
2406
+ chunk2IOPJ5BM_js.ToggleSwitch,
2395
2407
  {
2396
2408
  checked: Boolean(rule.enabled),
2397
2409
  onChange: () => onToggle(rule),
@@ -3389,7 +3401,7 @@ var DatasourceFlowNode = react.memo(function DatasourceFlowNode2({ id, data, sel
3389
3401
  event.preventDefault();
3390
3402
  },
3391
3403
  children: /* @__PURE__ */ jsxRuntime.jsx(
3392
- chunkKEUOCEOO_js.ToggleSwitch,
3404
+ chunk2IOPJ5BM_js.ToggleSwitch,
3393
3405
  {
3394
3406
  checked: true,
3395
3407
  onChange: () => {
@@ -3433,7 +3445,7 @@ var DatasourceFlowNode = react.memo(function DatasourceFlowNode2({ id, data, sel
3433
3445
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3434
3446
  /* @__PURE__ */ jsxRuntime.jsx(NodeRunningIndicator, { nodeId: id }),
3435
3447
  /* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-400" }),
3436
- readOnly || !onEdit ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", children: content }) : /* @__PURE__ */ jsxRuntime.jsx(
3448
+ !onEdit ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", children: content }) : /* @__PURE__ */ jsxRuntime.jsx(
3437
3449
  "button",
3438
3450
  {
3439
3451
  type: "button",
@@ -3717,8 +3729,8 @@ function ConfigFormActions({
3717
3729
  saveDisabled = false
3718
3730
  }) {
3719
3731
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 border-t border-gray-200 pt-4 dark:border-gray-700", children: [
3720
- /* @__PURE__ */ jsxRuntime.jsx(chunkKEUOCEOO_js.Button, { type: "button", outline: true, onClick: onCancel, children: cancelLabel }),
3721
- /* @__PURE__ */ jsxRuntime.jsx(chunkKEUOCEOO_js.Button, { type: "button", onClick: onSave, disabled: saveDisabled, children: saveLabel })
3732
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2IOPJ5BM_js.Button, { type: "button", outline: true, onClick: onCancel, children: cancelLabel }),
3733
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2IOPJ5BM_js.Button, { type: "button", onClick: onSave, disabled: saveDisabled, children: saveLabel })
3722
3734
  ] });
3723
3735
  }
3724
3736
  var COLOR_CLASSES = {
@@ -3965,7 +3977,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
3965
3977
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
3966
3978
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("conditionsLabel") }),
3967
3979
  /* @__PURE__ */ jsxRuntime.jsx(
3968
- chunkKEUOCEOO_js.Button,
3980
+ chunk2IOPJ5BM_js.Button,
3969
3981
  {
3970
3982
  type: "button",
3971
3983
  onClick: handleAddCondition,
@@ -3976,7 +3988,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
3976
3988
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: conditions.map((condition, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 rounded-lg border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-800/50", children: [
3977
3989
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid flex-1 grid-cols-3 gap-2", children: [
3978
3990
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
3979
- chunkKEUOCEOO_js.FormInput,
3991
+ chunk2IOPJ5BM_js.FormInput,
3980
3992
  {
3981
3993
  type: "text",
3982
3994
  label: t("variableLabel"),
@@ -3987,7 +3999,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
3987
3999
  }
3988
4000
  ) }),
3989
4001
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
3990
- chunkKEUOCEOO_js.FormSelect,
4002
+ chunk2IOPJ5BM_js.FormSelect,
3991
4003
  {
3992
4004
  label: t("operatorLabel"),
3993
4005
  value: condition.operator,
@@ -3997,7 +4009,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
3997
4009
  }
3998
4010
  ) }),
3999
4011
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
4000
- chunkKEUOCEOO_js.FormInput,
4012
+ chunk2IOPJ5BM_js.FormInput,
4001
4013
  {
4002
4014
  type: "text",
4003
4015
  label: t("valueLabel"),
@@ -4009,7 +4021,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
4009
4021
  ) })
4010
4022
  ] }),
4011
4023
  conditions.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
4012
- chunkKEUOCEOO_js.IconButton,
4024
+ chunk2IOPJ5BM_js.IconButton,
4013
4025
  {
4014
4026
  onClick: () => handleRemoveCondition(index),
4015
4027
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" }),
@@ -4164,7 +4176,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4164
4176
  };
4165
4177
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4166
4178
  /* @__PURE__ */ jsxRuntime.jsx(
4167
- chunkKEUOCEOO_js.FormSelect,
4179
+ chunk2IOPJ5BM_js.FormSelect,
4168
4180
  {
4169
4181
  label: t("methodLabel"),
4170
4182
  value: method,
@@ -4173,7 +4185,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4173
4185
  }
4174
4186
  ),
4175
4187
  /* @__PURE__ */ jsxRuntime.jsx(
4176
- chunkKEUOCEOO_js.FormInput,
4188
+ chunk2IOPJ5BM_js.FormInput,
4177
4189
  {
4178
4190
  type: "text",
4179
4191
  label: t("urlLabel"),
@@ -4186,7 +4198,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4186
4198
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
4187
4199
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("headersLabel") }),
4188
4200
  /* @__PURE__ */ jsxRuntime.jsx(
4189
- chunkKEUOCEOO_js.Button,
4201
+ chunk2IOPJ5BM_js.Button,
4190
4202
  {
4191
4203
  type: "button",
4192
4204
  onClick: handleAddHeader,
@@ -4196,7 +4208,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4196
4208
  ] }),
4197
4209
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: headerEntries.map((entry, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
4198
4210
  /* @__PURE__ */ jsxRuntime.jsx(
4199
- chunkKEUOCEOO_js.FormInput,
4211
+ chunk2IOPJ5BM_js.FormInput,
4200
4212
  {
4201
4213
  type: "text",
4202
4214
  value: entry.key,
@@ -4206,7 +4218,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4206
4218
  }
4207
4219
  ),
4208
4220
  /* @__PURE__ */ jsxRuntime.jsx(
4209
- chunkKEUOCEOO_js.FormInput,
4221
+ chunk2IOPJ5BM_js.FormInput,
4210
4222
  {
4211
4223
  type: "text",
4212
4224
  value: entry.value,
@@ -4216,7 +4228,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4216
4228
  }
4217
4229
  ),
4218
4230
  /* @__PURE__ */ jsxRuntime.jsx(
4219
- chunkKEUOCEOO_js.IconButton,
4231
+ chunk2IOPJ5BM_js.IconButton,
4220
4232
  {
4221
4233
  onClick: () => handleRemoveHeader(index),
4222
4234
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" }),
@@ -4228,7 +4240,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4228
4240
  ] }, index)) })
4229
4241
  ] }),
4230
4242
  method !== "GET" && /* @__PURE__ */ jsxRuntime.jsx(
4231
- chunkKEUOCEOO_js.FormTextarea,
4243
+ chunk2IOPJ5BM_js.FormTextarea,
4232
4244
  {
4233
4245
  label: t("bodyLabel"),
4234
4246
  value: body,
@@ -4239,7 +4251,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
4239
4251
  }
4240
4252
  ),
4241
4253
  /* @__PURE__ */ jsxRuntime.jsx(
4242
- chunkKEUOCEOO_js.FormInput,
4254
+ chunk2IOPJ5BM_js.FormInput,
4243
4255
  {
4244
4256
  type: "number",
4245
4257
  label: t("timeoutLabel"),
@@ -4270,7 +4282,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
4270
4282
  };
4271
4283
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4272
4284
  /* @__PURE__ */ jsxRuntime.jsx(
4273
- chunkKEUOCEOO_js.FormTextarea,
4285
+ chunk2IOPJ5BM_js.FormTextarea,
4274
4286
  {
4275
4287
  label: t("templateLabel"),
4276
4288
  value: template,
@@ -4281,7 +4293,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
4281
4293
  }
4282
4294
  ),
4283
4295
  /* @__PURE__ */ jsxRuntime.jsx(
4284
- chunkKEUOCEOO_js.FormInput,
4296
+ chunk2IOPJ5BM_js.FormInput,
4285
4297
  {
4286
4298
  type: "text",
4287
4299
  label: t("outputVariableLabel"),
@@ -4310,7 +4322,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
4310
4322
  };
4311
4323
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4312
4324
  /* @__PURE__ */ jsxRuntime.jsx(
4313
- chunkKEUOCEOO_js.FormInput,
4325
+ chunk2IOPJ5BM_js.FormInput,
4314
4326
  {
4315
4327
  type: "text",
4316
4328
  label: t("iteratorVariableLabel"),
@@ -4320,7 +4332,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
4320
4332
  }
4321
4333
  ),
4322
4334
  /* @__PURE__ */ jsxRuntime.jsx(
4323
- chunkKEUOCEOO_js.FormInput,
4335
+ chunk2IOPJ5BM_js.FormInput,
4324
4336
  {
4325
4337
  type: "number",
4326
4338
  label: t("maxIterationsLabel"),
@@ -4351,7 +4363,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
4351
4363
  };
4352
4364
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4353
4365
  /* @__PURE__ */ jsxRuntime.jsx(
4354
- chunkKEUOCEOO_js.FormInput,
4366
+ chunk2IOPJ5BM_js.FormInput,
4355
4367
  {
4356
4368
  type: "text",
4357
4369
  label: t("sourceIdLabel"),
@@ -4361,7 +4373,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
4361
4373
  }
4362
4374
  ),
4363
4375
  /* @__PURE__ */ jsxRuntime.jsx(
4364
- chunkKEUOCEOO_js.FormInput,
4376
+ chunk2IOPJ5BM_js.FormInput,
4365
4377
  {
4366
4378
  type: "number",
4367
4379
  label: t("topKLabel"),
@@ -4372,7 +4384,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
4372
4384
  }
4373
4385
  ),
4374
4386
  /* @__PURE__ */ jsxRuntime.jsx(
4375
- chunkKEUOCEOO_js.FormInput,
4387
+ chunk2IOPJ5BM_js.FormInput,
4376
4388
  {
4377
4389
  type: "number",
4378
4390
  label: t("similarityThresholdLabel"),
@@ -4403,7 +4415,7 @@ function AnswerNodeConfigForm({ config, onSave, onCancel }) {
4403
4415
  };
4404
4416
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4405
4417
  /* @__PURE__ */ jsxRuntime.jsx(
4406
- chunkKEUOCEOO_js.FormTextarea,
4418
+ chunk2IOPJ5BM_js.FormTextarea,
4407
4419
  {
4408
4420
  label: t("outputTemplateLabel"),
4409
4421
  hint: t("outputTemplateHelp"),
@@ -4837,7 +4849,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
4837
4849
  }
4838
4850
  ),
4839
4851
  /* @__PURE__ */ jsxRuntime.jsx(
4840
- chunkKEUOCEOO_js.FormInput,
4852
+ chunk2IOPJ5BM_js.FormInput,
4841
4853
  {
4842
4854
  type: "text",
4843
4855
  label: t("outputVariableLabel"),
@@ -4847,7 +4859,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
4847
4859
  }
4848
4860
  ),
4849
4861
  /* @__PURE__ */ jsxRuntime.jsx(
4850
- chunkKEUOCEOO_js.FormSelect,
4862
+ chunk2IOPJ5BM_js.FormSelect,
4851
4863
  {
4852
4864
  label: t("aggregationModeLabel"),
4853
4865
  value: aggregationMode,
@@ -4880,7 +4892,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
4880
4892
  };
4881
4893
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4882
4894
  /* @__PURE__ */ jsxRuntime.jsx(
4883
- chunkKEUOCEOO_js.FormSelect,
4895
+ chunk2IOPJ5BM_js.FormSelect,
4884
4896
  {
4885
4897
  label: t("extractionModeLabel"),
4886
4898
  value: extractionMode,
@@ -4889,7 +4901,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
4889
4901
  }
4890
4902
  ),
4891
4903
  /* @__PURE__ */ jsxRuntime.jsx(
4892
- chunkKEUOCEOO_js.FormInput,
4904
+ chunk2IOPJ5BM_js.FormInput,
4893
4905
  {
4894
4906
  type: "text",
4895
4907
  label: t("outputVariableLabel"),
@@ -5066,7 +5078,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
5066
5078
  };
5067
5079
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5068
5080
  /* @__PURE__ */ jsxRuntime.jsx(
5069
- chunkKEUOCEOO_js.FormInput,
5081
+ chunk2IOPJ5BM_js.FormInput,
5070
5082
  {
5071
5083
  type: "text",
5072
5084
  label: t("iteratorVariableLabel"),
@@ -5076,7 +5088,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
5076
5088
  }
5077
5089
  ),
5078
5090
  /* @__PURE__ */ jsxRuntime.jsx(
5079
- chunkKEUOCEOO_js.FormInput,
5091
+ chunk2IOPJ5BM_js.FormInput,
5080
5092
  {
5081
5093
  type: "text",
5082
5094
  label: t("itemVariableLabel"),
@@ -5086,7 +5098,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
5086
5098
  }
5087
5099
  ),
5088
5100
  /* @__PURE__ */ jsxRuntime.jsx(
5089
- chunkKEUOCEOO_js.FormInput,
5101
+ chunk2IOPJ5BM_js.FormInput,
5090
5102
  {
5091
5103
  type: "text",
5092
5104
  label: t("indexVariableLabel"),
@@ -5358,7 +5370,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
5358
5370
  };
5359
5371
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5360
5372
  /* @__PURE__ */ jsxRuntime.jsx(
5361
- chunkKEUOCEOO_js.FormInput,
5373
+ chunk2IOPJ5BM_js.FormInput,
5362
5374
  {
5363
5375
  type: "text",
5364
5376
  label: translations("labelField"),
@@ -5368,7 +5380,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
5368
5380
  }
5369
5381
  ),
5370
5382
  /* @__PURE__ */ jsxRuntime.jsx(
5371
- chunkKEUOCEOO_js.FormTextarea,
5383
+ chunk2IOPJ5BM_js.FormTextarea,
5372
5384
  {
5373
5385
  label: translations("descriptionField"),
5374
5386
  value: description,
@@ -5526,7 +5538,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5526
5538
  };
5527
5539
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
5528
5540
  /* @__PURE__ */ jsxRuntime.jsx(
5529
- chunkKEUOCEOO_js.FormInput,
5541
+ chunk2IOPJ5BM_js.FormInput,
5530
5542
  {
5531
5543
  type: "text",
5532
5544
  label: t("nameLabel"),
@@ -5536,7 +5548,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5536
5548
  }
5537
5549
  ),
5538
5550
  /* @__PURE__ */ jsxRuntime.jsx(
5539
- chunkKEUOCEOO_js.FormSelect,
5551
+ chunk2IOPJ5BM_js.FormSelect,
5540
5552
  {
5541
5553
  label: t("providerTypeLabel"),
5542
5554
  value: providerType,
@@ -5545,7 +5557,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5545
5557
  }
5546
5558
  ),
5547
5559
  showRegion && /* @__PURE__ */ jsxRuntime.jsx(
5548
- chunkKEUOCEOO_js.FormSelect,
5560
+ chunk2IOPJ5BM_js.FormSelect,
5549
5561
  {
5550
5562
  label: t("regionLabel"),
5551
5563
  value: region,
@@ -5554,7 +5566,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5554
5566
  }
5555
5567
  ),
5556
5568
  showEndpoint && /* @__PURE__ */ jsxRuntime.jsx(
5557
- chunkKEUOCEOO_js.FormInput,
5569
+ chunk2IOPJ5BM_js.FormInput,
5558
5570
  {
5559
5571
  type: "text",
5560
5572
  label: t("endpointLabel"),
@@ -5564,7 +5576,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5564
5576
  }
5565
5577
  ),
5566
5578
  showApiKey && /* @__PURE__ */ jsxRuntime.jsx(
5567
- chunkKEUOCEOO_js.FormInput,
5579
+ chunk2IOPJ5BM_js.FormInput,
5568
5580
  {
5569
5581
  type: "password",
5570
5582
  label: t("apiKeyLabel"),
@@ -5574,7 +5586,7 @@ function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
5574
5586
  }
5575
5587
  ),
5576
5588
  showCredentialRef && /* @__PURE__ */ jsxRuntime.jsx(
5577
- chunkKEUOCEOO_js.FormInput,
5589
+ chunk2IOPJ5BM_js.FormInput,
5578
5590
  {
5579
5591
  type: "text",
5580
5592
  label: t("credentialRefLabel"),
@@ -5708,7 +5720,7 @@ function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables,
5708
5720
  }
5709
5721
  };
5710
5722
  return /* @__PURE__ */ jsxRuntime.jsx(
5711
- chunkKEUOCEOO_js.GlassModal,
5723
+ chunk2IOPJ5BM_js.GlassModal,
5712
5724
  {
5713
5725
  open,
5714
5726
  onClose: closeModal,
@@ -5768,7 +5780,7 @@ function NodeContextMenu({ position, targetId, onClose, onEdit, onDuplicate, onC
5768
5780
  }
5769
5781
  ];
5770
5782
  return /* @__PURE__ */ jsxRuntime.jsx(
5771
- chunkKEUOCEOO_js.ContextMenu,
5783
+ chunk2IOPJ5BM_js.ContextMenu,
5772
5784
  {
5773
5785
  position,
5774
5786
  onClose,
@@ -5825,7 +5837,7 @@ function PanelContextMenu({ position, onClose, onPaste, onSelectAll, onFitView,
5825
5837
  }
5826
5838
  ];
5827
5839
  return /* @__PURE__ */ jsxRuntime.jsx(
5828
- chunkKEUOCEOO_js.ContextMenu,
5840
+ chunk2IOPJ5BM_js.ContextMenu,
5829
5841
  {
5830
5842
  position,
5831
5843
  onClose,
@@ -5972,7 +5984,7 @@ function SelectionContextMenu({
5972
5984
  }
5973
5985
  ];
5974
5986
  return /* @__PURE__ */ jsxRuntime.jsx(
5975
- chunkKEUOCEOO_js.ContextMenu,
5987
+ chunk2IOPJ5BM_js.ContextMenu,
5976
5988
  {
5977
5989
  position,
5978
5990
  onClose,
@@ -6406,7 +6418,7 @@ function WorkflowCanvasInner({
6406
6418
  } : void 0,
6407
6419
  label: savedNode.data.label,
6408
6420
  readOnly: extendedNodeData.readOnly === true,
6409
- onEdit: extendedNodeData.readOnly === true ? void 0 : handleEditLogicNode,
6421
+ onEdit: handleEditLogicNode,
6410
6422
  onRemoveFromCanvas: handleRemoveNodeFromCanvas
6411
6423
  }
6412
6424
  };
@@ -7670,6 +7682,7 @@ function WorkflowCanvasInner({
7670
7682
  open: true,
7671
7683
  nodeId: editingLogicNode.nodeId,
7672
7684
  config: editingLogicNode.config,
7685
+ readOnly: Boolean(nodes.find((n) => n.id === editingLogicNode.nodeId)?.data?.readOnly),
7673
7686
  onSave: (updatedConfig) => {
7674
7687
  handleSaveLogicNodeConfig(editingLogicNode.nodeId, updatedConfig);
7675
7688
  setEditingLogicNodeId(null);
@@ -7880,5 +7893,5 @@ exports.useModalStore = useModalStore;
7880
7893
  exports.useWorkflowBuilderClient = useWorkflowBuilderClient;
7881
7894
  exports.useWorkflowBuilderClientOptional = useWorkflowBuilderClientOptional;
7882
7895
  exports.useWorkflowStore = useWorkflowStore;
7883
- //# sourceMappingURL=chunk-36EAW7JS.js.map
7884
- //# sourceMappingURL=chunk-36EAW7JS.js.map
7896
+ //# sourceMappingURL=chunk-5KDFTL4I.js.map
7897
+ //# sourceMappingURL=chunk-5KDFTL4I.js.map