@kubohiroya/turbowarp-extension-data-editor 0.2.2 → 0.3.0

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.
@@ -1308,12 +1308,25 @@ var bindBlockEditorIcon = ({ element, label, canOpen, onOpen }) => {
1308
1308
  var icon_default = bindBlockEditorIcon;
1309
1309
 
1310
1310
  // dist/turbowarp/appearance.js
1311
- var readBlockEditorAppearance = (block, ScratchBlocks) => {
1311
+ var readBlockEditorAppearance = (block, ScratchBlocks, editableArguments) => {
1312
1312
  const appearance = {};
1313
1313
  if (!block)
1314
1314
  return appearance;
1315
1315
  try {
1316
- const name = block.inputList.filter((input) => input.type !== ScratchBlocks.NEXT_STATEMENT).map((input) => input.fieldRow.filter((field) => !(field instanceof ScratchBlocks.FieldImage)).map((field) => field.getText()).join(" ")).join(" ").replace(/\s+/g, " ").trim();
1316
+ const name = block.inputList.filter((input) => input.type !== ScratchBlocks.NEXT_STATEMENT).map((input) => {
1317
+ const label = input.fieldRow.filter((field) => !(field instanceof ScratchBlocks.FieldImage)).map((field) => field.getText()).join(" ");
1318
+ if (!editableArguments || editableArguments.includes(input.name) || input.type !== ScratchBlocks.INPUT_VALUE)
1319
+ return label;
1320
+ try {
1321
+ const child = input.connection && input.connection.targetBlock();
1322
+ if (!child || !child.isShadow() || child.inputList.some((part) => part.connection))
1323
+ return label;
1324
+ const value = child.inputList.flatMap((part) => part.fieldRow).filter((field) => !(field instanceof ScratchBlocks.FieldImage)).map((field) => field.getText()).join(" ").replace(/\s+/g, " ").trim();
1325
+ return value ? `${label} (${value})` : label;
1326
+ } catch (error) {
1327
+ return label;
1328
+ }
1329
+ }).join(" ").replace(/\s+/g, " ").trim();
1317
1330
  if (name)
1318
1331
  appearance.name = name;
1319
1332
  } catch (error) {
@@ -1442,6 +1455,7 @@ var createBlockEditorBridge = ({ ScratchBlocks, workspace, vm, service, label, c
1442
1455
  return snapshot && Object.values(snapshot.arguments).every((slot) => slot.kind === "literal");
1443
1456
  };
1444
1457
  const open = (block) => {
1458
+ var _a, _b;
1445
1459
  if (activeSession && ["editing", "saving"].includes(activeSession.getState().status))
1446
1460
  return;
1447
1461
  const reference = { targetId: vm.editingTarget.id, blockId: block.id };
@@ -1456,13 +1470,13 @@ var createBlockEditorBridge = ({ ScratchBlocks, workspace, vm, service, label, c
1456
1470
  openingFixedDeclaration = fixedDeclaration(service.registry, openingSnapshot) || null;
1457
1471
  const labels = {};
1458
1472
  const appearances = /* @__PURE__ */ Object.create(null);
1459
- const rootAppearance = appearance_default(block, ScratchBlocks);
1473
+ const rootAppearance = appearance_default(block, ScratchBlocks, (_a = service.registry.resolve(block.type)) === null || _a === void 0 ? void 0 : _a.editableArguments);
1460
1474
  appearances[reference.blockId] = rootAppearance;
1461
1475
  labels[reference.blockId] = rootAppearance.name || block.type;
1462
1476
  if (typeof session.getNodes === "function") {
1463
1477
  for (const node of session.getNodes()) {
1464
1478
  const source = workspace.getBlockById(node.reference.blockId);
1465
- const appearance = appearance_default(source, ScratchBlocks);
1479
+ const appearance = appearance_default(source, ScratchBlocks, (_b = service.registry.resolve(node.opcode)) === null || _b === void 0 ? void 0 : _b.editableArguments);
1466
1480
  appearances[node.reference.blockId] = appearance;
1467
1481
  labels[node.reference.blockId] = appearance.name || node.opcode;
1468
1482
  }
@@ -1589,8 +1603,8 @@ function createTurboWarpBlockEditorHost(options) {
1589
1603
  function bindBlockEditorIcon2(options) {
1590
1604
  return icon_default(options);
1591
1605
  }
1592
- function readBlockEditorAppearance2(block, ScratchBlocks) {
1593
- return appearance_default(block, ScratchBlocks);
1606
+ function readBlockEditorAppearance2(block, ScratchBlocks, editableArguments) {
1607
+ return appearance_default(block, ScratchBlocks, editableArguments);
1594
1608
  }
1595
1609
  function createBlockEditorErrorSession2(reference, error) {
1596
1610
  return error_session_default(reference, error);