@tmagic/editor 1.8.0-beta.2 → 1.8.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +43 -9
- package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +8 -4
- package/dist/es/components/CodeParams.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +22 -98
- package/dist/es/components/ContentMenu.vue_vue_type_script_setup_true_lang.js +32 -9
- package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +68 -17
- package/dist/es/components/Icon.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/Resizer.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/ScrollBar.js +0 -1
- package/dist/es/components/ScrollBar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/ScrollViewer.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/SearchInput.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/SplitView.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/ToolButton.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/es/components/Tree.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/TreeNode.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/ViewForm.js +5 -0
- package/dist/es/components/ViewForm.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/es/editorProps.js +9 -1
- package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +16 -5
- package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +81 -44
- package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +10 -3
- package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +7 -19
- package/dist/es/fields/DataSourceFieldSelect/FieldSelect.vue_vue_type_script_setup_true_lang.js +13 -6
- package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +11 -8
- package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +39 -12
- package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +11 -20
- package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +11 -6
- package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +30 -14
- package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +11 -4
- package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +38 -6
- package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +151 -153
- package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/es/fields/PageFragmentSelect.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +8 -10
- package/dist/es/fields/StyleSetter/components/BackgroundPosition.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +28 -6
- package/dist/es/fields/StyleSetter/components/Box.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/StyleSetter/icons/align-items/Center.js +31 -0
- package/dist/es/fields/StyleSetter/icons/align-items/FlexEnd.js +31 -0
- package/dist/es/fields/StyleSetter/icons/align-items/FlexStart.js +31 -0
- package/dist/es/fields/StyleSetter/icons/align-items/SpaceAround.js +50 -0
- package/dist/es/fields/StyleSetter/icons/align-items/SpaceBetween.js +50 -0
- package/dist/es/fields/StyleSetter/icons/background-repeat/NoRepeat.js +7 -7
- package/dist/es/fields/StyleSetter/icons/background-repeat/Repeat.js +6 -3
- package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatX.js +29 -6
- package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatY.js +32 -6
- package/dist/es/fields/StyleSetter/icons/display/Block.js +1 -1
- package/dist/es/fields/StyleSetter/icons/display/Flex.js +1 -1
- package/dist/es/fields/StyleSetter/icons/display/Inline.js +1 -1
- package/dist/es/fields/StyleSetter/icons/display/InlineBlock.js +1 -1
- package/dist/es/fields/StyleSetter/icons/display/None.js +1 -1
- package/dist/es/fields/StyleSetter/icons/flex-direction/Column.js +11 -3
- package/dist/es/fields/StyleSetter/icons/flex-direction/ColumnReverse.js +11 -3
- package/dist/es/fields/StyleSetter/icons/flex-direction/Row.js +11 -3
- package/dist/es/fields/StyleSetter/icons/flex-direction/RowReverse.js +11 -3
- package/dist/es/fields/StyleSetter/icons/justify-content/Center.js +17 -3
- package/dist/es/fields/StyleSetter/icons/justify-content/FlexEnd.js +19 -3
- package/dist/es/fields/StyleSetter/icons/justify-content/FlexStart.js +19 -3
- package/dist/es/fields/StyleSetter/icons/justify-content/SpaceAround.js +37 -3
- package/dist/es/fields/StyleSetter/icons/justify-content/SpaceBetween.js +33 -3
- package/dist/es/fields/StyleSetter/icons/text-align/Center.js +1 -1
- package/dist/es/fields/StyleSetter/icons/text-align/Left.js +1 -1
- package/dist/es/fields/StyleSetter/icons/text-align/Right.js +1 -1
- package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +56 -30
- package/dist/es/fields/StyleSetter/pro/Border.vue_vue_type_script_setup_true_lang.js +7 -4
- package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +35 -26
- package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +76 -48
- package/dist/es/fields/StyleSetter/pro/Position.vue_vue_type_script_setup_true_lang.js +29 -23
- package/dist/es/fields/StyleSetter/pro/Transform.vue_vue_type_script_setup_true_lang.js +7 -4
- package/dist/es/fields/UISelect.js +0 -1
- package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/es/hooks/use-code-block-edit.js +6 -3
- package/dist/es/hooks/use-compare-form.js +119 -0
- package/dist/es/hooks/use-data-source-edit.js +5 -2
- package/dist/es/hooks/use-stage.js +9 -4
- package/dist/es/icons/CenterIcon.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/icons/CodeIcon.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/icons/DatasourceIcon.js +17 -0
- package/dist/es/icons/FolderMinusIcon.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/index.js +24 -10
- package/dist/es/initService.js +19 -13
- package/dist/es/layouts/AddPageBox.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/CodeEditor.vue_vue_type_script_setup_true_lang.js +24 -12
- package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +25 -18
- package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/es/layouts/NavMenuColumn.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/history-list/Bucket.vue_vue_type_script_setup_true_lang.js +25 -38
- package/dist/es/layouts/history-list/BucketTab.js +5 -0
- package/dist/es/layouts/history-list/BucketTab.vue_vue_type_script_setup_true_lang.js +62 -0
- package/dist/es/layouts/history-list/GroupRow.vue_vue_type_script_setup_true_lang.js +177 -88
- package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +139 -37
- package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +164 -107
- package/dist/es/layouts/history-list/InitialRow.vue_vue_type_script_setup_true_lang.js +44 -9
- package/dist/es/layouts/history-list/PageTab.vue_vue_type_script_setup_true_lang.js +49 -53
- package/dist/es/layouts/history-list/composables.js +138 -108
- package/dist/es/layouts/history-list/useHistoryList.js +56 -0
- package/dist/es/layouts/history-list/useHistoryRevert.js +317 -0
- package/dist/es/layouts/page-bar/AddButton.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/page-bar/PageBar.vue_vue_type_script_setup_true_lang.js +5 -3
- package/dist/es/layouts/page-bar/PageBarScrollContainer.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/page-bar/PageList.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/page-bar/Search.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/layouts/props-panel/FormPanel.vue_vue_type_script_setup_true_lang.js +50 -7
- package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +33 -13
- package/dist/es/layouts/props-panel/use-style-panel.js +3 -2
- package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +26 -38
- package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/es/layouts/sidebar/code-block/useContentMenu.js +19 -4
- package/dist/es/layouts/sidebar/data-source/DataSourceAddButton.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.vue_vue_type_script_setup_true_lang.js +23 -6
- package/dist/es/layouts/sidebar/data-source/DataSourceList.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +27 -5
- package/dist/es/layouts/sidebar/data-source/useContentMenu.js +19 -4
- package/dist/es/layouts/sidebar/layer/LayerMenu.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/es/layouts/sidebar/layer/LayerNodeContent.js +5 -0
- package/dist/es/layouts/sidebar/layer/LayerNodeContent.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/es/layouts/sidebar/layer/LayerNodeTool.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/layouts/sidebar/layer/LayerPanel.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/es/layouts/sidebar/layer/use-click.js +3 -3
- package/dist/es/layouts/sidebar/layer/use-node-status.js +2 -2
- package/dist/es/layouts/workspace/Breadcrumb.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/workspace/Workspace.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/workspace/viewer/NodeListMenu.vue_vue_type_script_setup_true_lang.js +9 -3
- package/dist/es/layouts/workspace/viewer/Stage.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/layouts/workspace/viewer/StageOverlay.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/workspace/viewer/ViewerMenu.vue_vue_type_script_setup_true_lang.js +16 -16
- package/dist/es/plugin.js +5 -2
- package/dist/es/services/codeBlock.js +137 -56
- package/dist/es/services/dataSource.js +122 -52
- package/dist/es/services/dep.js +162 -41
- package/dist/es/services/editor.js +613 -179
- package/dist/es/services/history.js +350 -386
- package/dist/es/services/keybinding.js +6 -6
- package/dist/es/services/props.js +3 -2
- package/dist/es/services/storage.js +2 -2
- package/dist/es/services/ui.js +10 -2
- package/dist/es/style.css +549 -113
- package/dist/es/utils/config.js +4 -1
- package/dist/es/utils/const.js +2 -2
- package/dist/es/utils/content-menu.js +19 -11
- package/dist/es/utils/data-source/index.js +34 -11
- package/dist/es/utils/dep/collect-worker-client.js +114 -0
- package/dist/es/utils/dep/idle-task.js +47 -22
- package/dist/es/utils/dep/worker.js +1 -1
- package/dist/es/utils/editor.js +103 -49
- package/dist/es/utils/event.js +123 -0
- package/dist/es/utils/history.js +220 -0
- package/dist/es/utils/indexed-db.js +86 -0
- package/dist/es/utils/monaco-editor.js +22 -6
- package/dist/es/utils/operator.js +2 -2
- package/dist/es/utils/props.js +114 -33
- package/dist/es/utils/type-match-rules.js +367 -0
- package/dist/es/utils/undo-redo.js +60 -1
- package/dist/style.css +549 -113
- package/dist/themes/magic-admin.css +3028 -0
- package/dist/tmagic-editor.umd.cjs +14273 -10029
- package/package.json +8 -8
- package/src/Editor.vue +43 -2
- package/src/components/CodeBlockEditor.vue +3 -0
- package/src/components/CompareForm.vue +18 -146
- package/src/components/ContentMenu.vue +44 -8
- package/src/components/FloatingBox.vue +84 -9
- package/src/components/ScrollBar.vue +0 -67
- package/src/components/ToolButton.vue +2 -2
- package/src/components/ViewForm.vue +55 -0
- package/src/editorProps.ts +30 -0
- package/src/fields/Code.vue +10 -2
- package/src/fields/CodeLink.vue +2 -5
- package/src/fields/CodeSelect.vue +54 -40
- package/src/fields/CodeSelectCol.vue +8 -1
- package/src/fields/CondOpSelect.vue +2 -24
- package/src/fields/DataSourceFieldSelect/FieldSelect.vue +16 -2
- package/src/fields/DataSourceFieldSelect/Index.vue +14 -5
- package/src/fields/DataSourceFields.vue +42 -8
- package/src/fields/DataSourceInput.vue +10 -28
- package/src/fields/DataSourceMethodSelect.vue +9 -4
- package/src/fields/DataSourceMethods.vue +42 -21
- package/src/fields/DataSourceMocks.vue +3 -0
- package/src/fields/DisplayConds.vue +18 -1
- package/src/fields/EventSelect.vue +145 -161
- package/src/fields/StyleSetter/Index.vue +3 -12
- package/src/fields/StyleSetter/components/Border.vue +15 -6
- package/src/fields/StyleSetter/icons/align-items/Center.vue +19 -0
- package/src/fields/StyleSetter/icons/align-items/FlexEnd.vue +19 -0
- package/src/fields/StyleSetter/icons/align-items/FlexStart.vue +19 -0
- package/src/fields/StyleSetter/icons/align-items/SpaceAround.vue +34 -0
- package/src/fields/StyleSetter/icons/align-items/SpaceBetween.vue +34 -0
- package/src/fields/StyleSetter/icons/align-items/index.ts +5 -0
- package/src/fields/StyleSetter/icons/background-repeat/NoRepeat.vue +20 -4
- package/src/fields/StyleSetter/icons/background-repeat/Repeat.vue +10 -28
- package/src/fields/StyleSetter/icons/background-repeat/RepeatX.vue +4 -5
- package/src/fields/StyleSetter/icons/background-repeat/RepeatY.vue +4 -5
- package/src/fields/StyleSetter/icons/flex-direction/Column.vue +4 -3
- package/src/fields/StyleSetter/icons/flex-direction/ColumnReverse.vue +4 -3
- package/src/fields/StyleSetter/icons/flex-direction/Row.vue +4 -3
- package/src/fields/StyleSetter/icons/flex-direction/RowReverse.vue +4 -3
- package/src/fields/StyleSetter/icons/justify-content/Center.vue +5 -2
- package/src/fields/StyleSetter/icons/justify-content/FlexEnd.vue +15 -2
- package/src/fields/StyleSetter/icons/justify-content/FlexStart.vue +15 -2
- package/src/fields/StyleSetter/icons/justify-content/SpaceAround.vue +28 -3
- package/src/fields/StyleSetter/icons/justify-content/SpaceBetween.vue +28 -2
- package/src/fields/StyleSetter/pro/Background.vue +99 -55
- package/src/fields/StyleSetter/pro/Border.vue +9 -11
- package/src/fields/StyleSetter/pro/Font.vue +66 -64
- package/src/fields/StyleSetter/pro/Layout.vue +211 -139
- package/src/fields/StyleSetter/pro/Position.vue +69 -67
- package/src/fields/StyleSetter/pro/Transform.vue +23 -25
- package/src/fields/UISelect.vue +0 -12
- package/src/hooks/index.ts +1 -0
- package/src/hooks/use-code-block-edit.ts +4 -3
- package/src/hooks/use-compare-form.ts +187 -0
- package/src/hooks/use-data-source-edit.ts +2 -2
- package/src/hooks/use-stage.ts +5 -3
- package/src/icons/DatasourceIcon.vue +7 -0
- package/src/index.ts +12 -0
- package/src/initService.ts +26 -16
- package/src/layouts/CodeEditor.vue +34 -11
- package/src/layouts/Framework.vue +15 -8
- package/src/layouts/NavMenu.vue +3 -3
- package/src/layouts/history-list/Bucket.vue +33 -41
- package/src/layouts/history-list/BucketTab.vue +72 -0
- package/src/layouts/history-list/GroupRow.vue +190 -93
- package/src/layouts/history-list/HistoryDiffDialog.vue +169 -90
- package/src/layouts/history-list/HistoryListPanel.vue +191 -95
- package/src/layouts/history-list/InitialRow.vue +38 -8
- package/src/layouts/history-list/PageTab.vue +67 -43
- package/src/layouts/history-list/composables.ts +239 -125
- package/src/layouts/history-list/useHistoryList.ts +60 -0
- package/src/layouts/history-list/useHistoryRevert.ts +425 -0
- package/src/layouts/page-bar/PageBar.vue +4 -2
- package/src/layouts/props-panel/FormPanel.vue +72 -6
- package/src/layouts/props-panel/PropsPanel.vue +62 -18
- package/src/layouts/props-panel/use-style-panel.ts +4 -3
- package/src/layouts/sidebar/ComponentListPanel.vue +10 -6
- package/src/layouts/sidebar/Sidebar.vue +13 -6
- package/src/layouts/sidebar/code-block/CodeBlockList.vue +5 -5
- package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +5 -2
- package/src/layouts/sidebar/code-block/useContentMenu.ts +14 -2
- package/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue +34 -2
- package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +29 -4
- package/src/layouts/sidebar/data-source/useContentMenu.ts +14 -2
- package/src/layouts/sidebar/layer/LayerMenu.vue +21 -13
- package/src/layouts/sidebar/layer/LayerNodeContent.vue +57 -0
- package/src/layouts/sidebar/layer/LayerNodeTool.vue +7 -4
- package/src/layouts/sidebar/layer/LayerPanel.vue +4 -1
- package/src/layouts/sidebar/layer/use-click.ts +3 -3
- package/src/layouts/sidebar/layer/use-node-status.ts +2 -2
- package/src/layouts/workspace/viewer/NodeListMenu.vue +4 -1
- package/src/layouts/workspace/viewer/Stage.vue +1 -1
- package/src/layouts/workspace/viewer/ViewerMenu.vue +15 -15
- package/src/plugin.ts +6 -3
- package/src/services/codeBlock.ts +152 -47
- package/src/services/dataSource.ts +120 -41
- package/src/services/dep.ts +292 -47
- package/src/services/editor.ts +820 -224
- package/src/services/history.ts +449 -412
- package/src/services/keybinding.ts +6 -6
- package/src/services/ui.ts +33 -5
- package/src/theme/code-block.scss +37 -0
- package/src/theme/common/var.scss +1 -1
- package/src/theme/component-list-panel.scss +2 -2
- package/src/theme/data-source-field.scss +4 -0
- package/src/theme/display-conds.scss +11 -0
- package/src/theme/event.scss +70 -1
- package/src/theme/floating-box.scss +9 -1
- package/src/theme/framework.scss +4 -1
- package/src/theme/history-list-panel.scss +157 -23
- package/src/theme/layer-node-content.scss +14 -0
- package/src/theme/nav-menu.scss +5 -1
- package/src/theme/page-bar.scss +0 -4
- package/src/theme/props-panel.scss +5 -4
- package/src/theme/scroll-bar.scss +64 -0
- package/src/theme/style-setter/border.scss +17 -5
- package/src/theme/theme.scss +4 -0
- package/src/theme/themes/magic-admin/index.scss +214 -0
- package/src/theme/ui-select.scss +9 -0
- package/src/type.ts +668 -124
- package/src/utils/config.ts +9 -1
- package/src/utils/const.ts +3 -2
- package/src/utils/content-menu.ts +20 -11
- package/src/utils/data-source/index.ts +32 -12
- package/src/utils/dep/collect-worker-client.ts +149 -0
- package/src/utils/dep/idle-task.ts +72 -35
- package/src/utils/dep/worker.ts +113 -9
- package/src/utils/editor.ts +166 -60
- package/src/utils/event.ts +224 -0
- package/src/utils/history.ts +286 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/indexed-db.ts +122 -0
- package/src/utils/monaco-editor.ts +27 -0
- package/src/utils/operator.ts +2 -2
- package/src/utils/props.ts +114 -11
- package/src/utils/type-match-rules.ts +684 -0
- package/src/utils/undo-redo.ts +88 -0
- package/types/index.d.ts +1979 -515
- package/dist/es/layouts/history-list/CodeBlockTab.js +0 -5
- package/dist/es/layouts/history-list/CodeBlockTab.vue_vue_type_script_setup_true_lang.js +0 -62
- package/dist/es/layouts/history-list/DataSourceTab.js +0 -5
- package/dist/es/layouts/history-list/DataSourceTab.vue_vue_type_script_setup_true_lang.js +0 -62
- package/src/layouts/history-list/CodeBlockTab.vue +0 -61
- package/src/layouts/history-list/DataSourceTab.vue +0 -61
|
@@ -4,7 +4,7 @@ import AddButton_default from "./AddButton.js";
|
|
|
4
4
|
import PageBarScrollContainer_default from "./PageBarScrollContainer.js";
|
|
5
5
|
import PageList_default from "./PageList.js";
|
|
6
6
|
import Search_default from "./Search.js";
|
|
7
|
-
import { TMagicIcon, TMagicPopover } from "@tmagic/design";
|
|
7
|
+
import { TMagicIcon, TMagicPopover, tMagicMessageBox } from "@tmagic/design";
|
|
8
8
|
import { NodeType } from "@tmagic/core";
|
|
9
9
|
import { Fragment, computed, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useTemplateRef, watch, withCtx } from "vue";
|
|
10
10
|
import { CaretBottom, Delete, DocumentCopy } from "@element-plus/icons-vue";
|
|
@@ -13,7 +13,7 @@ var _hoisted_1 = { class: "m-editor-page-bar-tabs" };
|
|
|
13
13
|
var _hoisted_2 = ["data-page-id", "onClick"];
|
|
14
14
|
var _hoisted_3 = { class: "m-editor-page-bar-title" };
|
|
15
15
|
var _hoisted_4 = ["title"];
|
|
16
|
-
var PageBar_vue_vue_type_script_setup_true_lang_default =
|
|
16
|
+
var PageBar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
17
17
|
name: "MEditorPageBar",
|
|
18
18
|
__name: "PageBar",
|
|
19
19
|
props: {
|
|
@@ -54,7 +54,8 @@ var PageBar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
54
54
|
top: 0
|
|
55
55
|
});
|
|
56
56
|
};
|
|
57
|
-
const remove = (node) => {
|
|
57
|
+
const remove = async (node) => {
|
|
58
|
+
await tMagicMessageBox.confirm("确定删除该页面吗?");
|
|
58
59
|
editorService.remove(node);
|
|
59
60
|
};
|
|
60
61
|
const pageBarScrollContainerRef = useTemplateRef("pageBarScrollContainer");
|
|
@@ -121,6 +122,7 @@ var PageBar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
121
122
|
type: "button",
|
|
122
123
|
text: "删除",
|
|
123
124
|
icon: unref(Delete),
|
|
125
|
+
buttonProps: { type: "danger" },
|
|
124
126
|
handler: () => remove(item)
|
|
125
127
|
} }, null, 8, ["data"])])])]),
|
|
126
128
|
_: 2
|
package/dist/es/layouts/page-bar/PageBarScrollContainer.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -13,7 +13,7 @@ var _hoisted_2 = {
|
|
|
13
13
|
class: "m-editor-page-bar-items",
|
|
14
14
|
ref: "itemsContainer"
|
|
15
15
|
};
|
|
16
|
-
var PageBarScrollContainer_vue_vue_type_script_setup_true_lang_default =
|
|
16
|
+
var PageBarScrollContainer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
17
17
|
name: "MEditorPageBarScrollContainer",
|
|
18
18
|
__name: "PageBarScrollContainer",
|
|
19
19
|
props: {
|
|
@@ -11,7 +11,7 @@ var _hoisted_1 = {
|
|
|
11
11
|
};
|
|
12
12
|
var _hoisted_2 = { class: "page-bar-popover-wrapper" };
|
|
13
13
|
var _hoisted_3 = { class: "page-bar-popover-inner" };
|
|
14
|
-
var PageList_vue_vue_type_script_setup_true_lang_default =
|
|
14
|
+
var PageList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
15
15
|
name: "MEditorPageList",
|
|
16
16
|
__name: "PageList",
|
|
17
17
|
props: { list: {} },
|
|
@@ -5,13 +5,13 @@ import { Teleport, createBlock, createCommentVNode, createElementBlock, createVN
|
|
|
5
5
|
import { Search } from "@element-plus/icons-vue";
|
|
6
6
|
//#region packages/editor/src/layouts/page-bar/Search.vue?vue&type=script&setup=true&lang.ts
|
|
7
7
|
var _hoisted_1 = { class: "m-editor-page-bar-item m-editor-page-bar-item-icon m-editor-page-bar-search" };
|
|
8
|
-
var Search_vue_vue_type_script_setup_true_lang_default =
|
|
8
|
+
var Search_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
9
9
|
__name: "Search",
|
|
10
10
|
props: {
|
|
11
11
|
"query": {},
|
|
12
12
|
"queryModifiers": {}
|
|
13
13
|
},
|
|
14
|
-
emits:
|
|
14
|
+
emits: /*@__PURE__*/ mergeModels(["search"], ["update:query"]),
|
|
15
15
|
setup(__props, { emit: __emit }) {
|
|
16
16
|
const emit = __emit;
|
|
17
17
|
const query = useModel(__props, "query");
|
|
@@ -2,13 +2,15 @@ import { useServices } from "../../hooks/use-services.js";
|
|
|
2
2
|
import { useEditorContentHeight } from "../../hooks/use-editor-content-height.js";
|
|
3
3
|
import Icon_default from "../../components/Icon.js";
|
|
4
4
|
import CodeEditor_default from "../CodeEditor.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { ENABLE_PROPS_FORM_VALIDATE } from "../../editorProps.js";
|
|
6
|
+
import { MForm, validateForm } from "@tmagic/form";
|
|
7
|
+
import { TMagicButton, TMagicScrollbar, tMagicMessage } from "@tmagic/design";
|
|
8
|
+
import { filterXSS } from "@tmagic/utils";
|
|
7
9
|
import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, getCurrentInstance, inject, normalizeClass, onMounted, onUnmounted, openBlock, ref, renderSlot, unref, useTemplateRef, watchEffect, withCtx } from "vue";
|
|
8
10
|
import { Document } from "@element-plus/icons-vue";
|
|
9
11
|
//#region packages/editor/src/layouts/props-panel/FormPanel.vue?vue&type=script&setup=true&lang.ts
|
|
10
12
|
var _hoisted_1 = { class: "m-editor-props-form-panel" };
|
|
11
|
-
var FormPanel_vue_vue_type_script_setup_true_lang_default =
|
|
13
|
+
var FormPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
12
14
|
name: "MEditorFormPanel",
|
|
13
15
|
__name: "FormPanel",
|
|
14
16
|
props: {
|
|
@@ -30,6 +32,7 @@ var FormPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
30
32
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
31
33
|
const props = __props;
|
|
32
34
|
const emit = __emit;
|
|
35
|
+
const enablePropsFormValidate = inject(ENABLE_PROPS_FORM_VALIDATE, false);
|
|
33
36
|
const services = useServices();
|
|
34
37
|
const { editorService, uiService } = services;
|
|
35
38
|
const codeOptions = inject("codeOptions", {});
|
|
@@ -53,16 +56,54 @@ var FormPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
53
56
|
});
|
|
54
57
|
const submit = async (v, eventData) => {
|
|
55
58
|
try {
|
|
56
|
-
|
|
59
|
+
const values = await configFormRef.value?.submitForm();
|
|
60
|
+
emit("submit", values, eventData);
|
|
57
61
|
} catch (e) {
|
|
58
|
-
emit("submit
|
|
62
|
+
if (enablePropsFormValidate) emit("submit", v, eventData, e);
|
|
63
|
+
else emit("submit-error", e);
|
|
59
64
|
}
|
|
60
65
|
};
|
|
61
66
|
const errorHandler = (e) => {
|
|
62
67
|
emit("form-error", e);
|
|
63
68
|
};
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
/**
|
|
70
|
+
* 将校验错误文案安全地转为用于弹窗展示的 HTML。
|
|
71
|
+
*
|
|
72
|
+
* 文案形如 `字段 -> 主文案\n\n建议`,多条以结构性 `<br>` 拼接。为在保留换行排版的同时
|
|
73
|
+
* 避免 `${value}`/字段名中可能夹带的 HTML 造成 XSS:先按结构性 `<br>` 拆分,对每段做 HTML
|
|
74
|
+
* 转义后再把段内换行 `\n` 替换为 `<br>`,最后用 `<br>` 拼回。
|
|
75
|
+
*/
|
|
76
|
+
const formatValidateErrorHtml = (error) => error.split(/<br\s*\/?>/i).map((segment) => filterXSS(segment).replaceAll("\n", "<br>")).join("<br>");
|
|
77
|
+
const saveCode = async (values) => {
|
|
78
|
+
const newValues = props.codeValueKey ? { [props.codeValueKey]: values } : values;
|
|
79
|
+
if (!enablePropsFormValidate) {
|
|
80
|
+
emit("submit", newValues);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
const error = await validateForm({
|
|
85
|
+
config: props.config,
|
|
86
|
+
typeMatchValid: true,
|
|
87
|
+
initValues: newValues,
|
|
88
|
+
appContext: internalInstance?.appContext ? {
|
|
89
|
+
...internalInstance?.appContext,
|
|
90
|
+
provides: { services }
|
|
91
|
+
} : null,
|
|
92
|
+
extendState: (state) => {
|
|
93
|
+
if (configFormRef.value?.formState) return { ...configFormRef.value?.formState || {} };
|
|
94
|
+
return props.extendState?.(state) || {};
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
if (error) tMagicMessage({
|
|
98
|
+
type: "error",
|
|
99
|
+
message: formatValidateErrorHtml(error),
|
|
100
|
+
dangerouslyUseHTMLString: true
|
|
101
|
+
});
|
|
102
|
+
emit("submit", newValues, void 0, error ? new Error(error) : void 0);
|
|
103
|
+
} catch (e) {
|
|
104
|
+
console.log("validateForm error", e);
|
|
105
|
+
emit("submit", newValues);
|
|
106
|
+
}
|
|
66
107
|
};
|
|
67
108
|
__expose({
|
|
68
109
|
configForm: configFormRef,
|
|
@@ -81,7 +122,9 @@ var FormPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
81
122
|
size: propsPanelSize.value,
|
|
82
123
|
"init-values": __props.values,
|
|
83
124
|
config: __props.config,
|
|
125
|
+
"type-match-valid": true,
|
|
84
126
|
"extend-state": __props.extendState,
|
|
127
|
+
"validate-on-init": true,
|
|
85
128
|
onChange: submit,
|
|
86
129
|
onError: errorHandler
|
|
87
130
|
}, null, 8, [
|
|
@@ -4,11 +4,12 @@ import { PROPS_PANEL_WIDTH_STORAGE_KEY } from "../../utils/const.js";
|
|
|
4
4
|
import { useServices } from "../../hooks/use-services.js";
|
|
5
5
|
import Resizer_default from "../../components/Resizer.js";
|
|
6
6
|
import Icon_default from "../../components/Icon.js";
|
|
7
|
+
import { ENABLE_PROPS_FORM_VALIDATE } from "../../editorProps.js";
|
|
7
8
|
import FormPanel_default from "./FormPanel.js";
|
|
8
9
|
import { useStylePanel } from "./use-style-panel.js";
|
|
9
10
|
import { TMagicButton } from "@tmagic/design";
|
|
10
11
|
import { setValueByKeyPath } from "@tmagic/utils";
|
|
11
|
-
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, unref, useTemplateRef, vShow, watch, watchEffect, withCtx, withDirectives } from "vue";
|
|
12
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, unref, useTemplateRef, vShow, watch, watchEffect, withCtx, withDirectives } from "vue";
|
|
12
13
|
import { Close, Sugar } from "@element-plus/icons-vue";
|
|
13
14
|
//#region packages/editor/src/layouts/props-panel/PropsPanel.vue?vue&type=script&setup=true&lang.ts
|
|
14
15
|
var _hoisted_1 = {
|
|
@@ -16,7 +17,7 @@ var _hoisted_1 = {
|
|
|
16
17
|
class: "m-editor-props-panel"
|
|
17
18
|
};
|
|
18
19
|
var _hoisted_2 = { class: "m-editor-props-style-panel-title" };
|
|
19
|
-
var PropsPanel_vue_vue_type_script_setup_true_lang_default =
|
|
20
|
+
var PropsPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
20
21
|
name: "MEditorPropsPanel",
|
|
21
22
|
__name: "PropsPanel",
|
|
22
23
|
props: {
|
|
@@ -32,6 +33,7 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
32
33
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
33
34
|
const emit = __emit;
|
|
34
35
|
const { editorService, uiService, propsService, storageService } = useServices();
|
|
36
|
+
const enablePropsFormValidate = inject(ENABLE_PROPS_FORM_VALIDATE, false);
|
|
35
37
|
const values = ref({});
|
|
36
38
|
const curFormConfig = ref([]);
|
|
37
39
|
const node = computed(() => editorService.get("node"));
|
|
@@ -40,36 +42,54 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
40
42
|
tabPosition: "right",
|
|
41
43
|
items: styleTabConfig.items
|
|
42
44
|
}];
|
|
45
|
+
let initSeq = 0;
|
|
46
|
+
let mounted = true;
|
|
43
47
|
const init = async () => {
|
|
48
|
+
initSeq += 1;
|
|
49
|
+
const seq = initSeq;
|
|
44
50
|
if (!node.value) {
|
|
51
|
+
if (seq !== initSeq || !mounted) return;
|
|
45
52
|
curFormConfig.value = [];
|
|
46
53
|
return;
|
|
47
54
|
}
|
|
48
55
|
const type = node.value.type || (node.value.items ? "container" : "text");
|
|
49
|
-
|
|
56
|
+
const config = await propsService.getPropsConfig(type, { node: node.value });
|
|
57
|
+
if (seq !== initSeq || !mounted) return;
|
|
58
|
+
if (!node.value) return;
|
|
59
|
+
curFormConfig.value = config;
|
|
50
60
|
values.value = node.value;
|
|
51
61
|
};
|
|
52
62
|
watchEffect(init);
|
|
53
63
|
propsService.on("props-configs-change", init);
|
|
54
64
|
onBeforeUnmount(() => {
|
|
65
|
+
mounted = false;
|
|
55
66
|
propsService.off("props-configs-change", init);
|
|
56
67
|
});
|
|
57
|
-
const submit = async (v, eventData) => {
|
|
68
|
+
const submit = async (v, eventData, error, source = "props") => {
|
|
58
69
|
try {
|
|
59
70
|
if (!v.id) v.id = values.value.id;
|
|
60
71
|
const newValue = {
|
|
61
72
|
...v,
|
|
62
73
|
style: {}
|
|
63
74
|
};
|
|
64
|
-
if (v.style) {
|
|
75
|
+
if (v.style) if (eventData) {
|
|
65
76
|
Object.entries(v.style).forEach(([key, value]) => {
|
|
66
77
|
if (value !== "" && newValue.style) newValue.style[key] = value;
|
|
67
78
|
});
|
|
68
|
-
eventData
|
|
79
|
+
eventData.changeRecords?.forEach((record) => {
|
|
69
80
|
if (record.propPath?.startsWith("style") && record.value === "") setValueByKeyPath(record.propPath, record.value, newValue);
|
|
70
81
|
});
|
|
71
|
-
}
|
|
72
|
-
|
|
82
|
+
} else newValue.style = { ...v.style };
|
|
83
|
+
const historySource = eventData ? "props" : "code";
|
|
84
|
+
editorService.update(newValue, {
|
|
85
|
+
changeRecords: eventData?.changeRecords,
|
|
86
|
+
historySource,
|
|
87
|
+
...enablePropsFormValidate && error ? { invalidInfo: {
|
|
88
|
+
id: newValue.id,
|
|
89
|
+
source,
|
|
90
|
+
error: error?.message
|
|
91
|
+
} } : {}
|
|
92
|
+
});
|
|
73
93
|
} catch (e) {
|
|
74
94
|
emit("submit-error", e);
|
|
75
95
|
}
|
|
@@ -119,7 +139,7 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
119
139
|
values: values.value,
|
|
120
140
|
disabledShowSrc: __props.disabledShowSrc,
|
|
121
141
|
extendState: __props.extendState,
|
|
122
|
-
onSubmit: submit,
|
|
142
|
+
onSubmit: _cache[0] || (_cache[0] = (v, eventData, error) => submit(v, eventData, error, "props")),
|
|
123
143
|
onSubmitError: errorHandler,
|
|
124
144
|
onFormError: errorHandler,
|
|
125
145
|
onMounted: mountedHandler,
|
|
@@ -144,14 +164,14 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
144
164
|
values: values.value,
|
|
145
165
|
disabledShowSrc: __props.disabledShowSrc,
|
|
146
166
|
extendState: __props.extendState,
|
|
147
|
-
onSubmit: submit,
|
|
167
|
+
onSubmit: _cache[2] || (_cache[2] = (v, eventData, error) => submit(v, eventData, error, "style")),
|
|
148
168
|
onSubmitError: errorHandler,
|
|
149
169
|
onFormError: errorHandler
|
|
150
170
|
}, {
|
|
151
|
-
"props-form-panel-header": withCtx(() => [createElementVNode("div", _hoisted_2, [_cache[
|
|
171
|
+
"props-form-panel-header": withCtx(() => [createElementVNode("div", _hoisted_2, [_cache[4] || (_cache[4] = createElementVNode("span", null, "样式", -1)), createElementVNode("div", null, [createVNode(unref(TMagicButton), {
|
|
152
172
|
link: "",
|
|
153
173
|
size: "small",
|
|
154
|
-
onClick: _cache[
|
|
174
|
+
onClick: _cache[1] || (_cache[1] = ($event) => unref(toggleStylePanel)(false))
|
|
155
175
|
}, {
|
|
156
176
|
default: withCtx(() => [createVNode(Icon_default, { icon: unref(Close) }, null, 8, ["icon"])]),
|
|
157
177
|
_: 1
|
|
@@ -166,7 +186,7 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
166
186
|
key: 2,
|
|
167
187
|
class: "m-editor-props-panel-style-icon",
|
|
168
188
|
circle: "",
|
|
169
|
-
onClick: _cache[
|
|
189
|
+
onClick: _cache[3] || (_cache[3] = ($event) => unref(toggleStylePanel)(true))
|
|
170
190
|
}, {
|
|
171
191
|
default: withCtx(() => [createVNode(Icon_default, { icon: unref(Sugar) }, null, 8, ["icon"])]),
|
|
172
192
|
_: 1
|
|
@@ -23,8 +23,9 @@ var useStylePanel = ({ uiService, storageService }, propsPanelWidth) => {
|
|
|
23
23
|
columnWidth.center += propsPanelWidth.value;
|
|
24
24
|
}
|
|
25
25
|
if (columnWidth.center < 0) {
|
|
26
|
-
|
|
27
|
-
columnWidth.
|
|
26
|
+
const minCenterColumnWidth = uiService.get("minCenterColumnWidth");
|
|
27
|
+
columnWidth.right = columnWidth.right + columnWidth.center - minCenterColumnWidth;
|
|
28
|
+
columnWidth.center = minCenterColumnWidth;
|
|
28
29
|
propsPanelWidth.value = columnWidth.right / 2;
|
|
29
30
|
}
|
|
30
31
|
storageService.setItem(RIGHT_COLUMN_WIDTH_STORAGE_KEY, columnWidth.right, { protocol: Protocol.NUMBER });
|
|
@@ -10,7 +10,7 @@ import { Grid } from "@element-plus/icons-vue";
|
|
|
10
10
|
//#region packages/editor/src/layouts/sidebar/ComponentListPanel.vue?vue&type=script&setup=true&lang.ts
|
|
11
11
|
var _hoisted_1 = ["onClick", "onDragstart"];
|
|
12
12
|
var _hoisted_2 = ["title"];
|
|
13
|
-
var ComponentListPanel_vue_vue_type_script_setup_true_lang_default =
|
|
13
|
+
var ComponentListPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
14
14
|
name: "MEditorComponentListPanel",
|
|
15
15
|
__name: "ComponentListPanel",
|
|
16
16
|
setup(__props) {
|
|
@@ -37,7 +37,7 @@ var ComponentListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
|
|
|
37
37
|
name: text,
|
|
38
38
|
type,
|
|
39
39
|
...data
|
|
40
|
-
});
|
|
40
|
+
}, void 0, { historySource: "component-panel" });
|
|
41
41
|
};
|
|
42
42
|
const dragstartHandler = ({ text, type, data = {} }, e) => {
|
|
43
43
|
e.dataTransfer?.setData("text/json", serialize({
|
|
@@ -70,7 +70,7 @@ var ComponentListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
|
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
72
72
|
if (timeout || !stage.value) return;
|
|
73
|
-
timeout = stage.value.delayedMarkContainer(e);
|
|
73
|
+
timeout = stage.value.delayedMarkContainer(e, [], true);
|
|
74
74
|
};
|
|
75
75
|
return (_ctx, _cache) => {
|
|
76
76
|
return openBlock(), createBlock(unref(TMagicScrollbar), null, {
|
|
@@ -9,7 +9,7 @@ import DataSourceListPanel_default from "./data-source/DataSourceListPanel.js";
|
|
|
9
9
|
import LayerPanel_default from "./layer/LayerPanel.js";
|
|
10
10
|
import ComponentListPanel_default from "./ComponentListPanel.js";
|
|
11
11
|
import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, mergeProps, nextTick, normalizeClass, normalizeStyle, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, toHandlers, unref, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
|
|
12
|
-
import { Close, Coin, EditPen,
|
|
12
|
+
import { Box, Close, Coin, EditPen, Finished } from "@element-plus/icons-vue";
|
|
13
13
|
//#region packages/editor/src/layouts/sidebar/Sidebar.vue?vue&type=script&setup=true&lang.ts
|
|
14
14
|
var _hoisted_1 = {
|
|
15
15
|
key: 0,
|
|
@@ -30,7 +30,7 @@ var _hoisted_5 = {
|
|
|
30
30
|
class: "m-editor-sidebar-tips"
|
|
31
31
|
};
|
|
32
32
|
var _hoisted_6 = { class: "m-editor-slide-list-box" };
|
|
33
|
-
var Sidebar_vue_vue_type_script_setup_true_lang_default =
|
|
33
|
+
var Sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
34
34
|
name: "MEditorSidebar",
|
|
35
35
|
__name: "Sidebar",
|
|
36
36
|
props: {
|
|
@@ -61,6 +61,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
61
61
|
const taskLength = computed(() => depService.get("taskLength"));
|
|
62
62
|
const tipsBarVisible = ref(true);
|
|
63
63
|
const columnLeftWidth = computed(() => uiService.get("columnWidth")[ColumnLayout.LEFT]);
|
|
64
|
+
const frameworkWidth = computed(() => uiService.get("frameworkRect")?.width || 0);
|
|
64
65
|
const { height: editorContentHeight } = useEditorContentHeight();
|
|
65
66
|
const columnLeftHeight = ref(0);
|
|
66
67
|
const unWatchEditorContentHeight = watch(editorContentHeight, (height) => {
|
|
@@ -71,21 +72,25 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
71
72
|
});
|
|
72
73
|
}
|
|
73
74
|
}, { immediate: true });
|
|
74
|
-
const activeTabName =
|
|
75
|
+
const activeTabName = computed({
|
|
76
|
+
get: () => uiService.get("sideBarActiveTabName"),
|
|
77
|
+
set: (value) => uiService.set("sideBarActiveTabName", value)
|
|
78
|
+
});
|
|
79
|
+
uiService.set("sideBarActiveTabName", props.data?.status || "");
|
|
75
80
|
const getItemConfig = (data) => {
|
|
76
81
|
const map = {
|
|
77
82
|
[SideItemKey.COMPONENT_LIST]: {
|
|
78
83
|
$key: SideItemKey.COMPONENT_LIST,
|
|
79
84
|
type: "component",
|
|
80
|
-
icon:
|
|
85
|
+
icon: Box,
|
|
81
86
|
text: "组件",
|
|
82
87
|
component: ComponentListPanel_default,
|
|
83
88
|
slots: {}
|
|
84
89
|
},
|
|
85
90
|
layer: {
|
|
86
|
-
$key:
|
|
91
|
+
$key: SideItemKey.LAYER,
|
|
87
92
|
type: "component",
|
|
88
|
-
icon:
|
|
93
|
+
icon: Finished,
|
|
89
94
|
text: "已选组件",
|
|
90
95
|
props: {
|
|
91
96
|
layerContentMenu: props.layerContentMenu,
|
|
@@ -101,7 +106,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
101
106
|
slots: {}
|
|
102
107
|
},
|
|
103
108
|
[SideItemKey.CODE_BLOCK]: {
|
|
104
|
-
$key:
|
|
109
|
+
$key: SideItemKey.CODE_BLOCK,
|
|
105
110
|
type: "component",
|
|
106
111
|
icon: EditPen,
|
|
107
112
|
text: "代码编辑",
|
|
@@ -185,23 +190,17 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
185
190
|
}, config.props || {}, toHandlers(config?.listeners || {})), createSlots({ _: 2 }, [
|
|
186
191
|
config.$key === "component-list" || config.slots?.componentList ? {
|
|
187
192
|
name: "component-list",
|
|
188
|
-
fn: withCtx(({ componentGroupList }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list", {
|
|
189
|
-
key: 0,
|
|
190
|
-
componentGroupList
|
|
191
|
-
}) : config.slots?.componentList ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentList), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
193
|
+
fn: withCtx(({ componentGroupList }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list", { componentGroupList }, void 0, void 0, 0) : config.slots?.componentList ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentList), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
192
194
|
key: "0"
|
|
193
195
|
} : void 0,
|
|
194
196
|
config.$key === "component-list" || config.slots?.componentListPanelHeader ? {
|
|
195
197
|
name: "component-list-panel-header",
|
|
196
|
-
fn: withCtx(() => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-panel-header", {
|
|
198
|
+
fn: withCtx(() => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-panel-header", {}, void 0, void 0, 0) : config.slots?.componentListPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentListPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
197
199
|
key: "1"
|
|
198
200
|
} : void 0,
|
|
199
201
|
config.$key === "component-list" || config.slots?.componentListItem ? {
|
|
200
202
|
name: "component-list-item",
|
|
201
|
-
fn: withCtx(({ component }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-item", {
|
|
202
|
-
key: 0,
|
|
203
|
-
component
|
|
204
|
-
}) : config.slots?.componentListItem ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentListItem), {
|
|
203
|
+
fn: withCtx(({ component }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-item", { component }, void 0, void 0, 0) : config.slots?.componentListItem ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentListItem), {
|
|
205
204
|
key: 1,
|
|
206
205
|
component
|
|
207
206
|
}, null, 8, ["component"])) : createCommentVNode("v-if", true)]),
|
|
@@ -209,34 +208,30 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
209
208
|
} : void 0,
|
|
210
209
|
config.$key === "layer" || config.slots?.layerPanelHeader ? {
|
|
211
210
|
name: "layer-panel-header",
|
|
212
|
-
fn: withCtx(() => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-panel-header", {
|
|
211
|
+
fn: withCtx(() => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-panel-header", {}, void 0, void 0, 0) : config.slots?.layerPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
213
212
|
key: "3"
|
|
214
213
|
} : void 0,
|
|
215
214
|
config.$key === "code-block" || config.slots?.codeBlockPanelHeader ? {
|
|
216
215
|
name: "code-block-panel-header",
|
|
217
|
-
fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-header", {
|
|
216
|
+
fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-header", {}, void 0, void 0, 0) : config.slots?.codeBlockPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
218
217
|
key: "4"
|
|
219
218
|
} : void 0,
|
|
220
219
|
config.$key === "code-block" || config.slots?.codeBlockPanelTool ? {
|
|
221
220
|
name: "code-block-panel-tool",
|
|
222
221
|
fn: withCtx(({ id, data }) => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-tool", {
|
|
223
|
-
key: 0,
|
|
224
222
|
id,
|
|
225
223
|
data
|
|
226
|
-
}) : config.slots?.codeBlockPanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
224
|
+
}, void 0, void 0, 0) : config.slots?.codeBlockPanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
227
225
|
key: "5"
|
|
228
226
|
} : void 0,
|
|
229
227
|
config.$key === "code-block" || config.slots?.codeBlockPanelSearch ? {
|
|
230
228
|
name: "code-block-panel-search",
|
|
231
|
-
fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-search", {
|
|
229
|
+
fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-search", {}, void 0, void 0, 0) : config.slots?.codeBlockPanelSearch ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelSearch), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
232
230
|
key: "6"
|
|
233
231
|
} : void 0,
|
|
234
232
|
config.$key === "layer" || config.slots?.layerNodeContent ? {
|
|
235
233
|
name: "layer-node-content",
|
|
236
|
-
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-content", {
|
|
237
|
-
key: 0,
|
|
238
|
-
data: nodeData
|
|
239
|
-
}) : config.slots?.layerNodeContent ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeContent), {
|
|
234
|
+
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-content", { data: nodeData }, void 0, void 0, 0) : config.slots?.layerNodeContent ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeContent), {
|
|
240
235
|
key: 1,
|
|
241
236
|
data: nodeData
|
|
242
237
|
}, null, 8, ["data"])) : createCommentVNode("v-if", true)]),
|
|
@@ -244,10 +239,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
244
239
|
} : void 0,
|
|
245
240
|
config.$key === "layer" || config.slots?.layerNodeLabel ? {
|
|
246
241
|
name: "layer-node-label",
|
|
247
|
-
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-label", {
|
|
248
|
-
key: 0,
|
|
249
|
-
data: nodeData
|
|
250
|
-
}) : config.slots?.layerNodeLabel ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
|
|
242
|
+
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-label", { data: nodeData }, void 0, void 0, 0) : config.slots?.layerNodeLabel ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
|
|
251
243
|
key: 1,
|
|
252
244
|
data: nodeData
|
|
253
245
|
}, null, 8, ["data"])) : createCommentVNode("v-if", true)]),
|
|
@@ -255,10 +247,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
255
247
|
} : void 0,
|
|
256
248
|
config.$key === "layer" || config.slots?.layerNodeTool ? {
|
|
257
249
|
name: "layer-node-tool",
|
|
258
|
-
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-tool", {
|
|
259
|
-
key: 0,
|
|
260
|
-
data: nodeData
|
|
261
|
-
}) : config.slots?.layerNodeTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
|
|
250
|
+
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-tool", { data: nodeData }, void 0, void 0, 0) : config.slots?.layerNodeTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
|
|
262
251
|
key: 1,
|
|
263
252
|
data: nodeData
|
|
264
253
|
}, null, 8, ["data"])) : createCommentVNode("v-if", true)]),
|
|
@@ -266,15 +255,12 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
266
255
|
} : void 0,
|
|
267
256
|
config.$key === "data-source" || config.slots?.dataSourcePanelTool ? {
|
|
268
257
|
name: "data-source-panel-tool",
|
|
269
|
-
fn: withCtx(({ data }) => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-tool", {
|
|
270
|
-
key: 0,
|
|
271
|
-
data
|
|
272
|
-
}) : config.slots?.DataSourcePanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.DataSourcePanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
258
|
+
fn: withCtx(({ data }) => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-tool", { data }, void 0, void 0, 0) : config.slots?.DataSourcePanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.DataSourcePanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
273
259
|
key: "10"
|
|
274
260
|
} : void 0,
|
|
275
261
|
config.$key === "data-source" || config.slots?.dataSourcePanelSearch ? {
|
|
276
262
|
name: "data-source-panel-search",
|
|
277
|
-
fn: withCtx(() => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-search", {
|
|
263
|
+
fn: withCtx(() => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-search", {}, void 0, void 0, 0) : config.slots?.dataSourcePanelSearch ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.dataSourcePanelSearch), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
278
264
|
key: "11"
|
|
279
265
|
} : void 0
|
|
280
266
|
]), 1040)) : createCommentVNode("v-if", true)], 2)), [[vShow, [
|
|
@@ -297,6 +283,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
297
283
|
"onUpdate:height": _cache[2] || (_cache[2] = ($event) => columnLeftHeight.value = $event),
|
|
298
284
|
width: columnLeftWidth.value,
|
|
299
285
|
title: config.text,
|
|
286
|
+
"framework-width": frameworkWidth.value,
|
|
300
287
|
position: {
|
|
301
288
|
left: unref(floatBoxStates)[config.$key].left,
|
|
302
289
|
top: unref(floatBoxStates)[config.$key].top
|
|
@@ -313,6 +300,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
313
300
|
"height",
|
|
314
301
|
"width",
|
|
315
302
|
"title",
|
|
303
|
+
"framework-width",
|
|
316
304
|
"position"
|
|
317
305
|
])) : createCommentVNode("v-if", true)], 64);
|
|
318
306
|
}), 256))]))], 64);
|
package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -9,7 +9,7 @@ import { DepTargetType } from "@tmagic/core";
|
|
|
9
9
|
import { computed, createBlock, createCommentVNode, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, renderSlot, toDisplayString, unref, withCtx, withModifiers } from "vue";
|
|
10
10
|
import { Close, Edit, View } from "@element-plus/icons-vue";
|
|
11
11
|
//#region packages/editor/src/layouts/sidebar/code-block/CodeBlockList.vue?vue&type=script&setup=true&lang.ts
|
|
12
|
-
var CodeBlockList_vue_vue_type_script_setup_true_lang_default =
|
|
12
|
+
var CodeBlockList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
13
13
|
name: "MEditorCodeBlockList",
|
|
14
14
|
__name: "CodeBlockList",
|
|
15
15
|
props: {
|
|
@@ -78,7 +78,7 @@ var CodeBlockList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
78
78
|
const editCode = (id) => {
|
|
79
79
|
emit("edit", id);
|
|
80
80
|
};
|
|
81
|
-
const deleteCode = async (id) => {
|
|
81
|
+
const deleteCode = async (id, { historySource } = {}) => {
|
|
82
82
|
const currentCode = codeList.value.find((codeItem) => codeItem.id === id);
|
|
83
83
|
const existBinds = Boolean(currentCode?.items?.length);
|
|
84
84
|
const undeleteableList = codeBlockService.getUndeletableList() || [];
|
|
@@ -88,7 +88,7 @@ var CodeBlockList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
88
88
|
cancelButtonText: "取消",
|
|
89
89
|
type: "warning"
|
|
90
90
|
});
|
|
91
|
-
emit("remove", id);
|
|
91
|
+
emit("remove", id, { historySource });
|
|
92
92
|
} else if (typeof props.customError === "function") props.customError(id, existBinds ? CodeDeleteErrorType.BIND : CodeDeleteErrorType.UNDELETEABLE);
|
|
93
93
|
else if (existBinds) tMagicMessage.error("代码块存在绑定关系,不可删除");
|
|
94
94
|
else tMagicMessage.error("代码块不可删除");
|
|
@@ -138,7 +138,7 @@ var CodeBlockList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
138
138
|
default: withCtx(() => [createVNode(Icon_default, {
|
|
139
139
|
icon: unref(Close),
|
|
140
140
|
class: "edit-icon",
|
|
141
|
-
onClick: withModifiers(($event) => deleteCode(`${data.key}
|
|
141
|
+
onClick: withModifiers(($event) => deleteCode(`${data.key}`, { historySource: "tree" }), ["stop"])
|
|
142
142
|
}, null, 8, ["icon", "onClick"])]),
|
|
143
143
|
_: 2
|
|
144
144
|
}, 1024)) : createCommentVNode("v-if", true),
|
package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -9,7 +9,7 @@ import { TMagicButton, TMagicScrollbar } from "@tmagic/design";
|
|
|
9
9
|
import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, inject, openBlock, renderSlot, unref, useTemplateRef, watch, withCtx } from "vue";
|
|
10
10
|
//#region packages/editor/src/layouts/sidebar/code-block/CodeBlockListPanel.vue?vue&type=script&setup=true&lang.ts
|
|
11
11
|
var _hoisted_1 = { class: "search-wrapper" };
|
|
12
|
-
var CodeBlockListPanel_vue_vue_type_script_setup_true_lang_default =
|
|
12
|
+
var CodeBlockListPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
13
13
|
name: "MEditorCodeBlockListPanel",
|
|
14
14
|
__name: "CodeBlockListPanel",
|
|
15
15
|
props: {
|
|
@@ -37,10 +37,10 @@ var CodeBlockListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
|
|
|
37
37
|
const editDialogCloseHandler = () => {
|
|
38
38
|
if (codeBlockListRef.value) for (const [, status] of codeBlockListRef.value.nodeStatusMap.entries()) status.selected = false;
|
|
39
39
|
};
|
|
40
|
-
const { nodeContentMenuHandler, menuData: contentMenuData, contentMenuHideHandler } = useContentMenu((id) => {
|
|
41
|
-
codeBlockListRef.value?.deleteCode(id);
|
|
40
|
+
const { nodeContentMenuHandler, menuData: contentMenuData, contentMenuHideHandler, getTarget } = useContentMenu((id) => {
|
|
41
|
+
codeBlockListRef.value?.deleteCode(id, { historySource: "tree-contextmenu" });
|
|
42
42
|
});
|
|
43
|
-
const menuData = computed(() => props.customContentMenu(contentMenuData, "code-block"));
|
|
43
|
+
const menuData = computed(() => props.customContentMenu(contentMenuData, "code-block", getTarget));
|
|
44
44
|
return (_ctx, _cache) => {
|
|
45
45
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
46
46
|
createVNode(unref(TMagicScrollbar), { class: "m-editor-code-block-list m-editor-layer-panel" }, {
|
|
@@ -6,6 +6,14 @@ var useContentMenu = (deleteCode) => {
|
|
|
6
6
|
const eventBus = inject("eventBus");
|
|
7
7
|
const menuRef = useTemplateRef("menu");
|
|
8
8
|
let selectId = "";
|
|
9
|
+
let selectData = null;
|
|
10
|
+
const getTarget = () => {
|
|
11
|
+
if (!selectId) return null;
|
|
12
|
+
return {
|
|
13
|
+
id: selectId,
|
|
14
|
+
data: selectData ?? void 0
|
|
15
|
+
};
|
|
16
|
+
};
|
|
9
17
|
const menuData = [
|
|
10
18
|
{
|
|
11
19
|
type: "button",
|
|
@@ -26,7 +34,7 @@ var useContentMenu = (deleteCode) => {
|
|
|
26
34
|
const codeBlock = codeBlockService.getCodeContentById(selectId);
|
|
27
35
|
if (!codeBlock) return;
|
|
28
36
|
const newCodeId = await codeBlockService.getUniqueId();
|
|
29
|
-
codeBlockService.setCodeDslById(newCodeId, cloneDeep(codeBlock));
|
|
37
|
+
codeBlockService.setCodeDslById(newCodeId, cloneDeep(codeBlock), { historySource: "tree-contextmenu" });
|
|
30
38
|
}
|
|
31
39
|
},
|
|
32
40
|
{
|
|
@@ -43,17 +51,24 @@ var useContentMenu = (deleteCode) => {
|
|
|
43
51
|
event.preventDefault();
|
|
44
52
|
if (data.type === "code") {
|
|
45
53
|
menuRef.value?.show(event);
|
|
46
|
-
if (data.id)
|
|
47
|
-
|
|
54
|
+
if (data.id) {
|
|
55
|
+
selectId = `${data.id}`;
|
|
56
|
+
selectData = data;
|
|
57
|
+
} else {
|
|
58
|
+
selectId = "";
|
|
59
|
+
selectData = null;
|
|
60
|
+
}
|
|
48
61
|
}
|
|
49
62
|
};
|
|
50
63
|
const contentMenuHideHandler = () => {
|
|
51
64
|
selectId = "";
|
|
65
|
+
selectData = null;
|
|
52
66
|
};
|
|
53
67
|
return {
|
|
54
68
|
menuData,
|
|
55
69
|
nodeContentMenuHandler,
|
|
56
|
-
contentMenuHideHandler
|
|
70
|
+
contentMenuHideHandler,
|
|
71
|
+
getTarget
|
|
57
72
|
};
|
|
58
73
|
};
|
|
59
74
|
//#endregion
|