dishui 0.0.65 → 0.0.66
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/_virtual/_rolldown/runtime.js +10 -11
- package/dist/chart.js +12 -46
- package/dist/code-editor.js +16 -43
- package/dist/components/Badge/index.js +10 -15
- package/dist/components/Badge/index.js.map +1 -1
- package/dist/components/Button/index.js +62 -89
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Card/index.d.ts +76 -0
- package/dist/components/Card/index.js +178 -69
- package/dist/components/Card/index.js.map +1 -1
- package/dist/components/Chart/Chart.js +25 -25
- package/dist/components/Chart/Chart.js.map +1 -1
- package/dist/components/Checkbox/index.js +57 -65
- package/dist/components/Checkbox/index.js.map +1 -1
- package/dist/components/ChoicePicker/index.d.ts +44 -0
- package/dist/components/ChoicePicker/index.js +81 -0
- package/dist/components/ChoicePicker/index.js.map +1 -0
- package/dist/components/Column/index.d.ts +28 -0
- package/dist/components/Column/index.js +30 -0
- package/dist/components/Column/index.js.map +1 -0
- package/dist/components/DateTimeInput/index.d.ts +44 -0
- package/dist/components/DateTimeInput/index.js +48 -0
- package/dist/components/DateTimeInput/index.js.map +1 -0
- package/dist/components/Demo/index.js +107 -107
- package/dist/components/Demo/index.js.map +1 -1
- package/dist/components/Divider/index.d.ts +20 -0
- package/dist/components/Divider/index.js +30 -0
- package/dist/components/Divider/index.js.map +1 -0
- package/dist/components/EmptyState/index.js +24 -24
- package/dist/components/EmptyState/index.js.map +1 -1
- package/dist/components/FileUploader/DropZone.js +134 -136
- package/dist/components/FileUploader/DropZone.js.map +1 -1
- package/dist/components/FileUploader/FileItem.js +159 -163
- package/dist/components/FileUploader/FileItem.js.map +1 -1
- package/dist/components/FileUploader/FileUploader.js +126 -127
- package/dist/components/FileUploader/FileUploader.js.map +1 -1
- package/dist/components/FileUploader/UploadQueue.js +62 -62
- package/dist/components/FileUploader/UploadQueue.js.map +1 -1
- package/dist/components/FloatWindow/index.d.ts +28 -0
- package/dist/components/GridLayout/index.d.ts +42 -0
- package/dist/components/Icon/index.d.ts +24 -0
- package/dist/components/Icon/index.js +26 -0
- package/dist/components/Icon/index.js.map +1 -0
- package/dist/components/Image/index.d.ts +33 -0
- package/dist/components/Image/index.js +44 -0
- package/dist/components/Image/index.js.map +1 -0
- package/dist/components/Input/index.js +196 -197
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/Label/index.js +62 -74
- package/dist/components/Label/index.js.map +1 -1
- package/dist/components/Layout/index.js +134 -139
- package/dist/components/Layout/index.js.map +1 -1
- package/dist/components/List/index.js +45 -58
- package/dist/components/List/index.js.map +1 -1
- package/dist/components/Markdown/Markdown.js +106 -107
- package/dist/components/Markdown/Markdown.js.map +1 -1
- package/dist/components/Markdown/codeThemes.js +24 -33
- package/dist/components/Markdown/codeThemes.js.map +1 -1
- package/dist/components/Markdown/markdownComponents.js +203 -208
- package/dist/components/Markdown/markdownComponents.js.map +1 -1
- package/dist/components/Markdown/parseCodeBlockMeta.js +22 -22
- package/dist/components/Markdown/parseCodeBlockMeta.js.map +1 -1
- package/dist/components/Markdown/useMarkdownSource.js +46 -46
- package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
- package/dist/components/Markdown/useMarkmapRenderer.js +35 -36
- package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
- package/dist/components/Markdown/useMermaidRenderer.js +41 -42
- package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
- package/dist/components/Modal/index.js +82 -82
- package/dist/components/Modal/index.js.map +1 -1
- package/dist/components/MultipleChoice/index.d.ts +44 -0
- package/dist/components/MultipleChoice/index.js +52 -0
- package/dist/components/MultipleChoice/index.js.map +1 -0
- package/dist/components/Notification/index.d.ts +17 -0
- package/dist/components/Page/index.js +40 -71
- package/dist/components/Page/index.js.map +1 -1
- package/dist/components/PageHeader/index.js +28 -28
- package/dist/components/PageHeader/index.js.map +1 -1
- package/dist/components/ProtectedRoute/index.js +8 -9
- package/dist/components/ProtectedRoute/index.js.map +1 -1
- package/dist/components/Row/index.d.ts +28 -0
- package/dist/components/Row/index.js +30 -0
- package/dist/components/Row/index.js.map +1 -0
- package/dist/components/Select/index.js +251 -254
- package/dist/components/Select/index.js.map +1 -1
- package/dist/components/SidebarToggleButton/index.js +56 -59
- package/dist/components/SidebarToggleButton/index.js.map +1 -1
- package/dist/components/Slider/index.d.ts +39 -0
- package/dist/components/Slider/index.js +52 -0
- package/dist/components/Slider/index.js.map +1 -0
- package/dist/components/StatCard/index.d.ts +29 -1
- package/dist/components/StatCard/index.js +189 -86
- package/dist/components/StatCard/index.js.map +1 -1
- package/dist/components/Switch/index.d.ts +34 -0
- package/dist/components/Switch/index.js +55 -0
- package/dist/components/Switch/index.js.map +1 -0
- package/dist/components/Tab/index.d.ts +40 -0
- package/dist/components/Table/index.js +109 -121
- package/dist/components/Table/index.js.map +1 -1
- package/dist/components/Tabs/index.js +28 -38
- package/dist/components/Tabs/index.js.map +1 -1
- package/dist/components/Text/index.d.ts +43 -0
- package/dist/components/Text/index.js +55 -0
- package/dist/components/Text/index.js.map +1 -0
- package/dist/components/Tooltip/index.d.ts +23 -0
- package/dist/components/Tooltip/index.js +34 -0
- package/dist/components/Tooltip/index.js.map +1 -0
- package/dist/components/Tree/Tree.js +205 -205
- package/dist/components/Tree/Tree.js.map +1 -1
- package/dist/components/pro/ArticleContextMenu/index.js +86 -87
- package/dist/components/pro/ArticleContextMenu/index.js.map +1 -1
- package/dist/components/pro/ArticleControl/ArticleControl2.js +250 -250
- package/dist/components/pro/ArticleControl/ArticleControl2.js.map +1 -1
- package/dist/components/pro/ArticleControl/buildHeadingTree.js +31 -32
- package/dist/components/pro/ArticleControl/buildHeadingTree.js.map +1 -1
- package/dist/components/pro/ArticleControl/useArticleToc.js +100 -102
- package/dist/components/pro/ArticleControl/useArticleToc.js.map +1 -1
- package/dist/components/pro/Calendar/Calendar.d.ts +10 -0
- package/dist/components/pro/Calendar/hooks/useCalendarDrag.d.ts +47 -0
- package/dist/components/pro/Calendar/hooks/useCalendarState.d.ts +56 -0
- package/dist/components/pro/Calendar/index.d.ts +7 -0
- package/dist/components/pro/Calendar/types.d.ts +151 -0
- package/dist/components/pro/Calendar/utils.d.ts +94 -0
- package/dist/components/pro/Chat/Chat.d.ts +6 -0
- package/dist/components/pro/Chat/index.d.ts +2 -0
- package/dist/components/pro/Chat/types.d.ts +84 -0
- package/dist/components/pro/CodeEditor/editors/CodeEditor.js +287 -327
- package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
- package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +167 -224
- package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
- package/dist/components/pro/CodeEditor/editors/markdownExtensions.js +594 -613
- package/dist/components/pro/CodeEditor/editors/markdownExtensions.js.map +1 -1
- package/dist/components/pro/CodeEditor/extensions/contextMenu.js +54 -55
- package/dist/components/pro/CodeEditor/extensions/contextMenu.js.map +1 -1
- package/dist/components/pro/CodeEditor/extensions/index.js +152 -160
- package/dist/components/pro/CodeEditor/extensions/index.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/index.js +7 -15
- package/dist/components/pro/CodeEditor/langs/index.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/javascript.js +11 -48
- package/dist/components/pro/CodeEditor/langs/javascript.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/python.js +4 -40
- package/dist/components/pro/CodeEditor/langs/python.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/snippets.js +118 -147
- package/dist/components/pro/CodeEditor/langs/snippets.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/FootnotePanel.js +153 -153
- package/dist/components/pro/CodeEditor/panels/FootnotePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/HistoryPanel.js +180 -190
- package/dist/components/pro/CodeEditor/panels/HistoryPanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/OutlinePanel.js +130 -137
- package/dist/components/pro/CodeEditor/panels/OutlinePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js +228 -242
- package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/VariablePanel.js +208 -248
- package/dist/components/pro/CodeEditor/panels/VariablePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/themes.js +513 -483
- package/dist/components/pro/CodeEditor/themes.js.map +1 -1
- package/dist/components/pro/CodeEditor/types.d.ts +1 -1
- package/dist/components/pro/CodeEditor/utils.js +171 -175
- package/dist/components/pro/CodeEditor/utils.js.map +1 -1
- package/dist/components/pro/DataTable/DataTable.js +305 -306
- package/dist/components/pro/DataTable/DataTable.js.map +1 -1
- package/dist/components/pro/DataTable/Filters.js +299 -314
- package/dist/components/pro/DataTable/Filters.js.map +1 -1
- package/dist/components/pro/DataTable/PivotPanel.js +203 -204
- package/dist/components/pro/DataTable/PivotPanel.js.map +1 -1
- package/dist/components/pro/DataTable/PivotView.js +142 -144
- package/dist/components/pro/DataTable/PivotView.js.map +1 -1
- package/dist/components/pro/DataTable/components/BulkActions.js +42 -42
- package/dist/components/pro/DataTable/components/BulkActions.js.map +1 -1
- package/dist/components/pro/DataTable/components/ColumnSelector.js +84 -84
- package/dist/components/pro/DataTable/components/ColumnSelector.js.map +1 -1
- package/dist/components/pro/DataTable/components/FilterBar.js +58 -58
- package/dist/components/pro/DataTable/components/FilterBar.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableBody.js +93 -94
- package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableHeader.js +78 -78
- package/dist/components/pro/DataTable/components/TableHeader.js.map +1 -1
- package/dist/components/pro/DataTable/components/TablePagination.js +77 -77
- package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableToolbar.js +40 -40
- package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
- package/dist/components/pro/DataTable/extension.js +5 -5
- package/dist/components/pro/DataTable/extension.js.map +1 -1
- package/dist/components/pro/DataTable/pivotEngine.js +84 -92
- package/dist/components/pro/DataTable/pivotEngine.js.map +1 -1
- package/dist/components/pro/DataTable/pivotExtension.js +93 -93
- package/dist/components/pro/DataTable/pivotExtension.js.map +1 -1
- package/dist/components/pro/DataTable/rowDetailExtension.js +30 -30
- package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
- package/dist/components/pro/DataTable/tanstack-table.js +45 -62
- package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
- package/dist/components/pro/DataTable/treeDataUtils.js +37 -48
- package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
- package/dist/components/pro/DataTable/useColumnDragReorder.js +68 -68
- package/dist/components/pro/DataTable/useColumnDragReorder.js.map +1 -1
- package/dist/components/pro/DataTable/utils.js +156 -168
- package/dist/components/pro/DataTable/utils.js.map +1 -1
- package/dist/components/pro/FileExplorer/Breadcrumb.js +180 -180
- package/dist/components/pro/FileExplorer/Breadcrumb.js.map +1 -1
- package/dist/components/pro/FileExplorer/CreateDialog.js +78 -78
- package/dist/components/pro/FileExplorer/CreateDialog.js.map +1 -1
- package/dist/components/pro/FileExplorer/FileExplorer.js +202 -205
- package/dist/components/pro/FileExplorer/FileExplorer.js.map +1 -1
- package/dist/components/pro/FileExplorer/FileIcon.js +189 -189
- package/dist/components/pro/FileExplorer/FileIcon.js.map +1 -1
- package/dist/components/pro/FileExplorer/GridView.js +100 -100
- package/dist/components/pro/FileExplorer/GridView.js.map +1 -1
- package/dist/components/pro/FileExplorer/ListView.js +209 -209
- package/dist/components/pro/FileExplorer/ListView.js.map +1 -1
- package/dist/components/pro/FileExplorer/Toolbar.js +199 -199
- package/dist/components/pro/FileExplorer/Toolbar.js.map +1 -1
- package/dist/components/pro/Flow/Flow.js +920 -948
- package/dist/components/pro/Flow/Flow.js.map +1 -1
- package/dist/components/pro/Flow/FlowCanvas.js +1626 -1662
- package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
- package/dist/components/pro/Flow/archify/build.js +85 -94
- package/dist/components/pro/Flow/archify/build.js.map +1 -1
- package/dist/components/pro/Flow/archify/convert.js +512 -519
- package/dist/components/pro/Flow/archify/convert.js.map +1 -1
- package/dist/components/pro/Flow/archify/palette.js +87 -104
- package/dist/components/pro/Flow/archify/palette.js.map +1 -1
- package/dist/components/pro/Flow/archify/presets.js +34 -37
- package/dist/components/pro/Flow/archify/presets.js.map +1 -1
- package/dist/components/pro/Flow/archify/spec.js +7 -7
- package/dist/components/pro/Flow/archify/spec.js.map +1 -1
- package/dist/components/pro/Flow/canvas/AlignmentGuides.js +25 -25
- package/dist/components/pro/Flow/canvas/AlignmentGuides.js.map +1 -1
- package/dist/components/pro/Flow/canvas/GridRenderer.js +54 -55
- package/dist/components/pro/Flow/canvas/GridRenderer.js.map +1 -1
- package/dist/components/pro/Flow/canvas/MiniMapRenderer.js +54 -58
- package/dist/components/pro/Flow/canvas/MiniMapRenderer.js.map +1 -1
- package/dist/components/pro/Flow/canvas/PixiApp.js +105 -102
- package/dist/components/pro/Flow/canvas/PixiApp.js.map +1 -1
- package/dist/components/pro/Flow/canvas/SelectionOverlay.js +38 -38
- package/dist/components/pro/Flow/canvas/SelectionOverlay.js.map +1 -1
- package/dist/components/pro/Flow/canvas/ViewportContainer.js +117 -117
- package/dist/components/pro/Flow/canvas/ViewportContainer.js.map +1 -1
- package/dist/components/pro/Flow/constants.js +266 -278
- package/dist/components/pro/Flow/constants.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowAIContext.js +27 -28
- package/dist/components/pro/Flow/context/FlowAIContext.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowContext.js +60 -61
- package/dist/components/pro/Flow/context/FlowContext.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowUIContext.js +115 -117
- package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
- package/dist/components/pro/Flow/edges/EdgeRenderer.js +135 -138
- package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
- package/dist/components/pro/Flow/edges/edgeMarkers.js +11 -14
- package/dist/components/pro/Flow/edges/edgeMarkers.js.map +1 -1
- package/dist/components/pro/Flow/edges/edgePaths.js +351 -367
- package/dist/components/pro/Flow/edges/edgePaths.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useAlignmentGuides.js +49 -52
- package/dist/components/pro/Flow/hooks/useAlignmentGuides.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useClipboard.js +154 -154
- package/dist/components/pro/Flow/hooks/useClipboard.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useCompactMode.js +17 -17
- package/dist/components/pro/Flow/hooks/useCompactMode.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useDeleteSelection.js +40 -40
- package/dist/components/pro/Flow/hooks/useDeleteSelection.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useDraggablePanel.js +51 -51
- package/dist/components/pro/Flow/hooks/useDraggablePanel.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useEdgeMutations.js +157 -157
- package/dist/components/pro/Flow/hooks/useEdgeMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useFlowImportExport.js +190 -201
- package/dist/components/pro/Flow/hooks/useFlowImportExport.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js +32 -38
- package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useLayoutActions.js +172 -180
- package/dist/components/pro/Flow/hooks/useLayoutActions.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useLineMutations.js +57 -57
- package/dist/components/pro/Flow/hooks/useLineMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useMindMap.js +229 -238
- package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useNodeMutations.js +102 -102
- package/dist/components/pro/Flow/hooks/useNodeMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/usePdfExport.js +55 -56
- package/dist/components/pro/Flow/hooks/usePdfExport.js.map +1 -1
- package/dist/components/pro/Flow/hooks/usePixiApp.js +55 -57
- package/dist/components/pro/Flow/hooks/usePixiApp.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useResizablePanel.js +31 -31
- package/dist/components/pro/Flow/hooks/useResizablePanel.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useSelection.js +69 -69
- package/dist/components/pro/Flow/hooks/useSelection.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useUndoRedo.js +27 -27
- package/dist/components/pro/Flow/hooks/useUndoRedo.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useViewport.js +28 -28
- package/dist/components/pro/Flow/hooks/useViewport.js.map +1 -1
- package/dist/components/pro/Flow/lines/FreehandTool.js +63 -63
- package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
- package/dist/components/pro/Flow/lines/GeometricLineTool.js +80 -80
- package/dist/components/pro/Flow/lines/GeometricLineTool.js.map +1 -1
- package/dist/components/pro/Flow/lines/LineRenderer.js +88 -88
- package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
- package/dist/components/pro/Flow/lines/lineSmoothing.js +32 -34
- package/dist/components/pro/Flow/lines/lineSmoothing.js.map +1 -1
- package/dist/components/pro/Flow/nodes/DataNodeView.js +236 -242
- package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
- package/dist/components/pro/Flow/nodes/MediaContent.js +236 -246
- package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
- package/dist/components/pro/Flow/nodes/MediaOverlay.js +63 -63
- package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
- package/dist/components/pro/Flow/nodes/Model3DView.js +111 -113
- package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeHandles.js +74 -80
- package/dist/components/pro/Flow/nodes/NodeHandles.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeRenderer.js +303 -314
- package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeText.js +25 -29
- package/dist/components/pro/Flow/nodes/NodeText.js.map +1 -1
- package/dist/components/pro/Flow/nodes/aiClient.js +124 -137
- package/dist/components/pro/Flow/nodes/aiClient.js.map +1 -1
- package/dist/components/pro/Flow/nodes/animAnchors.js +42 -49
- package/dist/components/pro/Flow/nodes/animAnchors.js.map +1 -1
- package/dist/components/pro/Flow/nodes/dataUtils.js +246 -267
- package/dist/components/pro/Flow/nodes/dataUtils.js.map +1 -1
- package/dist/components/pro/Flow/nodes/nodeUtils.js +23 -28
- package/dist/components/pro/Flow/nodes/nodeUtils.js.map +1 -1
- package/dist/components/pro/Flow/nodes/shapes.js +556 -589
- package/dist/components/pro/Flow/nodes/shapes.js.map +1 -1
- package/dist/components/pro/Flow/nodes/svgIconTexture.js +37 -39
- package/dist/components/pro/Flow/nodes/svgIconTexture.js.map +1 -1
- package/dist/components/pro/Flow/nodes/svgIcons.js +684 -689
- package/dist/components/pro/Flow/nodes/svgIcons.js.map +1 -1
- package/dist/components/pro/Flow/panels/AIPanel.js +464 -491
- package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/Breadcrumb.js +41 -41
- package/dist/components/pro/Flow/panels/Breadcrumb.js.map +1 -1
- package/dist/components/pro/Flow/panels/ContextMenu.js +37 -37
- package/dist/components/pro/Flow/panels/ContextMenu.js.map +1 -1
- package/dist/components/pro/Flow/panels/DataInspectorSection.js +428 -432
- package/dist/components/pro/Flow/panels/DataInspectorSection.js.map +1 -1
- package/dist/components/pro/Flow/panels/ExpandableTextarea.js +61 -62
- package/dist/components/pro/Flow/panels/ExpandableTextarea.js.map +1 -1
- package/dist/components/pro/Flow/panels/FlowPanelGroup.js +114 -114
- package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
- package/dist/components/pro/Flow/panels/FlowToolbar.js +347 -391
- package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
- package/dist/components/pro/Flow/panels/InspectorPanel.js +1792 -1798
- package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/OutlinePanel.js +242 -248
- package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/PresentationMode.js +137 -140
- package/dist/components/pro/Flow/panels/PresentationMode.js.map +1 -1
- package/dist/components/pro/Flow/panels/ProjectTitle.js +46 -46
- package/dist/components/pro/Flow/panels/ProjectTitle.js.map +1 -1
- package/dist/components/pro/Flow/panels/ShapePalette.js +557 -572
- package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
- package/dist/components/pro/Flow/panels/toolbarIcons.d.ts +0 -1
- package/dist/components/pro/Flow/panels/toolbarIcons.js +508 -557
- package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
- package/dist/components/pro/Flow/types.js +26 -26
- package/dist/components/pro/Flow/types.js.map +1 -1
- package/dist/components/pro/Flow/utils/dashedLine.js +113 -117
- package/dist/components/pro/Flow/utils/dashedLine.js.map +1 -1
- package/dist/components/pro/Flow/utils/gradient.js +55 -55
- package/dist/components/pro/Flow/utils/gradient.js.map +1 -1
- package/dist/components/pro/Flow/utils/pdfExport.js +50 -89
- package/dist/components/pro/Flow/utils/pdfExport.js.map +1 -1
- package/dist/components/pro/Flow/utils/themeColor.js +185 -195
- package/dist/components/pro/Flow/utils/themeColor.js.map +1 -1
- package/dist/components/pro/Gantt/Gantt.d.ts +7 -0
- package/dist/components/pro/Gantt/hooks/useGanttDrag.d.ts +31 -0
- package/dist/components/pro/Gantt/hooks/useGanttState.d.ts +58 -0
- package/dist/components/pro/Gantt/index.d.ts +6 -0
- package/dist/components/pro/Gantt/types.d.ts +478 -0
- package/dist/components/pro/Gantt/utils.d.ts +124 -0
- package/dist/components/pro/Resizable/Resizable.d.ts +30 -0
- package/dist/components/pro/Resizable/index.d.ts +2 -0
- package/dist/components/pro/RichTextEditor/AIRewrite.js +323 -334
- package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
- package/dist/components/pro/RichTextEditor/BlockHandle.js +314 -316
- package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
- package/dist/components/pro/RichTextEditor/BubbleToolbar.js +97 -97
- package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentDialog.js +88 -88
- package/dist/components/pro/RichTextEditor/CommentDialog.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentPanel.js +240 -240
- package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentPopover.js +234 -234
- package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
- package/dist/components/pro/RichTextEditor/ContextMenu.js +251 -252
- package/dist/components/pro/RichTextEditor/ContextMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/RichTextEditor.js +267 -271
- package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
- package/dist/components/pro/RichTextEditor/SlashMenu.js +214 -214
- package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js +44 -75
- package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js +261 -261
- package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js +172 -526
- package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js +112 -114
- package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js +194 -194
- package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js +970 -973
- package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js +11 -12
- package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js +310 -344
- package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/CommentMark.js +38 -39
- package/dist/components/pro/RichTextEditor/extensions/CommentMark.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js +620 -625
- package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/FontSize.js +25 -25
- package/dist/components/pro/RichTextEditor/extensions/FontSize.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js +167 -176
- package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
- package/dist/components/pro/RichTextEditor/types.js +75 -75
- package/dist/components/pro/RichTextEditor/types.js.map +1 -1
- package/dist/contexts/AppContext.d.ts +1 -1
- package/dist/contexts/AppContext.js +216 -221
- package/dist/contexts/AppContext.js.map +1 -1
- package/dist/data-table.js +15 -41
- package/dist/data-table.js.map +1 -1
- package/dist/dishui.css +1 -1
- package/dist/flow.js +27 -83
- package/dist/hooks/useClickOutside.js +18 -18
- package/dist/hooks/useClickOutside.js.map +1 -1
- package/dist/hooks/useContainerElement.js +9 -9
- package/dist/hooks/useContainerElement.js.map +1 -1
- package/dist/hooks/useControllableState.js +33 -35
- package/dist/hooks/useControllableState.js.map +1 -1
- package/dist/hooks/useCopyToClipboard.js +16 -16
- package/dist/hooks/useCopyToClipboard.js.map +1 -1
- package/dist/hooks/useDebounce.js +14 -14
- package/dist/hooks/useDebounce.js.map +1 -1
- package/dist/hooks/useDraggable.js +50 -50
- package/dist/hooks/useDraggable.js.map +1 -1
- package/dist/hooks/useTableColumns.js +39 -41
- package/dist/hooks/useTableColumns.js.map +1 -1
- package/dist/hooks/useTableData.js +67 -68
- package/dist/hooks/useTableData.js.map +1 -1
- package/dist/index-nostyled.d.ts +8 -0
- package/dist/index.d.ts +27 -1
- package/dist/index.js +105 -241
- package/dist/layouts/MainLayout.js +56 -56
- package/dist/layouts/MainLayout.js.map +1 -1
- package/dist/layouts/Navbar.js +214 -214
- package/dist/layouts/Navbar.js.map +1 -1
- package/dist/layouts/Sidebar.js +184 -186
- package/dist/layouts/Sidebar.js.map +1 -1
- package/dist/layouts/headbar/Headbar.js +25 -25
- package/dist/layouts/headbar/Headbar.js.map +1 -1
- package/dist/layouts/headbar/HeadbarLangSwitcher.js +39 -39
- package/dist/layouts/headbar/HeadbarLangSwitcher.js.map +1 -1
- package/dist/layouts/headbar/HeadbarSearch.js +120 -120
- package/dist/layouts/headbar/HeadbarSearch.js.map +1 -1
- package/dist/layouts/headbar/HeadbarThemeSwitcher.js +27 -27
- package/dist/layouts/headbar/HeadbarThemeSwitcher.js.map +1 -1
- package/dist/layouts/headbar/HeadbarTitle.js +26 -26
- package/dist/layouts/headbar/HeadbarTitle.js.map +1 -1
- package/dist/lite.js +9 -24
- package/dist/markdown.js +4 -9
- package/dist/pages/components/Calendar/index.d.ts +3 -0
- package/dist/pages/components/Calendar/index.en.d.ts +3 -0
- package/dist/pages/components/Calendar/index.zh.d.ts +3 -0
- package/dist/pages/components/Chat/index.d.ts +3 -0
- package/dist/pages/components/Chat/index.en.d.ts +3 -0
- package/dist/pages/components/Chat/index.zh.d.ts +3 -0
- package/dist/pages/components/FloatWindow/index.d.ts +3 -0
- package/dist/pages/components/FloatWindow/index.en.d.ts +3 -0
- package/dist/pages/components/FloatWindow/index.zh.d.ts +3 -0
- package/dist/pages/components/Gantt/index.d.ts +3 -0
- package/dist/pages/components/Gantt/index.en.d.ts +3 -0
- package/dist/pages/components/Gantt/index.zh.d.ts +3 -0
- package/dist/pages/components/GridLayout/index.d.ts +3 -0
- package/dist/pages/components/GridLayout/index.en.d.ts +3 -0
- package/dist/pages/components/GridLayout/index.zh.d.ts +3 -0
- package/dist/pages/components/Notification/index.d.ts +3 -0
- package/dist/pages/components/Notification/index.en.d.ts +3 -0
- package/dist/pages/components/Notification/index.zh.d.ts +3 -0
- package/dist/pages/components/Resizable/index.d.ts +3 -0
- package/dist/pages/components/Resizable/index.en.d.ts +3 -0
- package/dist/pages/components/Resizable/index.zh.d.ts +3 -0
- package/dist/pages/components/Tab/index.d.ts +3 -0
- package/dist/pages/components/Tab/index.en.d.ts +3 -0
- package/dist/pages/components/Tab/index.zh.d.ts +3 -0
- package/dist/styles/themeStyles.js +87 -86
- package/dist/styles/themeStyles.js.map +1 -1
- package/dist/utils/cn.d.ts +13 -0
- package/dist/utils/cn.js +16 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/i18n.js +690 -602
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/menu.js +94 -94
- package/dist/utils/menu.js.map +1 -1
- package/dist/utils/rehype-code-meta.js +14 -14
- package/dist/utils/rehype-code-meta.js.map +1 -1
- package/dist/utils/remark-code-meta.js +9 -9
- package/dist/utils/remark-code-meta.js.map +1 -1
- package/dist/utils/routerBuilder.js +59 -60
- package/dist/utils/routerBuilder.js.map +1 -1
- package/dist/utils/selection.js +28 -29
- package/dist/utils/selection.js.map +1 -1
- package/dist/utils/themes.js +275 -255
- package/dist/utils/themes.js.map +1 -1
- package/package.json +19 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResizablePanel.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useResizablePanel.ts"],"sourcesContent":["import { useState, useRef, useCallback, type PointerEvent as ReactPointerEvent } from 'react';\n\nexport type ResizeEdge = 'left' | 'right';\n\n/**\n * Enables horizontal width resizing for an overlay panel by dragging its edge.\n * Returns a width override (null = use CSS default), and props to spread onto\n * a resize-handle element placed on the panel's resize edge.\n */\nexport function useResizablePanel(edge: ResizeEdge, defaultWidth: number, minWidth = 120, maxWidth = 600) {\n const [width, setWidth] = useState<number | null>(null);\n const dragState = useRef<{ startX: number; startWidth: number } | null>(null);\n\n const onPointerDown = useCallback((e: ReactPointerEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n const panel = (e.currentTarget as HTMLElement).closest('[data-flow-panel]') as HTMLElement | null;\n const startWidth = panel ? panel.getBoundingClientRect().width : (width ?? defaultWidth);\n dragState.current = { startX: e.clientX, startWidth };\n }, [width, defaultWidth]);\n\n const onPointerMove = useCallback((e: ReactPointerEvent<HTMLElement>) => {\n if (!dragState.current) return;\n const dx = e.clientX - dragState.current.startX;\n const dir = edge === 'right' ? 1 : -1;\n const newWidth = Math.max(minWidth, Math.min(maxWidth, dragState.current.startWidth + dx * dir));\n setWidth(newWidth);\n }, [edge, minWidth, maxWidth]);\n\n const onPointerUp = useCallback(() => {\n dragState.current = null;\n }, []);\n\n return {\n panelWidth: width ?? defaultWidth,\n resizeHandleProps: { onPointerDown, onPointerMove, onPointerUp },\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useResizablePanel.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useResizablePanel.ts"],"sourcesContent":["import { useState, useRef, useCallback, type PointerEvent as ReactPointerEvent } from 'react';\n\nexport type ResizeEdge = 'left' | 'right';\n\n/**\n * Enables horizontal width resizing for an overlay panel by dragging its edge.\n * Returns a width override (null = use CSS default), and props to spread onto\n * a resize-handle element placed on the panel's resize edge.\n */\nexport function useResizablePanel(edge: ResizeEdge, defaultWidth: number, minWidth = 120, maxWidth = 600) {\n const [width, setWidth] = useState<number | null>(null);\n const dragState = useRef<{ startX: number; startWidth: number } | null>(null);\n\n const onPointerDown = useCallback((e: ReactPointerEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n const panel = (e.currentTarget as HTMLElement).closest('[data-flow-panel]') as HTMLElement | null;\n const startWidth = panel ? panel.getBoundingClientRect().width : (width ?? defaultWidth);\n dragState.current = { startX: e.clientX, startWidth };\n }, [width, defaultWidth]);\n\n const onPointerMove = useCallback((e: ReactPointerEvent<HTMLElement>) => {\n if (!dragState.current) return;\n const dx = e.clientX - dragState.current.startX;\n const dir = edge === 'right' ? 1 : -1;\n const newWidth = Math.max(minWidth, Math.min(maxWidth, dragState.current.startWidth + dx * dir));\n setWidth(newWidth);\n }, [edge, minWidth, maxWidth]);\n\n const onPointerUp = useCallback(() => {\n dragState.current = null;\n }, []);\n\n return {\n panelWidth: width ?? defaultWidth,\n resizeHandleProps: { onPointerDown, onPointerMove, onPointerUp },\n };\n}\n"],"mappings":";;AASA,SAAgB,EAAkB,GAAkB,GAAsB,IAAW,KAAK,IAAW,KAAK;CACxG,IAAM,CAAC,GAAO,KAAY,EAAwB,IAAI,GAChD,IAAY,EAAsD,IAAI,GAEtE,IAAgB,GAAa,MAAsC;EAGvE,AAFA,EAAE,eAAe,GACjB,EAAE,gBAAgB,GAClB,EAAG,OAAuB,kBAAkB,EAAE,SAAS;EACvD,IAAM,IAAS,EAAE,cAA8B,QAAQ,mBAAmB,GACpE,IAAa,IAAQ,EAAM,sBAAsB,CAAC,CAAC,QAAS,KAAS;EAC3E,EAAU,UAAU;GAAE,QAAQ,EAAE;GAAS;EAAW;CACtD,GAAG,CAAC,GAAO,CAAY,CAAC,GAElB,IAAgB,GAAa,MAAsC;EACvE,IAAI,CAAC,EAAU,SAAS;EACxB,IAAM,IAAK,EAAE,UAAU,EAAU,QAAQ,QACnC,IAAM,MAAS,UAAU,IAAI,IAC7B,IAAW,KAAK,IAAI,GAAU,KAAK,IAAI,GAAU,EAAU,QAAQ,aAAa,IAAK,CAAG,CAAC;EAC/F,EAAS,CAAQ;CACnB,GAAG;EAAC;EAAM;EAAU;CAAQ,CAAC,GAEvB,IAAc,QAAkB;EACpC,EAAU,UAAU;CACtB,GAAG,CAAC,CAAC;CAEL,OAAO;EACL,YAAY,KAAS;EACrB,mBAAmB;GAAE;GAAe;GAAe;EAAY;CACjE;AACF"}
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
import { useFlowContext as
|
|
1
|
+
import { useFlowContext as e } from "../context/FlowContext.js";
|
|
2
2
|
import { useCallback as t } from "react";
|
|
3
|
-
|
|
3
|
+
//#region src/components/pro/Flow/hooks/useSelection.ts
|
|
4
|
+
var n = /* @__PURE__ */ new Set();
|
|
4
5
|
function r() {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
6
|
+
let { selection: r, setSelection: i, currentCanvas: a } = e();
|
|
7
|
+
return {
|
|
8
|
+
selection: r,
|
|
9
|
+
selectNode: t((e, t = !1) => {
|
|
10
|
+
i((r) => {
|
|
11
|
+
let i = new Set(t ? r.nodeIds : []);
|
|
12
|
+
return i.add(e), {
|
|
13
|
+
nodeIds: i,
|
|
14
|
+
edgeIds: t ? r.edgeIds : n,
|
|
15
|
+
lineIds: t ? r.lineIds : n
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
}, [i]),
|
|
19
|
+
selectEdge: t((e, t = !1) => {
|
|
20
|
+
i((r) => {
|
|
21
|
+
let i = new Set(t ? r.edgeIds : []);
|
|
22
|
+
return i.add(e), {
|
|
23
|
+
nodeIds: t ? r.nodeIds : n,
|
|
24
|
+
edgeIds: i,
|
|
25
|
+
lineIds: t ? r.lineIds : n
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
}, [i]),
|
|
29
|
+
selectLine: t((e, t = !1) => {
|
|
30
|
+
i((r) => {
|
|
31
|
+
let i = new Set(t ? r.lineIds : []);
|
|
32
|
+
return i.add(e), {
|
|
33
|
+
nodeIds: t ? r.nodeIds : n,
|
|
34
|
+
edgeIds: t ? r.edgeIds : n,
|
|
35
|
+
lineIds: i
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}, [i]),
|
|
39
|
+
selectMultipleNodes: t((e) => {
|
|
40
|
+
i({
|
|
41
|
+
nodeIds: new Set(e),
|
|
42
|
+
edgeIds: n,
|
|
43
|
+
lineIds: n
|
|
44
|
+
});
|
|
45
|
+
}, [i]),
|
|
46
|
+
clearSelection: t(() => {
|
|
47
|
+
i({
|
|
48
|
+
nodeIds: n,
|
|
49
|
+
edgeIds: n,
|
|
50
|
+
lineIds: n
|
|
51
|
+
});
|
|
52
|
+
}, [i]),
|
|
53
|
+
toggleNode: t((e) => {
|
|
54
|
+
i((t) => {
|
|
55
|
+
let n = new Set(t.nodeIds);
|
|
56
|
+
return n.has(e) ? n.delete(e) : n.add(e), {
|
|
57
|
+
...t,
|
|
58
|
+
nodeIds: n
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
}, [i]),
|
|
62
|
+
isNodeSelected: t((e) => r.nodeIds.has(e), [r.nodeIds]),
|
|
63
|
+
isEdgeSelected: t((e) => r.edgeIds.has(e), [r.edgeIds]),
|
|
64
|
+
isLineSelected: t((e) => r.lineIds.has(e), [r.lineIds]),
|
|
65
|
+
selectedNodes: a.nodes.filter((e) => r.nodeIds.has(e.id)),
|
|
66
|
+
selectedEdges: a.edges.filter((e) => r.edgeIds.has(e.id)),
|
|
67
|
+
selectedLines: a.lines.filter((e) => r.lineIds.has(e.id)),
|
|
68
|
+
hasSelection: r.nodeIds.size > 0 || r.edgeIds.size > 0 || r.lineIds.size > 0
|
|
69
|
+
};
|
|
69
70
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
};
|
|
71
|
+
//#endregion
|
|
72
|
+
export { r as useSelection };
|
|
73
73
|
|
|
74
74
|
//# sourceMappingURL=useSelection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelection.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useSelection.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport type { SelectionState } from '../types';\n\nconst EMPTY_SET = new Set<string>();\n\nexport function useSelection() {\n const { selection, setSelection, currentCanvas } = useFlowContext();\n\n const selectNode = useCallback(\n (id: string, additive = false) => {\n setSelection(prev => {\n const nodeIds = new Set(additive ? prev.nodeIds : []);\n nodeIds.add(id);\n return { nodeIds, edgeIds: additive ? prev.edgeIds : EMPTY_SET, lineIds: additive ? prev.lineIds : EMPTY_SET };\n });\n },\n [setSelection],\n );\n\n const selectEdge = useCallback(\n (id: string, additive = false) => {\n setSelection(prev => {\n const edgeIds = new Set(additive ? prev.edgeIds : []);\n edgeIds.add(id);\n return { nodeIds: additive ? prev.nodeIds : EMPTY_SET, edgeIds, lineIds: additive ? prev.lineIds : EMPTY_SET };\n });\n },\n [setSelection],\n );\n\n const selectLine = useCallback(\n (id: string, additive = false) => {\n setSelection(prev => {\n const lineIds = new Set(additive ? prev.lineIds : []);\n lineIds.add(id);\n return { nodeIds: additive ? prev.nodeIds : EMPTY_SET, edgeIds: additive ? prev.edgeIds : EMPTY_SET, lineIds };\n });\n },\n [setSelection],\n );\n\n const selectMultipleNodes = useCallback(\n (ids: string[]) => {\n setSelection({ nodeIds: new Set(ids), edgeIds: EMPTY_SET, lineIds: EMPTY_SET });\n },\n [setSelection],\n );\n\n const clearSelection = useCallback(() => {\n setSelection({ nodeIds: EMPTY_SET, edgeIds: EMPTY_SET, lineIds: EMPTY_SET });\n }, [setSelection]);\n\n const toggleNode = useCallback(\n (id: string) => {\n setSelection(prev => {\n const nodeIds = new Set(prev.nodeIds);\n if (nodeIds.has(id)) nodeIds.delete(id);\n else nodeIds.add(id);\n return { ...prev, nodeIds };\n });\n },\n [setSelection],\n );\n\n const isNodeSelected = useCallback(\n (id: string) => selection.nodeIds.has(id),\n [selection.nodeIds],\n );\n\n const isEdgeSelected = useCallback(\n (id: string) => selection.edgeIds.has(id),\n [selection.edgeIds],\n );\n\n const isLineSelected = useCallback(\n (id: string) => selection.lineIds.has(id),\n [selection.lineIds],\n );\n\n const selectedNodes = currentCanvas.nodes.filter(n => selection.nodeIds.has(n.id));\n const selectedEdges = currentCanvas.edges.filter(e => selection.edgeIds.has(e.id));\n const selectedLines = currentCanvas.lines.filter(l => selection.lineIds.has(l.id));\n\n const hasSelection = selection.nodeIds.size > 0 || selection.edgeIds.size > 0 || selection.lineIds.size > 0;\n\n return {\n selection,\n selectNode,\n selectEdge,\n selectLine,\n selectMultipleNodes,\n clearSelection,\n toggleNode,\n isNodeSelected,\n isEdgeSelected,\n isLineSelected,\n selectedNodes,\n selectedEdges,\n selectedLines,\n hasSelection,\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSelection.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useSelection.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport type { SelectionState } from '../types';\n\nconst EMPTY_SET = new Set<string>();\n\nexport function useSelection() {\n const { selection, setSelection, currentCanvas } = useFlowContext();\n\n const selectNode = useCallback(\n (id: string, additive = false) => {\n setSelection(prev => {\n const nodeIds = new Set(additive ? prev.nodeIds : []);\n nodeIds.add(id);\n return { nodeIds, edgeIds: additive ? prev.edgeIds : EMPTY_SET, lineIds: additive ? prev.lineIds : EMPTY_SET };\n });\n },\n [setSelection],\n );\n\n const selectEdge = useCallback(\n (id: string, additive = false) => {\n setSelection(prev => {\n const edgeIds = new Set(additive ? prev.edgeIds : []);\n edgeIds.add(id);\n return { nodeIds: additive ? prev.nodeIds : EMPTY_SET, edgeIds, lineIds: additive ? prev.lineIds : EMPTY_SET };\n });\n },\n [setSelection],\n );\n\n const selectLine = useCallback(\n (id: string, additive = false) => {\n setSelection(prev => {\n const lineIds = new Set(additive ? prev.lineIds : []);\n lineIds.add(id);\n return { nodeIds: additive ? prev.nodeIds : EMPTY_SET, edgeIds: additive ? prev.edgeIds : EMPTY_SET, lineIds };\n });\n },\n [setSelection],\n );\n\n const selectMultipleNodes = useCallback(\n (ids: string[]) => {\n setSelection({ nodeIds: new Set(ids), edgeIds: EMPTY_SET, lineIds: EMPTY_SET });\n },\n [setSelection],\n );\n\n const clearSelection = useCallback(() => {\n setSelection({ nodeIds: EMPTY_SET, edgeIds: EMPTY_SET, lineIds: EMPTY_SET });\n }, [setSelection]);\n\n const toggleNode = useCallback(\n (id: string) => {\n setSelection(prev => {\n const nodeIds = new Set(prev.nodeIds);\n if (nodeIds.has(id)) nodeIds.delete(id);\n else nodeIds.add(id);\n return { ...prev, nodeIds };\n });\n },\n [setSelection],\n );\n\n const isNodeSelected = useCallback(\n (id: string) => selection.nodeIds.has(id),\n [selection.nodeIds],\n );\n\n const isEdgeSelected = useCallback(\n (id: string) => selection.edgeIds.has(id),\n [selection.edgeIds],\n );\n\n const isLineSelected = useCallback(\n (id: string) => selection.lineIds.has(id),\n [selection.lineIds],\n );\n\n const selectedNodes = currentCanvas.nodes.filter(n => selection.nodeIds.has(n.id));\n const selectedEdges = currentCanvas.edges.filter(e => selection.edgeIds.has(e.id));\n const selectedLines = currentCanvas.lines.filter(l => selection.lineIds.has(l.id));\n\n const hasSelection = selection.nodeIds.size > 0 || selection.edgeIds.size > 0 || selection.lineIds.size > 0;\n\n return {\n selection,\n selectNode,\n selectEdge,\n selectLine,\n selectMultipleNodes,\n clearSelection,\n toggleNode,\n isNodeSelected,\n isEdgeSelected,\n isLineSelected,\n selectedNodes,\n selectedEdges,\n selectedLines,\n hasSelection,\n };\n}\n"],"mappings":";;;AAIA,IAAM,oBAAY,IAAI,IAAY;AAElC,SAAgB,IAAe;CAC7B,IAAM,EAAE,cAAW,iBAAc,qBAAkB,EAAe;CA+ElE,OAAO;EACL;EACA,YA/EiB,GAChB,GAAY,IAAW,OAAU;GAChC,GAAa,MAAQ;IACnB,IAAM,IAAU,IAAI,IAAI,IAAW,EAAK,UAAU,CAAC,CAAC;IAEpD,OADA,EAAQ,IAAI,CAAE,GACP;KAAE;KAAS,SAAS,IAAW,EAAK,UAAU;KAAW,SAAS,IAAW,EAAK,UAAU;IAAU;GAC/G,CAAC;EACH,GACA,CAAC,CAAY,CAuEb;EACA,YArEiB,GAChB,GAAY,IAAW,OAAU;GAChC,GAAa,MAAQ;IACnB,IAAM,IAAU,IAAI,IAAI,IAAW,EAAK,UAAU,CAAC,CAAC;IAEpD,OADA,EAAQ,IAAI,CAAE,GACP;KAAE,SAAS,IAAW,EAAK,UAAU;KAAW;KAAS,SAAS,IAAW,EAAK,UAAU;IAAU;GAC/G,CAAC;EACH,GACA,CAAC,CAAY,CA6Db;EACA,YA3DiB,GAChB,GAAY,IAAW,OAAU;GAChC,GAAa,MAAQ;IACnB,IAAM,IAAU,IAAI,IAAI,IAAW,EAAK,UAAU,CAAC,CAAC;IAEpD,OADA,EAAQ,IAAI,CAAE,GACP;KAAE,SAAS,IAAW,EAAK,UAAU;KAAW,SAAS,IAAW,EAAK,UAAU;KAAW;IAAQ;GAC/G,CAAC;EACH,GACA,CAAC,CAAY,CAmDb;EACA,qBAjD0B,GACzB,MAAkB;GACjB,EAAa;IAAE,SAAS,IAAI,IAAI,CAAG;IAAG,SAAS;IAAW,SAAS;GAAU,CAAC;EAChF,GACA,CAAC,CAAY,CA6Cb;EACA,gBA3CqB,QAAkB;GACvC,EAAa;IAAE,SAAS;IAAW,SAAS;IAAW,SAAS;GAAU,CAAC;EAC7E,GAAG,CAAC,CAAY,CAyCd;EACA,YAxCiB,GAChB,MAAe;GACd,GAAa,MAAQ;IACnB,IAAM,IAAU,IAAI,IAAI,EAAK,OAAO;IAGpC,OAFI,EAAQ,IAAI,CAAE,IAAG,EAAQ,OAAO,CAAE,IACjC,EAAQ,IAAI,CAAE,GACZ;KAAE,GAAG;KAAM;IAAQ;GAC5B,CAAC;EACH,GACA,CAAC,CAAY,CA+Bb;EACA,gBA7BqB,GACpB,MAAe,EAAU,QAAQ,IAAI,CAAE,GACxC,CAAC,EAAU,OAAO,CA2BlB;EACA,gBAzBqB,GACpB,MAAe,EAAU,QAAQ,IAAI,CAAE,GACxC,CAAC,EAAU,OAAO,CAuBlB;EACA,gBArBqB,GACpB,MAAe,EAAU,QAAQ,IAAI,CAAE,GACxC,CAAC,EAAU,OAAO,CAmBlB;EACA,eAjBoB,EAAc,MAAM,QAAO,MAAK,EAAU,QAAQ,IAAI,EAAE,EAAE,CAiB9E;EACA,eAjBoB,EAAc,MAAM,QAAO,MAAK,EAAU,QAAQ,IAAI,EAAE,EAAE,CAiB9E;EACA,eAjBoB,EAAc,MAAM,QAAO,MAAK,EAAU,QAAQ,IAAI,EAAE,EAAE,CAiB9E;EACA,cAhBmB,EAAU,QAAQ,OAAO,KAAK,EAAU,QAAQ,OAAO,KAAK,EAAU,QAAQ,OAAO;CAiB1G;AACF"}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { useCallback as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
1
|
+
import { useCallback as e, useRef as t } from "react";
|
|
2
|
+
//#region src/components/pro/Flow/hooks/useUndoRedo.ts
|
|
3
|
+
var n = 50, r = 300;
|
|
4
|
+
function i(i, a) {
|
|
5
|
+
let o = t([]), s = t([]), c = t(0), l = t(!1), u = e((e) => {
|
|
6
|
+
let t = Date.now();
|
|
7
|
+
t - c.current < r && o.current.length > 0 ? o.current[o.current.length - 1] = e : (o.current.push(e), o.current.length > n && o.current.shift()), c.current = t, s.current = [];
|
|
8
|
+
}, []);
|
|
9
|
+
return {
|
|
10
|
+
wrappedSetDoc: e((e) => {
|
|
11
|
+
a((t) => (l.current || u(t), l.current = !1, typeof e == "function" ? e(t) : e));
|
|
12
|
+
}, [a, u]),
|
|
13
|
+
undo: e(() => {
|
|
14
|
+
if (o.current.length === 0) return;
|
|
15
|
+
let e = o.current.pop();
|
|
16
|
+
a((t) => (s.current.push(t), e)), l.current = !0;
|
|
17
|
+
}, [a]),
|
|
18
|
+
redo: e(() => {
|
|
19
|
+
if (s.current.length === 0) return;
|
|
20
|
+
let e = s.current.pop();
|
|
21
|
+
a((t) => (o.current.push(t), e)), l.current = !0;
|
|
22
|
+
}, [a]),
|
|
23
|
+
canUndo: o.current.length > 0,
|
|
24
|
+
canRedo: s.current.length > 0
|
|
25
|
+
};
|
|
25
26
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
};
|
|
27
|
+
//#endregion
|
|
28
|
+
export { i as useUndoRedo };
|
|
29
29
|
|
|
30
30
|
//# sourceMappingURL=useUndoRedo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUndoRedo.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useUndoRedo.ts"],"sourcesContent":["import { useRef, useCallback, useEffect } from 'react';\nimport type { FlowDocument } from '../types';\n\nconst MAX_HISTORY = 50;\nconst COALESCE_MS = 300;\n\n/**\n * Time-coalesced undo/redo for FlowDocument.\n * Wraps setDoc to automatically capture history snapshots.\n */\nexport function useUndoRedo(\n doc: FlowDocument,\n setDoc: React.Dispatch<React.SetStateAction<FlowDocument>>,\n) {\n const historyRef = useRef<FlowDocument[]>([]);\n const futureRef = useRef<FlowDocument[]>([]);\n const lastPushRef = useRef(0);\n const skipRef = useRef(false);\n\n // Push to history with time coalescing\n const pushHistory = useCallback((snapshot: FlowDocument) => {\n const now = Date.now();\n if (now - lastPushRef.current < COALESCE_MS && historyRef.current.length > 0) {\n historyRef.current[historyRef.current.length - 1] = snapshot;\n } else {\n historyRef.current.push(snapshot);\n if (historyRef.current.length > MAX_HISTORY) {\n historyRef.current.shift();\n }\n }\n lastPushRef.current = now;\n futureRef.current = [];\n }, []);\n\n // Wrap setDoc to record history\n const wrappedSetDoc: React.Dispatch<React.SetStateAction<FlowDocument>> = useCallback(\n (action) => {\n setDoc(prev => {\n if (!skipRef.current) {\n pushHistory(prev);\n }\n skipRef.current = false;\n return typeof action === 'function' ? action(prev) : action;\n });\n },\n [setDoc, pushHistory],\n );\n\n const undo = useCallback(() => {\n if (historyRef.current.length === 0) return;\n const prev = historyRef.current.pop()!;\n setDoc(current => {\n futureRef.current.push(current);\n return prev;\n });\n skipRef.current = true;\n }, [setDoc]);\n\n const redo = useCallback(() => {\n if (futureRef.current.length === 0) return;\n const next = futureRef.current.pop()!;\n setDoc(current => {\n historyRef.current.push(current);\n return next;\n });\n skipRef.current = true;\n }, [setDoc]);\n\n const canUndo = historyRef.current.length > 0;\n const canRedo = futureRef.current.length > 0;\n\n return { wrappedSetDoc, undo, redo, canUndo, canRedo };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useUndoRedo.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useUndoRedo.ts"],"sourcesContent":["import { useRef, useCallback, useEffect } from 'react';\nimport type { FlowDocument } from '../types';\n\nconst MAX_HISTORY = 50;\nconst COALESCE_MS = 300;\n\n/**\n * Time-coalesced undo/redo for FlowDocument.\n * Wraps setDoc to automatically capture history snapshots.\n */\nexport function useUndoRedo(\n doc: FlowDocument,\n setDoc: React.Dispatch<React.SetStateAction<FlowDocument>>,\n) {\n const historyRef = useRef<FlowDocument[]>([]);\n const futureRef = useRef<FlowDocument[]>([]);\n const lastPushRef = useRef(0);\n const skipRef = useRef(false);\n\n // Push to history with time coalescing\n const pushHistory = useCallback((snapshot: FlowDocument) => {\n const now = Date.now();\n if (now - lastPushRef.current < COALESCE_MS && historyRef.current.length > 0) {\n historyRef.current[historyRef.current.length - 1] = snapshot;\n } else {\n historyRef.current.push(snapshot);\n if (historyRef.current.length > MAX_HISTORY) {\n historyRef.current.shift();\n }\n }\n lastPushRef.current = now;\n futureRef.current = [];\n }, []);\n\n // Wrap setDoc to record history\n const wrappedSetDoc: React.Dispatch<React.SetStateAction<FlowDocument>> = useCallback(\n (action) => {\n setDoc(prev => {\n if (!skipRef.current) {\n pushHistory(prev);\n }\n skipRef.current = false;\n return typeof action === 'function' ? action(prev) : action;\n });\n },\n [setDoc, pushHistory],\n );\n\n const undo = useCallback(() => {\n if (historyRef.current.length === 0) return;\n const prev = historyRef.current.pop()!;\n setDoc(current => {\n futureRef.current.push(current);\n return prev;\n });\n skipRef.current = true;\n }, [setDoc]);\n\n const redo = useCallback(() => {\n if (futureRef.current.length === 0) return;\n const next = futureRef.current.pop()!;\n setDoc(current => {\n historyRef.current.push(current);\n return next;\n });\n skipRef.current = true;\n }, [setDoc]);\n\n const canUndo = historyRef.current.length > 0;\n const canRedo = futureRef.current.length > 0;\n\n return { wrappedSetDoc, undo, redo, canUndo, canRedo };\n}\n"],"mappings":";;AAGA,IAAM,IAAc,IACd,IAAc;AAMpB,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAa,EAAuB,CAAC,CAAC,GACtC,IAAY,EAAuB,CAAC,CAAC,GACrC,IAAc,EAAO,CAAC,GACtB,IAAU,EAAO,EAAK,GAGtB,IAAc,GAAa,MAA2B;EAC1D,IAAM,IAAM,KAAK,IAAI;EAUrB,AATI,IAAM,EAAY,UAAU,KAAe,EAAW,QAAQ,SAAS,IACzE,EAAW,QAAQ,EAAW,QAAQ,SAAS,KAAK,KAEpD,EAAW,QAAQ,KAAK,CAAQ,GAC5B,EAAW,QAAQ,SAAS,KAC9B,EAAW,QAAQ,MAAM,IAG7B,EAAY,UAAU,GACtB,EAAU,UAAU,CAAC;CACvB,GAAG,CAAC,CAAC;CAuCL,OAAO;EAAE,eApCiE,GACvE,MAAW;GACV,GAAO,OACA,EAAQ,WACX,EAAY,CAAI,GAElB,EAAQ,UAAU,IACX,OAAO,KAAW,aAAa,EAAO,CAAI,IAAI,EACtD;EACH,GACA,CAAC,GAAQ,CAAW,CA0Bb;EAAe,MAvBX,QAAkB;GAC7B,IAAI,EAAW,QAAQ,WAAW,GAAG;GACrC,IAAM,IAAO,EAAW,QAAQ,IAAI;GAKpC,AAJA,GAAO,OACL,EAAU,QAAQ,KAAK,CAAO,GACvB,EACR,GACD,EAAQ,UAAU;EACpB,GAAG,CAAC,CAAM,CAec;EAAM,MAbjB,QAAkB;GAC7B,IAAI,EAAU,QAAQ,WAAW,GAAG;GACpC,IAAM,IAAO,EAAU,QAAQ,IAAI;GAKnC,AAJA,GAAO,OACL,EAAW,QAAQ,KAAK,CAAO,GACxB,EACR,GACD,EAAQ,UAAU;EACpB,GAAG,CAAC,CAAM,CAKoB;EAAM,SAHpB,EAAW,QAAQ,SAAS;EAGC,SAF7B,EAAU,QAAQ,SAAS;CAEU;AACvD"}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { ViewportManager as
|
|
2
|
-
import { useCallback as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
1
|
+
import { ViewportManager as e } from "../canvas/ViewportContainer.js";
|
|
2
|
+
import { useCallback as t, useEffect as n, useRef as r } from "react";
|
|
3
|
+
//#region src/components/pro/Flow/hooks/useViewport.ts
|
|
4
|
+
function i(i, a) {
|
|
5
|
+
let o = r(null);
|
|
6
|
+
return n(() => {
|
|
7
|
+
let t = i.current;
|
|
8
|
+
if (!t || t.destroyed) return;
|
|
9
|
+
let n = new e(t.world, t.app.stage, a);
|
|
10
|
+
return o.current = n, () => {
|
|
11
|
+
n.destroy(), o.current = null;
|
|
12
|
+
};
|
|
13
|
+
}, [i.current, a]), {
|
|
14
|
+
vmRef: o,
|
|
15
|
+
setViewport: t((e) => {
|
|
16
|
+
o.current?.setState(e);
|
|
17
|
+
}, []),
|
|
18
|
+
screenToWorld: t((e, t) => o.current?.screenToWorld(e, t) ?? {
|
|
19
|
+
x: e,
|
|
20
|
+
y: t
|
|
21
|
+
}, []),
|
|
22
|
+
worldToScreen: t((e, t) => o.current?.worldToScreen(e, t) ?? {
|
|
23
|
+
x: e,
|
|
24
|
+
y: t
|
|
25
|
+
}, [])
|
|
26
|
+
};
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
};
|
|
28
|
+
//#endregion
|
|
29
|
+
export { i as useViewport };
|
|
30
30
|
|
|
31
31
|
//# sourceMappingURL=useViewport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useViewport.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useViewport.ts"],"sourcesContent":["import { useRef, useEffect, useCallback } from 'react';\nimport { ViewportManager } from '../canvas/ViewportContainer';\nimport { PixiApp } from '../canvas/PixiApp';\nimport type { ViewportState } from '../types';\n\n/**\n * Connects ViewportManager to React state.\n */\nexport function useViewport(\n pixiRef: React.RefObject<PixiApp | null>,\n onViewportChange: (v: ViewportState) => void,\n) {\n const vmRef = useRef<ViewportManager | null>(null);\n\n useEffect(() => {\n const pixi = pixiRef.current;\n if (!pixi || pixi.destroyed) return;\n\n const vm = new ViewportManager(pixi.world, pixi.app.stage, onViewportChange);\n vmRef.current = vm;\n\n return () => {\n vm.destroy();\n vmRef.current = null;\n };\n }, [pixiRef.current, onViewportChange]);\n\n const setViewport = useCallback((state: Partial<ViewportState>) => {\n vmRef.current?.setState(state);\n }, []);\n\n const screenToWorld = useCallback((sx: number, sy: number) => {\n return vmRef.current?.screenToWorld(sx, sy) ?? { x: sx, y: sy };\n }, []);\n\n const worldToScreen = useCallback((wx: number, wy: number) => {\n return vmRef.current?.worldToScreen(wx, wy) ?? { x: wx, y: wy };\n }, []);\n\n return { vmRef, setViewport, screenToWorld, worldToScreen };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useViewport.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useViewport.ts"],"sourcesContent":["import { useRef, useEffect, useCallback } from 'react';\nimport { ViewportManager } from '../canvas/ViewportContainer';\nimport { PixiApp } from '../canvas/PixiApp';\nimport type { ViewportState } from '../types';\n\n/**\n * Connects ViewportManager to React state.\n */\nexport function useViewport(\n pixiRef: React.RefObject<PixiApp | null>,\n onViewportChange: (v: ViewportState) => void,\n) {\n const vmRef = useRef<ViewportManager | null>(null);\n\n useEffect(() => {\n const pixi = pixiRef.current;\n if (!pixi || pixi.destroyed) return;\n\n const vm = new ViewportManager(pixi.world, pixi.app.stage, onViewportChange);\n vmRef.current = vm;\n\n return () => {\n vm.destroy();\n vmRef.current = null;\n };\n }, [pixiRef.current, onViewportChange]);\n\n const setViewport = useCallback((state: Partial<ViewportState>) => {\n vmRef.current?.setState(state);\n }, []);\n\n const screenToWorld = useCallback((sx: number, sy: number) => {\n return vmRef.current?.screenToWorld(sx, sy) ?? { x: sx, y: sy };\n }, []);\n\n const worldToScreen = useCallback((wx: number, wy: number) => {\n return vmRef.current?.worldToScreen(wx, wy) ?? { x: wx, y: wy };\n }, []);\n\n return { vmRef, setViewport, screenToWorld, worldToScreen };\n}\n"],"mappings":";;;AAQA,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAQ,EAA+B,IAAI;CA2BjD,OAzBA,QAAgB;EACd,IAAM,IAAO,EAAQ;EACrB,IAAI,CAAC,KAAQ,EAAK,WAAW;EAE7B,IAAM,IAAK,IAAI,EAAgB,EAAK,OAAO,EAAK,IAAI,OAAO,CAAgB;EAG3E,OAFA,EAAM,UAAU,SAEH;GAEX,AADA,EAAG,QAAQ,GACX,EAAM,UAAU;EAClB;CACF,GAAG,CAAC,EAAQ,SAAS,CAAgB,CAAC,GAc/B;EAAE;EAAO,aAZI,GAAa,MAAkC;GACjE,EAAM,SAAS,SAAS,CAAK;EAC/B,GAAG,CAAC,CAUY;EAAa,eARP,GAAa,GAAY,MACtC,EAAM,SAAS,cAAc,GAAI,CAAE,KAAK;GAAE,GAAG;GAAI,GAAG;EAAG,GAC7D,CAAC,CAMyB;EAAe,eAJtB,GAAa,GAAY,MACtC,EAAM,SAAS,cAAc,GAAI,CAAE,KAAK;GAAE,GAAG;GAAI,GAAG;EAAG,GAC7D,CAAC,CAEwC;CAAc;AAC5D"}
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
import { resolveThemeColor as
|
|
2
|
-
import { generateId as
|
|
3
|
-
import { simplifyPath as
|
|
4
|
-
import { Graphics as
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
export {
|
|
63
|
-
v as FreehandTool
|
|
1
|
+
import { resolveThemeColor as e } from "../utils/themeColor.js";
|
|
2
|
+
import { generateId as t } from "../nodes/nodeUtils.js";
|
|
3
|
+
import { simplifyPath as n, smoothCatmullRom as r } from "./lineSmoothing.js";
|
|
4
|
+
import { Graphics as i } from "pixi.js";
|
|
5
|
+
//#region src/components/pro/Flow/lines/FreehandTool.ts
|
|
6
|
+
var a = class {
|
|
7
|
+
stage;
|
|
8
|
+
preview;
|
|
9
|
+
callbacks;
|
|
10
|
+
rawPoints = [];
|
|
11
|
+
drawing = !1;
|
|
12
|
+
_active = !1;
|
|
13
|
+
constructor(e, t, n) {
|
|
14
|
+
this.stage = e, this.callbacks = n, this.preview = new i(), this.preview.label = "freehand-preview", this.preview.visible = !1, t.addChild(this.preview);
|
|
15
|
+
}
|
|
16
|
+
get active() {
|
|
17
|
+
return this._active;
|
|
18
|
+
}
|
|
19
|
+
activate() {
|
|
20
|
+
this._active = !0, this.stage.on("pointerdown", this._onDown, this), this.stage.on("globalpointermove", this._onMove, this), this.stage.on("pointerup", this._onUp, this), this.stage.on("pointerupoutside", this._onUp, this);
|
|
21
|
+
}
|
|
22
|
+
deactivate() {
|
|
23
|
+
this._active = !1, this.drawing = !1, this.rawPoints = [], this.preview.destroyed || (this.preview.clear(), this.preview.visible = !1), this.stage.off("pointerdown", this._onDown, this), this.stage.off("globalpointermove", this._onMove, this), this.stage.off("pointerup", this._onUp, this), this.stage.off("pointerupoutside", this._onUp, this);
|
|
24
|
+
}
|
|
25
|
+
_onDown = (e) => {
|
|
26
|
+
if (e.button !== 0) return;
|
|
27
|
+
let t = this.callbacks.screenToWorld(e.global.x, e.global.y);
|
|
28
|
+
this.drawing = !0, this.rawPoints = [t], this.preview.visible = !0, this.preview.clear();
|
|
29
|
+
};
|
|
30
|
+
_onMove = (t) => {
|
|
31
|
+
if (!this.drawing) return;
|
|
32
|
+
let n = this.callbacks.screenToWorld(t.global.x, t.global.y);
|
|
33
|
+
if (this.rawPoints.push(n), this.preview.clear(), !(this.rawPoints.length < 2)) {
|
|
34
|
+
this.preview.moveTo(this.rawPoints[0].x, this.rawPoints[0].y);
|
|
35
|
+
for (let e = 1; e < this.rawPoints.length; e++) this.preview.lineTo(this.rawPoints[e].x, this.rawPoints[e].y);
|
|
36
|
+
this.preview.stroke({
|
|
37
|
+
color: e("theme:base-content", "#374151"),
|
|
38
|
+
width: 2,
|
|
39
|
+
alpha: .6
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
_onUp = () => {
|
|
44
|
+
if (!this.drawing) return;
|
|
45
|
+
if (this.drawing = !1, this.preview.clear(), this.preview.visible = !1, this.rawPoints.length < 3) {
|
|
46
|
+
this.rawPoints = [];
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
let e = n(this.rawPoints, 2), i = r(e, 4), a = {
|
|
50
|
+
id: t("line"),
|
|
51
|
+
type: "freehand",
|
|
52
|
+
points: i,
|
|
53
|
+
strokeColor: "theme:base-content",
|
|
54
|
+
strokeWidth: 2,
|
|
55
|
+
lineStyle: "solid"
|
|
56
|
+
};
|
|
57
|
+
this.callbacks.onLineComplete(a), this.rawPoints = [];
|
|
58
|
+
};
|
|
59
|
+
destroy() {
|
|
60
|
+
this.deactivate(), this.preview.destroyed || this.preview.destroy();
|
|
61
|
+
}
|
|
64
62
|
};
|
|
63
|
+
//#endregion
|
|
64
|
+
export { a as FreehandTool };
|
|
65
65
|
|
|
66
66
|
//# sourceMappingURL=FreehandTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FreehandTool.js","names":[],"sources":["../../../../../src/components/pro/Flow/lines/FreehandTool.ts"],"sourcesContent":["import { Graphics, Container, FederatedPointerEvent } from 'pixi.js';\nimport { simplifyPath, smoothCatmullRom, type Point } from './lineSmoothing';\nimport type { FlowLine } from '../types';\nimport { generateId } from '../nodes/nodeUtils';\nimport { resolveThemeColor } from '../utils/themeColor';\n\nexport interface FreehandToolCallbacks {\n /** Called when a freehand line is finished */\n onLineComplete: (line: FlowLine) => void;\n /** Convert screen coords to world coords */\n screenToWorld: (sx: number, sy: number) => { x: number; y: number };\n}\n\n/**\n * Captures pointer trail for freehand drawing, smooths and stores as FlowLine.\n */\nexport class FreehandTool {\n private stage: Container;\n private preview: Graphics;\n private callbacks: FreehandToolCallbacks;\n private rawPoints: Point[] = [];\n private drawing = false;\n private _active = false;\n\n constructor(stage: Container, world: Container, callbacks: FreehandToolCallbacks) {\n this.stage = stage;\n this.callbacks = callbacks;\n this.preview = new Graphics();\n this.preview.label = 'freehand-preview';\n this.preview.visible = false;\n world.addChild(this.preview);\n }\n\n get active(): boolean { return this._active; }\n\n activate(): void {\n this._active = true;\n this.stage.on('pointerdown', this._onDown, this);\n this.stage.on('globalpointermove', this._onMove, this);\n this.stage.on('pointerup', this._onUp, this);\n this.stage.on('pointerupoutside', this._onUp, this);\n }\n\n deactivate(): void {\n this._active = false;\n this.drawing = false;\n this.rawPoints = [];\n if (!this.preview.destroyed) {\n this.preview.clear();\n this.preview.visible = false;\n }\n this.stage.off('pointerdown', this._onDown, this);\n this.stage.off('globalpointermove', this._onMove, this);\n this.stage.off('pointerup', this._onUp, this);\n this.stage.off('pointerupoutside', this._onUp, this);\n }\n\n private _onDown = (e: FederatedPointerEvent): void => {\n if (e.button !== 0) return;\n const world = this.callbacks.screenToWorld(e.global.x, e.global.y);\n this.drawing = true;\n this.rawPoints = [world];\n this.preview.visible = true;\n this.preview.clear();\n };\n\n private _onMove = (e: FederatedPointerEvent): void => {\n if (!this.drawing) return;\n const world = this.callbacks.screenToWorld(e.global.x, e.global.y);\n this.rawPoints.push(world);\n\n // Draw preview\n this.preview.clear();\n if (this.rawPoints.length < 2) return;\n this.preview.moveTo(this.rawPoints[0].x, this.rawPoints[0].y);\n for (let i = 1; i < this.rawPoints.length; i++) {\n this.preview.lineTo(this.rawPoints[i].x, this.rawPoints[i].y);\n }\n this.preview.stroke({ color: resolveThemeColor('theme:base-content', '#374151'), width: 2, alpha: 0.6 });\n };\n\n private _onUp = (): void => {\n if (!this.drawing) return;\n this.drawing = false;\n this.preview.clear();\n this.preview.visible = false;\n\n if (this.rawPoints.length < 3) {\n this.rawPoints = [];\n return;\n }\n\n const simplified = simplifyPath(this.rawPoints, 2);\n const smoothed = smoothCatmullRom(simplified, 4);\n\n const line: FlowLine = {\n id: generateId('line'),\n type: 'freehand',\n points: smoothed,\n strokeColor: 'theme:base-content',\n strokeWidth: 2,\n lineStyle: 'solid',\n };\n\n this.callbacks.onLineComplete(line);\n this.rawPoints = [];\n };\n\n destroy(): void {\n this.deactivate();\n if (!this.preview.destroyed) this.preview.destroy();\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FreehandTool.js","names":[],"sources":["../../../../../src/components/pro/Flow/lines/FreehandTool.ts"],"sourcesContent":["import { Graphics, Container, FederatedPointerEvent } from 'pixi.js';\nimport { simplifyPath, smoothCatmullRom, type Point } from './lineSmoothing';\nimport type { FlowLine } from '../types';\nimport { generateId } from '../nodes/nodeUtils';\nimport { resolveThemeColor } from '../utils/themeColor';\n\nexport interface FreehandToolCallbacks {\n /** Called when a freehand line is finished */\n onLineComplete: (line: FlowLine) => void;\n /** Convert screen coords to world coords */\n screenToWorld: (sx: number, sy: number) => { x: number; y: number };\n}\n\n/**\n * Captures pointer trail for freehand drawing, smooths and stores as FlowLine.\n */\nexport class FreehandTool {\n private stage: Container;\n private preview: Graphics;\n private callbacks: FreehandToolCallbacks;\n private rawPoints: Point[] = [];\n private drawing = false;\n private _active = false;\n\n constructor(stage: Container, world: Container, callbacks: FreehandToolCallbacks) {\n this.stage = stage;\n this.callbacks = callbacks;\n this.preview = new Graphics();\n this.preview.label = 'freehand-preview';\n this.preview.visible = false;\n world.addChild(this.preview);\n }\n\n get active(): boolean { return this._active; }\n\n activate(): void {\n this._active = true;\n this.stage.on('pointerdown', this._onDown, this);\n this.stage.on('globalpointermove', this._onMove, this);\n this.stage.on('pointerup', this._onUp, this);\n this.stage.on('pointerupoutside', this._onUp, this);\n }\n\n deactivate(): void {\n this._active = false;\n this.drawing = false;\n this.rawPoints = [];\n if (!this.preview.destroyed) {\n this.preview.clear();\n this.preview.visible = false;\n }\n this.stage.off('pointerdown', this._onDown, this);\n this.stage.off('globalpointermove', this._onMove, this);\n this.stage.off('pointerup', this._onUp, this);\n this.stage.off('pointerupoutside', this._onUp, this);\n }\n\n private _onDown = (e: FederatedPointerEvent): void => {\n if (e.button !== 0) return;\n const world = this.callbacks.screenToWorld(e.global.x, e.global.y);\n this.drawing = true;\n this.rawPoints = [world];\n this.preview.visible = true;\n this.preview.clear();\n };\n\n private _onMove = (e: FederatedPointerEvent): void => {\n if (!this.drawing) return;\n const world = this.callbacks.screenToWorld(e.global.x, e.global.y);\n this.rawPoints.push(world);\n\n // Draw preview\n this.preview.clear();\n if (this.rawPoints.length < 2) return;\n this.preview.moveTo(this.rawPoints[0].x, this.rawPoints[0].y);\n for (let i = 1; i < this.rawPoints.length; i++) {\n this.preview.lineTo(this.rawPoints[i].x, this.rawPoints[i].y);\n }\n this.preview.stroke({ color: resolveThemeColor('theme:base-content', '#374151'), width: 2, alpha: 0.6 });\n };\n\n private _onUp = (): void => {\n if (!this.drawing) return;\n this.drawing = false;\n this.preview.clear();\n this.preview.visible = false;\n\n if (this.rawPoints.length < 3) {\n this.rawPoints = [];\n return;\n }\n\n const simplified = simplifyPath(this.rawPoints, 2);\n const smoothed = smoothCatmullRom(simplified, 4);\n\n const line: FlowLine = {\n id: generateId('line'),\n type: 'freehand',\n points: smoothed,\n strokeColor: 'theme:base-content',\n strokeWidth: 2,\n lineStyle: 'solid',\n };\n\n this.callbacks.onLineComplete(line);\n this.rawPoints = [];\n };\n\n destroy(): void {\n this.deactivate();\n if (!this.preview.destroyed) this.preview.destroy();\n }\n}\n"],"mappings":";;;;;AAgBA,IAAa,IAAb,MAA0B;CACxB;CACA;CACA;CACA,YAA6B,CAAC;CAC9B,UAAkB;CAClB,UAAkB;CAElB,YAAY,GAAkB,GAAkB,GAAkC;EAMhF,AALA,KAAK,QAAQ,GACb,KAAK,YAAY,GACjB,KAAK,UAAU,IAAI,EAAS,GAC5B,KAAK,QAAQ,QAAQ,oBACrB,KAAK,QAAQ,UAAU,IACvB,EAAM,SAAS,KAAK,OAAO;CAC7B;CAEA,IAAI,SAAkB;EAAE,OAAO,KAAK;CAAS;CAE7C,WAAiB;EAKf,AAJA,KAAK,UAAU,IACf,KAAK,MAAM,GAAG,eAAe,KAAK,SAAS,IAAI,GAC/C,KAAK,MAAM,GAAG,qBAAqB,KAAK,SAAS,IAAI,GACrD,KAAK,MAAM,GAAG,aAAa,KAAK,OAAO,IAAI,GAC3C,KAAK,MAAM,GAAG,oBAAoB,KAAK,OAAO,IAAI;CACpD;CAEA,aAAmB;EAWjB,AAVA,KAAK,UAAU,IACf,KAAK,UAAU,IACf,KAAK,YAAY,CAAC,GACb,KAAK,QAAQ,cAChB,KAAK,QAAQ,MAAM,GACnB,KAAK,QAAQ,UAAU,KAEzB,KAAK,MAAM,IAAI,eAAe,KAAK,SAAS,IAAI,GAChD,KAAK,MAAM,IAAI,qBAAqB,KAAK,SAAS,IAAI,GACtD,KAAK,MAAM,IAAI,aAAa,KAAK,OAAO,IAAI,GAC5C,KAAK,MAAM,IAAI,oBAAoB,KAAK,OAAO,IAAI;CACrD;CAEA,WAAmB,MAAmC;EACpD,IAAI,EAAE,WAAW,GAAG;EACpB,IAAM,IAAQ,KAAK,UAAU,cAAc,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC;EAIjE,AAHA,KAAK,UAAU,IACf,KAAK,YAAY,CAAC,CAAK,GACvB,KAAK,QAAQ,UAAU,IACvB,KAAK,QAAQ,MAAM;CACrB;CAEA,WAAmB,MAAmC;EACpD,IAAI,CAAC,KAAK,SAAS;EACnB,IAAM,IAAQ,KAAK,UAAU,cAAc,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC;EACjE,SAAK,UAAU,KAAK,CAAK,GAGzB,KAAK,QAAQ,MAAM,GACf,OAAK,UAAU,SAAS,IAC5B;QAAK,QAAQ,OAAO,KAAK,UAAU,EAAE,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC,CAAC;GAC5D,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,UAAU,QAAQ,KACzC,KAAK,QAAQ,OAAO,KAAK,UAAU,EAAE,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC,CAAC;GAE9D,KAAK,QAAQ,OAAO;IAAE,OAAO,EAAkB,sBAAsB,SAAS;IAAG,OAAO;IAAG,OAAO;GAAI,CAAC;EAJ3C;CAK9D;CAEA,cAA4B;EAC1B,IAAI,CAAC,KAAK,SAAS;EAKnB,IAJA,KAAK,UAAU,IACf,KAAK,QAAQ,MAAM,GACnB,KAAK,QAAQ,UAAU,IAEnB,KAAK,UAAU,SAAS,GAAG;GAC7B,KAAK,YAAY,CAAC;GAClB;EACF;EAEA,IAAM,IAAa,EAAa,KAAK,WAAW,CAAC,GAC3C,IAAW,EAAiB,GAAY,CAAC,GAEzC,IAAiB;GACrB,IAAI,EAAW,MAAM;GACrB,MAAM;GACN,QAAQ;GACR,aAAa;GACb,aAAa;GACb,WAAW;EACb;EAGA,AADA,KAAK,UAAU,eAAe,CAAI,GAClC,KAAK,YAAY,CAAC;CACpB;CAEA,UAAgB;EAEd,AADA,KAAK,WAAW,GACX,KAAK,QAAQ,aAAW,KAAK,QAAQ,QAAQ;CACpD;AACF"}
|