@keyblade/tinymce-editor-vue2 0.1.0 → 0.1.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.
- package/README.md +81 -3
- package/es/editor.vue2.js +244 -244
- package/es/langs/zh_CN.js +1 -1
- package/es/types.d.ts +4 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,12 +6,21 @@
|
|
|
6
6
|
|
|
7
7
|
升级指南:https://v2.cn.vuejs.org/v2/guide/migration-vue-2-7.html
|
|
8
8
|
|
|
9
|
+
## 版本区分
|
|
10
|
+
- 0.x.x - 图片使用第三方 imgpond 组件
|
|
11
|
+
- 1.x.x - 图片使用自己封装的 ProVue2ImageUpload 组件
|
|
12
|
+
|
|
9
13
|
## 一、安装
|
|
10
14
|
```shell
|
|
11
15
|
yarn add @keyblade/tinymce-editor-vue2
|
|
12
16
|
# 下面两个是编辑器需要的第三方依赖,如原项目中有,可以不用安装,但要注意版本,必须匹配,否则css样式有问题。
|
|
17
|
+
|
|
18
|
+
# 0.x.x版本 需要安装如下:
|
|
13
19
|
yarn add pic-viewer@0.5.1
|
|
14
20
|
yarn add imgpond@0.6.2
|
|
21
|
+
|
|
22
|
+
# 1.x.x版本 需要安装如下:
|
|
23
|
+
yarn add @keyblade/pro-components-vue2@1.12.6
|
|
15
24
|
```
|
|
16
25
|
|
|
17
26
|
## 二、使用
|
|
@@ -19,20 +28,45 @@ yarn add imgpond@0.6.2
|
|
|
19
28
|
```typescript
|
|
20
29
|
import TinymceEditor from '@keyblade/tinymce-editor-vue2'
|
|
21
30
|
|
|
31
|
+
// 0.x.x版本
|
|
22
32
|
// 如原项目中,则不需要
|
|
23
33
|
import PicViewer from 'pic-viewer'
|
|
24
34
|
import 'pic-viewer/dist/style.css'
|
|
25
35
|
|
|
26
|
-
// 如原项目中,则不需要
|
|
36
|
+
// 如原项目中,则不需要(0.x.x版本)
|
|
27
37
|
import ImgPond from 'imgpond'
|
|
28
38
|
import 'imgpond/dist/style.css'
|
|
29
39
|
|
|
30
40
|
Vue.use(PicViewer, {})
|
|
31
41
|
Vue.use(ImgPond, {})
|
|
32
42
|
|
|
43
|
+
// 1.x.x版本
|
|
44
|
+
import { ProVue2ImageUpload } from '@keyblade/pro-components-vue2'
|
|
45
|
+
import '@keyblade/pro-components-vue2/es/style.css'
|
|
46
|
+
Vue.use(ProVue2ImageUpload)
|
|
47
|
+
|
|
48
|
+
|
|
33
49
|
Vue.use(TinymceEditor, {
|
|
34
50
|
// 图片
|
|
35
51
|
imageUploadOptions: {
|
|
52
|
+
/** 1.x.x版本新增 */
|
|
53
|
+
action: '/api/man/uploadFile/uploadSingleFile',
|
|
54
|
+
handlerResponse: (response: any) => {
|
|
55
|
+
return {
|
|
56
|
+
success: !!response?.data.fileUrl,
|
|
57
|
+
url: response?.data.fileUrl,
|
|
58
|
+
errorMessage: response?.data.fileUrl ? undefined : response?.msg
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
headers: (parameters: { file: File | Blob, extParameters: Record<string, any> }) => {
|
|
62
|
+
console.log(parameters)
|
|
63
|
+
return {}
|
|
64
|
+
},
|
|
65
|
+
data: (parameters: { file: File | Blob, extParameters: Record<string, any> }) => {
|
|
66
|
+
return {}
|
|
67
|
+
},
|
|
68
|
+
/** 1.x.x版本新增 */
|
|
69
|
+
|
|
36
70
|
handleRequest: (file: File, filename: string, parameters: { extParameters: Record<string, any> }) => {
|
|
37
71
|
return new Promise((resolve) => {
|
|
38
72
|
setTimeout(() => {
|
|
@@ -120,7 +154,7 @@ interface TinymceEditorGlobalOptions {
|
|
|
120
154
|
/** 图片上传选项 */
|
|
121
155
|
imageUploadOptions?: ImageUploadOptions;
|
|
122
156
|
|
|
123
|
-
/** imgPond
|
|
157
|
+
/** imgPond 选项(1.x.x版本废弃) */
|
|
124
158
|
imgPondOptions?: Record<string, any>;
|
|
125
159
|
|
|
126
160
|
/** 音频上传选项 */
|
|
@@ -147,7 +181,7 @@ interface ComponentOptions {
|
|
|
147
181
|
/** 图片上传选项 */
|
|
148
182
|
imageUploadOptions?: ImageUploadOptions;
|
|
149
183
|
|
|
150
|
-
/** imgPond
|
|
184
|
+
/** imgPond选项(1.x.x版本废弃) */
|
|
151
185
|
imgPondOptions?: Record<string, any>;
|
|
152
186
|
|
|
153
187
|
/** 音频上传组件选项 */
|
|
@@ -163,6 +197,46 @@ interface ComponentOptions {
|
|
|
163
197
|
|
|
164
198
|
### 3.图片上传配置
|
|
165
199
|
```typescript
|
|
200
|
+
// 1.x.x版本
|
|
201
|
+
export interface ImageUploadOptions {
|
|
202
|
+
/** 上传的文件字段名 - 默认: file */
|
|
203
|
+
name?: string;
|
|
204
|
+
/** 接受上传的文件类型 - 默认: ['jpg', 'jpeg', 'png', 'bmp', 'heif', 'heic', 'gif', 'webp'] */
|
|
205
|
+
accept?: string[];
|
|
206
|
+
/** 是否支持多选文件 - 默认: true */
|
|
207
|
+
multiple?: boolean;
|
|
208
|
+
/** 最大允许上传个数 - 默认: 10 */
|
|
209
|
+
limit?: number;
|
|
210
|
+
/** 是否禁用 - 默认: false */
|
|
211
|
+
disabled?: boolean;
|
|
212
|
+
/** 隐藏内置上传文件之前的loading效果 - 默认: false */
|
|
213
|
+
hideInnerBeforeUploadLoading?: boolean;
|
|
214
|
+
/** 校验选项 */
|
|
215
|
+
checkOptions?: ImageUploadCheckOptions;
|
|
216
|
+
/** 压缩选项 */
|
|
217
|
+
compressorOptions?: ImageUploadCompressorOptions;
|
|
218
|
+
/** 剪裁选项 */
|
|
219
|
+
cropOptions?: ImageUploadCropOptions;
|
|
220
|
+
|
|
221
|
+
/** 上传地址(启用必传) */
|
|
222
|
+
action?: string;
|
|
223
|
+
/** 请求头 */
|
|
224
|
+
headers?: (parameters: { file: File | Blob | undefined, extParameters?: Record<string, any> }) => Record<string, any>;
|
|
225
|
+
/** 额外请求体 */
|
|
226
|
+
data?: (parameters: { file: File | Blob | undefined, extParameters?: Record<string, any> }) => Record<string, any>;
|
|
227
|
+
/** 响应处理(启用必传) */
|
|
228
|
+
handlerResponse?: (response: any) => { success: boolean; url?: string; errorMessage?: string }
|
|
229
|
+
/** 图片上传请求处理(图片粘贴、复制时调用) */
|
|
230
|
+
handleRequest?: (file: File, filename: string, options?: {
|
|
231
|
+
extParameters?: Record<string, any>
|
|
232
|
+
}) => Promise<{success: boolean; url?: string; errorMessage?: string}>;
|
|
233
|
+
/** 图片URL上传请求处理(图片粘贴、复制时调用,前端跨域,交给后端处理) */
|
|
234
|
+
handleRequestByUrl?: (url: string, options?: {
|
|
235
|
+
extParameters?: Record<string, any>
|
|
236
|
+
}) => Promise<{success: boolean; url?: string; errorMessage?: string}>;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// 0.x.x版本
|
|
166
240
|
export interface ImageUploadOptions {
|
|
167
241
|
/** 图片上传组件最大数量 */
|
|
168
242
|
maxCount?: number;
|
|
@@ -208,6 +282,8 @@ export interface VideoUploadOptions {
|
|
|
208
282
|
headers?: (parameters: { file: File | Blob, extParameters?: Record<string, any> }) => Record<string, any>;
|
|
209
283
|
/** 额外请求体 */
|
|
210
284
|
data?: (parameters: { file: File | Blob, extParameters?: Record<string, any> }) => Record<string, any>;
|
|
285
|
+
/** 上传之前回调结束(开始调用上传接口) */
|
|
286
|
+
beforeUploadEnd?: (file: File | Blob) => void
|
|
211
287
|
/** 响应处理(启用必传) */
|
|
212
288
|
handlerResponse?: (response: any) => { url?: string; errorMessage?: string }
|
|
213
289
|
}
|
|
@@ -230,6 +306,8 @@ export interface AudioUploadOptions {
|
|
|
230
306
|
headers?: (parameters: { file: File | Blob, extParameters?: Record<string, any> }) => Record<string, any>;
|
|
231
307
|
/** 额外请求体 */
|
|
232
308
|
data?: (parameters: { file: File | Blob, extParameters?: Record<string, any> }) => Record<string, any>;
|
|
309
|
+
/** 上传之前回调结束(开始调用上传接口) */
|
|
310
|
+
beforeUploadEnd?: (file: File | Blob) => void
|
|
233
311
|
/** 响应处理(启用必传) */
|
|
234
312
|
handlerResponse?: (response: any) => { url?: string; errorMessage?: string }
|
|
235
313
|
}
|
package/es/editor.vue2.js
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
1
|
+
var Ee = Object.defineProperty, He = Object.defineProperties;
|
|
2
|
+
var qe = Object.getOwnPropertyDescriptors;
|
|
3
|
+
var ne = Object.getOwnPropertySymbols;
|
|
4
|
+
var Ve = Object.prototype.hasOwnProperty, je = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var se = (m, n) => (n = Symbol[m]) ? n : Symbol.for("Symbol." + m);
|
|
6
|
+
var ue = (m, n, i) => n in m ? Ee(m, n, { enumerable: !0, configurable: !0, writable: !0, value: i }) : m[n] = i, P = (m, n) => {
|
|
7
7
|
for (var i in n || (n = {}))
|
|
8
|
-
|
|
9
|
-
if (
|
|
10
|
-
for (var i of
|
|
11
|
-
|
|
12
|
-
return
|
|
13
|
-
}, j = (
|
|
14
|
-
var
|
|
15
|
-
var
|
|
8
|
+
Ve.call(n, i) && ue(m, i, n[i]);
|
|
9
|
+
if (ne)
|
|
10
|
+
for (var i of ne(n))
|
|
11
|
+
je.call(n, i) && ue(m, i, n[i]);
|
|
12
|
+
return m;
|
|
13
|
+
}, j = (m, n) => He(m, qe(n));
|
|
14
|
+
var L = (m, n, i) => new Promise((k, I) => {
|
|
15
|
+
var S = (x) => {
|
|
16
16
|
try {
|
|
17
|
-
|
|
18
|
-
} catch (
|
|
19
|
-
|
|
17
|
+
d(i.next(x));
|
|
18
|
+
} catch (C) {
|
|
19
|
+
I(C);
|
|
20
20
|
}
|
|
21
|
-
},
|
|
21
|
+
}, z = (x) => {
|
|
22
22
|
try {
|
|
23
|
-
|
|
24
|
-
} catch (
|
|
25
|
-
|
|
23
|
+
d(i.throw(x));
|
|
24
|
+
} catch (C) {
|
|
25
|
+
I(C);
|
|
26
26
|
}
|
|
27
|
-
},
|
|
28
|
-
|
|
27
|
+
}, d = (x) => x.done ? k(x.value) : Promise.resolve(x.value).then(S, z);
|
|
28
|
+
d((i = i.apply(m, n)).next());
|
|
29
29
|
});
|
|
30
|
-
var
|
|
31
|
-
import { defineComponent as
|
|
32
|
-
import { oneTravelImgPondBeforeAddFile as
|
|
33
|
-
import { blobToFile as
|
|
30
|
+
var K = (m, n, i) => (n = m[se("asyncIterator")]) ? n.call(m) : (m = m[se("iterator")](), n = {}, i = (k, I) => (I = m[k]) && (n[k] = (S) => new Promise((z, d, x) => (S = I.call(m, S), x = S.done, Promise.resolve(S.value).then((C) => z({ value: C, done: x }), d)))), i("next"), i("return"), n);
|
|
31
|
+
import { defineComponent as $e, ref as y, computed as $, watch as O, onMounted as Fe, onUnmounted as Re } from "vue";
|
|
32
|
+
import { oneTravelImgPondBeforeAddFile as me, oneTravelImageCompressor as de, oneTravelImageCheckAndTransform as We } from "@keyblade/one-travel";
|
|
33
|
+
import { blobToFile as ce, getImagePixel as Ne, getFileExtension as Le } from "./util.js";
|
|
34
34
|
import "./style.less.js";
|
|
35
|
-
import
|
|
36
|
-
import { conclude as
|
|
37
|
-
import
|
|
38
|
-
import
|
|
35
|
+
import Oe from "imgpond";
|
|
36
|
+
import { conclude as F } from "vue-global-config";
|
|
37
|
+
import pe from "tinymce";
|
|
38
|
+
import Ge from "./langs/zh_CN.js";
|
|
39
39
|
import "tinymce/skins/ui/oxide/skin";
|
|
40
40
|
import "tinymce/models/dom";
|
|
41
41
|
import "tinymce/themes/silver";
|
|
@@ -66,9 +66,9 @@ import "tinymce/plugins/table";
|
|
|
66
66
|
import "tinymce/plugins/visualblocks";
|
|
67
67
|
import "tinymce/plugins/visualchars";
|
|
68
68
|
import "tinymce/plugins/wordcount";
|
|
69
|
-
import { globalProps as
|
|
69
|
+
import { globalProps as R } from "./index.js";
|
|
70
70
|
import { Message as g } from "element-ui";
|
|
71
|
-
const
|
|
71
|
+
const Ha = /* @__PURE__ */ $e({
|
|
72
72
|
__name: "editor",
|
|
73
73
|
props: {
|
|
74
74
|
value: { default: "" },
|
|
@@ -82,10 +82,10 @@ const Va = /* @__PURE__ */ je({
|
|
|
82
82
|
initComplete: null
|
|
83
83
|
},
|
|
84
84
|
emits: ["input"],
|
|
85
|
-
setup(
|
|
86
|
-
const i =
|
|
87
|
-
|
|
88
|
-
const
|
|
85
|
+
setup(m, { emit: n }) {
|
|
86
|
+
const i = m;
|
|
87
|
+
pe.addI18n("zh_CN", Ge);
|
|
88
|
+
const k = {
|
|
89
89
|
maxCount: 10,
|
|
90
90
|
tipText: "上传",
|
|
91
91
|
maxSize: 30,
|
|
@@ -94,75 +94,75 @@ const Va = /* @__PURE__ */ je({
|
|
|
94
94
|
minHeight: 50,
|
|
95
95
|
maxWidth: 6e3,
|
|
96
96
|
maxHeight: 6e3
|
|
97
|
-
},
|
|
97
|
+
}, I = {
|
|
98
98
|
enable: !0,
|
|
99
99
|
maxSize: 300,
|
|
100
100
|
allowedType: ["avi", "wmv", "mp4", "mov", "3gp"],
|
|
101
101
|
accept: ".avi,.wmv,.mp4,.mov,.3gp"
|
|
102
|
-
},
|
|
102
|
+
}, S = {
|
|
103
103
|
enable: !0,
|
|
104
104
|
maxSize: 200,
|
|
105
105
|
allowedType: ["wav", "mp3", "mp4", "m4a", "wma", "aac"],
|
|
106
106
|
accept: ".wav,.mp3,.mp4,.m4a,.wma,.aac"
|
|
107
|
-
},
|
|
107
|
+
}, z = y(), d = y(), x = y(!1), C = y(!1), T = y({
|
|
108
108
|
show: !1,
|
|
109
109
|
text: "图片上传中,请稍等"
|
|
110
|
-
}), s =
|
|
110
|
+
}), s = $(() => F([i.imageUploadOptions, R.imageUploadOptions, k]) || {}), u = $(() => F([i.videoUploadOptions, R.videoUploadOptions, I]) || {}), h = $(() => F([i.audioUploadOptions, R.audioUploadOptions, S]) || {}), G = $(() => F([i.imgPondOptions, R.imgPondOptions]) || {}), fe = $(() => {
|
|
111
111
|
var e, a;
|
|
112
|
-
return ((a = (e = s == null ? void 0 : s.value) == null ? void 0 : e.allowedType) == null ? void 0 : a.map((
|
|
113
|
-
}),
|
|
114
|
-
O(() =>
|
|
115
|
-
|
|
112
|
+
return ((a = (e = s == null ? void 0 : s.value) == null ? void 0 : e.allowedType) == null ? void 0 : a.map((t) => `.${t}`).join(",")) || "";
|
|
113
|
+
}), W = y();
|
|
114
|
+
O(() => W.value, () => {
|
|
115
|
+
W.value && me(W.value, {
|
|
116
116
|
onStart: () => {
|
|
117
|
-
|
|
117
|
+
T.value = {
|
|
118
118
|
show: !0,
|
|
119
119
|
text: "图片加载中,请稍等"
|
|
120
120
|
};
|
|
121
121
|
},
|
|
122
122
|
onSuccess: () => {
|
|
123
|
-
|
|
123
|
+
T.value.show = !1;
|
|
124
124
|
},
|
|
125
125
|
onError: (e) => {
|
|
126
|
-
|
|
126
|
+
T.value.show = !1, g.error({ message: e, customClass: "tinymce-editor-message", duration: 3e3 });
|
|
127
127
|
}
|
|
128
128
|
});
|
|
129
129
|
}, { immediate: !0 });
|
|
130
|
-
const
|
|
131
|
-
O(() =>
|
|
132
|
-
|
|
130
|
+
const N = y();
|
|
131
|
+
O(() => N.value, () => {
|
|
132
|
+
N.value && me(N.value, {
|
|
133
133
|
onStart: () => {
|
|
134
|
-
|
|
134
|
+
T.value = {
|
|
135
135
|
show: !0,
|
|
136
136
|
text: "图片加载中,请稍等"
|
|
137
137
|
};
|
|
138
138
|
},
|
|
139
139
|
onSuccess: () => {
|
|
140
|
-
|
|
140
|
+
T.value.show = !1;
|
|
141
141
|
},
|
|
142
142
|
onError: (e) => {
|
|
143
|
-
|
|
143
|
+
T.value.show = !1, g.error(e);
|
|
144
144
|
}
|
|
145
145
|
});
|
|
146
146
|
}, { immediate: !0 });
|
|
147
|
-
const
|
|
147
|
+
const E = y({
|
|
148
148
|
dialogVisible: !1,
|
|
149
149
|
formData: {
|
|
150
150
|
images: []
|
|
151
151
|
}
|
|
152
|
-
}),
|
|
153
|
-
H = [],
|
|
152
|
+
}), Q = y(), Y = () => {
|
|
153
|
+
H = [], E.value.dialogVisible = !1, E.value.formData = {
|
|
154
154
|
images: []
|
|
155
155
|
};
|
|
156
|
-
},
|
|
156
|
+
}, ve = () => {
|
|
157
157
|
var e;
|
|
158
|
-
H = [], (e =
|
|
159
|
-
a && (
|
|
158
|
+
H = [], (e = Q.value) == null || e.validate((a) => {
|
|
159
|
+
a && (E.value.formData.images.forEach((t) => {
|
|
160
160
|
var r;
|
|
161
|
-
let
|
|
162
|
-
|
|
163
|
-
}),
|
|
161
|
+
let o = t;
|
|
162
|
+
G.value.srcAt && (o = (t == null ? void 0 : t[G.value.srcAt]) || ""), (r = d.value) == null || r.insertContent(`<img src=${o} alt="" />`);
|
|
163
|
+
}), Y());
|
|
164
164
|
});
|
|
165
|
-
},
|
|
165
|
+
}, b = y({
|
|
166
166
|
dialogVisible: !1,
|
|
167
167
|
formData: {
|
|
168
168
|
// 名称
|
|
@@ -174,17 +174,17 @@ const Va = /* @__PURE__ */ je({
|
|
|
174
174
|
},
|
|
175
175
|
// 用于临时保存上传前的参数 { file: File }
|
|
176
176
|
additionalData: {}
|
|
177
|
-
}),
|
|
178
|
-
|
|
177
|
+
}), Z = y(), ee = () => {
|
|
178
|
+
b.value.dialogVisible = !1, b.value.formData = {
|
|
179
179
|
name: "",
|
|
180
180
|
cover: [],
|
|
181
181
|
file: []
|
|
182
|
-
},
|
|
183
|
-
},
|
|
182
|
+
}, b.value.additionalData = {};
|
|
183
|
+
}, ge = () => {
|
|
184
184
|
var e;
|
|
185
|
-
(e =
|
|
186
|
-
var
|
|
187
|
-
a && ((
|
|
185
|
+
(e = Z.value) == null || e.validate((a) => {
|
|
186
|
+
var t, o;
|
|
187
|
+
a && ((o = d.value) == null || o.insertContent(`<audio controls controlslist="nodownload noplaybackrate" data-name="${b.value.formData.name}" data-poster="${b.value.formData.cover[0]}" src="${(t = b.value.formData.file[0]) == null ? void 0 : t.url}"></audio>`), ee());
|
|
188
188
|
});
|
|
189
189
|
}, _ = y({
|
|
190
190
|
dialogVisible: !1,
|
|
@@ -194,61 +194,61 @@ const Va = /* @__PURE__ */ je({
|
|
|
194
194
|
},
|
|
195
195
|
// 用于临时保存上传前的参数 { file: File }
|
|
196
196
|
additionalData: {}
|
|
197
|
-
}),
|
|
197
|
+
}), ae = y(), te = () => {
|
|
198
198
|
_.value.dialogVisible = !1, _.value.formData = {
|
|
199
199
|
file: []
|
|
200
200
|
}, _.value.additionalData = {};
|
|
201
|
-
},
|
|
201
|
+
}, he = () => {
|
|
202
202
|
var e;
|
|
203
|
-
(e =
|
|
204
|
-
var
|
|
205
|
-
a && ((
|
|
203
|
+
(e = ae.value) == null || e.validate((a) => {
|
|
204
|
+
var t, o;
|
|
205
|
+
a && ((o = d.value) == null || o.insertContent(`<video width="auto" height="auto" controls src="${(t = _.value.formData.file[0]) == null ? void 0 : t.url}"></video>`), te());
|
|
206
206
|
});
|
|
207
|
-
},
|
|
207
|
+
}, xe = () => {
|
|
208
208
|
document.querySelectorAll(".swal2-container .swal2-title").forEach((e) => {
|
|
209
209
|
e && (e.innerHTML = `单次最多可选择${s.value.maxCount}张图片`);
|
|
210
210
|
});
|
|
211
211
|
};
|
|
212
212
|
let H = [];
|
|
213
|
-
const
|
|
213
|
+
const we = (e, a) => new Promise((t, o) => L(this, null, function* () {
|
|
214
214
|
var f, v;
|
|
215
|
-
if (H.find((
|
|
215
|
+
if (H.find((p) => (p == null ? void 0 : p.uid) === (e == null ? void 0 : e.uid)))
|
|
216
216
|
return setTimeout(() => {
|
|
217
|
-
document.querySelectorAll(".swal2-container").forEach((
|
|
218
|
-
|
|
217
|
+
document.querySelectorAll(".swal2-container").forEach((p) => {
|
|
218
|
+
p == null || p.remove();
|
|
219
219
|
});
|
|
220
|
-
}),
|
|
220
|
+
}), o("");
|
|
221
221
|
H.push(e);
|
|
222
|
-
const l = yield
|
|
222
|
+
const l = yield de(e);
|
|
223
223
|
if (!l.success) {
|
|
224
|
-
|
|
224
|
+
o(), setTimeout(() => {
|
|
225
225
|
a.onError(l.errorMessage);
|
|
226
226
|
});
|
|
227
227
|
return;
|
|
228
228
|
}
|
|
229
|
-
const
|
|
230
|
-
if (!
|
|
231
|
-
|
|
232
|
-
a.onError(
|
|
229
|
+
const c = yield (v = (f = s.value).handleRequest) == null ? void 0 : v.call(f, ce(l.file, e.name), e.name, { extParameters: i.extParameters });
|
|
230
|
+
if (!c || !(c != null && c.success)) {
|
|
231
|
+
o(), setTimeout(() => {
|
|
232
|
+
a.onError(c == null ? void 0 : c.errorMessage);
|
|
233
233
|
});
|
|
234
234
|
return;
|
|
235
235
|
}
|
|
236
|
-
|
|
236
|
+
t(c.url);
|
|
237
237
|
}));
|
|
238
|
-
function
|
|
239
|
-
return
|
|
240
|
-
var
|
|
238
|
+
function oe(e) {
|
|
239
|
+
return L(this, null, function* () {
|
|
240
|
+
var c, f, v;
|
|
241
241
|
let a = e;
|
|
242
|
-
if (!((
|
|
242
|
+
if (!((c = s.value) != null && c.handleRequest)) {
|
|
243
243
|
g.error("缺少图片上传配置");
|
|
244
244
|
return;
|
|
245
245
|
}
|
|
246
|
-
let
|
|
246
|
+
let t = a.name ? a.name : "";
|
|
247
247
|
if (!(a != null && a.name) && !(a != null && a.lastModified) && a.type === "image/png") {
|
|
248
248
|
g.error("不允许粘贴");
|
|
249
249
|
return;
|
|
250
250
|
}
|
|
251
|
-
const
|
|
251
|
+
const o = yield We(a, t, {
|
|
252
252
|
imageMaxSize: s.value.maxSize,
|
|
253
253
|
imageAllowedType: s.value.allowedType,
|
|
254
254
|
// imageAllowedMineType: mergeImageUploadOptions.value.allowedMineType,
|
|
@@ -257,21 +257,21 @@ const Va = /* @__PURE__ */ je({
|
|
|
257
257
|
imageMaxWidth: s.value.maxWidth,
|
|
258
258
|
imageMaxHeight: s.value.maxHeight
|
|
259
259
|
});
|
|
260
|
-
if (!
|
|
261
|
-
g.error((
|
|
260
|
+
if (!o.success) {
|
|
261
|
+
g.error((o == null ? void 0 : o.errorMessage) || "");
|
|
262
262
|
return;
|
|
263
263
|
}
|
|
264
|
-
if (
|
|
265
|
-
a =
|
|
266
|
-
const
|
|
267
|
-
|
|
264
|
+
if (o.hasTransform) {
|
|
265
|
+
a = o.file;
|
|
266
|
+
const p = t == null ? void 0 : t.split(".");
|
|
267
|
+
p.pop(), t = `${p.join(",")}.jpg`;
|
|
268
268
|
}
|
|
269
|
-
const r = yield
|
|
269
|
+
const r = yield de(a);
|
|
270
270
|
if (!r.success) {
|
|
271
271
|
g.error((r == null ? void 0 : r.errorMessage) || "压缩失败");
|
|
272
272
|
return;
|
|
273
273
|
}
|
|
274
|
-
const l = yield (v = (f = s.value).handleRequest) == null ? void 0 : v.call(f,
|
|
274
|
+
const l = yield (v = (f = s.value).handleRequest) == null ? void 0 : v.call(f, ce(r.file, t), t, { extParameters: i.extParameters });
|
|
275
275
|
if (!l || !l.success) {
|
|
276
276
|
g.error((l == null ? void 0 : l.errorMessage) || "");
|
|
277
277
|
return;
|
|
@@ -279,98 +279,98 @@ const Va = /* @__PURE__ */ je({
|
|
|
279
279
|
return l.url;
|
|
280
280
|
});
|
|
281
281
|
}
|
|
282
|
-
const
|
|
283
|
-
var l,
|
|
284
|
-
const a =
|
|
285
|
-
if (
|
|
286
|
-
const U = e.getData("text/html"),
|
|
287
|
-
|
|
282
|
+
const X = (e) => L(this, null, function* () {
|
|
283
|
+
var l, c, D;
|
|
284
|
+
const a = d.value, t = e.types;
|
|
285
|
+
if (t.includes("text/html")) {
|
|
286
|
+
const U = e.getData("text/html"), B = new DOMParser().parseFromString(U, "text/html"), le = Array.from(B.body.querySelectorAll("img")), ke = Array.from(B.body.querySelectorAll("audio")), ze = Array.from(B.body.querySelectorAll("video"));
|
|
287
|
+
le.length > 0 && (T.value = {
|
|
288
288
|
show: !0,
|
|
289
289
|
text: "图片加载中,请稍等"
|
|
290
290
|
});
|
|
291
|
-
for (const
|
|
292
|
-
|
|
291
|
+
for (const A of [...ke, ...ze])
|
|
292
|
+
A == null || A.remove();
|
|
293
293
|
try {
|
|
294
|
-
for (var f =
|
|
295
|
-
const
|
|
296
|
-
if (
|
|
294
|
+
for (var f = K([...le]), v, p, M; v = !(p = yield f.next()).done; v = !1) {
|
|
295
|
+
const A = p.value;
|
|
296
|
+
if (A.removeAttribute("crossorigin"), A.src.startsWith("http"))
|
|
297
297
|
if ((l = s.value) != null && l.handleRequestByUrl) {
|
|
298
|
-
const
|
|
299
|
-
|
|
298
|
+
const w = yield (c = s.value) == null ? void 0 : c.handleRequestByUrl(A.src, { extParameters: i.extParameters });
|
|
299
|
+
w != null && w.success && (w != null && w.url) ? A.src = w == null ? void 0 : w.url : A.remove();
|
|
300
300
|
} else {
|
|
301
|
-
const
|
|
302
|
-
|
|
301
|
+
const w = yield Ne(A.src);
|
|
302
|
+
w && (w.width < (s.value.minWidth || 0) && w.height < (s.value.minHeight || 0) || w.width > (s.value.maxWidth || 0) && w.height > (s.value.maxHeight || 0)) && A.remove();
|
|
303
303
|
}
|
|
304
304
|
else
|
|
305
|
-
|
|
305
|
+
A.remove(), g.error("不支持Word中批量复制图片或视频,请改为单个复制,或者从工具栏中手动插入上传");
|
|
306
306
|
}
|
|
307
|
-
} catch (
|
|
308
|
-
|
|
307
|
+
} catch (p) {
|
|
308
|
+
M = [p];
|
|
309
309
|
} finally {
|
|
310
310
|
try {
|
|
311
|
-
v && (
|
|
311
|
+
v && (p = f.return) && (yield p.call(f));
|
|
312
312
|
} finally {
|
|
313
|
-
if (
|
|
314
|
-
throw
|
|
313
|
+
if (M)
|
|
314
|
+
throw M[0];
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
|
-
|
|
318
|
-
const
|
|
319
|
-
a.insertContent(
|
|
317
|
+
T.value.show = !1;
|
|
318
|
+
const Be = new XMLSerializer().serializeToString(B.body);
|
|
319
|
+
a.insertContent(Be);
|
|
320
320
|
} else
|
|
321
|
-
|
|
322
|
-
const
|
|
323
|
-
for (const U of
|
|
321
|
+
t.includes("text/plain") && a.insertContent(e.getData("text/plain"));
|
|
322
|
+
const o = Array.from((e == null ? void 0 : e.files) || []), r = [];
|
|
323
|
+
for (const U of o) {
|
|
324
324
|
if (!U)
|
|
325
325
|
continue;
|
|
326
|
-
const
|
|
327
|
-
U.type.indexOf("image") > -1 || (
|
|
326
|
+
const V = Le(U.name);
|
|
327
|
+
U.type.indexOf("image") > -1 || (D = s.value.allowedType) != null && D.includes(V.toLowerCase()) ? r.push(U) : g.error("暂不支持的文件类型");
|
|
328
328
|
}
|
|
329
329
|
if (r.length > 0) {
|
|
330
|
-
|
|
330
|
+
T.value = {
|
|
331
331
|
show: !0,
|
|
332
332
|
text: "图片上传中,请稍等"
|
|
333
333
|
};
|
|
334
334
|
try {
|
|
335
|
-
for (var
|
|
336
|
-
const U =
|
|
337
|
-
const
|
|
338
|
-
if (
|
|
339
|
-
const
|
|
340
|
-
a.insertContent(
|
|
335
|
+
for (var q = K(r), J, ja, $a; J = !(ja = yield q.next()).done; J = !1) {
|
|
336
|
+
const U = ja.value;
|
|
337
|
+
const V = yield oe(U);
|
|
338
|
+
if (V) {
|
|
339
|
+
const B = `<img src="${V}" alt="" />`;
|
|
340
|
+
a.insertContent(B);
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
|
-
} catch (
|
|
344
|
-
$a = [
|
|
343
|
+
} catch (ja) {
|
|
344
|
+
$a = [ja];
|
|
345
345
|
} finally {
|
|
346
346
|
try {
|
|
347
|
-
|
|
347
|
+
J && (ja = q.return) && (yield ja.call(q));
|
|
348
348
|
} finally {
|
|
349
349
|
if ($a)
|
|
350
350
|
throw $a[0];
|
|
351
351
|
}
|
|
352
352
|
}
|
|
353
|
-
|
|
353
|
+
T.value.show = !1;
|
|
354
354
|
}
|
|
355
355
|
n("input", a.getContent());
|
|
356
|
-
}),
|
|
357
|
-
var
|
|
356
|
+
}), ie = (e) => {
|
|
357
|
+
var t;
|
|
358
358
|
e.preventDefault();
|
|
359
|
-
const a = e.clipboardData || ((
|
|
360
|
-
|
|
361
|
-
},
|
|
362
|
-
var
|
|
359
|
+
const a = e.clipboardData || ((t = e == null ? void 0 : e.originalEvent) == null ? void 0 : t.clipboardData);
|
|
360
|
+
X(a);
|
|
361
|
+
}, re = (e) => {
|
|
362
|
+
var t;
|
|
363
363
|
e.preventDefault();
|
|
364
|
-
const a = e.dataTransfer || ((
|
|
365
|
-
|
|
364
|
+
const a = e.dataTransfer || ((t = e == null ? void 0 : e.originalEvent) == null ? void 0 : t.dataTransfer);
|
|
365
|
+
X(a);
|
|
366
366
|
};
|
|
367
|
-
|
|
368
|
-
var
|
|
367
|
+
Fe(() => {
|
|
368
|
+
var t;
|
|
369
369
|
const e = {
|
|
370
370
|
// 设置语言
|
|
371
371
|
language: "zh_CN",
|
|
372
372
|
// 实例
|
|
373
|
-
target:
|
|
373
|
+
target: z.value,
|
|
374
374
|
// 隐藏品牌
|
|
375
375
|
branding: !1,
|
|
376
376
|
// 隐藏右上角升级按钮
|
|
@@ -448,168 +448,168 @@ const Va = /* @__PURE__ */ je({
|
|
|
448
448
|
convert_urls: !1,
|
|
449
449
|
paste_webkit_styles: "all",
|
|
450
450
|
paste_data_images: !1,
|
|
451
|
-
images_file_types: ((
|
|
451
|
+
images_file_types: ((t = s.value.allowedType) == null ? void 0 : t.join(",")) || "jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp",
|
|
452
452
|
// 粘贴前处理
|
|
453
|
-
paste_preprocess(
|
|
453
|
+
paste_preprocess(o, r) {
|
|
454
454
|
r == null || r.preventDefault();
|
|
455
455
|
},
|
|
456
|
-
setup(
|
|
457
|
-
var l,
|
|
456
|
+
setup(o) {
|
|
457
|
+
var l, c;
|
|
458
458
|
const r = () => {
|
|
459
|
-
|
|
460
|
-
var v,
|
|
459
|
+
E.value.dialogVisible = !0, setTimeout(() => {
|
|
460
|
+
var v, p;
|
|
461
461
|
const f = (v = document == null ? void 0 : document.querySelector) == null ? void 0 : v.call(document, ".tinymce-editor-upload-image-dialog .el-upload__text > div");
|
|
462
|
-
f && (f.innerHTML = ((
|
|
462
|
+
f && (f.innerHTML = ((p = s.value) == null ? void 0 : p.tipText) || "上传");
|
|
463
463
|
});
|
|
464
464
|
};
|
|
465
|
-
if (
|
|
465
|
+
if (o.ui.registry.addMenuItem("localImage", {
|
|
466
466
|
text: "图片",
|
|
467
467
|
icon: "image",
|
|
468
468
|
onAction: () => r()
|
|
469
|
-
}),
|
|
469
|
+
}), o.ui.registry.addButton("localImage", {
|
|
470
470
|
icon: "image",
|
|
471
471
|
tooltip: "图片",
|
|
472
472
|
onAction: () => r()
|
|
473
|
-
}), (l =
|
|
473
|
+
}), (l = h == null ? void 0 : h.value) != null && l.enable) {
|
|
474
474
|
const f = () => {
|
|
475
|
-
|
|
476
|
-
var
|
|
477
|
-
const v = (
|
|
478
|
-
v && (v.innerHTML = ((
|
|
475
|
+
b.value.dialogVisible = !0, setTimeout(() => {
|
|
476
|
+
var p, M;
|
|
477
|
+
const v = (p = document == null ? void 0 : document.querySelector) == null ? void 0 : p.call(document, ".tinymce-editor-upload-audio-dialog .el-upload__text > div");
|
|
478
|
+
v && (v.innerHTML = ((M = s.value) == null ? void 0 : M.tipText) || "上传");
|
|
479
479
|
});
|
|
480
480
|
};
|
|
481
|
-
|
|
481
|
+
o.ui.registry.addMenuItem("localAudio", {
|
|
482
482
|
text: "音频",
|
|
483
483
|
icon: "arrow-right",
|
|
484
484
|
onAction: () => f()
|
|
485
|
-
}),
|
|
485
|
+
}), o.ui.registry.addButton("localAudio", {
|
|
486
486
|
icon: "arrow-right",
|
|
487
487
|
tooltip: "音频",
|
|
488
488
|
onAction: () => f()
|
|
489
489
|
});
|
|
490
490
|
}
|
|
491
|
-
if ((
|
|
491
|
+
if ((c = u == null ? void 0 : u.value) != null && c.enable) {
|
|
492
492
|
const f = () => {
|
|
493
493
|
_.value.dialogVisible = !0;
|
|
494
494
|
};
|
|
495
|
-
|
|
495
|
+
o.ui.registry.addMenuItem("localVideo", {
|
|
496
496
|
text: "视频",
|
|
497
497
|
icon: "embed",
|
|
498
498
|
onAction: () => f()
|
|
499
|
-
}),
|
|
499
|
+
}), o.ui.registry.addButton("localVideo", {
|
|
500
500
|
icon: "embed",
|
|
501
501
|
tooltip: "视频",
|
|
502
502
|
onAction: () => f()
|
|
503
503
|
});
|
|
504
504
|
}
|
|
505
505
|
}
|
|
506
|
-
}, a =
|
|
506
|
+
}, a = F(
|
|
507
507
|
[
|
|
508
508
|
i.options,
|
|
509
|
-
|
|
509
|
+
R.options,
|
|
510
510
|
e
|
|
511
511
|
],
|
|
512
512
|
{
|
|
513
|
-
mergeFunction: (
|
|
514
|
-
|
|
513
|
+
mergeFunction: (o, r) => (...l) => {
|
|
514
|
+
o(...l), r(...l);
|
|
515
515
|
},
|
|
516
516
|
type: Object
|
|
517
517
|
}
|
|
518
518
|
);
|
|
519
|
-
|
|
519
|
+
pe.init(a).then(([o]) => {
|
|
520
520
|
var r;
|
|
521
|
-
|
|
522
|
-
if (
|
|
523
|
-
|
|
521
|
+
o && (o.customProps = P({}, i), o.on("input", () => {
|
|
522
|
+
if (C.value) {
|
|
523
|
+
C.value = !1;
|
|
524
524
|
return;
|
|
525
525
|
}
|
|
526
|
-
|
|
527
|
-
}),
|
|
528
|
-
n("input",
|
|
529
|
-
}),
|
|
530
|
-
|
|
531
|
-
}),
|
|
532
|
-
|
|
533
|
-
}), (r = i.initComplete) == null || r.call(i, { editorIns:
|
|
526
|
+
x.value = !0, n("input", o.getContent());
|
|
527
|
+
}), o.on("change", () => {
|
|
528
|
+
n("input", o.getContent());
|
|
529
|
+
}), o.on("paste", (l) => {
|
|
530
|
+
ie(l);
|
|
531
|
+
}), o.on("drop", (l) => {
|
|
532
|
+
re(l);
|
|
533
|
+
}), (r = i.initComplete) == null || r.call(i, { editorIns: o }), d.value = o);
|
|
534
534
|
});
|
|
535
|
-
}),
|
|
536
|
-
var e, a,
|
|
537
|
-
(e =
|
|
535
|
+
}), Re(() => {
|
|
536
|
+
var e, a, t, o;
|
|
537
|
+
(e = d.value) == null || e.off("input"), (a = d.value) == null || a.off("paste"), (t = d.value) == null || t.off("drop"), (o = d.value) == null || o.destroy();
|
|
538
538
|
});
|
|
539
|
-
const
|
|
540
|
-
var a,
|
|
541
|
-
const e =
|
|
542
|
-
return ((
|
|
543
|
-
},
|
|
544
|
-
var a,
|
|
545
|
-
const e =
|
|
546
|
-
return ((
|
|
547
|
-
},
|
|
539
|
+
const be = () => {
|
|
540
|
+
var a, t;
|
|
541
|
+
const e = P({}, b.value.additionalData || {});
|
|
542
|
+
return ((t = (a = h.value) == null ? void 0 : a.data) == null ? void 0 : t.call(a, j(P({}, e), { extParameters: i.extParameters }))) || {};
|
|
543
|
+
}, ye = () => {
|
|
544
|
+
var a, t;
|
|
545
|
+
const e = P({}, b.value.additionalData || {});
|
|
546
|
+
return ((t = (a = h.value) == null ? void 0 : a.headers) == null ? void 0 : t.call(a, j(P({}, e), { extParameters: i.extParameters }))) || {};
|
|
547
|
+
}, _e = (e, a, t) => {
|
|
548
548
|
var r, l;
|
|
549
|
-
const
|
|
550
|
-
|
|
551
|
-
},
|
|
552
|
-
var l,
|
|
549
|
+
const o = (l = (r = h == null ? void 0 : h.value) == null ? void 0 : r.handlerResponse) == null ? void 0 : l.call(r, e);
|
|
550
|
+
o != null && o.url ? t[t.length - 1].url = o.url : o != null && o.errorMessage && (g.error(o.errorMessage), t.splice(t.length - 1, 1)), b.value.formData.file = t;
|
|
551
|
+
}, De = (e, a) => new Promise((t, o) => {
|
|
552
|
+
var l, c, f, v, p, M, D, q;
|
|
553
553
|
const r = e.name.split(".").filter(Boolean).pop() ? e.name.split(".").filter(Boolean).pop() : "";
|
|
554
|
-
if (!((
|
|
555
|
-
g.error(`请上传格式为${(v = (f =
|
|
554
|
+
if (!((c = (l = h.value) == null ? void 0 : l.allowedType) != null && c.includes(r.toLowerCase()))) {
|
|
555
|
+
g.error(`请上传格式为${(v = (f = h.value) == null ? void 0 : f.allowedType) == null ? void 0 : v.map((J) => J.toUpperCase()).join("、")}的音频`), o();
|
|
556
556
|
return;
|
|
557
557
|
}
|
|
558
|
-
if (e.size > (((
|
|
559
|
-
g.error(`请上传${((
|
|
558
|
+
if (e.size > (((p = h.value) == null ? void 0 : p.maxSize) || 0) * 1024 * 1024) {
|
|
559
|
+
g.error(`请上传${((M = h.value) == null ? void 0 : M.maxSize) || 0}M内的音频`), o();
|
|
560
560
|
return;
|
|
561
561
|
}
|
|
562
|
-
|
|
563
|
-
}),
|
|
564
|
-
|
|
565
|
-
},
|
|
566
|
-
g.error("上传发生错误,请重试!"),
|
|
567
|
-
},
|
|
568
|
-
var a,
|
|
569
|
-
const e =
|
|
570
|
-
return ((
|
|
571
|
-
},
|
|
572
|
-
var a,
|
|
573
|
-
const e =
|
|
574
|
-
return ((
|
|
575
|
-
},
|
|
562
|
+
b.value.additionalData = { file: e }, (q = (D = h == null ? void 0 : h.value) == null ? void 0 : D.beforeUploadEnd) == null || q.call(D, e), t(!0);
|
|
563
|
+
}), Ae = (e, a) => {
|
|
564
|
+
b.value.formData.file = a;
|
|
565
|
+
}, Te = (e, a, t) => {
|
|
566
|
+
g.error("上传发生错误,请重试!"), b.value.formData.file = t;
|
|
567
|
+
}, Ce = () => {
|
|
568
|
+
var a, t;
|
|
569
|
+
const e = P({}, _.value.additionalData || {});
|
|
570
|
+
return ((t = (a = u.value) == null ? void 0 : a.data) == null ? void 0 : t.call(a, j(P({}, e), { extParameters: i.extParameters }))) || {};
|
|
571
|
+
}, Pe = () => {
|
|
572
|
+
var a, t;
|
|
573
|
+
const e = P({}, _.value.additionalData || {});
|
|
574
|
+
return ((t = (a = u.value) == null ? void 0 : a.headers) == null ? void 0 : t.call(a, j(P({}, e), { extParameters: i.extParameters }))) || {};
|
|
575
|
+
}, Se = (e, a, t) => {
|
|
576
576
|
var r, l;
|
|
577
|
-
const
|
|
578
|
-
|
|
579
|
-
},
|
|
580
|
-
var l,
|
|
577
|
+
const o = (l = (r = u == null ? void 0 : u.value) == null ? void 0 : r.handlerResponse) == null ? void 0 : l.call(r, e);
|
|
578
|
+
o != null && o.url ? t[t.length - 1].url = o.url : o != null && o.errorMessage && (g.error(o.errorMessage), t.splice(t.length - 1, 1)), _.value.formData.file = t;
|
|
579
|
+
}, Me = (e, a) => new Promise((t, o) => {
|
|
580
|
+
var l, c, f, v, p, M, D, q;
|
|
581
581
|
const r = e.name.split(".").filter(Boolean).pop() ? e.name.split(".").filter(Boolean).pop() : "";
|
|
582
|
-
if (!((
|
|
583
|
-
g.error(`请上传格式为${(v = (f =
|
|
582
|
+
if (!((c = (l = u == null ? void 0 : u.value) == null ? void 0 : l.allowedType) != null && c.includes(r.toLowerCase()))) {
|
|
583
|
+
g.error(`请上传格式为${(v = (f = u == null ? void 0 : u.value) == null ? void 0 : f.allowedType) == null ? void 0 : v.map((J) => J.toUpperCase()).join("、")}的视频`), o();
|
|
584
584
|
return;
|
|
585
585
|
}
|
|
586
|
-
if (e.size > (((
|
|
587
|
-
g.error(`请上传${((
|
|
586
|
+
if (e.size > (((p = u == null ? void 0 : u.value) == null ? void 0 : p.maxSize) || 0) * 1024 * 1024) {
|
|
587
|
+
g.error(`请上传${((M = u == null ? void 0 : u.value) == null ? void 0 : M.maxSize) || 0}M内的视频`), o();
|
|
588
588
|
return;
|
|
589
589
|
}
|
|
590
|
-
_.value.additionalData = { file: e },
|
|
591
|
-
}),
|
|
590
|
+
_.value.additionalData = { file: e }, (q = (D = u == null ? void 0 : u.value) == null ? void 0 : D.beforeUploadEnd) == null || q.call(D, e), t(!0);
|
|
591
|
+
}), Ie = (e, a) => {
|
|
592
592
|
_.value.formData.file = a;
|
|
593
|
-
},
|
|
594
|
-
g.error("上传发生错误,请重试!"), _.value.formData.file =
|
|
593
|
+
}, Ue = (e, a, t) => {
|
|
594
|
+
g.error("上传发生错误,请重试!"), _.value.formData.file = t;
|
|
595
595
|
};
|
|
596
|
-
return O(() => [i.disabled,
|
|
596
|
+
return O(() => [i.disabled, d.value], () => {
|
|
597
597
|
var e, a;
|
|
598
|
-
(a = (e =
|
|
598
|
+
(a = (e = d.value) == null ? void 0 : e.mode) == null || a.set(i.disabled ? "readonly" : "design");
|
|
599
599
|
}, { immediate: !0 }), O(
|
|
600
|
-
() => [i.value,
|
|
600
|
+
() => [i.value, d.value],
|
|
601
601
|
() => {
|
|
602
|
-
var e, a,
|
|
603
|
-
if (
|
|
604
|
-
|
|
602
|
+
var e, a, t, o;
|
|
603
|
+
if (x.value) {
|
|
604
|
+
x.value = !1;
|
|
605
605
|
return;
|
|
606
606
|
}
|
|
607
|
-
|
|
607
|
+
C.value = !0, (e = d.value) == null || e.setContent(i.value ? i.value : ""), (t = d.value) == null || t.selection.select((a = d.value) == null ? void 0 : a.getBody(), !0), (o = d.value) == null || o.selection.collapse(!1);
|
|
608
608
|
},
|
|
609
609
|
{ immediate: !0 }
|
|
610
|
-
), { __sfc: !0, defaultImageUploadOptions:
|
|
610
|
+
), { __sfc: !0, defaultImageUploadOptions: k, defaultVideoUploadOptions: I, defaultAudioUploadOptions: S, props: i, emits: n, insRef: z, editorRef: d, preventSettingContent: x, preventUpdatingModelValue: C, uploadLoadingConfig: T, mergeImageUploadOptions: s, mergeVideoUploadOptions: u, mergeAudioUploadOptions: h, mergeImgPondOptions: G, imgPondAccept: fe, uploadImageImgPondRef: W, audioImageImgPondRef: N, uploadImage: E, uploadImageFormRef: Q, onUploadImageClose: Y, onUploadImageConfirm: ve, uploadAudio: b, uploadAudioFormRef: Z, onUploadAudioClose: ee, onUploadAudioConfirm: ge, uploadVideo: _, uploadVideoFormRef: ae, onUploadVideoClose: te, onUploadVideoConfirm: he, onImageUploadUploadExceed: xe, imageUploadTempFiles: H, onImageUploadUpload: we, uploadPasteOrDropFile: oe, handleDataTransfer: X, onValuePaste: ie, onValueDrop: re, getUploadAudioData: be, getUploadAudioHeaders: ye, onUploadAudioSuccess: _e, onUploadAudioBeforeUpload: De, onUploadAudioRemove: Ae, onUploadAudioError: Te, getUploadVideoData: Ce, getUploadVideoHeaders: Pe, onUploadVideoSuccess: Se, onUploadVideoBeforeUpload: Me, onUploadVideoRemove: Ie, onUploadVideoError: Ue, ImgPond: Oe };
|
|
611
611
|
}
|
|
612
612
|
});
|
|
613
613
|
export {
|
|
614
|
-
|
|
614
|
+
Ha as default
|
|
615
615
|
};
|
package/es/langs/zh_CN.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e = { "#": "#", Accessibility: "辅助功能", Accordion: "", "Accordion body...": "", "Accordion summary...": "", Action: "动作", Activity: "活动", Address: "地址", Advanced: "高级", Align: "对齐", "Align center": "居中对齐", "Align left": "左对齐", "Align right": "右对齐", Alignment: "对齐", "Alignment {0}": "", All: "全部", "Alternative description": "替代描述", "Alternative source": "镜像", "Alternative source URL": "替代来源网址", Anchor: "锚点", "Anchor...": "锚点...", Anchors: "锚点", "Animals and Nature": "动物和自然", Arrows: "箭头", B: "B", "Background color": "背景颜色", Black: "黑色", Block: "块", "Block {0}": "", Blockquote: "引文区块", Blocks: "样式", Blue: "蓝色", "Blue component": "白色部分", Body: "表体", Bold: "粗体", Border: "框线", "Border color": "框线颜色", "Border style": "边框样式", "Border width": "边框宽度", Bottom: "下方对齐", "Browse files": "", "Browse for an image": "浏览图像", "Browse links": "", "Bullet list": "无序列表", Cancel: "取消", Caption: "标题", Cell: "单元格", "Cell padding": "单元格内边距", "Cell properties": "单元格属性", "Cell spacing": "单元格外间距", "Cell styles": "单元格样式", "Cell type": "储存格别", Center: "居中", Characters: "字符", "Characters (no spaces)": "字符(无空格)", Circle: "空心圆", Class: "类型", "Clear formatting": "清除格式", Close: "关闭", Code: "代码", "Code sample...": "示例代码...", "Code view": "代码视图", "Color Picker": "选色器", "Color swatch": "颜色样本", Cols: "列", Column: "列", "Column clipboard actions": "列剪贴板操作", "Column group": "列组", "Column header": "列标题", "Constrain proportions": "保持比例", Copy: "复制", "Copy column": "复制列", "Copy row": "复制行", "Could not find the specified string.": "未找到搜索内容。", "Could not load emojis": "无法加载Emojis", Count: "计数", Currency: "货币", "Current window": "当前窗口", "Custom color": "自定义颜色", "Custom...": "自定义......", Cut: "剪切", "Cut column": "剪切列", "Cut row": "剪切行", "Dark Blue": "深蓝色", "Dark Gray": "深灰色", "Dark Green": "深绿色", "Dark Orange": "深橙色", "Dark Purple": "深紫色", "Dark Red": "深红色", "Dark Turquoise": "深蓝绿色", "Dark Yellow": "暗黄色", Dashed: "虚线", "Date/time": "日期/时间", "Decrease indent": "减少缩进", Default: "预设", "Delete accordion": "", "Delete column": "删除列", "Delete row": "删除行", "Delete table": "删除表格", Dimensions: "尺寸", Disc: "实心圆", Div: "Div", Document: "文档", Dotted: "虚线", Double: "双精度", "Drop an image here": "拖放一张图像至此", "Dropped file type is not supported": "此文件类型不支持拖放", Edit: "编辑", Embed: "内嵌", Emojis: "Emojis", "Emojis...": "Emojis...", Error: "错误", "Error: Form submit field collision.": "错误: 表单提交字段冲突。", "Error: No form element found.": "错误: 没有表单控件。", "Extended Latin": "拉丁语扩充", "Failed to initialize plugin: {0}": "插件初始化失败: {0}", "Failed to load plugin url: {0}": "插件加载失败 链接: {0}", "Failed to load plugin: {0} from url {1}": "插件加载失败: {0} 来自链接 {1}", "Failed to upload image: {0}": "图片上传失败: {0}", File: "文件", Find: "寻找", "Find (if searchreplace plugin activated)": "查找(如果查找替换插件已激活)", "Find and Replace": "查找和替换", "Find and replace...": "查找并替换...", "Find in selection": "在选区中查找", "Find whole words only": "全字匹配", Flags: "旗帜", "Focus to contextual toolbar": "移动焦点到上下文菜单", "Focus to element path": "移动焦点到元素路径", "Focus to menubar": "移动焦点到菜单栏", "Focus to toolbar": "移动焦点到工具栏", Font: "字体", "Font sizes": "字体大小", Fonts: "字体", "Food and Drink": "食物和饮品", Footer: "表尾", Format: "格式", Formats: "格式", Fullscreen: "全屏", G: "G", General: "一般", Gray: "灰色", Green: "绿色", "Green component": "绿色部分", Groove: "凹槽", "Handy Shortcuts": "快捷键", Header: "表头", "Header cell": "表头单元格", "Heading 1": "一级标题", "Heading 2": "二级标题", "Heading 3": "三级标题", "Heading 4": "四级标题", "Heading 5": "五级标题", "Heading 6": "六级标题", Headings: "标题", Height: "高度", Help: "帮助", "Hex color code": "十六进制颜色代码", Hidden: "隐藏", "Horizontal align": "水平对齐", "Horizontal line": "水平分割线", "Horizontal space": "水平间距", ID: "ID", "ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "ID应该以英文字母开头,后面只能有英文字母、数字、破折号、点、冒号或下划线。", "Image is decorative": "图像是装饰性的", "Image list": "图片清单", "Image title": "图片标题", "Image...": "图片...", "ImageProxy HTTP error: Could not find Image Proxy": "图片代理请求错误:无法找到图片代理", "ImageProxy HTTP error: Incorrect Image Proxy URL": "图片代理请求错误:图片代理地址错误", "ImageProxy HTTP error: Rejected request": "图片代理请求错误:请求被拒绝", "ImageProxy HTTP error: Unknown ImageProxy error": "图片代理请求错误:未知的图片代理错误", "Increase indent": "增加缩进", Inline: "文本", Insert: "插入", "Insert Template": "插入模板", "Insert accordion": "", "Insert column after": "在右侧插入列", "Insert column before": "在左侧插入列", "Insert date/time": "插入日期/时间", "Insert image": "插入图片", "Insert link (if link plugin activated)": "插入链接 (如果链接插件已激活)", "Insert row after": "在下方插入行", "Insert row before": "在上方插入行", "Insert table": "插入表格", "Insert template...": "插入模板...", "Insert video": "插入视频", "Insert/Edit code sample": "插入/编辑代码示例", "Insert/edit image": "插入/编辑图片", "Insert/edit link": "插入/编辑链接", "Insert/edit media": "插入/编辑媒体", "Insert/edit video": "插入/编辑视频", Inset: "嵌入", "Invalid hex color code: {0}": "十六进制颜色代码无效: {0}", "Invalid input": "无效输入", Italic: "斜体", Justify: "两端对齐", "Keyboard Navigation": "键盘指引", Language: "语言", "Learn more...": "了解更多...", Left: "左", "Left to right": "由左到右", "Light Blue": "浅蓝色", "Light Gray": "浅灰色", "Light Green": "浅绿色", "Light Purple": "浅紫色", "Light Red": "浅红色", "Light Yellow": "浅黄色", "Line height": "行高", "Link list": "链接清单", "Link...": "链接...", "List Properties": "列表属性", "List properties...": "标题字体属性", "Loading emojis...": "正在加载Emojis...", "Loading...": "加载中...", "Lower Alpha": "小写英文字母", "Lower Greek": "小写希腊字母", "Lower Roman": "小写罗马数字", "Match case": "大小写匹配", Mathematical: "数学", "Media poster (Image URL)": "封面(图片地址)", "Media...": "多媒体...", "Medium Blue": "中蓝色", "Medium Gray": "中灰色", "Medium Purple": "中紫色", "Merge cells": "合并单元格", Middle: "居中对齐", "Midnight Blue": "深蓝色", "More...": "更多...", Name: "名称", "Navy Blue": "海军蓝", "New document": "新建文档", "New window": "新窗口", Next: "下一个", No: "否", "No alignment": "未对齐", "No color": "无", "Nonbreaking space": "不间断空格", None: "无", "Numbered list": "有序列表", OR: "或", Objects: "物件", Ok: "确定", "Open help dialog": "打开帮助对话框", "Open link": "打开链接", "Open link in...": "链接打开位置...", "Open popup menu for split buttons": "打开弹出式菜单,用于拆分按钮", Orange: "橙色", Outset: "外置", "Page break": "分页符", Paragraph: "段落", Paste: "粘贴", "Paste as text": "粘贴为文本", "Paste column after": "粘贴后面的列", "Paste column before": "粘贴此列前", "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "当前为纯文本粘贴模式,再次点击可以回到普通粘贴模式。", "Paste or type a link": "粘贴或输入链接", "Paste row after": "粘贴行到下方", "Paste row before": "粘贴行到上方", "Paste your embed code below:": "将内嵌代码粘贴在下面:", People: "人类", Plugins: "插件", "Plugins installed ({0}):": "已安装插件 ({0}):", "Powered by {0}": "由{0}驱动", Pre: "前言", Preferences: "首选项", Preformatted: "预先格式化的", "Premium plugins:": "优秀插件:", "Press the Up and Down arrow keys to resize the editor.": "", "Press the arrow keys to resize the editor.": "", "Press {0} for help": "", Preview: "预览", Previous: "上一个", Print: "打印", "Print...": "打印...", Purple: "紫色", Quotations: "引用", R: "R", "Range 0 to 255": "范围0至255", Red: "红色", "Red component": "红色部分", Redo: "重做", Remove: "移除", "Remove color": "移除颜色", "Remove link": "移除链接", Replace: "替换", "Replace all": "替换全部", "Replace with": "替换为", Resize: "调整大小", "Restore last draft": "恢复上次的草稿", "Reveal or hide additional toolbar items": "更多", "Rich Text Area": "富文本区域", "Rich Text Area. Press ALT-0 for help.": "编辑区。按Alt+0键打开帮助。", "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "编辑区。按ALT-F9打开菜单,按ALT-F10打开工具栏,按ALT-0查看帮助", Ridge: "海脊座", Right: "右", "Right to left": "由右到左", Row: "行", "Row clipboard actions": "行剪贴板操作", "Row group": "行组", "Row header": "行头", "Row properties": "行属性", "Row type": "行类型", Rows: "行数", Save: "保存", "Save (if save plugin activated)": "保存(如果保存插件已激活)", Scope: "范围", Search: "搜索", "Select all": "全选", "Select...": "选择...", Selection: "选择", Shortcut: "快捷方式", "Show blocks": "显示区块边框", "Show caption": "显示标题", "Show invisible characters": "显示不可见字符", Size: "字号", Solid: "实线", Source: "源", "Source code": "源代码", "Special Character": "特殊字符", "Special character...": "特殊字符...", "Split cell": "拆分单元格", Square: "实心方块", "Start list at number": "以数字开始列表", Strikethrough: "删除线", Style: "样式", Subscript: "下标", Superscript: "上标", "Switch to or from fullscreen mode": "切换全屏模式", Symbols: "符号", "System Font": "系统字体", Table: "表格", "Table caption": "表格标题", "Table properties": "表格属性", "Table styles": "表格样式", Template: "模板", Templates: "模板", Text: "文字", "Text color": "文本颜色", "Text to display": "要显示的文本", "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "你所填写的URL地址为邮件地址,需要加上mailto: 前缀吗?", "The URL you entered seems to be an external link. Do you want to add the required http:// prefix?": "你所填写的URL地址属于外部链接,需要加上http:// 前缀吗?", "The URL you entered seems to be an external link. Do you want to add the required https:// prefix?": "您输入的 URL 似乎是一个外部链接。您想添加所需的 https:// 前缀吗?", Title: "标题", "To open the popup, press Shift+Enter": "按Shitf+Enter键打开对话框", "Toggle accordion": "", Tools: "工具", Top: "上方对齐", "Travel and Places": "旅游和地点", Turquoise: "青绿色", Underline: "下划线", Undo: "撤销", Upload: "上传", "Uploading image": "上传图片", "Upper Alpha": "大写英文字母", "Upper Roman": "大写罗马数字", Url: "地址", "User Defined": "自定义", Valid: "有效", Version: "版本", "Vertical align": "垂直对齐", "Vertical space": "垂直间距", View: "查看", "Visual aids": "网格线", Warn: "警告", White: "白色", Width: "宽度", "Word count": "字数", Words: "单词", "Words: {0}": "字数:{0}", Yellow: "黄色", Yes: "是", "You are using {0}": "你正在使用 {0}", "You have unsaved changes are you sure you want to navigate away?": "你还有文档尚未保存,确定要离开?", "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.": "你的浏览器不支持打开剪贴板,请使用Ctrl+X/C/V等快捷键。", alignment: "对齐", "austral sign": "澳元符号", "cedi sign": "塞地符号", "colon sign": "冒号", "cruzeiro sign": "克鲁赛罗币符号", "currency sign": "货币符号", "dollar sign": "美元符号", "dong sign": "越南盾符号", "drachma sign": "德拉克马符号", "euro-currency sign": "欧元符号", example: "示例", formatting: "格式化", "french franc sign": "法郎符号", "german penny symbol": "德国便士符号", "guarani sign": "瓜拉尼符号", history: "历史", "hryvnia sign": "格里夫尼亚符号", indentation: "缩进", "indian rupee sign": "印度卢比", "kip sign": "老挝基普符号", "lira sign": "里拉符号", "livre tournois sign": "里弗弗尔符号", "manat sign": "马纳特符号", "mill sign": "密尔符号", "naira sign": "奈拉符号", "new sheqel sign": "新谢克尔符号", "nordic mark sign": "北欧马克", "peseta sign": "比塞塔符号", "peso sign": "比索符号", "ruble sign": "卢布符号", "rupee sign": "卢比符号", "spesmilo sign": "spesmilo符号", styles: "样式", "tenge sign": "坚戈符号", "tugrik sign": "图格里克符号", "turkish lira sign": "土耳其里拉", "won sign": "韩元符号", "yen character": "日元字样", "yen/yuan character variant one": "元字样(大写)", "yuan character": "人民币元字样", "yuan character, in hong kong and taiwan": "元字样(港台地区)", "{0} characters": "{0} 个字符", "{0} columns, {1} rows": "", "{0} words": "{0} 字" };
|
|
1
|
+
const e = { "#": "#", Accessibility: "辅助功能", Accordion: "", "Accordion body...": "", "Accordion summary...": "", Action: "动作", Activity: "活动", Address: "地址", Advanced: "高级", Align: "对齐", "Align center": "居中对齐", "Align left": "左对齐", "Align right": "右对齐", Alignment: "对齐", "Alignment {0}": "", All: "全部", "Alternative description": "替代描述", "Alternative source": "镜像", "Alternative source URL": "替代来源网址", Anchor: "锚点", "Anchor...": "锚点...", Anchors: "锚点", "Animals and Nature": "动物和自然", Arrows: "箭头", B: "B", "Background color": "背景颜色", Black: "黑色", Block: "块", "Block {0}": "", Blockquote: "引文区块", Blocks: "样式", Blue: "蓝色", "Blue component": "白色部分", Body: "表体", Bold: "粗体", Border: "框线", "Border color": "框线颜色", "Border style": "边框样式", "Border width": "边框宽度", Bottom: "下方对齐", "Browse files": "", "Browse for an image": "浏览图像", "Browse links": "", "Bullet list": "无序列表", Cancel: "取消", Caption: "标题", Cell: "单元格", "Cell padding": "单元格内边距", "Cell properties": "单元格属性", "Cell spacing": "单元格外间距", "Cell styles": "单元格样式", "Cell type": "储存格别", Center: "居中", Characters: "字符", "Characters (no spaces)": "字符(无空格)", Circle: "空心圆", Class: "类型", "Clear formatting": "清除格式", Close: "关闭", Code: "代码", "Code sample...": "示例代码...", "Code view": "代码视图", "Color Picker": "选色器", "Color swatch": "颜色样本", Cols: "列", Column: "列", "Column clipboard actions": "列剪贴板操作", "Column group": "列组", "Column header": "列标题", "Constrain proportions": "保持比例", Copy: "复制", "Copy column": "复制列", "Copy row": "复制行", "Could not find the specified string.": "未找到搜索内容。", "Could not load emojis": "无法加载Emojis", Count: "计数", Currency: "货币", "Current window": "当前窗口", "Custom color": "自定义颜色", "Custom...": "自定义......", Cut: "剪切", "Cut column": "剪切列", "Cut row": "剪切行", "Dark Blue": "深蓝色", "Dark Gray": "深灰色", "Dark Green": "深绿色", "Dark Orange": "深橙色", "Dark Purple": "深紫色", "Dark Red": "深红色", "Dark Turquoise": "深蓝绿色", "Dark Yellow": "暗黄色", Dashed: "虚线", "Date/time": "日期/时间", "Decrease indent": "减少缩进", Default: "预设", "Delete accordion": "", "Delete column": "删除列", "Delete row": "删除行", "Delete table": "删除表格", Dimensions: "尺寸", Disc: "实心圆", Div: "Div", Document: "文档", Dotted: "虚线", Double: "双精度", "Drop an image here": "拖放一张图像至此", "Dropped file type is not supported": "此文件类型不支持拖放", Edit: "编辑", Embed: "内嵌", Emojis: "Emojis", "Emojis...": "Emojis...", Error: "错误", "Error: Form submit field collision.": "错误: 表单提交字段冲突。", "Error: No form element found.": "错误: 没有表单控件。", "Extended Latin": "拉丁语扩充", "Failed to initialize plugin: {0}": "插件初始化失败: {0}", "Failed to load plugin url: {0}": "插件加载失败 链接: {0}", "Failed to load plugin: {0} from url {1}": "插件加载失败: {0} 来自链接 {1}", "Failed to upload image: {0}": "图片上传失败: {0}", File: "文件", Find: "寻找", "Find (if searchreplace plugin activated)": "查找(如果查找替换插件已激活)", "Find and Replace": "查找和替换", "Find and replace...": "查找并替换...", "Find in selection": "在选区中查找", "Find whole words only": "全字匹配", Flags: "旗帜", "Focus to contextual toolbar": "移动焦点到上下文菜单", "Focus to element path": "移动焦点到元素路径", "Focus to menubar": "移动焦点到菜单栏", "Focus to toolbar": "移动焦点到工具栏", Font: "字体", "Font sizes": "字体大小", Fonts: "字体", "Food and Drink": "食物和饮品", Footer: "表尾", Format: "格式", Formats: "格式", Fullscreen: "全屏", G: "G", General: "一般", Gray: "灰色", Green: "绿色", "Green component": "绿色部分", Groove: "凹槽", "Handy Shortcuts": "快捷键", Header: "表头", "Header cell": "表头单元格", "Heading 1": "一级标题", "Heading 2": "二级标题", "Heading 3": "三级标题", "Heading 4": "四级标题", "Heading 5": "五级标题", "Heading 6": "六级标题", Headings: "标题", Height: "高度", Help: "帮助", "Hex color code": "十六进制颜色代码", Hidden: "隐藏", "Horizontal align": "水平对齐", "Horizontal line": "水平分割线", "Horizontal space": "水平间距", ID: "ID", "ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "ID应该以英文字母开头,后面只能有英文字母、数字、破折号、点、冒号或下划线。", "Image is decorative": "图像是装饰性的", "Image list": "图片清单", "Image title": "图片标题", "Image...": "图片...", "ImageProxy HTTP error: Could not find Image Proxy": "图片代理请求错误:无法找到图片代理", "ImageProxy HTTP error: Incorrect Image Proxy URL": "图片代理请求错误:图片代理地址错误", "ImageProxy HTTP error: Rejected request": "图片代理请求错误:请求被拒绝", "ImageProxy HTTP error: Unknown ImageProxy error": "图片代理请求错误:未知的图片代理错误", "Increase indent": "增加缩进", Inline: "文本", Insert: "插入", "Insert Template": "插入模板", "Insert accordion": "", "Insert column after": "在右侧插入列", "Insert column before": "在左侧插入列", "Insert date/time": "插入日期/时间", "Insert image": "插入图片", "Insert link (if link plugin activated)": "插入链接 (如果链接插件已激活)", "Insert row after": "在下方插入行", "Insert row before": "在上方插入行", "Insert table": "插入表格", "Insert template...": "插入模板...", "Insert video": "插入视频", "Insert/Edit code sample": "插入/编辑代码示例", "Insert/edit image": "插入/编辑图片", "Insert/edit link": "插入/编辑链接", "Insert/edit media": "插入/编辑媒体", "Insert/edit video": "插入/编辑视频", Inset: "嵌入", "Invalid hex color code: {0}": "十六进制颜色代码无效: {0}", "Invalid input": "无效输入", Italic: "斜体", Justify: "两端对齐", "Keyboard Navigation": "键盘指引", Language: "语言", "Learn more...": "了解更多...", Left: "左", "Left to right": "由左到右", "Light Blue": "浅蓝色", "Light Gray": "浅灰色", "Light Green": "浅绿色", "Light Purple": "浅紫色", "Light Red": "浅红色", "Light Yellow": "浅黄色", "Line height": "行高", "Link list": "链接清单", "Link...": "链接...", "List Properties": "列表属性", "List properties...": "标题字体属性", "Loading emojis...": "正在加载Emojis...", "Loading...": "加载中...", "Lower Alpha": "小写英文字母", "Lower Greek": "小写希腊字母", "Lower Roman": "小写罗马数字", "Match case": "大小写匹配", Mathematical: "数学", "Media poster (Image URL)": "封面(图片地址)", "Media...": "多媒体...", "Medium Blue": "中蓝色", "Medium Gray": "中灰色", "Medium Purple": "中紫色", "Merge cells": "合并单元格", Middle: "居中对齐", "Midnight Blue": "深蓝色", "More...": "更多...", Name: "名称", "Navy Blue": "海军蓝", "New document": "新文件", "New window": "新窗口", Next: "下一个", No: "否", "No alignment": "未对齐", "No color": "无", "Nonbreaking space": "不间断空格", None: "无", "Numbered list": "有序列表", OR: "或", Objects: "物件", Ok: "确定", "Open help dialog": "打开帮助对话框", "Open link": "打开链接", "Open link in...": "链接打开位置...", "Open popup menu for split buttons": "打开弹出式菜单,用于拆分按钮", Orange: "橙色", Outset: "外置", "Page break": "分页符", Paragraph: "段落", Paste: "粘贴", "Paste as text": "粘贴为文本", "Paste column after": "粘贴后面的列", "Paste column before": "粘贴此列前", "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "当前为纯文本粘贴模式,再次点击可以回到普通粘贴模式。", "Paste or type a link": "粘贴或输入链接", "Paste row after": "粘贴行到下方", "Paste row before": "粘贴行到上方", "Paste your embed code below:": "将内嵌代码粘贴在下面:", People: "人类", Plugins: "插件", "Plugins installed ({0}):": "已安装插件 ({0}):", "Powered by {0}": "由{0}驱动", Pre: "前言", Preferences: "首选项", Preformatted: "预先格式化的", "Premium plugins:": "优秀插件:", "Press the Up and Down arrow keys to resize the editor.": "", "Press the arrow keys to resize the editor.": "", "Press {0} for help": "", Preview: "预览", Previous: "上一个", Print: "打印", "Print...": "打印...", Purple: "紫色", Quotations: "引用", R: "R", "Range 0 to 255": "范围0至255", Red: "红色", "Red component": "红色部分", Redo: "重做", Remove: "移除", "Remove color": "移除颜色", "Remove link": "移除链接", Replace: "替换", "Replace all": "替换全部", "Replace with": "替换为", Resize: "调整大小", "Restore last draft": "恢复上次的草稿", "Reveal or hide additional toolbar items": "更多", "Rich Text Area": "富文本区域", "Rich Text Area. Press ALT-0 for help.": "编辑区。按Alt+0键打开帮助。", "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "编辑区。按ALT-F9打开菜单,按ALT-F10打开工具栏,按ALT-0查看帮助", Ridge: "海脊座", Right: "右", "Right to left": "由右到左", Row: "行", "Row clipboard actions": "行剪贴板操作", "Row group": "行组", "Row header": "行头", "Row properties": "行属性", "Row type": "行类型", Rows: "行数", Save: "保存", "Save (if save plugin activated)": "保存(如果保存插件已激活)", Scope: "范围", Search: "搜索", "Select all": "全选", "Select...": "选择...", Selection: "选择", Shortcut: "快捷方式", "Show blocks": "显示区块边框", "Show caption": "显示标题", "Show invisible characters": "显示不可见字符", Size: "字号", Solid: "实线", Source: "源", "Source code": "源代码", "Special Character": "特殊字符", "Special character...": "特殊字符...", "Split cell": "拆分单元格", Square: "实心方块", "Start list at number": "以数字开始列表", Strikethrough: "删除线", Style: "样式", Subscript: "下标", Superscript: "上标", "Switch to or from fullscreen mode": "切换全屏模式", Symbols: "符号", "System Font": "系统字体", Table: "表格", "Table caption": "表格标题", "Table properties": "表格属性", "Table styles": "表格样式", Template: "模板", Templates: "模板", Text: "文字", "Text color": "文本颜色", "Text to display": "要显示的文本", "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "你所填写的URL地址为邮件地址,需要加上mailto: 前缀吗?", "The URL you entered seems to be an external link. Do you want to add the required http:// prefix?": "你所填写的URL地址属于外部链接,需要加上http:// 前缀吗?", "The URL you entered seems to be an external link. Do you want to add the required https:// prefix?": "您输入的 URL 似乎是一个外部链接。您想添加所需的 https:// 前缀吗?", Title: "标题", "To open the popup, press Shift+Enter": "按Shitf+Enter键打开对话框", "Toggle accordion": "", Tools: "工具", Top: "上方对齐", "Travel and Places": "旅游和地点", Turquoise: "青绿色", Underline: "下划线", Undo: "撤销", Upload: "上传", "Uploading image": "上传图片", "Upper Alpha": "大写英文字母", "Upper Roman": "大写罗马数字", Url: "地址", "User Defined": "自定义", Valid: "有效", Version: "版本", "Vertical align": "垂直对齐", "Vertical space": "垂直间距", View: "查看", "Visual aids": "网格线", Warn: "警告", White: "白色", Width: "宽度", "Word count": "字数", Words: "单词", "Words: {0}": "字数:{0}", Yellow: "黄色", Yes: "是", "You are using {0}": "你正在使用 {0}", "You have unsaved changes are you sure you want to navigate away?": "你还有文档尚未保存,确定要离开?", "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.": "你的浏览器不支持打开剪贴板,请使用Ctrl+X/C/V等快捷键。", alignment: "对齐", "austral sign": "澳元符号", "cedi sign": "塞地符号", "colon sign": "冒号", "cruzeiro sign": "克鲁赛罗币符号", "currency sign": "货币符号", "dollar sign": "美元符号", "dong sign": "越南盾符号", "drachma sign": "德拉克马符号", "euro-currency sign": "欧元符号", example: "示例", formatting: "格式化", "french franc sign": "法郎符号", "german penny symbol": "德国便士符号", "guarani sign": "瓜拉尼符号", history: "历史", "hryvnia sign": "格里夫尼亚符号", indentation: "缩进", "indian rupee sign": "印度卢比", "kip sign": "老挝基普符号", "lira sign": "里拉符号", "livre tournois sign": "里弗弗尔符号", "manat sign": "马纳特符号", "mill sign": "密尔符号", "naira sign": "奈拉符号", "new sheqel sign": "新谢克尔符号", "nordic mark sign": "北欧马克", "peseta sign": "比塞塔符号", "peso sign": "比索符号", "ruble sign": "卢布符号", "rupee sign": "卢比符号", "spesmilo sign": "spesmilo符号", styles: "样式", "tenge sign": "坚戈符号", "tugrik sign": "图格里克符号", "turkish lira sign": "土耳其里拉", "won sign": "韩元符号", "yen character": "日元字样", "yen/yuan character variant one": "元字样(大写)", "yuan character": "人民币元字样", "yuan character, in hong kong and taiwan": "元字样(港台地区)", "{0} characters": "{0} 个字符", "{0} columns, {1} rows": "", "{0} words": "{0} 字" };
|
|
2
2
|
export {
|
|
3
3
|
e as default
|
|
4
4
|
};
|
package/es/types.d.ts
CHANGED
|
@@ -55,6 +55,8 @@ export interface VideoUploadOptions {
|
|
|
55
55
|
file: File | Blob;
|
|
56
56
|
extParameters?: Record<string, any>;
|
|
57
57
|
}) => Record<string, any>;
|
|
58
|
+
/** 上传之前回调结束(开始调用上传接口) */
|
|
59
|
+
beforeUploadEnd?: (file: File | Blob) => void;
|
|
58
60
|
/** 响应处理(启用必传) */
|
|
59
61
|
handlerResponse?: (response: any) => {
|
|
60
62
|
url?: string;
|
|
@@ -83,6 +85,8 @@ export interface AudioUploadOptions {
|
|
|
83
85
|
file: File | Blob;
|
|
84
86
|
extParameters?: Record<string, any>;
|
|
85
87
|
}) => Record<string, any>;
|
|
88
|
+
/** 上传之前回调结束(开始调用上传接口) */
|
|
89
|
+
beforeUploadEnd?: (file: File | Blob) => void;
|
|
86
90
|
/** 响应处理(启用必传) */
|
|
87
91
|
handlerResponse?: (response: any) => {
|
|
88
92
|
url?: string;
|
package/package.json
CHANGED