@tmagic/editor 1.3.0-alpha.12 → 1.3.0-alpha.14

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 (64) hide show
  1. package/dist/style.css +41 -113
  2. package/dist/tmagic-editor.js +1346 -1195
  3. package/dist/tmagic-editor.js.map +1 -1
  4. package/dist/tmagic-editor.umd.cjs +1357 -1202
  5. package/dist/tmagic-editor.umd.cjs.map +1 -1
  6. package/package.json +11 -11
  7. package/src/Editor.vue +0 -4
  8. package/src/components/CodeBlockEditor.vue +155 -0
  9. package/src/components/CodeParams.vue +59 -0
  10. package/src/fields/Code.vue +27 -19
  11. package/src/fields/CodeSelect.vue +7 -1
  12. package/src/fields/CodeSelectCol.vue +65 -74
  13. package/src/fields/DataSourceFields.vue +7 -9
  14. package/src/fields/DataSourceMethodSelect.vue +147 -0
  15. package/src/fields/DataSourceMethods.vue +103 -0
  16. package/src/fields/EventSelect.vue +33 -7
  17. package/src/fields/UISelect.vue +37 -6
  18. package/src/icons/CodeIcon.vue +0 -2
  19. package/src/index.ts +8 -0
  20. package/src/layouts/CodeEditor.vue +32 -1
  21. package/src/layouts/Framework.vue +7 -3
  22. package/src/layouts/sidebar/Sidebar.vue +2 -10
  23. package/src/layouts/sidebar/code-block/CodeBlockList.vue +79 -117
  24. package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +64 -0
  25. package/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue +23 -33
  26. package/src/layouts/sidebar/data-source/DataSourceList.vue +111 -0
  27. package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +13 -81
  28. package/src/services/codeBlock.ts +18 -71
  29. package/src/services/dataSource.ts +2 -0
  30. package/src/theme/code-block.scss +0 -122
  31. package/src/theme/code-editor.scss +27 -2
  32. package/src/theme/data-source-methods.scss +13 -0
  33. package/src/theme/event.scss +15 -12
  34. package/src/theme/theme.scss +1 -0
  35. package/src/type.ts +21 -6
  36. package/src/utils/data-source/index.ts +11 -0
  37. package/src/utils/use-code-block-edit.ts +84 -0
  38. package/src/utils/use-data-source-method.ts +101 -0
  39. package/types/components/CodeBlockEditor.vue.d.ts +21 -0
  40. package/types/components/CodeParams.vue.d.ts +26 -0
  41. package/types/components/ContentMenu.vue.d.ts +2 -2
  42. package/types/fields/Code.vue.d.ts +26 -6
  43. package/types/fields/CodeSelectCol.vue.d.ts +16 -5
  44. package/types/fields/DataSourceFields.vue.d.ts +2 -0
  45. package/types/fields/DataSourceMethodSelect.vue.d.ts +44 -0
  46. package/types/fields/DataSourceMethods.vue.d.ts +45 -0
  47. package/types/index.d.ts +4 -0
  48. package/types/layouts/CodeEditor.vue.d.ts +2 -0
  49. package/types/layouts/PropsPanel.vue.d.ts +8 -8
  50. package/types/layouts/sidebar/Sidebar.vue.d.ts +0 -3
  51. package/types/layouts/sidebar/code-block/CodeBlockList.vue.d.ts +4 -9
  52. package/types/layouts/sidebar/code-block/{CodeBlockEditor.vue.d.ts → CodeBlockListPanel.vue.d.ts} +5 -6
  53. package/types/layouts/sidebar/data-source/DataSourceConfigPanel.vue.d.ts +3 -1
  54. package/types/layouts/sidebar/data-source/DataSourceList.vue.d.ts +14 -0
  55. package/types/layouts/sidebar/data-source/DataSourceListPanel.vue.d.ts +1 -11
  56. package/types/services/codeBlock.d.ts +6 -37
  57. package/types/services/dataSource.d.ts +1 -0
  58. package/types/type.d.ts +19 -6
  59. package/types/{components/FunctionEditor.vue.d.ts → utils/use-code-block-edit.d.ts} +26 -123
  60. package/types/utils/use-data-source-method.d.ts +116 -0
  61. package/src/components/CodeDraftEditor.vue +0 -148
  62. package/src/components/FunctionEditor.vue +0 -197
  63. package/src/layouts/sidebar/code-block/CodeBlockEditor.vue +0 -100
  64. package/types/components/CodeDraftEditor.vue.d.ts +0 -61
@@ -1,100 +0,0 @@
1
- <template>
2
- <TMagicDrawer
3
- class="code-editor-dialog"
4
- :model-value="true"
5
- :title="currentTitle"
6
- :close-on-press-escape="true"
7
- :append-to-body="true"
8
- :show-close="false"
9
- :close-on-click-modal="true"
10
- :size="size"
11
- :before-close="handleClose"
12
- >
13
- <SplitView v-model:left="left" :min-left="45" class="code-editor-layout">
14
- <!-- 右侧区域 -->
15
- <template #center>
16
- <div v-if="!isEmpty(codeConfig)" class="m-editor-code-block-editor-panel">
17
- <slot name="code-block-edit-panel-header" :id="id"></slot>
18
- <FunctionEditor
19
- ref="functionEditor"
20
- v-if="codeConfig"
21
- :id="id"
22
- :name="codeConfig.name"
23
- :content="codeConfig.content"
24
- :paramsColConfig="paramsColConfig"
25
- :editable="!!editable"
26
- :autoSaveDraft="true"
27
- :codeOptions="codeOptions"
28
- ></FunctionEditor>
29
- </div>
30
- </template>
31
- </SplitView>
32
- </TMagicDrawer>
33
- </template>
34
-
35
- <script lang="ts" setup>
36
- import { computed, inject, reactive, ref, watchEffect } from 'vue';
37
- import { cloneDeep, forIn, isEmpty } from 'lodash-es';
38
-
39
- import { TMagicDrawer } from '@tmagic/design';
40
- import { ColumnConfig } from '@tmagic/form';
41
- import { CodeBlockContent } from '@tmagic/schema';
42
-
43
- import FunctionEditor from '@editor/components/FunctionEditor.vue';
44
- import SplitView from '@editor/components/SplitView.vue';
45
- import type { ListState, Services } from '@editor/type';
46
- import { serializeConfig } from '@editor/utils/editor';
47
-
48
- defineOptions({
49
- name: 'MEditorCodeBlockEditor',
50
- });
51
-
52
- const services = inject<Services>('services');
53
- const codeOptions = inject('codeOptions', {});
54
-
55
- defineProps<{
56
- paramsColConfig?: ColumnConfig;
57
- }>();
58
-
59
- const size = computed(() => globalThis.document.body.clientWidth - (services?.uiService.get('columnWidth').left || 0));
60
-
61
- const left = ref(200);
62
- const currentTitle = ref('');
63
- // 编辑器当前需展示的代码块内容
64
- const codeConfig = ref<CodeBlockContent | null>(null);
65
- // select选择的内容(ListState)
66
- const state = reactive<ListState>({
67
- codeList: [],
68
- });
69
-
70
- const id = computed(() => services?.codeBlockService.getId() || '');
71
- const editable = computed(() => services?.codeBlockService.getEditStatus());
72
- // 当前选中组件绑定的代码块id数组
73
- const selectedIds = computed(() => services?.codeBlockService.getCombineIds() || []);
74
-
75
- watchEffect(async () => {
76
- codeConfig.value = cloneDeep(await services?.codeBlockService.getCodeContentById(id.value)) || null;
77
- if (!codeConfig.value) return;
78
- codeConfig.value.content = serializeConfig(codeConfig.value.content);
79
- });
80
-
81
- watchEffect(async () => {
82
- const codeDsl = (await services?.codeBlockService.getCodeDslByIds(selectedIds.value)) || null;
83
- if (!codeDsl) return;
84
- state.codeList = [];
85
- forIn(codeDsl, (value: CodeBlockContent, key: string) => {
86
- state.codeList.push({
87
- id: key,
88
- name: value.name,
89
- });
90
- });
91
- currentTitle.value = state.codeList[0]?.name || '';
92
- });
93
-
94
- const functionEditor = ref<InstanceType<typeof FunctionEditor>>();
95
-
96
- const handleClose = async () => {
97
- // 触发codeDraftEditor组件关闭事件
98
- await functionEditor.value?.codeDraftEditor?.close();
99
- };
100
- </script>
@@ -1,61 +0,0 @@
1
- import { Id } from '@tmagic/schema';
2
- declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
3
- /** 代码id */
4
- id: Id;
5
- /** 代码内容 */
6
- content: string;
7
- /** 是否可编辑 */
8
- editable?: boolean | undefined;
9
- /** 是否自动保存草稿 */
10
- autoSaveDraft?: boolean | undefined;
11
- /** 编辑器参数 */
12
- codeOptions?: Object | undefined;
13
- /** 编辑器语言 */
14
- language?: string | undefined;
15
- }>, {
16
- editable: boolean;
17
- autoSaveDraft: boolean;
18
- }>, {
19
- saveAndClose: () => void;
20
- close: () => Promise<void>;
21
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("close" | "saveAndClose")[], "close" | "saveAndClose", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
22
- /** 代码id */
23
- id: Id;
24
- /** 代码内容 */
25
- content: string;
26
- /** 是否可编辑 */
27
- editable?: boolean | undefined;
28
- /** 是否自动保存草稿 */
29
- autoSaveDraft?: boolean | undefined;
30
- /** 编辑器参数 */
31
- codeOptions?: Object | undefined;
32
- /** 编辑器语言 */
33
- language?: string | undefined;
34
- }>, {
35
- editable: boolean;
36
- autoSaveDraft: boolean;
37
- }>>> & {
38
- onClose?: ((...args: any[]) => any) | undefined;
39
- onSaveAndClose?: ((...args: any[]) => any) | undefined;
40
- }, {
41
- editable: boolean;
42
- autoSaveDraft: boolean;
43
- }, {}>;
44
- export default _default;
45
- type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
46
- type __VLS_TypePropsToRuntimeProps<T> = {
47
- [K in keyof T]-?: {} extends Pick<T, K> ? {
48
- type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
49
- } : {
50
- type: import('vue').PropType<T[K]>;
51
- required: true;
52
- };
53
- };
54
- type __VLS_WithDefaults<P, D> = {
55
- [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
56
- default: D[K];
57
- }> : P[K];
58
- };
59
- type __VLS_Prettify<T> = {
60
- [K in keyof T]: T[K];
61
- } & {};