vue-editify 0.0.1 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/editify.es.js +237 -51
- package/lib/editify.umd.js +1 -1
- package/lib/style.css +1 -1
- package/package.json +3 -4
- package/src/components/bussiness/Menu.vue +51 -49
- package/src/index.js +1 -1
package/lib/editify.es.js
CHANGED
@@ -1322,6 +1322,98 @@ const file$1 = {
|
|
1322
1322
|
return new File([u8arr], fileName, {
|
1323
1323
|
type: mime
|
1324
1324
|
});
|
1325
|
+
},
|
1326
|
+
/**
|
1327
|
+
* 图片压缩方法
|
1328
|
+
* @param {*} file 需要压缩的图片File文件
|
1329
|
+
* @param {*} opts 压缩参数
|
1330
|
+
*/
|
1331
|
+
compressImage(file2, opts) {
|
1332
|
+
const options = {
|
1333
|
+
//压缩图片的宽,单位px,如果不设置默认为原图宽
|
1334
|
+
width: null,
|
1335
|
+
//压缩图片质量,默认为原图的0.8
|
1336
|
+
quality: 0.8,
|
1337
|
+
//图片类型,jpeg或者webp,默认为jpeg
|
1338
|
+
mimeType: "jpeg",
|
1339
|
+
//压缩后的最大值,单位kb,默认为0表示不设置此值
|
1340
|
+
maxSize: 0,
|
1341
|
+
//小于该大小的图片不进行压缩,单位kb,默认为0表示任何图片都要压缩
|
1342
|
+
minSize: 0
|
1343
|
+
};
|
1344
|
+
if (common$1.isObject(opts)) {
|
1345
|
+
if (number$1.isNumber(opts.width)) {
|
1346
|
+
options.width = opts.width;
|
1347
|
+
}
|
1348
|
+
if (number$1.isNumber(opts.quality) && opts.quality >= 0 && opts.quality <= 1) {
|
1349
|
+
options.quality = opts.quality;
|
1350
|
+
}
|
1351
|
+
if (opts.mimeType == "jpeg" || opts.mimeType == "webp") {
|
1352
|
+
options.mimeType = opts.mimeType;
|
1353
|
+
}
|
1354
|
+
if (number$1.isNumber(opts.maxSize)) {
|
1355
|
+
options.maxSize = opts.maxSize;
|
1356
|
+
}
|
1357
|
+
if (number$1.isNumber(opts.minSize)) {
|
1358
|
+
options.minSize = opts.minSize;
|
1359
|
+
}
|
1360
|
+
}
|
1361
|
+
const createFile = (canvas, fileName, quality) => {
|
1362
|
+
let url2 = canvas.toDataURL("image/" + options.mimeType, quality);
|
1363
|
+
let file3 = this.dataBase64toFile(url2, fileName);
|
1364
|
+
if (options.maxSize > 0 && file3.size > options.maxSize * 1024) {
|
1365
|
+
quality = quality <= 0 ? 0 : Number((quality - 0.01).toFixed(2));
|
1366
|
+
const res = createFile(canvas, fileName, quality);
|
1367
|
+
url2 = res.url;
|
1368
|
+
file3 = res.file;
|
1369
|
+
quality = res.quality;
|
1370
|
+
}
|
1371
|
+
return {
|
1372
|
+
file: file3,
|
1373
|
+
url: url2,
|
1374
|
+
quality
|
1375
|
+
};
|
1376
|
+
};
|
1377
|
+
return new Promise((resolve, reject) => {
|
1378
|
+
let reader = new FileReader();
|
1379
|
+
reader.readAsDataURL(file2);
|
1380
|
+
reader.onload = () => {
|
1381
|
+
let url2 = reader.result;
|
1382
|
+
let img = new Image();
|
1383
|
+
img.src = url2;
|
1384
|
+
img.onload = () => {
|
1385
|
+
if (options.minSize > 0 && file2.size <= options.minSize * 1024) {
|
1386
|
+
resolve({
|
1387
|
+
file: file2,
|
1388
|
+
url: url2,
|
1389
|
+
quality: 1,
|
1390
|
+
width: img.width,
|
1391
|
+
height: img.height
|
1392
|
+
});
|
1393
|
+
return;
|
1394
|
+
}
|
1395
|
+
let canvas = document.createElement("canvas");
|
1396
|
+
let context = canvas.getContext("2d");
|
1397
|
+
canvas.width = options.width || img.width;
|
1398
|
+
canvas.height = options.width ? options.width / (img.width / img.height) : img.height;
|
1399
|
+
context.drawImage(img, 0, 0, canvas.width, canvas.height);
|
1400
|
+
let index = file2.name.lastIndexOf(".");
|
1401
|
+
const fileName = file2.name.substring(0, index) + "." + options.mimeType;
|
1402
|
+
let res = createFile(canvas, fileName, options.quality);
|
1403
|
+
resolve({
|
1404
|
+
...res,
|
1405
|
+
width: canvas.width,
|
1406
|
+
height: canvas.height
|
1407
|
+
});
|
1408
|
+
};
|
1409
|
+
img.onerror = () => {
|
1410
|
+
reject(new Error("Failed to load image file"));
|
1411
|
+
};
|
1412
|
+
};
|
1413
|
+
reader.onerror = () => {
|
1414
|
+
reject(new Error("Failed to load image file"));
|
1415
|
+
};
|
1416
|
+
});
|
1325
1417
|
}
|
1326
1418
|
};
|
1327
1419
|
const platform$1 = {
|
@@ -6081,6 +6173,98 @@ const file = {
|
|
6081
6173
|
return new File([u8arr], fileName, {
|
6082
6174
|
type: mime
|
6083
6175
|
});
|
6176
|
+
},
|
6177
|
+
/**
|
6178
|
+
* 图片压缩方法
|
6179
|
+
* @param {*} file 需要压缩的图片File文件
|
6180
|
+
* @param {*} opts 压缩参数
|
6181
|
+
*/
|
6182
|
+
compressImage(file2, opts) {
|
6183
|
+
const options = {
|
6184
|
+
//压缩图片的宽,单位px,如果不设置默认为原图宽
|
6185
|
+
width: null,
|
6186
|
+
//压缩图片质量,默认为原图的0.8
|
6187
|
+
quality: 0.8,
|
6188
|
+
//图片类型,jpeg或者webp,默认为jpeg
|
6189
|
+
mimeType: "jpeg",
|
6190
|
+
//压缩后的最大值,单位kb,默认为0表示不设置此值
|
6191
|
+
maxSize: 0,
|
6192
|
+
//小于该大小的图片不进行压缩,单位kb,默认为0表示任何图片都要压缩
|
6193
|
+
minSize: 0
|
6194
|
+
};
|
6195
|
+
if (common.isObject(opts)) {
|
6196
|
+
if (number.isNumber(opts.width)) {
|
6197
|
+
options.width = opts.width;
|
6198
|
+
}
|
6199
|
+
if (number.isNumber(opts.quality) && opts.quality >= 0 && opts.quality <= 1) {
|
6200
|
+
options.quality = opts.quality;
|
6201
|
+
}
|
6202
|
+
if (opts.mimeType == "jpeg" || opts.mimeType == "webp") {
|
6203
|
+
options.mimeType = opts.mimeType;
|
6204
|
+
}
|
6205
|
+
if (number.isNumber(opts.maxSize)) {
|
6206
|
+
options.maxSize = opts.maxSize;
|
6207
|
+
}
|
6208
|
+
if (number.isNumber(opts.minSize)) {
|
6209
|
+
options.minSize = opts.minSize;
|
6210
|
+
}
|
6211
|
+
}
|
6212
|
+
const createFile = (canvas, fileName, quality) => {
|
6213
|
+
let url2 = canvas.toDataURL("image/" + options.mimeType, quality);
|
6214
|
+
let file3 = this.dataBase64toFile(url2, fileName);
|
6215
|
+
if (options.maxSize > 0 && file3.size > options.maxSize * 1024) {
|
6216
|
+
quality = quality <= 0 ? 0 : Number((quality - 0.01).toFixed(2));
|
6217
|
+
const res = createFile(canvas, fileName, quality);
|
6218
|
+
url2 = res.url;
|
6219
|
+
file3 = res.file;
|
6220
|
+
quality = res.quality;
|
6221
|
+
}
|
6222
|
+
return {
|
6223
|
+
file: file3,
|
6224
|
+
url: url2,
|
6225
|
+
quality
|
6226
|
+
};
|
6227
|
+
};
|
6228
|
+
return new Promise((resolve, reject) => {
|
6229
|
+
let reader = new FileReader();
|
6230
|
+
reader.readAsDataURL(file2);
|
6231
|
+
reader.onload = () => {
|
6232
|
+
let url2 = reader.result;
|
6233
|
+
let img = new Image();
|
6234
|
+
img.src = url2;
|
6235
|
+
img.onload = () => {
|
6236
|
+
if (options.minSize > 0 && file2.size <= options.minSize * 1024) {
|
6237
|
+
resolve({
|
6238
|
+
file: file2,
|
6239
|
+
url: url2,
|
6240
|
+
quality: 1,
|
6241
|
+
width: img.width,
|
6242
|
+
height: img.height
|
6243
|
+
});
|
6244
|
+
return;
|
6245
|
+
}
|
6246
|
+
let canvas = document.createElement("canvas");
|
6247
|
+
let context = canvas.getContext("2d");
|
6248
|
+
canvas.width = options.width || img.width;
|
6249
|
+
canvas.height = options.width ? options.width / (img.width / img.height) : img.height;
|
6250
|
+
context.drawImage(img, 0, 0, canvas.width, canvas.height);
|
6251
|
+
let index = file2.name.lastIndexOf(".");
|
6252
|
+
const fileName = file2.name.substring(0, index) + "." + options.mimeType;
|
6253
|
+
let res = createFile(canvas, fileName, options.quality);
|
6254
|
+
resolve({
|
6255
|
+
...res,
|
6256
|
+
width: canvas.width,
|
6257
|
+
height: canvas.height
|
6258
|
+
});
|
6259
|
+
};
|
6260
|
+
img.onerror = () => {
|
6261
|
+
reject(new Error("Failed to load image file"));
|
6262
|
+
};
|
6263
|
+
};
|
6264
|
+
reader.onerror = () => {
|
6265
|
+
reject(new Error("Failed to load image file"));
|
6266
|
+
};
|
6267
|
+
});
|
6084
6268
|
}
|
6085
6269
|
};
|
6086
6270
|
const platform = {
|
@@ -19562,7 +19746,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19562
19746
|
]);
|
19563
19747
|
}
|
19564
19748
|
const InsertTable = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-0277a84c"]]);
|
19565
|
-
const
|
19749
|
+
const Menu_vue_vue_type_style_index_0_scoped_4c7850ff_lang = "";
|
19566
19750
|
const _sfc_main$1 = {
|
19567
19751
|
name: "Menu",
|
19568
19752
|
props: {
|
@@ -20481,57 +20665,59 @@ const _sfc_main$1 = {
|
|
20481
20665
|
}
|
20482
20666
|
if (obj.common.isObject(this.$parent.config.extends)) {
|
20483
20667
|
const configuration = this.$parent.config.extends[this.name];
|
20484
|
-
|
20485
|
-
|
20486
|
-
|
20487
|
-
|
20488
|
-
|
20489
|
-
|
20490
|
-
|
20491
|
-
|
20492
|
-
|
20493
|
-
|
20494
|
-
|
20495
|
-
|
20496
|
-
|
20497
|
-
|
20498
|
-
|
20499
|
-
|
20500
|
-
|
20501
|
-
|
20502
|
-
|
20503
|
-
|
20504
|
-
|
20505
|
-
|
20506
|
-
|
20507
|
-
|
20508
|
-
|
20509
|
-
|
20510
|
-
configuration.onLayerShow
|
20511
|
-
|
20512
|
-
|
20513
|
-
|
20514
|
-
|
20515
|
-
configuration.onLayerShown
|
20516
|
-
|
20517
|
-
|
20518
|
-
|
20519
|
-
|
20520
|
-
configuration.onLayerHidden
|
20668
|
+
if (configuration) {
|
20669
|
+
return h(
|
20670
|
+
Button,
|
20671
|
+
{
|
20672
|
+
...props,
|
20673
|
+
ref: "btn",
|
20674
|
+
type: configuration.type || "default",
|
20675
|
+
title: configuration.title || "",
|
20676
|
+
leftBorder: configuration.leftBorder || false,
|
20677
|
+
rightBorder: configuration.rightBorder || false,
|
20678
|
+
disabled: configuration.disabled || this.disabled || this.$parent.disabled,
|
20679
|
+
hideScroll: configuration.hideScroll || false,
|
20680
|
+
active: configuration.active || false,
|
20681
|
+
selectConfig: {
|
20682
|
+
width: configuration.width,
|
20683
|
+
maxHeight: configuration.maxHeight,
|
20684
|
+
options: configuration.options
|
20685
|
+
},
|
20686
|
+
displayConfig: {
|
20687
|
+
width: configuration.width,
|
20688
|
+
maxHeight: configuration.maxHeight,
|
20689
|
+
value: configuration.value,
|
20690
|
+
options: configuration.options
|
20691
|
+
},
|
20692
|
+
color: this.$parent.color,
|
20693
|
+
onLayerShow: () => {
|
20694
|
+
if (typeof configuration.onLayerShow == "function") {
|
20695
|
+
configuration.onLayerShow.apply(this.$parent.$parent, [this.name, this.$refs.btn]);
|
20696
|
+
}
|
20697
|
+
},
|
20698
|
+
onLayerShown: () => {
|
20699
|
+
if (typeof configuration.onLayerShown == "function") {
|
20700
|
+
configuration.onLayerShown.apply(this.$parent.$parent, [this.name, this.$refs.btn]);
|
20701
|
+
}
|
20702
|
+
},
|
20703
|
+
onLayerHidden: () => {
|
20704
|
+
if (typeof configuration.onLayerHidden == "function") {
|
20705
|
+
configuration.onLayerHidden.apply(this.$parent.$parent, [this.name, this.$refs.btn]);
|
20706
|
+
}
|
20707
|
+
},
|
20708
|
+
onOperate: (name, val) => {
|
20709
|
+
if (typeof configuration.onOperate == "function") {
|
20710
|
+
configuration.onOperate.apply(this.$parent.$parent, [name, val, this.$refs.btn]);
|
20711
|
+
}
|
20521
20712
|
}
|
20522
20713
|
},
|
20523
|
-
|
20524
|
-
|
20525
|
-
|
20526
|
-
|
20714
|
+
{
|
20715
|
+
default: configuration.default || null,
|
20716
|
+
layer: configuration.layer || null,
|
20717
|
+
option: configuration.option || null
|
20527
20718
|
}
|
20528
|
-
|
20529
|
-
|
20530
|
-
default: configuration.default || null,
|
20531
|
-
layer: configuration.layer || null,
|
20532
|
-
option: configuration.option || null
|
20533
|
-
}
|
20534
|
-
);
|
20719
|
+
);
|
20720
|
+
}
|
20535
20721
|
}
|
20536
20722
|
return null;
|
20537
20723
|
}
|
@@ -20780,7 +20966,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
20780
20966
|
}), 256))
|
20781
20967
|
], 14, _hoisted_1$1);
|
20782
20968
|
}
|
20783
|
-
const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-
|
20969
|
+
const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-4c7850ff"]]);
|
20784
20970
|
const Editify_vue_vue_type_style_index_0_scoped_be97ae51_lang = "";
|
20785
20971
|
const _sfc_main = {
|
20786
20972
|
name: "editify",
|
@@ -22439,7 +22625,7 @@ const i18n = (locale) => {
|
|
22439
22625
|
return translations[locale][key];
|
22440
22626
|
};
|
22441
22627
|
};
|
22442
|
-
const version = "0.0.
|
22628
|
+
const version = "0.0.11";
|
22443
22629
|
const install = (app, props) => {
|
22444
22630
|
const locale = (props ? props.locale : "zh_CN") || "zh_CN";
|
22445
22631
|
app.provide("$editTrans", i18n(locale));
|