@flowgram.ai/fixed-semi-materials 0.3.2 → 0.3.4

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/esm/index.js CHANGED
@@ -222,7 +222,7 @@ function TryCatchCollapse(props) {
222
222
  cursor: "pointer",
223
223
  justifyContent: "center",
224
224
  alignItems: "center",
225
- background: hoverActivated ? baseActivatedColor : baseColor
225
+ background: hoverActivated || activateData.lineActivated ? baseActivatedColor : baseColor
226
226
  },
227
227
  "aria-hidden": "true"
228
228
  },
@@ -273,7 +273,7 @@ function TryCatchCollapse(props) {
273
273
  "data-label-id": props.labelId,
274
274
  style: {
275
275
  fontSize: 12,
276
- color: hoverActivated ? baseActivatedColor : baseColor,
276
+ color: hoverActivated || activateData.lineActivated ? baseActivatedColor : baseColor,
277
277
  textAlign: "center",
278
278
  whiteSpace: "nowrap",
279
279
  backgroundColor: "var(--g-editor-background)",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/index.tsx","../../src/assets/ellipsis.tsx","../../src/assets/icons.tsx","../../src/components/try-catch-collapse.tsx","../../src/components/slot-collapse.tsx","../../src/components/collapse/index.tsx","../../src/components/collapse/styles.tsx","../../src/components/slot-adder.tsx","../../src/components/dragging-adder/index.tsx","../../src/components/dragging-adder/styles.tsx","../../src/components/drag-node/index.tsx","../../src/components/drag-node/styles.tsx","../../src/components/constants.tsx","../../src/components/drag-highlight-adder/index.tsx","../../src/components/drag-highlight-adder/styles.tsx","../../src/components/branch-adder/index.tsx","../../src/components/branch-adder/styles.tsx","../../src/components/adder/index.tsx","../../src/components/nodes/index.tsx","../../src/components/metadata.tsx","../../src/components/nodes/styles.tsx","../../src/components/adder/styles.tsx","../../src/components/tools.tsx"],"sourcesContent":["/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { FlowRendererKey } from '@flowgram.ai/fixed-layout-editor';\n\nimport { Ellipse } from '../assets';\nimport TryCatchCollapse from './try-catch-collapse';\nimport { SlotCollapse } from './slot-collapse';\nimport { SlotAdder } from './slot-adder';\nimport DraggingAdder from './dragging-adder';\nimport DragNode from './drag-node';\nimport DragHighlightAdder from './drag-highlight-adder';\nimport Collapse from './collapse';\nimport BranchAdder from './branch-adder';\nimport Adder from './adder';\n\nexport const defaultFixedSemiMaterials = {\n [FlowRendererKey.ADDER]: Adder,\n [FlowRendererKey.COLLAPSE]: Collapse,\n [FlowRendererKey.TRY_CATCH_COLLAPSE]: TryCatchCollapse,\n [FlowRendererKey.BRANCH_ADDER]: BranchAdder,\n [FlowRendererKey.DRAG_NODE]: DragNode,\n [FlowRendererKey.DRAGGABLE_ADDER]: DraggingAdder,\n [FlowRendererKey.DRAG_HIGHLIGHT_ADDER]: DragHighlightAdder,\n [FlowRendererKey.DRAG_BRANCH_HIGHLIGHT_ADDER]: Ellipse,\n [FlowRendererKey.SLOT_COLLPASE]: SlotCollapse,\n [FlowRendererKey.SLOT_ADDER]: SlotAdder,\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nexport function Ellipse() {\n return (\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle id=\"Ellipse 465\" cx=\"4\" cy=\"4\" r=\"3\" fill=\"white\" stroke=\"#3370FF\" strokeWidth=\"2\" />\n </svg>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nexport function IconStyleBorder(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" {...props}>\n <g\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeMiterlimit=\"1.5\"\n strokeWidth=\"1.499\"\n >\n <path\n strokeDasharray=\"2 2\"\n d=\"M16 2H8a6 6 0 0 0-6 6v8a6 6 0 0 0 6 6h8a6 6 0 0 0 6-6V8a6 6 0 0 0-6-6Z\"\n />\n <path d=\"M16 5H8a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3Z\" />\n </g>\n </svg>\n );\n}\n\nexport function IconParkRightBranch(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 48 48\" {...props}>\n <g fill=\"none\">\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M22 8.01176C20.5 8.01193 16.0714 7.93811 15 13.0005C13.917 18.1177 9.85714 22.8477 8 24\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M22 40C20.5 40.0003 16.0714 40.0628 15 35.0005C13.917 29.8833 9.85714 25.1522 8 23.9999\"\n />\n <circle cx=\"8\" cy=\"24\" r=\"4\" fill=\"currentColor\" />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M8 24L22 24\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 24.001H42\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 8.00098H42\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 40.001H42\"\n />\n </g>\n </svg>\n );\n}\n\nexport function PhCircleBold(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 256 256\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M128 236a108 108 0 1 1 108-108a108.1 108.1 0 0 1-108 108Zm0-192a84 84 0 1 0 84 84a84.1 84.1 0 0 0-84-84Z\"\n />\n </svg>\n );\n}\n\nexport function BiCloud(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M4.406 3.342A5.53 5.53 0 0 1 8 2c2.69 0 4.923 2 5.166 4.579C14.758 6.804 16 8.137 16 9.773C16 11.569 14.502 13 12.687 13H3.781C1.708 13 0 11.366 0 9.318c0-1.763 1.266-3.223 2.942-3.593c.143-.863.698-1.723 1.464-2.383zm.653.757c-.757.653-1.153 1.44-1.153 2.056v.448l-.445.049C2.064 6.805 1 7.952 1 9.318C1 10.785 2.23 12 3.781 12h8.906C13.98 12 15 10.988 15 9.773c0-1.216-1.02-2.228-2.313-2.228h-.5v-.5C12.188 4.825 10.328 3 8 3a4.53 4.53 0 0 0-2.941 1.1z\"\n />\n </svg>\n );\n}\n\nexport function BiBootstrapReboot(props: any) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n {...props}\n >\n <g fill=\"currentColor\">\n <path d=\"M1.161 8a6.84 6.84 0 1 0 6.842-6.84a.58.58 0 1 1 0-1.16a8 8 0 1 1-6.556 3.412l-.663-.577a.58.58 0 0 1 .227-.997l2.52-.69a.58.58 0 0 1 .728.633l-.332 2.592a.58.58 0 0 1-.956.364l-.643-.56A6.812 6.812 0 0 0 1.16 8z\" />\n <path d=\"M6.641 11.671V8.843h1.57l1.498 2.828h1.314L9.377 8.665c.897-.3 1.427-1.106 1.427-2.1c0-1.37-.943-2.246-2.456-2.246H5.5v7.352h1.141zm0-3.75V5.277h1.57c.881 0 1.416.499 1.416 1.32c0 .84-.504 1.324-1.386 1.324h-1.6z\" />\n </g>\n </svg>\n );\n}\n\nexport function FeAlignCenter(props: any) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path\n fill=\"#888888\"\n fillRule=\"evenodd\"\n d=\"M11 13v-2H6.286C5.023 11 4 10.105 4 9s1.023-2 2.286-2H11V3a1 1 0 0 1 2 0v4h4.714C18.977 7 20 7.895 20 9s-1.023 2-2.286 2H13v2h3a2 2 0 1 1 0 4h-3v4a1 1 0 0 1-2 0v-4H8a2 2 0 1 1 0-4h3Z\"\n />\n </svg>\n );\n}\n\nexport function Arrow({ color, circleColor }: { color: string; circleColor: string }) {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" fill={circleColor} />\n <path\n fill={color}\n d=\"M10.8281 9.4715C11.0883 9.21131 11.0885 8.78909 10.8291 8.52804C10.6413 8.33892 10.4536 8.14952 10.266 7.9601C9.66706 7.35551 9.06799 6.75079 8.46068 6.15496C8.20439 5.90352 7.7947 5.90352 7.53841 6.15496C6.93103 6.75085 6.33191 7.35564 5.73291 7.96029C5.5454 8.14957 5.3579 8.33884 5.17017 8.52782C4.91075 8.78895 4.91096 9.21099 5.17124 9.47127C5.43152 9.73155 5.85355 9.73176 6.11383 9.47148L7.99955 7.58576L9.88548 9.4717C10.1457 9.73189 10.5679 9.73169 10.8281 9.4715Z\"\n />\n <path\n fill={color}\n d=\"M0.888672 7.99997C0.888672 4.07261 4.07242 0.888855 7.99978 0.888855C11.9271 0.888855 15.1109 4.07261 15.1109 7.99997C15.1109 11.9273 11.9271 15.1111 7.99978 15.1111C4.07242 15.1111 0.888672 11.9273 0.888672 7.99997ZM13.818 7.99997C13.818 4.78667 11.2131 2.18178 7.99978 2.18178C4.78649 2.18178 2.1816 4.78667 2.1816 7.99997C2.1816 11.2133 4.78649 13.8181 7.99978 13.8181C11.2131 13.8181 13.818 11.2133 13.818 7.99997Z\"\n />\n </svg>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport {\n FlowNodeRenderData,\n FlowNodeTransformData,\n type CustomLabelProps,\n Playground,\n useBaseColor,\n FlowTextKey,\n FlowRendererRegistry,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { IconChevronLeft } from '@douyinfe/semi-icons';\n\nfunction TryCatchCollapse(props: CustomLabelProps): JSX.Element {\n const { node } = props;\n const { baseColor, baseActivatedColor } = useBaseColor();\n\n const activateData = node.getData(FlowNodeRenderData)!;\n const transform = node.getData(FlowNodeTransformData)!;\n\n const [hoverActivated, setHoverActivated] = useState(false);\n\n if (!transform || !transform.parent) {\n return <></>;\n }\n\n // hotzone width & height\n const width = transform.inputPoint.x - transform.parent.inputPoint.x;\n const height = 40;\n\n const scrollToActivateNode = () => {\n setTimeout(() => {\n Playground.getLatest()?.scrollToView({\n position: node?.getData(FlowNodeTransformData)?.inputPoint,\n scrollToCenter: true,\n });\n }, 100);\n };\n\n const collapseBlock = () => {\n transform.collapsed = true;\n activateData.activated = false;\n scrollToActivateNode();\n };\n\n const openBlock = () => {\n transform.collapsed = false;\n scrollToActivateNode();\n };\n\n const handleMouseEnter = () => {\n setHoverActivated(true);\n activateData.activated = true;\n };\n\n const handleMouseLeave = () => {\n setHoverActivated(false);\n activateData.activated = false;\n };\n\n const renderCollapse = () => {\n // Expand\n if (transform.collapsed) {\n const childCount = node.allCollapsedChildren.filter(\n (child) => !child.hidden && child !== node\n ).length;\n\n return (\n <div\n onClick={openBlock}\n style={{\n width: 16,\n height: 16,\n fontSize: 10,\n borderRadius: 9,\n display: 'flex',\n color: '#fff',\n cursor: 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n background: hoverActivated ? baseActivatedColor : baseColor,\n }}\n aria-hidden=\"true\"\n >\n {childCount}\n </div>\n );\n }\n\n // Collapse\n if (hoverActivated) {\n return (\n <div\n onClick={collapseBlock}\n style={{\n width: 16,\n height: 16,\n fontSize: 10,\n borderRadius: 9,\n display: 'flex',\n color: '#fff',\n cursor: 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n background: baseActivatedColor,\n }}\n aria-hidden=\"true\"\n >\n <IconChevronLeft />\n </div>\n );\n }\n\n return <></>;\n };\n\n // Collapse\n return (\n <div\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n style={{\n width,\n height,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 6,\n }}\n >\n <div\n data-label-id={props.labelId}\n style={{\n fontSize: 12,\n color: hoverActivated ? baseActivatedColor : baseColor,\n textAlign: 'center',\n whiteSpace: 'nowrap',\n backgroundColor: 'var(--g-editor-background)',\n lineHeight: '20px',\n }}\n >\n {node.getService(FlowRendererRegistry).getText(FlowTextKey.CATCH_TEXT)}\n </div>\n\n {renderCollapse()}\n </div>\n );\n}\n\nexport default TryCatchCollapse;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowNodeTransformData,\n} from '@flowgram.ai/fixed-layout-editor';\n\nimport Collapse from './collapse';\n\nexport function SlotCollapse({ node }: { node: FlowNodeEntity }) {\n const [hoverActivated, setHoverActivated] = useState(false);\n\n const icon = node.firstChild!;\n const iconActivated = icon.getData(FlowNodeRenderData).activated;\n const iconHeight = icon.getData(FlowNodeTransformData).size.height;\n\n const isChildVisible = node.collapsed || hoverActivated || iconActivated;\n\n return (\n <div\n style={{\n width: 30,\n height: iconHeight || 100,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={() => setHoverActivated(true)}\n onMouseLeave={() => setHoverActivated(false)}\n >\n {isChildVisible && (\n <Collapse\n node={node}\n activateNode={icon}\n collapseNode={node}\n arrowDirection=\"left\"\n hoverActivated={hoverActivated}\n />\n )}\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport {\n Playground,\n FlowNodeRenderData,\n FlowNodeTransformData,\n type CollapseProps,\n} from '@flowgram.ai/fixed-layout-editor';\n\nimport { Arrow } from '../../assets';\nimport { Container } from './styles';\n\nfunction Collapse(props: CollapseProps): JSX.Element {\n const { collapseNode, activateNode, hoverActivated } = props;\n\n const activateData = activateNode?.getData(FlowNodeRenderData);\n const transform = collapseNode.getData(FlowNodeTransformData)!;\n\n if (!transform) {\n return <></>;\n }\n\n const scrollToActivateNode = () => {\n setTimeout(() => {\n Playground.getLatest()?.scrollToView({\n position: activateNode?.getData(FlowNodeTransformData)?.outputPoint,\n scrollToCenter: true,\n });\n }, 100);\n };\n\n const collapseBlock = () => {\n transform.collapsed = true;\n activateData?.toggleMouseLeave();\n\n scrollToActivateNode();\n };\n\n const openBlock = () => {\n transform.collapsed = false;\n\n scrollToActivateNode();\n };\n\n // expand\n if (transform.collapsed) {\n const childCount = collapseNode.allCollapsedChildren.filter(\n (child) => !child.hidden && child !== activateNode\n ).length;\n\n return (\n <Container onClick={openBlock} hoverActivated={hoverActivated} aria-hidden=\"true\">\n {childCount}\n </Container>\n );\n }\n\n // dark: var(--semi-color-black)\n // light: var(--semi-color-white)\n const circleColor = 'var(--semi-color-white)';\n const color = hoverActivated ? '#82A7FC' : '#BBBFC4';\n\n // collapse\n return (\n <Container\n onClick={collapseBlock}\n hoverActivated={hoverActivated}\n isVertical={activateNode?.isVertical}\n isCollapse={true}\n aria-hidden=\"true\"\n >\n <Arrow color={color} circleColor={circleColor} />\n </Container>\n );\n}\n\nexport default Collapse;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const Container = styled.div<{\n hoverActivated?: boolean;\n isVertical?: boolean;\n isCollapse?: boolean;\n}>`\n width: 16px;\n height: 16px;\n font-size: 10px;\n border-radius: 9px;\n display: flex;\n color: #fff;\n cursor: pointer;\n justify-content: center;\n align-items: center;\n background: ${(props) => (props.hoverActivated ? '#82A7FC' : '#BBBFC4')};\n transform: ${(props) => (!props.isVertical && props.isCollapse ? 'rotate(-90deg)' : '')};\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowDocument,\n useService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { Button } from '@douyinfe/semi-ui';\nimport { IconPlus } from '@douyinfe/semi-icons';\n\ninterface PropsType {\n node: FlowNodeEntity;\n}\n\nexport function SlotAdder(props: PropsType) {\n const { node } = props;\n\n const nodeData = node.firstChild?.getData<FlowNodeRenderData>(FlowNodeRenderData);\n const document = useService(FlowDocument) as FlowDocument;\n\n async function addPort() {\n document.addNode({\n id: nanoid(5),\n type: 'custom',\n parent: node,\n });\n }\n\n return (\n <div\n style={{\n display: 'flex',\n background: 'var(--semi-color-bg-0)',\n }}\n onMouseEnter={() => nodeData?.toggleMouseEnter()}\n onMouseLeave={() => nodeData?.toggleMouseLeave()}\n >\n <Button\n onClick={() => {\n addPort();\n }}\n size=\"small\"\n icon={<IconPlus />}\n />\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { FlowDragLayer, usePlayground } from '@flowgram.ai/fixed-layout-editor';\n\nimport { UIDragNodeContainer } from './styles';\n\nexport default function DraggingAdder(props: any): JSX.Element {\n const playground = usePlayground();\n const layer = playground.getLayer(FlowDragLayer);\n if (!layer) return <></>;\n if (\n layer.options.canDrop &&\n !layer.options.canDrop({\n dragNodes: layer.dragEntities || [],\n dropNode: props.from,\n isBranch: false,\n })\n ) {\n return <></>;\n }\n return <UIDragNodeContainer />;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIDragNodeContainer = styled.div`\n width: 16px;\n height: 16px;\n border-radius: 100px;\n background-color: white;\n border: 1px dashed #b8bcc1;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport type { FlowNodeEntity } from '@flowgram.ai/fixed-layout-editor';\n\nimport { UIDragNodeContainer, UIDragCounts } from './styles';\n\nexport interface PropsType {\n dragStart: FlowNodeEntity;\n dragNodes: FlowNodeEntity[];\n}\n\nexport default function DragNode(props: PropsType): JSX.Element {\n const { dragStart, dragNodes } = props;\n\n const dragLength = (dragNodes || [])\n .map((_node) =>\n _node.allCollapsedChildren.length\n ? _node.allCollapsedChildren.filter((_n) => !_n.hidden).length\n : 1\n )\n .reduce((acm, curr) => acm + curr, 0);\n\n return (\n <UIDragNodeContainer>\n {dragStart?.id}\n {dragLength > 1 && (\n <>\n <UIDragCounts>{dragLength}</UIDragCounts>\n <UIDragNodeContainer\n style={{\n position: 'absolute',\n top: 5,\n right: -5,\n left: 5,\n bottom: -5,\n opacity: 0.5,\n }}\n />\n </>\n )}\n </UIDragNodeContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nimport { primary, primaryOpacity09 } from '../constants';\n\nexport const UIDragNodeContainer = styled.div`\n position: relative;\n height: 32px;\n border-radius: 5px;\n display: flex;\n align-items: center;\n cursor: pointer;\n font-size: 19px;\n border: 1px solid ${primary};\n padding: 0 15px;\n &:hover: {\n background-color: ${primaryOpacity09};\n color: ${primary};\n }\n`;\n\nexport const UIDragCounts = styled.div`\n position: absolute;\n top: -8px;\n right: -8px;\n text-align: center;\n line-height: 16px;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n font-size: 12px;\n color: #fff;\n background-color: ${primary};\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport const primary = 'hsl(252 62% 54.9%)';\nexport const primaryOpacity09 = 'hsl(252deg 62% 55% / 9%)';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { min } from 'lodash';\nimport { type FlowNodeEntity, FlowNodeTransformData } from '@flowgram.ai/fixed-layout-editor';\n\nimport { Ellipse } from '../../assets';\nimport { UILineContainer, UILine } from './styles';\n\nconst getMinSize = (preWidth: number, nextWidth: number): number => {\n if (!preWidth || preWidth < 0) {\n return 0;\n }\n if (!nextWidth || nextWidth < 0) {\n return preWidth;\n }\n return min([preWidth, nextWidth]) || 0;\n};\n\nexport default function DragHighlightAdder({ node }: { node: FlowNodeEntity }): JSX.Element {\n const transformBounds = node.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds;\n const { isVertical } = node;\n if (isVertical) {\n const preWidth = (transformBounds?.width || 0) - 16;\n const nextNodeBounds =\n node?.next?.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds?.width;\n const nextWidth = (nextNodeBounds || 0) - 16;\n const LineDom = UILine(getMinSize(preWidth, nextWidth), 2);\n return (\n <UILineContainer>\n <Ellipse />\n <LineDom />\n <Ellipse />\n </UILineContainer>\n );\n }\n const preHeight = (transformBounds?.height || 0) - 16;\n const nextNodeBounds =\n node?.next?.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds?.height;\n const nextHeight = (nextNodeBounds || 0) - 16;\n const LineDom = UILine(2, getMinSize(preHeight, nextHeight));\n return (\n <UILineContainer style={{ flexDirection: 'column' }}>\n <Ellipse />\n <LineDom />\n <Ellipse />\n </UILineContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UILineContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const UILine = (width: number, height: number) =>\n styled.div`\n width: ${width}px;\n height: ${height}px;\n background: #3370ff;\n `;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowNodeTransformData,\n FlowOperationService,\n usePlayground,\n useService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { IconPlus } from '@douyinfe/semi-icons';\n\nimport { Container } from './styles';\n\ninterface PropsType {\n activated?: boolean;\n node: FlowNodeEntity;\n}\n\nexport default function BranchAdder(props: PropsType) {\n const { activated, node } = props;\n const nodeData = node.firstChild?.getData<FlowNodeRenderData>(FlowNodeRenderData);\n const playground = usePlayground();\n const flowOperationService = useService(FlowOperationService) as FlowOperationService;\n const { isVertical } = node;\n\n function addBranch() {\n const block = flowOperationService.addBlock(node, { id: nanoid(5) });\n\n setTimeout(() => {\n playground.scrollToView({\n bounds: block.getData<FlowNodeTransformData>(FlowNodeTransformData)!.bounds,\n scrollToCenter: true,\n });\n }, 10);\n }\n if (playground.config.readonlyOrDisabled) return null;\n\n return (\n <Container\n isVertical={isVertical}\n activated={activated || nodeData?.hovered}\n onMouseEnter={() => nodeData?.toggleMouseEnter()}\n onMouseLeave={() => nodeData?.toggleMouseLeave()}\n >\n <div\n onClick={() => {\n addBranch();\n }}\n aria-hidden=\"true\"\n style={{ flexGrow: 1, textAlign: 'center', cursor: 'pointer' }}\n >\n <IconPlus />\n </div>\n </Container>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const Container = styled.div<{ activated?: boolean; isVertical: boolean }>`\n width: 28px;\n height: 18px;\n background: ${(props) => (props.activated ? '#82A7FC' : 'rgb(187, 191, 196)')};\n display: flex;\n border-radius: 9px;\n justify-content: space-evenly;\n align-items: center;\n color: #fff;\n font-size: 10px;\n font-weight: bold;\n transform: ${(props) => (props.isVertical ? '' : 'rotate(90deg)')};\n div {\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n width: 12px;\n height: 12px;\n }\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeTransformData,\n usePlayground,\n useService,\n FlowOperationService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { Popover } from '@douyinfe/semi-ui';\n\nimport Nodes from '../nodes';\nimport { AdderWrap, IconPlus } from './styles';\n\nexport default function Adder(props: {\n from: FlowNodeEntity;\n to?: FlowNodeEntity;\n hoverActivated: boolean;\n}) {\n const { from } = props;\n const [visible, setVisible] = useState(false);\n const playground = usePlayground();\n const flowOperationService = useService(FlowOperationService) as FlowOperationService;\n\n const add = (addProps: any) => {\n const block = flowOperationService.addFromNode(from, {\n id: addProps.type + nanoid(5),\n type: addProps.type,\n blocks: addProps.blocks ? addProps.blocks() : undefined,\n });\n setTimeout(() => {\n playground.scrollToView({\n bounds: block.getData<FlowNodeTransformData>(FlowNodeTransformData)!.bounds,\n scrollToCenter: true,\n });\n }, 10);\n };\n\n if (playground.config.readonlyOrDisabled) return null;\n\n return (\n <Popover\n visible={visible}\n onVisibleChange={setVisible}\n content={<Nodes onSelect={add} />}\n placement=\"right\"\n trigger=\"click\"\n overlayStyle={{\n padding: 0,\n }}\n >\n <AdderWrap\n hovered={props.hoverActivated}\n onMouseDown={(e) => e.stopPropagation()}\n onClick={() => {\n setVisible(true);\n }}\n >\n {props.hoverActivated ? <IconPlus /> : null}\n </AdderWrap>\n </Popover>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport metadata from '../metadata';\nimport { NodeWrap, NodeLabel, NodesWrap } from './styles';\n\nfunction Node(props: { label: string; icon: JSX.Element; onClick: () => void }) {\n return (\n <NodeWrap onClick={props.onClick}>\n <div style={{ fontSize: 14 }}>{props.icon}</div>\n <NodeLabel>{props.label}</NodeLabel>\n </NodeWrap>\n );\n}\n\nconst addings = metadata.nodes.filter((node) => node.type !== 'start');\n\nexport default function Nodes(props: { onSelect: (meta: any) => void }) {\n return (\n <NodesWrap style={{ width: 80 * 2 + 20 }}>\n {addings.map((n, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <Node key={i} icon={n.icon} label={n.label} onClick={() => props.onSelect?.(n)} />\n ))}\n </NodesWrap>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\n\nimport {\n BiBootstrapReboot,\n BiCloud,\n FeAlignCenter,\n IconStyleBorder,\n IconParkRightBranch,\n PhCircleBold,\n} from '../assets';\n\nconst metadata = {\n nodes: [\n {\n type: 'start',\n label: 'Start',\n icon: <IconStyleBorder />,\n },\n {\n type: 'dynamicSplit',\n label: 'Split Branch',\n icon: <IconParkRightBranch />,\n blocks() {\n return [\n {\n id: nanoid(5),\n },\n {\n id: nanoid(5),\n },\n ];\n },\n },\n {\n type: 'end',\n label: 'Branch End',\n icon: <FeAlignCenter />,\n branchEnd: true,\n },\n {\n type: 'loop',\n schemaType: 'loop',\n label: 'Loop',\n icon: <BiBootstrapReboot />,\n },\n {\n type: 'tryCatch',\n schemaType: 'tryCatch',\n label: 'TryCatch',\n icon: <IconParkRightBranch />,\n blocks() {\n return [\n {\n id: `try_${nanoid(5)}`, // try branch\n },\n {\n id: `catch_${nanoid(5)}`, // catch branch 1\n },\n {\n id: `catch_${nanoid(5)}`, // catch branch 2\n },\n ];\n },\n },\n {\n type: 'noop',\n label: 'Noop Node',\n icon: <BiCloud />,\n },\n {\n type: 'end',\n label: 'End',\n icon: <PhCircleBold />,\n },\n ],\n find: function find(type: any) {\n return metadata.nodes.find((m) => m.type === type);\n },\n};\n\nexport default metadata;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nimport { primary, primaryOpacity09 } from '../constants';\n\nexport const NodeWrap = styled.div`\n width: 100%;\n height: 32px;\n border-radius: 5px;\n display: flex;\n align-items: center;\n cursor: pointer;\n font-size: 19px;\n padding: 0 15px;\n &:hover: {\n background-color: ${primaryOpacity09};\n color: ${primary};\n },\n`;\n\nexport const NodeLabel = styled.div`\n font-size: 12px;\n margin-left: 10px;\n`;\n\nexport const NodesWrap = styled.div`\n max-height: 500px;\n overflow: auto;\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\nimport { IconPlusCircle } from '@douyinfe/semi-icons';\n\nexport const AdderWrap = styled.div<{ hovered?: boolean }>`\n width: ${(props) => (props.hovered ? 15 : 6)}px;\n height: ${(props) => (props.hovered ? 15 : 6)}px;\n background-color: rgb(143, 149, 158);\n color: #fff;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n`;\n\nexport const IconPlus = styled(IconPlusCircle)`\n color: #3370ff;\n background-color: #fff;\n border-radius: 15px;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { usePlaygroundTools } from '@flowgram.ai/fixed-layout-editor';\nimport { Checkbox, IconButton, Space, Tooltip } from '@douyinfe/semi-ui';\nimport { IconUndo, IconRedo, IconShrink, IconExpand, IconGridView } from '@douyinfe/semi-icons';\n\nexport const PlaygroundTools = ({ layoutText }: { layoutText?: string }) => {\n const tools = usePlaygroundTools();\n const { zoom } = tools;\n\n return (\n <Space>\n <Checkbox onChange={() => tools.changeLayout()} checked={!tools.isVertical}>\n {layoutText || 'isHorizontal'}\n </Checkbox>\n <Tooltip content=\"fit view\">\n <IconButton icon={<IconGridView />} onClick={() => tools.fitView()} />\n </Tooltip>\n <Tooltip content=\"zoom out\">\n <IconButton icon={<IconShrink />} onClick={() => tools.zoomout()} />\n </Tooltip>\n <Tooltip content=\"zoom in\">\n <IconButton icon={<IconExpand />} onClick={() => tools.zoomin()} />\n </Tooltip>\n <Tooltip content=\"undo\">\n <IconButton icon={<IconUndo />} disabled={tools.canUndo} onClick={() => tools.undo()} />\n </Tooltip>\n <Tooltip content=\"redo\">\n <IconButton icon={<IconRedo />} disabled={tools.canRedo} onClick={() => tools.redo()} />\n </Tooltip>\n <span>{Math.floor(zoom * 100)}%</span>\n </Space>\n );\n};\n"],"mappings":"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","names":["React","React","React","useState","FlowNodeRenderData","FlowNodeTransformData","React","Playground","FlowNodeRenderData","FlowNodeTransformData","FlowNodeRenderData","FlowNodeTransformData","React","Playground","useState","FlowNodeRenderData","FlowNodeTransformData","React","React","FlowNodeRenderData","React","styled","React","React","styled","UIDragNodeContainer","styled","React","UIDragNodeContainer","React","FlowNodeTransformData","styled","FlowNodeTransformData","nextNodeBounds","LineDom","React","React","nanoid","FlowNodeRenderData","FlowNodeTransformData","usePlayground","useService","IconPlus","styled","Container","FlowNodeRenderData","usePlayground","useService","nanoid","FlowNodeTransformData","React","Container","IconPlus","React","useState","nanoid","FlowNodeTransformData","usePlayground","useService","FlowOperationService","React","React","nanoid","React","nanoid","styled","styled","React","styled","IconPlus","useState","usePlayground","useService","FlowOperationService","nanoid","FlowNodeTransformData","React","IconPlus","React"]}
1
+ {"version":3,"sources":["../../src/components/index.tsx","../../src/assets/ellipsis.tsx","../../src/assets/icons.tsx","../../src/components/try-catch-collapse.tsx","../../src/components/slot-collapse.tsx","../../src/components/collapse/index.tsx","../../src/components/collapse/styles.tsx","../../src/components/slot-adder.tsx","../../src/components/dragging-adder/index.tsx","../../src/components/dragging-adder/styles.tsx","../../src/components/drag-node/index.tsx","../../src/components/drag-node/styles.tsx","../../src/components/constants.tsx","../../src/components/drag-highlight-adder/index.tsx","../../src/components/drag-highlight-adder/styles.tsx","../../src/components/branch-adder/index.tsx","../../src/components/branch-adder/styles.tsx","../../src/components/adder/index.tsx","../../src/components/nodes/index.tsx","../../src/components/metadata.tsx","../../src/components/nodes/styles.tsx","../../src/components/adder/styles.tsx","../../src/components/tools.tsx"],"sourcesContent":["/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { FlowRendererKey } from '@flowgram.ai/fixed-layout-editor';\n\nimport { Ellipse } from '../assets';\nimport TryCatchCollapse from './try-catch-collapse';\nimport { SlotCollapse } from './slot-collapse';\nimport { SlotAdder } from './slot-adder';\nimport DraggingAdder from './dragging-adder';\nimport DragNode from './drag-node';\nimport DragHighlightAdder from './drag-highlight-adder';\nimport Collapse from './collapse';\nimport BranchAdder from './branch-adder';\nimport Adder from './adder';\n\nexport const defaultFixedSemiMaterials = {\n [FlowRendererKey.ADDER]: Adder,\n [FlowRendererKey.COLLAPSE]: Collapse,\n [FlowRendererKey.TRY_CATCH_COLLAPSE]: TryCatchCollapse,\n [FlowRendererKey.BRANCH_ADDER]: BranchAdder,\n [FlowRendererKey.DRAG_NODE]: DragNode,\n [FlowRendererKey.DRAGGABLE_ADDER]: DraggingAdder,\n [FlowRendererKey.DRAG_HIGHLIGHT_ADDER]: DragHighlightAdder,\n [FlowRendererKey.DRAG_BRANCH_HIGHLIGHT_ADDER]: Ellipse,\n [FlowRendererKey.SLOT_COLLPASE]: SlotCollapse,\n [FlowRendererKey.SLOT_ADDER]: SlotAdder,\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nexport function Ellipse() {\n return (\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle id=\"Ellipse 465\" cx=\"4\" cy=\"4\" r=\"3\" fill=\"white\" stroke=\"#3370FF\" strokeWidth=\"2\" />\n </svg>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nexport function IconStyleBorder(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" {...props}>\n <g\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeMiterlimit=\"1.5\"\n strokeWidth=\"1.499\"\n >\n <path\n strokeDasharray=\"2 2\"\n d=\"M16 2H8a6 6 0 0 0-6 6v8a6 6 0 0 0 6 6h8a6 6 0 0 0 6-6V8a6 6 0 0 0-6-6Z\"\n />\n <path d=\"M16 5H8a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3Z\" />\n </g>\n </svg>\n );\n}\n\nexport function IconParkRightBranch(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 48 48\" {...props}>\n <g fill=\"none\">\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M22 8.01176C20.5 8.01193 16.0714 7.93811 15 13.0005C13.917 18.1177 9.85714 22.8477 8 24\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M22 40C20.5 40.0003 16.0714 40.0628 15 35.0005C13.917 29.8833 9.85714 25.1522 8 23.9999\"\n />\n <circle cx=\"8\" cy=\"24\" r=\"4\" fill=\"currentColor\" />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M8 24L22 24\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 24.001H42\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 8.00098H42\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 40.001H42\"\n />\n </g>\n </svg>\n );\n}\n\nexport function PhCircleBold(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 256 256\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M128 236a108 108 0 1 1 108-108a108.1 108.1 0 0 1-108 108Zm0-192a84 84 0 1 0 84 84a84.1 84.1 0 0 0-84-84Z\"\n />\n </svg>\n );\n}\n\nexport function BiCloud(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M4.406 3.342A5.53 5.53 0 0 1 8 2c2.69 0 4.923 2 5.166 4.579C14.758 6.804 16 8.137 16 9.773C16 11.569 14.502 13 12.687 13H3.781C1.708 13 0 11.366 0 9.318c0-1.763 1.266-3.223 2.942-3.593c.143-.863.698-1.723 1.464-2.383zm.653.757c-.757.653-1.153 1.44-1.153 2.056v.448l-.445.049C2.064 6.805 1 7.952 1 9.318C1 10.785 2.23 12 3.781 12h8.906C13.98 12 15 10.988 15 9.773c0-1.216-1.02-2.228-2.313-2.228h-.5v-.5C12.188 4.825 10.328 3 8 3a4.53 4.53 0 0 0-2.941 1.1z\"\n />\n </svg>\n );\n}\n\nexport function BiBootstrapReboot(props: any) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n {...props}\n >\n <g fill=\"currentColor\">\n <path d=\"M1.161 8a6.84 6.84 0 1 0 6.842-6.84a.58.58 0 1 1 0-1.16a8 8 0 1 1-6.556 3.412l-.663-.577a.58.58 0 0 1 .227-.997l2.52-.69a.58.58 0 0 1 .728.633l-.332 2.592a.58.58 0 0 1-.956.364l-.643-.56A6.812 6.812 0 0 0 1.16 8z\" />\n <path d=\"M6.641 11.671V8.843h1.57l1.498 2.828h1.314L9.377 8.665c.897-.3 1.427-1.106 1.427-2.1c0-1.37-.943-2.246-2.456-2.246H5.5v7.352h1.141zm0-3.75V5.277h1.57c.881 0 1.416.499 1.416 1.32c0 .84-.504 1.324-1.386 1.324h-1.6z\" />\n </g>\n </svg>\n );\n}\n\nexport function FeAlignCenter(props: any) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path\n fill=\"#888888\"\n fillRule=\"evenodd\"\n d=\"M11 13v-2H6.286C5.023 11 4 10.105 4 9s1.023-2 2.286-2H11V3a1 1 0 0 1 2 0v4h4.714C18.977 7 20 7.895 20 9s-1.023 2-2.286 2H13v2h3a2 2 0 1 1 0 4h-3v4a1 1 0 0 1-2 0v-4H8a2 2 0 1 1 0-4h3Z\"\n />\n </svg>\n );\n}\n\nexport function Arrow({ color, circleColor }: { color: string; circleColor: string }) {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" fill={circleColor} />\n <path\n fill={color}\n d=\"M10.8281 9.4715C11.0883 9.21131 11.0885 8.78909 10.8291 8.52804C10.6413 8.33892 10.4536 8.14952 10.266 7.9601C9.66706 7.35551 9.06799 6.75079 8.46068 6.15496C8.20439 5.90352 7.7947 5.90352 7.53841 6.15496C6.93103 6.75085 6.33191 7.35564 5.73291 7.96029C5.5454 8.14957 5.3579 8.33884 5.17017 8.52782C4.91075 8.78895 4.91096 9.21099 5.17124 9.47127C5.43152 9.73155 5.85355 9.73176 6.11383 9.47148L7.99955 7.58576L9.88548 9.4717C10.1457 9.73189 10.5679 9.73169 10.8281 9.4715Z\"\n />\n <path\n fill={color}\n d=\"M0.888672 7.99997C0.888672 4.07261 4.07242 0.888855 7.99978 0.888855C11.9271 0.888855 15.1109 4.07261 15.1109 7.99997C15.1109 11.9273 11.9271 15.1111 7.99978 15.1111C4.07242 15.1111 0.888672 11.9273 0.888672 7.99997ZM13.818 7.99997C13.818 4.78667 11.2131 2.18178 7.99978 2.18178C4.78649 2.18178 2.1816 4.78667 2.1816 7.99997C2.1816 11.2133 4.78649 13.8181 7.99978 13.8181C11.2131 13.8181 13.818 11.2133 13.818 7.99997Z\"\n />\n </svg>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport {\n FlowNodeRenderData,\n FlowNodeTransformData,\n type CustomLabelProps,\n Playground,\n useBaseColor,\n FlowTextKey,\n FlowRendererRegistry,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { IconChevronLeft } from '@douyinfe/semi-icons';\n\nfunction TryCatchCollapse(props: CustomLabelProps): JSX.Element {\n const { node } = props;\n const { baseColor, baseActivatedColor } = useBaseColor();\n\n const activateData = node.getData(FlowNodeRenderData)!;\n const transform = node.getData(FlowNodeTransformData)!;\n\n const [hoverActivated, setHoverActivated] = useState(false);\n\n if (!transform || !transform.parent) {\n return <></>;\n }\n\n // hotzone width & height\n const width = transform.inputPoint.x - transform.parent.inputPoint.x;\n const height = 40;\n\n const scrollToActivateNode = () => {\n setTimeout(() => {\n Playground.getLatest()?.scrollToView({\n position: node?.getData(FlowNodeTransformData)?.inputPoint,\n scrollToCenter: true,\n });\n }, 100);\n };\n\n const collapseBlock = () => {\n transform.collapsed = true;\n activateData.activated = false;\n scrollToActivateNode();\n };\n\n const openBlock = () => {\n transform.collapsed = false;\n scrollToActivateNode();\n };\n\n const handleMouseEnter = () => {\n setHoverActivated(true);\n activateData.activated = true;\n };\n\n const handleMouseLeave = () => {\n setHoverActivated(false);\n activateData.activated = false;\n };\n\n const renderCollapse = () => {\n // Expand\n if (transform.collapsed) {\n const childCount = node.allCollapsedChildren.filter(\n (child) => !child.hidden && child !== node\n ).length;\n\n return (\n <div\n onClick={openBlock}\n style={{\n width: 16,\n height: 16,\n fontSize: 10,\n borderRadius: 9,\n display: 'flex',\n color: '#fff',\n cursor: 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n background:\n hoverActivated || activateData.lineActivated ? baseActivatedColor : baseColor,\n }}\n aria-hidden=\"true\"\n >\n {childCount}\n </div>\n );\n }\n\n // Collapse\n if (hoverActivated) {\n return (\n <div\n onClick={collapseBlock}\n style={{\n width: 16,\n height: 16,\n fontSize: 10,\n borderRadius: 9,\n display: 'flex',\n color: '#fff',\n cursor: 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n background: baseActivatedColor,\n }}\n aria-hidden=\"true\"\n >\n <IconChevronLeft />\n </div>\n );\n }\n\n return <></>;\n };\n\n // Collapse\n return (\n <div\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n style={{\n width,\n height,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 6,\n }}\n >\n <div\n data-label-id={props.labelId}\n style={{\n fontSize: 12,\n color: hoverActivated || activateData.lineActivated ? baseActivatedColor : baseColor,\n textAlign: 'center',\n whiteSpace: 'nowrap',\n backgroundColor: 'var(--g-editor-background)',\n lineHeight: '20px',\n }}\n >\n {node.getService(FlowRendererRegistry).getText(FlowTextKey.CATCH_TEXT)}\n </div>\n\n {renderCollapse()}\n </div>\n );\n}\n\nexport default TryCatchCollapse;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowNodeTransformData,\n} from '@flowgram.ai/fixed-layout-editor';\n\nimport Collapse from './collapse';\n\nexport function SlotCollapse({ node }: { node: FlowNodeEntity }) {\n const [hoverActivated, setHoverActivated] = useState(false);\n\n const icon = node.firstChild!;\n const iconActivated = icon.getData(FlowNodeRenderData).activated;\n const iconHeight = icon.getData(FlowNodeTransformData).size.height;\n\n const isChildVisible = node.collapsed || hoverActivated || iconActivated;\n\n return (\n <div\n style={{\n width: 30,\n height: iconHeight || 100,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={() => setHoverActivated(true)}\n onMouseLeave={() => setHoverActivated(false)}\n >\n {isChildVisible && (\n <Collapse\n node={node}\n activateNode={icon}\n collapseNode={node}\n arrowDirection=\"left\"\n hoverActivated={hoverActivated}\n />\n )}\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport {\n Playground,\n FlowNodeRenderData,\n FlowNodeTransformData,\n type CollapseProps,\n} from '@flowgram.ai/fixed-layout-editor';\n\nimport { Arrow } from '../../assets';\nimport { Container } from './styles';\n\nfunction Collapse(props: CollapseProps): JSX.Element {\n const { collapseNode, activateNode, hoverActivated } = props;\n\n const activateData = activateNode?.getData(FlowNodeRenderData);\n const transform = collapseNode.getData(FlowNodeTransformData)!;\n\n if (!transform) {\n return <></>;\n }\n\n const scrollToActivateNode = () => {\n setTimeout(() => {\n Playground.getLatest()?.scrollToView({\n position: activateNode?.getData(FlowNodeTransformData)?.outputPoint,\n scrollToCenter: true,\n });\n }, 100);\n };\n\n const collapseBlock = () => {\n transform.collapsed = true;\n activateData?.toggleMouseLeave();\n\n scrollToActivateNode();\n };\n\n const openBlock = () => {\n transform.collapsed = false;\n\n scrollToActivateNode();\n };\n\n // expand\n if (transform.collapsed) {\n const childCount = collapseNode.allCollapsedChildren.filter(\n (child) => !child.hidden && child !== activateNode\n ).length;\n\n return (\n <Container onClick={openBlock} hoverActivated={hoverActivated} aria-hidden=\"true\">\n {childCount}\n </Container>\n );\n }\n\n // dark: var(--semi-color-black)\n // light: var(--semi-color-white)\n const circleColor = 'var(--semi-color-white)';\n const color = hoverActivated ? '#82A7FC' : '#BBBFC4';\n\n // collapse\n return (\n <Container\n onClick={collapseBlock}\n hoverActivated={hoverActivated}\n isVertical={activateNode?.isVertical}\n isCollapse={true}\n aria-hidden=\"true\"\n >\n <Arrow color={color} circleColor={circleColor} />\n </Container>\n );\n}\n\nexport default Collapse;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const Container = styled.div<{\n hoverActivated?: boolean;\n isVertical?: boolean;\n isCollapse?: boolean;\n}>`\n width: 16px;\n height: 16px;\n font-size: 10px;\n border-radius: 9px;\n display: flex;\n color: #fff;\n cursor: pointer;\n justify-content: center;\n align-items: center;\n background: ${(props) => (props.hoverActivated ? '#82A7FC' : '#BBBFC4')};\n transform: ${(props) => (!props.isVertical && props.isCollapse ? 'rotate(-90deg)' : '')};\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowDocument,\n useService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { Button } from '@douyinfe/semi-ui';\nimport { IconPlus } from '@douyinfe/semi-icons';\n\ninterface PropsType {\n node: FlowNodeEntity;\n}\n\nexport function SlotAdder(props: PropsType) {\n const { node } = props;\n\n const nodeData = node.firstChild?.getData<FlowNodeRenderData>(FlowNodeRenderData);\n const document = useService(FlowDocument) as FlowDocument;\n\n async function addPort() {\n document.addNode({\n id: nanoid(5),\n type: 'custom',\n parent: node,\n });\n }\n\n return (\n <div\n style={{\n display: 'flex',\n background: 'var(--semi-color-bg-0)',\n }}\n onMouseEnter={() => nodeData?.toggleMouseEnter()}\n onMouseLeave={() => nodeData?.toggleMouseLeave()}\n >\n <Button\n onClick={() => {\n addPort();\n }}\n size=\"small\"\n icon={<IconPlus />}\n />\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { FlowDragLayer, usePlayground } from '@flowgram.ai/fixed-layout-editor';\n\nimport { UIDragNodeContainer } from './styles';\n\nexport default function DraggingAdder(props: any): JSX.Element {\n const playground = usePlayground();\n const layer = playground.getLayer(FlowDragLayer);\n if (!layer) return <></>;\n if (\n layer.options.canDrop &&\n !layer.options.canDrop({\n dragNodes: layer.dragEntities || [],\n dropNode: props.from,\n isBranch: false,\n })\n ) {\n return <></>;\n }\n return <UIDragNodeContainer />;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIDragNodeContainer = styled.div`\n width: 16px;\n height: 16px;\n border-radius: 100px;\n background-color: white;\n border: 1px dashed #b8bcc1;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport type { FlowNodeEntity } from '@flowgram.ai/fixed-layout-editor';\n\nimport { UIDragNodeContainer, UIDragCounts } from './styles';\n\nexport interface PropsType {\n dragStart: FlowNodeEntity;\n dragNodes: FlowNodeEntity[];\n}\n\nexport default function DragNode(props: PropsType): JSX.Element {\n const { dragStart, dragNodes } = props;\n\n const dragLength = (dragNodes || [])\n .map((_node) =>\n _node.allCollapsedChildren.length\n ? _node.allCollapsedChildren.filter((_n) => !_n.hidden).length\n : 1\n )\n .reduce((acm, curr) => acm + curr, 0);\n\n return (\n <UIDragNodeContainer>\n {dragStart?.id}\n {dragLength > 1 && (\n <>\n <UIDragCounts>{dragLength}</UIDragCounts>\n <UIDragNodeContainer\n style={{\n position: 'absolute',\n top: 5,\n right: -5,\n left: 5,\n bottom: -5,\n opacity: 0.5,\n }}\n />\n </>\n )}\n </UIDragNodeContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nimport { primary, primaryOpacity09 } from '../constants';\n\nexport const UIDragNodeContainer = styled.div`\n position: relative;\n height: 32px;\n border-radius: 5px;\n display: flex;\n align-items: center;\n cursor: pointer;\n font-size: 19px;\n border: 1px solid ${primary};\n padding: 0 15px;\n &:hover: {\n background-color: ${primaryOpacity09};\n color: ${primary};\n }\n`;\n\nexport const UIDragCounts = styled.div`\n position: absolute;\n top: -8px;\n right: -8px;\n text-align: center;\n line-height: 16px;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n font-size: 12px;\n color: #fff;\n background-color: ${primary};\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport const primary = 'hsl(252 62% 54.9%)';\nexport const primaryOpacity09 = 'hsl(252deg 62% 55% / 9%)';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { min } from 'lodash';\nimport { type FlowNodeEntity, FlowNodeTransformData } from '@flowgram.ai/fixed-layout-editor';\n\nimport { Ellipse } from '../../assets';\nimport { UILineContainer, UILine } from './styles';\n\nconst getMinSize = (preWidth: number, nextWidth: number): number => {\n if (!preWidth || preWidth < 0) {\n return 0;\n }\n if (!nextWidth || nextWidth < 0) {\n return preWidth;\n }\n return min([preWidth, nextWidth]) || 0;\n};\n\nexport default function DragHighlightAdder({ node }: { node: FlowNodeEntity }): JSX.Element {\n const transformBounds = node.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds;\n const { isVertical } = node;\n if (isVertical) {\n const preWidth = (transformBounds?.width || 0) - 16;\n const nextNodeBounds =\n node?.next?.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds?.width;\n const nextWidth = (nextNodeBounds || 0) - 16;\n const LineDom = UILine(getMinSize(preWidth, nextWidth), 2);\n return (\n <UILineContainer>\n <Ellipse />\n <LineDom />\n <Ellipse />\n </UILineContainer>\n );\n }\n const preHeight = (transformBounds?.height || 0) - 16;\n const nextNodeBounds =\n node?.next?.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds?.height;\n const nextHeight = (nextNodeBounds || 0) - 16;\n const LineDom = UILine(2, getMinSize(preHeight, nextHeight));\n return (\n <UILineContainer style={{ flexDirection: 'column' }}>\n <Ellipse />\n <LineDom />\n <Ellipse />\n </UILineContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UILineContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const UILine = (width: number, height: number) =>\n styled.div`\n width: ${width}px;\n height: ${height}px;\n background: #3370ff;\n `;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowNodeTransformData,\n FlowOperationService,\n usePlayground,\n useService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { IconPlus } from '@douyinfe/semi-icons';\n\nimport { Container } from './styles';\n\ninterface PropsType {\n activated?: boolean;\n node: FlowNodeEntity;\n}\n\nexport default function BranchAdder(props: PropsType) {\n const { activated, node } = props;\n const nodeData = node.firstChild?.getData<FlowNodeRenderData>(FlowNodeRenderData);\n const playground = usePlayground();\n const flowOperationService = useService(FlowOperationService) as FlowOperationService;\n const { isVertical } = node;\n\n function addBranch() {\n const block = flowOperationService.addBlock(node, { id: nanoid(5) });\n\n setTimeout(() => {\n playground.scrollToView({\n bounds: block.getData<FlowNodeTransformData>(FlowNodeTransformData)!.bounds,\n scrollToCenter: true,\n });\n }, 10);\n }\n if (playground.config.readonlyOrDisabled) return null;\n\n return (\n <Container\n isVertical={isVertical}\n activated={activated || nodeData?.hovered}\n onMouseEnter={() => nodeData?.toggleMouseEnter()}\n onMouseLeave={() => nodeData?.toggleMouseLeave()}\n >\n <div\n onClick={() => {\n addBranch();\n }}\n aria-hidden=\"true\"\n style={{ flexGrow: 1, textAlign: 'center', cursor: 'pointer' }}\n >\n <IconPlus />\n </div>\n </Container>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const Container = styled.div<{ activated?: boolean; isVertical: boolean }>`\n width: 28px;\n height: 18px;\n background: ${(props) => (props.activated ? '#82A7FC' : 'rgb(187, 191, 196)')};\n display: flex;\n border-radius: 9px;\n justify-content: space-evenly;\n align-items: center;\n color: #fff;\n font-size: 10px;\n font-weight: bold;\n transform: ${(props) => (props.isVertical ? '' : 'rotate(90deg)')};\n div {\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n width: 12px;\n height: 12px;\n }\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeTransformData,\n usePlayground,\n useService,\n FlowOperationService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { Popover } from '@douyinfe/semi-ui';\n\nimport Nodes from '../nodes';\nimport { AdderWrap, IconPlus } from './styles';\n\nexport default function Adder(props: {\n from: FlowNodeEntity;\n to?: FlowNodeEntity;\n hoverActivated: boolean;\n}) {\n const { from } = props;\n const [visible, setVisible] = useState(false);\n const playground = usePlayground();\n const flowOperationService = useService(FlowOperationService) as FlowOperationService;\n\n const add = (addProps: any) => {\n const block = flowOperationService.addFromNode(from, {\n id: addProps.type + nanoid(5),\n type: addProps.type,\n blocks: addProps.blocks ? addProps.blocks() : undefined,\n });\n setTimeout(() => {\n playground.scrollToView({\n bounds: block.getData<FlowNodeTransformData>(FlowNodeTransformData)!.bounds,\n scrollToCenter: true,\n });\n }, 10);\n };\n\n if (playground.config.readonlyOrDisabled) return null;\n\n return (\n <Popover\n visible={visible}\n onVisibleChange={setVisible}\n content={<Nodes onSelect={add} />}\n placement=\"right\"\n trigger=\"click\"\n overlayStyle={{\n padding: 0,\n }}\n >\n <AdderWrap\n hovered={props.hoverActivated}\n onMouseDown={(e) => e.stopPropagation()}\n onClick={() => {\n setVisible(true);\n }}\n >\n {props.hoverActivated ? <IconPlus /> : null}\n </AdderWrap>\n </Popover>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport metadata from '../metadata';\nimport { NodeWrap, NodeLabel, NodesWrap } from './styles';\n\nfunction Node(props: { label: string; icon: JSX.Element; onClick: () => void }) {\n return (\n <NodeWrap onClick={props.onClick}>\n <div style={{ fontSize: 14 }}>{props.icon}</div>\n <NodeLabel>{props.label}</NodeLabel>\n </NodeWrap>\n );\n}\n\nconst addings = metadata.nodes.filter((node) => node.type !== 'start');\n\nexport default function Nodes(props: { onSelect: (meta: any) => void }) {\n return (\n <NodesWrap style={{ width: 80 * 2 + 20 }}>\n {addings.map((n, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <Node key={i} icon={n.icon} label={n.label} onClick={() => props.onSelect?.(n)} />\n ))}\n </NodesWrap>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\n\nimport {\n BiBootstrapReboot,\n BiCloud,\n FeAlignCenter,\n IconStyleBorder,\n IconParkRightBranch,\n PhCircleBold,\n} from '../assets';\n\nconst metadata = {\n nodes: [\n {\n type: 'start',\n label: 'Start',\n icon: <IconStyleBorder />,\n },\n {\n type: 'dynamicSplit',\n label: 'Split Branch',\n icon: <IconParkRightBranch />,\n blocks() {\n return [\n {\n id: nanoid(5),\n },\n {\n id: nanoid(5),\n },\n ];\n },\n },\n {\n type: 'end',\n label: 'Branch End',\n icon: <FeAlignCenter />,\n branchEnd: true,\n },\n {\n type: 'loop',\n schemaType: 'loop',\n label: 'Loop',\n icon: <BiBootstrapReboot />,\n },\n {\n type: 'tryCatch',\n schemaType: 'tryCatch',\n label: 'TryCatch',\n icon: <IconParkRightBranch />,\n blocks() {\n return [\n {\n id: `try_${nanoid(5)}`, // try branch\n },\n {\n id: `catch_${nanoid(5)}`, // catch branch 1\n },\n {\n id: `catch_${nanoid(5)}`, // catch branch 2\n },\n ];\n },\n },\n {\n type: 'noop',\n label: 'Noop Node',\n icon: <BiCloud />,\n },\n {\n type: 'end',\n label: 'End',\n icon: <PhCircleBold />,\n },\n ],\n find: function find(type: any) {\n return metadata.nodes.find((m) => m.type === type);\n },\n};\n\nexport default metadata;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nimport { primary, primaryOpacity09 } from '../constants';\n\nexport const NodeWrap = styled.div`\n width: 100%;\n height: 32px;\n border-radius: 5px;\n display: flex;\n align-items: center;\n cursor: pointer;\n font-size: 19px;\n padding: 0 15px;\n &:hover: {\n background-color: ${primaryOpacity09};\n color: ${primary};\n },\n`;\n\nexport const NodeLabel = styled.div`\n font-size: 12px;\n margin-left: 10px;\n`;\n\nexport const NodesWrap = styled.div`\n max-height: 500px;\n overflow: auto;\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\nimport { IconPlusCircle } from '@douyinfe/semi-icons';\n\nexport const AdderWrap = styled.div<{ hovered?: boolean }>`\n width: ${(props) => (props.hovered ? 15 : 6)}px;\n height: ${(props) => (props.hovered ? 15 : 6)}px;\n background-color: rgb(143, 149, 158);\n color: #fff;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n`;\n\nexport const IconPlus = styled(IconPlusCircle)`\n color: #3370ff;\n background-color: #fff;\n border-radius: 15px;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { usePlaygroundTools } from '@flowgram.ai/fixed-layout-editor';\nimport { Checkbox, IconButton, Space, Tooltip } from '@douyinfe/semi-ui';\nimport { IconUndo, IconRedo, IconShrink, IconExpand, IconGridView } from '@douyinfe/semi-icons';\n\nexport const PlaygroundTools = ({ layoutText }: { layoutText?: string }) => {\n const tools = usePlaygroundTools();\n const { zoom } = tools;\n\n return (\n <Space>\n <Checkbox onChange={() => tools.changeLayout()} checked={!tools.isVertical}>\n {layoutText || 'isHorizontal'}\n </Checkbox>\n <Tooltip content=\"fit view\">\n <IconButton icon={<IconGridView />} onClick={() => tools.fitView()} />\n </Tooltip>\n <Tooltip content=\"zoom out\">\n <IconButton icon={<IconShrink />} onClick={() => tools.zoomout()} />\n </Tooltip>\n <Tooltip content=\"zoom in\">\n <IconButton icon={<IconExpand />} onClick={() => tools.zoomin()} />\n </Tooltip>\n <Tooltip content=\"undo\">\n <IconButton icon={<IconUndo />} disabled={tools.canUndo} onClick={() => tools.undo()} />\n </Tooltip>\n <Tooltip content=\"redo\">\n <IconButton icon={<IconRedo />} disabled={tools.canRedo} onClick={() => tools.redo()} />\n </Tooltip>\n <span>{Math.floor(zoom * 100)}%</span>\n </Space>\n );\n};\n"],"mappings":"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","names":["React","React","React","useState","FlowNodeRenderData","FlowNodeTransformData","React","Playground","FlowNodeRenderData","FlowNodeTransformData","FlowNodeRenderData","FlowNodeTransformData","React","Playground","useState","FlowNodeRenderData","FlowNodeTransformData","React","React","FlowNodeRenderData","React","styled","React","React","styled","UIDragNodeContainer","styled","React","UIDragNodeContainer","React","FlowNodeTransformData","styled","FlowNodeTransformData","nextNodeBounds","LineDom","React","React","nanoid","FlowNodeRenderData","FlowNodeTransformData","usePlayground","useService","IconPlus","styled","Container","FlowNodeRenderData","usePlayground","useService","nanoid","FlowNodeTransformData","React","Container","IconPlus","React","useState","nanoid","FlowNodeTransformData","usePlayground","useService","FlowOperationService","React","React","nanoid","React","nanoid","styled","styled","React","styled","IconPlus","useState","usePlayground","useService","FlowOperationService","nanoid","FlowNodeTransformData","React","IconPlus","React"]}
package/dist/index.js CHANGED
@@ -252,7 +252,7 @@ function TryCatchCollapse(props) {
252
252
  cursor: "pointer",
253
253
  justifyContent: "center",
254
254
  alignItems: "center",
255
- background: hoverActivated ? baseActivatedColor : baseColor
255
+ background: hoverActivated || activateData.lineActivated ? baseActivatedColor : baseColor
256
256
  },
257
257
  "aria-hidden": "true"
258
258
  },
@@ -303,7 +303,7 @@ function TryCatchCollapse(props) {
303
303
  "data-label-id": props.labelId,
304
304
  style: {
305
305
  fontSize: 12,
306
- color: hoverActivated ? baseActivatedColor : baseColor,
306
+ color: hoverActivated || activateData.lineActivated ? baseActivatedColor : baseColor,
307
307
  textAlign: "center",
308
308
  whiteSpace: "nowrap",
309
309
  backgroundColor: "var(--g-editor-background)",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/components/index.tsx","../src/assets/ellipsis.tsx","../src/assets/icons.tsx","../src/components/try-catch-collapse.tsx","../src/components/slot-collapse.tsx","../src/components/collapse/index.tsx","../src/components/collapse/styles.tsx","../src/components/slot-adder.tsx","../src/components/dragging-adder/index.tsx","../src/components/dragging-adder/styles.tsx","../src/components/drag-node/index.tsx","../src/components/drag-node/styles.tsx","../src/components/constants.tsx","../src/components/drag-highlight-adder/index.tsx","../src/components/drag-highlight-adder/styles.tsx","../src/components/branch-adder/index.tsx","../src/components/branch-adder/styles.tsx","../src/components/adder/index.tsx","../src/components/nodes/index.tsx","../src/components/metadata.tsx","../src/components/nodes/styles.tsx","../src/components/adder/styles.tsx","../src/components/tools.tsx"],"sourcesContent":["/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport { defaultFixedSemiMaterials } from './components';\nexport { PlaygroundTools } from './components/tools';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { FlowRendererKey } from '@flowgram.ai/fixed-layout-editor';\n\nimport { Ellipse } from '../assets';\nimport TryCatchCollapse from './try-catch-collapse';\nimport { SlotCollapse } from './slot-collapse';\nimport { SlotAdder } from './slot-adder';\nimport DraggingAdder from './dragging-adder';\nimport DragNode from './drag-node';\nimport DragHighlightAdder from './drag-highlight-adder';\nimport Collapse from './collapse';\nimport BranchAdder from './branch-adder';\nimport Adder from './adder';\n\nexport const defaultFixedSemiMaterials = {\n [FlowRendererKey.ADDER]: Adder,\n [FlowRendererKey.COLLAPSE]: Collapse,\n [FlowRendererKey.TRY_CATCH_COLLAPSE]: TryCatchCollapse,\n [FlowRendererKey.BRANCH_ADDER]: BranchAdder,\n [FlowRendererKey.DRAG_NODE]: DragNode,\n [FlowRendererKey.DRAGGABLE_ADDER]: DraggingAdder,\n [FlowRendererKey.DRAG_HIGHLIGHT_ADDER]: DragHighlightAdder,\n [FlowRendererKey.DRAG_BRANCH_HIGHLIGHT_ADDER]: Ellipse,\n [FlowRendererKey.SLOT_COLLPASE]: SlotCollapse,\n [FlowRendererKey.SLOT_ADDER]: SlotAdder,\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nexport function Ellipse() {\n return (\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle id=\"Ellipse 465\" cx=\"4\" cy=\"4\" r=\"3\" fill=\"white\" stroke=\"#3370FF\" strokeWidth=\"2\" />\n </svg>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nexport function IconStyleBorder(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" {...props}>\n <g\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeMiterlimit=\"1.5\"\n strokeWidth=\"1.499\"\n >\n <path\n strokeDasharray=\"2 2\"\n d=\"M16 2H8a6 6 0 0 0-6 6v8a6 6 0 0 0 6 6h8a6 6 0 0 0 6-6V8a6 6 0 0 0-6-6Z\"\n />\n <path d=\"M16 5H8a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3Z\" />\n </g>\n </svg>\n );\n}\n\nexport function IconParkRightBranch(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 48 48\" {...props}>\n <g fill=\"none\">\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M22 8.01176C20.5 8.01193 16.0714 7.93811 15 13.0005C13.917 18.1177 9.85714 22.8477 8 24\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M22 40C20.5 40.0003 16.0714 40.0628 15 35.0005C13.917 29.8833 9.85714 25.1522 8 23.9999\"\n />\n <circle cx=\"8\" cy=\"24\" r=\"4\" fill=\"currentColor\" />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M8 24L22 24\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 24.001H42\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 8.00098H42\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 40.001H42\"\n />\n </g>\n </svg>\n );\n}\n\nexport function PhCircleBold(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 256 256\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M128 236a108 108 0 1 1 108-108a108.1 108.1 0 0 1-108 108Zm0-192a84 84 0 1 0 84 84a84.1 84.1 0 0 0-84-84Z\"\n />\n </svg>\n );\n}\n\nexport function BiCloud(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M4.406 3.342A5.53 5.53 0 0 1 8 2c2.69 0 4.923 2 5.166 4.579C14.758 6.804 16 8.137 16 9.773C16 11.569 14.502 13 12.687 13H3.781C1.708 13 0 11.366 0 9.318c0-1.763 1.266-3.223 2.942-3.593c.143-.863.698-1.723 1.464-2.383zm.653.757c-.757.653-1.153 1.44-1.153 2.056v.448l-.445.049C2.064 6.805 1 7.952 1 9.318C1 10.785 2.23 12 3.781 12h8.906C13.98 12 15 10.988 15 9.773c0-1.216-1.02-2.228-2.313-2.228h-.5v-.5C12.188 4.825 10.328 3 8 3a4.53 4.53 0 0 0-2.941 1.1z\"\n />\n </svg>\n );\n}\n\nexport function BiBootstrapReboot(props: any) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n {...props}\n >\n <g fill=\"currentColor\">\n <path d=\"M1.161 8a6.84 6.84 0 1 0 6.842-6.84a.58.58 0 1 1 0-1.16a8 8 0 1 1-6.556 3.412l-.663-.577a.58.58 0 0 1 .227-.997l2.52-.69a.58.58 0 0 1 .728.633l-.332 2.592a.58.58 0 0 1-.956.364l-.643-.56A6.812 6.812 0 0 0 1.16 8z\" />\n <path d=\"M6.641 11.671V8.843h1.57l1.498 2.828h1.314L9.377 8.665c.897-.3 1.427-1.106 1.427-2.1c0-1.37-.943-2.246-2.456-2.246H5.5v7.352h1.141zm0-3.75V5.277h1.57c.881 0 1.416.499 1.416 1.32c0 .84-.504 1.324-1.386 1.324h-1.6z\" />\n </g>\n </svg>\n );\n}\n\nexport function FeAlignCenter(props: any) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path\n fill=\"#888888\"\n fillRule=\"evenodd\"\n d=\"M11 13v-2H6.286C5.023 11 4 10.105 4 9s1.023-2 2.286-2H11V3a1 1 0 0 1 2 0v4h4.714C18.977 7 20 7.895 20 9s-1.023 2-2.286 2H13v2h3a2 2 0 1 1 0 4h-3v4a1 1 0 0 1-2 0v-4H8a2 2 0 1 1 0-4h3Z\"\n />\n </svg>\n );\n}\n\nexport function Arrow({ color, circleColor }: { color: string; circleColor: string }) {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" fill={circleColor} />\n <path\n fill={color}\n d=\"M10.8281 9.4715C11.0883 9.21131 11.0885 8.78909 10.8291 8.52804C10.6413 8.33892 10.4536 8.14952 10.266 7.9601C9.66706 7.35551 9.06799 6.75079 8.46068 6.15496C8.20439 5.90352 7.7947 5.90352 7.53841 6.15496C6.93103 6.75085 6.33191 7.35564 5.73291 7.96029C5.5454 8.14957 5.3579 8.33884 5.17017 8.52782C4.91075 8.78895 4.91096 9.21099 5.17124 9.47127C5.43152 9.73155 5.85355 9.73176 6.11383 9.47148L7.99955 7.58576L9.88548 9.4717C10.1457 9.73189 10.5679 9.73169 10.8281 9.4715Z\"\n />\n <path\n fill={color}\n d=\"M0.888672 7.99997C0.888672 4.07261 4.07242 0.888855 7.99978 0.888855C11.9271 0.888855 15.1109 4.07261 15.1109 7.99997C15.1109 11.9273 11.9271 15.1111 7.99978 15.1111C4.07242 15.1111 0.888672 11.9273 0.888672 7.99997ZM13.818 7.99997C13.818 4.78667 11.2131 2.18178 7.99978 2.18178C4.78649 2.18178 2.1816 4.78667 2.1816 7.99997C2.1816 11.2133 4.78649 13.8181 7.99978 13.8181C11.2131 13.8181 13.818 11.2133 13.818 7.99997Z\"\n />\n </svg>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport {\n FlowNodeRenderData,\n FlowNodeTransformData,\n type CustomLabelProps,\n Playground,\n useBaseColor,\n FlowTextKey,\n FlowRendererRegistry,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { IconChevronLeft } from '@douyinfe/semi-icons';\n\nfunction TryCatchCollapse(props: CustomLabelProps): JSX.Element {\n const { node } = props;\n const { baseColor, baseActivatedColor } = useBaseColor();\n\n const activateData = node.getData(FlowNodeRenderData)!;\n const transform = node.getData(FlowNodeTransformData)!;\n\n const [hoverActivated, setHoverActivated] = useState(false);\n\n if (!transform || !transform.parent) {\n return <></>;\n }\n\n // hotzone width & height\n const width = transform.inputPoint.x - transform.parent.inputPoint.x;\n const height = 40;\n\n const scrollToActivateNode = () => {\n setTimeout(() => {\n Playground.getLatest()?.scrollToView({\n position: node?.getData(FlowNodeTransformData)?.inputPoint,\n scrollToCenter: true,\n });\n }, 100);\n };\n\n const collapseBlock = () => {\n transform.collapsed = true;\n activateData.activated = false;\n scrollToActivateNode();\n };\n\n const openBlock = () => {\n transform.collapsed = false;\n scrollToActivateNode();\n };\n\n const handleMouseEnter = () => {\n setHoverActivated(true);\n activateData.activated = true;\n };\n\n const handleMouseLeave = () => {\n setHoverActivated(false);\n activateData.activated = false;\n };\n\n const renderCollapse = () => {\n // Expand\n if (transform.collapsed) {\n const childCount = node.allCollapsedChildren.filter(\n (child) => !child.hidden && child !== node\n ).length;\n\n return (\n <div\n onClick={openBlock}\n style={{\n width: 16,\n height: 16,\n fontSize: 10,\n borderRadius: 9,\n display: 'flex',\n color: '#fff',\n cursor: 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n background: hoverActivated ? baseActivatedColor : baseColor,\n }}\n aria-hidden=\"true\"\n >\n {childCount}\n </div>\n );\n }\n\n // Collapse\n if (hoverActivated) {\n return (\n <div\n onClick={collapseBlock}\n style={{\n width: 16,\n height: 16,\n fontSize: 10,\n borderRadius: 9,\n display: 'flex',\n color: '#fff',\n cursor: 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n background: baseActivatedColor,\n }}\n aria-hidden=\"true\"\n >\n <IconChevronLeft />\n </div>\n );\n }\n\n return <></>;\n };\n\n // Collapse\n return (\n <div\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n style={{\n width,\n height,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 6,\n }}\n >\n <div\n data-label-id={props.labelId}\n style={{\n fontSize: 12,\n color: hoverActivated ? baseActivatedColor : baseColor,\n textAlign: 'center',\n whiteSpace: 'nowrap',\n backgroundColor: 'var(--g-editor-background)',\n lineHeight: '20px',\n }}\n >\n {node.getService(FlowRendererRegistry).getText(FlowTextKey.CATCH_TEXT)}\n </div>\n\n {renderCollapse()}\n </div>\n );\n}\n\nexport default TryCatchCollapse;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowNodeTransformData,\n} from '@flowgram.ai/fixed-layout-editor';\n\nimport Collapse from './collapse';\n\nexport function SlotCollapse({ node }: { node: FlowNodeEntity }) {\n const [hoverActivated, setHoverActivated] = useState(false);\n\n const icon = node.firstChild!;\n const iconActivated = icon.getData(FlowNodeRenderData).activated;\n const iconHeight = icon.getData(FlowNodeTransformData).size.height;\n\n const isChildVisible = node.collapsed || hoverActivated || iconActivated;\n\n return (\n <div\n style={{\n width: 30,\n height: iconHeight || 100,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={() => setHoverActivated(true)}\n onMouseLeave={() => setHoverActivated(false)}\n >\n {isChildVisible && (\n <Collapse\n node={node}\n activateNode={icon}\n collapseNode={node}\n arrowDirection=\"left\"\n hoverActivated={hoverActivated}\n />\n )}\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport {\n Playground,\n FlowNodeRenderData,\n FlowNodeTransformData,\n type CollapseProps,\n} from '@flowgram.ai/fixed-layout-editor';\n\nimport { Arrow } from '../../assets';\nimport { Container } from './styles';\n\nfunction Collapse(props: CollapseProps): JSX.Element {\n const { collapseNode, activateNode, hoverActivated } = props;\n\n const activateData = activateNode?.getData(FlowNodeRenderData);\n const transform = collapseNode.getData(FlowNodeTransformData)!;\n\n if (!transform) {\n return <></>;\n }\n\n const scrollToActivateNode = () => {\n setTimeout(() => {\n Playground.getLatest()?.scrollToView({\n position: activateNode?.getData(FlowNodeTransformData)?.outputPoint,\n scrollToCenter: true,\n });\n }, 100);\n };\n\n const collapseBlock = () => {\n transform.collapsed = true;\n activateData?.toggleMouseLeave();\n\n scrollToActivateNode();\n };\n\n const openBlock = () => {\n transform.collapsed = false;\n\n scrollToActivateNode();\n };\n\n // expand\n if (transform.collapsed) {\n const childCount = collapseNode.allCollapsedChildren.filter(\n (child) => !child.hidden && child !== activateNode\n ).length;\n\n return (\n <Container onClick={openBlock} hoverActivated={hoverActivated} aria-hidden=\"true\">\n {childCount}\n </Container>\n );\n }\n\n // dark: var(--semi-color-black)\n // light: var(--semi-color-white)\n const circleColor = 'var(--semi-color-white)';\n const color = hoverActivated ? '#82A7FC' : '#BBBFC4';\n\n // collapse\n return (\n <Container\n onClick={collapseBlock}\n hoverActivated={hoverActivated}\n isVertical={activateNode?.isVertical}\n isCollapse={true}\n aria-hidden=\"true\"\n >\n <Arrow color={color} circleColor={circleColor} />\n </Container>\n );\n}\n\nexport default Collapse;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const Container = styled.div<{\n hoverActivated?: boolean;\n isVertical?: boolean;\n isCollapse?: boolean;\n}>`\n width: 16px;\n height: 16px;\n font-size: 10px;\n border-radius: 9px;\n display: flex;\n color: #fff;\n cursor: pointer;\n justify-content: center;\n align-items: center;\n background: ${(props) => (props.hoverActivated ? '#82A7FC' : '#BBBFC4')};\n transform: ${(props) => (!props.isVertical && props.isCollapse ? 'rotate(-90deg)' : '')};\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowDocument,\n useService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { Button } from '@douyinfe/semi-ui';\nimport { IconPlus } from '@douyinfe/semi-icons';\n\ninterface PropsType {\n node: FlowNodeEntity;\n}\n\nexport function SlotAdder(props: PropsType) {\n const { node } = props;\n\n const nodeData = node.firstChild?.getData<FlowNodeRenderData>(FlowNodeRenderData);\n const document = useService(FlowDocument) as FlowDocument;\n\n async function addPort() {\n document.addNode({\n id: nanoid(5),\n type: 'custom',\n parent: node,\n });\n }\n\n return (\n <div\n style={{\n display: 'flex',\n background: 'var(--semi-color-bg-0)',\n }}\n onMouseEnter={() => nodeData?.toggleMouseEnter()}\n onMouseLeave={() => nodeData?.toggleMouseLeave()}\n >\n <Button\n onClick={() => {\n addPort();\n }}\n size=\"small\"\n icon={<IconPlus />}\n />\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { FlowDragLayer, usePlayground } from '@flowgram.ai/fixed-layout-editor';\n\nimport { UIDragNodeContainer } from './styles';\n\nexport default function DraggingAdder(props: any): JSX.Element {\n const playground = usePlayground();\n const layer = playground.getLayer(FlowDragLayer);\n if (!layer) return <></>;\n if (\n layer.options.canDrop &&\n !layer.options.canDrop({\n dragNodes: layer.dragEntities || [],\n dropNode: props.from,\n isBranch: false,\n })\n ) {\n return <></>;\n }\n return <UIDragNodeContainer />;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIDragNodeContainer = styled.div`\n width: 16px;\n height: 16px;\n border-radius: 100px;\n background-color: white;\n border: 1px dashed #b8bcc1;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport type { FlowNodeEntity } from '@flowgram.ai/fixed-layout-editor';\n\nimport { UIDragNodeContainer, UIDragCounts } from './styles';\n\nexport interface PropsType {\n dragStart: FlowNodeEntity;\n dragNodes: FlowNodeEntity[];\n}\n\nexport default function DragNode(props: PropsType): JSX.Element {\n const { dragStart, dragNodes } = props;\n\n const dragLength = (dragNodes || [])\n .map((_node) =>\n _node.allCollapsedChildren.length\n ? _node.allCollapsedChildren.filter((_n) => !_n.hidden).length\n : 1\n )\n .reduce((acm, curr) => acm + curr, 0);\n\n return (\n <UIDragNodeContainer>\n {dragStart?.id}\n {dragLength > 1 && (\n <>\n <UIDragCounts>{dragLength}</UIDragCounts>\n <UIDragNodeContainer\n style={{\n position: 'absolute',\n top: 5,\n right: -5,\n left: 5,\n bottom: -5,\n opacity: 0.5,\n }}\n />\n </>\n )}\n </UIDragNodeContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nimport { primary, primaryOpacity09 } from '../constants';\n\nexport const UIDragNodeContainer = styled.div`\n position: relative;\n height: 32px;\n border-radius: 5px;\n display: flex;\n align-items: center;\n cursor: pointer;\n font-size: 19px;\n border: 1px solid ${primary};\n padding: 0 15px;\n &:hover: {\n background-color: ${primaryOpacity09};\n color: ${primary};\n }\n`;\n\nexport const UIDragCounts = styled.div`\n position: absolute;\n top: -8px;\n right: -8px;\n text-align: center;\n line-height: 16px;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n font-size: 12px;\n color: #fff;\n background-color: ${primary};\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport const primary = 'hsl(252 62% 54.9%)';\nexport const primaryOpacity09 = 'hsl(252deg 62% 55% / 9%)';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { min } from 'lodash';\nimport { type FlowNodeEntity, FlowNodeTransformData } from '@flowgram.ai/fixed-layout-editor';\n\nimport { Ellipse } from '../../assets';\nimport { UILineContainer, UILine } from './styles';\n\nconst getMinSize = (preWidth: number, nextWidth: number): number => {\n if (!preWidth || preWidth < 0) {\n return 0;\n }\n if (!nextWidth || nextWidth < 0) {\n return preWidth;\n }\n return min([preWidth, nextWidth]) || 0;\n};\n\nexport default function DragHighlightAdder({ node }: { node: FlowNodeEntity }): JSX.Element {\n const transformBounds = node.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds;\n const { isVertical } = node;\n if (isVertical) {\n const preWidth = (transformBounds?.width || 0) - 16;\n const nextNodeBounds =\n node?.next?.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds?.width;\n const nextWidth = (nextNodeBounds || 0) - 16;\n const LineDom = UILine(getMinSize(preWidth, nextWidth), 2);\n return (\n <UILineContainer>\n <Ellipse />\n <LineDom />\n <Ellipse />\n </UILineContainer>\n );\n }\n const preHeight = (transformBounds?.height || 0) - 16;\n const nextNodeBounds =\n node?.next?.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds?.height;\n const nextHeight = (nextNodeBounds || 0) - 16;\n const LineDom = UILine(2, getMinSize(preHeight, nextHeight));\n return (\n <UILineContainer style={{ flexDirection: 'column' }}>\n <Ellipse />\n <LineDom />\n <Ellipse />\n </UILineContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UILineContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const UILine = (width: number, height: number) =>\n styled.div`\n width: ${width}px;\n height: ${height}px;\n background: #3370ff;\n `;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowNodeTransformData,\n FlowOperationService,\n usePlayground,\n useService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { IconPlus } from '@douyinfe/semi-icons';\n\nimport { Container } from './styles';\n\ninterface PropsType {\n activated?: boolean;\n node: FlowNodeEntity;\n}\n\nexport default function BranchAdder(props: PropsType) {\n const { activated, node } = props;\n const nodeData = node.firstChild?.getData<FlowNodeRenderData>(FlowNodeRenderData);\n const playground = usePlayground();\n const flowOperationService = useService(FlowOperationService) as FlowOperationService;\n const { isVertical } = node;\n\n function addBranch() {\n const block = flowOperationService.addBlock(node, { id: nanoid(5) });\n\n setTimeout(() => {\n playground.scrollToView({\n bounds: block.getData<FlowNodeTransformData>(FlowNodeTransformData)!.bounds,\n scrollToCenter: true,\n });\n }, 10);\n }\n if (playground.config.readonlyOrDisabled) return null;\n\n return (\n <Container\n isVertical={isVertical}\n activated={activated || nodeData?.hovered}\n onMouseEnter={() => nodeData?.toggleMouseEnter()}\n onMouseLeave={() => nodeData?.toggleMouseLeave()}\n >\n <div\n onClick={() => {\n addBranch();\n }}\n aria-hidden=\"true\"\n style={{ flexGrow: 1, textAlign: 'center', cursor: 'pointer' }}\n >\n <IconPlus />\n </div>\n </Container>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const Container = styled.div<{ activated?: boolean; isVertical: boolean }>`\n width: 28px;\n height: 18px;\n background: ${(props) => (props.activated ? '#82A7FC' : 'rgb(187, 191, 196)')};\n display: flex;\n border-radius: 9px;\n justify-content: space-evenly;\n align-items: center;\n color: #fff;\n font-size: 10px;\n font-weight: bold;\n transform: ${(props) => (props.isVertical ? '' : 'rotate(90deg)')};\n div {\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n width: 12px;\n height: 12px;\n }\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeTransformData,\n usePlayground,\n useService,\n FlowOperationService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { Popover } from '@douyinfe/semi-ui';\n\nimport Nodes from '../nodes';\nimport { AdderWrap, IconPlus } from './styles';\n\nexport default function Adder(props: {\n from: FlowNodeEntity;\n to?: FlowNodeEntity;\n hoverActivated: boolean;\n}) {\n const { from } = props;\n const [visible, setVisible] = useState(false);\n const playground = usePlayground();\n const flowOperationService = useService(FlowOperationService) as FlowOperationService;\n\n const add = (addProps: any) => {\n const block = flowOperationService.addFromNode(from, {\n id: addProps.type + nanoid(5),\n type: addProps.type,\n blocks: addProps.blocks ? addProps.blocks() : undefined,\n });\n setTimeout(() => {\n playground.scrollToView({\n bounds: block.getData<FlowNodeTransformData>(FlowNodeTransformData)!.bounds,\n scrollToCenter: true,\n });\n }, 10);\n };\n\n if (playground.config.readonlyOrDisabled) return null;\n\n return (\n <Popover\n visible={visible}\n onVisibleChange={setVisible}\n content={<Nodes onSelect={add} />}\n placement=\"right\"\n trigger=\"click\"\n overlayStyle={{\n padding: 0,\n }}\n >\n <AdderWrap\n hovered={props.hoverActivated}\n onMouseDown={(e) => e.stopPropagation()}\n onClick={() => {\n setVisible(true);\n }}\n >\n {props.hoverActivated ? <IconPlus /> : null}\n </AdderWrap>\n </Popover>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport metadata from '../metadata';\nimport { NodeWrap, NodeLabel, NodesWrap } from './styles';\n\nfunction Node(props: { label: string; icon: JSX.Element; onClick: () => void }) {\n return (\n <NodeWrap onClick={props.onClick}>\n <div style={{ fontSize: 14 }}>{props.icon}</div>\n <NodeLabel>{props.label}</NodeLabel>\n </NodeWrap>\n );\n}\n\nconst addings = metadata.nodes.filter((node) => node.type !== 'start');\n\nexport default function Nodes(props: { onSelect: (meta: any) => void }) {\n return (\n <NodesWrap style={{ width: 80 * 2 + 20 }}>\n {addings.map((n, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <Node key={i} icon={n.icon} label={n.label} onClick={() => props.onSelect?.(n)} />\n ))}\n </NodesWrap>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\n\nimport {\n BiBootstrapReboot,\n BiCloud,\n FeAlignCenter,\n IconStyleBorder,\n IconParkRightBranch,\n PhCircleBold,\n} from '../assets';\n\nconst metadata = {\n nodes: [\n {\n type: 'start',\n label: 'Start',\n icon: <IconStyleBorder />,\n },\n {\n type: 'dynamicSplit',\n label: 'Split Branch',\n icon: <IconParkRightBranch />,\n blocks() {\n return [\n {\n id: nanoid(5),\n },\n {\n id: nanoid(5),\n },\n ];\n },\n },\n {\n type: 'end',\n label: 'Branch End',\n icon: <FeAlignCenter />,\n branchEnd: true,\n },\n {\n type: 'loop',\n schemaType: 'loop',\n label: 'Loop',\n icon: <BiBootstrapReboot />,\n },\n {\n type: 'tryCatch',\n schemaType: 'tryCatch',\n label: 'TryCatch',\n icon: <IconParkRightBranch />,\n blocks() {\n return [\n {\n id: `try_${nanoid(5)}`, // try branch\n },\n {\n id: `catch_${nanoid(5)}`, // catch branch 1\n },\n {\n id: `catch_${nanoid(5)}`, // catch branch 2\n },\n ];\n },\n },\n {\n type: 'noop',\n label: 'Noop Node',\n icon: <BiCloud />,\n },\n {\n type: 'end',\n label: 'End',\n icon: <PhCircleBold />,\n },\n ],\n find: function find(type: any) {\n return metadata.nodes.find((m) => m.type === type);\n },\n};\n\nexport default metadata;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nimport { primary, primaryOpacity09 } from '../constants';\n\nexport const NodeWrap = styled.div`\n width: 100%;\n height: 32px;\n border-radius: 5px;\n display: flex;\n align-items: center;\n cursor: pointer;\n font-size: 19px;\n padding: 0 15px;\n &:hover: {\n background-color: ${primaryOpacity09};\n color: ${primary};\n },\n`;\n\nexport const NodeLabel = styled.div`\n font-size: 12px;\n margin-left: 10px;\n`;\n\nexport const NodesWrap = styled.div`\n max-height: 500px;\n overflow: auto;\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\nimport { IconPlusCircle } from '@douyinfe/semi-icons';\n\nexport const AdderWrap = styled.div<{ hovered?: boolean }>`\n width: ${(props) => (props.hovered ? 15 : 6)}px;\n height: ${(props) => (props.hovered ? 15 : 6)}px;\n background-color: rgb(143, 149, 158);\n color: #fff;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n`;\n\nexport const IconPlus = styled(IconPlusCircle)`\n color: #3370ff;\n background-color: #fff;\n border-radius: 15px;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { usePlaygroundTools } from '@flowgram.ai/fixed-layout-editor';\nimport { Checkbox, IconButton, Space, Tooltip } from '@douyinfe/semi-ui';\nimport { IconUndo, IconRedo, IconShrink, IconExpand, IconGridView } from '@douyinfe/semi-icons';\n\nexport const PlaygroundTools = ({ layoutText }: { layoutText?: string }) => {\n const tools = usePlaygroundTools();\n const { zoom } = tools;\n\n return (\n <Space>\n <Checkbox onChange={() => tools.changeLayout()} checked={!tools.isVertical}>\n {layoutText || 'isHorizontal'}\n </Checkbox>\n <Tooltip content=\"fit view\">\n <IconButton icon={<IconGridView />} onClick={() => tools.fitView()} />\n </Tooltip>\n <Tooltip content=\"zoom out\">\n <IconButton icon={<IconShrink />} onClick={() => tools.zoomout()} />\n </Tooltip>\n <Tooltip content=\"zoom in\">\n <IconButton icon={<IconExpand />} onClick={() => tools.zoomin()} />\n </Tooltip>\n <Tooltip content=\"undo\">\n <IconButton icon={<IconUndo />} disabled={tools.canUndo} onClick={() => tools.undo()} />\n </Tooltip>\n <Tooltip content=\"redo\">\n <IconButton icon={<IconRedo />} disabled={tools.canRedo} onClick={() => tools.redo()} />\n </Tooltip>\n <span>{Math.floor(zoom * 100)}%</span>\n </Space>\n );\n};\n"],"mappings":"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","names":["import_fixed_layout_editor","React","import_react","React","import_react","React","import_react","import_fixed_layout_editor","import_react","import_fixed_layout_editor","styled","React","React","import_react","import_fixed_layout_editor","import_semi_icons","React","import_react","import_fixed_layout_editor","import_styled_components","styled","React","import_react","import_styled_components","UIDragNodeContainer","styled","React","UIDragNodeContainer","import_react","import_fixed_layout_editor","import_styled_components","styled","nextNodeBounds","LineDom","React","import_react","import_nanoid","import_fixed_layout_editor","import_semi_icons","import_styled_components","Container","styled","React","Container","import_react","import_nanoid","import_fixed_layout_editor","import_semi_ui","import_react","import_react","import_nanoid","React","import_styled_components","styled","React","import_styled_components","import_semi_icons","styled","IconPlus","React","IconPlus","import_react","import_fixed_layout_editor","import_semi_ui","import_semi_icons","React"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/components/index.tsx","../src/assets/ellipsis.tsx","../src/assets/icons.tsx","../src/components/try-catch-collapse.tsx","../src/components/slot-collapse.tsx","../src/components/collapse/index.tsx","../src/components/collapse/styles.tsx","../src/components/slot-adder.tsx","../src/components/dragging-adder/index.tsx","../src/components/dragging-adder/styles.tsx","../src/components/drag-node/index.tsx","../src/components/drag-node/styles.tsx","../src/components/constants.tsx","../src/components/drag-highlight-adder/index.tsx","../src/components/drag-highlight-adder/styles.tsx","../src/components/branch-adder/index.tsx","../src/components/branch-adder/styles.tsx","../src/components/adder/index.tsx","../src/components/nodes/index.tsx","../src/components/metadata.tsx","../src/components/nodes/styles.tsx","../src/components/adder/styles.tsx","../src/components/tools.tsx"],"sourcesContent":["/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport { defaultFixedSemiMaterials } from './components';\nexport { PlaygroundTools } from './components/tools';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { FlowRendererKey } from '@flowgram.ai/fixed-layout-editor';\n\nimport { Ellipse } from '../assets';\nimport TryCatchCollapse from './try-catch-collapse';\nimport { SlotCollapse } from './slot-collapse';\nimport { SlotAdder } from './slot-adder';\nimport DraggingAdder from './dragging-adder';\nimport DragNode from './drag-node';\nimport DragHighlightAdder from './drag-highlight-adder';\nimport Collapse from './collapse';\nimport BranchAdder from './branch-adder';\nimport Adder from './adder';\n\nexport const defaultFixedSemiMaterials = {\n [FlowRendererKey.ADDER]: Adder,\n [FlowRendererKey.COLLAPSE]: Collapse,\n [FlowRendererKey.TRY_CATCH_COLLAPSE]: TryCatchCollapse,\n [FlowRendererKey.BRANCH_ADDER]: BranchAdder,\n [FlowRendererKey.DRAG_NODE]: DragNode,\n [FlowRendererKey.DRAGGABLE_ADDER]: DraggingAdder,\n [FlowRendererKey.DRAG_HIGHLIGHT_ADDER]: DragHighlightAdder,\n [FlowRendererKey.DRAG_BRANCH_HIGHLIGHT_ADDER]: Ellipse,\n [FlowRendererKey.SLOT_COLLPASE]: SlotCollapse,\n [FlowRendererKey.SLOT_ADDER]: SlotAdder,\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nexport function Ellipse() {\n return (\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle id=\"Ellipse 465\" cx=\"4\" cy=\"4\" r=\"3\" fill=\"white\" stroke=\"#3370FF\" strokeWidth=\"2\" />\n </svg>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nexport function IconStyleBorder(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" {...props}>\n <g\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeMiterlimit=\"1.5\"\n strokeWidth=\"1.499\"\n >\n <path\n strokeDasharray=\"2 2\"\n d=\"M16 2H8a6 6 0 0 0-6 6v8a6 6 0 0 0 6 6h8a6 6 0 0 0 6-6V8a6 6 0 0 0-6-6Z\"\n />\n <path d=\"M16 5H8a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3Z\" />\n </g>\n </svg>\n );\n}\n\nexport function IconParkRightBranch(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 48 48\" {...props}>\n <g fill=\"none\">\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M22 8.01176C20.5 8.01193 16.0714 7.93811 15 13.0005C13.917 18.1177 9.85714 22.8477 8 24\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M22 40C20.5 40.0003 16.0714 40.0628 15 35.0005C13.917 29.8833 9.85714 25.1522 8 23.9999\"\n />\n <circle cx=\"8\" cy=\"24\" r=\"4\" fill=\"currentColor\" />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M8 24L22 24\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 24.001H42\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 8.00098H42\"\n />\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"4\"\n d=\"M30 40.001H42\"\n />\n </g>\n </svg>\n );\n}\n\nexport function PhCircleBold(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 256 256\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M128 236a108 108 0 1 1 108-108a108.1 108.1 0 0 1-108 108Zm0-192a84 84 0 1 0 84 84a84.1 84.1 0 0 0-84-84Z\"\n />\n </svg>\n );\n}\n\nexport function BiCloud(props: any) {\n return (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M4.406 3.342A5.53 5.53 0 0 1 8 2c2.69 0 4.923 2 5.166 4.579C14.758 6.804 16 8.137 16 9.773C16 11.569 14.502 13 12.687 13H3.781C1.708 13 0 11.366 0 9.318c0-1.763 1.266-3.223 2.942-3.593c.143-.863.698-1.723 1.464-2.383zm.653.757c-.757.653-1.153 1.44-1.153 2.056v.448l-.445.049C2.064 6.805 1 7.952 1 9.318C1 10.785 2.23 12 3.781 12h8.906C13.98 12 15 10.988 15 9.773c0-1.216-1.02-2.228-2.313-2.228h-.5v-.5C12.188 4.825 10.328 3 8 3a4.53 4.53 0 0 0-2.941 1.1z\"\n />\n </svg>\n );\n}\n\nexport function BiBootstrapReboot(props: any) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n {...props}\n >\n <g fill=\"currentColor\">\n <path d=\"M1.161 8a6.84 6.84 0 1 0 6.842-6.84a.58.58 0 1 1 0-1.16a8 8 0 1 1-6.556 3.412l-.663-.577a.58.58 0 0 1 .227-.997l2.52-.69a.58.58 0 0 1 .728.633l-.332 2.592a.58.58 0 0 1-.956.364l-.643-.56A6.812 6.812 0 0 0 1.16 8z\" />\n <path d=\"M6.641 11.671V8.843h1.57l1.498 2.828h1.314L9.377 8.665c.897-.3 1.427-1.106 1.427-2.1c0-1.37-.943-2.246-2.456-2.246H5.5v7.352h1.141zm0-3.75V5.277h1.57c.881 0 1.416.499 1.416 1.32c0 .84-.504 1.324-1.386 1.324h-1.6z\" />\n </g>\n </svg>\n );\n}\n\nexport function FeAlignCenter(props: any) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path\n fill=\"#888888\"\n fillRule=\"evenodd\"\n d=\"M11 13v-2H6.286C5.023 11 4 10.105 4 9s1.023-2 2.286-2H11V3a1 1 0 0 1 2 0v4h4.714C18.977 7 20 7.895 20 9s-1.023 2-2.286 2H13v2h3a2 2 0 1 1 0 4h-3v4a1 1 0 0 1-2 0v-4H8a2 2 0 1 1 0-4h3Z\"\n />\n </svg>\n );\n}\n\nexport function Arrow({ color, circleColor }: { color: string; circleColor: string }) {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" fill={circleColor} />\n <path\n fill={color}\n d=\"M10.8281 9.4715C11.0883 9.21131 11.0885 8.78909 10.8291 8.52804C10.6413 8.33892 10.4536 8.14952 10.266 7.9601C9.66706 7.35551 9.06799 6.75079 8.46068 6.15496C8.20439 5.90352 7.7947 5.90352 7.53841 6.15496C6.93103 6.75085 6.33191 7.35564 5.73291 7.96029C5.5454 8.14957 5.3579 8.33884 5.17017 8.52782C4.91075 8.78895 4.91096 9.21099 5.17124 9.47127C5.43152 9.73155 5.85355 9.73176 6.11383 9.47148L7.99955 7.58576L9.88548 9.4717C10.1457 9.73189 10.5679 9.73169 10.8281 9.4715Z\"\n />\n <path\n fill={color}\n d=\"M0.888672 7.99997C0.888672 4.07261 4.07242 0.888855 7.99978 0.888855C11.9271 0.888855 15.1109 4.07261 15.1109 7.99997C15.1109 11.9273 11.9271 15.1111 7.99978 15.1111C4.07242 15.1111 0.888672 11.9273 0.888672 7.99997ZM13.818 7.99997C13.818 4.78667 11.2131 2.18178 7.99978 2.18178C4.78649 2.18178 2.1816 4.78667 2.1816 7.99997C2.1816 11.2133 4.78649 13.8181 7.99978 13.8181C11.2131 13.8181 13.818 11.2133 13.818 7.99997Z\"\n />\n </svg>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport {\n FlowNodeRenderData,\n FlowNodeTransformData,\n type CustomLabelProps,\n Playground,\n useBaseColor,\n FlowTextKey,\n FlowRendererRegistry,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { IconChevronLeft } from '@douyinfe/semi-icons';\n\nfunction TryCatchCollapse(props: CustomLabelProps): JSX.Element {\n const { node } = props;\n const { baseColor, baseActivatedColor } = useBaseColor();\n\n const activateData = node.getData(FlowNodeRenderData)!;\n const transform = node.getData(FlowNodeTransformData)!;\n\n const [hoverActivated, setHoverActivated] = useState(false);\n\n if (!transform || !transform.parent) {\n return <></>;\n }\n\n // hotzone width & height\n const width = transform.inputPoint.x - transform.parent.inputPoint.x;\n const height = 40;\n\n const scrollToActivateNode = () => {\n setTimeout(() => {\n Playground.getLatest()?.scrollToView({\n position: node?.getData(FlowNodeTransformData)?.inputPoint,\n scrollToCenter: true,\n });\n }, 100);\n };\n\n const collapseBlock = () => {\n transform.collapsed = true;\n activateData.activated = false;\n scrollToActivateNode();\n };\n\n const openBlock = () => {\n transform.collapsed = false;\n scrollToActivateNode();\n };\n\n const handleMouseEnter = () => {\n setHoverActivated(true);\n activateData.activated = true;\n };\n\n const handleMouseLeave = () => {\n setHoverActivated(false);\n activateData.activated = false;\n };\n\n const renderCollapse = () => {\n // Expand\n if (transform.collapsed) {\n const childCount = node.allCollapsedChildren.filter(\n (child) => !child.hidden && child !== node\n ).length;\n\n return (\n <div\n onClick={openBlock}\n style={{\n width: 16,\n height: 16,\n fontSize: 10,\n borderRadius: 9,\n display: 'flex',\n color: '#fff',\n cursor: 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n background:\n hoverActivated || activateData.lineActivated ? baseActivatedColor : baseColor,\n }}\n aria-hidden=\"true\"\n >\n {childCount}\n </div>\n );\n }\n\n // Collapse\n if (hoverActivated) {\n return (\n <div\n onClick={collapseBlock}\n style={{\n width: 16,\n height: 16,\n fontSize: 10,\n borderRadius: 9,\n display: 'flex',\n color: '#fff',\n cursor: 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n background: baseActivatedColor,\n }}\n aria-hidden=\"true\"\n >\n <IconChevronLeft />\n </div>\n );\n }\n\n return <></>;\n };\n\n // Collapse\n return (\n <div\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n style={{\n width,\n height,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 6,\n }}\n >\n <div\n data-label-id={props.labelId}\n style={{\n fontSize: 12,\n color: hoverActivated || activateData.lineActivated ? baseActivatedColor : baseColor,\n textAlign: 'center',\n whiteSpace: 'nowrap',\n backgroundColor: 'var(--g-editor-background)',\n lineHeight: '20px',\n }}\n >\n {node.getService(FlowRendererRegistry).getText(FlowTextKey.CATCH_TEXT)}\n </div>\n\n {renderCollapse()}\n </div>\n );\n}\n\nexport default TryCatchCollapse;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowNodeTransformData,\n} from '@flowgram.ai/fixed-layout-editor';\n\nimport Collapse from './collapse';\n\nexport function SlotCollapse({ node }: { node: FlowNodeEntity }) {\n const [hoverActivated, setHoverActivated] = useState(false);\n\n const icon = node.firstChild!;\n const iconActivated = icon.getData(FlowNodeRenderData).activated;\n const iconHeight = icon.getData(FlowNodeTransformData).size.height;\n\n const isChildVisible = node.collapsed || hoverActivated || iconActivated;\n\n return (\n <div\n style={{\n width: 30,\n height: iconHeight || 100,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={() => setHoverActivated(true)}\n onMouseLeave={() => setHoverActivated(false)}\n >\n {isChildVisible && (\n <Collapse\n node={node}\n activateNode={icon}\n collapseNode={node}\n arrowDirection=\"left\"\n hoverActivated={hoverActivated}\n />\n )}\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport {\n Playground,\n FlowNodeRenderData,\n FlowNodeTransformData,\n type CollapseProps,\n} from '@flowgram.ai/fixed-layout-editor';\n\nimport { Arrow } from '../../assets';\nimport { Container } from './styles';\n\nfunction Collapse(props: CollapseProps): JSX.Element {\n const { collapseNode, activateNode, hoverActivated } = props;\n\n const activateData = activateNode?.getData(FlowNodeRenderData);\n const transform = collapseNode.getData(FlowNodeTransformData)!;\n\n if (!transform) {\n return <></>;\n }\n\n const scrollToActivateNode = () => {\n setTimeout(() => {\n Playground.getLatest()?.scrollToView({\n position: activateNode?.getData(FlowNodeTransformData)?.outputPoint,\n scrollToCenter: true,\n });\n }, 100);\n };\n\n const collapseBlock = () => {\n transform.collapsed = true;\n activateData?.toggleMouseLeave();\n\n scrollToActivateNode();\n };\n\n const openBlock = () => {\n transform.collapsed = false;\n\n scrollToActivateNode();\n };\n\n // expand\n if (transform.collapsed) {\n const childCount = collapseNode.allCollapsedChildren.filter(\n (child) => !child.hidden && child !== activateNode\n ).length;\n\n return (\n <Container onClick={openBlock} hoverActivated={hoverActivated} aria-hidden=\"true\">\n {childCount}\n </Container>\n );\n }\n\n // dark: var(--semi-color-black)\n // light: var(--semi-color-white)\n const circleColor = 'var(--semi-color-white)';\n const color = hoverActivated ? '#82A7FC' : '#BBBFC4';\n\n // collapse\n return (\n <Container\n onClick={collapseBlock}\n hoverActivated={hoverActivated}\n isVertical={activateNode?.isVertical}\n isCollapse={true}\n aria-hidden=\"true\"\n >\n <Arrow color={color} circleColor={circleColor} />\n </Container>\n );\n}\n\nexport default Collapse;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const Container = styled.div<{\n hoverActivated?: boolean;\n isVertical?: boolean;\n isCollapse?: boolean;\n}>`\n width: 16px;\n height: 16px;\n font-size: 10px;\n border-radius: 9px;\n display: flex;\n color: #fff;\n cursor: pointer;\n justify-content: center;\n align-items: center;\n background: ${(props) => (props.hoverActivated ? '#82A7FC' : '#BBBFC4')};\n transform: ${(props) => (!props.isVertical && props.isCollapse ? 'rotate(-90deg)' : '')};\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowDocument,\n useService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { Button } from '@douyinfe/semi-ui';\nimport { IconPlus } from '@douyinfe/semi-icons';\n\ninterface PropsType {\n node: FlowNodeEntity;\n}\n\nexport function SlotAdder(props: PropsType) {\n const { node } = props;\n\n const nodeData = node.firstChild?.getData<FlowNodeRenderData>(FlowNodeRenderData);\n const document = useService(FlowDocument) as FlowDocument;\n\n async function addPort() {\n document.addNode({\n id: nanoid(5),\n type: 'custom',\n parent: node,\n });\n }\n\n return (\n <div\n style={{\n display: 'flex',\n background: 'var(--semi-color-bg-0)',\n }}\n onMouseEnter={() => nodeData?.toggleMouseEnter()}\n onMouseLeave={() => nodeData?.toggleMouseLeave()}\n >\n <Button\n onClick={() => {\n addPort();\n }}\n size=\"small\"\n icon={<IconPlus />}\n />\n </div>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { FlowDragLayer, usePlayground } from '@flowgram.ai/fixed-layout-editor';\n\nimport { UIDragNodeContainer } from './styles';\n\nexport default function DraggingAdder(props: any): JSX.Element {\n const playground = usePlayground();\n const layer = playground.getLayer(FlowDragLayer);\n if (!layer) return <></>;\n if (\n layer.options.canDrop &&\n !layer.options.canDrop({\n dragNodes: layer.dragEntities || [],\n dropNode: props.from,\n isBranch: false,\n })\n ) {\n return <></>;\n }\n return <UIDragNodeContainer />;\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UIDragNodeContainer = styled.div`\n width: 16px;\n height: 16px;\n border-radius: 100px;\n background-color: white;\n border: 1px dashed #b8bcc1;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport type { FlowNodeEntity } from '@flowgram.ai/fixed-layout-editor';\n\nimport { UIDragNodeContainer, UIDragCounts } from './styles';\n\nexport interface PropsType {\n dragStart: FlowNodeEntity;\n dragNodes: FlowNodeEntity[];\n}\n\nexport default function DragNode(props: PropsType): JSX.Element {\n const { dragStart, dragNodes } = props;\n\n const dragLength = (dragNodes || [])\n .map((_node) =>\n _node.allCollapsedChildren.length\n ? _node.allCollapsedChildren.filter((_n) => !_n.hidden).length\n : 1\n )\n .reduce((acm, curr) => acm + curr, 0);\n\n return (\n <UIDragNodeContainer>\n {dragStart?.id}\n {dragLength > 1 && (\n <>\n <UIDragCounts>{dragLength}</UIDragCounts>\n <UIDragNodeContainer\n style={{\n position: 'absolute',\n top: 5,\n right: -5,\n left: 5,\n bottom: -5,\n opacity: 0.5,\n }}\n />\n </>\n )}\n </UIDragNodeContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nimport { primary, primaryOpacity09 } from '../constants';\n\nexport const UIDragNodeContainer = styled.div`\n position: relative;\n height: 32px;\n border-radius: 5px;\n display: flex;\n align-items: center;\n cursor: pointer;\n font-size: 19px;\n border: 1px solid ${primary};\n padding: 0 15px;\n &:hover: {\n background-color: ${primaryOpacity09};\n color: ${primary};\n }\n`;\n\nexport const UIDragCounts = styled.div`\n position: absolute;\n top: -8px;\n right: -8px;\n text-align: center;\n line-height: 16px;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n font-size: 12px;\n color: #fff;\n background-color: ${primary};\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport const primary = 'hsl(252 62% 54.9%)';\nexport const primaryOpacity09 = 'hsl(252deg 62% 55% / 9%)';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { min } from 'lodash';\nimport { type FlowNodeEntity, FlowNodeTransformData } from '@flowgram.ai/fixed-layout-editor';\n\nimport { Ellipse } from '../../assets';\nimport { UILineContainer, UILine } from './styles';\n\nconst getMinSize = (preWidth: number, nextWidth: number): number => {\n if (!preWidth || preWidth < 0) {\n return 0;\n }\n if (!nextWidth || nextWidth < 0) {\n return preWidth;\n }\n return min([preWidth, nextWidth]) || 0;\n};\n\nexport default function DragHighlightAdder({ node }: { node: FlowNodeEntity }): JSX.Element {\n const transformBounds = node.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds;\n const { isVertical } = node;\n if (isVertical) {\n const preWidth = (transformBounds?.width || 0) - 16;\n const nextNodeBounds =\n node?.next?.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds?.width;\n const nextWidth = (nextNodeBounds || 0) - 16;\n const LineDom = UILine(getMinSize(preWidth, nextWidth), 2);\n return (\n <UILineContainer>\n <Ellipse />\n <LineDom />\n <Ellipse />\n </UILineContainer>\n );\n }\n const preHeight = (transformBounds?.height || 0) - 16;\n const nextNodeBounds =\n node?.next?.getData<FlowNodeTransformData>(FlowNodeTransformData)?.bounds?.height;\n const nextHeight = (nextNodeBounds || 0) - 16;\n const LineDom = UILine(2, getMinSize(preHeight, nextHeight));\n return (\n <UILineContainer style={{ flexDirection: 'column' }}>\n <Ellipse />\n <LineDom />\n <Ellipse />\n </UILineContainer>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const UILineContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const UILine = (width: number, height: number) =>\n styled.div`\n width: ${width}px;\n height: ${height}px;\n background: #3370ff;\n `;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeRenderData,\n FlowNodeTransformData,\n FlowOperationService,\n usePlayground,\n useService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { IconPlus } from '@douyinfe/semi-icons';\n\nimport { Container } from './styles';\n\ninterface PropsType {\n activated?: boolean;\n node: FlowNodeEntity;\n}\n\nexport default function BranchAdder(props: PropsType) {\n const { activated, node } = props;\n const nodeData = node.firstChild?.getData<FlowNodeRenderData>(FlowNodeRenderData);\n const playground = usePlayground();\n const flowOperationService = useService(FlowOperationService) as FlowOperationService;\n const { isVertical } = node;\n\n function addBranch() {\n const block = flowOperationService.addBlock(node, { id: nanoid(5) });\n\n setTimeout(() => {\n playground.scrollToView({\n bounds: block.getData<FlowNodeTransformData>(FlowNodeTransformData)!.bounds,\n scrollToCenter: true,\n });\n }, 10);\n }\n if (playground.config.readonlyOrDisabled) return null;\n\n return (\n <Container\n isVertical={isVertical}\n activated={activated || nodeData?.hovered}\n onMouseEnter={() => nodeData?.toggleMouseEnter()}\n onMouseLeave={() => nodeData?.toggleMouseLeave()}\n >\n <div\n onClick={() => {\n addBranch();\n }}\n aria-hidden=\"true\"\n style={{ flexGrow: 1, textAlign: 'center', cursor: 'pointer' }}\n >\n <IconPlus />\n </div>\n </Container>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nexport const Container = styled.div<{ activated?: boolean; isVertical: boolean }>`\n width: 28px;\n height: 18px;\n background: ${(props) => (props.activated ? '#82A7FC' : 'rgb(187, 191, 196)')};\n display: flex;\n border-radius: 9px;\n justify-content: space-evenly;\n align-items: center;\n color: #fff;\n font-size: 10px;\n font-weight: bold;\n transform: ${(props) => (props.isVertical ? '' : 'rotate(90deg)')};\n div {\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n width: 12px;\n height: 12px;\n }\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React, { useState } from 'react';\n\nimport { nanoid } from 'nanoid';\nimport {\n type FlowNodeEntity,\n FlowNodeTransformData,\n usePlayground,\n useService,\n FlowOperationService,\n} from '@flowgram.ai/fixed-layout-editor';\nimport { Popover } from '@douyinfe/semi-ui';\n\nimport Nodes from '../nodes';\nimport { AdderWrap, IconPlus } from './styles';\n\nexport default function Adder(props: {\n from: FlowNodeEntity;\n to?: FlowNodeEntity;\n hoverActivated: boolean;\n}) {\n const { from } = props;\n const [visible, setVisible] = useState(false);\n const playground = usePlayground();\n const flowOperationService = useService(FlowOperationService) as FlowOperationService;\n\n const add = (addProps: any) => {\n const block = flowOperationService.addFromNode(from, {\n id: addProps.type + nanoid(5),\n type: addProps.type,\n blocks: addProps.blocks ? addProps.blocks() : undefined,\n });\n setTimeout(() => {\n playground.scrollToView({\n bounds: block.getData<FlowNodeTransformData>(FlowNodeTransformData)!.bounds,\n scrollToCenter: true,\n });\n }, 10);\n };\n\n if (playground.config.readonlyOrDisabled) return null;\n\n return (\n <Popover\n visible={visible}\n onVisibleChange={setVisible}\n content={<Nodes onSelect={add} />}\n placement=\"right\"\n trigger=\"click\"\n overlayStyle={{\n padding: 0,\n }}\n >\n <AdderWrap\n hovered={props.hoverActivated}\n onMouseDown={(e) => e.stopPropagation()}\n onClick={() => {\n setVisible(true);\n }}\n >\n {props.hoverActivated ? <IconPlus /> : null}\n </AdderWrap>\n </Popover>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport metadata from '../metadata';\nimport { NodeWrap, NodeLabel, NodesWrap } from './styles';\n\nfunction Node(props: { label: string; icon: JSX.Element; onClick: () => void }) {\n return (\n <NodeWrap onClick={props.onClick}>\n <div style={{ fontSize: 14 }}>{props.icon}</div>\n <NodeLabel>{props.label}</NodeLabel>\n </NodeWrap>\n );\n}\n\nconst addings = metadata.nodes.filter((node) => node.type !== 'start');\n\nexport default function Nodes(props: { onSelect: (meta: any) => void }) {\n return (\n <NodesWrap style={{ width: 80 * 2 + 20 }}>\n {addings.map((n, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <Node key={i} icon={n.icon} label={n.label} onClick={() => props.onSelect?.(n)} />\n ))}\n </NodesWrap>\n );\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { nanoid } from 'nanoid';\n\nimport {\n BiBootstrapReboot,\n BiCloud,\n FeAlignCenter,\n IconStyleBorder,\n IconParkRightBranch,\n PhCircleBold,\n} from '../assets';\n\nconst metadata = {\n nodes: [\n {\n type: 'start',\n label: 'Start',\n icon: <IconStyleBorder />,\n },\n {\n type: 'dynamicSplit',\n label: 'Split Branch',\n icon: <IconParkRightBranch />,\n blocks() {\n return [\n {\n id: nanoid(5),\n },\n {\n id: nanoid(5),\n },\n ];\n },\n },\n {\n type: 'end',\n label: 'Branch End',\n icon: <FeAlignCenter />,\n branchEnd: true,\n },\n {\n type: 'loop',\n schemaType: 'loop',\n label: 'Loop',\n icon: <BiBootstrapReboot />,\n },\n {\n type: 'tryCatch',\n schemaType: 'tryCatch',\n label: 'TryCatch',\n icon: <IconParkRightBranch />,\n blocks() {\n return [\n {\n id: `try_${nanoid(5)}`, // try branch\n },\n {\n id: `catch_${nanoid(5)}`, // catch branch 1\n },\n {\n id: `catch_${nanoid(5)}`, // catch branch 2\n },\n ];\n },\n },\n {\n type: 'noop',\n label: 'Noop Node',\n icon: <BiCloud />,\n },\n {\n type: 'end',\n label: 'End',\n icon: <PhCircleBold />,\n },\n ],\n find: function find(type: any) {\n return metadata.nodes.find((m) => m.type === type);\n },\n};\n\nexport default metadata;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\n\nimport { primary, primaryOpacity09 } from '../constants';\n\nexport const NodeWrap = styled.div`\n width: 100%;\n height: 32px;\n border-radius: 5px;\n display: flex;\n align-items: center;\n cursor: pointer;\n font-size: 19px;\n padding: 0 15px;\n &:hover: {\n background-color: ${primaryOpacity09};\n color: ${primary};\n },\n`;\n\nexport const NodeLabel = styled.div`\n font-size: 12px;\n margin-left: 10px;\n`;\n\nexport const NodesWrap = styled.div`\n max-height: 500px;\n overflow: auto;\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport styled from 'styled-components';\nimport { IconPlusCircle } from '@douyinfe/semi-icons';\n\nexport const AdderWrap = styled.div<{ hovered?: boolean }>`\n width: ${(props) => (props.hovered ? 15 : 6)}px;\n height: ${(props) => (props.hovered ? 15 : 6)}px;\n background-color: rgb(143, 149, 158);\n color: #fff;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n`;\n\nexport const IconPlus = styled(IconPlusCircle)`\n color: #3370ff;\n background-color: #fff;\n border-radius: 15px;\n`;\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport React from 'react';\n\nimport { usePlaygroundTools } from '@flowgram.ai/fixed-layout-editor';\nimport { Checkbox, IconButton, Space, Tooltip } from '@douyinfe/semi-ui';\nimport { IconUndo, IconRedo, IconShrink, IconExpand, IconGridView } from '@douyinfe/semi-icons';\n\nexport const PlaygroundTools = ({ layoutText }: { layoutText?: string }) => {\n const tools = usePlaygroundTools();\n const { zoom } = tools;\n\n return (\n <Space>\n <Checkbox onChange={() => tools.changeLayout()} checked={!tools.isVertical}>\n {layoutText || 'isHorizontal'}\n </Checkbox>\n <Tooltip content=\"fit view\">\n <IconButton icon={<IconGridView />} onClick={() => tools.fitView()} />\n </Tooltip>\n <Tooltip content=\"zoom out\">\n <IconButton icon={<IconShrink />} onClick={() => tools.zoomout()} />\n </Tooltip>\n <Tooltip content=\"zoom in\">\n <IconButton icon={<IconExpand />} onClick={() => tools.zoomin()} />\n </Tooltip>\n <Tooltip content=\"undo\">\n <IconButton icon={<IconUndo />} disabled={tools.canUndo} onClick={() => tools.undo()} />\n </Tooltip>\n <Tooltip content=\"redo\">\n <IconButton icon={<IconRedo />} disabled={tools.canRedo} onClick={() => tools.redo()} />\n </Tooltip>\n <span>{Math.floor(zoom * 100)}%</span>\n </Space>\n );\n};\n"],"mappings":"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","names":["import_fixed_layout_editor","React","import_react","React","import_react","React","import_react","import_fixed_layout_editor","import_react","import_fixed_layout_editor","styled","React","React","import_react","import_fixed_layout_editor","import_semi_icons","React","import_react","import_fixed_layout_editor","import_styled_components","styled","React","import_react","import_styled_components","UIDragNodeContainer","styled","React","UIDragNodeContainer","import_react","import_fixed_layout_editor","import_styled_components","styled","nextNodeBounds","LineDom","React","import_react","import_nanoid","import_fixed_layout_editor","import_semi_icons","import_styled_components","Container","styled","React","Container","import_react","import_nanoid","import_fixed_layout_editor","import_semi_ui","import_react","import_react","import_nanoid","React","import_styled_components","styled","React","import_styled_components","import_semi_icons","styled","IconPlus","React","IconPlus","import_react","import_fixed_layout_editor","import_semi_ui","import_semi_icons","React"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowgram.ai/fixed-semi-materials",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "homepage": "https://flowgram.ai/",
5
5
  "repository": "https://github.com/bytedance/flowgram.ai",
6
6
  "license": "MIT",
@@ -21,7 +21,7 @@
21
21
  "@douyinfe/semi-ui": "^2.80.0",
22
22
  "lodash": "^4.17.21",
23
23
  "nanoid": "^4.0.2",
24
- "@flowgram.ai/fixed-layout-editor": "0.3.2"
24
+ "@flowgram.ai/fixed-layout-editor": "0.3.4"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/lodash": "^4.14.137",
@@ -35,8 +35,8 @@
35
35
  "tsup": "^8.0.1",
36
36
  "typescript": "^5.8.3",
37
37
  "vitest": "^0.34.6",
38
- "@flowgram.ai/eslint-config": "0.3.2",
39
- "@flowgram.ai/ts-config": "0.3.2"
38
+ "@flowgram.ai/ts-config": "0.3.4",
39
+ "@flowgram.ai/eslint-config": "0.3.4"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "react": ">=16.8",