@flowgram.ai/fixed-semi-materials 0.1.0-alpha.2 → 0.1.0-alpha.20

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/index.js CHANGED
@@ -28,15 +28,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
30
  // src/index.ts
31
- var src_exports = {};
32
- __export(src_exports, {
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
33
  PlaygroundTools: () => PlaygroundTools,
34
34
  defaultFixedSemiMaterials: () => defaultFixedSemiMaterials
35
35
  });
36
- module.exports = __toCommonJS(src_exports);
36
+ module.exports = __toCommonJS(index_exports);
37
37
 
38
38
  // src/components/index.tsx
39
- var import_fixed_layout_editor6 = require("@flowgram.ai/fixed-layout-editor");
39
+ var import_fixed_layout_editor9 = require("@flowgram.ai/fixed-layout-editor");
40
40
 
41
41
  // src/assets/ellipsis.tsx
42
42
  var import_react = __toESM(require("react"));
@@ -199,6 +199,8 @@ var import_fixed_layout_editor = require("@flowgram.ai/fixed-layout-editor");
199
199
  var import_semi_icons = require("@douyinfe/semi-icons");
200
200
  function TryCatchCollapse(props) {
201
201
  const { node } = props;
202
+ const { baseColor, baseActivatedColor } = (0, import_fixed_layout_editor.useBaseColor)();
203
+ const playground = (0, import_fixed_layout_editor.usePlayground)();
202
204
  const activateData = node.getData(import_fixed_layout_editor.FlowNodeRenderData);
203
205
  const transform = node.getData(import_fixed_layout_editor.FlowNodeTransformData);
204
206
  const [hoverActivated, setHoverActivated] = (0, import_react3.useState)(false);
@@ -209,7 +211,7 @@ function TryCatchCollapse(props) {
209
211
  const height = 40;
210
212
  const scrollToActivateNode = () => {
211
213
  setTimeout(() => {
212
- import_fixed_layout_editor.Playground.getLatest()?.scrollToView({
214
+ playground.config.scrollToView({
213
215
  position: node?.getData(import_fixed_layout_editor.FlowNodeTransformData)?.inputPoint,
214
216
  scrollToCenter: true
215
217
  });
@@ -251,7 +253,7 @@ function TryCatchCollapse(props) {
251
253
  cursor: "pointer",
252
254
  justifyContent: "center",
253
255
  alignItems: "center",
254
- background: hoverActivated ? "#82A7FC" : "#BBBFC4"
256
+ background: hoverActivated || activateData.lineActivated ? baseActivatedColor : baseColor
255
257
  },
256
258
  "aria-hidden": "true"
257
259
  },
@@ -273,7 +275,7 @@ function TryCatchCollapse(props) {
273
275
  cursor: "pointer",
274
276
  justifyContent: "center",
275
277
  alignItems: "center",
276
- background: "#82A7FC"
278
+ background: baseActivatedColor
277
279
  },
278
280
  "aria-hidden": "true"
279
281
  },
@@ -299,28 +301,187 @@ function TryCatchCollapse(props) {
299
301
  /* @__PURE__ */ import_react3.default.createElement(
300
302
  "div",
301
303
  {
304
+ "data-label-id": props.labelId,
302
305
  style: {
303
306
  fontSize: 12,
304
- color: "#8F959E",
307
+ color: hoverActivated || activateData.lineActivated ? baseActivatedColor : baseColor,
305
308
  textAlign: "center",
306
309
  whiteSpace: "nowrap",
307
310
  backgroundColor: "var(--g-editor-background)",
308
311
  lineHeight: "20px"
309
312
  }
310
313
  },
311
- "Something error"
314
+ node.getService(import_fixed_layout_editor.FlowRendererRegistry).getText(import_fixed_layout_editor.FlowTextKey.CATCH_TEXT)
312
315
  ),
313
316
  renderCollapse()
314
317
  );
315
318
  }
316
319
  var try_catch_collapse_default = TryCatchCollapse;
317
320
 
318
- // src/components/dragging-adder/index.tsx
321
+ // src/components/slot-collapse.tsx
322
+ var import_react5 = __toESM(require("react"));
323
+ var import_fixed_layout_editor3 = require("@flowgram.ai/fixed-layout-editor");
324
+
325
+ // src/components/collapse/index.tsx
319
326
  var import_react4 = __toESM(require("react"));
327
+ var import_fixed_layout_editor2 = require("@flowgram.ai/fixed-layout-editor");
320
328
 
321
- // src/components/dragging-adder/styles.tsx
329
+ // src/components/collapse/styles.tsx
322
330
  var import_styled_components = __toESM(require("styled-components"));
323
- var UIDragNodeContainer = import_styled_components.default.div`
331
+ var Container = import_styled_components.default.div`
332
+ width: 16px;
333
+ height: 16px;
334
+ font-size: 10px;
335
+ border-radius: 9px;
336
+ display: flex;
337
+ color: #fff;
338
+ cursor: pointer;
339
+ justify-content: center;
340
+ align-items: center;
341
+ background: ${(props) => props.hoverActivated ? "#82A7FC" : "#BBBFC4"};
342
+ transform: ${(props) => !props.isVertical && props.isCollapse ? "rotate(-90deg)" : ""};
343
+ `;
344
+
345
+ // src/components/collapse/index.tsx
346
+ function Collapse(props) {
347
+ const { collapseNode, activateNode, hoverActivated, style } = props;
348
+ const playground = (0, import_fixed_layout_editor2.usePlayground)();
349
+ const activateData = activateNode?.getData(import_fixed_layout_editor2.FlowNodeRenderData);
350
+ const transform = collapseNode.getData(import_fixed_layout_editor2.FlowNodeTransformData);
351
+ if (!transform) {
352
+ return /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null);
353
+ }
354
+ const scrollToActivateNode = () => {
355
+ setTimeout(() => {
356
+ playground.config.scrollToView({
357
+ position: activateNode?.getData(import_fixed_layout_editor2.FlowNodeTransformData)?.outputPoint,
358
+ scrollToCenter: true
359
+ });
360
+ }, 100);
361
+ };
362
+ const collapseBlock = () => {
363
+ transform.collapsed = true;
364
+ activateData?.toggleMouseLeave();
365
+ scrollToActivateNode();
366
+ };
367
+ const openBlock = () => {
368
+ transform.collapsed = false;
369
+ scrollToActivateNode();
370
+ };
371
+ if (transform.collapsed) {
372
+ const childCount = collapseNode.allCollapsedChildren.filter(
373
+ (child) => !child.hidden && child !== activateNode
374
+ ).length;
375
+ return /* @__PURE__ */ import_react4.default.createElement(
376
+ Container,
377
+ {
378
+ onClick: openBlock,
379
+ hoverActivated,
380
+ "aria-hidden": "true",
381
+ style
382
+ },
383
+ childCount
384
+ );
385
+ }
386
+ const circleColor = "var(--semi-color-white)";
387
+ const color = hoverActivated ? "#82A7FC" : "#BBBFC4";
388
+ return /* @__PURE__ */ import_react4.default.createElement(
389
+ Container,
390
+ {
391
+ onClick: collapseBlock,
392
+ hoverActivated,
393
+ isVertical: activateNode?.isVertical,
394
+ isCollapse: true,
395
+ style,
396
+ "aria-hidden": "true"
397
+ },
398
+ /* @__PURE__ */ import_react4.default.createElement(Arrow, { color, circleColor })
399
+ );
400
+ }
401
+ var collapse_default = Collapse;
402
+
403
+ // src/components/slot-collapse.tsx
404
+ function SlotCollapse({ node }) {
405
+ const [hoverActivated, setHoverActivated] = (0, import_react5.useState)(false);
406
+ const icon = node.firstChild;
407
+ const iconActivated = icon.getData(import_fixed_layout_editor3.FlowNodeRenderData).activated;
408
+ const iconHeight = icon.getData(import_fixed_layout_editor3.FlowNodeTransformData).size.height;
409
+ const isChildVisible = node.collapsed || hoverActivated || iconActivated;
410
+ return /* @__PURE__ */ import_react5.default.createElement(
411
+ "div",
412
+ {
413
+ style: {
414
+ width: 30,
415
+ height: iconHeight || 100,
416
+ display: "flex",
417
+ alignItems: "center",
418
+ justifyContent: "center"
419
+ },
420
+ onMouseEnter: () => setHoverActivated(true),
421
+ onMouseLeave: () => setHoverActivated(false)
422
+ },
423
+ isChildVisible && /* @__PURE__ */ import_react5.default.createElement(
424
+ collapse_default,
425
+ {
426
+ style: !node.collapsed ? {
427
+ transform: node.isVertical ? "rotate(-90deg)" : "rotate(90deg)"
428
+ } : {},
429
+ node,
430
+ activateNode: icon,
431
+ collapseNode: node,
432
+ hoverActivated
433
+ }
434
+ )
435
+ );
436
+ }
437
+
438
+ // src/components/slot-adder.tsx
439
+ var import_react6 = __toESM(require("react"));
440
+ var import_nanoid = require("nanoid");
441
+ var import_fixed_layout_editor4 = require("@flowgram.ai/fixed-layout-editor");
442
+ var import_semi_ui = require("@douyinfe/semi-ui");
443
+ var import_semi_icons2 = require("@douyinfe/semi-icons");
444
+ function SlotAdder(props) {
445
+ const { node } = props;
446
+ const nodeData = node.firstChild?.getData(import_fixed_layout_editor4.FlowNodeRenderData);
447
+ const document = (0, import_fixed_layout_editor4.useService)(import_fixed_layout_editor4.FlowDocument);
448
+ async function addPort() {
449
+ document.addNode({
450
+ id: (0, import_nanoid.nanoid)(5),
451
+ type: "custom",
452
+ parent: node
453
+ });
454
+ }
455
+ return /* @__PURE__ */ import_react6.default.createElement(
456
+ "div",
457
+ {
458
+ style: {
459
+ display: "flex",
460
+ background: "var(--semi-color-bg-0)"
461
+ },
462
+ onMouseEnter: () => nodeData?.toggleMouseEnter(),
463
+ onMouseLeave: () => nodeData?.toggleMouseLeave()
464
+ },
465
+ /* @__PURE__ */ import_react6.default.createElement(
466
+ import_semi_ui.Button,
467
+ {
468
+ onClick: () => {
469
+ addPort();
470
+ },
471
+ size: "small",
472
+ icon: /* @__PURE__ */ import_react6.default.createElement(import_semi_icons2.IconPlus, null)
473
+ }
474
+ )
475
+ );
476
+ }
477
+
478
+ // src/components/dragging-adder/index.tsx
479
+ var import_react7 = __toESM(require("react"));
480
+ var import_fixed_layout_editor5 = require("@flowgram.ai/fixed-layout-editor");
481
+
482
+ // src/components/dragging-adder/styles.tsx
483
+ var import_styled_components2 = __toESM(require("styled-components"));
484
+ var UIDragNodeContainer = import_styled_components2.default.div`
324
485
  width: 16px;
325
486
  height: 16px;
326
487
  border-radius: 100px;
@@ -329,22 +490,32 @@ var UIDragNodeContainer = import_styled_components.default.div`
329
490
  `;
330
491
 
331
492
  // src/components/dragging-adder/index.tsx
332
- function DraggingAdder() {
333
- return /* @__PURE__ */ import_react4.default.createElement(UIDragNodeContainer, null);
493
+ function DraggingAdder(props) {
494
+ const playground = (0, import_fixed_layout_editor5.usePlayground)();
495
+ const layer = playground.getLayer(import_fixed_layout_editor5.FlowDragLayer);
496
+ if (!layer) return /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null);
497
+ if (layer.options.canDrop && !layer.options.canDrop({
498
+ dragNodes: layer.dragEntities || [],
499
+ dropNode: props.from,
500
+ isBranch: false
501
+ })) {
502
+ return /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null);
503
+ }
504
+ return /* @__PURE__ */ import_react7.default.createElement(UIDragNodeContainer, null);
334
505
  }
335
506
 
336
507
  // src/components/drag-node/index.tsx
337
- var import_react5 = __toESM(require("react"));
508
+ var import_react8 = __toESM(require("react"));
338
509
 
339
510
  // src/components/drag-node/styles.tsx
340
- var import_styled_components2 = __toESM(require("styled-components"));
511
+ var import_styled_components3 = __toESM(require("styled-components"));
341
512
 
342
513
  // src/components/constants.tsx
343
514
  var primary = "hsl(252 62% 54.9%)";
344
515
  var primaryOpacity09 = "hsl(252deg 62% 55% / 9%)";
345
516
 
346
517
  // src/components/drag-node/styles.tsx
347
- var UIDragNodeContainer2 = import_styled_components2.default.div`
518
+ var UIDragNodeContainer2 = import_styled_components3.default.div`
348
519
  position: relative;
349
520
  height: 32px;
350
521
  border-radius: 5px;
@@ -359,7 +530,7 @@ var UIDragNodeContainer2 = import_styled_components2.default.div`
359
530
  color: ${primary};
360
531
  }
361
532
  `;
362
- var UIDragCounts = import_styled_components2.default.div`
533
+ var UIDragCounts = import_styled_components3.default.div`
363
534
  position: absolute;
364
535
  top: -8px;
365
536
  right: -8px;
@@ -375,11 +546,11 @@ var UIDragCounts = import_styled_components2.default.div`
375
546
 
376
547
  // src/components/drag-node/index.tsx
377
548
  function DragNode(props) {
378
- const { dragStart, dragNodes } = props;
549
+ const { dragStart, dragNodes, dragJSON } = props;
379
550
  const dragLength = (dragNodes || []).map(
380
551
  (_node) => _node.allCollapsedChildren.length ? _node.allCollapsedChildren.filter((_n) => !_n.hidden).length : 1
381
552
  ).reduce((acm, curr) => acm + curr, 0);
382
- return /* @__PURE__ */ import_react5.default.createElement(UIDragNodeContainer2, null, dragStart?.id, dragLength > 1 && /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null, /* @__PURE__ */ import_react5.default.createElement(UIDragCounts, null, dragLength), /* @__PURE__ */ import_react5.default.createElement(
553
+ return /* @__PURE__ */ import_react8.default.createElement(UIDragNodeContainer2, null, dragStart?.id || dragJSON?.id, dragLength > 1 && /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, /* @__PURE__ */ import_react8.default.createElement(UIDragCounts, null, dragLength), /* @__PURE__ */ import_react8.default.createElement(
383
554
  UIDragNodeContainer2,
384
555
  {
385
556
  style: {
@@ -395,17 +566,17 @@ function DragNode(props) {
395
566
  }
396
567
 
397
568
  // src/components/drag-highlight-adder/index.tsx
398
- var import_react6 = __toESM(require("react"));
399
- var import_lodash = require("lodash");
400
- var import_fixed_layout_editor2 = require("@flowgram.ai/fixed-layout-editor");
569
+ var import_react9 = __toESM(require("react"));
570
+ var import_lodash_es = require("lodash-es");
571
+ var import_fixed_layout_editor6 = require("@flowgram.ai/fixed-layout-editor");
401
572
 
402
573
  // src/components/drag-highlight-adder/styles.tsx
403
- var import_styled_components3 = __toESM(require("styled-components"));
404
- var UILineContainer = import_styled_components3.default.div`
574
+ var import_styled_components4 = __toESM(require("styled-components"));
575
+ var UILineContainer = import_styled_components4.default.div`
405
576
  display: flex;
406
577
  align-items: center;
407
578
  `;
408
- var UILine = (width, height) => import_styled_components3.default.div`
579
+ var UILine = (width, height) => import_styled_components4.default.div`
409
580
  width: ${width}px;
410
581
  height: ${height}px;
411
582
  background: #3370ff;
@@ -419,97 +590,30 @@ var getMinSize = (preWidth, nextWidth) => {
419
590
  if (!nextWidth || nextWidth < 0) {
420
591
  return preWidth;
421
592
  }
422
- return (0, import_lodash.min)([preWidth, nextWidth]) || 0;
593
+ return (0, import_lodash_es.min)([preWidth, nextWidth]) || 0;
423
594
  };
424
595
  function DragHighlightAdder({ node }) {
425
- const transformBounds = node.getData(import_fixed_layout_editor2.FlowNodeTransformData)?.bounds;
596
+ const transformBounds = node.getData(import_fixed_layout_editor6.FlowNodeTransformData)?.bounds;
426
597
  const { isVertical } = node;
427
598
  if (isVertical) {
428
599
  const preWidth = (transformBounds?.width || 0) - 16;
429
- const nextNodeBounds2 = node?.next?.getData(import_fixed_layout_editor2.FlowNodeTransformData)?.bounds?.width;
600
+ const nextNodeBounds2 = node?.next?.getData(import_fixed_layout_editor6.FlowNodeTransformData)?.bounds?.width;
430
601
  const nextWidth = (nextNodeBounds2 || 0) - 16;
431
602
  const LineDom2 = UILine(getMinSize(preWidth, nextWidth), 2);
432
- return /* @__PURE__ */ import_react6.default.createElement(UILineContainer, null, /* @__PURE__ */ import_react6.default.createElement(Ellipse, null), /* @__PURE__ */ import_react6.default.createElement(LineDom2, null), /* @__PURE__ */ import_react6.default.createElement(Ellipse, null));
603
+ return /* @__PURE__ */ import_react9.default.createElement(UILineContainer, null, /* @__PURE__ */ import_react9.default.createElement(Ellipse, null), /* @__PURE__ */ import_react9.default.createElement(LineDom2, null), /* @__PURE__ */ import_react9.default.createElement(Ellipse, null));
433
604
  }
434
605
  const preHeight = (transformBounds?.height || 0) - 16;
435
- const nextNodeBounds = node?.next?.getData(import_fixed_layout_editor2.FlowNodeTransformData)?.bounds?.height;
606
+ const nextNodeBounds = node?.next?.getData(import_fixed_layout_editor6.FlowNodeTransformData)?.bounds?.height;
436
607
  const nextHeight = (nextNodeBounds || 0) - 16;
437
608
  const LineDom = UILine(2, getMinSize(preHeight, nextHeight));
438
- return /* @__PURE__ */ import_react6.default.createElement(UILineContainer, { style: { flexDirection: "column" } }, /* @__PURE__ */ import_react6.default.createElement(Ellipse, null), /* @__PURE__ */ import_react6.default.createElement(LineDom, null), /* @__PURE__ */ import_react6.default.createElement(Ellipse, null));
439
- }
440
-
441
- // src/components/collapse/index.tsx
442
- var import_react7 = __toESM(require("react"));
443
- var import_fixed_layout_editor3 = require("@flowgram.ai/fixed-layout-editor");
444
-
445
- // src/components/collapse/styles.tsx
446
- var import_styled_components4 = __toESM(require("styled-components"));
447
- var Container = import_styled_components4.default.div`
448
- width: 16px;
449
- height: 16px;
450
- font-size: 10px;
451
- border-radius: 9px;
452
- display: flex;
453
- color: #fff;
454
- cursor: pointer;
455
- justify-content: center;
456
- align-items: center;
457
- background: ${(props) => props.hoverActivated ? "#82A7FC" : "#BBBFC4"};
458
- transform: ${(props) => !props.isVertical && props.isCollapse ? "rotate(-90deg)" : ""};
459
- `;
460
-
461
- // src/components/collapse/index.tsx
462
- function Collapse(props) {
463
- const { collapseNode, activateNode, hoverActivated } = props;
464
- const activateData = activateNode?.getData(import_fixed_layout_editor3.FlowNodeRenderData);
465
- const transform = collapseNode.getData(import_fixed_layout_editor3.FlowNodeTransformData);
466
- if (!transform) {
467
- return /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null);
468
- }
469
- const scrollToActivateNode = () => {
470
- setTimeout(() => {
471
- import_fixed_layout_editor3.Playground.getLatest()?.scrollToView({
472
- position: activateNode?.getData(import_fixed_layout_editor3.FlowNodeTransformData)?.outputPoint,
473
- scrollToCenter: true
474
- });
475
- }, 100);
476
- };
477
- const collapseBlock = () => {
478
- transform.collapsed = true;
479
- activateData?.toggleMouseLeave();
480
- scrollToActivateNode();
481
- };
482
- const openBlock = () => {
483
- transform.collapsed = false;
484
- scrollToActivateNode();
485
- };
486
- if (transform.collapsed) {
487
- const childCount = collapseNode.allCollapsedChildren.filter(
488
- (child) => !child.hidden && child !== activateNode
489
- ).length;
490
- return /* @__PURE__ */ import_react7.default.createElement(Container, { onClick: openBlock, hoverActivated, "aria-hidden": "true" }, childCount);
491
- }
492
- const circleColor = "var(--semi-color-white)";
493
- const color = hoverActivated ? "#82A7FC" : "#BBBFC4";
494
- return /* @__PURE__ */ import_react7.default.createElement(
495
- Container,
496
- {
497
- onClick: collapseBlock,
498
- hoverActivated,
499
- isVertical: activateNode?.isVertical,
500
- isCollapse: true,
501
- "aria-hidden": "true"
502
- },
503
- /* @__PURE__ */ import_react7.default.createElement(Arrow, { color, circleColor })
504
- );
609
+ return /* @__PURE__ */ import_react9.default.createElement(UILineContainer, { style: { flexDirection: "column" } }, /* @__PURE__ */ import_react9.default.createElement(Ellipse, null), /* @__PURE__ */ import_react9.default.createElement(LineDom, null), /* @__PURE__ */ import_react9.default.createElement(Ellipse, null));
505
610
  }
506
- var collapse_default = Collapse;
507
611
 
508
612
  // src/components/branch-adder/index.tsx
509
- var import_react8 = __toESM(require("react"));
510
- var import_nanoid = require("nanoid");
511
- var import_fixed_layout_editor4 = require("@flowgram.ai/fixed-layout-editor");
512
- var import_semi_icons2 = require("@douyinfe/semi-icons");
613
+ var import_react10 = __toESM(require("react"));
614
+ var import_nanoid2 = require("nanoid");
615
+ var import_fixed_layout_editor7 = require("@flowgram.ai/fixed-layout-editor");
616
+ var import_semi_icons3 = require("@douyinfe/semi-icons");
513
617
 
514
618
  // src/components/branch-adder/styles.tsx
515
619
  var import_styled_components5 = __toESM(require("styled-components"));
@@ -539,72 +643,72 @@ var Container2 = import_styled_components5.default.div`
539
643
  // src/components/branch-adder/index.tsx
540
644
  function BranchAdder(props) {
541
645
  const { activated, node } = props;
542
- const nodeData = node.firstChild?.getData(import_fixed_layout_editor4.FlowNodeRenderData);
543
- const playground = (0, import_fixed_layout_editor4.usePlayground)();
544
- const flowOperationService = (0, import_fixed_layout_editor4.useService)(import_fixed_layout_editor4.FlowOperationService);
646
+ const nodeData = node.firstChild?.getData(import_fixed_layout_editor7.FlowNodeRenderData);
647
+ const playground = (0, import_fixed_layout_editor7.usePlayground)();
648
+ const flowOperationService = (0, import_fixed_layout_editor7.useService)(import_fixed_layout_editor7.FlowOperationService);
545
649
  const { isVertical } = node;
546
650
  function addBranch() {
547
- const block = flowOperationService.addBlock(node, { id: (0, import_nanoid.nanoid)(5) });
651
+ const block = flowOperationService.addBlock(node, { id: (0, import_nanoid2.nanoid)(5) });
548
652
  setTimeout(() => {
549
653
  playground.scrollToView({
550
- bounds: block.getData(import_fixed_layout_editor4.FlowNodeTransformData).bounds,
654
+ bounds: block.getData(import_fixed_layout_editor7.FlowNodeTransformData).bounds,
551
655
  scrollToCenter: true
552
656
  });
553
657
  }, 10);
554
658
  }
555
659
  if (playground.config.readonlyOrDisabled) return null;
556
- return /* @__PURE__ */ import_react8.default.createElement(
660
+ return /* @__PURE__ */ import_react10.default.createElement(
557
661
  Container2,
558
662
  {
559
663
  isVertical,
560
- activated,
664
+ activated: activated || nodeData?.hovered,
561
665
  onMouseEnter: () => nodeData?.toggleMouseEnter(),
562
666
  onMouseLeave: () => nodeData?.toggleMouseLeave()
563
667
  },
564
- /* @__PURE__ */ import_react8.default.createElement(
668
+ /* @__PURE__ */ import_react10.default.createElement(
565
669
  "div",
566
670
  {
567
671
  onClick: () => {
568
672
  addBranch();
569
673
  },
570
674
  "aria-hidden": "true",
571
- style: { flexGrow: 1, textAlign: "center" }
675
+ style: { flexGrow: 1, textAlign: "center", cursor: "pointer" }
572
676
  },
573
- /* @__PURE__ */ import_react8.default.createElement(import_semi_icons2.IconPlus, null)
677
+ /* @__PURE__ */ import_react10.default.createElement(import_semi_icons3.IconPlus, null)
574
678
  )
575
679
  );
576
680
  }
577
681
 
578
682
  // src/components/adder/index.tsx
579
- var import_react11 = __toESM(require("react"));
580
- var import_nanoid3 = require("nanoid");
581
- var import_fixed_layout_editor5 = require("@flowgram.ai/fixed-layout-editor");
582
- var import_semi_ui = require("@douyinfe/semi-ui");
683
+ var import_react13 = __toESM(require("react"));
684
+ var import_nanoid4 = require("nanoid");
685
+ var import_fixed_layout_editor8 = require("@flowgram.ai/fixed-layout-editor");
686
+ var import_semi_ui2 = require("@douyinfe/semi-ui");
583
687
 
584
688
  // src/components/nodes/index.tsx
585
- var import_react10 = __toESM(require("react"));
689
+ var import_react12 = __toESM(require("react"));
586
690
 
587
691
  // src/components/metadata.tsx
588
- var import_react9 = __toESM(require("react"));
589
- var import_nanoid2 = require("nanoid");
692
+ var import_react11 = __toESM(require("react"));
693
+ var import_nanoid3 = require("nanoid");
590
694
  var metadata = {
591
695
  nodes: [
592
696
  {
593
697
  type: "start",
594
698
  label: "Start",
595
- icon: /* @__PURE__ */ import_react9.default.createElement(IconStyleBorder, null)
699
+ icon: /* @__PURE__ */ import_react11.default.createElement(IconStyleBorder, null)
596
700
  },
597
701
  {
598
702
  type: "dynamicSplit",
599
703
  label: "Split Branch",
600
- icon: /* @__PURE__ */ import_react9.default.createElement(IconParkRightBranch, null),
704
+ icon: /* @__PURE__ */ import_react11.default.createElement(IconParkRightBranch, null),
601
705
  blocks() {
602
706
  return [
603
707
  {
604
- id: (0, import_nanoid2.nanoid)(5)
708
+ id: (0, import_nanoid3.nanoid)(5)
605
709
  },
606
710
  {
607
- id: (0, import_nanoid2.nanoid)(5)
711
+ id: (0, import_nanoid3.nanoid)(5)
608
712
  }
609
713
  ];
610
714
  }
@@ -612,32 +716,32 @@ var metadata = {
612
716
  {
613
717
  type: "end",
614
718
  label: "Branch End",
615
- icon: /* @__PURE__ */ import_react9.default.createElement(FeAlignCenter, null),
719
+ icon: /* @__PURE__ */ import_react11.default.createElement(FeAlignCenter, null),
616
720
  branchEnd: true
617
721
  },
618
722
  {
619
723
  type: "loop",
620
724
  schemaType: "loop",
621
725
  label: "Loop",
622
- icon: /* @__PURE__ */ import_react9.default.createElement(BiBootstrapReboot, null)
726
+ icon: /* @__PURE__ */ import_react11.default.createElement(BiBootstrapReboot, null)
623
727
  },
624
728
  {
625
729
  type: "tryCatch",
626
730
  schemaType: "tryCatch",
627
731
  label: "TryCatch",
628
- icon: /* @__PURE__ */ import_react9.default.createElement(IconParkRightBranch, null),
732
+ icon: /* @__PURE__ */ import_react11.default.createElement(IconParkRightBranch, null),
629
733
  blocks() {
630
734
  return [
631
735
  {
632
- id: `try_${(0, import_nanoid2.nanoid)(5)}`
736
+ id: `try_${(0, import_nanoid3.nanoid)(5)}`
633
737
  // try branch
634
738
  },
635
739
  {
636
- id: `catch_${(0, import_nanoid2.nanoid)(5)}`
740
+ id: `catch_${(0, import_nanoid3.nanoid)(5)}`
637
741
  // catch branch 1
638
742
  },
639
743
  {
640
- id: `catch_${(0, import_nanoid2.nanoid)(5)}`
744
+ id: `catch_${(0, import_nanoid3.nanoid)(5)}`
641
745
  // catch branch 2
642
746
  }
643
747
  ];
@@ -646,12 +750,12 @@ var metadata = {
646
750
  {
647
751
  type: "noop",
648
752
  label: "Noop Node",
649
- icon: /* @__PURE__ */ import_react9.default.createElement(BiCloud, null)
753
+ icon: /* @__PURE__ */ import_react11.default.createElement(BiCloud, null)
650
754
  },
651
755
  {
652
756
  type: "end",
653
757
  label: "End",
654
- icon: /* @__PURE__ */ import_react9.default.createElement(PhCircleBold, null)
758
+ icon: /* @__PURE__ */ import_react11.default.createElement(PhCircleBold, null)
655
759
  }
656
760
  ],
657
761
  find: function find(type) {
@@ -690,19 +794,19 @@ var NodesWrap = import_styled_components6.default.div`
690
794
 
691
795
  // src/components/nodes/index.tsx
692
796
  function Node(props) {
693
- return /* @__PURE__ */ import_react10.default.createElement(NodeWrap, { onClick: props.onClick }, /* @__PURE__ */ import_react10.default.createElement("div", { style: { fontSize: 14 } }, props.icon), /* @__PURE__ */ import_react10.default.createElement(NodeLabel, null, props.label));
797
+ return /* @__PURE__ */ import_react12.default.createElement(NodeWrap, { onClick: props.onClick }, /* @__PURE__ */ import_react12.default.createElement("div", { style: { fontSize: 14 } }, props.icon), /* @__PURE__ */ import_react12.default.createElement(NodeLabel, null, props.label));
694
798
  }
695
799
  var addings = metadata_default.nodes.filter((node) => node.type !== "start");
696
800
  function Nodes(props) {
697
- return /* @__PURE__ */ import_react10.default.createElement(NodesWrap, { style: { width: 80 * 2 + 20 } }, addings.map((n, i) => (
801
+ return /* @__PURE__ */ import_react12.default.createElement(NodesWrap, { style: { width: 80 * 2 + 20 } }, addings.map((n, i) => (
698
802
  // eslint-disable-next-line react/no-array-index-key
699
- /* @__PURE__ */ import_react10.default.createElement(Node, { key: i, icon: n.icon, label: n.label, onClick: () => props.onSelect?.(n) })
803
+ /* @__PURE__ */ import_react12.default.createElement(Node, { key: i, icon: n.icon, label: n.label, onClick: () => props.onSelect?.(n) })
700
804
  )));
701
805
  }
702
806
 
703
807
  // src/components/adder/styles.tsx
704
808
  var import_styled_components7 = __toESM(require("styled-components"));
705
- var import_semi_icons3 = require("@douyinfe/semi-icons");
809
+ var import_semi_icons4 = require("@douyinfe/semi-icons");
706
810
  var AdderWrap = import_styled_components7.default.div`
707
811
  width: ${(props) => props.hovered ? 15 : 6}px;
708
812
  height: ${(props) => props.hovered ? 15 : 6}px;
@@ -714,7 +818,7 @@ var AdderWrap = import_styled_components7.default.div`
714
818
  justify-content: center;
715
819
  cursor: pointer;
716
820
  `;
717
- var IconPlus2 = (0, import_styled_components7.default)(import_semi_icons3.IconPlusCircle)`
821
+ var IconPlus3 = (0, import_styled_components7.default)(import_semi_icons4.IconPlusCircle)`
718
822
  color: #3370ff;
719
823
  background-color: #fff;
720
824
  border-radius: 15px;
@@ -723,36 +827,36 @@ var IconPlus2 = (0, import_styled_components7.default)(import_semi_icons3.IconPl
723
827
  // src/components/adder/index.tsx
724
828
  function Adder(props) {
725
829
  const { from } = props;
726
- const [visible, setVisible] = (0, import_react11.useState)(false);
727
- const playground = (0, import_fixed_layout_editor5.usePlayground)();
728
- const flowOperationService = (0, import_fixed_layout_editor5.useService)(import_fixed_layout_editor5.FlowOperationService);
830
+ const [visible, setVisible] = (0, import_react13.useState)(false);
831
+ const playground = (0, import_fixed_layout_editor8.usePlayground)();
832
+ const flowOperationService = (0, import_fixed_layout_editor8.useService)(import_fixed_layout_editor8.FlowOperationService);
729
833
  const add = (addProps) => {
730
834
  const block = flowOperationService.addFromNode(from, {
731
- id: addProps.type + (0, import_nanoid3.nanoid)(5),
835
+ id: addProps.type + (0, import_nanoid4.nanoid)(5),
732
836
  type: addProps.type,
733
837
  blocks: addProps.blocks ? addProps.blocks() : void 0
734
838
  });
735
839
  setTimeout(() => {
736
840
  playground.scrollToView({
737
- bounds: block.getData(import_fixed_layout_editor5.FlowNodeTransformData).bounds,
841
+ bounds: block.getData(import_fixed_layout_editor8.FlowNodeTransformData).bounds,
738
842
  scrollToCenter: true
739
843
  });
740
844
  }, 10);
741
845
  };
742
846
  if (playground.config.readonlyOrDisabled) return null;
743
- return /* @__PURE__ */ import_react11.default.createElement(
744
- import_semi_ui.Popover,
847
+ return /* @__PURE__ */ import_react13.default.createElement(
848
+ import_semi_ui2.Popover,
745
849
  {
746
850
  visible,
747
851
  onVisibleChange: setVisible,
748
- content: /* @__PURE__ */ import_react11.default.createElement(Nodes, { onSelect: add }),
852
+ content: /* @__PURE__ */ import_react13.default.createElement(Nodes, { onSelect: add }),
749
853
  placement: "right",
750
854
  trigger: "click",
751
855
  overlayStyle: {
752
856
  padding: 0
753
857
  }
754
858
  },
755
- /* @__PURE__ */ import_react11.default.createElement(
859
+ /* @__PURE__ */ import_react13.default.createElement(
756
860
  AdderWrap,
757
861
  {
758
862
  hovered: props.hoverActivated,
@@ -761,32 +865,34 @@ function Adder(props) {
761
865
  setVisible(true);
762
866
  }
763
867
  },
764
- props.hoverActivated ? /* @__PURE__ */ import_react11.default.createElement(IconPlus2, null) : null
868
+ props.hoverActivated ? /* @__PURE__ */ import_react13.default.createElement(IconPlus3, null) : null
765
869
  )
766
870
  );
767
871
  }
768
872
 
769
873
  // src/components/index.tsx
770
874
  var defaultFixedSemiMaterials = {
771
- [import_fixed_layout_editor6.FlowRendererKey.ADDER]: Adder,
772
- [import_fixed_layout_editor6.FlowRendererKey.COLLAPSE]: collapse_default,
773
- [import_fixed_layout_editor6.FlowRendererKey.TRY_CATCH_COLLAPSE]: try_catch_collapse_default,
774
- [import_fixed_layout_editor6.FlowRendererKey.BRANCH_ADDER]: BranchAdder,
775
- [import_fixed_layout_editor6.FlowRendererKey.DRAG_NODE]: DragNode,
776
- [import_fixed_layout_editor6.FlowRendererKey.DRAGGABLE_ADDER]: DraggingAdder,
777
- [import_fixed_layout_editor6.FlowRendererKey.DRAG_HIGHLIGHT_ADDER]: DragHighlightAdder,
778
- [import_fixed_layout_editor6.FlowRendererKey.DRAG_BRANCH_HIGHLIGHT_ADDER]: Ellipse
875
+ [import_fixed_layout_editor9.FlowRendererKey.ADDER]: Adder,
876
+ [import_fixed_layout_editor9.FlowRendererKey.COLLAPSE]: collapse_default,
877
+ [import_fixed_layout_editor9.FlowRendererKey.TRY_CATCH_COLLAPSE]: try_catch_collapse_default,
878
+ [import_fixed_layout_editor9.FlowRendererKey.BRANCH_ADDER]: BranchAdder,
879
+ [import_fixed_layout_editor9.FlowRendererKey.DRAG_NODE]: DragNode,
880
+ [import_fixed_layout_editor9.FlowRendererKey.DRAGGABLE_ADDER]: DraggingAdder,
881
+ [import_fixed_layout_editor9.FlowRendererKey.DRAG_HIGHLIGHT_ADDER]: DragHighlightAdder,
882
+ [import_fixed_layout_editor9.FlowRendererKey.DRAG_BRANCH_HIGHLIGHT_ADDER]: Ellipse,
883
+ [import_fixed_layout_editor9.FlowRendererKey.SLOT_COLLAPSE]: SlotCollapse,
884
+ [import_fixed_layout_editor9.FlowRendererKey.SLOT_ADDER]: SlotAdder
779
885
  };
780
886
 
781
887
  // src/components/tools.tsx
782
- var import_react12 = __toESM(require("react"));
783
- var import_fixed_layout_editor7 = require("@flowgram.ai/fixed-layout-editor");
784
- var import_semi_ui2 = require("@douyinfe/semi-ui");
785
- var import_semi_icons4 = require("@douyinfe/semi-icons");
888
+ var import_react14 = __toESM(require("react"));
889
+ var import_fixed_layout_editor10 = require("@flowgram.ai/fixed-layout-editor");
890
+ var import_semi_ui3 = require("@douyinfe/semi-ui");
891
+ var import_semi_icons5 = require("@douyinfe/semi-icons");
786
892
  var PlaygroundTools = ({ layoutText }) => {
787
- const tools = (0, import_fixed_layout_editor7.usePlaygroundTools)();
893
+ const tools = (0, import_fixed_layout_editor10.usePlaygroundTools)();
788
894
  const { zoom } = tools;
789
- return /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.Space, null, /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.Checkbox, { onChange: () => tools.changeLayout(), checked: !tools.isVertical }, layoutText || "isHorizontal"), /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.Tooltip, { content: "fit view" }, /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.IconButton, { icon: /* @__PURE__ */ import_react12.default.createElement(import_semi_icons4.IconGridView, null), onClick: () => tools.fitView() })), /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.Tooltip, { content: "zoom out" }, /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.IconButton, { icon: /* @__PURE__ */ import_react12.default.createElement(import_semi_icons4.IconShrink, null), onClick: () => tools.zoomout() })), /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.Tooltip, { content: "zoom in" }, /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.IconButton, { icon: /* @__PURE__ */ import_react12.default.createElement(import_semi_icons4.IconExpand, null), onClick: () => tools.zoomin() })), /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.Tooltip, { content: "undo" }, /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.IconButton, { icon: /* @__PURE__ */ import_react12.default.createElement(import_semi_icons4.IconUndo, null), disabled: tools.canUndo, onClick: () => tools.undo() })), /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.Tooltip, { content: "redo" }, /* @__PURE__ */ import_react12.default.createElement(import_semi_ui2.IconButton, { icon: /* @__PURE__ */ import_react12.default.createElement(import_semi_icons4.IconRedo, null), disabled: tools.canRedo, onClick: () => tools.redo() })), /* @__PURE__ */ import_react12.default.createElement("span", null, Math.floor(zoom * 100), "%"));
895
+ return /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.Space, null, /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.Checkbox, { onChange: () => tools.changeLayout(), checked: !tools.isVertical }, layoutText || "isHorizontal"), /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.Tooltip, { content: "fit view" }, /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.IconButton, { icon: /* @__PURE__ */ import_react14.default.createElement(import_semi_icons5.IconGridView, null), onClick: () => tools.fitView() })), /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.Tooltip, { content: "zoom out" }, /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.IconButton, { icon: /* @__PURE__ */ import_react14.default.createElement(import_semi_icons5.IconShrink, null), onClick: () => tools.zoomout() })), /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.Tooltip, { content: "zoom in" }, /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.IconButton, { icon: /* @__PURE__ */ import_react14.default.createElement(import_semi_icons5.IconExpand, null), onClick: () => tools.zoomin() })), /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.Tooltip, { content: "undo" }, /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.IconButton, { icon: /* @__PURE__ */ import_react14.default.createElement(import_semi_icons5.IconUndo, null), disabled: tools.canUndo, onClick: () => tools.undo() })), /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.Tooltip, { content: "redo" }, /* @__PURE__ */ import_react14.default.createElement(import_semi_ui3.IconButton, { icon: /* @__PURE__ */ import_react14.default.createElement(import_semi_icons5.IconRedo, null), disabled: tools.canRedo, onClick: () => tools.redo() })), /* @__PURE__ */ import_react14.default.createElement("span", null, Math.floor(zoom * 100), "%"));
790
896
  };
791
897
  // Annotate the CommonJS export names for ESM import in node:
792
898
  0 && (module.exports = {