@tmagic/editor 1.4.16 → 1.5.0-beta.1
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/style.css +11 -7
- package/dist/tmagic-editor.js +434 -411
- package/dist/tmagic-editor.umd.cjs +441 -408
- package/package.json +11 -15
- package/src/components/CodeParams.vue +1 -1
- package/src/editorProps.ts +2 -1
- package/src/fields/DataSourceInput.vue +2 -2
- package/src/fields/UISelect.vue +20 -15
- package/src/hooks/index.ts +7 -0
- package/src/hooks/use-stage.ts +13 -7
- package/src/index.ts +2 -0
- package/src/initService.ts +50 -53
- package/src/layouts/sidebar/Sidebar.vue +18 -2
- package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +12 -14
- package/src/layouts/workspace/viewer/NodeListMenu.vue +2 -1
- package/src/layouts/workspace/viewer/Stage.vue +4 -3
- package/src/services/editor.ts +2 -2
- package/src/services/stageOverlay.ts +3 -1
- package/src/theme/data-source.scss +8 -5
- package/src/theme/page-bar.scss +2 -2
- package/src/utils/data-source/index.ts +25 -23
- package/src/utils/editor.ts +4 -3
- package/src/utils/index.ts +4 -0
- package/src/utils/operator.ts +3 -2
- package/src/utils/props.ts +2 -1
- package/types/index.d.ts +6685 -49
- package/src/shims-vue.d.ts +0 -6
- package/types/Editor.vue.d.ts +0 -2313
- package/types/components/CodeBlockEditor.vue.d.ts +0 -33
- package/types/components/CodeParams.vue.d.ts +0 -28
- package/types/components/ContentMenu.vue.d.ts +0 -81
- package/types/components/FloatingBox.vue.d.ts +0 -70
- package/types/components/Icon.vue.d.ts +0 -15
- package/types/components/Resizer.vue.d.ts +0 -16
- package/types/components/ScrollBar.vue.d.ts +0 -25
- package/types/components/ScrollViewer.vue.d.ts +0 -81
- package/types/components/SearchInput.vue.d.ts +0 -6
- package/types/components/SplitView.vue.d.ts +0 -72
- package/types/components/ToolButton.vue.d.ts +0 -41
- package/types/components/Tree.vue.d.ts +0 -83
- package/types/components/TreeNode.vue.d.ts +0 -83
- package/types/editorProps.d.ts +0 -111
- package/types/fields/Code.vue.d.ts +0 -44
- package/types/fields/CodeLink.vue.d.ts +0 -24
- package/types/fields/CodeSelect.vue.d.ts +0 -28
- package/types/fields/CodeSelectCol.vue.d.ts +0 -31
- package/types/fields/CondOpSelect.vue.d.ts +0 -17
- package/types/fields/DataSourceFieldSelect/FieldSelect.vue.d.ts +0 -36
- package/types/fields/DataSourceFieldSelect/Index.vue.d.ts +0 -31
- package/types/fields/DataSourceFields.vue.d.ts +0 -44
- package/types/fields/DataSourceInput.vue.d.ts +0 -34
- package/types/fields/DataSourceMethodSelect.vue.d.ts +0 -31
- package/types/fields/DataSourceMethods.vue.d.ts +0 -34
- package/types/fields/DataSourceMocks.vue.d.ts +0 -41
- package/types/fields/DataSourceSelect.vue.d.ts +0 -31
- package/types/fields/DisplayConds.vue.d.ts +0 -37
- package/types/fields/EventSelect.vue.d.ts +0 -17
- package/types/fields/KeyValue.vue.d.ts +0 -36
- package/types/fields/PageFragmentSelect.vue.d.ts +0 -31
- package/types/fields/UISelect.vue.d.ts +0 -20
- package/types/hooks/index.d.ts +0 -6
- package/types/hooks/use-code-block-edit.d.ts +0 -189
- package/types/hooks/use-data-source-edit.d.ts +0 -176
- package/types/hooks/use-data-source-method.d.ts +0 -187
- package/types/hooks/use-editor-content-height.d.ts +0 -3
- package/types/hooks/use-filter.d.ts +0 -7
- package/types/hooks/use-float-box.d.ts +0 -17
- package/types/hooks/use-getso.d.ts +0 -5
- package/types/hooks/use-next-float-box-position.d.ts +0 -15
- package/types/hooks/use-node-status.d.ts +0 -16
- package/types/hooks/use-stage.d.ts +0 -3
- package/types/hooks/use-window-rect.d.ts +0 -6
- package/types/icons/AppManageIcon.vue.d.ts +0 -2
- package/types/icons/CenterIcon.vue.d.ts +0 -2
- package/types/icons/CodeIcon.vue.d.ts +0 -2
- package/types/icons/FolderMinusIcon.vue.d.ts +0 -2
- package/types/icons/PinIcon.vue.d.ts +0 -2
- package/types/icons/PinnedIcon.vue.d.ts +0 -2
- package/types/initService.d.ts +0 -9
- package/types/layouts/AddPageBox.vue.d.ts +0 -15
- package/types/layouts/CodeEditor.vue.d.ts +0 -80
- package/types/layouts/Framework.vue.d.ts +0 -25
- package/types/layouts/NavMenu.vue.d.ts +0 -35
- package/types/layouts/PropsPanel.vue.d.ts +0 -535
- package/types/layouts/page-bar/AddButton.vue.d.ts +0 -16
- package/types/layouts/page-bar/PageBar.vue.d.ts +0 -36
- package/types/layouts/page-bar/PageBarScrollContainer.vue.d.ts +0 -29
- package/types/layouts/page-bar/PageList.vue.d.ts +0 -27
- package/types/layouts/page-bar/SwitchTypeButton.vue.d.ts +0 -20
- package/types/layouts/sidebar/ComponentListPanel.vue.d.ts +0 -10
- package/types/layouts/sidebar/Sidebar.vue.d.ts +0 -51
- package/types/layouts/sidebar/code-block/CodeBlockList.vue.d.ts +0 -32
- package/types/layouts/sidebar/code-block/CodeBlockListPanel.vue.d.ts +0 -24
- package/types/layouts/sidebar/data-source/DataSourceConfigPanel.vue.d.ts +0 -31
- package/types/layouts/sidebar/data-source/DataSourceList.vue.d.ts +0 -18
- package/types/layouts/sidebar/data-source/DataSourceListPanel.vue.d.ts +0 -10
- package/types/layouts/sidebar/layer/LayerMenu.vue.d.ts +0 -41
- package/types/layouts/sidebar/layer/LayerNodeTool.vue.d.ts +0 -16
- package/types/layouts/sidebar/layer/LayerPanel.vue.d.ts +0 -25
- package/types/layouts/sidebar/layer/use-click.d.ts +0 -119
- package/types/layouts/sidebar/layer/use-drag.d.ts +0 -14
- package/types/layouts/sidebar/layer/use-keybinding.d.ts +0 -6
- package/types/layouts/sidebar/layer/use-node-status.d.ts +0 -16
- package/types/layouts/workspace/Breadcrumb.vue.d.ts +0 -2
- package/types/layouts/workspace/Workspace.vue.d.ts +0 -41
- package/types/layouts/workspace/viewer/NodeListMenu.vue.d.ts +0 -2
- package/types/layouts/workspace/viewer/Stage.vue.d.ts +0 -34
- package/types/layouts/workspace/viewer/StageOverlay.vue.d.ts +0 -2
- package/types/layouts/workspace/viewer/ViewerMenu.vue.d.ts +0 -42
- package/types/services/BaseService.d.ts +0 -65
- package/types/services/codeBlock.d.ts +0 -130
- package/types/services/componentList.d.ts +0 -16
- package/types/services/dataSource.d.ts +0 -68
- package/types/services/dep.d.ts +0 -33
- package/types/services/editor.d.ts +0 -180
- package/types/services/events.d.ts +0 -18
- package/types/services/history.d.ts +0 -26
- package/types/services/keybinding.d.ts +0 -40
- package/types/services/props.d.ts +0 -92
- package/types/services/stageOverlay.d.ts +0 -30
- package/types/services/storage.d.ts +0 -65
- package/types/services/ui.d.ts +0 -77
- package/types/type.d.ts +0 -657
- package/types/utils/compose.d.ts +0 -5
- package/types/utils/config.d.ts +0 -4
- package/types/utils/content-menu.d.ts +0 -7
- package/types/utils/data-source/formConfigs/base.d.ts +0 -2
- package/types/utils/data-source/formConfigs/http.d.ts +0 -3
- package/types/utils/data-source/index.d.ts +0 -10
- package/types/utils/editor.d.ts +0 -59
- package/types/utils/idle-task.d.ts +0 -13
- package/types/utils/index.d.ts +0 -6
- package/types/utils/keybinding-config.d.ts +0 -7
- package/types/utils/logger.d.ts +0 -5
- package/types/utils/monaco-editor.d.ts +0 -2
- package/types/utils/operator.d.ts +0 -21
- package/types/utils/props.d.ts +0 -23
- package/types/utils/scroll-viewer.d.ts +0 -37
- package/types/utils/tree.d.ts +0 -3
- package/types/utils/undo-redo.d.ts +0 -12
|
@@ -840,7 +840,7 @@
|
|
|
840
840
|
items: [
|
|
841
841
|
{
|
|
842
842
|
type: "display-conds",
|
|
843
|
-
name:
|
|
843
|
+
name: schema.NODE_CONDS_KEY,
|
|
844
844
|
titlePrefix: "条件组",
|
|
845
845
|
defaultValue: []
|
|
846
846
|
}
|
|
@@ -1116,8 +1116,8 @@
|
|
|
1116
1116
|
};
|
|
1117
1117
|
const fixNodeLeft = (config, parent, doc) => {
|
|
1118
1118
|
if (!doc || !config.style || !utils.isNumber(config.style.left)) return config.style?.left;
|
|
1119
|
-
const el =
|
|
1120
|
-
const parentEl =
|
|
1119
|
+
const el = utils.getElById()(doc, `${config.id}`);
|
|
1120
|
+
const parentEl = utils.getElById()(doc, `${parent.id}`);
|
|
1121
1121
|
const left = Number(config.style?.left) || 0;
|
|
1122
1122
|
if (el && parentEl) {
|
|
1123
1123
|
const calcParentOffsetWidth = utils.calcValueByFontsize(doc, parentEl.offsetWidth);
|
|
@@ -2314,7 +2314,7 @@
|
|
|
2314
2314
|
const stage = this.get("stage");
|
|
2315
2315
|
const doc = stage?.renderer.contentWindow?.document;
|
|
2316
2316
|
if (doc) {
|
|
2317
|
-
const el =
|
|
2317
|
+
const el = utils.getElById()(doc, node.id);
|
|
2318
2318
|
const parentEl = layout === Layout.FIXED ? doc.body : el?.offsetParent;
|
|
2319
2319
|
if (parentEl && el) {
|
|
2320
2320
|
node.style.left = utils.calcValueByFontsize(doc, (parentEl.clientWidth - el.clientWidth) / 2);
|
|
@@ -2659,7 +2659,8 @@
|
|
|
2659
2659
|
};
|
|
2660
2660
|
const getPositionInContainer = (position = {}, id, doc) => {
|
|
2661
2661
|
let { left = 0, top = 0 } = position;
|
|
2662
|
-
const
|
|
2662
|
+
const stageDoc = editorService.get("stage")?.renderer?.contentWindow?.document;
|
|
2663
|
+
const parentEl = stageDoc && utils.getElById()(stageDoc, `${id}`);
|
|
2663
2664
|
const parentElRect = parentEl?.getBoundingClientRect();
|
|
2664
2665
|
left = left - utils.calcValueByFontsize(doc, parentElRect?.left || 0);
|
|
2665
2666
|
top = top - utils.calcValueByFontsize(doc, parentElRect?.top || 0);
|
|
@@ -2886,7 +2887,7 @@
|
|
|
2886
2887
|
* context:上下文对象
|
|
2887
2888
|
*
|
|
2888
2889
|
* interface Content {
|
|
2889
|
-
* app:
|
|
2890
|
+
* app: TMagicApp;
|
|
2890
2891
|
* dataSource: HttpDataSource;
|
|
2891
2892
|
* }
|
|
2892
2893
|
*
|
|
@@ -2903,7 +2904,7 @@
|
|
|
2903
2904
|
* context:上下文对象
|
|
2904
2905
|
*
|
|
2905
2906
|
* interface Content {
|
|
2906
|
-
* app:
|
|
2907
|
+
* app: TMagicApp;
|
|
2907
2908
|
* dataSource: HttpDataSource;
|
|
2908
2909
|
* }
|
|
2909
2910
|
*
|
|
@@ -2917,7 +2918,7 @@
|
|
|
2917
2918
|
};
|
|
2918
2919
|
const getDisplayField = (dataSources, key) => {
|
|
2919
2920
|
const displayState = [];
|
|
2920
|
-
const matches = key.matchAll(
|
|
2921
|
+
const matches = key.matchAll(utils.dataSourceTemplateRegExp);
|
|
2921
2922
|
let index = 0;
|
|
2922
2923
|
for (const match of matches) {
|
|
2923
2924
|
if (typeof match.index === "undefined") break;
|
|
@@ -2928,7 +2929,7 @@
|
|
|
2928
2929
|
let dsText = "";
|
|
2929
2930
|
let ds;
|
|
2930
2931
|
let fields;
|
|
2931
|
-
match[1]
|
|
2932
|
+
utils.getKeysArray(match[1]).forEach((item, index2) => {
|
|
2932
2933
|
if (index2 === 0) {
|
|
2933
2934
|
ds = dataSources.find((ds2) => ds2.id === item);
|
|
2934
2935
|
dsText += ds?.title || item;
|
|
@@ -2989,6 +2990,189 @@
|
|
|
2989
2990
|
};
|
|
2990
2991
|
const removeDataSourceFieldPrefix = (id) => id?.replace(utils.DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, "") || "";
|
|
2991
2992
|
|
|
2993
|
+
globalThis.requestIdleCallback = globalThis.requestIdleCallback || function(cb) {
|
|
2994
|
+
const start = Date.now();
|
|
2995
|
+
return setTimeout(() => {
|
|
2996
|
+
cb({
|
|
2997
|
+
didTimeout: false,
|
|
2998
|
+
timeRemaining() {
|
|
2999
|
+
return Math.max(0, 50 - (Date.now() - start));
|
|
3000
|
+
}
|
|
3001
|
+
});
|
|
3002
|
+
}, 1);
|
|
3003
|
+
};
|
|
3004
|
+
class IdleTask extends events.EventEmitter {
|
|
3005
|
+
taskList = [];
|
|
3006
|
+
taskHandle = null;
|
|
3007
|
+
enqueueTask(taskHandler, taskData) {
|
|
3008
|
+
this.taskList.push({
|
|
3009
|
+
handler: taskHandler,
|
|
3010
|
+
data: taskData
|
|
3011
|
+
});
|
|
3012
|
+
if (!this.taskHandle) {
|
|
3013
|
+
this.taskHandle = globalThis.requestIdleCallback(this.runTaskQueue.bind(this), { timeout: 1e4 });
|
|
3014
|
+
}
|
|
3015
|
+
}
|
|
3016
|
+
on(eventName, listener) {
|
|
3017
|
+
return super.on(eventName, listener);
|
|
3018
|
+
}
|
|
3019
|
+
once(eventName, listener) {
|
|
3020
|
+
return super.once(eventName, listener);
|
|
3021
|
+
}
|
|
3022
|
+
emit(eventName, ...args) {
|
|
3023
|
+
return super.emit(eventName, ...args);
|
|
3024
|
+
}
|
|
3025
|
+
runTaskQueue(deadline) {
|
|
3026
|
+
while ((deadline.timeRemaining() > 15 || deadline.didTimeout) && this.taskList.length) {
|
|
3027
|
+
const task = this.taskList.shift();
|
|
3028
|
+
task.handler(task.data);
|
|
3029
|
+
}
|
|
3030
|
+
if (this.taskList.length) {
|
|
3031
|
+
this.taskHandle = globalThis.requestIdleCallback(this.runTaskQueue.bind(this), { timeout: 1e4 });
|
|
3032
|
+
} else {
|
|
3033
|
+
this.taskHandle = 0;
|
|
3034
|
+
this.emit("finish");
|
|
3035
|
+
}
|
|
3036
|
+
}
|
|
3037
|
+
}
|
|
3038
|
+
|
|
3039
|
+
class ScrollViewer extends events.EventEmitter {
|
|
3040
|
+
container;
|
|
3041
|
+
target;
|
|
3042
|
+
zoom = 1;
|
|
3043
|
+
scrollLeft = 0;
|
|
3044
|
+
scrollTop = 0;
|
|
3045
|
+
scrollHeight = 0;
|
|
3046
|
+
scrollWidth = 0;
|
|
3047
|
+
width = 0;
|
|
3048
|
+
height = 0;
|
|
3049
|
+
translateXCorrectionValue = 0;
|
|
3050
|
+
translateYCorrectionValue = 0;
|
|
3051
|
+
correctionScrollSize = {
|
|
3052
|
+
width: 0,
|
|
3053
|
+
height: 0
|
|
3054
|
+
};
|
|
3055
|
+
resizeObserver = new ResizeObserver(() => {
|
|
3056
|
+
this.setSize();
|
|
3057
|
+
this.setScrollSize();
|
|
3058
|
+
});
|
|
3059
|
+
constructor(options) {
|
|
3060
|
+
super();
|
|
3061
|
+
this.container = options.container;
|
|
3062
|
+
this.target = options.target;
|
|
3063
|
+
this.zoom = options.zoom;
|
|
3064
|
+
if (this.correctionScrollSize) {
|
|
3065
|
+
this.correctionScrollSize = {
|
|
3066
|
+
...this.correctionScrollSize,
|
|
3067
|
+
...options.correctionScrollSize
|
|
3068
|
+
};
|
|
3069
|
+
}
|
|
3070
|
+
this.container.addEventListener("wheel", this.wheelHandler, false);
|
|
3071
|
+
this.setSize();
|
|
3072
|
+
this.setScrollSize();
|
|
3073
|
+
this.resizeObserver.observe(this.container);
|
|
3074
|
+
this.resizeObserver.observe(this.target);
|
|
3075
|
+
}
|
|
3076
|
+
destroy() {
|
|
3077
|
+
this.resizeObserver.disconnect();
|
|
3078
|
+
this.container.removeEventListener("wheel", this.wheelHandler, false);
|
|
3079
|
+
this.removeAllListeners();
|
|
3080
|
+
}
|
|
3081
|
+
setZoom(zoom) {
|
|
3082
|
+
this.zoom = zoom;
|
|
3083
|
+
this.setScrollSize();
|
|
3084
|
+
}
|
|
3085
|
+
scrollTo({ left, top }) {
|
|
3086
|
+
if (typeof left !== "undefined") {
|
|
3087
|
+
this.scrollLeft = left;
|
|
3088
|
+
}
|
|
3089
|
+
if (typeof top !== "undefined") {
|
|
3090
|
+
this.scrollTop = top;
|
|
3091
|
+
}
|
|
3092
|
+
const translateX = -this.scrollLeft + this.translateXCorrectionValue;
|
|
3093
|
+
const translateY = -this.scrollTop + this.translateYCorrectionValue;
|
|
3094
|
+
this.target.style.transform = `translate(${translateX}px, ${translateY}px)`;
|
|
3095
|
+
}
|
|
3096
|
+
wheelHandler = (event) => {
|
|
3097
|
+
const { deltaX, deltaY, currentTarget } = event;
|
|
3098
|
+
if (currentTarget !== this.container) return;
|
|
3099
|
+
let top;
|
|
3100
|
+
if (this.scrollHeight > this.height) {
|
|
3101
|
+
top = this.scrollTop + this.getPos(deltaY, this.scrollTop, this.scrollHeight, this.height);
|
|
3102
|
+
}
|
|
3103
|
+
let left;
|
|
3104
|
+
if (this.scrollWidth > this.width) {
|
|
3105
|
+
left = this.scrollLeft + this.getPos(deltaX, this.scrollLeft, this.scrollWidth, this.width);
|
|
3106
|
+
}
|
|
3107
|
+
this.scrollTo({ left, top });
|
|
3108
|
+
this.emit("scroll", {
|
|
3109
|
+
scrollLeft: this.scrollLeft,
|
|
3110
|
+
scrollTop: this.scrollTop,
|
|
3111
|
+
scrollHeight: this.scrollHeight,
|
|
3112
|
+
scrollWidth: this.scrollWidth
|
|
3113
|
+
});
|
|
3114
|
+
};
|
|
3115
|
+
getPos(delta, scrollPos, scrollSize, size) {
|
|
3116
|
+
let pos = 0;
|
|
3117
|
+
if (delta < 0) {
|
|
3118
|
+
if (scrollPos > 0) {
|
|
3119
|
+
pos = Math.max(delta, -scrollPos);
|
|
3120
|
+
}
|
|
3121
|
+
} else {
|
|
3122
|
+
const leftPos = scrollSize - size - scrollPos;
|
|
3123
|
+
if (leftPos > 0) {
|
|
3124
|
+
pos = Math.min(delta, leftPos);
|
|
3125
|
+
}
|
|
3126
|
+
}
|
|
3127
|
+
return pos;
|
|
3128
|
+
}
|
|
3129
|
+
setScrollSize = () => {
|
|
3130
|
+
const targetRect = this.target.getBoundingClientRect();
|
|
3131
|
+
this.scrollWidth = targetRect.width * this.zoom + this.correctionScrollSize.width;
|
|
3132
|
+
const targetMarginTop = Number(this.target.style.marginTop) || 0;
|
|
3133
|
+
this.scrollHeight = (targetRect.height + targetMarginTop) * this.zoom + this.correctionScrollSize.height;
|
|
3134
|
+
let left;
|
|
3135
|
+
let top;
|
|
3136
|
+
if (this.scrollWidth < this.width) {
|
|
3137
|
+
left = 0;
|
|
3138
|
+
this.translateXCorrectionValue = 0;
|
|
3139
|
+
} else {
|
|
3140
|
+
this.translateXCorrectionValue = (this.scrollWidth - this.width) / 2;
|
|
3141
|
+
}
|
|
3142
|
+
if (this.scrollHeight < this.height) {
|
|
3143
|
+
top = 0;
|
|
3144
|
+
this.translateYCorrectionValue = 0;
|
|
3145
|
+
} else {
|
|
3146
|
+
this.translateYCorrectionValue = (this.scrollHeight - this.height) / 2;
|
|
3147
|
+
}
|
|
3148
|
+
this.scrollTo({
|
|
3149
|
+
left,
|
|
3150
|
+
top
|
|
3151
|
+
});
|
|
3152
|
+
this.emit("scroll", {
|
|
3153
|
+
scrollLeft: this.scrollLeft,
|
|
3154
|
+
scrollTop: this.scrollTop,
|
|
3155
|
+
scrollHeight: this.scrollHeight,
|
|
3156
|
+
scrollWidth: this.scrollWidth
|
|
3157
|
+
});
|
|
3158
|
+
};
|
|
3159
|
+
setSize = () => {
|
|
3160
|
+
const { width, height } = this.container.getBoundingClientRect();
|
|
3161
|
+
this.width = width;
|
|
3162
|
+
this.height = height;
|
|
3163
|
+
};
|
|
3164
|
+
}
|
|
3165
|
+
|
|
3166
|
+
const updateStatus = (nodeStatusMap, id, status) => {
|
|
3167
|
+
const nodeStatus = nodeStatusMap.get(id);
|
|
3168
|
+
if (!nodeStatus) return;
|
|
3169
|
+
utils.getKeys(status).forEach((key) => {
|
|
3170
|
+
if (nodeStatus[key] !== void 0 && status[key] !== void 0) {
|
|
3171
|
+
nodeStatus[key] = Boolean(status[key]);
|
|
3172
|
+
}
|
|
3173
|
+
});
|
|
3174
|
+
};
|
|
3175
|
+
|
|
2992
3176
|
const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
|
|
2993
3177
|
...{
|
|
2994
3178
|
name: "MEditorCodeParams"
|
|
@@ -3011,7 +3195,7 @@
|
|
|
3011
3195
|
type: "fieldset",
|
|
3012
3196
|
items,
|
|
3013
3197
|
legend: "参数",
|
|
3014
|
-
labelWidth: "
|
|
3198
|
+
labelWidth: "120px",
|
|
3015
3199
|
name: props.name
|
|
3016
3200
|
}
|
|
3017
3201
|
];
|
|
@@ -3050,7 +3234,7 @@
|
|
|
3050
3234
|
});
|
|
3051
3235
|
|
|
3052
3236
|
const _hoisted_1$u = { class: "m-fields-code-select-col" };
|
|
3053
|
-
const _hoisted_2$
|
|
3237
|
+
const _hoisted_2$j = { class: "code-select-container" };
|
|
3054
3238
|
const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
|
|
3055
3239
|
...{
|
|
3056
3240
|
name: "MFieldsCodeSelectCol"
|
|
@@ -3131,7 +3315,7 @@
|
|
|
3131
3315
|
};
|
|
3132
3316
|
return (_ctx, _cache) => {
|
|
3133
3317
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$u, [
|
|
3134
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
3318
|
+
vue.createElementVNode("div", _hoisted_2$j, [
|
|
3135
3319
|
vue.createVNode(vue.unref(form.MContainer), {
|
|
3136
3320
|
class: "select",
|
|
3137
3321
|
config: selectConfig,
|
|
@@ -3709,29 +3893,34 @@
|
|
|
3709
3893
|
editorService.set("stageLoading", false);
|
|
3710
3894
|
});
|
|
3711
3895
|
stage.on("select", (el) => {
|
|
3712
|
-
|
|
3713
|
-
editorService.
|
|
3896
|
+
const id = utils.getIdFromEl()(el);
|
|
3897
|
+
if (`${editorService.get("node")?.id}` === id && editorService.get("nodes").length === 1) return;
|
|
3898
|
+
id && editorService.select(id);
|
|
3714
3899
|
});
|
|
3715
3900
|
stage.on("highlight", (el) => {
|
|
3716
|
-
|
|
3901
|
+
const id = utils.getIdFromEl()(el);
|
|
3902
|
+
id && editorService.highlight(id);
|
|
3717
3903
|
});
|
|
3718
3904
|
stage.on("multi-select", (els) => {
|
|
3719
|
-
|
|
3905
|
+
const ids = els.map((el) => utils.getIdFromEl()(el)).filter((id) => Boolean(id));
|
|
3906
|
+
editorService.multiSelect(ids);
|
|
3720
3907
|
});
|
|
3721
3908
|
stage.on("update", (ev) => {
|
|
3722
3909
|
if (ev.parentEl) {
|
|
3723
3910
|
for (const data of ev.data) {
|
|
3724
|
-
|
|
3911
|
+
const id = utils.getIdFromEl()(data.el);
|
|
3912
|
+
const pId = utils.getIdFromEl()(ev.parentEl);
|
|
3913
|
+
id && pId && editorService.moveToContainer({ id, style: data.style }, pId);
|
|
3725
3914
|
}
|
|
3726
3915
|
return;
|
|
3727
3916
|
}
|
|
3728
|
-
editorService.update(ev.data.map((data) => ({ id: data.el
|
|
3917
|
+
editorService.update(ev.data.map((data) => ({ id: utils.getIdFromEl()(data.el) || "", style: data.style })));
|
|
3729
3918
|
});
|
|
3730
3919
|
stage.on("sort", (ev) => {
|
|
3731
3920
|
editorService.sort(ev.src, ev.dist);
|
|
3732
3921
|
});
|
|
3733
3922
|
stage.on("remove", (ev) => {
|
|
3734
|
-
const nodes = ev.data.map(({ el }) => editorService.getNodeById(
|
|
3923
|
+
const nodes = ev.data.map(({ el }) => editorService.getNodeById(utils.getIdFromEl()(el) || ""));
|
|
3735
3924
|
editorService.remove(nodes.filter((node) => Boolean(node)));
|
|
3736
3925
|
});
|
|
3737
3926
|
stage.on("select-parent", () => {
|
|
@@ -3876,6 +4065,68 @@
|
|
|
3876
4065
|
};
|
|
3877
4066
|
};
|
|
3878
4067
|
|
|
4068
|
+
const useFilter = (nodeData, nodeStatusMap, filterNodeMethod) => {
|
|
4069
|
+
const filterIsMatch = (value, data) => {
|
|
4070
|
+
const string = !Array.isArray(value) ? [value] : value;
|
|
4071
|
+
if (!string.length) {
|
|
4072
|
+
return true;
|
|
4073
|
+
}
|
|
4074
|
+
return string.some((v) => filterNodeMethod(v, data));
|
|
4075
|
+
};
|
|
4076
|
+
const filter = (text) => {
|
|
4077
|
+
if (!nodeData.value.length) return;
|
|
4078
|
+
nodeData.value.forEach((node) => {
|
|
4079
|
+
traverseNode(node, (node2, parents) => {
|
|
4080
|
+
if (!nodeStatusMap.value) return;
|
|
4081
|
+
const visible = filterIsMatch(text, node2);
|
|
4082
|
+
if (visible && parents.length) {
|
|
4083
|
+
parents.forEach((parent) => {
|
|
4084
|
+
updateStatus(nodeStatusMap.value, parent.id, {
|
|
4085
|
+
visible,
|
|
4086
|
+
expand: true
|
|
4087
|
+
});
|
|
4088
|
+
});
|
|
4089
|
+
}
|
|
4090
|
+
updateStatus(nodeStatusMap.value, node2.id, {
|
|
4091
|
+
visible
|
|
4092
|
+
});
|
|
4093
|
+
});
|
|
4094
|
+
});
|
|
4095
|
+
};
|
|
4096
|
+
return {
|
|
4097
|
+
filterText: vue.ref(""),
|
|
4098
|
+
filterTextChangeHandler(text) {
|
|
4099
|
+
filter(text);
|
|
4100
|
+
}
|
|
4101
|
+
};
|
|
4102
|
+
};
|
|
4103
|
+
|
|
4104
|
+
const useGetSo = (target, emit) => {
|
|
4105
|
+
let getso;
|
|
4106
|
+
const isDraging = vue.ref(false);
|
|
4107
|
+
vue.onMounted(() => {
|
|
4108
|
+
if (!target.value) return;
|
|
4109
|
+
getso = new Gesto(target.value, {
|
|
4110
|
+
container: window,
|
|
4111
|
+
pinchOutside: true
|
|
4112
|
+
}).on("drag", (e) => {
|
|
4113
|
+
if (!target.value) return;
|
|
4114
|
+
emit("change", e);
|
|
4115
|
+
}).on("dragStart", () => {
|
|
4116
|
+
isDraging.value = true;
|
|
4117
|
+
}).on("dragEnd", () => {
|
|
4118
|
+
isDraging.value = false;
|
|
4119
|
+
});
|
|
4120
|
+
});
|
|
4121
|
+
vue.onBeforeUnmount(() => {
|
|
4122
|
+
getso?.unset();
|
|
4123
|
+
isDraging.value = false;
|
|
4124
|
+
});
|
|
4125
|
+
return {
|
|
4126
|
+
isDraging
|
|
4127
|
+
};
|
|
4128
|
+
};
|
|
4129
|
+
|
|
3879
4130
|
const useNextFloatBoxPosition = (uiService, parent) => {
|
|
3880
4131
|
const boxPosition = vue.ref({
|
|
3881
4132
|
left: 0,
|
|
@@ -3900,8 +4151,42 @@
|
|
|
3900
4151
|
};
|
|
3901
4152
|
};
|
|
3902
4153
|
|
|
4154
|
+
const createPageNodeStatus$1 = (nodeData, initialLayerNodeStatus) => {
|
|
4155
|
+
const map = /* @__PURE__ */ new Map();
|
|
4156
|
+
nodeData.forEach(
|
|
4157
|
+
(node) => traverseNode(node, (node2) => {
|
|
4158
|
+
map.set(
|
|
4159
|
+
node2.id,
|
|
4160
|
+
initialLayerNodeStatus?.get(node2.id) || {
|
|
4161
|
+
visible: true,
|
|
4162
|
+
expand: false,
|
|
4163
|
+
selected: false,
|
|
4164
|
+
draggable: false
|
|
4165
|
+
}
|
|
4166
|
+
);
|
|
4167
|
+
})
|
|
4168
|
+
);
|
|
4169
|
+
return map;
|
|
4170
|
+
};
|
|
4171
|
+
const useNodeStatus$1 = (nodeData) => {
|
|
4172
|
+
const nodeStatusMap = vue.ref(/* @__PURE__ */ new Map());
|
|
4173
|
+
vue.watch(
|
|
4174
|
+
nodeData,
|
|
4175
|
+
(nodeData2) => {
|
|
4176
|
+
nodeStatusMap.value = createPageNodeStatus$1(nodeData2, nodeStatusMap.value);
|
|
4177
|
+
},
|
|
4178
|
+
{
|
|
4179
|
+
immediate: true,
|
|
4180
|
+
deep: true
|
|
4181
|
+
}
|
|
4182
|
+
);
|
|
4183
|
+
return {
|
|
4184
|
+
nodeStatusMap
|
|
4185
|
+
};
|
|
4186
|
+
};
|
|
4187
|
+
|
|
3903
4188
|
const _hoisted_1$t = { class: "m-editor-data-source-fields" };
|
|
3904
|
-
const _hoisted_2$
|
|
4189
|
+
const _hoisted_2$i = { class: "m-editor-data-source-fields-footer" };
|
|
3905
4190
|
const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
|
|
3906
4191
|
...{
|
|
3907
4192
|
name: "MFieldsDataSourceFields"
|
|
@@ -4158,7 +4443,7 @@
|
|
|
4158
4443
|
data: _ctx.model[_ctx.name],
|
|
4159
4444
|
columns: fieldColumns
|
|
4160
4445
|
}, null, 8, ["data"]),
|
|
4161
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
4446
|
+
vue.createElementVNode("div", _hoisted_2$i, [
|
|
4162
4447
|
vue.createVNode(vue.unref(design.TMagicButton), {
|
|
4163
4448
|
size: "small",
|
|
4164
4449
|
disabled: _ctx.disabled,
|
|
@@ -4546,7 +4831,7 @@
|
|
|
4546
4831
|
});
|
|
4547
4832
|
|
|
4548
4833
|
const _hoisted_1$q = { style: { "display": "flex", "flex-direction": "column", "line-height": "1.2em" } };
|
|
4549
|
-
const _hoisted_2$
|
|
4834
|
+
const _hoisted_2$h = { style: { "font-size": "10px", "color": "rgba(0, 0, 0, 0.6)" } };
|
|
4550
4835
|
const _hoisted_3$8 = { class: "el-input__inner t-input__inner" };
|
|
4551
4836
|
const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
|
|
4552
4837
|
...{
|
|
@@ -4643,7 +4928,7 @@
|
|
|
4643
4928
|
const fieldQuerySearch = (queryString, leftAngleIndex, dotIndex, cb) => {
|
|
4644
4929
|
let result = [];
|
|
4645
4930
|
const dsKey = queryString.substring(leftAngleIndex + 1, dotIndex);
|
|
4646
|
-
const keys =
|
|
4931
|
+
const keys = utils.getKeysArray(dsKey);
|
|
4647
4932
|
const dsId = keys.shift();
|
|
4648
4933
|
const ds = dataSources.value.find((ds2) => ds2.id === dsId);
|
|
4649
4934
|
if (!ds) {
|
|
@@ -4753,7 +5038,7 @@
|
|
|
4753
5038
|
default: vue.withCtx(({ item }) => [
|
|
4754
5039
|
vue.createElementVNode("div", _hoisted_1$q, [
|
|
4755
5040
|
vue.createElementVNode("div", null, vue.toDisplayString(item.text), 1),
|
|
4756
|
-
vue.createElementVNode("span", _hoisted_2$
|
|
5041
|
+
vue.createElementVNode("span", _hoisted_2$h, vue.toDisplayString(item.value), 1)
|
|
4757
5042
|
])
|
|
4758
5043
|
]),
|
|
4759
5044
|
_: 1
|
|
@@ -4795,7 +5080,7 @@
|
|
|
4795
5080
|
});
|
|
4796
5081
|
|
|
4797
5082
|
const _hoisted_1$p = { style: { "display": "flex", "margin-bottom": "10px" } };
|
|
4798
|
-
const _hoisted_2$
|
|
5083
|
+
const _hoisted_2$g = { style: { "flex": "1" } };
|
|
4799
5084
|
const _hoisted_3$7 = { style: { "flex": "1" } };
|
|
4800
5085
|
const _hoisted_4$7 = { class: "dialog-footer" };
|
|
4801
5086
|
const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -5049,7 +5334,7 @@
|
|
|
5049
5334
|
]),
|
|
5050
5335
|
default: vue.withCtx(() => [
|
|
5051
5336
|
vue.createElementVNode("div", _hoisted_1$p, [
|
|
5052
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
5337
|
+
vue.createElementVNode("div", _hoisted_2$g, [
|
|
5053
5338
|
vue.createVNode(vue.unref(design.TMagicTag), {
|
|
5054
5339
|
size: "small",
|
|
5055
5340
|
type: "info"
|
|
@@ -5092,7 +5377,7 @@
|
|
|
5092
5377
|
});
|
|
5093
5378
|
|
|
5094
5379
|
const _hoisted_1$o = { class: "m-editor-data-source-methods" };
|
|
5095
|
-
const _hoisted_2$
|
|
5380
|
+
const _hoisted_2$f = { class: "m-editor-data-source-methods-footer" };
|
|
5096
5381
|
const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
|
|
5097
5382
|
...{
|
|
5098
5383
|
name: "MFieldsDataSourceMethods"
|
|
@@ -5168,7 +5453,7 @@
|
|
|
5168
5453
|
data: _ctx.model[_ctx.name],
|
|
5169
5454
|
columns: methodColumns
|
|
5170
5455
|
}, null, 8, ["data"]),
|
|
5171
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
5456
|
+
vue.createElementVNode("div", _hoisted_2$f, [
|
|
5172
5457
|
vue.createVNode(vue.unref(design.TMagicButton), {
|
|
5173
5458
|
size: "small",
|
|
5174
5459
|
type: "primary",
|
|
@@ -5198,7 +5483,7 @@
|
|
|
5198
5483
|
});
|
|
5199
5484
|
|
|
5200
5485
|
const _hoisted_1$n = { class: "m-fields-data-source-method-select" };
|
|
5201
|
-
const _hoisted_2$
|
|
5486
|
+
const _hoisted_2$e = { class: "data-source-method-select-container" };
|
|
5202
5487
|
const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
|
|
5203
5488
|
...{
|
|
5204
5489
|
name: "MFieldsDataSourceMethodSelect"
|
|
@@ -5286,7 +5571,7 @@
|
|
|
5286
5571
|
};
|
|
5287
5572
|
return (_ctx, _cache) => {
|
|
5288
5573
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
|
|
5289
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
5574
|
+
vue.createElementVNode("div", _hoisted_2$e, [
|
|
5290
5575
|
vue.createVNode(vue.unref(form.MContainer), {
|
|
5291
5576
|
class: "select",
|
|
5292
5577
|
config: cascaderConfig.value,
|
|
@@ -5330,7 +5615,7 @@
|
|
|
5330
5615
|
});
|
|
5331
5616
|
|
|
5332
5617
|
const _hoisted_1$m = { class: "m-editor-data-source-fields" };
|
|
5333
|
-
const _hoisted_2$
|
|
5618
|
+
const _hoisted_2$d = { class: "m-editor-data-source-fields-footer" };
|
|
5334
5619
|
const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
|
|
5335
5620
|
...{
|
|
5336
5621
|
name: "MFieldsDataSourceMocks"
|
|
@@ -5540,7 +5825,7 @@
|
|
|
5540
5825
|
data: _ctx.model[_ctx.name],
|
|
5541
5826
|
columns
|
|
5542
5827
|
}, null, 8, ["data"]),
|
|
5543
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
5828
|
+
vue.createElementVNode("div", _hoisted_2$d, [
|
|
5544
5829
|
vue.createVNode(vue.unref(design.TMagicButton), {
|
|
5545
5830
|
size: "small",
|
|
5546
5831
|
type: "primary",
|
|
@@ -5805,7 +6090,7 @@
|
|
|
5805
6090
|
});
|
|
5806
6091
|
|
|
5807
6092
|
const _hoisted_1$k = { class: "m-fields-event-select" };
|
|
5808
|
-
const _hoisted_2$
|
|
6093
|
+
const _hoisted_2$c = {
|
|
5809
6094
|
key: 1,
|
|
5810
6095
|
class: "fullWidth"
|
|
5811
6096
|
};
|
|
@@ -6093,7 +6378,7 @@
|
|
|
6093
6378
|
model: _ctx.model,
|
|
6094
6379
|
config: tableConfig.value,
|
|
6095
6380
|
onChange: onChangeHandler
|
|
6096
|
-
}, null, 8, ["size", "disabled", "model", "config"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
6381
|
+
}, null, 8, ["size", "disabled", "model", "config"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$c, [
|
|
6097
6382
|
vue.createVNode(vue.unref(design.TMagicButton), {
|
|
6098
6383
|
class: "create-button",
|
|
6099
6384
|
type: "primary",
|
|
@@ -6149,9 +6434,9 @@
|
|
|
6149
6434
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6150
6435
|
"xmlns:xlink": "http://www.w3.org/1999/xlink"
|
|
6151
6436
|
};
|
|
6152
|
-
const _hoisted_2$
|
|
6437
|
+
const _hoisted_2$b = /* @__PURE__ */ vue.createStaticVNode('<defs><rect id="path-1" x="0" y="0" width="32" height="32"></rect></defs><g id="组件规范" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="03图标" transform="translate(-561.000000, -2356.000000)"><g id="icon/line/Universal/code" transform="translate(561.000000, 2356.000000)"><g id="路径"><mask id="mask-2" fill="white"><use xlink:href="#path-1"></use></mask><use id="蒙版" fill="#D8D8D8" opacity="0" xlink:href="#path-1"></use><path d="M21.9284587,7.9482233 L29.8079004,15.827665 C29.9055315,15.9252961 29.9055315,16.0835874 29.8079004,16.1812184 L21.9284587,24.0606602 C21.8308276,24.1582912 21.6725364,24.1582912 21.5749053,24.0606602 L20.3374684,22.8232233 C20.2419143,22.7276698 20.2398813,22.5740096 20.331369,22.4759832 L20.3374687,22.4696702 L26.8027181,16.0044417 L20.3374687,9.53921328 C20.2398372,9.44158265 20.2398369,9.2832914 20.3374679,9.18566017 L21.5749053,7.9482233 C21.6725364,7.85059223 21.8308276,7.85059223 21.9284587,7.9482233 Z M10.3999684,7.9482233 L11.6374053,9.18566017 C11.7329594,9.28121371 11.7349925,9.43487387 11.6435048,9.53290029 L11.637405,9.53921328 L5.17215562,16.0044417 L11.637405,22.4696702 C11.7329593,22.5652236 11.7349926,22.7188837 11.643505,22.8169103 L11.6374053,22.8232233 L10.3999684,24.0606602 C10.3023374,24.1582912 10.1440461,24.1582912 10.046415,24.0606602 L2.1669733,16.1812184 C2.06934223,16.0835874 2.06934223,15.9252961 2.1669733,15.827665 L10.046415,7.9482233 C10.1440461,7.85059223 10.3023374,7.85059223 10.3999684,7.9482233 Z M17.2612532,9.29310422 L18.9262468,9.83189578 C19.0576112,9.87440526 19.1296423,10.0153579 19.0871328,10.1467222 L15.0848232,22.514807 C15.0423138,22.6461714 14.9013612,22.7182025 14.7699968,22.675693 L13.1050032,22.1369014 C12.9736388,22.0943919 12.9016077,21.9534393 12.9441172,21.822075 L16.9464268,9.45399022 C16.9889362,9.32262585 17.1298888,9.25059474 17.2612532,9.29310422 Z" id="形状" fill="#1D1F24" mask="url(#mask-2)"></path></g></g><g id="icon切图" transform="translate(226.000000, 1782.000000)"></g></g></g>', 2);
|
|
6153
6438
|
const _hoisted_4$6 = [
|
|
6154
|
-
_hoisted_2$
|
|
6439
|
+
_hoisted_2$b
|
|
6155
6440
|
];
|
|
6156
6441
|
const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
|
|
6157
6442
|
...{
|
|
@@ -6166,7 +6451,7 @@
|
|
|
6166
6451
|
});
|
|
6167
6452
|
|
|
6168
6453
|
const _hoisted_1$i = { class: "m-fields-key-value" };
|
|
6169
|
-
const _hoisted_2$
|
|
6454
|
+
const _hoisted_2$a = { key: 0 };
|
|
6170
6455
|
const _hoisted_3$6 = /* @__PURE__ */ vue.createElementVNode("span", { class: "m-fileds-key-value-delimiter" }, ":", -1);
|
|
6171
6456
|
const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
|
|
6172
6457
|
...{
|
|
@@ -6227,7 +6512,7 @@
|
|
|
6227
6512
|
};
|
|
6228
6513
|
return (_ctx, _cache) => {
|
|
6229
6514
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
|
|
6230
|
-
!showCode.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
6515
|
+
!showCode.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$a, [
|
|
6231
6516
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(records.value, (item, index) => {
|
|
6232
6517
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
6233
6518
|
class: "m-fields-key-value-item",
|
|
@@ -6301,7 +6586,7 @@
|
|
|
6301
6586
|
});
|
|
6302
6587
|
|
|
6303
6588
|
const _hoisted_1$h = { class: "m-fields-page-fragment-select" };
|
|
6304
|
-
const _hoisted_2$
|
|
6589
|
+
const _hoisted_2$9 = { class: "page-fragment-select-container" };
|
|
6305
6590
|
const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
|
|
6306
6591
|
...{
|
|
6307
6592
|
name: "MFieldsPageFragmentSelect"
|
|
@@ -6349,7 +6634,7 @@
|
|
|
6349
6634
|
return (_ctx, _cache) => {
|
|
6350
6635
|
const _component_m_form_container = vue.resolveComponent("m-form-container");
|
|
6351
6636
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
|
|
6352
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
6637
|
+
vue.createElementVNode("div", _hoisted_2$9, [
|
|
6353
6638
|
vue.createVNode(_component_m_form_container, {
|
|
6354
6639
|
class: "select",
|
|
6355
6640
|
config: selectConfig,
|
|
@@ -6405,10 +6690,11 @@
|
|
|
6405
6690
|
globalThis.document.removeEventListener(UI_SELECT_MODE_EVENT_NAME, clickHandler);
|
|
6406
6691
|
};
|
|
6407
6692
|
const clickHandler = ({ detail }) => {
|
|
6408
|
-
|
|
6409
|
-
|
|
6410
|
-
|
|
6411
|
-
|
|
6693
|
+
const id = utils.getIdFromEl()(detail);
|
|
6694
|
+
if (id) {
|
|
6695
|
+
props.model[props.name] = id;
|
|
6696
|
+
emit("change", id);
|
|
6697
|
+
mForm?.$emit("field-change", props.prop, id);
|
|
6412
6698
|
}
|
|
6413
6699
|
if (cancelHandler) {
|
|
6414
6700
|
cancelHandler();
|
|
@@ -6432,19 +6718,22 @@
|
|
|
6432
6718
|
}
|
|
6433
6719
|
};
|
|
6434
6720
|
const selectNode = async (id) => {
|
|
6435
|
-
|
|
6436
|
-
services
|
|
6437
|
-
services
|
|
6721
|
+
if (!services) return;
|
|
6722
|
+
await services.editorService.select(id);
|
|
6723
|
+
services.editorService.get("stage")?.select(id);
|
|
6724
|
+
services.stageOverlayService.get("stage")?.select(id);
|
|
6438
6725
|
};
|
|
6439
6726
|
const highlight = lodashEs.throttle((id) => {
|
|
6440
|
-
services
|
|
6441
|
-
services
|
|
6442
|
-
services
|
|
6727
|
+
if (!services) return;
|
|
6728
|
+
services.editorService.highlight(id);
|
|
6729
|
+
services.editorService.get("stage")?.highlight(id);
|
|
6730
|
+
services.stageOverlayService.get("stage")?.highlight(id);
|
|
6443
6731
|
}, 150);
|
|
6444
6732
|
const unhighlight = () => {
|
|
6445
|
-
services
|
|
6446
|
-
services
|
|
6447
|
-
services
|
|
6733
|
+
if (!services) return;
|
|
6734
|
+
services.editorService.set("highlightNode", null);
|
|
6735
|
+
services.editorService.get("stage")?.clearHighlight();
|
|
6736
|
+
services.stageOverlayService.get("stage")?.clearHighlight();
|
|
6448
6737
|
};
|
|
6449
6738
|
return (_ctx, _cache) => {
|
|
6450
6739
|
return uiSelectMode.value ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -6532,32 +6821,6 @@
|
|
|
6532
6821
|
}
|
|
6533
6822
|
});
|
|
6534
6823
|
|
|
6535
|
-
const useGetSo = (target, emit) => {
|
|
6536
|
-
let getso;
|
|
6537
|
-
const isDraging = vue.ref(false);
|
|
6538
|
-
vue.onMounted(() => {
|
|
6539
|
-
if (!target.value) return;
|
|
6540
|
-
getso = new Gesto(target.value, {
|
|
6541
|
-
container: window,
|
|
6542
|
-
pinchOutside: true
|
|
6543
|
-
}).on("drag", (e) => {
|
|
6544
|
-
if (!target.value) return;
|
|
6545
|
-
emit("change", e);
|
|
6546
|
-
}).on("dragStart", () => {
|
|
6547
|
-
isDraging.value = true;
|
|
6548
|
-
}).on("dragEnd", () => {
|
|
6549
|
-
isDraging.value = false;
|
|
6550
|
-
});
|
|
6551
|
-
});
|
|
6552
|
-
vue.onBeforeUnmount(() => {
|
|
6553
|
-
getso?.unset();
|
|
6554
|
-
isDraging.value = false;
|
|
6555
|
-
});
|
|
6556
|
-
return {
|
|
6557
|
-
isDraging
|
|
6558
|
-
};
|
|
6559
|
-
};
|
|
6560
|
-
|
|
6561
6824
|
const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
|
|
6562
6825
|
...{
|
|
6563
6826
|
name: "MEditorResizer"
|
|
@@ -6744,7 +7007,7 @@
|
|
|
6744
7007
|
key: 1,
|
|
6745
7008
|
class: "menu-item-text"
|
|
6746
7009
|
};
|
|
6747
|
-
const _hoisted_2$
|
|
7010
|
+
const _hoisted_2$8 = { class: "el-dropdown-link menubar-menu-button" };
|
|
6748
7011
|
const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
|
|
6749
7012
|
...{
|
|
6750
7013
|
name: "MEditorToolButton"
|
|
@@ -6881,7 +7144,7 @@
|
|
|
6881
7144
|
})) : vue.createCommentVNode("", true)
|
|
6882
7145
|
]),
|
|
6883
7146
|
default: vue.withCtx(() => [
|
|
6884
|
-
vue.createElementVNode("span", _hoisted_2$
|
|
7147
|
+
vue.createElementVNode("span", _hoisted_2$8, [
|
|
6885
7148
|
vue.createTextVNode(vue.toDisplayString(_ctx.data.text), 1),
|
|
6886
7149
|
vue.createVNode(vue.unref(design.TMagicIcon), { class: "el-icon--right" }, {
|
|
6887
7150
|
default: vue.withCtx(() => [
|
|
@@ -7205,7 +7468,7 @@
|
|
|
7205
7468
|
});
|
|
7206
7469
|
|
|
7207
7470
|
const _hoisted_1$c = { class: "m-editor-page-bar-tabs" };
|
|
7208
|
-
const _hoisted_2$
|
|
7471
|
+
const _hoisted_2$7 = ["page-id", "onClick"];
|
|
7209
7472
|
const _hoisted_3$5 = { class: "m-editor-page-bar-title" };
|
|
7210
7473
|
const _hoisted_4$5 = ["title"];
|
|
7211
7474
|
const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -7359,7 +7622,7 @@
|
|
|
7359
7622
|
]),
|
|
7360
7623
|
_: 2
|
|
7361
7624
|
}, 1024)
|
|
7362
|
-
], 10, _hoisted_2$
|
|
7625
|
+
], 10, _hoisted_2$7);
|
|
7363
7626
|
}), 128))
|
|
7364
7627
|
]),
|
|
7365
7628
|
_: 3
|
|
@@ -7370,7 +7633,7 @@
|
|
|
7370
7633
|
});
|
|
7371
7634
|
|
|
7372
7635
|
const _hoisted_1$b = { class: "m-editor-empty-panel" };
|
|
7373
|
-
const _hoisted_2$
|
|
7636
|
+
const _hoisted_2$6 = { class: "m-editor-empty-content" };
|
|
7374
7637
|
const _hoisted_3$4 = /* @__PURE__ */ vue.createElementVNode("p", null, "新增页面", -1);
|
|
7375
7638
|
const _hoisted_4$4 = /* @__PURE__ */ vue.createElementVNode("p", null, "新增页面片", -1);
|
|
7376
7639
|
const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -7396,7 +7659,7 @@
|
|
|
7396
7659
|
};
|
|
7397
7660
|
return (_ctx, _cache) => {
|
|
7398
7661
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
|
|
7399
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
7662
|
+
vue.createElementVNode("div", _hoisted_2$6, [
|
|
7400
7663
|
vue.createElementVNode("div", {
|
|
7401
7664
|
class: "m-editor-empty-button",
|
|
7402
7665
|
onClick: _cache[0] || (_cache[0] = ($event) => clickHandler(vue.unref(schema.NodeType).PAGE))
|
|
@@ -7920,18 +8183,8 @@
|
|
|
7920
8183
|
}
|
|
7921
8184
|
});
|
|
7922
8185
|
|
|
7923
|
-
const updateStatus = (nodeStatusMap, id, status) => {
|
|
7924
|
-
const nodeStatus = nodeStatusMap.get(id);
|
|
7925
|
-
if (!nodeStatus) return;
|
|
7926
|
-
utils.getKeys(status).forEach((key) => {
|
|
7927
|
-
if (nodeStatus[key] !== void 0 && status[key] !== void 0) {
|
|
7928
|
-
nodeStatus[key] = Boolean(status[key]);
|
|
7929
|
-
}
|
|
7930
|
-
});
|
|
7931
|
-
};
|
|
7932
|
-
|
|
7933
8186
|
const _hoisted_1$9 = ["draggable", "data-node-id", "data-parent-id", "data-parents-id", "data-is-container"];
|
|
7934
|
-
const _hoisted_2$
|
|
8187
|
+
const _hoisted_2$5 = { class: "tree-node-label" };
|
|
7935
8188
|
const _hoisted_3$3 = { class: "tree-node-tool" };
|
|
7936
8189
|
const _hoisted_4$3 = {
|
|
7937
8190
|
key: 0,
|
|
@@ -8021,7 +8274,7 @@
|
|
|
8021
8274
|
onClick: nodeClickHandler
|
|
8022
8275
|
}, [
|
|
8023
8276
|
vue.renderSlot(_ctx.$slots, "tree-node-content", { data: _ctx.data }, () => [
|
|
8024
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
8277
|
+
vue.createElementVNode("div", _hoisted_2$5, [
|
|
8025
8278
|
vue.renderSlot(_ctx.$slots, "tree-node-label", { data: _ctx.data }, () => [
|
|
8026
8279
|
vue.createTextVNode(vue.toDisplayString(`${_ctx.data.name} (${_ctx.data.id})`), 1)
|
|
8027
8280
|
])
|
|
@@ -8115,76 +8368,6 @@
|
|
|
8115
8368
|
}
|
|
8116
8369
|
});
|
|
8117
8370
|
|
|
8118
|
-
const useFilter = (nodeData, nodeStatusMap, filterNodeMethod) => {
|
|
8119
|
-
const filterIsMatch = (value, data) => {
|
|
8120
|
-
const string = !Array.isArray(value) ? [value] : value;
|
|
8121
|
-
if (!string.length) {
|
|
8122
|
-
return true;
|
|
8123
|
-
}
|
|
8124
|
-
return string.some((v) => filterNodeMethod(v, data));
|
|
8125
|
-
};
|
|
8126
|
-
const filter = (text) => {
|
|
8127
|
-
if (!nodeData.value.length) return;
|
|
8128
|
-
nodeData.value.forEach((node) => {
|
|
8129
|
-
traverseNode(node, (node2, parents) => {
|
|
8130
|
-
if (!nodeStatusMap.value) return;
|
|
8131
|
-
const visible = filterIsMatch(text, node2);
|
|
8132
|
-
if (visible && parents.length) {
|
|
8133
|
-
parents.forEach((parent) => {
|
|
8134
|
-
updateStatus(nodeStatusMap.value, parent.id, {
|
|
8135
|
-
visible,
|
|
8136
|
-
expand: true
|
|
8137
|
-
});
|
|
8138
|
-
});
|
|
8139
|
-
}
|
|
8140
|
-
updateStatus(nodeStatusMap.value, node2.id, {
|
|
8141
|
-
visible
|
|
8142
|
-
});
|
|
8143
|
-
});
|
|
8144
|
-
});
|
|
8145
|
-
};
|
|
8146
|
-
return {
|
|
8147
|
-
filterText: vue.ref(""),
|
|
8148
|
-
filterTextChangeHandler(text) {
|
|
8149
|
-
filter(text);
|
|
8150
|
-
}
|
|
8151
|
-
};
|
|
8152
|
-
};
|
|
8153
|
-
|
|
8154
|
-
const createPageNodeStatus$1 = (nodeData, initialLayerNodeStatus) => {
|
|
8155
|
-
const map = /* @__PURE__ */ new Map();
|
|
8156
|
-
nodeData.forEach(
|
|
8157
|
-
(node) => traverseNode(node, (node2) => {
|
|
8158
|
-
map.set(
|
|
8159
|
-
node2.id,
|
|
8160
|
-
initialLayerNodeStatus?.get(node2.id) || {
|
|
8161
|
-
visible: true,
|
|
8162
|
-
expand: false,
|
|
8163
|
-
selected: false,
|
|
8164
|
-
draggable: false
|
|
8165
|
-
}
|
|
8166
|
-
);
|
|
8167
|
-
})
|
|
8168
|
-
);
|
|
8169
|
-
return map;
|
|
8170
|
-
};
|
|
8171
|
-
const useNodeStatus$1 = (nodeData) => {
|
|
8172
|
-
const nodeStatusMap = vue.ref(/* @__PURE__ */ new Map());
|
|
8173
|
-
vue.watch(
|
|
8174
|
-
nodeData,
|
|
8175
|
-
(nodeData2) => {
|
|
8176
|
-
nodeStatusMap.value = createPageNodeStatus$1(nodeData2, nodeStatusMap.value);
|
|
8177
|
-
},
|
|
8178
|
-
{
|
|
8179
|
-
immediate: true,
|
|
8180
|
-
deep: true
|
|
8181
|
-
}
|
|
8182
|
-
);
|
|
8183
|
-
return {
|
|
8184
|
-
nodeStatusMap
|
|
8185
|
-
};
|
|
8186
|
-
};
|
|
8187
|
-
|
|
8188
8371
|
const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
8189
8372
|
...{
|
|
8190
8373
|
name: "MEditorCodeBlockList"
|
|
@@ -8668,7 +8851,6 @@
|
|
|
8668
8851
|
});
|
|
8669
8852
|
|
|
8670
8853
|
const _hoisted_1$6 = { class: "search-wrapper" };
|
|
8671
|
-
const _hoisted_2$5 = { class: "data-source-list-panel-add-menu" };
|
|
8672
8854
|
const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
8673
8855
|
...{
|
|
8674
8856
|
name: "MEditorDataSourceListPanel"
|
|
@@ -8717,7 +8899,9 @@
|
|
|
8717
8899
|
vue.createVNode(_sfc_main$o, { onSearch: filterTextChangeHandler }),
|
|
8718
8900
|
vue.unref(editable) ? (vue.openBlock(), vue.createBlock(vue.unref(design.TMagicPopover), {
|
|
8719
8901
|
key: 0,
|
|
8720
|
-
placement: "right"
|
|
8902
|
+
placement: "right",
|
|
8903
|
+
trigger: "hover",
|
|
8904
|
+
"popper-class": "data-source-list-panel-add-menu"
|
|
8721
8905
|
}, {
|
|
8722
8906
|
reference: vue.withCtx(() => [
|
|
8723
8907
|
vue.createVNode(vue.unref(design.TMagicButton), {
|
|
@@ -8730,21 +8914,19 @@
|
|
|
8730
8914
|
_: 1
|
|
8731
8915
|
})
|
|
8732
8916
|
]),
|
|
8733
|
-
default: vue.withCtx(() => [
|
|
8734
|
-
vue.
|
|
8735
|
-
|
|
8736
|
-
|
|
8737
|
-
|
|
8738
|
-
|
|
8739
|
-
|
|
8740
|
-
|
|
8741
|
-
|
|
8742
|
-
|
|
8743
|
-
|
|
8744
|
-
|
|
8745
|
-
|
|
8746
|
-
}), 128))
|
|
8747
|
-
])
|
|
8917
|
+
default: vue.withCtx(() => [
|
|
8918
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(datasourceTypeList.value, (item, index) => {
|
|
8919
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$y, {
|
|
8920
|
+
data: {
|
|
8921
|
+
type: "button",
|
|
8922
|
+
text: item.text,
|
|
8923
|
+
handler: () => {
|
|
8924
|
+
addHandler(item.type);
|
|
8925
|
+
}
|
|
8926
|
+
},
|
|
8927
|
+
key: index
|
|
8928
|
+
}, null, 8, ["data"]);
|
|
8929
|
+
}), 128))
|
|
8748
8930
|
]),
|
|
8749
8931
|
_: 1
|
|
8750
8932
|
})) : vue.createCommentVNode("", true),
|
|
@@ -9903,7 +10085,22 @@
|
|
|
9903
10085
|
const props = __props;
|
|
9904
10086
|
const services = vue.inject("services");
|
|
9905
10087
|
const columnLeftWidth = vue.computed(() => services?.uiService.get("columnWidth")[ColumnLayout.LEFT] || 0);
|
|
9906
|
-
const { height:
|
|
10088
|
+
const { height: editorContentHeight } = useEditorContentHeight();
|
|
10089
|
+
const columnLeftHeight = vue.ref(0);
|
|
10090
|
+
const unWatchEditorContentHeight = vue.watch(
|
|
10091
|
+
editorContentHeight,
|
|
10092
|
+
(height) => {
|
|
10093
|
+
if (height) {
|
|
10094
|
+
columnLeftHeight.value = height * 0.5;
|
|
10095
|
+
vue.nextTick().then(() => {
|
|
10096
|
+
unWatchEditorContentHeight();
|
|
10097
|
+
});
|
|
10098
|
+
}
|
|
10099
|
+
},
|
|
10100
|
+
{
|
|
10101
|
+
immediate: true
|
|
10102
|
+
}
|
|
10103
|
+
);
|
|
9907
10104
|
const activeTabName = vue.ref(props.data?.status);
|
|
9908
10105
|
const getItemConfig = (data) => {
|
|
9909
10106
|
const map = {
|
|
@@ -10157,8 +10354,8 @@
|
|
|
10157
10354
|
key: config.$key ?? index,
|
|
10158
10355
|
visible: vue.unref(floatBoxStates)[config.$key].status,
|
|
10159
10356
|
"onUpdate:visible": ($event) => vue.unref(floatBoxStates)[config.$key].status = $event,
|
|
10160
|
-
height:
|
|
10161
|
-
"onUpdate:height": _cache[1] || (_cache[1] = ($event) =>
|
|
10357
|
+
height: columnLeftHeight.value,
|
|
10358
|
+
"onUpdate:height": _cache[1] || (_cache[1] = ($event) => columnLeftHeight.value = $event),
|
|
10162
10359
|
width: columnLeftWidth.value,
|
|
10163
10360
|
title: config.text,
|
|
10164
10361
|
position: {
|
|
@@ -10184,133 +10381,6 @@
|
|
|
10184
10381
|
}
|
|
10185
10382
|
});
|
|
10186
10383
|
|
|
10187
|
-
class ScrollViewer extends events.EventEmitter {
|
|
10188
|
-
container;
|
|
10189
|
-
target;
|
|
10190
|
-
zoom = 1;
|
|
10191
|
-
scrollLeft = 0;
|
|
10192
|
-
scrollTop = 0;
|
|
10193
|
-
scrollHeight = 0;
|
|
10194
|
-
scrollWidth = 0;
|
|
10195
|
-
width = 0;
|
|
10196
|
-
height = 0;
|
|
10197
|
-
translateXCorrectionValue = 0;
|
|
10198
|
-
translateYCorrectionValue = 0;
|
|
10199
|
-
correctionScrollSize = {
|
|
10200
|
-
width: 0,
|
|
10201
|
-
height: 0
|
|
10202
|
-
};
|
|
10203
|
-
resizeObserver = new ResizeObserver(() => {
|
|
10204
|
-
this.setSize();
|
|
10205
|
-
this.setScrollSize();
|
|
10206
|
-
});
|
|
10207
|
-
constructor(options) {
|
|
10208
|
-
super();
|
|
10209
|
-
this.container = options.container;
|
|
10210
|
-
this.target = options.target;
|
|
10211
|
-
this.zoom = options.zoom;
|
|
10212
|
-
if (this.correctionScrollSize) {
|
|
10213
|
-
this.correctionScrollSize = {
|
|
10214
|
-
...this.correctionScrollSize,
|
|
10215
|
-
...options.correctionScrollSize
|
|
10216
|
-
};
|
|
10217
|
-
}
|
|
10218
|
-
this.container.addEventListener("wheel", this.wheelHandler, false);
|
|
10219
|
-
this.setSize();
|
|
10220
|
-
this.setScrollSize();
|
|
10221
|
-
this.resizeObserver.observe(this.container);
|
|
10222
|
-
this.resizeObserver.observe(this.target);
|
|
10223
|
-
}
|
|
10224
|
-
destroy() {
|
|
10225
|
-
this.resizeObserver.disconnect();
|
|
10226
|
-
this.container.removeEventListener("wheel", this.wheelHandler, false);
|
|
10227
|
-
this.removeAllListeners();
|
|
10228
|
-
}
|
|
10229
|
-
setZoom(zoom) {
|
|
10230
|
-
this.zoom = zoom;
|
|
10231
|
-
this.setScrollSize();
|
|
10232
|
-
}
|
|
10233
|
-
scrollTo({ left, top }) {
|
|
10234
|
-
if (typeof left !== "undefined") {
|
|
10235
|
-
this.scrollLeft = left;
|
|
10236
|
-
}
|
|
10237
|
-
if (typeof top !== "undefined") {
|
|
10238
|
-
this.scrollTop = top;
|
|
10239
|
-
}
|
|
10240
|
-
const translateX = -this.scrollLeft + this.translateXCorrectionValue;
|
|
10241
|
-
const translateY = -this.scrollTop + this.translateYCorrectionValue;
|
|
10242
|
-
this.target.style.transform = `translate(${translateX}px, ${translateY}px)`;
|
|
10243
|
-
}
|
|
10244
|
-
wheelHandler = (event) => {
|
|
10245
|
-
const { deltaX, deltaY, currentTarget } = event;
|
|
10246
|
-
if (currentTarget !== this.container) return;
|
|
10247
|
-
let top;
|
|
10248
|
-
if (this.scrollHeight > this.height) {
|
|
10249
|
-
top = this.scrollTop + this.getPos(deltaY, this.scrollTop, this.scrollHeight, this.height);
|
|
10250
|
-
}
|
|
10251
|
-
let left;
|
|
10252
|
-
if (this.scrollWidth > this.width) {
|
|
10253
|
-
left = this.scrollLeft + this.getPos(deltaX, this.scrollLeft, this.scrollWidth, this.width);
|
|
10254
|
-
}
|
|
10255
|
-
this.scrollTo({ left, top });
|
|
10256
|
-
this.emit("scroll", {
|
|
10257
|
-
scrollLeft: this.scrollLeft,
|
|
10258
|
-
scrollTop: this.scrollTop,
|
|
10259
|
-
scrollHeight: this.scrollHeight,
|
|
10260
|
-
scrollWidth: this.scrollWidth
|
|
10261
|
-
});
|
|
10262
|
-
};
|
|
10263
|
-
getPos(delta, scrollPos, scrollSize, size) {
|
|
10264
|
-
let pos = 0;
|
|
10265
|
-
if (delta < 0) {
|
|
10266
|
-
if (scrollPos > 0) {
|
|
10267
|
-
pos = Math.max(delta, -scrollPos);
|
|
10268
|
-
}
|
|
10269
|
-
} else {
|
|
10270
|
-
const leftPos = scrollSize - size - scrollPos;
|
|
10271
|
-
if (leftPos > 0) {
|
|
10272
|
-
pos = Math.min(delta, leftPos);
|
|
10273
|
-
}
|
|
10274
|
-
}
|
|
10275
|
-
return pos;
|
|
10276
|
-
}
|
|
10277
|
-
setScrollSize = () => {
|
|
10278
|
-
const targetRect = this.target.getBoundingClientRect();
|
|
10279
|
-
this.scrollWidth = targetRect.width * this.zoom + this.correctionScrollSize.width;
|
|
10280
|
-
const targetMarginTop = Number(this.target.style.marginTop) || 0;
|
|
10281
|
-
this.scrollHeight = (targetRect.height + targetMarginTop) * this.zoom + this.correctionScrollSize.height;
|
|
10282
|
-
let left;
|
|
10283
|
-
let top;
|
|
10284
|
-
if (this.scrollWidth < this.width) {
|
|
10285
|
-
left = 0;
|
|
10286
|
-
this.translateXCorrectionValue = 0;
|
|
10287
|
-
} else {
|
|
10288
|
-
this.translateXCorrectionValue = (this.scrollWidth - this.width) / 2;
|
|
10289
|
-
}
|
|
10290
|
-
if (this.scrollHeight < this.height) {
|
|
10291
|
-
top = 0;
|
|
10292
|
-
this.translateYCorrectionValue = 0;
|
|
10293
|
-
} else {
|
|
10294
|
-
this.translateYCorrectionValue = (this.scrollHeight - this.height) / 2;
|
|
10295
|
-
}
|
|
10296
|
-
this.scrollTo({
|
|
10297
|
-
left,
|
|
10298
|
-
top
|
|
10299
|
-
});
|
|
10300
|
-
this.emit("scroll", {
|
|
10301
|
-
scrollLeft: this.scrollLeft,
|
|
10302
|
-
scrollTop: this.scrollTop,
|
|
10303
|
-
scrollHeight: this.scrollHeight,
|
|
10304
|
-
scrollWidth: this.scrollWidth
|
|
10305
|
-
});
|
|
10306
|
-
};
|
|
10307
|
-
setSize = () => {
|
|
10308
|
-
const { width, height } = this.container.getBoundingClientRect();
|
|
10309
|
-
this.width = width;
|
|
10310
|
-
this.height = height;
|
|
10311
|
-
};
|
|
10312
|
-
}
|
|
10313
|
-
|
|
10314
10384
|
const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
10315
10385
|
...{
|
|
10316
10386
|
name: "MEditorScrollBar"
|
|
@@ -10526,7 +10596,7 @@
|
|
|
10526
10596
|
vue.nextTick(() => unWatch());
|
|
10527
10597
|
stage2.on("select", (el, event) => {
|
|
10528
10598
|
const els = stage2.renderer.getElementsFromPoint(event) || [];
|
|
10529
|
-
const ids = els.map((el2) =>
|
|
10599
|
+
const ids = els.map((el2) => utils.getIdFromEl()(el2)).filter((id) => Boolean(id));
|
|
10530
10600
|
buttonVisible.value = ids.length > 3;
|
|
10531
10601
|
filterTextChangeHandler(ids);
|
|
10532
10602
|
});
|
|
@@ -10955,8 +11025,9 @@
|
|
|
10955
11025
|
const doc = stage?.renderer.contentWindow?.document;
|
|
10956
11026
|
const parentEl = doc?.querySelector(`.${stageOptions?.containerHighlightClassName}`);
|
|
10957
11027
|
let parent = page.value;
|
|
10958
|
-
|
|
10959
|
-
|
|
11028
|
+
const parentId = utils.getIdFromEl()(parentEl);
|
|
11029
|
+
if (parentId) {
|
|
11030
|
+
parent = services?.editorService.getNodeById(parentId, false);
|
|
10960
11031
|
}
|
|
10961
11032
|
if (parent && stageContainer.value && stage) {
|
|
10962
11033
|
const layout = await services?.editorService.getLayout(parent);
|
|
@@ -11534,52 +11605,6 @@
|
|
|
11534
11605
|
}
|
|
11535
11606
|
const dataSourceService = new DataSource();
|
|
11536
11607
|
|
|
11537
|
-
globalThis.requestIdleCallback = globalThis.requestIdleCallback || function(cb) {
|
|
11538
|
-
const start = Date.now();
|
|
11539
|
-
return setTimeout(() => {
|
|
11540
|
-
cb({
|
|
11541
|
-
didTimeout: false,
|
|
11542
|
-
timeRemaining() {
|
|
11543
|
-
return Math.max(0, 50 - (Date.now() - start));
|
|
11544
|
-
}
|
|
11545
|
-
});
|
|
11546
|
-
}, 1);
|
|
11547
|
-
};
|
|
11548
|
-
class IdleTask extends events.EventEmitter {
|
|
11549
|
-
taskList = [];
|
|
11550
|
-
taskHandle = null;
|
|
11551
|
-
enqueueTask(taskHandler, taskData) {
|
|
11552
|
-
this.taskList.push({
|
|
11553
|
-
handler: taskHandler,
|
|
11554
|
-
data: taskData
|
|
11555
|
-
});
|
|
11556
|
-
if (!this.taskHandle) {
|
|
11557
|
-
this.taskHandle = globalThis.requestIdleCallback(this.runTaskQueue.bind(this), { timeout: 1e4 });
|
|
11558
|
-
}
|
|
11559
|
-
}
|
|
11560
|
-
on(eventName, listener) {
|
|
11561
|
-
return super.on(eventName, listener);
|
|
11562
|
-
}
|
|
11563
|
-
once(eventName, listener) {
|
|
11564
|
-
return super.once(eventName, listener);
|
|
11565
|
-
}
|
|
11566
|
-
emit(eventName, ...args) {
|
|
11567
|
-
return super.emit(eventName, ...args);
|
|
11568
|
-
}
|
|
11569
|
-
runTaskQueue(deadline) {
|
|
11570
|
-
while ((deadline.timeRemaining() > 15 || deadline.didTimeout) && this.taskList.length) {
|
|
11571
|
-
const task = this.taskList.shift();
|
|
11572
|
-
task.handler(task.data);
|
|
11573
|
-
}
|
|
11574
|
-
if (this.taskList.length) {
|
|
11575
|
-
this.taskHandle = globalThis.requestIdleCallback(this.runTaskQueue.bind(this), { timeout: 1e4 });
|
|
11576
|
-
} else {
|
|
11577
|
-
this.taskHandle = 0;
|
|
11578
|
-
this.emit("finish");
|
|
11579
|
-
}
|
|
11580
|
-
}
|
|
11581
|
-
}
|
|
11582
|
-
|
|
11583
11608
|
const idleTask = new IdleTask();
|
|
11584
11609
|
class Dep extends BaseService {
|
|
11585
11610
|
watcher = new dep.Watcher({ initialTargets: vue.reactive({}) });
|
|
@@ -12021,7 +12046,8 @@
|
|
|
12021
12046
|
subStage?.renderer.contentWindow?.magic.onPageElUpdate(wrapDiv);
|
|
12022
12047
|
});
|
|
12023
12048
|
if (await stageOptions?.canSelect?.(contentEl)) {
|
|
12024
|
-
|
|
12049
|
+
const id = utils.getIdFromEl()(contentEl);
|
|
12050
|
+
id && subStage?.select(id);
|
|
12025
12051
|
}
|
|
12026
12052
|
}
|
|
12027
12053
|
updateHandler = () => {
|
|
@@ -12072,7 +12098,7 @@
|
|
|
12072
12098
|
eventMethodList: () => ({}),
|
|
12073
12099
|
datasourceValues: () => ({}),
|
|
12074
12100
|
datasourceConfigs: () => ({}),
|
|
12075
|
-
canSelect: (el) => Boolean(
|
|
12101
|
+
canSelect: (el) => Boolean(utils.getIdFromEl()(el)),
|
|
12076
12102
|
isContainer: (el) => el.classList.contains("magic-ui-container"),
|
|
12077
12103
|
codeOptions: () => ({})
|
|
12078
12104
|
};
|
|
@@ -12217,6 +12243,44 @@
|
|
|
12217
12243
|
});
|
|
12218
12244
|
};
|
|
12219
12245
|
const initServiceEvents = (props, emit, { editorService, codeBlockService, dataSourceService, depService }) => {
|
|
12246
|
+
const rootChangeHandler = async (value, preValue) => {
|
|
12247
|
+
if (!value) return;
|
|
12248
|
+
value.codeBlocks = value.codeBlocks || {};
|
|
12249
|
+
value.dataSources = value.dataSources || [];
|
|
12250
|
+
codeBlockService.setCodeDsl(value.codeBlocks);
|
|
12251
|
+
dataSourceService.set("dataSources", value.dataSources);
|
|
12252
|
+
depService.removeTargets(dep.DepTargetType.CODE_BLOCK);
|
|
12253
|
+
Object.entries(value.codeBlocks).forEach(([id, code]) => {
|
|
12254
|
+
depService.addTarget(dep.createCodeBlockTarget(id, code));
|
|
12255
|
+
});
|
|
12256
|
+
dataSourceService.get("dataSources").forEach((ds) => {
|
|
12257
|
+
initDataSourceDepTarget(ds);
|
|
12258
|
+
});
|
|
12259
|
+
if (Array.isArray(value.items)) {
|
|
12260
|
+
collectIdle(value.items, true);
|
|
12261
|
+
} else {
|
|
12262
|
+
depService.clear();
|
|
12263
|
+
delete value.dataSourceDeps;
|
|
12264
|
+
delete value.dataSourceCondDeps;
|
|
12265
|
+
}
|
|
12266
|
+
const nodeId = editorService.get("node")?.id || props.defaultSelected;
|
|
12267
|
+
let node;
|
|
12268
|
+
if (nodeId) {
|
|
12269
|
+
node = editorService.getNodeById(nodeId);
|
|
12270
|
+
}
|
|
12271
|
+
if (node && node !== value) {
|
|
12272
|
+
await editorService.select(node.id);
|
|
12273
|
+
} else if (value.items?.length) {
|
|
12274
|
+
await editorService.select(value.items[0]);
|
|
12275
|
+
} else if (value.id) {
|
|
12276
|
+
editorService.set("nodes", [value]);
|
|
12277
|
+
editorService.set("parent", null);
|
|
12278
|
+
editorService.set("page", null);
|
|
12279
|
+
}
|
|
12280
|
+
if (vue.toRaw(value) !== vue.toRaw(preValue)) {
|
|
12281
|
+
emit("update:modelValue", value);
|
|
12282
|
+
}
|
|
12283
|
+
};
|
|
12220
12284
|
const getApp = () => {
|
|
12221
12285
|
const stage = editorService.get("stage");
|
|
12222
12286
|
return stage?.renderer.runtime?.getApp?.();
|
|
@@ -12296,45 +12360,6 @@
|
|
|
12296
12360
|
depService.addTarget(dep.createDataSourceMethodTarget(ds, vue.reactive({})));
|
|
12297
12361
|
depService.addTarget(dep.createDataSourceCondTarget(ds, vue.reactive({})));
|
|
12298
12362
|
};
|
|
12299
|
-
const rootChangeHandler = async (value, preValue) => {
|
|
12300
|
-
if (!value) return;
|
|
12301
|
-
value.codeBlocks = value.codeBlocks || {};
|
|
12302
|
-
value.dataSources = value.dataSources || [];
|
|
12303
|
-
codeBlockService.setCodeDsl(value.codeBlocks);
|
|
12304
|
-
dataSourceService.set("dataSources", value.dataSources);
|
|
12305
|
-
depService.removeTargets(dep.DepTargetType.CODE_BLOCK);
|
|
12306
|
-
Object.entries(value.codeBlocks).forEach(([id, code]) => {
|
|
12307
|
-
depService.addTarget(dep.createCodeBlockTarget(id, code));
|
|
12308
|
-
});
|
|
12309
|
-
dataSourceService.get("dataSources").forEach((ds) => {
|
|
12310
|
-
initDataSourceDepTarget(ds);
|
|
12311
|
-
});
|
|
12312
|
-
if (Array.isArray(value.items)) {
|
|
12313
|
-
value.items.forEach((page) => {
|
|
12314
|
-
depService.collectIdle([page], { pageId: page.id }, true);
|
|
12315
|
-
});
|
|
12316
|
-
} else {
|
|
12317
|
-
depService.clear();
|
|
12318
|
-
delete value.dataSourceDeps;
|
|
12319
|
-
}
|
|
12320
|
-
const nodeId = editorService.get("node")?.id || props.defaultSelected;
|
|
12321
|
-
let node;
|
|
12322
|
-
if (nodeId) {
|
|
12323
|
-
node = editorService.getNodeById(nodeId);
|
|
12324
|
-
}
|
|
12325
|
-
if (node && node !== value) {
|
|
12326
|
-
await editorService.select(node.id);
|
|
12327
|
-
} else if (value.items?.length) {
|
|
12328
|
-
await editorService.select(value.items[0]);
|
|
12329
|
-
} else if (value.id) {
|
|
12330
|
-
editorService.set("nodes", [value]);
|
|
12331
|
-
editorService.set("parent", null);
|
|
12332
|
-
editorService.set("page", null);
|
|
12333
|
-
}
|
|
12334
|
-
if (vue.toRaw(value) !== vue.toRaw(preValue)) {
|
|
12335
|
-
emit("update:modelValue", value);
|
|
12336
|
-
}
|
|
12337
|
-
};
|
|
12338
12363
|
const collectIdle = (nodes, deep) => {
|
|
12339
12364
|
nodes.forEach((node) => {
|
|
12340
12365
|
let pageId;
|
|
@@ -12357,7 +12382,7 @@
|
|
|
12357
12382
|
depService.clear(nodes);
|
|
12358
12383
|
};
|
|
12359
12384
|
const historyChangeHandler = (page) => {
|
|
12360
|
-
|
|
12385
|
+
collectIdle([page], true);
|
|
12361
12386
|
};
|
|
12362
12387
|
editorService.on("history-change", historyChangeHandler);
|
|
12363
12388
|
editorService.on("root-change", rootChangeHandler);
|
|
@@ -12384,9 +12409,7 @@
|
|
|
12384
12409
|
const root = editorService.get("root");
|
|
12385
12410
|
removeDataSourceTarget(config.id);
|
|
12386
12411
|
initDataSourceDepTarget(config);
|
|
12387
|
-
(root?.items || [])
|
|
12388
|
-
depService.collectIdle([page], { pageId: page.id }, true);
|
|
12389
|
-
});
|
|
12412
|
+
collectIdle(root?.items || [], true);
|
|
12390
12413
|
};
|
|
12391
12414
|
const removeDataSourceTarget = (id) => {
|
|
12392
12415
|
depService.removeTarget(id, dep.DepTargetType.DATA_SOURCE);
|
|
@@ -12697,6 +12720,7 @@
|
|
|
12697
12720
|
exports.FloatingBox = _sfc_main$Q;
|
|
12698
12721
|
exports.H_GUIDE_LINE_STORAGE_KEY = H_GUIDE_LINE_STORAGE_KEY;
|
|
12699
12722
|
exports.Icon = _sfc_main$Y;
|
|
12723
|
+
exports.IdleTask = IdleTask;
|
|
12700
12724
|
exports.KeyBindingCommand = KeyBindingCommand;
|
|
12701
12725
|
exports.KeyValue = _sfc_main$D;
|
|
12702
12726
|
exports.Keys = Keys;
|
|
@@ -12707,12 +12731,16 @@
|
|
|
12707
12731
|
exports.PageFragmentSelect = _sfc_main$C;
|
|
12708
12732
|
exports.PropsPanel = _sfc_main$p;
|
|
12709
12733
|
exports.Resizer = _sfc_main$A;
|
|
12734
|
+
exports.ScrollViewer = ScrollViewer;
|
|
12710
12735
|
exports.SideItemKey = SideItemKey;
|
|
12711
12736
|
exports.SplitView = _sfc_main$z;
|
|
12712
12737
|
exports.TMagicCodeEditor = _sfc_main$X;
|
|
12713
12738
|
exports.TMagicEditor = _sfc_main;
|
|
12714
12739
|
exports.ToolButton = _sfc_main$y;
|
|
12740
|
+
exports.Tree = _sfc_main$m;
|
|
12741
|
+
exports.TreeNode = _sfc_main$n;
|
|
12715
12742
|
exports.UI_SELECT_MODE_EVENT_NAME = UI_SELECT_MODE_EVENT_NAME;
|
|
12743
|
+
exports.UndoRedo = UndoRedo;
|
|
12716
12744
|
exports.V_GUIDE_LINE_STORAGE_KEY = V_GUIDE_LINE_STORAGE_KEY;
|
|
12717
12745
|
exports.advancedTabConfig = advancedTabConfig;
|
|
12718
12746
|
exports.arrayOptions = arrayOptions;
|
|
@@ -12766,10 +12794,15 @@
|
|
|
12766
12794
|
exports.styleTabConfig = styleTabConfig;
|
|
12767
12795
|
exports.traverseNode = traverseNode;
|
|
12768
12796
|
exports.uiService = uiService;
|
|
12797
|
+
exports.updateStatus = updateStatus;
|
|
12769
12798
|
exports.useCodeBlockEdit = useCodeBlockEdit;
|
|
12770
12799
|
exports.useDataSourceMethod = useDataSourceMethod;
|
|
12771
12800
|
exports.useEditorContentHeight = useEditorContentHeight;
|
|
12801
|
+
exports.useFilter = useFilter;
|
|
12772
12802
|
exports.useFloatBox = useFloatBox;
|
|
12803
|
+
exports.useGetSo = useGetSo;
|
|
12804
|
+
exports.useNextFloatBoxPosition = useNextFloatBoxPosition;
|
|
12805
|
+
exports.useNodeStatus = useNodeStatus$1;
|
|
12773
12806
|
exports.useStage = useStage;
|
|
12774
12807
|
exports.useWindowRect = useWindowRect;
|
|
12775
12808
|
exports.warn = warn;
|