@tmagic/editor 1.6.0 → 1.6.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/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.6.0",
2
+ "version": "1.6.1",
3
3
  "name": "@tmagic/editor",
4
4
  "type": "module",
5
5
  "sideEffects": [
@@ -58,11 +58,11 @@
58
58
  "moveable": "^0.53.0",
59
59
  "serialize-javascript": "^6.0.2",
60
60
  "sortablejs": "^1.15.6",
61
- "@tmagic/design": "1.6.0",
62
- "@tmagic/form": "1.6.0",
63
- "@tmagic/stage": "1.6.0",
64
- "@tmagic/utils": "1.6.0",
65
- "@tmagic/table": "1.6.0"
61
+ "@tmagic/design": "1.6.1",
62
+ "@tmagic/table": "1.6.1",
63
+ "@tmagic/form": "1.6.1",
64
+ "@tmagic/utils": "1.6.1",
65
+ "@tmagic/stage": "1.6.1"
66
66
  },
67
67
  "devDependencies": {
68
68
  "@types/events": "^3.0.3",
@@ -74,9 +74,9 @@
74
74
  },
75
75
  "peerDependencies": {
76
76
  "monaco-editor": "^0.48.0",
77
- "typescript": "^5.9.2",
78
- "vue": "^3.5.20",
79
- "@tmagic/core": "1.6.0"
77
+ "typescript": "^5.9.3",
78
+ "vue": "^3.5.22",
79
+ "@tmagic/core": "1.6.1"
80
80
  },
81
81
  "peerDependenciesMeta": {
82
82
  "typescript": {
@@ -32,7 +32,6 @@
32
32
  content="选择数据源"
33
33
  >
34
34
  <TMagicButton
35
- style="margin-left: 5px"
36
35
  :type="showDataSourceFieldSelect ? 'primary' : 'default'"
37
36
  :size="size"
38
37
  @click="showDataSourceFieldSelect = !showDataSourceFieldSelect"
@@ -1,14 +1,19 @@
1
1
  <template>
2
- <div class="m-fields-style-setter">
3
- <TMagicCollapse :model-value="collapseValue">
4
- <template v-for="(item, index) in list" :key="index">
5
- <TMagicCollapseItem :name="`${index}`">
6
- <template #title><MIcon :icon="Grid"></MIcon>{{ item.title }}</template>
7
- <component v-if="item.component" :is="item.component" :values="model[name]" @change="change"></component>
8
- </TMagicCollapseItem>
9
- </template>
10
- </TMagicCollapse>
11
- </div>
2
+ <TMagicCollapse class="m-fields-style-setter" :model-value="collapseValue">
3
+ <template v-for="(item, index) in list" :key="index">
4
+ <TMagicCollapseItem :name="`${index}`">
5
+ <template #title><MIcon :icon="Grid"></MIcon>{{ item.title }}</template>
6
+ <component
7
+ v-if="item.component"
8
+ :is="item.component"
9
+ :values="model[name]"
10
+ :size="size"
11
+ :disabled="disabled"
12
+ @change="change"
13
+ ></component>
14
+ </TMagicCollapseItem>
15
+ </template>
16
+ </TMagicCollapse>
12
17
  </template>
13
18
 
14
19
  <script setup lang="ts">
@@ -6,13 +6,21 @@
6
6
  :key="index"
7
7
  link
8
8
  :class="model[name] === item.value && 'btn-active'"
9
+ :disabled="disabled"
9
10
  @click="changeHandler(item.value)"
10
11
  >
11
12
  <div :class="['position-icon', item.class, model[name] === item.value && 'active']"></div>
12
13
  </TMagicButton>
13
14
  </div>
14
15
  <div class="custom-value">
15
- <TMagicInput v-model="model[name]" size="small" placeholder="自定义背景位置" clearable @change="changeHandler">
16
+ <TMagicInput
17
+ v-model="model[name]"
18
+ placeholder="自定义背景位置"
19
+ clearable
20
+ :size="size"
21
+ :disabled="disabled"
22
+ @change="changeHandler"
23
+ >
16
24
  </TMagicInput>
17
25
  </div>
18
26
  </div>
@@ -30,7 +30,7 @@
30
30
  </div>
31
31
  </div>
32
32
  <div class="border-value-container">
33
- <MContainer :config="config" :model="model" @change="change"></MContainer>
33
+ <MContainer :config="config" :model="model" :size="size" :disabled="disabled" @change="change"></MContainer>
34
34
  </div>
35
35
  </div>
36
36
  </template>
@@ -67,7 +67,6 @@ const config = computed(() => ({
67
67
  {
68
68
  name: `border${direction.value}Style`,
69
69
  text: '边框样式',
70
-
71
70
  labelWidth: '68px',
72
71
  type: 'data-source-field-select',
73
72
  fieldConfig: {
@@ -90,6 +89,8 @@ const emit = defineEmits<{
90
89
  withDefaults(
91
90
  defineProps<{
92
91
  model: FormValue;
92
+ disabled?: boolean;
93
+ size?: 'large' | 'default' | 'small';
93
94
  }>(),
94
95
  {},
95
96
  );
@@ -5,9 +5,10 @@
5
5
  <span class="next-input">
6
6
  <input
7
7
  v-model="model[item.name]"
8
+ placeholder="0"
8
9
  :title="model[item.name]"
10
+ :disabled="disabled"
9
11
  @change="change($event, item.name)"
10
- placeholder="0"
11
12
  />
12
13
  </span>
13
14
  </div>
@@ -60,6 +61,8 @@ const emit = defineEmits<{
60
61
 
61
62
  withDefaults(
62
63
  defineProps<{
64
+ disabled?: boolean;
65
+ size?: 'large' | 'default' | 'small';
63
66
  model: FormValue;
64
67
  }>(),
65
68
  {},
@@ -4,9 +4,10 @@
4
4
  <span class="next-input">
5
5
  <input
6
6
  v-model="model[item.name]"
7
+ placeholder="0"
7
8
  :title="model[item.name]"
9
+ :disabled="disabled"
8
10
  @change="change($event, item.name)"
9
- placeholder="0"
10
11
  />
11
12
  </span>
12
13
  </div>
@@ -42,6 +43,8 @@ const emit = defineEmits<{
42
43
  withDefaults(
43
44
  defineProps<{
44
45
  model: FormValue;
46
+ disabled?: boolean;
47
+ size?: 'large' | 'default' | 'small';
45
48
  }>(),
46
49
  {},
47
50
  );
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <MContainer :config="config" :model="values" @change="change"></MContainer>
2
+ <MContainer :config="config" :model="values" :size="size" :disabled="disabled" @change="change"></MContainer>
3
3
  </template>
4
4
 
5
5
  <script lang="ts" setup>
@@ -11,7 +11,11 @@ import type { StyleSchema } from '@tmagic/schema';
11
11
  import BackgroundPosition from '../components/BackgroundPosition.vue';
12
12
  import { BackgroundNoRepeat, BackgroundRepeat, BackgroundRepeatX, BackgroundRepeatY } from '../icons/background-repeat';
13
13
 
14
- defineProps<{ values: Partial<StyleSchema> }>();
14
+ defineProps<{
15
+ values: Partial<StyleSchema>;
16
+ disabled?: boolean;
17
+ size?: 'large' | 'default' | 'small';
18
+ }>();
15
19
 
16
20
  const emit = defineEmits<{
17
21
  change: [v: StyleSchema, eventData: ContainerChangeEventData];
@@ -1,6 +1,6 @@
1
1
  <template>
2
- <MContainer :config="config" :model="values" @change="change"></MContainer>
3
- <Border :model="values" @change="change"></Border>
2
+ <MContainer :config="config" :model="values" :size="size" :disabled="disabled" @change="change"></MContainer>
3
+ <Border :model="values" :size="size" :disabled="disabled" @change="change"></Border>
4
4
  </template>
5
5
 
6
6
  <script lang="ts" setup>
@@ -9,7 +9,11 @@ import type { StyleSchema } from '@tmagic/schema';
9
9
 
10
10
  import Border from '../components/Border.vue';
11
11
 
12
- defineProps<{ values: Partial<StyleSchema> }>();
12
+ defineProps<{
13
+ values: Partial<StyleSchema>;
14
+ disabled?: boolean;
15
+ size?: 'large' | 'default' | 'small';
16
+ }>();
13
17
 
14
18
  const emit = defineEmits<{
15
19
  change: [v: StyleSchema, eventData: ContainerChangeEventData];
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <MContainer :config="config" :model="values" @change="change"></MContainer>
2
+ <MContainer :config="config" :model="values" :size="size" :disabled="disabled" @change="change"></MContainer>
3
3
  </template>
4
4
 
5
5
  <script lang="ts" setup>
@@ -10,7 +10,11 @@ import type { StyleSchema } from '@tmagic/schema';
10
10
 
11
11
  import { AlignCenter, AlignLeft, AlignRight } from '../icons/text-align';
12
12
 
13
- defineProps<{ values: Partial<StyleSchema> }>();
13
+ defineProps<{
14
+ values: Partial<StyleSchema>;
15
+ disabled?: boolean;
16
+ size?: 'large' | 'default' | 'small';
17
+ }>();
14
18
 
15
19
  const emit = defineEmits<{
16
20
  change: [v: StyleSchema, eventData: ContainerChangeEventData];
@@ -1,6 +1,12 @@
1
1
  <template>
2
- <MContainer :config="config" :model="values" @change="change"></MContainer>
3
- <Box v-show="!['fixed', 'absolute'].includes(values.position)" :model="values" @change="change"></Box>
2
+ <MContainer :config="config" :model="values" :size="size" :disabled="disabled" @change="change"></MContainer>
3
+ <Box
4
+ v-show="!['fixed', 'absolute'].includes(values.position)"
5
+ :model="values"
6
+ :size="size"
7
+ :disabled="disabled"
8
+ @change="change"
9
+ ></Box>
4
10
  </template>
5
11
 
6
12
  <script lang="ts" setup>
@@ -28,6 +34,8 @@ import {
28
34
 
29
35
  defineProps<{
30
36
  values: Partial<StyleSchema>;
37
+ disabled?: boolean;
38
+ size?: 'large' | 'default' | 'small';
31
39
  }>();
32
40
 
33
41
  const emit = defineEmits<{
@@ -1,12 +1,16 @@
1
1
  <template>
2
- <MContainer :config="config" :model="values" @change="change"></MContainer>
2
+ <MContainer :config="config" :model="values" :size="size" :disabled="disabled" @change="change"></MContainer>
3
3
  </template>
4
4
 
5
5
  <script lang="ts" setup>
6
6
  import { ContainerChangeEventData, MContainer } from '@tmagic/form';
7
7
  import type { StyleSchema } from '@tmagic/schema';
8
8
 
9
- const props = defineProps<{ values: Partial<StyleSchema> }>();
9
+ const props = defineProps<{
10
+ values: Partial<StyleSchema>;
11
+ disabled?: boolean;
12
+ size?: 'large' | 'default' | 'small';
13
+ }>();
10
14
 
11
15
  const emit = defineEmits<{
12
16
  change: [v: string | StyleSchema, eventData: ContainerChangeEventData];
@@ -11,19 +11,21 @@
11
11
  :width="160"
12
12
  :destroy-on-close="true"
13
13
  >
14
- <div>
15
- <slot name="page-list-popover" :list="list">
16
- <ToolButton
17
- v-for="(item, index) in list"
18
- :data="{
19
- type: 'button',
20
- text: item.devconfig?.tabName || item.name || item.id,
21
- className: item.id === page?.id ? 'active' : '',
22
- handler: () => switchPage(item.id),
23
- }"
24
- :key="index"
25
- ></ToolButton>
26
- </slot>
14
+ <div class="page-bar-popover-wrapper">
15
+ <div class="page-bar-popover-inner">
16
+ <slot name="page-list-popover" :list="list">
17
+ <ToolButton
18
+ v-for="(item, index) in list"
19
+ :data="{
20
+ type: 'button',
21
+ text: item.devconfig?.tabName || item.name || item.id,
22
+ className: item.id === page?.id ? 'active' : '',
23
+ handler: () => switchPage(item.id),
24
+ }"
25
+ :key="index"
26
+ ></ToolButton>
27
+ </slot>
28
+ </div>
27
29
  </div>
28
30
  <template #reference>
29
31
  <TMagicIcon class="m-editor-page-list-menu-icon">
@@ -11,6 +11,17 @@
11
11
  border-bottom: 1px solid $border-color;
12
12
  margin-bottom: 10px;
13
13
  }
14
+
15
+ > .el-collapse-item__header {
16
+ padding: 0 10px;
17
+ box-sizing: border-box;
18
+ }
19
+ }
20
+
21
+ .el-collapse-item__title {
22
+ display: flex;
23
+ align-items: center;
24
+ gap: 3px;
14
25
  }
15
26
 
16
27
  .el-collapse-item__header,
@@ -13,4 +13,8 @@
13
13
  flex: 2;
14
14
  }
15
15
  }
16
+ .tmagic-design-button {
17
+ margin-left: 5px;
18
+ padding: 5px 8px;
19
+ }
16
20
  }
@@ -92,6 +92,11 @@
92
92
  padding: 4px 0;
93
93
  }
94
94
 
95
+ .page-bar-popover-wrapper {
96
+ max-height: calc(100vh - $page-bar-height - 20px);
97
+ overflow: auto;
98
+ }
99
+
95
100
  .menu-item {
96
101
  cursor: pointer;
97
102
  transition: all 0.2s ease 0s;
@@ -72,11 +72,6 @@
72
72
  align-items: center;
73
73
  border-bottom: 2px solid $border-color;
74
74
  }
75
-
76
- .tmagic-design-form {
77
- padding-right: 10px;
78
- padding-left: 10px;
79
- }
80
75
  }
81
76
 
82
77
  .m-editor-props-panel-src-icon {
@@ -8,12 +8,25 @@
8
8
  .tmagic-design-collapse-item {
9
9
  > .el-collapse-item__header {
10
10
  background-color: #f2f3f7;
11
- height: 36px;
12
- padding: 10px;
11
+ height: 26px;
12
+ min-height: 26px;
13
+ line-height: 26px;
14
+ padding: 0 20px;
15
+ box-sizing: border-box;
13
16
  }
14
17
 
15
18
  .el-collapse-item__wrap {
16
- padding: 0 10px;
19
+ padding: 10px 20px;
20
+ }
21
+
22
+ .el-collapse-item__title {
23
+ display: flex;
24
+ align-items: center;
25
+ gap: 3px;
26
+ }
27
+
28
+ .el-collapse-item__content {
29
+ padding: 0;
17
30
  }
18
31
  }
19
32
  }
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/naming-convention */
2
1
  /*
3
2
  * Tencent is pleased to support the open source community by making TMagicEditor available.
4
3
  *
@@ -17,7 +16,12 @@
17
16
  * limitations under the License.
18
17
  */
19
18
 
20
- import { NODE_CONDS_KEY, NODE_DISABLE_CODE_BLOCK_KEY, NODE_DISABLE_DATA_SOURCE_KEY } from '@tmagic/core';
19
+ import {
20
+ NODE_CONDS_KEY,
21
+ NODE_CONDS_RESULT_KEY,
22
+ NODE_DISABLE_CODE_BLOCK_KEY,
23
+ NODE_DISABLE_DATA_SOURCE_KEY,
24
+ } from '@tmagic/core';
21
25
  import { tMagicMessage } from '@tmagic/design';
22
26
  import type { FormConfig, FormState, TabConfig, TabPaneConfig } from '@tmagic/form';
23
27
 
@@ -163,8 +167,20 @@ export const advancedTabConfig: TabPaneConfig = {
163
167
 
164
168
  export const displayTabConfig: TabPaneConfig = {
165
169
  title: '显示条件',
166
- display: (_vm: FormState, { model }: any) => model.type !== 'page',
170
+ display: (_state: FormState, { model }: any) => model.type !== 'page',
167
171
  items: [
172
+ {
173
+ name: NODE_CONDS_RESULT_KEY,
174
+ type: 'select',
175
+ text: '条件成立时',
176
+ defaultValue: false,
177
+ options: [
178
+ { text: '显示', value: false },
179
+ { text: '隐藏', value: true },
180
+ ],
181
+ extra: (_state, { model }) =>
182
+ `条件成立时${model[NODE_CONDS_RESULT_KEY] ? '隐藏' : '显示'},不成立时${model[NODE_CONDS_RESULT_KEY] ? '显示' : '隐藏'};<br />同一条件组内的所有条件配置同时成立时表示该条件组成立,任意一个条件组成立时表示条件成立(条件组内为且的关系,条件组间为或的关系);<br />条件为空时表示成立;`,
183
+ },
168
184
  {
169
185
  type: 'display-conds',
170
186
  name: NODE_CONDS_KEY,