dishui 0.0.64 → 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 +11 -13
- package/dist/components/Badge/index.js.map +1 -1
- package/dist/components/Button/index.js +62 -86
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Card/index.d.ts +87 -0
- package/dist/components/Card/index.js +178 -44
- 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 -63
- 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.d.ts +4 -1
- 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 -73
- 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 -43
- package/dist/components/List/index.js.map +1 -1
- package/dist/components/Markdown/Markdown.js +106 -103
- 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.d.ts +7 -3
- package/dist/components/Modal/index.js +82 -70
- 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.d.ts +58 -0
- package/dist/components/Page/index.js +43 -0
- package/dist/components/Page/index.js.map +1 -0
- 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 -257
- 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 +31 -1
- package/dist/components/StatCard/index.js +189 -58
- 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 -103
- package/dist/components/Table/index.js.map +1 -1
- package/dist/components/Tabs/index.d.ts +19 -5
- package/dist/components/Tabs/index.js +30 -21
- 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 -320
- package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
- package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +167 -221
- 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 -305
- 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 -141
- 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 +190 -190
- 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 -946
- package/dist/components/pro/Flow/Flow.js.map +1 -1
- package/dist/components/pro/Flow/FlowCanvas.js +1626 -1663
- 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 -182
- 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 -222
- 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 -591
- 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 -244
- package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/PresentationMode.js +137 -138
- 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 -567
- 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 -42
- 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 +29 -1
- package/dist/index.js +106 -236
- 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 -165
- 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 -58
- 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 +23 -10
|
@@ -1,163 +1,155 @@
|
|
|
1
|
-
import { getDefaultSnippets as
|
|
2
|
-
import { getLanguageKeywords as
|
|
3
|
-
import { Decoration as
|
|
4
|
-
import { autocompletion 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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
},
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
backgroundColor: "rgba(96, 165, 250, 0.25)",
|
|
152
|
-
borderBottomColor: "rgb(96, 165, 250)"
|
|
153
|
-
}
|
|
1
|
+
import { getDefaultSnippets as e } from "../langs/snippets.js";
|
|
2
|
+
import { getLanguageKeywords as t } from "../langs/index.js";
|
|
3
|
+
import { Decoration as n, EditorView as r, ViewPlugin as i } from "@codemirror/view";
|
|
4
|
+
import { autocompletion as a } from "@codemirror/autocomplete";
|
|
5
|
+
//#region src/components/pro/CodeEditor/extensions/index.ts
|
|
6
|
+
var o = [
|
|
7
|
+
{
|
|
8
|
+
pattern: /(?:function|const|let|var)\s+IDENTIFIER\s*[=(]/,
|
|
9
|
+
language: ["javascript", "typescript"]
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
pattern: /class\s+IDENTIFIER\b/,
|
|
13
|
+
language: [
|
|
14
|
+
"javascript",
|
|
15
|
+
"typescript",
|
|
16
|
+
"python"
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
pattern: /interface\s+IDENTIFIER\b/,
|
|
21
|
+
language: ["typescript"]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
pattern: /type\s+IDENTIFIER\b/,
|
|
25
|
+
language: ["typescript"]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
pattern: /def\s+IDENTIFIER\s*\(/,
|
|
29
|
+
language: ["python"]
|
|
30
|
+
}
|
|
31
|
+
], s = (e, t, n) => {
|
|
32
|
+
if (n) return n(e, t);
|
|
33
|
+
let r = e.split("\n"), i = t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
34
|
+
for (let e of o) {
|
|
35
|
+
let t = e.pattern.source.replace("IDENTIFIER", i), n = new RegExp(t);
|
|
36
|
+
for (let e = 0; e < r.length; e++) if (n.test(r[e])) return e + 1;
|
|
37
|
+
}
|
|
38
|
+
return 0;
|
|
39
|
+
}, c = (e, t = {}) => {
|
|
40
|
+
let { modifierKey: a = "ctrl", highlightColor: o = "rgba(59, 130, 246, 0.3)", customFinder: c } = t;
|
|
41
|
+
return [r.domEventHandlers({ mousedown: (t, n) => {
|
|
42
|
+
if ((a === "ctrl" ? t.ctrlKey || t.metaKey : t.altKey) && t.button === 0) {
|
|
43
|
+
let r = n.posAtCoords({
|
|
44
|
+
x: t.clientX,
|
|
45
|
+
y: t.clientY
|
|
46
|
+
});
|
|
47
|
+
if (r !== null) {
|
|
48
|
+
let i = n.state.wordAt(r);
|
|
49
|
+
if (i) {
|
|
50
|
+
let r = n.state.sliceDoc(i.from, i.to), a = s(n.state.doc.toString(), r, c);
|
|
51
|
+
if (a > 0 && e) return e(a), t.preventDefault(), !0;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return !1;
|
|
56
|
+
} }), i.fromClass(class {
|
|
57
|
+
decorations;
|
|
58
|
+
modifierPressed;
|
|
59
|
+
currentMousePos;
|
|
60
|
+
constructor(e) {
|
|
61
|
+
this.decorations = n.none, this.modifierPressed = !1, this.currentMousePos = null, this.addEventListeners(e);
|
|
62
|
+
}
|
|
63
|
+
addEventListeners(e) {
|
|
64
|
+
let t = (t) => {
|
|
65
|
+
(a === "ctrl" ? t.ctrlKey || t.metaKey : t.altKey) && !this.modifierPressed && (this.modifierPressed = !0, this.currentMousePos !== null && (this.decorations = this.buildDecorations(e, this.currentMousePos), e.update([])));
|
|
66
|
+
}, r = (t) => {
|
|
67
|
+
(a === "ctrl" ? t.key === "Control" || t.key === "Meta" : t.key === "Alt") && (this.modifierPressed = !1, this.decorations = n.none, e.update([]));
|
|
68
|
+
}, i = (t) => {
|
|
69
|
+
let n = e.posAtCoords({
|
|
70
|
+
x: t.clientX,
|
|
71
|
+
y: t.clientY
|
|
72
|
+
});
|
|
73
|
+
n !== null && (this.currentMousePos = n, this.modifierPressed && (this.decorations = this.buildDecorations(e, n), e.update([])));
|
|
74
|
+
}, o = () => {
|
|
75
|
+
this.currentMousePos = null, this.decorations = n.none, this.modifierPressed && e.update([]);
|
|
76
|
+
};
|
|
77
|
+
window.addEventListener("keydown", t), window.addEventListener("keyup", r), e.dom.addEventListener("mousemove", i), e.dom.addEventListener("mouseleave", o), this.cleanup = () => {
|
|
78
|
+
window.removeEventListener("keydown", t), window.removeEventListener("keyup", r), e.dom.removeEventListener("mousemove", i), e.dom.removeEventListener("mouseleave", o);
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
update(e) {}
|
|
82
|
+
buildDecorations(e, t) {
|
|
83
|
+
let r = e.state.wordAt(t);
|
|
84
|
+
if (!r) return n.none;
|
|
85
|
+
let i = e.state.sliceDoc(r.from, r.to);
|
|
86
|
+
if (s(e.state.doc.toString(), i, c) > 0) {
|
|
87
|
+
let e = n.mark({ class: "cm-jump-target" });
|
|
88
|
+
return n.set([e.range(r.from, r.to)]);
|
|
89
|
+
}
|
|
90
|
+
return n.none;
|
|
91
|
+
}
|
|
92
|
+
destroy() {
|
|
93
|
+
this.cleanup && this.cleanup();
|
|
94
|
+
}
|
|
95
|
+
}, { decorations: (e) => e.decorations })];
|
|
96
|
+
}, l = (n, r = {}) => {
|
|
97
|
+
let { keywords: i = t(n), snippets: o = e(n), customSource: s } = r;
|
|
98
|
+
return a({ override: [async (e) => {
|
|
99
|
+
if (s) {
|
|
100
|
+
let t = await Promise.resolve(s(e));
|
|
101
|
+
if (t) return t;
|
|
102
|
+
}
|
|
103
|
+
let t = e.matchBefore(/\w*/);
|
|
104
|
+
if (!t || t.from === t.to && !e.explicit) return null;
|
|
105
|
+
let r = [];
|
|
106
|
+
for (let e of i) e.startsWith(t.text) && r.push({
|
|
107
|
+
label: e,
|
|
108
|
+
type: "keyword",
|
|
109
|
+
boost: 2
|
|
110
|
+
});
|
|
111
|
+
let a = e.state.doc.toString(), c = /* @__PURE__ */ new Set(), l = n.includes("python") ? /\b([a-zA-Z_][a-zA-Z0-9_]+)\b/g : /\b([a-zA-Z_$][a-zA-Z0-9_$]+)\b/g, u;
|
|
112
|
+
for (; (u = l.exec(a)) !== null;) u[1].length > 2 && !i.includes(u[1]) && c.add(u[1]);
|
|
113
|
+
for (let e of c) e.startsWith(t.text) && e !== t.text && r.push({
|
|
114
|
+
label: e,
|
|
115
|
+
type: "variable",
|
|
116
|
+
boost: 1
|
|
117
|
+
});
|
|
118
|
+
for (let e of o) e.label.startsWith(t.text) && r.push(e);
|
|
119
|
+
return {
|
|
120
|
+
from: t.from,
|
|
121
|
+
options: r
|
|
122
|
+
};
|
|
123
|
+
}] });
|
|
124
|
+
}, u = r.baseTheme({
|
|
125
|
+
"&light .cm-matchingBracket": { backgroundColor: "#d7d4f0" },
|
|
126
|
+
"&dark .cm-matchingBracket": { backgroundColor: "#515a6b" }
|
|
127
|
+
}), d = r.baseTheme({ ".cm-line": { padding: "0 4px" } }), f = r.baseTheme({
|
|
128
|
+
".cm-jump-target": {
|
|
129
|
+
backgroundColor: "rgba(59, 130, 246, 0.15)",
|
|
130
|
+
borderBottom: "1px solid rgba(59, 130, 246, 0.8)",
|
|
131
|
+
cursor: "pointer",
|
|
132
|
+
textDecoration: "underline",
|
|
133
|
+
textDecorationColor: "rgba(59, 130, 246, 0.6)",
|
|
134
|
+
textDecorationStyle: "dotted",
|
|
135
|
+
transition: "all 0.15s ease"
|
|
136
|
+
},
|
|
137
|
+
".cm-jump-target:hover": {
|
|
138
|
+
backgroundColor: "rgba(59, 130, 246, 0.25)",
|
|
139
|
+
borderBottomColor: "rgb(59, 130, 246)",
|
|
140
|
+
textDecorationStyle: "solid"
|
|
141
|
+
},
|
|
142
|
+
"&dark .cm-jump-target": {
|
|
143
|
+
backgroundColor: "rgba(96, 165, 250, 0.15)",
|
|
144
|
+
borderBottomColor: "rgba(96, 165, 250, 0.8)",
|
|
145
|
+
textDecorationColor: "rgba(96, 165, 250, 0.6)"
|
|
146
|
+
},
|
|
147
|
+
"&dark .cm-jump-target:hover": {
|
|
148
|
+
backgroundColor: "rgba(96, 165, 250, 0.25)",
|
|
149
|
+
borderBottomColor: "rgb(96, 165, 250)"
|
|
150
|
+
}
|
|
154
151
|
});
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
L as jumpTargetHighlight,
|
|
158
|
-
v as jumpToDefinition,
|
|
159
|
-
T as lineHighlightStyle,
|
|
160
|
-
C as smartAutocompletion
|
|
161
|
-
};
|
|
152
|
+
//#endregion
|
|
153
|
+
export { u as bracketMatchingStyle, f as jumpTargetHighlight, c as jumpToDefinition, d as lineHighlightStyle, l as smartAutocompletion };
|
|
162
154
|
|
|
163
155
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/pro/CodeEditor/extensions/index.ts"],"sourcesContent":["import { Extension } from '@codemirror/state';\nimport { EditorView, ViewPlugin, ViewUpdate, Decoration, DecorationSet } from '@codemirror/view';\nimport { CompletionContext, CompletionResult, autocompletion } from '@codemirror/autocomplete';\nimport { AutocompletionConfig, JumpToDefinitionConfig, CodeSnippet } from '../types';\nimport { getDefaultSnippets, getLanguageKeywords } from '../langs';\n\n// ============= 跳转到定义 =============\n\ninterface DefinitionPattern {\n pattern: RegExp;\n language?: string[];\n}\n\nconst defaultDefinitionPatterns: DefinitionPattern[] = [\n { pattern: /(?:function|const|let|var)\\s+IDENTIFIER\\s*[=\\(]/, language: ['javascript', 'typescript'] },\n { pattern: /class\\s+IDENTIFIER\\b/, language: ['javascript', 'typescript', 'python'] },\n { pattern: /interface\\s+IDENTIFIER\\b/, language: ['typescript'] },\n { pattern: /type\\s+IDENTIFIER\\b/, language: ['typescript'] },\n { pattern: /def\\s+IDENTIFIER\\s*\\(/, language: ['python'] },\n];\n\nconst findDefinition = (code: string, identifier: string, customFinder?: (code: string, id: string) => number): number => {\n if (customFinder) {\n return customFinder(code, identifier);\n }\n\n const lines = code.split('\\n');\n const escapedId = identifier.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n for (const defPattern of defaultDefinitionPatterns) {\n const patternStr = defPattern.pattern.source.replace('IDENTIFIER', escapedId);\n const regex = new RegExp(patternStr);\n\n for (let i = 0; i < lines.length; i++) {\n if (regex.test(lines[i])) {\n return i + 1;\n }\n }\n }\n\n return 0;\n};\n\nexport const jumpToDefinition = (\n onJump?: (line: number) => void,\n config: JumpToDefinitionConfig = {}\n) => {\n const {\n modifierKey = 'ctrl',\n highlightColor = 'rgba(59, 130, 246, 0.3)',\n customFinder\n } = config;\n\n let currentHighlight: { from: number; to: number } | null = null;\n\n return [\n // 点击跳转处理\n EditorView.domEventHandlers({\n mousedown: (event, view) => {\n const shouldTrigger = modifierKey === 'ctrl' \n ? (event.ctrlKey || event.metaKey)\n : event.altKey;\n \n if (shouldTrigger && event.button === 0) {\n const pos = view.posAtCoords({ x: event.clientX, y: event.clientY });\n if (pos !== null) {\n const word = view.state.wordAt(pos);\n if (word) {\n const wordText = view.state.sliceDoc(word.from, word.to);\n const line = findDefinition(view.state.doc.toString(), wordText, customFinder);\n if (line > 0 && onJump) {\n onJump(line);\n event.preventDefault();\n return true;\n }\n }\n }\n }\n return false;\n },\n }),\n \n // 悬浮高亮插件\n ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n modifierPressed: boolean;\n currentMousePos: number | null;\n\n constructor(view: EditorView) {\n this.decorations = Decoration.none;\n this.modifierPressed = false;\n this.currentMousePos = null;\n this.addEventListeners(view);\n }\n\n addEventListeners(view: EditorView) {\n // 监听键盘\n const handleKeyDown = (e: KeyboardEvent) => {\n const shouldHighlight = modifierKey === 'ctrl'\n ? (e.ctrlKey || e.metaKey)\n : e.altKey;\n \n if (shouldHighlight && !this.modifierPressed) {\n this.modifierPressed = true;\n if (this.currentMousePos !== null) {\n this.decorations = this.buildDecorations(view, this.currentMousePos);\n view.update([]);\n }\n }\n };\n\n const handleKeyUp = (e: KeyboardEvent) => {\n const wasModifier = modifierKey === 'ctrl'\n ? (e.key === 'Control' || e.key === 'Meta')\n : e.key === 'Alt';\n \n if (wasModifier) {\n this.modifierPressed = false;\n this.decorations = Decoration.none;\n view.update([]);\n }\n };\n\n // 监听鼠标移动\n const handleMouseMove = (e: MouseEvent) => {\n const pos = view.posAtCoords({ x: e.clientX, y: e.clientY });\n if (pos !== null) {\n this.currentMousePos = pos;\n if (this.modifierPressed) {\n this.decorations = this.buildDecorations(view, pos);\n view.update([]);\n }\n }\n };\n\n const handleMouseLeave = () => {\n this.currentMousePos = null;\n this.decorations = Decoration.none;\n if (this.modifierPressed) {\n view.update([]);\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n view.dom.addEventListener('mousemove', handleMouseMove);\n view.dom.addEventListener('mouseleave', handleMouseLeave);\n\n // 存储清理函数\n (this as any).cleanup = () => {\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n view.dom.removeEventListener('mousemove', handleMouseMove);\n view.dom.removeEventListener('mouseleave', handleMouseLeave);\n };\n }\n\n update(update: ViewUpdate) {\n // 装饰在事件处理中更新,这里不需要额外操作\n }\n\n buildDecorations(view: EditorView, pos: number): DecorationSet {\n const word = view.state.wordAt(pos);\n if (!word) return Decoration.none;\n\n const wordText = view.state.sliceDoc(word.from, word.to);\n const line = findDefinition(view.state.doc.toString(), wordText, customFinder);\n \n // 只有找到定义时才高亮\n if (line > 0) {\n const jumpTargetMark = Decoration.mark({ class: 'cm-jump-target' });\n return Decoration.set([jumpTargetMark.range(word.from, word.to)]);\n }\n \n return Decoration.none;\n }\n\n destroy() {\n if ((this as any).cleanup) {\n (this as any).cleanup();\n }\n }\n },\n {\n decorations: (v) => v.decorations,\n }\n ),\n ];\n};\n\n// ============= 智能自动补全 =============\n\nexport const smartAutocompletion = (\n language: string,\n config: AutocompletionConfig = {}\n) => {\n const {\n keywords = getLanguageKeywords(language),\n snippets = getDefaultSnippets(language),\n customSource\n } = config;\n\n return autocompletion({\n override: [\n async (context: CompletionContext): Promise<CompletionResult | null> => {\n // 如果有自定义补全源,先尝试使用\n if (customSource) {\n const customResult = await Promise.resolve(customSource(context));\n if (customResult) return customResult;\n }\n\n const word = context.matchBefore(/\\w*/);\n if (!word || (word.from === word.to && !context.explicit)) {\n return null;\n }\n\n const options = [];\n\n // 关键字补全\n for (const keyword of keywords) {\n if (keyword.startsWith(word.text)) {\n options.push({\n label: keyword,\n type: 'keyword',\n boost: 2,\n });\n }\n }\n\n // 从文档中提取标识符\n const text = context.state.doc.toString();\n const identifiers = new Set<string>();\n const regex = language.includes('python')\n ? /\\b([a-zA-Z_][a-zA-Z0-9_]+)\\b/g\n : /\\b([a-zA-Z_$][a-zA-Z0-9_$]+)\\b/g;\n\n let match;\n while ((match = regex.exec(text)) !== null) {\n if (match[1].length > 2 && !keywords.includes(match[1])) {\n identifiers.add(match[1]);\n }\n }\n\n // 添加标识符补全\n for (const identifier of identifiers) {\n if (identifier.startsWith(word.text) && identifier !== word.text) {\n options.push({\n label: identifier,\n type: 'variable',\n boost: 1,\n });\n }\n }\n\n // 代码片段补全\n for (const snippet of snippets) {\n if (snippet.label.startsWith(word.text)) {\n options.push(snippet);\n }\n }\n\n return {\n from: word.from,\n options,\n };\n },\n ],\n });\n};\n\n// ============= 样式主题 =============\n\nexport const bracketMatchingStyle = EditorView.baseTheme({\n '&light .cm-matchingBracket': { backgroundColor: '#d7d4f0' },\n '&dark .cm-matchingBracket': { backgroundColor: '#515a6b' },\n});\n\nexport const lineHighlightStyle = EditorView.baseTheme({\n '.cm-line': {\n padding: '0 4px',\n },\n});\n\n// ============= 高亮跳转目标样式 =============\n\nexport const jumpTargetHighlight = EditorView.baseTheme({\n '.cm-jump-target': {\n backgroundColor: 'rgba(59, 130, 246, 0.15)',\n borderBottom: '1px solid rgba(59, 130, 246, 0.8)',\n cursor: 'pointer',\n textDecoration: 'underline',\n textDecorationColor: 'rgba(59, 130, 246, 0.6)',\n textDecorationStyle: 'dotted',\n transition: 'all 0.15s ease',\n },\n '.cm-jump-target:hover': {\n backgroundColor: 'rgba(59, 130, 246, 0.25)',\n borderBottomColor: 'rgb(59, 130, 246)',\n textDecorationStyle: 'solid',\n },\n // 深色模式\n '&dark .cm-jump-target': {\n backgroundColor: 'rgba(96, 165, 250, 0.15)',\n borderBottomColor: 'rgba(96, 165, 250, 0.8)',\n textDecorationColor: 'rgba(96, 165, 250, 0.6)',\n },\n '&dark .cm-jump-target:hover': {\n backgroundColor: 'rgba(96, 165, 250, 0.25)',\n borderBottomColor: 'rgb(96, 165, 250)',\n },\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/pro/CodeEditor/extensions/index.ts"],"sourcesContent":["import { Extension } from '@codemirror/state';\nimport { EditorView, ViewPlugin, ViewUpdate, Decoration, DecorationSet } from '@codemirror/view';\nimport { CompletionContext, CompletionResult, autocompletion } from '@codemirror/autocomplete';\nimport { AutocompletionConfig, JumpToDefinitionConfig, CodeSnippet } from '../types';\nimport { getDefaultSnippets, getLanguageKeywords } from '../langs';\n\n// ============= 跳转到定义 =============\n\ninterface DefinitionPattern {\n pattern: RegExp;\n language?: string[];\n}\n\nconst defaultDefinitionPatterns: DefinitionPattern[] = [\n { pattern: /(?:function|const|let|var)\\s+IDENTIFIER\\s*[=(]/, language: ['javascript', 'typescript'] },\n { pattern: /class\\s+IDENTIFIER\\b/, language: ['javascript', 'typescript', 'python'] },\n { pattern: /interface\\s+IDENTIFIER\\b/, language: ['typescript'] },\n { pattern: /type\\s+IDENTIFIER\\b/, language: ['typescript'] },\n { pattern: /def\\s+IDENTIFIER\\s*\\(/, language: ['python'] },\n];\n\nconst findDefinition = (code: string, identifier: string, customFinder?: (code: string, id: string) => number): number => {\n if (customFinder) {\n return customFinder(code, identifier);\n }\n\n const lines = code.split('\\n');\n const escapedId = identifier.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n for (const defPattern of defaultDefinitionPatterns) {\n const patternStr = defPattern.pattern.source.replace('IDENTIFIER', escapedId);\n const regex = new RegExp(patternStr);\n\n for (let i = 0; i < lines.length; i++) {\n if (regex.test(lines[i])) {\n return i + 1;\n }\n }\n }\n\n return 0;\n};\n\nexport const jumpToDefinition = (\n onJump?: (line: number) => void,\n config: JumpToDefinitionConfig = {}\n) => {\n const {\n modifierKey = 'ctrl',\n highlightColor = 'rgba(59, 130, 246, 0.3)',\n customFinder\n } = config;\n\n let currentHighlight: { from: number; to: number } | null = null;\n\n return [\n // 点击跳转处理\n EditorView.domEventHandlers({\n mousedown: (event, view) => {\n const shouldTrigger = modifierKey === 'ctrl' \n ? (event.ctrlKey || event.metaKey)\n : event.altKey;\n \n if (shouldTrigger && event.button === 0) {\n const pos = view.posAtCoords({ x: event.clientX, y: event.clientY });\n if (pos !== null) {\n const word = view.state.wordAt(pos);\n if (word) {\n const wordText = view.state.sliceDoc(word.from, word.to);\n const line = findDefinition(view.state.doc.toString(), wordText, customFinder);\n if (line > 0 && onJump) {\n onJump(line);\n event.preventDefault();\n return true;\n }\n }\n }\n }\n return false;\n },\n }),\n \n // 悬浮高亮插件\n ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n modifierPressed: boolean;\n currentMousePos: number | null;\n\n constructor(view: EditorView) {\n this.decorations = Decoration.none;\n this.modifierPressed = false;\n this.currentMousePos = null;\n this.addEventListeners(view);\n }\n\n addEventListeners(view: EditorView) {\n // 监听键盘\n const handleKeyDown = (e: KeyboardEvent) => {\n const shouldHighlight = modifierKey === 'ctrl'\n ? (e.ctrlKey || e.metaKey)\n : e.altKey;\n \n if (shouldHighlight && !this.modifierPressed) {\n this.modifierPressed = true;\n if (this.currentMousePos !== null) {\n this.decorations = this.buildDecorations(view, this.currentMousePos);\n view.update([]);\n }\n }\n };\n\n const handleKeyUp = (e: KeyboardEvent) => {\n const wasModifier = modifierKey === 'ctrl'\n ? (e.key === 'Control' || e.key === 'Meta')\n : e.key === 'Alt';\n \n if (wasModifier) {\n this.modifierPressed = false;\n this.decorations = Decoration.none;\n view.update([]);\n }\n };\n\n // 监听鼠标移动\n const handleMouseMove = (e: MouseEvent) => {\n const pos = view.posAtCoords({ x: e.clientX, y: e.clientY });\n if (pos !== null) {\n this.currentMousePos = pos;\n if (this.modifierPressed) {\n this.decorations = this.buildDecorations(view, pos);\n view.update([]);\n }\n }\n };\n\n const handleMouseLeave = () => {\n this.currentMousePos = null;\n this.decorations = Decoration.none;\n if (this.modifierPressed) {\n view.update([]);\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n view.dom.addEventListener('mousemove', handleMouseMove);\n view.dom.addEventListener('mouseleave', handleMouseLeave);\n\n // 存储清理函数\n (this as any).cleanup = () => {\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n view.dom.removeEventListener('mousemove', handleMouseMove);\n view.dom.removeEventListener('mouseleave', handleMouseLeave);\n };\n }\n\n update(update: ViewUpdate) {\n // 装饰在事件处理中更新,这里不需要额外操作\n }\n\n buildDecorations(view: EditorView, pos: number): DecorationSet {\n const word = view.state.wordAt(pos);\n if (!word) return Decoration.none;\n\n const wordText = view.state.sliceDoc(word.from, word.to);\n const line = findDefinition(view.state.doc.toString(), wordText, customFinder);\n \n // 只有找到定义时才高亮\n if (line > 0) {\n const jumpTargetMark = Decoration.mark({ class: 'cm-jump-target' });\n return Decoration.set([jumpTargetMark.range(word.from, word.to)]);\n }\n \n return Decoration.none;\n }\n\n destroy() {\n if ((this as any).cleanup) {\n (this as any).cleanup();\n }\n }\n },\n {\n decorations: (v) => v.decorations,\n }\n ),\n ];\n};\n\n// ============= 智能自动补全 =============\n\nexport const smartAutocompletion = (\n language: string,\n config: AutocompletionConfig = {}\n) => {\n const {\n keywords = getLanguageKeywords(language),\n snippets = getDefaultSnippets(language),\n customSource\n } = config;\n\n return autocompletion({\n override: [\n async (context: CompletionContext): Promise<CompletionResult | null> => {\n // 如果有自定义补全源,先尝试使用\n if (customSource) {\n const customResult = await Promise.resolve(customSource(context));\n if (customResult) return customResult;\n }\n\n const word = context.matchBefore(/\\w*/);\n if (!word || (word.from === word.to && !context.explicit)) {\n return null;\n }\n\n const options = [];\n\n // 关键字补全\n for (const keyword of keywords) {\n if (keyword.startsWith(word.text)) {\n options.push({\n label: keyword,\n type: 'keyword',\n boost: 2,\n });\n }\n }\n\n // 从文档中提取标识符\n const text = context.state.doc.toString();\n const identifiers = new Set<string>();\n const regex = language.includes('python')\n ? /\\b([a-zA-Z_][a-zA-Z0-9_]+)\\b/g\n : /\\b([a-zA-Z_$][a-zA-Z0-9_$]+)\\b/g;\n\n let match;\n while ((match = regex.exec(text)) !== null) {\n if (match[1].length > 2 && !keywords.includes(match[1])) {\n identifiers.add(match[1]);\n }\n }\n\n // 添加标识符补全\n for (const identifier of identifiers) {\n if (identifier.startsWith(word.text) && identifier !== word.text) {\n options.push({\n label: identifier,\n type: 'variable',\n boost: 1,\n });\n }\n }\n\n // 代码片段补全\n for (const snippet of snippets) {\n if (snippet.label.startsWith(word.text)) {\n options.push(snippet);\n }\n }\n\n return {\n from: word.from,\n options,\n };\n },\n ],\n });\n};\n\n// ============= 样式主题 =============\n\nexport const bracketMatchingStyle = EditorView.baseTheme({\n '&light .cm-matchingBracket': { backgroundColor: '#d7d4f0' },\n '&dark .cm-matchingBracket': { backgroundColor: '#515a6b' },\n});\n\nexport const lineHighlightStyle = EditorView.baseTheme({\n '.cm-line': {\n padding: '0 4px',\n },\n});\n\n// ============= 高亮跳转目标样式 =============\n\nexport const jumpTargetHighlight = EditorView.baseTheme({\n '.cm-jump-target': {\n backgroundColor: 'rgba(59, 130, 246, 0.15)',\n borderBottom: '1px solid rgba(59, 130, 246, 0.8)',\n cursor: 'pointer',\n textDecoration: 'underline',\n textDecorationColor: 'rgba(59, 130, 246, 0.6)',\n textDecorationStyle: 'dotted',\n transition: 'all 0.15s ease',\n },\n '.cm-jump-target:hover': {\n backgroundColor: 'rgba(59, 130, 246, 0.25)',\n borderBottomColor: 'rgb(59, 130, 246)',\n textDecorationStyle: 'solid',\n },\n // 深色模式\n '&dark .cm-jump-target': {\n backgroundColor: 'rgba(96, 165, 250, 0.15)',\n borderBottomColor: 'rgba(96, 165, 250, 0.8)',\n textDecorationColor: 'rgba(96, 165, 250, 0.6)',\n },\n '&dark .cm-jump-target:hover': {\n backgroundColor: 'rgba(96, 165, 250, 0.25)',\n borderBottomColor: 'rgb(96, 165, 250)',\n },\n});\n"],"mappings":"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"}
|
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
import { getDefaultSnippets as
|
|
2
|
-
import { jsJumpableKeywords as r, jsKeywords as
|
|
3
|
-
import { pyJumpableKeywords as
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
m as getLanguageKeywords,
|
|
9
|
-
i as javascriptSnippets,
|
|
10
|
-
r as jsJumpableKeywords,
|
|
11
|
-
p as jsKeywords,
|
|
12
|
-
t as pyJumpableKeywords,
|
|
13
|
-
o as pyKeywords,
|
|
14
|
-
u as pythonSnippets
|
|
15
|
-
};
|
|
1
|
+
import { getDefaultSnippets as e, javascriptSnippets as t, pythonSnippets as n } from "./snippets.js";
|
|
2
|
+
import { jsJumpableKeywords as r, jsKeywords as i } from "./javascript.js";
|
|
3
|
+
import { pyJumpableKeywords as a, pyKeywords as o } from "./python.js";
|
|
4
|
+
//#region src/components/pro/CodeEditor/langs/index.ts
|
|
5
|
+
var s = (e) => e.includes("python") ? o : i, c = (e) => e.includes("python") ? a : r;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { e as getDefaultSnippets, c as getJumpableKeywords, s as getLanguageKeywords, t as javascriptSnippets, r as jsJumpableKeywords, i as jsKeywords, a as pyJumpableKeywords, o as pyKeywords, n as pythonSnippets };
|
|
16
8
|
|
|
17
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/pro/CodeEditor/langs/index.ts"],"sourcesContent":["// 语言配置统一导出\nexport * from './snippets';\nexport * from './javascript';\nexport * from './python';\n\nimport { jsKeywords, jsJumpableKeywords } from './javascript';\nimport { pyKeywords, pyJumpableKeywords } from './python';\n\n// 获取语言关键字\nexport const getLanguageKeywords = (language: string): string[] => {\n if (language.includes('python')) {\n return pyKeywords;\n }\n return jsKeywords;\n};\n\n// 获取可跳转关键字\nexport const getJumpableKeywords = (language: string): string[] => {\n if (language.includes('python')) {\n return pyJumpableKeywords;\n }\n return jsJumpableKeywords;\n};\n\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/pro/CodeEditor/langs/index.ts"],"sourcesContent":["// 语言配置统一导出\nexport * from './snippets';\nexport * from './javascript';\nexport * from './python';\n\nimport { jsKeywords, jsJumpableKeywords } from './javascript';\nimport { pyKeywords, pyJumpableKeywords } from './python';\n\n// 获取语言关键字\nexport const getLanguageKeywords = (language: string): string[] => {\n if (language.includes('python')) {\n return pyKeywords;\n }\n return jsKeywords;\n};\n\n// 获取可跳转关键字\nexport const getJumpableKeywords = (language: string): string[] => {\n if (language.includes('python')) {\n return pyJumpableKeywords;\n }\n return jsJumpableKeywords;\n};\n\n"],"mappings":";;;;AASA,IAAa,KAAuB,MAC9B,EAAS,SAAS,QAAQ,IACrB,IAEF,GAII,KAAuB,MAC9B,EAAS,SAAS,QAAQ,IACrB,IAEF"}
|
|
@@ -1,51 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"do",
|
|
11
|
-
"switch",
|
|
12
|
-
"case",
|
|
13
|
-
"break",
|
|
14
|
-
"continue",
|
|
15
|
-
"return",
|
|
16
|
-
"try",
|
|
17
|
-
"catch",
|
|
18
|
-
"finally",
|
|
19
|
-
"throw",
|
|
20
|
-
"class",
|
|
21
|
-
"extends",
|
|
22
|
-
"import",
|
|
23
|
-
"export",
|
|
24
|
-
"default",
|
|
25
|
-
"async",
|
|
26
|
-
"await",
|
|
27
|
-
"new",
|
|
28
|
-
"this",
|
|
29
|
-
"super",
|
|
30
|
-
"static",
|
|
31
|
-
"get",
|
|
32
|
-
"set",
|
|
33
|
-
"typeof",
|
|
34
|
-
"instanceof",
|
|
35
|
-
"in",
|
|
36
|
-
"of"
|
|
37
|
-
], e = [
|
|
38
|
-
"function",
|
|
39
|
-
"class",
|
|
40
|
-
"interface",
|
|
41
|
-
"type",
|
|
42
|
-
"const",
|
|
43
|
-
"let",
|
|
44
|
-
"var"
|
|
1
|
+
//#region src/components/pro/CodeEditor/langs/javascript.ts
|
|
2
|
+
var e = /* @__PURE__ */ "function.const.let.var.if.else.for.while.do.switch.case.break.continue.return.try.catch.finally.throw.class.extends.import.export.default.async.await.new.this.super.static.get.set.typeof.instanceof.in.of".split("."), t = [
|
|
3
|
+
"function",
|
|
4
|
+
"class",
|
|
5
|
+
"interface",
|
|
6
|
+
"type",
|
|
7
|
+
"const",
|
|
8
|
+
"let",
|
|
9
|
+
"var"
|
|
45
10
|
];
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
t as jsKeywords
|
|
49
|
-
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { t as jsJumpableKeywords, e as jsKeywords };
|
|
50
13
|
|
|
51
14
|
//# sourceMappingURL=javascript.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript.js","names":[],"sources":["../../../../../src/components/pro/CodeEditor/langs/javascript.ts"],"sourcesContent":["// JavaScript/TypeScript 语言配置\nexport const jsKeywords = [\n 'function', 'const', 'let', 'var', 'if', 'else', 'for', 'while', 'do', 'switch',\n 'case', 'break', 'continue', 'return', 'try', 'catch', 'finally', 'throw',\n 'class', 'extends', 'import', 'export', 'default', 'async', 'await', 'new',\n 'this', 'super', 'static', 'get', 'set', 'typeof', 'instanceof', 'in', 'of',\n];\n\n// 可跳转的关键字(函数、类、接口等定义)\nexport const jsJumpableKeywords = [\n 'function',\n 'class',\n 'interface',\n 'type',\n 'const',\n 'let',\n 'var',\n];\n\n// 定义模式\nexport const jsDefinitionPatterns = [\n { pattern: /(?:function|const|let|var)\\s+IDENTIFIER\\s*[
|
|
1
|
+
{"version":3,"file":"javascript.js","names":[],"sources":["../../../../../src/components/pro/CodeEditor/langs/javascript.ts"],"sourcesContent":["// JavaScript/TypeScript 语言配置\nexport const jsKeywords = [\n 'function', 'const', 'let', 'var', 'if', 'else', 'for', 'while', 'do', 'switch',\n 'case', 'break', 'continue', 'return', 'try', 'catch', 'finally', 'throw',\n 'class', 'extends', 'import', 'export', 'default', 'async', 'await', 'new',\n 'this', 'super', 'static', 'get', 'set', 'typeof', 'instanceof', 'in', 'of',\n];\n\n// 可跳转的关键字(函数、类、接口等定义)\nexport const jsJumpableKeywords = [\n 'function',\n 'class',\n 'interface',\n 'type',\n 'const',\n 'let',\n 'var',\n];\n\n// 定义模式\nexport const jsDefinitionPatterns = [\n { pattern: /(?:function|const|let|var)\\s+IDENTIFIER\\s*[=(]/ },\n { pattern: /class\\s+IDENTIFIER\\b/ },\n { pattern: /interface\\s+IDENTIFIER\\b/ },\n { pattern: /type\\s+IDENTIFIER\\b/ },\n];\n\n\n"],"mappings":";AACA,IAAa,IAAa,uOAK1B,GAGa,IAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
|
|
@@ -1,42 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
"elif",
|
|
6
|
-
"else",
|
|
7
|
-
"for",
|
|
8
|
-
"while",
|
|
9
|
-
"break",
|
|
10
|
-
"continue",
|
|
11
|
-
"return",
|
|
12
|
-
"try",
|
|
13
|
-
"except",
|
|
14
|
-
"finally",
|
|
15
|
-
"raise",
|
|
16
|
-
"import",
|
|
17
|
-
"from",
|
|
18
|
-
"as",
|
|
19
|
-
"with",
|
|
20
|
-
"pass",
|
|
21
|
-
"lambda",
|
|
22
|
-
"yield",
|
|
23
|
-
"async",
|
|
24
|
-
"await",
|
|
25
|
-
"assert",
|
|
26
|
-
"del",
|
|
27
|
-
"global",
|
|
28
|
-
"nonlocal",
|
|
29
|
-
"True",
|
|
30
|
-
"False",
|
|
31
|
-
"None",
|
|
32
|
-
"and",
|
|
33
|
-
"or",
|
|
34
|
-
"not",
|
|
35
|
-
"is"
|
|
36
|
-
], a = ["def", "class"];
|
|
37
|
-
export {
|
|
38
|
-
a as pyJumpableKeywords,
|
|
39
|
-
e as pyKeywords
|
|
40
|
-
};
|
|
1
|
+
//#region src/components/pro/CodeEditor/langs/python.ts
|
|
2
|
+
var e = /* @__PURE__ */ "def.class.if.elif.else.for.while.break.continue.return.try.except.finally.raise.import.from.as.with.pass.lambda.yield.async.await.assert.del.global.nonlocal.True.False.None.and.or.not.is".split("."), t = ["def", "class"];
|
|
3
|
+
//#endregion
|
|
4
|
+
export { t as pyJumpableKeywords, e as pyKeywords };
|
|
41
5
|
|
|
42
6
|
//# sourceMappingURL=python.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.js","names":[],"sources":["../../../../../src/components/pro/CodeEditor/langs/python.ts"],"sourcesContent":["// Python 语言配置\nexport const pyKeywords = [\n 'def', 'class', 'if', 'elif', 'else', 'for', 'while', 'break', 'continue',\n 'return', 'try', 'except', 'finally', 'raise', 'import', 'from', 'as',\n 'with', 'pass', 'lambda', 'yield', 'async', 'await', 'assert', 'del',\n 'global', 'nonlocal', 'True', 'False', 'None', 'and', 'or', 'not', 'is',\n];\n\n// 可跳转的关键字\nexport const pyJumpableKeywords = [\n 'def',\n 'class',\n];\n\n// 定义模式\nexport const pyDefinitionPatterns = [\n { pattern: /def\\s+IDENTIFIER\\s*\\(/ },\n { pattern: /class\\s+IDENTIFIER\\b/ },\n];\n\n\n"],"mappings":"AACA,IAAa,IAAa
|
|
1
|
+
{"version":3,"file":"python.js","names":[],"sources":["../../../../../src/components/pro/CodeEditor/langs/python.ts"],"sourcesContent":["// Python 语言配置\nexport const pyKeywords = [\n 'def', 'class', 'if', 'elif', 'else', 'for', 'while', 'break', 'continue',\n 'return', 'try', 'except', 'finally', 'raise', 'import', 'from', 'as',\n 'with', 'pass', 'lambda', 'yield', 'async', 'await', 'assert', 'del',\n 'global', 'nonlocal', 'True', 'False', 'None', 'and', 'or', 'not', 'is',\n];\n\n// 可跳转的关键字\nexport const pyJumpableKeywords = [\n 'def',\n 'class',\n];\n\n// 定义模式\nexport const pyDefinitionPatterns = [\n { pattern: /def\\s+IDENTIFIER\\s*\\(/ },\n { pattern: /class\\s+IDENTIFIER\\b/ },\n];\n\n\n"],"mappings":";AACA,IAAa,IAAa,sNAK1B,GAGa,IAAqB,CAChC,OACA,OACF"}
|