@tmagic/editor 1.7.7 → 1.7.8-beta.2

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.
Files changed (242) hide show
  1. package/LICENSE +235 -164
  2. package/dist/es/Editor.js +5 -0
  3. package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +214 -0
  4. package/dist/es/_virtual/_plugin-vue_export-helper.js +8 -0
  5. package/dist/es/components/CodeBlockEditor.js +5 -0
  6. package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +337 -0
  7. package/dist/es/components/CodeParams.js +5 -0
  8. package/dist/es/components/CodeParams.vue_vue_type_script_setup_true_lang.js +63 -0
  9. package/dist/es/components/ContentMenu.js +5 -0
  10. package/dist/es/components/ContentMenu.vue_vue_type_script_setup_true_lang.js +160 -0
  11. package/dist/es/components/FloatingBox.js +5 -0
  12. package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +161 -0
  13. package/dist/es/components/Icon.js +5 -0
  14. package/dist/es/components/Icon.vue_vue_type_script_setup_true_lang.js +39 -0
  15. package/dist/es/components/Resizer.js +5 -0
  16. package/dist/es/components/Resizer.vue_vue_type_script_setup_true_lang.js +20 -0
  17. package/dist/es/components/ScrollBar.js +6 -0
  18. package/dist/es/components/ScrollBar.vue_vue_type_script_setup_true_lang.js +72 -0
  19. package/dist/es/components/ScrollViewer.js +5 -0
  20. package/dist/es/components/ScrollViewer.vue_vue_type_script_setup_true_lang.js +104 -0
  21. package/dist/es/components/SearchInput.js +5 -0
  22. package/dist/es/components/SearchInput.vue_vue_type_script_setup_true_lang.js +40 -0
  23. package/dist/es/components/SplitView.js +5 -0
  24. package/dist/es/components/SplitView.vue_vue_type_script_setup_true_lang.js +135 -0
  25. package/dist/es/components/ToolButton.js +5 -0
  26. package/dist/es/components/ToolButton.vue_vue_type_script_setup_true_lang.js +131 -0
  27. package/dist/es/components/Tree.js +5 -0
  28. package/dist/es/components/Tree.vue_vue_type_script_setup_true_lang.js +60 -0
  29. package/dist/es/components/TreeNode.js +5 -0
  30. package/dist/es/components/TreeNode.vue_vue_type_script_setup_true_lang.js +126 -0
  31. package/dist/es/editorProps.js +34 -0
  32. package/dist/es/fields/Code.js +5 -0
  33. package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +54 -0
  34. package/dist/es/fields/CodeLink.js +5 -0
  35. package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +69 -0
  36. package/dist/es/fields/CodeSelect.js +5 -0
  37. package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +116 -0
  38. package/dist/es/fields/CodeSelectCol.js +5 -0
  39. package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +145 -0
  40. package/dist/es/fields/CondOpSelect.js +5 -0
  41. package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +81 -0
  42. package/dist/es/fields/DataSourceFieldSelect/FieldSelect.js +5 -0
  43. package/dist/es/fields/DataSourceFieldSelect/FieldSelect.vue_vue_type_script_setup_true_lang.js +158 -0
  44. package/dist/es/fields/DataSourceFieldSelect/Index.js +5 -0
  45. package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +155 -0
  46. package/dist/es/fields/DataSourceFields.js +5 -0
  47. package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +390 -0
  48. package/dist/es/fields/DataSourceInput.js +5 -0
  49. package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +268 -0
  50. package/dist/es/fields/DataSourceMethodSelect.js +5 -0
  51. package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +144 -0
  52. package/dist/es/fields/DataSourceMethods.js +5 -0
  53. package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +148 -0
  54. package/dist/es/fields/DataSourceMocks.js +5 -0
  55. package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +259 -0
  56. package/dist/es/fields/DataSourceSelect.js +5 -0
  57. package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +101 -0
  58. package/dist/es/fields/DisplayConds.js +5 -0
  59. package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +156 -0
  60. package/dist/es/fields/EventSelect.js +5 -0
  61. package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +338 -0
  62. package/dist/es/fields/KeyValue.js +5 -0
  63. package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +158 -0
  64. package/dist/es/fields/PageFragmentSelect.js +5 -0
  65. package/dist/es/fields/PageFragmentSelect.vue_vue_type_script_setup_true_lang.js +81 -0
  66. package/dist/es/fields/StyleSetter/Index.js +5 -0
  67. package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +92 -0
  68. package/dist/es/fields/StyleSetter/components/BackgroundPosition.js +5 -0
  69. package/dist/es/fields/StyleSetter/components/BackgroundPosition.vue_vue_type_script_setup_true_lang.js +96 -0
  70. package/dist/es/fields/StyleSetter/components/Border.js +5 -0
  71. package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +100 -0
  72. package/dist/es/fields/StyleSetter/components/Box.js +5 -0
  73. package/dist/es/fields/StyleSetter/components/Box.vue_vue_type_script_setup_true_lang.js +81 -0
  74. package/dist/es/fields/StyleSetter/icons/background-repeat/NoRepeat.js +17 -0
  75. package/dist/es/fields/StyleSetter/icons/background-repeat/Repeat.js +14 -0
  76. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatX.js +17 -0
  77. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatY.js +17 -0
  78. package/dist/es/fields/StyleSetter/icons/display/Block.js +14 -0
  79. package/dist/es/fields/StyleSetter/icons/display/Flex.js +14 -0
  80. package/dist/es/fields/StyleSetter/icons/display/Inline.js +14 -0
  81. package/dist/es/fields/StyleSetter/icons/display/InlineBlock.js +14 -0
  82. package/dist/es/fields/StyleSetter/icons/display/None.js +14 -0
  83. package/dist/es/fields/StyleSetter/icons/flex-direction/Column.js +14 -0
  84. package/dist/es/fields/StyleSetter/icons/flex-direction/ColumnReverse.js +14 -0
  85. package/dist/es/fields/StyleSetter/icons/flex-direction/Row.js +14 -0
  86. package/dist/es/fields/StyleSetter/icons/flex-direction/RowReverse.js +14 -0
  87. package/dist/es/fields/StyleSetter/icons/justify-content/Center.js +14 -0
  88. package/dist/es/fields/StyleSetter/icons/justify-content/FlexEnd.js +14 -0
  89. package/dist/es/fields/StyleSetter/icons/justify-content/FlexStart.js +14 -0
  90. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceAround.js +14 -0
  91. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceBetween.js +14 -0
  92. package/dist/es/fields/StyleSetter/icons/text-align/Center.js +14 -0
  93. package/dist/es/fields/StyleSetter/icons/text-align/Left.js +14 -0
  94. package/dist/es/fields/StyleSetter/icons/text-align/Right.js +14 -0
  95. package/dist/es/fields/StyleSetter/pro/Background.js +5 -0
  96. package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +114 -0
  97. package/dist/es/fields/StyleSetter/pro/Border.js +5 -0
  98. package/dist/es/fields/StyleSetter/pro/Border.vue_vue_type_script_setup_true_lang.js +50 -0
  99. package/dist/es/fields/StyleSetter/pro/Font.js +5 -0
  100. package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +98 -0
  101. package/dist/es/fields/StyleSetter/pro/Layout.js +5 -0
  102. package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +288 -0
  103. package/dist/es/fields/StyleSetter/pro/Position.js +5 -0
  104. package/dist/es/fields/StyleSetter/pro/Position.vue_vue_type_script_setup_true_lang.js +95 -0
  105. package/dist/es/fields/UISelect.js +6 -0
  106. package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +161 -0
  107. package/dist/es/hooks/use-code-block-edit.js +54 -0
  108. package/dist/es/hooks/use-data-source-edit.js +29 -0
  109. package/dist/es/hooks/use-editor-content-height.js +17 -0
  110. package/dist/es/hooks/use-filter.js +35 -0
  111. package/dist/es/hooks/use-float-box.js +76 -0
  112. package/dist/es/hooks/use-getso.js +28 -0
  113. package/dist/es/hooks/use-next-float-box-position.js +27 -0
  114. package/dist/es/hooks/use-node-status.js +28 -0
  115. package/dist/es/hooks/use-services.js +9 -0
  116. package/dist/es/hooks/use-stage.js +107 -0
  117. package/dist/es/hooks/use-window-rect.js +19 -0
  118. package/dist/es/icons/CenterIcon.js +5 -0
  119. package/dist/es/icons/CenterIcon.vue_vue_type_script_setup_true_lang.js +40 -0
  120. package/dist/es/icons/CodeIcon.js +5 -0
  121. package/dist/es/icons/CodeIcon.vue_vue_type_script_setup_true_lang.js +19 -0
  122. package/dist/es/icons/FolderMinusIcon.js +5 -0
  123. package/dist/es/icons/FolderMinusIcon.vue_vue_type_script_setup_true_lang.js +27 -0
  124. package/dist/es/index.js +79 -0
  125. package/dist/es/initService.js +392 -0
  126. package/dist/es/layouts/AddPageBox.js +5 -0
  127. package/dist/es/layouts/AddPageBox.vue_vue_type_script_setup_true_lang.js +38 -0
  128. package/dist/es/layouts/CodeEditor.js +5 -0
  129. package/dist/es/layouts/CodeEditor.vue_vue_type_script_setup_true_lang.js +270 -0
  130. package/dist/es/layouts/Framework.js +5 -0
  131. package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +134 -0
  132. package/dist/es/layouts/NavMenu.js +5 -0
  133. package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +181 -0
  134. package/dist/es/layouts/page-bar/AddButton.js +5 -0
  135. package/dist/es/layouts/page-bar/AddButton.vue_vue_type_script_setup_true_lang.js +57 -0
  136. package/dist/es/layouts/page-bar/PageBar.js +5 -0
  137. package/dist/es/layouts/page-bar/PageBar.vue_vue_type_script_setup_true_lang.js +135 -0
  138. package/dist/es/layouts/page-bar/PageBarScrollContainer.js +5 -0
  139. package/dist/es/layouts/page-bar/PageBarScrollContainer.vue_vue_type_script_setup_true_lang.js +119 -0
  140. package/dist/es/layouts/page-bar/PageList.js +5 -0
  141. package/dist/es/layouts/page-bar/PageList.vue_vue_type_script_setup_true_lang.js +54 -0
  142. package/dist/es/layouts/page-bar/Search.js +5 -0
  143. package/dist/es/layouts/page-bar/Search.vue_vue_type_script_setup_true_lang.js +60 -0
  144. package/dist/es/layouts/props-panel/FormPanel.js +5 -0
  145. package/dist/es/layouts/props-panel/FormPanel.vue_vue_type_script_setup_true_lang.js +129 -0
  146. package/dist/es/layouts/props-panel/PropsPanel.js +5 -0
  147. package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +179 -0
  148. package/dist/es/layouts/props-panel/use-style-panel.js +40 -0
  149. package/dist/es/layouts/sidebar/ComponentListPanel.js +5 -0
  150. package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +121 -0
  151. package/dist/es/layouts/sidebar/Sidebar.js +5 -0
  152. package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +314 -0
  153. package/dist/es/layouts/sidebar/code-block/CodeBlockList.js +5 -0
  154. package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js +161 -0
  155. package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.js +5 -0
  156. package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +113 -0
  157. package/dist/es/layouts/sidebar/code-block/useContentMenu.js +60 -0
  158. package/dist/es/layouts/sidebar/data-source/DataSourceAddButton.js +5 -0
  159. package/dist/es/layouts/sidebar/data-source/DataSourceAddButton.vue_vue_type_script_setup_true_lang.js +44 -0
  160. package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.js +5 -0
  161. package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.vue_vue_type_script_setup_true_lang.js +103 -0
  162. package/dist/es/layouts/sidebar/data-source/DataSourceList.js +5 -0
  163. package/dist/es/layouts/sidebar/data-source/DataSourceList.vue_vue_type_script_setup_true_lang.js +162 -0
  164. package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.js +5 -0
  165. package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +133 -0
  166. package/dist/es/layouts/sidebar/data-source/useContentMenu.js +59 -0
  167. package/dist/es/layouts/sidebar/layer/LayerMenu.js +5 -0
  168. package/dist/es/layouts/sidebar/layer/LayerMenu.vue_vue_type_script_setup_true_lang.js +90 -0
  169. package/dist/es/layouts/sidebar/layer/LayerNodeTool.js +5 -0
  170. package/dist/es/layouts/sidebar/layer/LayerNodeTool.vue_vue_type_script_setup_true_lang.js +35 -0
  171. package/dist/es/layouts/sidebar/layer/LayerPanel.js +5 -0
  172. package/dist/es/layouts/sidebar/layer/LayerPanel.vue_vue_type_script_setup_true_lang.js +99 -0
  173. package/dist/es/layouts/sidebar/layer/use-click.js +68 -0
  174. package/dist/es/layouts/sidebar/layer/use-drag.js +118 -0
  175. package/dist/es/layouts/sidebar/layer/use-keybinding.js +36 -0
  176. package/dist/es/layouts/sidebar/layer/use-node-status.js +75 -0
  177. package/dist/es/layouts/workspace/Breadcrumb.js +5 -0
  178. package/dist/es/layouts/workspace/Breadcrumb.vue_vue_type_script_setup_true_lang.js +39 -0
  179. package/dist/es/layouts/workspace/Workspace.js +5 -0
  180. package/dist/es/layouts/workspace/Workspace.vue_vue_type_script_setup_true_lang.js +43 -0
  181. package/dist/es/layouts/workspace/viewer/NodeListMenu.js +5 -0
  182. package/dist/es/layouts/workspace/viewer/NodeListMenu.vue_vue_type_script_setup_true_lang.js +88 -0
  183. package/dist/es/layouts/workspace/viewer/Stage.js +5 -0
  184. package/dist/es/layouts/workspace/viewer/Stage.vue_vue_type_script_setup_true_lang.js +206 -0
  185. package/dist/es/layouts/workspace/viewer/StageOverlay.js +5 -0
  186. package/dist/es/layouts/workspace/viewer/StageOverlay.vue_vue_type_script_setup_true_lang.js +89 -0
  187. package/dist/es/layouts/workspace/viewer/ViewerMenu.js +5 -0
  188. package/dist/es/layouts/workspace/viewer/ViewerMenu.vue_vue_type_script_setup_true_lang.js +132 -0
  189. package/dist/es/plugin.js +61 -0
  190. package/dist/es/services/BaseService.js +148 -0
  191. package/dist/es/services/codeBlock.js +251 -0
  192. package/dist/es/services/componentList.js +29 -0
  193. package/dist/es/services/dataSource.js +157 -0
  194. package/dist/es/services/dep.js +173 -0
  195. package/dist/es/services/editor.js +752 -0
  196. package/dist/es/services/events.js +64 -0
  197. package/dist/es/services/history.js +84 -0
  198. package/dist/es/services/keybinding.js +182 -0
  199. package/dist/es/services/props.js +216 -0
  200. package/dist/es/services/stageOverlay.js +161 -0
  201. package/dist/es/services/storage.js +127 -0
  202. package/dist/es/services/ui.js +112 -0
  203. package/dist/es/style.css +1937 -0
  204. package/dist/es/type.js +90 -0
  205. package/dist/es/utils/compose.js +44 -0
  206. package/dist/es/utils/config.js +8 -0
  207. package/dist/es/utils/const.js +15 -0
  208. package/dist/es/utils/content-menu.js +76 -0
  209. package/dist/es/utils/data-source/formConfigs/base.js +28 -0
  210. package/dist/es/utils/data-source/formConfigs/http.js +74 -0
  211. package/dist/es/utils/data-source/index.js +202 -0
  212. package/dist/es/utils/dep/idle-task.js +76 -0
  213. package/dist/es/utils/dep/worker.js +19 -0
  214. package/dist/es/utils/editor.js +261 -0
  215. package/dist/es/utils/keybinding-config.js +106 -0
  216. package/dist/es/utils/logger.js +18 -0
  217. package/dist/es/utils/monaco-editor.js +13 -0
  218. package/dist/es/utils/operator.js +73 -0
  219. package/dist/es/utils/props.js +232 -0
  220. package/dist/es/utils/scroll-viewer.js +115 -0
  221. package/dist/es/utils/tree.js +11 -0
  222. package/dist/es/utils/undo-redo.js +43 -0
  223. package/dist/style.css +10 -10
  224. package/dist/tmagic-editor.umd.cjs +18430 -21979
  225. package/package.json +16 -12
  226. package/src/components/CodeBlockEditor.vue +2 -8
  227. package/src/fields/CodeLink.vue +2 -2
  228. package/src/fields/CodeSelectCol.vue +1 -1
  229. package/src/fields/DataSourceFieldSelect/Index.vue +16 -3
  230. package/src/fields/DataSourceFields.vue +4 -1
  231. package/src/fields/EventSelect.vue +11 -11
  232. package/src/fields/StyleSetter/components/BackgroundPosition.vue +2 -2
  233. package/src/fields/StyleSetter/pro/Layout.vue +8 -8
  234. package/src/index.ts +1 -73
  235. package/src/plugin.ts +92 -0
  236. package/src/services/props.ts +3 -1
  237. package/src/type.ts +1 -1
  238. package/src/utils/data-source/index.ts +71 -73
  239. package/src/utils/index.ts +1 -0
  240. package/src/utils/props.ts +9 -7
  241. package/types/index.d.ts +3369 -3319
  242. package/dist/tmagic-editor.js +0 -17053
@@ -0,0 +1,116 @@
1
+ import { useServices } from "../hooks/use-services.js";
2
+ import { MContainer } from "@tmagic/form";
3
+ import { TMagicCard } from "@tmagic/design";
4
+ import { HookCodeType, HookType } from "@tmagic/core";
5
+ import { computed, createElementBlock, createVNode, defineComponent, normalizeClass, openBlock, unref, watch, withCtx } from "vue";
6
+ import { isEmpty } from "lodash-es";
7
+ //#region packages/editor/src/fields/CodeSelect.vue?vue&type=script&setup=true&lang.ts
8
+ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
9
+ name: "MFieldsCodeSelect",
10
+ __name: "CodeSelect",
11
+ props: {
12
+ config: {},
13
+ model: {},
14
+ initValues: {},
15
+ values: {},
16
+ name: {},
17
+ prop: {},
18
+ disabled: { type: Boolean },
19
+ size: {},
20
+ lastValues: {},
21
+ isCompare: { type: Boolean }
22
+ },
23
+ emits: ["change"],
24
+ setup(__props, { emit: __emit }) {
25
+ const emit = __emit;
26
+ const { dataSourceService, codeBlockService } = useServices();
27
+ const props = __props;
28
+ const codeConfig = computed(() => ({
29
+ type: "group-list",
30
+ name: "hookData",
31
+ enableToggleMode: false,
32
+ expandAll: true,
33
+ title: (mForm, { model, index }) => {
34
+ if (model.codeType === HookCodeType.DATA_SOURCE_METHOD) {
35
+ if (Array.isArray(model.codeId)) {
36
+ if (model.codeId.length < 2) return index;
37
+ return `${dataSourceService.getDataSourceById(model.codeId[0])?.title} / ${model.codeId[1]}`;
38
+ }
39
+ return Array.isArray(model.codeId) ? model.codeId.join("/") : index;
40
+ }
41
+ const codeContent = codeBlockService.getCodeContentById(model.codeId);
42
+ if (codeContent) return codeContent.name;
43
+ return model.codeId || index;
44
+ },
45
+ items: [{
46
+ type: "row",
47
+ items: [
48
+ {
49
+ type: "select",
50
+ name: "codeType",
51
+ span: 6,
52
+ options: [{
53
+ value: HookCodeType.CODE,
54
+ text: "代码块"
55
+ }, {
56
+ value: HookCodeType.DATA_SOURCE_METHOD,
57
+ text: "数据源方法"
58
+ }],
59
+ defaultValue: "code",
60
+ onChange: (_mForm, v, { setModel }) => {
61
+ if (v === HookCodeType.DATA_SOURCE_METHOD) setModel("codeId", []);
62
+ else setModel("codeId", "");
63
+ return v;
64
+ }
65
+ },
66
+ {
67
+ type: "code-select-col",
68
+ name: "codeId",
69
+ span: 18,
70
+ labelWidth: 0,
71
+ display: (_mForm, { model }) => model.codeType !== HookCodeType.DATA_SOURCE_METHOD,
72
+ notEditable: () => !codeBlockService.getEditStatus()
73
+ },
74
+ {
75
+ type: "data-source-method-select",
76
+ name: "codeId",
77
+ span: 18,
78
+ labelWidth: 0,
79
+ display: (_mForm, { model }) => model.codeType === HookCodeType.DATA_SOURCE_METHOD,
80
+ notEditable: () => !dataSourceService.get("editable")
81
+ }
82
+ ]
83
+ }]
84
+ }));
85
+ watch(() => props.model[props.name], (value) => {
86
+ if (isEmpty(value)) props.model[props.name] = {
87
+ hookType: HookType.CODE,
88
+ hookData: []
89
+ };
90
+ }, { immediate: true });
91
+ const changeHandler = (v, eventData) => emit("change", v, eventData);
92
+ return (_ctx, _cache) => {
93
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-code-select", __props.config.className]) }, [createVNode(unref(TMagicCard), null, {
94
+ default: withCtx(() => [createVNode(unref(MContainer), {
95
+ config: codeConfig.value,
96
+ size: __props.size,
97
+ prop: __props.prop,
98
+ disabled: __props.disabled,
99
+ lastValues: __props.lastValues,
100
+ model: __props.model[__props.name],
101
+ onChange: changeHandler
102
+ }, null, 8, [
103
+ "config",
104
+ "size",
105
+ "prop",
106
+ "disabled",
107
+ "lastValues",
108
+ "model"
109
+ ])]),
110
+ _: 1
111
+ })], 2);
112
+ };
113
+ }
114
+ });
115
+ //#endregion
116
+ export { CodeSelect_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,5 @@
1
+ import CodeSelectCol_vue_vue_type_script_setup_true_lang_default from "./CodeSelectCol.vue_vue_type_script_setup_true_lang.js";
2
+ //#region packages/editor/src/fields/CodeSelectCol.vue
3
+ var CodeSelectCol_default = CodeSelectCol_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { CodeSelectCol_default as default };
@@ -0,0 +1,145 @@
1
+ import { SideItemKey } from "../type.js";
2
+ import { useServices } from "../hooks/use-services.js";
3
+ import Icon_default from "../components/Icon.js";
4
+ import CodeParams_default from "../components/CodeParams.js";
5
+ import { MSelect, createValues, filterFunction } from "@tmagic/form";
6
+ import { TMagicButton } from "@tmagic/design";
7
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, openBlock, ref, unref, watch, withCtx } from "vue";
8
+ import { isEmpty, map } from "lodash-es";
9
+ import { Edit, View } from "@element-plus/icons-vue";
10
+ //#region packages/editor/src/fields/CodeSelectCol.vue?vue&type=script&setup=true&lang.ts
11
+ var _hoisted_1 = { class: "m-fields-code-select-col" };
12
+ var _hoisted_2 = { class: "code-select-container" };
13
+ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
14
+ name: "MFieldsCodeSelectCol",
15
+ __name: "CodeSelectCol",
16
+ props: {
17
+ config: {},
18
+ model: {},
19
+ initValues: {},
20
+ values: {},
21
+ name: {},
22
+ prop: {},
23
+ disabled: {
24
+ type: Boolean,
25
+ default: false
26
+ },
27
+ size: {},
28
+ lastValues: {},
29
+ isCompare: { type: Boolean }
30
+ },
31
+ emits: ["change"],
32
+ setup(__props, { emit: __emit }) {
33
+ const mForm = inject("mForm");
34
+ const { codeBlockService, uiService } = useServices();
35
+ const eventBus = inject("eventBus");
36
+ const emit = __emit;
37
+ const props = __props;
38
+ const notEditable = computed(() => filterFunction(mForm, props.config.notEditable, props));
39
+ const hasCodeBlockSidePanel = computed(() => (uiService.get("sideBarItems") || []).find((item) => item.$key === SideItemKey.CODE_BLOCK));
40
+ /**
41
+ * 根据代码块id获取代码块参数配置
42
+ * @param codeId 代码块ID
43
+ */
44
+ const getParamItemsConfig = (codeId) => {
45
+ if (!codeDsl.value || !codeId) return [];
46
+ const paramStatements = codeDsl.value[codeId]?.params;
47
+ if (isEmpty(paramStatements)) return [];
48
+ return paramStatements.map((paramState) => ({
49
+ labelWidth: "100px",
50
+ text: paramState.name,
51
+ ...paramState
52
+ }));
53
+ };
54
+ const codeDsl = computed(() => codeBlockService.getCodeDsl());
55
+ const paramsConfig = ref(getParamItemsConfig(props.model[props.name]));
56
+ watch(() => props.model[props.name], (v, preV) => {
57
+ if (v !== preV) paramsConfig.value = getParamItemsConfig(v);
58
+ });
59
+ const selectConfig = {
60
+ type: "select",
61
+ name: props.name,
62
+ disabled: props.disabled,
63
+ options: () => {
64
+ if (codeDsl.value) return map(codeDsl.value, (value, key) => ({
65
+ text: `${value.name}(${key})`,
66
+ label: `${value.name}(${key})`,
67
+ value: key
68
+ }));
69
+ return [];
70
+ }
71
+ };
72
+ const onCodeIdChangeHandler = (value) => {
73
+ paramsConfig.value = getParamItemsConfig(value);
74
+ const changeRecords = [{
75
+ propPath: props.prop,
76
+ value
77
+ }];
78
+ changeRecords.push({
79
+ propPath: props.prop.replace(`${props.name}`, "params"),
80
+ value: paramsConfig.value.length ? createValues(mForm, paramsConfig.value, {}, props.model.params) : {}
81
+ });
82
+ emit("change", value, { changeRecords });
83
+ };
84
+ /**
85
+ * 参数值修改更新
86
+ */
87
+ const onParamsChangeHandler = (value, eventData) => {
88
+ eventData.changeRecords?.forEach((record) => {
89
+ record.propPath = `${props.prop.replace(`${props.name}`, "")}${record.propPath}`;
90
+ });
91
+ emit("change", props.model[props.name], eventData);
92
+ };
93
+ const editCode = (id) => {
94
+ eventBus?.emit("edit-code", id);
95
+ };
96
+ return (_ctx, _cache) => {
97
+ return openBlock(), createElementBlock("div", _hoisted_1, [
98
+ createElementVNode("div", _hoisted_2, [
99
+ createCommentVNode(" 代码块下拉框 "),
100
+ createVNode(unref(MSelect), {
101
+ class: "select",
102
+ config: selectConfig,
103
+ name: __props.name,
104
+ model: __props.model,
105
+ size: __props.size,
106
+ prop: __props.prop,
107
+ onChange: onCodeIdChangeHandler
108
+ }, null, 8, [
109
+ "name",
110
+ "model",
111
+ "size",
112
+ "prop"
113
+ ]),
114
+ createCommentVNode(" 查看/编辑按钮 "),
115
+ __props.model[__props.name] && hasCodeBlockSidePanel.value ? (openBlock(), createBlock(unref(TMagicButton), {
116
+ key: 0,
117
+ class: "m-fields-select-action-button",
118
+ size: __props.size,
119
+ onClick: _cache[0] || (_cache[0] = ($event) => editCode(__props.model[__props.name]))
120
+ }, {
121
+ default: withCtx(() => [createVNode(Icon_default, { icon: !notEditable.value ? unref(Edit) : unref(View) }, null, 8, ["icon"])]),
122
+ _: 1
123
+ }, 8, ["size"])) : createCommentVNode("v-if", true)
124
+ ]),
125
+ createCommentVNode(" 参数填写框 "),
126
+ paramsConfig.value.length ? (openBlock(), createBlock(CodeParams_default, {
127
+ name: "params",
128
+ key: __props.model[__props.name],
129
+ model: __props.model,
130
+ size: __props.size,
131
+ disabled: __props.disabled,
132
+ "params-config": paramsConfig.value,
133
+ onChange: onParamsChangeHandler
134
+ }, null, 8, [
135
+ "model",
136
+ "size",
137
+ "disabled",
138
+ "params-config"
139
+ ])) : createCommentVNode("v-if", true)
140
+ ]);
141
+ };
142
+ }
143
+ });
144
+ //#endregion
145
+ export { CodeSelectCol_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,5 @@
1
+ import CondOpSelect_vue_vue_type_script_setup_true_lang_default from "./CondOpSelect.vue_vue_type_script_setup_true_lang.js";
2
+ //#region packages/editor/src/fields/CondOpSelect.vue
3
+ var CondOpSelect_default = CondOpSelect_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { CondOpSelect_default as default };
@@ -0,0 +1,81 @@
1
+ import { arrayOptions, eqOptions, numberOptions } from "../utils/props.js";
2
+ import { useServices } from "../hooks/use-services.js";
3
+ import { getFieldType } from "../utils/data-source/index.js";
4
+ import { TMagicSelect, getDesignConfig } from "@tmagic/design";
5
+ import { Fragment, computed, createBlock, createElementBlock, defineComponent, mergeProps, openBlock, renderList, resolveDynamicComponent, unref, withCtx } from "vue";
6
+ //#region packages/editor/src/fields/CondOpSelect.vue?vue&type=script&setup=true&lang.ts
7
+ var CondOpSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
8
+ name: "MFieldsCondOpSelect",
9
+ __name: "CondOpSelect",
10
+ props: {
11
+ config: {},
12
+ model: {},
13
+ initValues: {},
14
+ values: {},
15
+ name: {},
16
+ prop: {},
17
+ disabled: { type: Boolean },
18
+ size: {},
19
+ lastValues: {},
20
+ isCompare: { type: Boolean }
21
+ },
22
+ emits: ["change"],
23
+ setup(__props, { emit: __emit }) {
24
+ const emit = __emit;
25
+ const { dataSourceService } = useServices();
26
+ const props = __props;
27
+ const optionComponent = getDesignConfig("components")?.option;
28
+ const options = computed(() => {
29
+ const [id, ...fieldNames] = [...props.config.parentFields || [], ...props.model.field];
30
+ const type = getFieldType(dataSourceService.getDataSourceById(id), fieldNames);
31
+ if (type === "array") return arrayOptions;
32
+ if (type === "boolean" || type === "null") return [{
33
+ text: "是",
34
+ value: "is"
35
+ }, {
36
+ text: "不是",
37
+ value: "not"
38
+ }];
39
+ if (type === "number") return [...eqOptions, ...numberOptions];
40
+ if (type === "string") return [...arrayOptions, ...eqOptions];
41
+ return [
42
+ ...arrayOptions,
43
+ ...eqOptions,
44
+ ...numberOptions
45
+ ];
46
+ });
47
+ const fieldChangeHandler = (v) => {
48
+ emit("change", v);
49
+ };
50
+ return (_ctx, _cache) => {
51
+ return openBlock(), createBlock(unref(TMagicSelect), {
52
+ "model-value": __props.model[__props.name],
53
+ clearable: "",
54
+ filterable: "",
55
+ size: __props.size,
56
+ disabled: __props.disabled,
57
+ onChange: fieldChangeHandler
58
+ }, {
59
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(options.value, (option) => {
60
+ return openBlock(), createBlock(resolveDynamicComponent(unref(optionComponent)?.component || "el-option"), mergeProps({
61
+ class: "tmagic-design-option",
62
+ key: option.value
63
+ }, { ref_for: true }, unref(optionComponent)?.props({
64
+ label: option.text,
65
+ value: option.value
66
+ }) || {
67
+ label: option.text,
68
+ value: option.value
69
+ }), null, 16);
70
+ }), 128))]),
71
+ _: 1
72
+ }, 8, [
73
+ "model-value",
74
+ "size",
75
+ "disabled"
76
+ ]);
77
+ };
78
+ }
79
+ });
80
+ //#endregion
81
+ export { CondOpSelect_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,5 @@
1
+ import FieldSelect_vue_vue_type_script_setup_true_lang_default from "./FieldSelect.vue_vue_type_script_setup_true_lang.js";
2
+ //#region packages/editor/src/fields/DataSourceFieldSelect/FieldSelect.vue
3
+ var FieldSelect_default = FieldSelect_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { FieldSelect_default as default };
@@ -0,0 +1,158 @@
1
+ import { SideItemKey } from "../../type.js";
2
+ import { useServices } from "../../hooks/use-services.js";
3
+ import { getCascaderOptionsFromFields } from "../../utils/data-source/index.js";
4
+ import Icon_default from "../../components/Icon.js";
5
+ import { filterFunction } from "@tmagic/form";
6
+ import { TMagicButton, TMagicCascader, TMagicSelect, TMagicTooltip, getDesignConfig } from "@tmagic/design";
7
+ import { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, removeDataSourceFieldPrefix } from "@tmagic/utils";
8
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, inject, mergeModels, mergeProps, openBlock, ref, renderList, resolveDynamicComponent, unref, useModel, watch, withCtx } from "vue";
9
+ import { Edit, View } from "@element-plus/icons-vue";
10
+ //#region packages/editor/src/fields/DataSourceFieldSelect/FieldSelect.vue?vue&type=script&setup=true&lang.ts
11
+ var _hoisted_1 = { class: "m-editor-data-source-field-select" };
12
+ var FieldSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
13
+ __name: "FieldSelect",
14
+ props: /* @__PURE__ */ mergeModels({
15
+ value: {},
16
+ disabled: { type: Boolean },
17
+ checkStrictly: { type: Boolean },
18
+ size: {},
19
+ dataSourceFieldType: {},
20
+ notEditable: { type: [Boolean, Function] }
21
+ }, {
22
+ "modelValue": { default: [] },
23
+ "modelModifiers": {}
24
+ }),
25
+ emits: /* @__PURE__ */ mergeModels(["change"], ["update:modelValue"]),
26
+ setup(__props, { emit: __emit }) {
27
+ const props = __props;
28
+ const emit = __emit;
29
+ const modelValue = useModel(__props, "modelValue");
30
+ const optionComponent = getDesignConfig("components")?.option;
31
+ const { dataSourceService, uiService } = useServices();
32
+ const mForm = inject("mForm");
33
+ const eventBus = inject("eventBus");
34
+ const dataSources = computed(() => dataSourceService.get("dataSources") || []);
35
+ const valueIsKey = computed(() => props.value === "key");
36
+ const notEditable = computed(() => filterFunction(mForm, props.notEditable, props));
37
+ const dataSourcesOptions = computed(() => dataSources.value.map((ds) => ({
38
+ text: ds.title || ds.id,
39
+ value: valueIsKey.value ? ds.id : `${DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX}${ds.id}`
40
+ })));
41
+ const selectDataSourceId = ref("");
42
+ const selectFieldsId = ref([]);
43
+ watch(modelValue, (value) => {
44
+ if (Array.isArray(value)) {
45
+ const [dsId, ...fields] = value;
46
+ selectDataSourceId.value = dsId;
47
+ selectFieldsId.value = fields;
48
+ } else {
49
+ selectDataSourceId.value = "";
50
+ selectFieldsId.value = [];
51
+ }
52
+ }, { immediate: true });
53
+ const fieldsOptions = computed(() => {
54
+ const ds = dataSources.value.find((ds) => ds.id === removeDataSourceFieldPrefix(selectDataSourceId.value));
55
+ if (!ds) return [];
56
+ return getCascaderOptionsFromFields(ds.fields, props.dataSourceFieldType);
57
+ });
58
+ const cascaderOptions = computed(() => {
59
+ return (dataSources.value?.map((ds) => ({
60
+ label: ds.title || ds.id,
61
+ value: valueIsKey.value ? ds.id : `${DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX}${ds.id}`,
62
+ children: getCascaderOptionsFromFields(ds.fields, props.dataSourceFieldType)
63
+ })) || []).filter((option) => option.children.length);
64
+ });
65
+ const dsChangeHandler = (v) => {
66
+ modelValue.value = [v];
67
+ emit("change", modelValue.value);
68
+ };
69
+ const fieldChangeHandler = (v = []) => {
70
+ modelValue.value = [selectDataSourceId.value, ...v];
71
+ emit("change", modelValue.value);
72
+ };
73
+ const onChangeHandler = (v = []) => {
74
+ modelValue.value = v;
75
+ emit("change", v);
76
+ };
77
+ const hasDataSourceSidePanel = computed(() => uiService.get("sideBarItems").find((item) => item.$key === SideItemKey.DATA_SOURCE));
78
+ const editHandler = (id) => {
79
+ eventBus?.emit("edit-data-source", removeDataSourceFieldPrefix(id));
80
+ };
81
+ return (_ctx, _cache) => {
82
+ return openBlock(), createElementBlock("div", _hoisted_1, [__props.checkStrictly ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createVNode(unref(TMagicSelect), {
83
+ "model-value": selectDataSourceId.value,
84
+ clearable: "",
85
+ filterable: "",
86
+ size: __props.size,
87
+ disabled: __props.disabled,
88
+ onChange: dsChangeHandler
89
+ }, {
90
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(dataSourcesOptions.value, (option) => {
91
+ return openBlock(), createBlock(resolveDynamicComponent(unref(optionComponent)?.component || "el-option"), mergeProps({
92
+ class: "tmagic-design-option",
93
+ key: option.value
94
+ }, { ref_for: true }, unref(optionComponent)?.props({
95
+ label: option.text,
96
+ value: option.value,
97
+ disabled: option.disabled
98
+ }) || {
99
+ label: option.text,
100
+ value: option.value,
101
+ disabled: option.disabled
102
+ }), null, 16);
103
+ }), 128))]),
104
+ _: 1
105
+ }, 8, [
106
+ "model-value",
107
+ "size",
108
+ "disabled"
109
+ ]), createVNode(unref(TMagicCascader), {
110
+ "model-value": selectFieldsId.value,
111
+ clearable: "",
112
+ filterable: "",
113
+ size: __props.size,
114
+ disabled: __props.disabled,
115
+ options: fieldsOptions.value,
116
+ props: { checkStrictly: __props.checkStrictly },
117
+ onChange: fieldChangeHandler
118
+ }, null, 8, [
119
+ "model-value",
120
+ "size",
121
+ "disabled",
122
+ "options",
123
+ "props"
124
+ ])], 64)) : (openBlock(), createBlock(unref(TMagicCascader), {
125
+ key: 1,
126
+ clearable: "",
127
+ filterable: "",
128
+ "model-value": modelValue.value,
129
+ disabled: __props.disabled,
130
+ size: __props.size,
131
+ options: cascaderOptions.value,
132
+ props: { checkStrictly: __props.checkStrictly },
133
+ onChange: onChangeHandler
134
+ }, null, 8, [
135
+ "model-value",
136
+ "disabled",
137
+ "size",
138
+ "options",
139
+ "props"
140
+ ])), selectDataSourceId.value && hasDataSourceSidePanel.value ? (openBlock(), createBlock(unref(TMagicTooltip), {
141
+ key: 2,
142
+ content: notEditable.value ? "查看" : "编辑"
143
+ }, {
144
+ default: withCtx(() => [createVNode(unref(TMagicButton), {
145
+ class: "m-fields-select-action-button",
146
+ size: __props.size,
147
+ onClick: _cache[0] || (_cache[0] = ($event) => editHandler(selectDataSourceId.value))
148
+ }, {
149
+ default: withCtx(() => [createVNode(Icon_default, { icon: !notEditable.value ? unref(Edit) : unref(View) }, null, 8, ["icon"])]),
150
+ _: 1
151
+ }, 8, ["size"])]),
152
+ _: 1
153
+ }, 8, ["content"])) : createCommentVNode("v-if", true)]);
154
+ };
155
+ }
156
+ });
157
+ //#endregion
158
+ export { FieldSelect_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,5 @@
1
+ import Index_vue_vue_type_script_setup_true_lang_default from "./Index.vue_vue_type_script_setup_true_lang.js";
2
+ //#region packages/editor/src/fields/DataSourceFieldSelect/Index.vue
3
+ var Index_default = Index_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { Index_default as default };
@@ -0,0 +1,155 @@
1
+ import { useServices } from "../../hooks/use-services.js";
2
+ import Icon_default from "../../components/Icon.js";
3
+ import FieldSelect_default from "./FieldSelect.js";
4
+ import { getFormField } from "@tmagic/form";
5
+ import { TMagicButton, TMagicTooltip, tMagicMessage } from "@tmagic/design";
6
+ import { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, removeDataSourceFieldPrefix } from "@tmagic/utils";
7
+ import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, inject, openBlock, ref, resolveComponent, resolveDynamicComponent, unref, watch, withCtx } from "vue";
8
+ import { Coin } from "@element-plus/icons-vue";
9
+ //#region packages/editor/src/fields/DataSourceFieldSelect/Index.vue?vue&type=script&setup=true&lang.ts
10
+ var _hoisted_1 = { class: "m-fields-data-source-field-select" };
11
+ var Index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
12
+ name: "MFieldsDataSourceFieldSelect",
13
+ __name: "Index",
14
+ props: {
15
+ config: {},
16
+ model: {},
17
+ initValues: {},
18
+ values: {},
19
+ name: {},
20
+ prop: {},
21
+ disabled: {
22
+ type: Boolean,
23
+ default: false
24
+ },
25
+ size: {},
26
+ lastValues: {},
27
+ isCompare: { type: Boolean }
28
+ },
29
+ emits: ["change"],
30
+ setup(__props, { emit: __emit }) {
31
+ const emit = __emit;
32
+ const props = __props;
33
+ const showDataSourceFieldSelect = ref(false);
34
+ watch(() => props.model[props.name], (value) => {
35
+ if (Array.isArray(value) && typeof value[0] === "string" && value[0].startsWith(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX)) showDataSourceFieldSelect.value = true;
36
+ else showDataSourceFieldSelect.value = false;
37
+ }, { immediate: true });
38
+ const { dataSourceService, propsService } = useServices();
39
+ const mForm = inject("mForm");
40
+ const dataSources = computed(() => dataSourceService.get("dataSources") || []);
41
+ const disabledDataSource = computed(() => propsService.getDisabledDataSource());
42
+ const type = computed(() => {
43
+ let type = props.config.fieldConfig?.type;
44
+ if (typeof type === "function") type = type(mForm, { model: props.model });
45
+ if (type === "form") return "";
46
+ if (type === "container") return "";
47
+ return type?.replace(/([A-Z])/g, "-$1").toLowerCase() || (props.config.fieldConfig && "items" in props.config.fieldConfig ? "" : "text");
48
+ });
49
+ const tagName = computed(() => {
50
+ const component = getFormField(type.value || "container") || resolveComponent(`m-${props.config.fieldConfig && "items" in props.config.fieldConfig ? "form" : "fields"}-${type.value}`);
51
+ if (typeof component !== "string") return component;
52
+ return "m-fields-text";
53
+ });
54
+ const checkStrictly = computed(() => {
55
+ let value;
56
+ if (typeof props.config.checkStrictly !== "function") value = props.config.checkStrictly;
57
+ else {
58
+ const dsId = removeDataSourceFieldPrefix(props.model[0]);
59
+ const dataSource = dataSources.value.find((ds) => ds.id === dsId);
60
+ value = props.config.checkStrictly(mForm, {
61
+ values: mForm?.initValues || {},
62
+ model: props.model,
63
+ parent: mForm?.parentValues || {},
64
+ formValue: mForm?.values || props.model,
65
+ prop: props.prop,
66
+ config: props.config,
67
+ dataSource
68
+ });
69
+ }
70
+ return value ?? props.config.value === "key";
71
+ });
72
+ const onChangeHandler = (value, eventData) => {
73
+ if (!Array.isArray(value)) {
74
+ emit("change", value, eventData);
75
+ return;
76
+ }
77
+ const [dsId, ...keys] = value;
78
+ const dataSource = dataSources.value.find((ds) => ds.id === removeDataSourceFieldPrefix(dsId));
79
+ if (!dataSource) {
80
+ emit("change", value, eventData);
81
+ return;
82
+ }
83
+ let fields = dataSource.fields || [];
84
+ let field;
85
+ (keys || []).forEach((key) => {
86
+ field = fields.find((f) => f.name === key);
87
+ fields = field?.fields || [];
88
+ });
89
+ const dataSourceFieldType = props.config.dataSourceFieldType || ["any"];
90
+ if (!dataSourceFieldType.length) dataSourceFieldType.push("any");
91
+ if (!keys.length || field?.type && (field.type === "any" || dataSourceFieldType.includes("any") || dataSourceFieldType.includes(field.type))) emit("change", value, eventData);
92
+ else {
93
+ tMagicMessage.error(`请选择类型为${dataSourceFieldType.join("或")}的字段`);
94
+ emit("change", [dsId], eventData);
95
+ }
96
+ };
97
+ return (_ctx, _cache) => {
98
+ return openBlock(), createElementBlock("div", _hoisted_1, [!disabledDataSource.value && (showDataSourceFieldSelect.value || !__props.config.fieldConfig) ? (openBlock(), createBlock(FieldSelect_default, {
99
+ key: 0,
100
+ "model-value": __props.model[__props.name],
101
+ disabled: __props.disabled,
102
+ size: __props.size,
103
+ value: __props.config.value,
104
+ checkStrictly: checkStrictly.value,
105
+ dataSourceFieldType: __props.config.dataSourceFieldType,
106
+ onChange: onChangeHandler
107
+ }, null, 8, [
108
+ "model-value",
109
+ "disabled",
110
+ "size",
111
+ "value",
112
+ "checkStrictly",
113
+ "dataSourceFieldType"
114
+ ])) : (openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
115
+ key: 1,
116
+ config: __props.config.fieldConfig,
117
+ model: __props.model,
118
+ name: __props.name,
119
+ disabled: __props.disabled,
120
+ size: __props.size,
121
+ "last-values": __props.lastValues,
122
+ "init-values": __props.initValues,
123
+ values: __props.values,
124
+ prop: __props.prop,
125
+ onChange: onChangeHandler
126
+ }, null, 40, [
127
+ "config",
128
+ "model",
129
+ "name",
130
+ "disabled",
131
+ "size",
132
+ "last-values",
133
+ "init-values",
134
+ "values",
135
+ "prop"
136
+ ])), __props.config.fieldConfig && !disabledDataSource.value ? (openBlock(), createBlock(unref(TMagicTooltip), {
137
+ key: 2,
138
+ disabled: showDataSourceFieldSelect.value,
139
+ content: "选择数据源"
140
+ }, {
141
+ default: withCtx(() => [createVNode(unref(TMagicButton), {
142
+ type: showDataSourceFieldSelect.value ? "primary" : "default",
143
+ size: __props.size,
144
+ onClick: _cache[0] || (_cache[0] = ($event) => showDataSourceFieldSelect.value = !showDataSourceFieldSelect.value)
145
+ }, {
146
+ default: withCtx(() => [createVNode(Icon_default, { icon: unref(Coin) }, null, 8, ["icon"])]),
147
+ _: 1
148
+ }, 8, ["type", "size"])]),
149
+ _: 1
150
+ }, 8, ["disabled"])) : createCommentVNode("v-if", true)]);
151
+ };
152
+ }
153
+ });
154
+ //#endregion
155
+ export { Index_vue_vue_type_script_setup_true_lang_default as default };