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,105 +1,105 @@
|
|
|
1
|
-
import { DEFAULT_NODE_DATA as
|
|
2
|
-
import { useFlowContext as
|
|
3
|
-
import { generateId as
|
|
4
|
-
import { useCallback 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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
1
|
+
import { DEFAULT_NODE_DATA as e } from "../constants.js";
|
|
2
|
+
import { useFlowContext as t } from "../context/FlowContext.js";
|
|
3
|
+
import { generateId as n } from "../nodes/nodeUtils.js";
|
|
4
|
+
import { useCallback as r } from "react";
|
|
5
|
+
//#region src/components/pro/Flow/hooks/useNodeMutations.ts
|
|
6
|
+
function i() {
|
|
7
|
+
let { setDoc: i, currentCanvasId: a } = t();
|
|
8
|
+
return {
|
|
9
|
+
addNode: r((t, r, o, s, c, l) => {
|
|
10
|
+
let u = n("node"), d = {
|
|
11
|
+
id: u,
|
|
12
|
+
type: t,
|
|
13
|
+
position: {
|
|
14
|
+
x: r,
|
|
15
|
+
y: o
|
|
16
|
+
},
|
|
17
|
+
width: s,
|
|
18
|
+
height: c,
|
|
19
|
+
data: {
|
|
20
|
+
...e,
|
|
21
|
+
...l
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
return i((e) => {
|
|
25
|
+
let t = e.canvases[a];
|
|
26
|
+
return t ? {
|
|
27
|
+
...e,
|
|
28
|
+
canvases: {
|
|
29
|
+
...e.canvases,
|
|
30
|
+
[a]: {
|
|
31
|
+
...t,
|
|
32
|
+
nodes: [...t.nodes, d]
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
} : e;
|
|
36
|
+
}), u;
|
|
37
|
+
}, [i, a]),
|
|
38
|
+
updateNode: r((e, t) => {
|
|
39
|
+
i((n) => {
|
|
40
|
+
let r = n.canvases[a];
|
|
41
|
+
return r ? {
|
|
42
|
+
...n,
|
|
43
|
+
canvases: {
|
|
44
|
+
...n.canvases,
|
|
45
|
+
[a]: {
|
|
46
|
+
...r,
|
|
47
|
+
nodes: r.nodes.map((n) => n.id === e ? {
|
|
48
|
+
...n,
|
|
49
|
+
..."position" in t ? { position: t.position } : {},
|
|
50
|
+
..."width" in t ? { width: t.width } : {},
|
|
51
|
+
..."height" in t ? { height: t.height } : {},
|
|
52
|
+
..."zIndex" in t ? { zIndex: t.zIndex } : {},
|
|
53
|
+
data: t.data ? {
|
|
54
|
+
...n.data,
|
|
55
|
+
...t.data
|
|
56
|
+
} : n.data
|
|
57
|
+
} : n)
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
} : n;
|
|
61
|
+
});
|
|
62
|
+
}, [i, a]),
|
|
63
|
+
moveNodes: r((e, t, n) => {
|
|
64
|
+
i((r) => {
|
|
65
|
+
let i = r.canvases[a];
|
|
66
|
+
return i ? {
|
|
67
|
+
...r,
|
|
68
|
+
canvases: {
|
|
69
|
+
...r.canvases,
|
|
70
|
+
[a]: {
|
|
71
|
+
...i,
|
|
72
|
+
nodes: i.nodes.map((r) => e.has(r.id) ? {
|
|
73
|
+
...r,
|
|
74
|
+
position: {
|
|
75
|
+
x: r.position.x + t,
|
|
76
|
+
y: r.position.y + n
|
|
77
|
+
}
|
|
78
|
+
} : r)
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
} : r;
|
|
82
|
+
});
|
|
83
|
+
}, [i, a]),
|
|
84
|
+
deleteNodes: r((e) => {
|
|
85
|
+
i((t) => {
|
|
86
|
+
let n = t.canvases[a];
|
|
87
|
+
return n ? {
|
|
88
|
+
...t,
|
|
89
|
+
canvases: {
|
|
90
|
+
...t.canvases,
|
|
91
|
+
[a]: {
|
|
92
|
+
...n,
|
|
93
|
+
nodes: n.nodes.filter((t) => !e.has(t.id)),
|
|
94
|
+
edges: n.edges.filter((t) => !e.has(t.source) && !e.has(t.target))
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
} : t;
|
|
98
|
+
});
|
|
99
|
+
}, [i, a])
|
|
100
|
+
};
|
|
100
101
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
};
|
|
102
|
+
//#endregion
|
|
103
|
+
export { i as useNodeMutations };
|
|
104
104
|
|
|
105
105
|
//# sourceMappingURL=useNodeMutations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNodeMutations.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useNodeMutations.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport type { FlowNode, FlowNodeData, FlowShapeType } from '../types';\nimport { DEFAULT_NODE_DATA } from '../constants';\nimport { generateId } from '../nodes/nodeUtils';\n\n/**\n * Provides CRUD operations for nodes on the current canvas.\n */\nexport function useNodeMutations() {\n const { setDoc, currentCanvasId } = useFlowContext();\n\n const addNode = useCallback(\n (type: FlowShapeType, x: number, y: number, width: number, height: number, data?: Partial<FlowNodeData>): string => {\n const id = generateId('node');\n const node: FlowNode = {\n id,\n type,\n position: { x, y },\n width,\n height,\n data: { ...DEFAULT_NODE_DATA, ...data },\n };\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: [...canvas.nodes, node],\n },\n },\n };\n });\n return id;\n },\n [setDoc, currentCanvasId],\n );\n\n const updateNode = useCallback(\n (id: string, updates: Partial<Pick<FlowNode, 'position' | 'width' | 'height' | 'zIndex'>> & { data?: Partial<FlowNodeData> }) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.map(n => {\n if (n.id !== id) return n;\n return {\n ...n,\n ...('position' in updates ? { position: updates.position! } : {}),\n ...('width' in updates ? { width: updates.width! } : {}),\n ...('height' in updates ? { height: updates.height! } : {}),\n ...('zIndex' in updates ? { zIndex: updates.zIndex } : {}),\n data: updates.data ? { ...n.data, ...updates.data } : n.data,\n };\n }),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n const moveNodes = useCallback(\n (ids: Set<string>, dx: number, dy: number) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.map(n => {\n if (!ids.has(n.id)) return n;\n return { ...n, position: { x: n.position.x + dx, y: n.position.y + dy } };\n }),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n const deleteNodes = useCallback(\n (ids: Set<string>) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.filter(n => !ids.has(n.id)),\n edges: canvas.edges.filter(e => !ids.has(e.source) && !ids.has(e.target)),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n return { addNode, updateNode, moveNodes, deleteNodes };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useNodeMutations.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/useNodeMutations.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport type { FlowNode, FlowNodeData, FlowShapeType } from '../types';\nimport { DEFAULT_NODE_DATA } from '../constants';\nimport { generateId } from '../nodes/nodeUtils';\n\n/**\n * Provides CRUD operations for nodes on the current canvas.\n */\nexport function useNodeMutations() {\n const { setDoc, currentCanvasId } = useFlowContext();\n\n const addNode = useCallback(\n (type: FlowShapeType, x: number, y: number, width: number, height: number, data?: Partial<FlowNodeData>): string => {\n const id = generateId('node');\n const node: FlowNode = {\n id,\n type,\n position: { x, y },\n width,\n height,\n data: { ...DEFAULT_NODE_DATA, ...data },\n };\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: [...canvas.nodes, node],\n },\n },\n };\n });\n return id;\n },\n [setDoc, currentCanvasId],\n );\n\n const updateNode = useCallback(\n (id: string, updates: Partial<Pick<FlowNode, 'position' | 'width' | 'height' | 'zIndex'>> & { data?: Partial<FlowNodeData> }) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.map(n => {\n if (n.id !== id) return n;\n return {\n ...n,\n ...('position' in updates ? { position: updates.position! } : {}),\n ...('width' in updates ? { width: updates.width! } : {}),\n ...('height' in updates ? { height: updates.height! } : {}),\n ...('zIndex' in updates ? { zIndex: updates.zIndex } : {}),\n data: updates.data ? { ...n.data, ...updates.data } : n.data,\n };\n }),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n const moveNodes = useCallback(\n (ids: Set<string>, dx: number, dy: number) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.map(n => {\n if (!ids.has(n.id)) return n;\n return { ...n, position: { x: n.position.x + dx, y: n.position.y + dy } };\n }),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n const deleteNodes = useCallback(\n (ids: Set<string>) => {\n setDoc(prev => {\n const canvas = prev.canvases[currentCanvasId];\n if (!canvas) return prev;\n return {\n ...prev,\n canvases: {\n ...prev.canvases,\n [currentCanvasId]: {\n ...canvas,\n nodes: canvas.nodes.filter(n => !ids.has(n.id)),\n edges: canvas.edges.filter(e => !ids.has(e.source) && !ids.has(e.target)),\n },\n },\n };\n });\n },\n [setDoc, currentCanvasId],\n );\n\n return { addNode, updateNode, moveNodes, deleteNodes };\n}\n"],"mappings":";;;;;AASA,SAAgB,IAAmB;CACjC,IAAM,EAAE,WAAQ,uBAAoB,EAAe;CA0GnD,OAAO;EAAE,SAxGO,GACb,GAAqB,GAAW,GAAW,GAAe,GAAgB,MAAyC;GAClH,IAAM,IAAK,EAAW,MAAM,GACtB,IAAiB;IACrB;IACA;IACA,UAAU;KAAE;KAAG;IAAE;IACjB;IACA;IACA,MAAM;KAAE,GAAG;KAAmB,GAAG;IAAK;GACxC;GAeA,OAdA,GAAO,MAAQ;IACb,IAAM,IAAS,EAAK,SAAS;IAE7B,OADK,IACE;KACL,GAAG;KACH,UAAU;MACR,GAAG,EAAK;OACP,IAAkB;OACjB,GAAG;OACH,OAAO,CAAC,GAAG,EAAO,OAAO,CAAI;MAC/B;KACF;IACF,IAVoB;GAWtB,CAAC,GACM;EACT,GACA,CAAC,GAAQ,CAAe,CA6EjB;EAAS,YA1EC,GAChB,GAAY,MAAoH;GAC/H,GAAO,MAAQ;IACb,IAAM,IAAS,EAAK,SAAS;IAE7B,OADK,IACE;KACL,GAAG;KACH,UAAU;MACR,GAAG,EAAK;OACP,IAAkB;OACjB,GAAG;OACH,OAAO,EAAO,MAAM,KAAI,MAClB,EAAE,OAAO,IACN;QACL,GAAG;QACH,GAAI,cAAc,IAAU,EAAE,UAAU,EAAQ,SAAU,IAAI,CAAC;QAC/D,GAAI,WAAW,IAAU,EAAE,OAAO,EAAQ,MAAO,IAAI,CAAC;QACtD,GAAI,YAAY,IAAU,EAAE,QAAQ,EAAQ,OAAQ,IAAI,CAAC;QACzD,GAAI,YAAY,IAAU,EAAE,QAAQ,EAAQ,OAAO,IAAI,CAAC;QACxD,MAAM,EAAQ,OAAO;SAAE,GAAG,EAAE;SAAM,GAAG,EAAQ;QAAK,IAAI,EAAE;OAC1D,IARwB,CASzB;MACH;KACF;IACF,IApBoB;GAqBtB,CAAC;EACH,GACA,CAAC,GAAQ,CAAe,CA+CR;EAAY,WA5CZ,GACf,GAAkB,GAAY,MAAe;GAC5C,GAAO,MAAQ;IACb,IAAM,IAAS,EAAK,SAAS;IAE7B,OADK,IACE;KACL,GAAG;KACH,UAAU;MACR,GAAG,EAAK;OACP,IAAkB;OACjB,GAAG;OACH,OAAO,EAAO,MAAM,KAAI,MACjB,EAAI,IAAI,EAAE,EAAE,IACV;QAAE,GAAG;QAAG,UAAU;SAAE,GAAG,EAAE,SAAS,IAAI;SAAI,GAAG,EAAE,SAAS,IAAI;QAAG;OAAE,IAD7C,CAE5B;MACH;KACF;IACF,IAboB;GActB,CAAC;EACH,GACA,CAAC,GAAQ,CAAe,CAwBI;EAAW,aArBrB,GACjB,MAAqB;GACpB,GAAO,MAAQ;IACb,IAAM,IAAS,EAAK,SAAS;IAE7B,OADK,IACE;KACL,GAAG;KACH,UAAU;MACR,GAAG,EAAK;OACP,IAAkB;OACjB,GAAG;OACH,OAAO,EAAO,MAAM,QAAO,MAAK,CAAC,EAAI,IAAI,EAAE,EAAE,CAAC;OAC9C,OAAO,EAAO,MAAM,QAAO,MAAK,CAAC,EAAI,IAAI,EAAE,MAAM,KAAK,CAAC,EAAI,IAAI,EAAE,MAAM,CAAC;MAC1E;KACF;IACF,IAXoB;GAYtB,CAAC;EACH,GACA,CAAC,GAAQ,CAAe,CAGe;CAAY;AACvD"}
|
|
@@ -1,60 +1,59 @@
|
|
|
1
|
-
import { useFlowContext as
|
|
2
|
-
import { useFlowUI as
|
|
3
|
-
import { anchorFocusRect as
|
|
4
|
-
import { downloadDataURL as
|
|
5
|
-
import { buildPdfFromJpegs as
|
|
6
|
-
import { useCallback as
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { useFlowContext as e } from "../context/FlowContext.js";
|
|
2
|
+
import { useFlowUI as t } from "../context/FlowUIContext.js";
|
|
3
|
+
import { anchorFocusRect as n, canvasStackTo as r, getDocumentSlides as i } from "../nodes/animAnchors.js";
|
|
4
|
+
import { downloadDataURL as a, safeFileBaseName as o } from "./useFlowImportExport.js";
|
|
5
|
+
import { buildPdfFromJpegs as s, pngDataUrlToJpeg as c } from "../utils/pdfExport.js";
|
|
6
|
+
import { useCallback as l } from "react";
|
|
7
|
+
//#region src/components/pro/Flow/hooks/usePdfExport.ts
|
|
8
|
+
function u(e) {
|
|
9
|
+
return new Promise((t) => {
|
|
10
|
+
let n = e, r = () => {
|
|
11
|
+
--n <= 0 ? t() : requestAnimationFrame(r);
|
|
12
|
+
};
|
|
13
|
+
requestAnimationFrame(r);
|
|
14
|
+
});
|
|
15
15
|
}
|
|
16
|
-
function
|
|
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
|
-
|
|
16
|
+
function d(d) {
|
|
17
|
+
let { doc: f, setDoc: p } = e(), { showAnchors: m, setShowAnchors: h } = t();
|
|
18
|
+
return l(async () => {
|
|
19
|
+
let e = i(f);
|
|
20
|
+
if (e.length === 0) return !1;
|
|
21
|
+
let t = d.current;
|
|
22
|
+
if (!t || t.destroyed) return !1;
|
|
23
|
+
let l = f.stack.slice(), g = m;
|
|
24
|
+
h(!1), await u(2);
|
|
25
|
+
let _ = [];
|
|
26
|
+
try {
|
|
27
|
+
for (let i of e) {
|
|
28
|
+
let e = r(f, i.canvasId);
|
|
29
|
+
e && (p((t) => ({
|
|
30
|
+
...t,
|
|
31
|
+
stack: e
|
|
32
|
+
})), await u(3));
|
|
33
|
+
let a = n(i.node), o = await t.exportRegionPNG(a, {
|
|
34
|
+
scale: 2,
|
|
35
|
+
backgroundColor: 16777215
|
|
36
|
+
});
|
|
37
|
+
o && _.push(await c(o.dataUrl));
|
|
38
|
+
}
|
|
39
|
+
} finally {
|
|
40
|
+
h(g), p((e) => ({
|
|
41
|
+
...e,
|
|
42
|
+
stack: l
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
if (_.length === 0) return !1;
|
|
46
|
+
let v = s(_), y = URL.createObjectURL(v);
|
|
47
|
+
return a(y, `${o(f.title)}.pdf`), URL.revokeObjectURL(y), !0;
|
|
48
|
+
}, [
|
|
49
|
+
f,
|
|
50
|
+
p,
|
|
51
|
+
m,
|
|
52
|
+
h,
|
|
53
|
+
d
|
|
54
|
+
]);
|
|
55
55
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
};
|
|
56
|
+
//#endregion
|
|
57
|
+
export { d as usePdfExport };
|
|
59
58
|
|
|
60
59
|
//# sourceMappingURL=usePdfExport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePdfExport.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/usePdfExport.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport { useFlowUI } from '../context/FlowUIContext';\nimport { getDocumentSlides, anchorFocusRect, canvasStackTo } from '../nodes/animAnchors';\nimport { buildPdfFromJpegs, pngDataUrlToJpeg } from '../utils/pdfExport';\nimport { downloadDataURL, safeFileBaseName } from './useFlowImportExport';\nimport type { PixiApp } from '../canvas/PixiApp';\n\n/** Await the next N animation frames (lets Pixi settle after a state change). */\nfunction nextFrames(n: number): Promise<void> {\n return new Promise((resolve) => {\n let left = n;\n const step = () => {\n if (--left <= 0) resolve();\n else requestAnimationFrame(step);\n };\n requestAnimationFrame(step);\n });\n}\n\n/**\n * Exports the document's animation anchors as a single PDF. Each page is cropped\n * exactly to an anchor's world rectangle (not the whole viewport), so the PDF\n * contains only the framed slide content. Pages follow the global anchor order,\n * navigating across sub-canvases as needed.\n *\n * Returns a callback; it no-ops (returns false) when there are no anchors.\n */\nexport function usePdfExport(pixiRef: React.RefObject<PixiApp | null>) {\n const { doc, setDoc } = useFlowContext();\n const { showAnchors, setShowAnchors } = useFlowUI();\n\n return useCallback(async (): Promise<boolean> => {\n const slides = getDocumentSlides(doc);\n if (slides.length === 0) return false;\n\n const pixi = pixiRef.current;\n if (!pixi || pixi.destroyed) return false;\n\n // Snapshot state we temporarily change, so we can restore it afterward.\n const originalStack = doc.stack.slice();\n const anchorsWereVisible = showAnchors;\n\n // Hide anchor frames so they don't appear in the exported pages. The region\n // capture drives the world transform directly and restores it each time, so\n // the interactive viewport is untouched.\n setShowAnchors(false);\n await nextFrames(2);\n\n // Render slides at a crisp scale so text/shapes stay sharp in the PDF.\n const CAPTURE_SCALE = 2;\n const pages: Awaited<ReturnType<typeof pngDataUrlToJpeg>>[] = [];\n try {\n for (const slide of slides) {\n // Switch to the slide's canvas if it lives on a nested sub-canvas.\n const stack = canvasStackTo(doc, slide.canvasId);\n if (stack) {\n setDoc((prev) => ({ ...prev, stack }));\n // Canvas swap needs a couple frames to re-render the new node set.\n await nextFrames(3);\n }\n\n const r = anchorFocusRect(slide.node);\n const shot = await pixi.exportRegionPNG(r, {\n scale: CAPTURE_SCALE,\n backgroundColor: 0xffffff,\n });\n if (shot) pages.push(await pngDataUrlToJpeg(shot.dataUrl));\n }\n } finally {\n // Restore prior editor state regardless of success/failure.\n setShowAnchors(anchorsWereVisible);\n setDoc((prev) => ({ ...prev, stack: originalStack }));\n }\n\n if (pages.length === 0) return false;\n const blob = buildPdfFromJpegs(pages);\n const url = URL.createObjectURL(blob);\n downloadDataURL(url, `${safeFileBaseName(doc.title)}.pdf`);\n URL.revokeObjectURL(url);\n return true;\n }, [doc, setDoc, showAnchors, setShowAnchors, pixiRef]);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePdfExport.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/usePdfExport.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useFlowContext } from '../context/FlowContext';\nimport { useFlowUI } from '../context/FlowUIContext';\nimport { getDocumentSlides, anchorFocusRect, canvasStackTo } from '../nodes/animAnchors';\nimport { buildPdfFromJpegs, pngDataUrlToJpeg } from '../utils/pdfExport';\nimport { downloadDataURL, safeFileBaseName } from './useFlowImportExport';\nimport type { PixiApp } from '../canvas/PixiApp';\n\n/** Await the next N animation frames (lets Pixi settle after a state change). */\nfunction nextFrames(n: number): Promise<void> {\n return new Promise((resolve) => {\n let left = n;\n const step = () => {\n if (--left <= 0) resolve();\n else requestAnimationFrame(step);\n };\n requestAnimationFrame(step);\n });\n}\n\n/**\n * Exports the document's animation anchors as a single PDF. Each page is cropped\n * exactly to an anchor's world rectangle (not the whole viewport), so the PDF\n * contains only the framed slide content. Pages follow the global anchor order,\n * navigating across sub-canvases as needed.\n *\n * Returns a callback; it no-ops (returns false) when there are no anchors.\n */\nexport function usePdfExport(pixiRef: React.RefObject<PixiApp | null>) {\n const { doc, setDoc } = useFlowContext();\n const { showAnchors, setShowAnchors } = useFlowUI();\n\n return useCallback(async (): Promise<boolean> => {\n const slides = getDocumentSlides(doc);\n if (slides.length === 0) return false;\n\n const pixi = pixiRef.current;\n if (!pixi || pixi.destroyed) return false;\n\n // Snapshot state we temporarily change, so we can restore it afterward.\n const originalStack = doc.stack.slice();\n const anchorsWereVisible = showAnchors;\n\n // Hide anchor frames so they don't appear in the exported pages. The region\n // capture drives the world transform directly and restores it each time, so\n // the interactive viewport is untouched.\n setShowAnchors(false);\n await nextFrames(2);\n\n // Render slides at a crisp scale so text/shapes stay sharp in the PDF.\n const CAPTURE_SCALE = 2;\n const pages: Awaited<ReturnType<typeof pngDataUrlToJpeg>>[] = [];\n try {\n for (const slide of slides) {\n // Switch to the slide's canvas if it lives on a nested sub-canvas.\n const stack = canvasStackTo(doc, slide.canvasId);\n if (stack) {\n setDoc((prev) => ({ ...prev, stack }));\n // Canvas swap needs a couple frames to re-render the new node set.\n await nextFrames(3);\n }\n\n const r = anchorFocusRect(slide.node);\n const shot = await pixi.exportRegionPNG(r, {\n scale: CAPTURE_SCALE,\n backgroundColor: 0xffffff,\n });\n if (shot) pages.push(await pngDataUrlToJpeg(shot.dataUrl));\n }\n } finally {\n // Restore prior editor state regardless of success/failure.\n setShowAnchors(anchorsWereVisible);\n setDoc((prev) => ({ ...prev, stack: originalStack }));\n }\n\n if (pages.length === 0) return false;\n const blob = buildPdfFromJpegs(pages);\n const url = URL.createObjectURL(blob);\n downloadDataURL(url, `${safeFileBaseName(doc.title)}.pdf`);\n URL.revokeObjectURL(url);\n return true;\n }, [doc, setDoc, showAnchors, setShowAnchors, pixiRef]);\n}\n"],"mappings":";;;;;;;AASA,SAAS,EAAW,GAA0B;CAC5C,OAAO,IAAI,SAAS,MAAY;EAC9B,IAAI,IAAO,GACL,UAAa;GACjB,AAAI,EAAE,KAAQ,IAAG,EAAQ,IACpB,sBAAsB,CAAI;EACjC;EACA,sBAAsB,CAAI;CAC5B,CAAC;AACH;AAUA,SAAgB,EAAa,GAA0C;CACrE,IAAM,EAAE,QAAK,cAAW,EAAe,GACjC,EAAE,gBAAa,sBAAmB,EAAU;CAElD,OAAO,EAAY,YAA8B;EAC/C,IAAM,IAAS,EAAkB,CAAG;EACpC,IAAI,EAAO,WAAW,GAAG,OAAO;EAEhC,IAAM,IAAO,EAAQ;EACrB,IAAI,CAAC,KAAQ,EAAK,WAAW,OAAO;EAGpC,IAAM,IAAgB,EAAI,MAAM,MAAM,GAChC,IAAqB;EAM3B,AADA,EAAe,EAAK,GACpB,MAAM,EAAW,CAAC;EAGlB,IACM,IAAwD,CAAC;EAC/D,IAAI;GACF,KAAK,IAAM,KAAS,GAAQ;IAE1B,IAAM,IAAQ,EAAc,GAAK,EAAM,QAAQ;IAC/C,AAAI,MACF,GAAQ,OAAU;KAAE,GAAG;KAAM;IAAM,EAAE,GAErC,MAAM,EAAW,CAAC;IAGpB,IAAM,IAAI,EAAgB,EAAM,IAAI,GAC9B,IAAO,MAAM,EAAK,gBAAgB,GAAG;KACzC,OAAO;KACP,iBAAiB;IACnB,CAAC;IACD,AAAI,KAAM,EAAM,KAAK,MAAM,EAAiB,EAAK,OAAO,CAAC;GAC3D;EACF,UAAU;GAGR,AADA,EAAe,CAAkB,GACjC,GAAQ,OAAU;IAAE,GAAG;IAAM,OAAO;GAAc,EAAE;EACtD;EAEA,IAAI,EAAM,WAAW,GAAG,OAAO;EAC/B,IAAM,IAAO,EAAkB,CAAK,GAC9B,IAAM,IAAI,gBAAgB,CAAI;EAGpC,OAFA,EAAgB,GAAK,GAAG,EAAiB,EAAI,KAAK,EAAE,KAAK,GACzD,IAAI,gBAAgB,CAAG,GAChB;CACT,GAAG;EAAC;EAAK;EAAQ;EAAa;EAAgB;CAAO,CAAC;AACxD"}
|
|
@@ -1,60 +1,58 @@
|
|
|
1
|
-
import { PixiApp as
|
|
2
|
-
import { refreshThemePalette as
|
|
3
|
-
import { useEffect as
|
|
4
|
-
|
|
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
|
-
};
|
|
1
|
+
import { PixiApp as e } from "../canvas/PixiApp.js";
|
|
2
|
+
import { refreshThemePalette as t, resolveFlowThemeColors as n } from "../utils/themeColor.js";
|
|
3
|
+
import { useEffect as r, useRef as i } from "react";
|
|
4
|
+
//#region src/components/pro/Flow/hooks/usePixiApp.ts
|
|
5
|
+
function a(a, o) {
|
|
6
|
+
let s = i(null), c = i(null), l = i(!1), u = i(o);
|
|
7
|
+
return u.current = o, r(() => {
|
|
8
|
+
let r = a.current;
|
|
9
|
+
if (!r) return;
|
|
10
|
+
let i = !1, o = document.createElement("canvas");
|
|
11
|
+
o.style.display = "block", o.style.width = "100%", o.style.height = "100%", o.style.touchAction = "none", r.appendChild(o), c.current = o;
|
|
12
|
+
let d = new e();
|
|
13
|
+
s.current = d;
|
|
14
|
+
let f = r.getBoundingClientRect();
|
|
15
|
+
t(r);
|
|
16
|
+
let p = n(r);
|
|
17
|
+
d.init({
|
|
18
|
+
canvas: o,
|
|
19
|
+
width: f.width,
|
|
20
|
+
height: f.height,
|
|
21
|
+
backgroundColor: p.background
|
|
22
|
+
}).then(() => {
|
|
23
|
+
i || (l.current = !0, u.current?.(p));
|
|
24
|
+
});
|
|
25
|
+
let m = new ResizeObserver((e) => {
|
|
26
|
+
if (!d.destroyed) for (let t of e) {
|
|
27
|
+
let { width: e, height: n } = t.contentRect;
|
|
28
|
+
e > 0 && n > 0 && d.resize(e, n);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
m.observe(r);
|
|
32
|
+
let h = new MutationObserver(() => {
|
|
33
|
+
if (d.destroyed) return;
|
|
34
|
+
t(r);
|
|
35
|
+
let e = n(r);
|
|
36
|
+
d.setBackgroundColor(e.background), u.current?.(e);
|
|
37
|
+
});
|
|
38
|
+
h.observe(document.documentElement, {
|
|
39
|
+
attributes: !0,
|
|
40
|
+
attributeFilter: ["data-theme", "class"]
|
|
41
|
+
});
|
|
42
|
+
let g = r.closest("[data-theme]");
|
|
43
|
+
return g && h.observe(g, {
|
|
44
|
+
attributes: !0,
|
|
45
|
+
attributeFilter: ["data-theme", "class"]
|
|
46
|
+
}), () => {
|
|
47
|
+
i = !0, m.disconnect(), h.disconnect(), d.destroy(), s.current = null, l.current = !1, o.parentNode && o.parentNode.removeChild(o);
|
|
48
|
+
};
|
|
49
|
+
}, [a]), {
|
|
50
|
+
pixiRef: s,
|
|
51
|
+
canvasRef: c,
|
|
52
|
+
readyRef: l
|
|
53
|
+
};
|
|
55
54
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
};
|
|
55
|
+
//#endregion
|
|
56
|
+
export { a as usePixiApp };
|
|
59
57
|
|
|
60
58
|
//# sourceMappingURL=usePixiApp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePixiApp.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/usePixiApp.ts"],"sourcesContent":["import { useRef, useEffect, useCallback } from 'react';\nimport { PixiApp } from '../canvas/PixiApp';\nimport { resolveFlowThemeColors, refreshThemePalette, type FlowThemeColors } from '../utils/themeColor';\n\n/**\n * Manages PixiJS Application lifecycle: creates on mount, destroys on unmount,\n * handles container resize.\n *\n * The canvas backdrop follows the active DishUI theme (`--color-base-200`). We\n * resolve the theme color from the container's inherited CSS scope at init and\n * again whenever the ancestor `data-theme` attribute changes.\n */\nexport function usePixiApp(\n containerRef: React.RefObject<HTMLDivElement | null>,\n onThemeColors?: (colors: FlowThemeColors) => void,\n) {\n const pixiRef = useRef<PixiApp | null>(null);\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const readyRef = useRef(false);\n const onThemeColorsRef = useRef(onThemeColors);\n onThemeColorsRef.current = onThemeColors;\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n let cancelled = false;\n\n const canvas = document.createElement('canvas');\n canvas.style.display = 'block';\n canvas.style.width = '100%';\n canvas.style.height = '100%';\n // Touch devices: the canvas owns all touch gestures (drag/pinch/pan); the\n // browser must not scroll or fire pointercancel mid-gesture.\n canvas.style.touchAction = 'none';\n container.appendChild(canvas);\n canvasRef.current = canvas;\n\n const pixi = new PixiApp();\n pixiRef.current = pixi;\n\n const rect = container.getBoundingClientRect();\n refreshThemePalette(container);\n const themeColors = resolveFlowThemeColors(container);\n pixi.init({\n canvas,\n width: rect.width,\n height: rect.height,\n backgroundColor: themeColors.background,\n }).then(() => {\n if (!cancelled) {\n readyRef.current = true;\n onThemeColorsRef.current?.(themeColors);\n }\n });\n\n const ro = new ResizeObserver((entries) => {\n if (pixi.destroyed) return;\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n if (width > 0 && height > 0) {\n pixi.resize(width, height);\n }\n }\n });\n ro.observe(container);\n\n // React to DishUI theme switches (the theme is applied via a `data-theme`\n // attribute on an ancestor element). Re-resolve the themed colors and push\n // them to the canvas + subscriber.\n const applyTheme = () => {\n if (pixi.destroyed) return;\n refreshThemePalette(container);\n const colors = resolveFlowThemeColors(container);\n pixi.setBackgroundColor(colors.background);\n onThemeColorsRef.current?.(colors);\n };\n const themeObserver = new MutationObserver(applyTheme);\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-theme', 'class'],\n });\n // Also watch the closest themed ancestor, if any.\n const themedAncestor = container.closest('[data-theme]');\n if (themedAncestor) {\n themeObserver.observe(themedAncestor, {\n attributes: true,\n attributeFilter: ['data-theme', 'class'],\n });\n }\n\n return () => {\n cancelled = true;\n ro.disconnect();\n themeObserver.disconnect();\n pixi.destroy();\n pixiRef.current = null;\n readyRef.current = false;\n if (canvas.parentNode) canvas.parentNode.removeChild(canvas);\n };\n }, [containerRef]);\n\n return { pixiRef, canvasRef, readyRef };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePixiApp.js","names":[],"sources":["../../../../../src/components/pro/Flow/hooks/usePixiApp.ts"],"sourcesContent":["import { useRef, useEffect, useCallback } from 'react';\nimport { PixiApp } from '../canvas/PixiApp';\nimport { resolveFlowThemeColors, refreshThemePalette, type FlowThemeColors } from '../utils/themeColor';\n\n/**\n * Manages PixiJS Application lifecycle: creates on mount, destroys on unmount,\n * handles container resize.\n *\n * The canvas backdrop follows the active DishUI theme (`--color-base-200`). We\n * resolve the theme color from the container's inherited CSS scope at init and\n * again whenever the ancestor `data-theme` attribute changes.\n */\nexport function usePixiApp(\n containerRef: React.RefObject<HTMLDivElement | null>,\n onThemeColors?: (colors: FlowThemeColors) => void,\n) {\n const pixiRef = useRef<PixiApp | null>(null);\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const readyRef = useRef(false);\n const onThemeColorsRef = useRef(onThemeColors);\n onThemeColorsRef.current = onThemeColors;\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n let cancelled = false;\n\n const canvas = document.createElement('canvas');\n canvas.style.display = 'block';\n canvas.style.width = '100%';\n canvas.style.height = '100%';\n // Touch devices: the canvas owns all touch gestures (drag/pinch/pan); the\n // browser must not scroll or fire pointercancel mid-gesture.\n canvas.style.touchAction = 'none';\n container.appendChild(canvas);\n canvasRef.current = canvas;\n\n const pixi = new PixiApp();\n pixiRef.current = pixi;\n\n const rect = container.getBoundingClientRect();\n refreshThemePalette(container);\n const themeColors = resolveFlowThemeColors(container);\n pixi.init({\n canvas,\n width: rect.width,\n height: rect.height,\n backgroundColor: themeColors.background,\n }).then(() => {\n if (!cancelled) {\n readyRef.current = true;\n onThemeColorsRef.current?.(themeColors);\n }\n });\n\n const ro = new ResizeObserver((entries) => {\n if (pixi.destroyed) return;\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n if (width > 0 && height > 0) {\n pixi.resize(width, height);\n }\n }\n });\n ro.observe(container);\n\n // React to DishUI theme switches (the theme is applied via a `data-theme`\n // attribute on an ancestor element). Re-resolve the themed colors and push\n // them to the canvas + subscriber.\n const applyTheme = () => {\n if (pixi.destroyed) return;\n refreshThemePalette(container);\n const colors = resolveFlowThemeColors(container);\n pixi.setBackgroundColor(colors.background);\n onThemeColorsRef.current?.(colors);\n };\n const themeObserver = new MutationObserver(applyTheme);\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-theme', 'class'],\n });\n // Also watch the closest themed ancestor, if any.\n const themedAncestor = container.closest('[data-theme]');\n if (themedAncestor) {\n themeObserver.observe(themedAncestor, {\n attributes: true,\n attributeFilter: ['data-theme', 'class'],\n });\n }\n\n return () => {\n cancelled = true;\n ro.disconnect();\n themeObserver.disconnect();\n pixi.destroy();\n pixiRef.current = null;\n readyRef.current = false;\n if (canvas.parentNode) canvas.parentNode.removeChild(canvas);\n };\n }, [containerRef]);\n\n return { pixiRef, canvasRef, readyRef };\n}\n"],"mappings":";;;;AAYA,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAU,EAAuB,IAAI,GACrC,IAAY,EAAiC,IAAI,GACjD,IAAW,EAAO,EAAK,GACvB,IAAmB,EAAO,CAAa;CAmF7C,OAlFA,EAAiB,UAAU,GAE3B,QAAgB;EACd,IAAM,IAAY,EAAa;EAC/B,IAAI,CAAC,GAAW;EAEhB,IAAI,IAAY,IAEV,IAAS,SAAS,cAAc,QAAQ;EAQ9C,AAPA,EAAO,MAAM,UAAU,SACvB,EAAO,MAAM,QAAQ,QACrB,EAAO,MAAM,SAAS,QAGtB,EAAO,MAAM,cAAc,QAC3B,EAAU,YAAY,CAAM,GAC5B,EAAU,UAAU;EAEpB,IAAM,IAAO,IAAI,EAAQ;EACzB,EAAQ,UAAU;EAElB,IAAM,IAAO,EAAU,sBAAsB;EAC7C,EAAoB,CAAS;EAC7B,IAAM,IAAc,EAAuB,CAAS;EACpD,EAAK,KAAK;GACR;GACA,OAAO,EAAK;GACZ,QAAQ,EAAK;GACb,iBAAiB,EAAY;EAC/B,CAAC,CAAC,CAAC,WAAW;GACZ,AAAK,MACH,EAAS,UAAU,IACnB,EAAiB,UAAU,CAAW;EAE1C,CAAC;EAED,IAAM,IAAK,IAAI,gBAAgB,MAAY;GACrC,OAAK,WACT,KAAK,IAAM,KAAS,GAAS;IAC3B,IAAM,EAAE,UAAO,cAAW,EAAM;IAChC,AAAI,IAAQ,KAAK,IAAS,KACxB,EAAK,OAAO,GAAO,CAAM;GAE7B;EACF,CAAC;EACD,EAAG,QAAQ,CAAS;EAYpB,IAAM,IAAgB,IAAI,uBAPD;GACvB,IAAI,EAAK,WAAW;GACpB,EAAoB,CAAS;GAC7B,IAAM,IAAS,EAAuB,CAAS;GAE/C,AADA,EAAK,mBAAmB,EAAO,UAAU,GACzC,EAAiB,UAAU,CAAM;EACnC,CACqD;EACrD,EAAc,QAAQ,SAAS,iBAAiB;GAC9C,YAAY;GACZ,iBAAiB,CAAC,cAAc,OAAO;EACzC,CAAC;EAED,IAAM,IAAiB,EAAU,QAAQ,cAAc;EAQvD,OAPI,KACF,EAAc,QAAQ,GAAgB;GACpC,YAAY;GACZ,iBAAiB,CAAC,cAAc,OAAO;EACzC,CAAC,SAGU;GAOX,AANA,IAAY,IACZ,EAAG,WAAW,GACd,EAAc,WAAW,GACzB,EAAK,QAAQ,GACb,EAAQ,UAAU,MAClB,EAAS,UAAU,IACf,EAAO,cAAY,EAAO,WAAW,YAAY,CAAM;EAC7D;CACF,GAAG,CAAC,CAAY,CAAC,GAEV;EAAE;EAAS;EAAW;CAAS;AACxC"}
|
|
@@ -1,34 +1,34 @@
|
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
import { useCallback as e, useRef as t, useState as n } from "react";
|
|
2
|
+
//#region src/components/pro/Flow/hooks/useResizablePanel.ts
|
|
3
|
+
function r(r, i, a = 120, o = 600) {
|
|
4
|
+
let [s, c] = n(null), l = t(null), u = e((e) => {
|
|
5
|
+
e.preventDefault(), e.stopPropagation(), e.target.setPointerCapture(e.pointerId);
|
|
6
|
+
let t = e.currentTarget.closest("[data-flow-panel]"), n = t ? t.getBoundingClientRect().width : s ?? i;
|
|
7
|
+
l.current = {
|
|
8
|
+
startX: e.clientX,
|
|
9
|
+
startWidth: n
|
|
10
|
+
};
|
|
11
|
+
}, [s, i]), d = e((e) => {
|
|
12
|
+
if (!l.current) return;
|
|
13
|
+
let t = e.clientX - l.current.startX, n = r === "right" ? 1 : -1, i = Math.max(a, Math.min(o, l.current.startWidth + t * n));
|
|
14
|
+
c(i);
|
|
15
|
+
}, [
|
|
16
|
+
r,
|
|
17
|
+
a,
|
|
18
|
+
o
|
|
19
|
+
]), f = e(() => {
|
|
20
|
+
l.current = null;
|
|
21
|
+
}, []);
|
|
22
|
+
return {
|
|
23
|
+
panelWidth: s ?? i,
|
|
24
|
+
resizeHandleProps: {
|
|
25
|
+
onPointerDown: u,
|
|
26
|
+
onPointerMove: d,
|
|
27
|
+
onPointerUp: f
|
|
28
|
+
}
|
|
29
|
+
};
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
};
|
|
31
|
+
//#endregion
|
|
32
|
+
export { r as useResizablePanel };
|
|
33
33
|
|
|
34
34
|
//# sourceMappingURL=useResizablePanel.js.map
|