pxx-vue-quill 1.0.16 → 1.0.18
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/dist/vue-quill.cjs.js +237 -50
- package/dist/vue-quill.cjs.prod.js +2 -2
- package/dist/vue-quill.esm-browser.js +504 -333
- package/dist/vue-quill.esm-browser.prod.js +2 -2
- package/dist/vue-quill.esm-bundler.js +238 -51
- package/dist/vue-quill.esm-bundler.prod.js +2 -2
- package/dist/vue-quill.global.js +361 -182
- package/dist/vue-quill.global.prod.js +2 -2
- package/dist/vue-quill.snow.css +49 -8
- package/dist/vue-quill.snow.prod.css +1 -1
- package/package.json +1 -1
package/dist/vue-quill.global.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Copyright (c) 2025 Pxx-Team
|
|
9
9
|
* Released under the MIT license
|
|
10
|
-
* Date: 2025-08-
|
|
10
|
+
* Date: 2025-08-26T02:18:21.558Z
|
|
11
11
|
*/
|
|
12
12
|
(function (global, factory) {
|
|
13
13
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')) :
|
|
@@ -18441,19 +18441,31 @@
|
|
|
18441
18441
|
var Delta$1 = Delta_1;
|
|
18442
18442
|
|
|
18443
18443
|
const toolbarOptions = {
|
|
18444
|
+
// 完整的工具栏
|
|
18444
18445
|
full: [
|
|
18445
|
-
// ['bold', 'italic', 'underline', 'strike'], // toggled buttons
|
|
18446
18446
|
['bold', 'italic', 'underline'],
|
|
18447
|
+
[{ color: [] }],
|
|
18448
|
+
['link'],
|
|
18447
18449
|
[{ list: 'ordered' }, { list: 'bullet' }],
|
|
18448
|
-
// [{ direction: 'rtl' }], // text direction
|
|
18449
|
-
// [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown
|
|
18450
|
-
// [{ header: [1, 2, 3, 4, 5, 6, false] }],
|
|
18451
|
-
[{ color: [] }, { background: [] }],
|
|
18452
|
-
// [{ font: [] }],
|
|
18453
|
-
// [{ align: [] }],
|
|
18454
18450
|
['image'],
|
|
18455
|
-
|
|
18451
|
+
['undo', 'redo'],
|
|
18452
|
+
['math'],
|
|
18453
|
+
['ocr'],
|
|
18456
18454
|
],
|
|
18455
|
+
// 如果编辑器宽度不够,就显示短的工具栏
|
|
18456
|
+
short: [
|
|
18457
|
+
['bold', 'italic', 'underline'],
|
|
18458
|
+
[{ color: [] }],
|
|
18459
|
+
['link'],
|
|
18460
|
+
['more']
|
|
18461
|
+
],
|
|
18462
|
+
// 点击更多显示的第二栏工具
|
|
18463
|
+
extend: [
|
|
18464
|
+
[{ list: 'ordered' }, { list: 'bullet' }],
|
|
18465
|
+
['image'],
|
|
18466
|
+
['undo', 'redo'],
|
|
18467
|
+
['math'],
|
|
18468
|
+
]
|
|
18457
18469
|
};
|
|
18458
18470
|
|
|
18459
18471
|
var dist = {};
|
|
@@ -18784,11 +18796,11 @@
|
|
|
18784
18796
|
value: true
|
|
18785
18797
|
});
|
|
18786
18798
|
|
|
18787
|
-
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
18799
|
+
var _createClass$1 = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
18788
18800
|
|
|
18789
18801
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18790
18802
|
|
|
18791
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
18803
|
+
function _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
18792
18804
|
|
|
18793
18805
|
var LEFT_ALIGN = 'left';
|
|
18794
18806
|
var CENTER_ALIGN = 'center';
|
|
@@ -18799,7 +18811,7 @@
|
|
|
18799
18811
|
var _this = this,
|
|
18800
18812
|
_alignments;
|
|
18801
18813
|
|
|
18802
|
-
_classCallCheck(this, DefaultAligner);
|
|
18814
|
+
_classCallCheck$1(this, DefaultAligner);
|
|
18803
18815
|
|
|
18804
18816
|
this.applyStyle = options.aligner.applyStyle;
|
|
18805
18817
|
this.alignAttribute = options.attribute;
|
|
@@ -18827,7 +18839,7 @@
|
|
|
18827
18839
|
}), _alignments);
|
|
18828
18840
|
}
|
|
18829
18841
|
|
|
18830
|
-
_createClass(DefaultAligner, [{
|
|
18842
|
+
_createClass$1(DefaultAligner, [{
|
|
18831
18843
|
key: 'getAlignments',
|
|
18832
18844
|
value: function getAlignments() {
|
|
18833
18845
|
var _this2 = this;
|
|
@@ -19552,156 +19564,148 @@
|
|
|
19552
19564
|
|
|
19553
19565
|
var IframeVideoSpec = {};
|
|
19554
19566
|
|
|
19555
|
-
var UnclickableBlotSpec = {};
|
|
19556
|
-
|
|
19557
|
-
var hasRequiredUnclickableBlotSpec;
|
|
19558
|
-
|
|
19559
|
-
function requireUnclickableBlotSpec () {
|
|
19560
|
-
if (hasRequiredUnclickableBlotSpec) return UnclickableBlotSpec;
|
|
19561
|
-
hasRequiredUnclickableBlotSpec = 1;
|
|
19567
|
+
var UnclickableBlotSpec$1 = {};
|
|
19562
19568
|
|
|
19563
|
-
|
|
19564
|
-
|
|
19565
|
-
|
|
19566
|
-
|
|
19567
|
-
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
19569
|
+
Object.defineProperty(UnclickableBlotSpec$1, "__esModule", {
|
|
19570
|
+
value: true
|
|
19571
|
+
});
|
|
19568
19572
|
|
|
19569
|
-
|
|
19573
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
19570
19574
|
|
|
19571
|
-
|
|
19575
|
+
var _BlotSpec2 = requireBlotSpec();
|
|
19572
19576
|
|
|
19573
|
-
|
|
19577
|
+
var _BlotSpec3 = _interopRequireDefault(_BlotSpec2);
|
|
19574
19578
|
|
|
19575
|
-
|
|
19579
|
+
var _BlotFormatter = requireBlotFormatter();
|
|
19576
19580
|
|
|
19577
|
-
|
|
19581
|
+
_interopRequireDefault(_BlotFormatter);
|
|
19578
19582
|
|
|
19579
|
-
|
|
19583
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19580
19584
|
|
|
19581
|
-
|
|
19585
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
19582
19586
|
|
|
19583
|
-
|
|
19587
|
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
19584
19588
|
|
|
19585
|
-
|
|
19586
|
-
var PROXY_IMAGE_CLASS = 'blot-formatter__proxy-image';
|
|
19589
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
|
19587
19590
|
|
|
19588
|
-
|
|
19589
|
-
|
|
19591
|
+
var MOUSE_ENTER_ATTRIBUTE = 'data-blot-formatter-unclickable-bound';
|
|
19592
|
+
var PROXY_IMAGE_CLASS = 'blot-formatter__proxy-image';
|
|
19590
19593
|
|
|
19591
|
-
|
|
19592
|
-
|
|
19594
|
+
var UnclickableBlotSpec = function (_BlotSpec) {
|
|
19595
|
+
_inherits(UnclickableBlotSpec, _BlotSpec);
|
|
19593
19596
|
|
|
19594
|
-
|
|
19597
|
+
function UnclickableBlotSpec(formatter, selector) {
|
|
19598
|
+
_classCallCheck(this, UnclickableBlotSpec);
|
|
19595
19599
|
|
|
19596
|
-
|
|
19597
|
-
Array.from(document.querySelectorAll(_this.selector + ':not([' + MOUSE_ENTER_ATTRIBUTE + '])')).forEach(function (unclickable) {
|
|
19598
|
-
unclickable.setAttribute(MOUSE_ENTER_ATTRIBUTE, 'true');
|
|
19599
|
-
unclickable.addEventListener('mouseenter', _this.onMouseEnter);
|
|
19600
|
-
});
|
|
19601
|
-
};
|
|
19600
|
+
var _this = _possibleConstructorReturn(this, (UnclickableBlotSpec.__proto__ || Object.getPrototypeOf(UnclickableBlotSpec)).call(this, formatter));
|
|
19602
19601
|
|
|
19603
|
-
|
|
19604
|
-
|
|
19605
|
-
|
|
19606
|
-
|
|
19607
|
-
|
|
19602
|
+
_this.onTextChange = function () {
|
|
19603
|
+
Array.from(document.querySelectorAll(_this.selector + ':not([' + MOUSE_ENTER_ATTRIBUTE + '])')).forEach(function (unclickable) {
|
|
19604
|
+
unclickable.setAttribute(MOUSE_ENTER_ATTRIBUTE, 'true');
|
|
19605
|
+
unclickable.addEventListener('mouseenter', _this.onMouseEnter);
|
|
19606
|
+
});
|
|
19607
|
+
};
|
|
19608
19608
|
|
|
19609
|
-
|
|
19610
|
-
|
|
19611
|
-
|
|
19609
|
+
_this.onMouseEnter = function (event) {
|
|
19610
|
+
var unclickable = event.target;
|
|
19611
|
+
if (!(unclickable instanceof HTMLElement)) {
|
|
19612
|
+
return;
|
|
19613
|
+
}
|
|
19612
19614
|
|
|
19613
|
-
|
|
19614
|
-
|
|
19615
|
-
|
|
19616
|
-
_this.formatter.show(_this);
|
|
19617
|
-
_this.hideProxyImage();
|
|
19618
|
-
};
|
|
19615
|
+
_this.nextUnclickable = unclickable;
|
|
19616
|
+
_this.repositionProxyImage(_this.nextUnclickable);
|
|
19617
|
+
};
|
|
19619
19618
|
|
|
19620
|
-
|
|
19621
|
-
|
|
19622
|
-
|
|
19623
|
-
|
|
19624
|
-
|
|
19619
|
+
_this.onProxyImageClick = function () {
|
|
19620
|
+
_this.unclickable = _this.nextUnclickable;
|
|
19621
|
+
_this.nextUnclickable = null;
|
|
19622
|
+
_this.formatter.show(_this);
|
|
19623
|
+
_this.hideProxyImage();
|
|
19624
|
+
};
|
|
19625
19625
|
|
|
19626
|
-
|
|
19627
|
-
|
|
19628
|
-
|
|
19629
|
-
|
|
19630
|
-
|
|
19631
|
-
it's important that this is attached to the body instead of the root quill element.
|
|
19632
|
-
this prevents the click event from overlapping with ImageSpec
|
|
19633
|
-
*/
|
|
19634
|
-
document.body.appendChild(this.createProxyImage());
|
|
19635
|
-
}
|
|
19626
|
+
_this.selector = selector;
|
|
19627
|
+
_this.unclickable = null;
|
|
19628
|
+
_this.nextUnclickable = null;
|
|
19629
|
+
return _this;
|
|
19630
|
+
}
|
|
19636
19631
|
|
|
19637
|
-
|
|
19638
|
-
|
|
19639
|
-
|
|
19640
|
-
|
|
19641
|
-
|
|
19642
|
-
|
|
19643
|
-
|
|
19644
|
-
|
|
19645
|
-
|
|
19646
|
-
|
|
19647
|
-
key: 'getOverlayElement',
|
|
19648
|
-
value: function getOverlayElement() {
|
|
19649
|
-
return this.unclickable;
|
|
19650
|
-
}
|
|
19651
|
-
}, {
|
|
19652
|
-
key: 'onHide',
|
|
19653
|
-
value: function onHide() {
|
|
19654
|
-
this.hideProxyImage();
|
|
19655
|
-
this.nextUnclickable = null;
|
|
19656
|
-
this.unclickable = null;
|
|
19657
|
-
}
|
|
19658
|
-
}, {
|
|
19659
|
-
key: 'createProxyImage',
|
|
19660
|
-
value: function createProxyImage() {
|
|
19661
|
-
var canvas = document.createElement('canvas');
|
|
19662
|
-
var context = canvas.getContext('2d');
|
|
19663
|
-
context.globalAlpha = 0;
|
|
19664
|
-
context.fillRect(0, 0, 1, 1);
|
|
19665
|
-
|
|
19666
|
-
this.proxyImage = document.createElement('img');
|
|
19667
|
-
this.proxyImage.src = canvas.toDataURL('image/png');
|
|
19668
|
-
this.proxyImage.classList.add(PROXY_IMAGE_CLASS);
|
|
19669
|
-
|
|
19670
|
-
Object.assign(this.proxyImage.style, {
|
|
19671
|
-
position: 'absolute',
|
|
19672
|
-
margin: '0'
|
|
19673
|
-
});
|
|
19632
|
+
_createClass(UnclickableBlotSpec, [{
|
|
19633
|
+
key: 'init',
|
|
19634
|
+
value: function init() {
|
|
19635
|
+
if (document.body) {
|
|
19636
|
+
/*
|
|
19637
|
+
it's important that this is attached to the body instead of the root quill element.
|
|
19638
|
+
this prevents the click event from overlapping with ImageSpec
|
|
19639
|
+
*/
|
|
19640
|
+
document.body.appendChild(this.createProxyImage());
|
|
19641
|
+
}
|
|
19674
19642
|
|
|
19675
|
-
|
|
19676
|
-
|
|
19677
|
-
|
|
19678
|
-
|
|
19679
|
-
|
|
19680
|
-
|
|
19681
|
-
|
|
19682
|
-
|
|
19683
|
-
|
|
19684
|
-
|
|
19685
|
-
|
|
19686
|
-
|
|
19687
|
-
|
|
19643
|
+
this.hideProxyImage();
|
|
19644
|
+
this.proxyImage.addEventListener('click', this.onProxyImageClick);
|
|
19645
|
+
this.formatter.quill.on('text-change', this.onTextChange);
|
|
19646
|
+
}
|
|
19647
|
+
}, {
|
|
19648
|
+
key: 'getTargetElement',
|
|
19649
|
+
value: function getTargetElement() {
|
|
19650
|
+
return this.unclickable;
|
|
19651
|
+
}
|
|
19652
|
+
}, {
|
|
19653
|
+
key: 'getOverlayElement',
|
|
19654
|
+
value: function getOverlayElement() {
|
|
19655
|
+
return this.unclickable;
|
|
19656
|
+
}
|
|
19657
|
+
}, {
|
|
19658
|
+
key: 'onHide',
|
|
19659
|
+
value: function onHide() {
|
|
19660
|
+
this.hideProxyImage();
|
|
19661
|
+
this.nextUnclickable = null;
|
|
19662
|
+
this.unclickable = null;
|
|
19663
|
+
}
|
|
19664
|
+
}, {
|
|
19665
|
+
key: 'createProxyImage',
|
|
19666
|
+
value: function createProxyImage() {
|
|
19667
|
+
var canvas = document.createElement('canvas');
|
|
19668
|
+
var context = canvas.getContext('2d');
|
|
19669
|
+
context.globalAlpha = 0;
|
|
19670
|
+
context.fillRect(0, 0, 1, 1);
|
|
19671
|
+
|
|
19672
|
+
this.proxyImage = document.createElement('img');
|
|
19673
|
+
this.proxyImage.src = canvas.toDataURL('image/png');
|
|
19674
|
+
this.proxyImage.classList.add(PROXY_IMAGE_CLASS);
|
|
19675
|
+
|
|
19676
|
+
Object.assign(this.proxyImage.style, {
|
|
19677
|
+
position: 'absolute',
|
|
19678
|
+
margin: '0'
|
|
19679
|
+
});
|
|
19688
19680
|
|
|
19689
|
-
|
|
19690
|
-
|
|
19691
|
-
|
|
19692
|
-
|
|
19693
|
-
|
|
19694
|
-
|
|
19695
|
-
|
|
19696
|
-
|
|
19697
|
-
|
|
19681
|
+
return this.proxyImage;
|
|
19682
|
+
}
|
|
19683
|
+
}, {
|
|
19684
|
+
key: 'hideProxyImage',
|
|
19685
|
+
value: function hideProxyImage() {
|
|
19686
|
+
Object.assign(this.proxyImage.style, {
|
|
19687
|
+
display: 'none'
|
|
19688
|
+
});
|
|
19689
|
+
}
|
|
19690
|
+
}, {
|
|
19691
|
+
key: 'repositionProxyImage',
|
|
19692
|
+
value: function repositionProxyImage(unclickable) {
|
|
19693
|
+
var rect = unclickable.getBoundingClientRect();
|
|
19694
|
+
|
|
19695
|
+
Object.assign(this.proxyImage.style, {
|
|
19696
|
+
display: 'block',
|
|
19697
|
+
left: rect.left + window.pageXOffset + 'px',
|
|
19698
|
+
top: rect.top + window.pageYOffset + 'px',
|
|
19699
|
+
width: rect.width + 'px',
|
|
19700
|
+
height: rect.height + 'px'
|
|
19701
|
+
});
|
|
19702
|
+
}
|
|
19703
|
+
}]);
|
|
19698
19704
|
|
|
19699
|
-
|
|
19700
|
-
|
|
19705
|
+
return UnclickableBlotSpec;
|
|
19706
|
+
}(_BlotSpec3.default);
|
|
19701
19707
|
|
|
19702
|
-
|
|
19703
|
-
return UnclickableBlotSpec;
|
|
19704
|
-
}
|
|
19708
|
+
UnclickableBlotSpec$1.default = UnclickableBlotSpec;
|
|
19705
19709
|
|
|
19706
19710
|
var hasRequiredIframeVideoSpec;
|
|
19707
19711
|
|
|
@@ -19713,7 +19717,7 @@
|
|
|
19713
19717
|
value: true
|
|
19714
19718
|
});
|
|
19715
19719
|
|
|
19716
|
-
var _UnclickableBlotSpec2 =
|
|
19720
|
+
var _UnclickableBlotSpec2 = UnclickableBlotSpec$1;
|
|
19717
19721
|
|
|
19718
19722
|
var _UnclickableBlotSpec3 = _interopRequireDefault(_UnclickableBlotSpec2);
|
|
19719
19723
|
|
|
@@ -19940,7 +19944,7 @@
|
|
|
19940
19944
|
}
|
|
19941
19945
|
});
|
|
19942
19946
|
|
|
19943
|
-
var _UnclickableBlotSpec =
|
|
19947
|
+
var _UnclickableBlotSpec = UnclickableBlotSpec$1;
|
|
19944
19948
|
|
|
19945
19949
|
Object.defineProperty(exports, 'UnclickableBlotSpec', {
|
|
19946
19950
|
enumerable: true,
|
|
@@ -19963,6 +19967,123 @@
|
|
|
19963
19967
|
|
|
19964
19968
|
var BlotFormatter = /*@__PURE__*/getDefaultExportFromCjs(dist);
|
|
19965
19969
|
|
|
19970
|
+
// 加粗
|
|
19971
|
+
const boldSVG = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="18" height="18" viewBox="0 0 18 18"><g><g style="opacity:0;"><rect x="0" y="0" width="18" height="18" rx="0" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M6.794999938146972,7.7800002288818355L9.045000038146974,7.7800002288818355Q9.855000038146972,7.7800002288818355,10.230000038146972,7.442500128881836Q10.605000038146972,7.105000028881836,10.605000038146972,6.505000128881836Q10.605000038146972,6.114999728881836,10.440000038146973,5.860000628881836Q10.275000138146972,5.6050005288818365,9.929999838146973,5.470000228881836Q9.585000038146973,5.335000028881836,9.045000038146974,5.335000028881836L7.139999938146973,5.335000028881836L7.139999938146973,3.385000228881836L9.045000038146974,3.385000228881836Q10.034999838146973,3.385000228881836,10.852499938146973,3.797500608881836Q11.670000038146974,4.2100000388818355,12.142499938146972,4.922500628881836Q12.614999738146974,5.635000228881836,12.614999738146974,6.505000128881836Q12.614999738146974,7.375000028881836,12.142499938146972,8.042500028881836Q11.670000038146974,8.710000028881836,10.860000138146972,9.070000128881837Q10.050000238146973,9.430000328881835,9.045000038146974,9.430000328881835L6.794999938146972,9.430000328881835L6.794999938146972,7.7800002288818355ZM7.139999938146973,12.550000228881835L9.329999938146972,12.550000228881835Q9.900000138146972,12.550000228881835,10.327499838146974,12.354999528881836Q10.755000138146972,12.159999828881835,10.987500238146973,11.807499928881835Q11.219999838146972,11.454999928881836,11.219999838146972,11.020000428881836Q11.219999838146972,10.600000428881836,10.987500238146973,10.232500028881836Q10.755000138146972,9.864999728881836,10.327499838146974,9.647500028881836Q9.900000138146972,9.430000328881835,9.329999938146972,9.430000328881835L6.975000038146972,9.430000328881835L6.975000038146972,7.7800002288818355L9.329999938146972,7.7800002288818355Q10.349999938146972,7.7800002288818355,11.250000038146972,8.200000328881835Q12.149999638146973,8.620000328881837,12.690000538146972,9.362500228881835Q13.229999538146973,10.104999528881836,13.229999538146973,11.034999828881837Q13.229999538146973,11.949999828881836,12.690000538146972,12.752500528881836Q12.149999638146973,13.555000228881836,11.250000038146972,14.027500228881836Q10.349999938146972,14.500000228881836,9.329999938146972,14.500000228881836L7.139999938146973,14.500000228881836L7.139999938146973,12.550000228881835ZM7.064999938146973,14.500000228881836Q6.284999968146972,14.500000228881836,5.872500058146973,14.095000228881837Q5.460000038146973,13.689999228881836,5.460000038146973,12.895000428881836L5.460000038146973,4.989999728881836Q5.460000038146973,4.195000648881836,5.872500058146973,3.789999958881836Q6.284999968146972,3.385000228881836,7.064999938146973,3.385000228881836L7.469999838146973,3.385000228881836L7.469999838146973,14.500000228881836L7.064999938146973,14.500000228881836Z" fill="#555555" fill-opacity="1"/></g></g></svg>`;
|
|
19972
|
+
// 斜体
|
|
19973
|
+
const italicSVG = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="18" height="18" viewBox="0 0 18 18"><g><g style="opacity:0;"><rect x="0" y="0" width="18" height="18" rx="0" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M8,3Q7.9015086,3,7.8049095,3.019214718Q7.7083106,3.038429435,7.6173165,3.076120459Q7.5263224,3.11381148,7.4444296,3.16853037Q7.3625371,3.2232492600000002,7.2928932,3.2928932Q7.2232492,3.36253715,7.1685302,3.4444297600000002Q7.1138113999999995,3.52632231,7.0761204,3.61731648Q7.0384293,3.70831072,7.0192146,3.80490965Q6.99999994,3.90150857,7,4Q6.99999994,4.0984913,7.0192146,4.1950902Q7.0384293,4.291689,7.0761204,4.3826833Q7.1138113999999995,4.4736774,7.1685302,4.5555699Q7.2232492,4.6374626,7.2928932,4.7071065999999995Q7.3625371,4.7767504,7.4444296,4.8314693Q7.5263224,4.8861883,7.6173165,4.9238794Q7.7083106,4.9615704,7.8049096,4.9807851Q7.9015086,4.9999999,8,5L9.137146,5L8,13L7,13Q6.90150857,13,6.80490965,13.019215Q6.70831072,13.038429,6.6173164799999995,13.07612Q6.52632231,13.113811,6.44442973,13.16853Q6.36253715,13.223249,6.2928932,13.292892Q6.22324926,13.362536,6.16853037,13.444429Q6.11381148,13.526321,6.076120459,13.617315Q6.038429435,13.708309,6.019214718,13.804909Q6,13.901508,6,14Q6,14.098491,6.019214718,14.195089Q6.038429435,14.291689,6.076120459,14.382683Q6.11381148,14.473677,6.16853037,14.555569Q6.22324926,14.637462,6.2928932,14.707106Q6.36253715,14.77675,6.44442976,14.831469Q6.52632231,14.886187,6.6173164799999995,14.923878Q6.70831072,14.961569,6.80490965,14.980784Q6.90150857,15,7,15L11,15Q11.0984912,15,11.1950898,14.980784Q11.2916889,14.961569,11.382682800000001,14.923878Q11.473677200000001,14.886187,11.5555696,14.831469Q11.6374626,14.77675,11.7071066,14.707106Q11.7767506,14.637462,11.8314691,14.555569Q11.8861876,14.473677,11.9238791,14.382683Q11.9615698,14.291689,11.9807849,14.195089Q12,14.098491,12,14Q12,13.901508,11.9807849,13.804909Q11.9615698,13.708309,11.9238791,13.617315Q11.8861876,13.526321,11.8314691,13.444428Q11.7767506,13.362536,11.7071066,13.292892Q11.6374626,13.223249,11.5555701,13.16853Q11.473677200000001,13.113811,11.382682800000001,13.07612Q11.2916889,13.038429,11.1950903,13.019215Q11.0984912,13,11,13L9.8626451,13L11,5L12,5Q12.0984907,4.9999999,12.1950893,4.9807851Q12.2916884,4.9615703,12.382682800000001,4.9238793Q12.4736767,4.8861883,12.5555696,4.8314693Q12.6374621,4.7767504,12.7071061,4.7071065999999995Q12.776750100000001,4.6374626,12.831468600000001,4.5555699Q12.8861876,4.4736774,12.9238787,4.3826833Q12.9615698,4.291689,12.9807849,4.1950902Q12.999999500000001,4.0984913,13,4Q12.999999500000001,3.90150857,12.980784400000001,3.80490965Q12.9615698,3.70831072,12.9238787,3.61731648Q12.8861876,3.52632231,12.8314691,3.44442973Q12.7767506,3.36253715,12.7071066,3.2928932Q12.6374626,3.2232492600000002,12.5555696,3.16853037Q12.4736767,3.11381148,12.382682800000001,3.076120459Q12.2916884,3.038429435,12.1950898,3.019214718Q12.0984907,3,12,3L8,3Z" fill-rule="evenodd" fill="#555555" fill-opacity="1"/></g></g></svg>`;
|
|
19974
|
+
// 下划线
|
|
19975
|
+
const underlineSVG = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="18" height="18" viewBox="0 0 18 18"><g><g style="opacity:0;"><rect x="0" y="0" width="18" height="18" rx="0" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M5.000117301940918,14.500022450683593L5.000117301940918,14.500022450683593Q5.000117301940918,14.450777450683594,5.009724660740918,14.402477450683593Q5.019332019940918,14.354177450683594,5.038177530940918,14.308679450683593Q5.057023040940918,14.263182450683594,5.084382488940918,14.222236450683594Q5.111741931940918,14.181290450683594,5.146563901940918,14.146469450683593Q5.181385871940918,14.111646450683594,5.222332181940918,14.084286450683594Q5.263278451940918,14.056927450683594,5.308775541940918,14.038082450683595Q5.354272661940918,14.019237450683594,5.402572121940918,14.009630450683593Q5.450871581940918,14.000022450683593,5.500117301940918,14.000022450683593L12.500117301940918,14.000022450683593Q12.549362201940918,14.000022450683593,12.597661501940918,14.009629450683594Q12.645960801940918,14.019237450683594,12.691457701940918,14.038082450683595Q12.736954701940917,14.056926450683594,12.777901601940918,14.084285450683593Q12.818847701940918,14.111645450683593,12.853670101940917,14.146468450683594Q12.888492101940919,14.181289450683593,12.915851601940918,14.222235450683593Q12.943210601940919,14.263181450683593,12.962056201940918,14.308679450683593Q12.980901701940919,14.354177450683594,12.990509501940917,14.402477450683593Q13.00011680194092,14.450777450683594,13.000117301940918,14.500022450683593L13.000117301940918,14.500022450683593Q13.00011680194092,14.549268450683593,12.990509001940918,14.597566450683594Q12.980901701940919,14.645866450683593,12.962056201940918,14.691363450683594Q12.943210601940919,14.736860450683594,12.915851601940918,14.777807450683595Q12.888492101940919,14.818753450683595,12.853670101940917,14.853575450683593Q12.818847701940918,14.888397450683593,12.777901601940918,14.915756450683594Q12.736954701940917,14.943115450683594,12.691457701940918,14.961960450683593Q12.645960801940918,14.980806450683593,12.597661501940918,14.990413450683594Q12.549362201940918,15.000021450683594,12.500117301940918,15.000022450683593L5.500117301940918,15.000022450683593Q5.450871581940918,15.000021450683594,5.402572121940918,14.990414450683593Q5.354272661940918,14.980806450683593,5.308775541940918,14.961960450683593Q5.263278451940918,14.943115450683594,5.222332161940918,14.915756450683594Q5.181385871940918,14.888397450683593,5.146563901940918,14.853574450683594Q5.111741931940918,14.818752450683593,5.084382488940918,14.777806450683594Q5.057023040940918,14.736860450683594,5.038177530940918,14.691363450683594Q5.019332019940918,14.645866450683593,5.009724660740918,14.597567450683593Q5.000117301940918,14.549268450683593,5.000117301940918,14.500022450683593ZM5.045039176940918,3.548906330683594Q5.045039176940918,3.1015625006835936,5.283039211940918,2.8637809706835937Q5.521039131940918,2.6259994506835938,5.969039081940918,2.6259994506835938L5.997039201940918,2.6259994506835938Q6.445039201940918,2.6259994506835938,6.6830393019409176,2.8637809706835937Q6.921039201940918,3.1015625006835936,6.921039201940918,3.548906330683594L6.921039201940918,9.010000250683593Q6.921039201940918,9.737999950683594,7.180039401940919,10.255999550683594Q7.439039201940918,10.774000150683595,7.908039101940918,11.053999950683593Q8.377039001940918,11.333999650683594,8.993039101940917,11.333999650683594Q9.609039301940918,11.333999650683594,10.085039101940918,11.060999850683594Q10.561039401940917,10.788000150683594,10.820039301940918,10.263000450683593Q11.079039101940918,9.737999950683594,11.079039101940918,9.010000250683593L11.079039101940918,3.548906330683594Q11.079039101940918,3.1015625006835936,11.317039501940918,2.8637809706835937Q11.555039401940917,2.6259994506835938,12.003039401940917,2.6259994506835938L12.031039201940917,2.6259994506835938Q12.479039201940918,2.6259994506835938,12.717039101940918,2.8637809706835937Q12.955039001940918,3.1015625006835936,12.955039001940918,3.548906330683594L12.955039001940918,9.010000250683593Q12.955039001940918,10.144000050683594,12.416039501940919,11.095999750683594Q11.877039901940918,12.048000350683594,10.967039101940918,12.600999850683595Q10.057039301940918,13.154000450683593,8.993039101940917,13.154000450683593Q7.929039001940918,13.154000450683593,7.0190392019409185,12.600999850683595Q6.109039201940918,12.048000350683594,5.577039361940918,11.095999750683594Q5.045039176940918,10.144000050683594,5.045039176940918,9.010000250683593L5.045039176940918,3.548906330683594Z" fill="#555555" fill-opacity="1"/></g></g></svg>`;
|
|
19976
|
+
// 更多
|
|
19977
|
+
const moreSVG = `<svg t="1756109058354" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11458" width="18" height="18"><path d="M512 320q-3.150769 0-6.301538-0.315077-3.111385-0.315077-6.183385-0.905846-3.072-0.630154-6.104615-1.536-2.993231-0.905846-5.907693-2.126769-2.914462-1.181538-5.671384-2.678154-2.756923-1.496615-5.395693-3.229539-2.599385-1.732923-5.04123-3.741538-2.441846-1.969231-4.647385-4.214154-2.244923-2.205538-4.214154-4.647385-1.969231-2.441846-3.741538-5.04123-1.732923-2.638769-3.229539-5.395693-1.496615-2.756923-2.678154-5.671384-1.181538-2.914462-2.126769-5.907693-0.905846-3.032615-1.536-6.104615-0.590769-3.072-0.905846-6.222769T448 256q0-3.150769 0.315077-6.301538 0.315077-3.111385 0.905846-6.183385 0.630154-3.072 1.536-6.104615 0.905846-2.993231 2.126769-5.907693 1.181538-2.914462 2.678154-5.671384 1.496615-2.756923 3.229539-5.395693 1.732923-2.599385 3.741538-5.04123 1.969231-2.441846 4.214154-4.647385 2.205538-2.205538 4.647385-4.214154 2.441846-1.969231 5.04123-3.741538 2.638769-1.732923 5.395693-3.229539 2.756923-1.496615 5.671384-2.678154 2.914462-1.181538 5.907693-2.126769 3.032615-0.905846 6.104615-1.536 3.072-0.590769 6.222769-0.905846T512 192q3.150769 0 6.301538 0.315077 3.111385 0.315077 6.183385 0.905846 3.072 0.630154 6.104615 1.536 2.993231 0.905846 5.907693 2.126769 2.914462 1.181538 5.671384 2.678154 2.756923 1.496615 5.395693 3.229539 2.599385 1.732923 5.04123 3.741538 2.441846 1.969231 4.647385 4.214154 2.205538 2.205538 4.214154 4.647385 1.969231 2.441846 3.741538 5.04123 1.732923 2.638769 3.229539 5.395693 1.496615 2.756923 2.678154 5.671384 1.181538 2.914462 2.126769 5.907693 0.905846 3.032615 1.536 6.104615 0.590769 3.072 0.905846 6.222769t0.315077 6.262154q0 3.150769-0.315077 6.301538-0.315077 3.111385-0.905846 6.183385-0.630154 3.072-1.536 6.104615-0.905846 2.993231-2.126769 5.907693-1.181538 2.914462-2.678154 5.671384-1.496615 2.756923-3.229539 5.395693-1.732923 2.599385-3.741538 5.04123-1.969231 2.441846-4.214154 4.647385-2.205538 2.244923-4.647385 4.214154-2.441846 1.969231-5.04123 3.741538-2.638769 1.732923-5.395693 3.229539-2.756923 1.496615-5.671384 2.678154-2.914462 1.181538-5.907693 2.126769-3.032615 0.905846-6.104615 1.536-3.072 0.590769-6.222769 0.905846T512 320z m0 256q-3.150769 0-6.301538-0.315077-3.111385-0.315077-6.183385-0.905846-3.072-0.630154-6.104615-1.536-2.993231-0.905846-5.907693-2.126769-2.914462-1.181538-5.671384-2.678154-2.756923-1.496615-5.395693-3.229539-2.599385-1.732923-5.04123-3.741538-2.441846-1.969231-4.647385-4.214154-2.244923-2.205538-4.214154-4.647385-1.969231-2.441846-3.741538-5.04123-1.732923-2.638769-3.229539-5.395693-1.496615-2.756923-2.678154-5.671384-1.181538-2.914462-2.126769-5.907693-0.905846-3.032615-1.536-6.104615-0.590769-3.072-0.905846-6.222769T448 512q0-3.150769 0.315077-6.301538 0.315077-3.111385 0.905846-6.183385 0.630154-3.072 1.536-6.104615 0.905846-2.993231 2.126769-5.907693 1.181538-2.914462 2.678154-5.671384 1.496615-2.756923 3.229539-5.395693 1.732923-2.599385 3.741538-5.04123 1.969231-2.441846 4.214154-4.647385 2.205538-2.244923 4.647385-4.214154 2.441846-1.969231 5.04123-3.741538 2.638769-1.732923 5.395693-3.229539 2.756923-1.496615 5.671384-2.678154 2.914462-1.181538 5.907693-2.126769 3.032615-0.905846 6.104615-1.536 3.072-0.590769 6.222769-0.905846T512 448q3.150769 0 6.301538 0.315077 3.111385 0.315077 6.183385 0.905846 3.072 0.630154 6.104615 1.536 2.993231 0.905846 5.907693 2.126769 2.914462 1.181538 5.671384 2.678154 2.756923 1.496615 5.395693 3.229539 2.599385 1.732923 5.04123 3.741538 2.441846 1.969231 4.647385 4.214154 2.205538 2.205538 4.214154 4.647385 1.969231 2.441846 3.741538 5.04123 1.732923 2.638769 3.229539 5.395693 1.496615 2.756923 2.678154 5.671384 1.181538 2.914462 2.126769 5.907693 0.905846 3.032615 1.536 6.104615 0.590769 3.072 0.905846 6.222769t0.315077 6.262154q0 3.150769-0.315077 6.301538-0.315077 3.111385-0.905846 6.183385-0.630154 3.072-1.536 6.104615-0.905846 2.993231-2.126769 5.907693-1.181538 2.914462-2.678154 5.671384-1.496615 2.756923-3.229539 5.395693-1.732923 2.599385-3.741538 5.04123-1.969231 2.441846-4.214154 4.647385-2.205538 2.244923-4.647385 4.214154-2.441846 1.969231-5.04123 3.741538-2.638769 1.732923-5.395693 3.229539-2.756923 1.496615-5.671384 2.678154-2.914462 1.181538-5.907693 2.126769-3.032615 0.905846-6.104615 1.536-3.072 0.590769-6.222769 0.905846T512 576z m0 256q-3.150769 0-6.301538-0.315077-3.111385-0.315077-6.183385-0.905846-3.072-0.630154-6.104615-1.536-2.993231-0.905846-5.907693-2.126769-2.914462-1.181538-5.671384-2.678154-2.756923-1.496615-5.395693-3.229539-2.599385-1.732923-5.04123-3.741538-2.441846-1.969231-4.647385-4.214154-2.244923-2.205538-4.214154-4.647385-1.969231-2.441846-3.741538-5.04123-1.732923-2.638769-3.229539-5.395693-1.496615-2.756923-2.678154-5.671384-1.181538-2.914462-2.126769-5.907693-0.905846-3.032615-1.536-6.104615-0.590769-3.072-0.905846-6.222769t-0.315077-6.262154q0-3.150769 0.315077-6.301538 0.315077-3.111385 0.905846-6.183385 0.630154-3.072 1.536-6.104615 0.905846-2.993231 2.126769-5.907693 1.181538-2.914462 2.678154-5.671384 1.496615-2.756923 3.229539-5.395693 1.732923-2.599385 3.741538-5.04123 1.969231-2.441846 4.214154-4.647385 2.205538-2.205538 4.647385-4.214154 2.441846-1.969231 5.04123-3.741538 2.638769-1.732923 5.395693-3.229539 2.756923-1.496615 5.671384-2.678154 2.914462-1.181538 5.907693-2.126769 3.032615-0.905846 6.104615-1.536 3.072-0.590769 6.222769-0.905846T512 704q3.150769 0 6.301538 0.315077 3.111385 0.315077 6.183385 0.905846 3.072 0.630154 6.104615 1.536 2.993231 0.905846 5.907693 2.126769 2.914462 1.181538 5.671384 2.678154 2.756923 1.496615 5.395693 3.229539 2.599385 1.732923 5.04123 3.741538 2.441846 1.969231 4.647385 4.214154 2.205538 2.205538 4.214154 4.647385 1.969231 2.441846 3.741538 5.04123 1.732923 2.638769 3.229539 5.395693 1.496615 2.756923 2.678154 5.671384 1.181538 2.914462 2.126769 5.907693 0.905846 3.032615 1.536 6.104615 0.590769 3.072 0.905846 6.222769t0.315077 6.262154q0 3.150769-0.315077 6.301538-0.315077 3.111385-0.905846 6.183385-0.630154 3.072-1.536 6.104615-0.905846 2.993231-2.126769 5.907693-1.181538 2.914462-2.678154 5.671384-1.496615 2.756923-3.229539 5.395693-1.732923 2.599385-3.741538 5.04123-1.969231 2.441846-4.214154 4.647385-2.205538 2.205538-4.647385 4.214154-2.441846 1.969231-5.04123 3.741538-2.638769 1.732923-5.395693 3.229539-2.756923 1.496615-5.671384 2.678154-2.914462 1.181538-5.907693 2.126769-3.032615 0.905846-6.104615 1.536-3.072 0.590769-6.222769 0.905846T512 832z" p-id="11459" fill="#555555"></path></svg>`;
|
|
19978
|
+
// 链接
|
|
19979
|
+
const linkSVG = `<svg t="1756107950494" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11245" width="18" height="18" style="padding:1px"><path d="M292.693333 564.906667L123.477333 395.648q-55.296-55.338667-54.272-134.4 1.066667-78.336 57.088-134.357333Q182.186667 70.912 260.608 69.845333q79.061333-1.066667 134.4 54.272l194.944 194.986667a40.533333 40.533333 0 0 1 0.938667 0.938667q54.4 55.04 53.333333 133.461333-1.066667 78.336-57.045333 134.357333a42.666667 42.666667 0 1 1-60.330667-60.330666q31.445333-31.488 32.042667-75.178667 0.597333-43.050667-29.269334-72.874667a44.458667 44.458667 0 0 1-0.853333-0.896l-194.133333-194.133333q-72.618667-72.618667-148.053334 2.773333-31.488 31.488-32.085333 75.178667-0.554667 43.050667 29.269333 72.874667l169.258667 169.301333a42.666667 42.666667 0 1 1-60.288 60.330667z m202.538667-69.674667a42.666667 42.666667 0 0 0-60.330667-60.373333q-55.978667 56.021333-57.045333 134.4-1.066667 79.018667 54.272 134.357333a40.362667 40.362667 0 0 0 0.981333 0.938667l1.706667 1.877333 194.986667 194.986667q55.338667 55.296 134.4 54.229333 78.336-1.066667 134.357333-57.045333 55.978667-56.021333 57.045333-134.4 1.066667-79.018667-54.272-134.357334l-169.258666-169.258666a42.666667 42.666667 0 1 0-60.373334 60.330666l169.301334 169.301334q29.866667 29.866667 29.269333 72.874666-0.597333 43.690667-32.042667 75.178667-31.488 31.445333-75.178666 32.042667-43.050667 0.597333-72.874667-29.269334l-194.986667-194.986666a39.68 39.68 0 0 0-0.981333-0.938667 43.52 43.52 0 0 0-1.749333-1.834667q-29.866667-29.866667-29.269334-72.917333 0.554667-43.690667 32.042667-75.136z" p-id="11246" fill="#555555"></path></svg>`;
|
|
19980
|
+
// 撤销
|
|
19981
|
+
const undoSVG = `<svg t="1756107888940" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10819" width="18" height="18"><path d="M220.086857 374.893714l102.473143 102.473143c10.605714 10.642286 28.818286 3.108571 28.818286-11.922286v-77.275428h261.851428l8.009143 0.146286c98.048 3.364571 169.216 68.754286 169.216 160.182857 0 93.952-75.044571 160.365714-177.225143 160.365714H241.883429l-3.437715 0.256a25.307429 25.307429 0 0 0 3.437715 50.395429h371.346285l8.374857-0.146286c124.708571-3.657143 219.501714-90.148571 219.501715-210.834286 0-123.392-99.035429-211.017143-227.876572-211.017143h-261.851428V260.498286a16.896 16.896 0 0 0-28.818286-11.922286L220.086857 351.049143a16.896 16.896 0 0 0 0 23.844571z" p-id="10820" fill="#555555"></path></svg>`;
|
|
19982
|
+
// 重做
|
|
19983
|
+
const redoSVG = `<svg t="1756107908999" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11032" width="18" height="18"><path d="M836.205714 374.893714l-102.473143 102.473143a16.896 16.896 0 0 1-28.818285-11.922286v-77.275428h-261.851429l-8.045714 0.146286c-98.011429 3.364571-169.179429 68.754286-169.179429 160.182857 0 93.952 75.044571 160.365714 177.225143 160.365714h371.346286l3.437714 0.256a25.307429 25.307429 0 0 1-3.437714 50.395429H443.062857l-8.374857-0.146286c-124.708571-3.657143-219.501714-90.148571-219.501714-210.834286 0-123.392 99.035429-211.017143 227.84-211.017143h261.888V260.498286c0-15.030857 18.176-22.564571 28.818285-11.922286l102.473143 102.473143c6.582857 6.582857 6.582857 17.261714 0 23.844571z" p-id="11033" fill="#555555"></path></svg>`;
|
|
19984
|
+
// 图片识别
|
|
19985
|
+
const ocrSVG = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="18" height="18" viewBox="0 0 18 18"><g><g style="opacity:0;"><rect x="0" y="0" width="18" height="18" rx="0" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M3.0000245140625,2.6000244140625L5.5000243140625,2.6000244140625C5.8313951140625,2.6000244140625,6.1000242140625,2.3313953240625,6.1000242140625,2.0000244340625C6.1000242140625,1.6686535440624999,5.8313951140625,1.4000244140625,5.5000243140625,1.4000244140625L3.0000245140625,1.4000244140625Q2.3372827740625,1.4000244140625,1.8686535940625,1.8686535940625Q1.4000244140625,2.3372827740625,1.4000244140625,3.0000245140625L1.4000244140625,5.5000243140625C1.4000244140625,5.8313951140625,1.6686535440624999,6.1000242140625,2.0000244340625,6.1000242140625C2.3313953240625,6.1000242140625,2.6000244140625,5.8313951140625,2.6000244140625,5.5000243140625L2.6000244140625,3.0000245140625Q2.6000244140625,2.6000244140625,3.0000245140625,2.6000244140625ZM12.5000244140625,1.4000244140625L15.0000244140625,1.4000244140625Q15.6627664140625,1.4000244140625,16.1313954140625,1.8686538940625Q16.6000244140625,2.3372834940625,16.6000244140625,3.0000245140625L16.6000244140625,5.5000243140625C16.6000244140625,5.6591539140625,16.5368104140625,5.8117661140625,16.424288414062502,5.9242883140625C16.3117674140625,6.0368099140625,16.1591544140625,6.1000242140625,16.0000244140625,6.1000242140625C15.6686534140625,6.1000242140625,15.4000244140625,5.8313951140625,15.4000244140625,5.5000243140625L15.4000234140625,3.0000245140625Q15.4000234140625,2.6000244140625,15.0000244140625,2.6000244140625L12.5000244140625,2.6000244140625C12.1686534140625,2.6000244140625,11.9000244140625,2.3313953240625,11.9000244140625,2.0000244340625C11.9000244140625,1.6686535440624999,12.1686534140625,1.4000244140625,12.5000244140625,1.4000244140625ZM8.6239776140625,6.4719930140625C8.5439777140625,6.1512432140625,8.3999777140625,5.7421179140625,8.2479777140625,5.4212432140625L9.4959774140625,5.052368214062501C9.6959782140625,5.4293680140625,9.9199772140625,5.9346180140625,9.9999771140625,6.2714929140625L9.3519778140625,6.4719930140625L12.7119784140625,6.4719930140625L12.7119784140625,7.6079931140625L11.5039774140625,7.6079931140625C11.1279774140625,8.6968679140625,10.6159782140625,9.6014929140625,9.9599781140625,10.3461180140625C10.7599773140625,10.9224930140625,11.7279774140625,11.3468685140625,12.8879774140625,11.6029934140625C12.6239774140625,11.8592434140625,12.2799774140625,12.3716184140625,12.1039784140625,12.6918684140625C10.8719778140625,12.3716184140625,9.8719778140625,11.8752434140625,9.0479779140625,11.2107429140625C8.175977714062501,11.8992434140625,7.1199779140625,12.4036184140625,5.8559775140625,12.7558684140625C5.7279777140625,12.4757434140625,5.3759775140625,11.9312434140625,5.1519775140625,11.6591184140625C6.3759775140625,11.3868685140625,7.3839779140625,10.9706182140625,8.1839781140625,10.3781185140625C7.5199776140625,9.6094932140625,7.0079775140625,8.6888685140625,6.5919776140625,7.6079931140625L5.3279776140625,7.6079931140625L5.3279776140625,6.4719930140625L8.6239776140625,6.4719930140625ZM7.7999778140625,7.6079931140625C8.1119776140625,8.344617814062499,8.5359778140625,9.0011186140625,9.0719776140625,9.5694933140625C9.5439777140625,9.0251179140625,9.9199772140625,8.3766184140625,10.1919784140625,7.6079931140625L7.7999778140625,7.6079931140625ZM2.6000244140625,12.5000244140625L2.6000244140625,15.0000244140625Q2.6000244140625,15.4000234140625,3.0000245140625,15.4000234140625L5.5000243140625,15.4000234140625C5.8313951140625,15.4000244140625,6.1000242140625,15.6686534140625,6.1000242140625,16.0000244140625C6.1000242140625,16.3313964140625,5.8313951140625,16.6000254140625,5.5000243140625,16.6000254140625L5.4989548140625,16.6000244140625L3.0000245140625,16.6000244140625Q2.3372834940625,16.6000244140625,1.8686538940625,16.1313954140625Q1.4000244140625,15.6627664140625,1.4000244140625,15.0000244140625L1.4000244140625,12.5000244140625C1.4000244140625,12.1686534140625,1.6686535440624999,11.9000244140625,2.0000244340625,11.9000244140625C2.3313953240625,11.9000244140625,2.6000244140625,12.1686534140625,2.6000244140625,12.5000244140625ZM16.6000244140625,12.5010944140625L16.6000244140625,15.0000244140625Q16.6000244140625,15.6627654140625,16.1313954140625,16.1313954140625Q15.6627654140625,16.6000244140625,15.0000244140625,16.6000244140625L12.5000244140625,16.6000244140625C12.3408944140625,16.6000244140625,12.1882824140625,16.5368104140625,12.0757594140625,16.424288414062502C11.9632384140625,16.3117664140625,11.9000244140625,16.1591544140625,11.9000244140625,16.0000244140625C11.9000244140625,15.6686534140625,12.1686534140625,15.4000244140625,12.5000244140625,15.4000244140625L15.0000244140625,15.4000234140625Q15.4000234140625,15.4000234140625,15.4000234140625,15.0000244140625L15.4000234140625,12.5000244140625C15.4000244140625,12.1686534140625,15.6686534140625,11.9000244140625,16.0000244140625,11.9000244140625C16.3313964140625,11.9000244140625,16.6000254140625,12.1686534140625,16.6000254140625,12.5000244140625L16.6000244140625,12.5010944140625Z" fill-rule="evenodd" fill="#555555" fill-opacity="1"/></g></g></svg>`;
|
|
19986
|
+
// 数学公式
|
|
19987
|
+
const mathSVG = `<svg t="1756107836493" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10608" width="18" height="18"><path d="M877.454222 856.177778q4.835556-4.835556 7.395556-11.093334 2.616889-6.257778 2.616889-13.084444 0-3.413333-0.625778-6.656-0.682667-3.299556-1.991111-6.428444-1.251556-3.072-3.128889-5.859556-1.877333-2.844444-4.266667-5.176889-2.332444-2.389333-5.12-4.266667-2.844444-1.877333-5.916444-3.128888-3.128889-1.308444-6.428445-1.934223-3.299556-0.682667-6.656-0.682666-6.826667 0-13.084444 2.616889-6.257778 2.56-11.036445 7.395555l-54.044444 53.987556H253.155556l325.688888-325.745778q2.389333-2.389333 4.266667-5.12 1.877333-2.844444 3.128889-5.916445 1.308444-3.128889 1.934222-6.428444 0.682667-3.299556 0.682667-6.656 0-3.413333-0.682667-6.656-0.625778-3.299556-1.934222-6.428444-1.251556-3.072-3.128889-5.859556-1.877333-2.844444-4.266667-5.176889L253.155556 162.133333h522.126222l53.930666 53.987556q4.835556 4.835556 11.093334 7.395555 6.257778 2.616889 13.084444 2.616889 3.413333 0 6.656-0.682666 3.299556-0.625778 6.428445-1.934223 3.072-1.251556 5.859555-3.128888 2.844444-1.877333 5.176889-4.266667 2.389333-2.389333 4.266667-5.12 1.877333-2.844444 3.128889-5.916445 1.308444-3.128889 1.934222-6.428444 0.682667-3.299556 0.682667-6.656 0-6.826667-2.616889-13.084444-2.56-6.257778-7.395556-11.036445l-64-64q-4.778667-4.835556-11.036444-7.395555-6.257778-2.616889-13.084445-2.616889H170.666667q-6.826667 0-13.084445 2.616889-6.257778 2.56-11.036444 7.395555-2.389333 2.389333-4.266667 5.12-1.877333 2.844444-3.128889 5.916445-1.308444 3.128889-1.934222 6.428444-0.682667 3.299556-0.682667 6.656 0 3.413333 0.682667 6.656 0.625778 3.299556 1.934222 6.428444 1.251556 3.072 3.128889 5.859556 1.877333 2.844444 4.266667 5.176889L506.311111 512l-359.822222 359.879111q-4.835556 4.778667-7.395556 11.036445-2.616889 6.257778-2.616889 13.084444 0 3.413333 0.682667 6.656 0.625778 3.299556 1.934222 6.428444 1.251556 3.072 3.128889 5.859556 1.877333 2.844444 4.266667 5.176889 2.389333 2.389333 5.12 4.266667 2.844444 1.877333 5.916444 3.128888 3.128889 1.308444 6.428445 1.991112 3.299556 0.625778 6.656 0.625777h618.666666q6.826667 0 13.084445-2.616889 6.257778-2.56 11.036444-7.395555l64-63.943111z" p-id="10609" fill="#555555"></path></svg>`;
|
|
19988
|
+
// 无序列表
|
|
19989
|
+
const listBulletSVG = `<svg viewbox="0 0 18 18"><line class="ql-stroke" x1="6" x2="15" y1="4" y2="4"/><line class="ql-stroke" x1="6" x2="15" y1="9" y2="9"/><line class="ql-stroke" x1="6" x2="15" y1="14" y2="14"/><line class="ql-stroke" x1="3" x2="3" y1="4" y2="4"/><line class="ql-stroke" x1="3" x2="3" y1="9" y2="9"/><line class="ql-stroke" x1="3" x2="3" y1="14" y2="14"/></svg>`;
|
|
19990
|
+
// 有序列表
|
|
19991
|
+
const listOrderedSVG = `<svg viewbox="0 0 18 18"><line class="ql-stroke" x1="7" x2="15" y1="4" y2="4"/><line class="ql-stroke" x1="7" x2="15" y1="9" y2="9"/><line class="ql-stroke" x1="7" x2="15" y1="14" y2="14"/><line class="ql-stroke ql-thin" x1="2.5" x2="4.5" y1="5.5" y2="5.5"/><path class="ql-fill" d="M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z"/><path class="ql-stroke ql-thin" d="M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156"/><path class="ql-stroke ql-thin" d="M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109"/></svg>`;
|
|
19992
|
+
// 图片
|
|
19993
|
+
const imageSVG = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="18" height="18" viewBox="0 0 18 18"><g><g style="opacity:0;"><rect x="0" y="0" width="18" height="18" rx="0" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M1.87471507,3.83578219Q1.5,4.18540478,1.5,4.6875L1.5,14.312503Q1.50000006,14.814598,1.874716,15.16422Q2.23459671,15.5,2.73684216,15.5L15.263157,15.5Q15.765403,15.5,16.125284,15.164218Q16.499999000000003,14.814597,16.499999000000003,14.312501L16.499999000000003,4.6875Q16.499999000000003,4.18540342,16.125284999999998,3.83578214Q15.765404,3.5,15.263157,3.5L2.73684216,3.5Q2.23459646,3.5,1.87471507,3.83578219ZM2.5,14.312503L2.5,4.6875Q2.5,4.5,2.73684216,4.5L15.263157,4.5Q15.5,4.5,15.5,4.6875L15.5,14.312501Q15.5,14.5,15.263157,14.5L2.73684216,14.5Q2.5,14.5,2.5,14.312503Z" fill-rule="evenodd" fill="#555555" fill-opacity="1" style="mix-blend-mode:passthrough"/></g><g><ellipse cx="5.4375" cy="7.4375" rx="0.4375" ry="0.4375" fill-opacity="0" stroke-opacity="1" stroke="#555555" fill="none" stroke-width="1" stroke-linecap="ROUND" stroke-linejoin="round" style="mix-blend-mode:passthrough"/></g><g><path d="M5.9053998,9.924615948146972L1.7143693,12.841608238146973Q1.61364189,12.911715538146973,1.55682093,13.020492338146973Q1.5,13.129269138146974,1.5,13.251992238146972L1.50000003,14.418008338146972Q1.50000003,14.876594038146973,1.84130602,15.195924738146973Q2.16843581,15.501991738146973,2.62437022,15.501991738146973L15.375628,15.501991738146973Q15.831564,15.501991738146973,16.158693,15.195924738146973Q16.5,14.876594038146973,16.5,14.418007838146973L16.5,13.251992238146972Q16.500000999999997,13.186988838146974,16.48338,13.124146438146973Q16.466759,13.061303638146972,16.434621,13.004799838146972Q16.402485,12.948296338146973,16.356969,12.901887938146972Q16.311453,12.855479738146972,16.255583,12.822251838146972L9.8796926,9.030259398146972Q9.842938400000001,9.008400078146973,9.8030057,8.993099628146974Q9.763073,8.977799118146972,9.721121799999999,8.969501908146972Q9.6791716,8.961204618146972,9.6364217,8.960151608146973Q9.5936708,8.959098578146973,9.551362000000001,8.965320438146973Q9.5090542,8.971542238146972,9.4684162,8.984858218146973Q9.427778199999999,8.998174158146973,9.3899918,9.018197478146973Q9.352206200000001,9.038220708146973,9.3183689,9.064369648146972Q9.284532500000001,9.090518598146973,9.2556267,9.122033748146972L7.6887164,10.830422738146973L6.4904227,9.934544588146972Q6.4273362,9.887379288146972,6.3528042,9.861893948146973Q6.2782726,9.836408678146972,6.1995153,9.835072038146972Q6.1207581,9.833735408146973,6.045404,9.856676968146973Q5.9700503000000005,9.879618528146972,5.9053998,9.924615948146972ZM2.5,13.513173138146973L2.50000006,14.418008338146972Q2.50000006,14.501992238146972,2.62437022,14.501992238146972L15.375628,14.501992238146972Q15.5,14.501992238146972,15.5,14.418007838146973L15.5,13.536368338146973L9.7178593,10.097503488146973L8.1200023,11.839632738146973Q8.0888524,11.873595438146973,8.052019600000001,11.901292338146973Q8.0151863,11.928988938146972,7.9739118,11.949486538146973Q7.9326363,11.969984038146972,7.88831,11.982591638146973Q7.8439837,11.995199238146974,7.7980995,11.999492138146973Q7.7522154,12.003785338146972,7.7063198,11.999619238146973Q7.6604242,11.995453338146973,7.6160631,11.982968338146973Q7.571702,11.970483338146973,7.5303702,11.950099938146973Q7.4890385,11.929716538146973,7.4521289,11.902122038146972L6.1805682,10.951467238146973L2.5,13.513173138146973Z" fill-rule="evenodd" fill="#555555" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></svg>`;
|
|
19994
|
+
|
|
19995
|
+
const MoreTools = vue.defineComponent({
|
|
19996
|
+
name: 'MoreTools',
|
|
19997
|
+
props: {
|
|
19998
|
+
// 传入toolbar的自定义style
|
|
19999
|
+
toolbarStyle: {
|
|
20000
|
+
type: Object,
|
|
20001
|
+
required: false,
|
|
20002
|
+
default: () => ({})
|
|
20003
|
+
},
|
|
20004
|
+
needCollapse: {
|
|
20005
|
+
type: Boolean,
|
|
20006
|
+
default: false
|
|
20007
|
+
},
|
|
20008
|
+
onToolClick: {
|
|
20009
|
+
type: Function,
|
|
20010
|
+
required: true
|
|
20011
|
+
}
|
|
20012
|
+
},
|
|
20013
|
+
setup(props) {
|
|
20014
|
+
// 渲染工具按钮
|
|
20015
|
+
const renderToolButton = (tool) => {
|
|
20016
|
+
if (typeof tool === 'string') {
|
|
20017
|
+
// 根据工具名称获取对应的SVG图标
|
|
20018
|
+
let iconSVG = '';
|
|
20019
|
+
switch (tool) {
|
|
20020
|
+
case 'image':
|
|
20021
|
+
iconSVG = imageSVG;
|
|
20022
|
+
break;
|
|
20023
|
+
case 'undo':
|
|
20024
|
+
iconSVG = undoSVG;
|
|
20025
|
+
break;
|
|
20026
|
+
case 'redo':
|
|
20027
|
+
iconSVG = redoSVG;
|
|
20028
|
+
break;
|
|
20029
|
+
case 'ocr':
|
|
20030
|
+
iconSVG = ocrSVG;
|
|
20031
|
+
break;
|
|
20032
|
+
case 'math':
|
|
20033
|
+
iconSVG = mathSVG;
|
|
20034
|
+
break;
|
|
20035
|
+
default:
|
|
20036
|
+
iconSVG = '';
|
|
20037
|
+
}
|
|
20038
|
+
return vue.h('button', {
|
|
20039
|
+
class: `ql-${tool}`,
|
|
20040
|
+
type: 'button',
|
|
20041
|
+
onClick: () => props.onToolClick(tool)
|
|
20042
|
+
}, [
|
|
20043
|
+
iconSVG ? vue.h('span', { innerHTML: iconSVG }) : null
|
|
20044
|
+
]);
|
|
20045
|
+
}
|
|
20046
|
+
else if (typeof tool === 'object' && tool !== null) {
|
|
20047
|
+
const toolName = Object.keys(tool)[0];
|
|
20048
|
+
const toolValue = Object.values(tool)[0];
|
|
20049
|
+
let iconSVG = '';
|
|
20050
|
+
if (toolName === 'list') {
|
|
20051
|
+
iconSVG = toolValue === 'ordered' ? listOrderedSVG : listBulletSVG;
|
|
20052
|
+
}
|
|
20053
|
+
return vue.h('button', {
|
|
20054
|
+
class: `ql-${toolName}`,
|
|
20055
|
+
'data-value': toolValue,
|
|
20056
|
+
type: 'button',
|
|
20057
|
+
onClick: () => props.onToolClick(`${toolName}-${toolValue}`)
|
|
20058
|
+
}, [
|
|
20059
|
+
iconSVG ? vue.h('span', { innerHTML: iconSVG }) : null
|
|
20060
|
+
]);
|
|
20061
|
+
}
|
|
20062
|
+
return null;
|
|
20063
|
+
};
|
|
20064
|
+
// 渲染工具组
|
|
20065
|
+
const renderToolGroup = (tools) => {
|
|
20066
|
+
return vue.h('span', {
|
|
20067
|
+
class: 'ql-formats'
|
|
20068
|
+
}, tools.map(tool => renderToolButton(tool)));
|
|
20069
|
+
};
|
|
20070
|
+
return () => vue.h('div', {
|
|
20071
|
+
class: 'ql-toolbar ql-snow more-tools',
|
|
20072
|
+
style: props.toolbarStyle
|
|
20073
|
+
}, [
|
|
20074
|
+
vue.h('div', {
|
|
20075
|
+
class: 'more-tools-item'
|
|
20076
|
+
}, [
|
|
20077
|
+
// 渲染所有工具组
|
|
20078
|
+
...toolbarOptions.extend.map(toolGroup => renderToolGroup(toolGroup)),
|
|
20079
|
+
]),
|
|
20080
|
+
vue.h('div', {}, [
|
|
20081
|
+
renderToolGroup(['ocr'])
|
|
20082
|
+
])
|
|
20083
|
+
]);
|
|
20084
|
+
}
|
|
20085
|
+
});
|
|
20086
|
+
|
|
19966
20087
|
const QuillEditor = vue.defineComponent({
|
|
19967
20088
|
name: 'QuillEditor',
|
|
19968
20089
|
inheritAttrs: false,
|
|
@@ -20006,6 +20127,22 @@
|
|
|
20006
20127
|
return ['fixed-top', 'embedded'].includes(value);
|
|
20007
20128
|
},
|
|
20008
20129
|
},
|
|
20130
|
+
needCollapse: {
|
|
20131
|
+
type: Boolean,
|
|
20132
|
+
default: true,
|
|
20133
|
+
},
|
|
20134
|
+
// 传入toolbar的自定义style
|
|
20135
|
+
toolbarStyle: {
|
|
20136
|
+
type: Object,
|
|
20137
|
+
required: false,
|
|
20138
|
+
default: () => ({})
|
|
20139
|
+
},
|
|
20140
|
+
// 编辑器输入内容的自定义style
|
|
20141
|
+
editorStyle: {
|
|
20142
|
+
type: Object,
|
|
20143
|
+
required: false,
|
|
20144
|
+
default: () => ({})
|
|
20145
|
+
},
|
|
20009
20146
|
theme: {
|
|
20010
20147
|
type: String,
|
|
20011
20148
|
default: 'snow',
|
|
@@ -20067,41 +20204,55 @@
|
|
|
20067
20204
|
let quill;
|
|
20068
20205
|
let options;
|
|
20069
20206
|
const editor = vue.ref();
|
|
20207
|
+
const showMoreToolbar = vue.ref(false);
|
|
20070
20208
|
const editorWrapClass = vue.computed(() => {
|
|
20071
20209
|
return {
|
|
20072
20210
|
'quill-editor-container': true,
|
|
20073
20211
|
'need-border': props.needBorder,
|
|
20212
|
+
'more-toolbar': showMoreToolbar.value,
|
|
20074
20213
|
'fixed-top': props.toolbarMode === 'fixed-top',
|
|
20075
20214
|
'embedded': props.toolbarMode === 'embedded',
|
|
20076
20215
|
};
|
|
20077
20216
|
});
|
|
20078
|
-
//
|
|
20079
|
-
const
|
|
20080
|
-
|
|
20081
|
-
|
|
20217
|
+
// 应用自定义toolbar样式,目前通过改dom的形式,因为h函数没有暴露更深的dom,无法绑定真正的toolbar
|
|
20218
|
+
const applyToolbarStyle = () => {
|
|
20219
|
+
var _a;
|
|
20220
|
+
if (quill && props.toolbarStyle) {
|
|
20221
|
+
const toolbar = (_a = quill.getModule('toolbar')) === null || _a === void 0 ? void 0 : _a.container;
|
|
20222
|
+
if (toolbar) {
|
|
20223
|
+
Object.assign(toolbar.style, props.toolbarStyle);
|
|
20224
|
+
}
|
|
20225
|
+
}
|
|
20226
|
+
};
|
|
20227
|
+
// 应用自定义editor样式,目前通过改dom的形式,因为h函数没有暴露更深的dom,无法绑定真正的editor
|
|
20228
|
+
const applyEditorStyle = () => {
|
|
20229
|
+
var _a;
|
|
20230
|
+
if (quill && props.editorStyle) {
|
|
20231
|
+
const editorElement = (_a = editor.value) === null || _a === void 0 ? void 0 : _a.querySelector('.ql-editor');
|
|
20082
20232
|
if (editorElement) {
|
|
20083
|
-
editorElement.style
|
|
20233
|
+
Object.assign(editorElement.style, props.editorStyle);
|
|
20084
20234
|
}
|
|
20085
20235
|
}
|
|
20086
20236
|
};
|
|
20087
|
-
// 监听
|
|
20088
|
-
vue.watch(() => props.
|
|
20237
|
+
// 监听 toolbarStyle 变化
|
|
20238
|
+
vue.watch(() => props.toolbarStyle, () => {
|
|
20239
|
+
vue.nextTick(() => {
|
|
20240
|
+
applyToolbarStyle();
|
|
20241
|
+
});
|
|
20242
|
+
});
|
|
20243
|
+
// 监听 editorStyle 变化
|
|
20244
|
+
vue.watch(() => props.editorStyle, () => {
|
|
20089
20245
|
vue.nextTick(() => {
|
|
20090
|
-
|
|
20246
|
+
applyEditorStyle();
|
|
20091
20247
|
});
|
|
20092
20248
|
});
|
|
20093
|
-
// Register Module if not already registered
|
|
20094
20249
|
const registerModule = (moduleName, module) => {
|
|
20095
|
-
// For Quill 1.x, we can't check if module is already registered
|
|
20096
|
-
// So we'll just register it directly
|
|
20097
20250
|
Quill.register(moduleName, module);
|
|
20098
20251
|
};
|
|
20099
|
-
// Initialize Quill
|
|
20100
20252
|
const initialize = () => {
|
|
20101
20253
|
var _a, _b;
|
|
20102
20254
|
if (!editor.value)
|
|
20103
20255
|
return;
|
|
20104
|
-
// Create new Quill instance
|
|
20105
20256
|
quill = new Quill(editor.value, options);
|
|
20106
20257
|
// 初始隐藏toolbar
|
|
20107
20258
|
const toolbar = (_a = quill === null || quill === void 0 ? void 0 : quill.getModule('toolbar')) === null || _a === void 0 ? void 0 : _a.container;
|
|
@@ -20109,10 +20260,17 @@
|
|
|
20109
20260
|
toolbar.style.display = 'none';
|
|
20110
20261
|
}
|
|
20111
20262
|
const icons = Quill.import('ui/icons');
|
|
20112
|
-
icons['
|
|
20113
|
-
icons['
|
|
20263
|
+
icons['bold'] = boldSVG;
|
|
20264
|
+
icons['italic'] = italicSVG;
|
|
20265
|
+
icons['underline'] = underlineSVG;
|
|
20266
|
+
icons['more'] = moreSVG;
|
|
20267
|
+
icons['link'] = linkSVG;
|
|
20268
|
+
icons['undo'] = undoSVG;
|
|
20269
|
+
icons['redo'] = redoSVG;
|
|
20270
|
+
icons['ocr'] = ocrSVG;
|
|
20271
|
+
icons['math'] = mathSVG;
|
|
20272
|
+
icons['image'] = imageSVG;
|
|
20114
20273
|
options = composeOptions();
|
|
20115
|
-
// Register modules
|
|
20116
20274
|
if (props.modules) {
|
|
20117
20275
|
if (Array.isArray(props.modules)) {
|
|
20118
20276
|
for (const module of props.modules) {
|
|
@@ -20123,27 +20281,23 @@
|
|
|
20123
20281
|
registerModule(`modules/${props.modules.name}`, props.modules.module);
|
|
20124
20282
|
}
|
|
20125
20283
|
}
|
|
20126
|
-
// Create new Quill instance
|
|
20127
20284
|
quill = new Quill(editor.value, options);
|
|
20128
|
-
// Set editor content
|
|
20129
20285
|
setContents(props.content);
|
|
20130
|
-
// Set event handlers
|
|
20131
20286
|
quill.on('text-change', handleTextChange);
|
|
20132
20287
|
quill.on('selection-change', handleSelectionChange);
|
|
20133
20288
|
quill.on('editor-change', handleEditorChange);
|
|
20134
|
-
// Remove editor class when theme changes
|
|
20135
20289
|
if (props.theme !== 'bubble')
|
|
20136
20290
|
editor.value.classList.remove('ql-bubble');
|
|
20137
20291
|
if (props.theme !== 'snow')
|
|
20138
20292
|
editor.value.classList.remove('ql-snow');
|
|
20139
|
-
// Fix clicking the quill toolbar is detected as blur event
|
|
20140
20293
|
(_b = quill
|
|
20141
20294
|
.getModule('toolbar')) === null || _b === void 0 ? void 0 : _b.container.addEventListener('mousedown', (e) => {
|
|
20142
20295
|
e.preventDefault();
|
|
20143
20296
|
});
|
|
20144
|
-
//
|
|
20145
|
-
|
|
20146
|
-
//
|
|
20297
|
+
// 应用初始toolbar样式
|
|
20298
|
+
applyToolbarStyle();
|
|
20299
|
+
// 应用初始editor样式
|
|
20300
|
+
applyEditorStyle();
|
|
20147
20301
|
ctx.emit('ready', quill);
|
|
20148
20302
|
};
|
|
20149
20303
|
// Compose Options
|
|
@@ -20158,21 +20312,32 @@
|
|
|
20158
20312
|
if (props.toolbar && props.toolbar !== '') {
|
|
20159
20313
|
clientOptions.modules = {
|
|
20160
20314
|
toolbar: {
|
|
20161
|
-
|
|
20315
|
+
// 需要展开的话显示完整的工具栏
|
|
20316
|
+
container: props.needCollapse ? [
|
|
20162
20317
|
...toolbarOptions.full,
|
|
20163
|
-
|
|
20164
|
-
|
|
20318
|
+
] : [
|
|
20319
|
+
...toolbarOptions.short,
|
|
20165
20320
|
],
|
|
20166
20321
|
handlers: {
|
|
20322
|
+
redo: function () {
|
|
20323
|
+
var _a;
|
|
20324
|
+
(_a = quill === null || quill === void 0 ? void 0 : quill.getModule('history')) === null || _a === void 0 ? void 0 : _a.redo();
|
|
20325
|
+
},
|
|
20326
|
+
undo: function () {
|
|
20327
|
+
var _a;
|
|
20328
|
+
(_a = quill === null || quill === void 0 ? void 0 : quill.getModule('history')) === null || _a === void 0 ? void 0 : _a.undo();
|
|
20329
|
+
},
|
|
20167
20330
|
ocr: function () {
|
|
20168
20331
|
// 按钮点击逻辑
|
|
20169
|
-
console.log('ocr');
|
|
20170
20332
|
ctx.emit('ocr');
|
|
20171
20333
|
},
|
|
20172
20334
|
math: function () {
|
|
20173
20335
|
// 按钮点击逻辑
|
|
20174
20336
|
ctx.emit('math');
|
|
20175
20337
|
},
|
|
20338
|
+
more: function () {
|
|
20339
|
+
showMoreToolbar.value = !showMoreToolbar.value;
|
|
20340
|
+
}
|
|
20176
20341
|
},
|
|
20177
20342
|
},
|
|
20178
20343
|
};
|
|
@@ -20201,7 +20366,6 @@
|
|
|
20201
20366
|
const deltaHasValuesOtherThanRetain = (delta) => {
|
|
20202
20367
|
return Object.values(delta.ops).some((v) => !v.retain || Object.keys(v).length !== 1);
|
|
20203
20368
|
};
|
|
20204
|
-
// Doesn't need reactivity, but does need to be cloned to avoid deep mutations always registering as equal
|
|
20205
20369
|
let internalModel;
|
|
20206
20370
|
const internalModelEquals = (against) => {
|
|
20207
20371
|
if (typeof internalModel === typeof against) {
|
|
@@ -20229,21 +20393,15 @@
|
|
|
20229
20393
|
const isEditorFocus = vue.ref();
|
|
20230
20394
|
const handleSelectionChange = (range, oldRange, source) => {
|
|
20231
20395
|
var _a;
|
|
20232
|
-
console.log("----------------------------------");
|
|
20233
|
-
console.log(range);
|
|
20234
|
-
console.log(oldRange);
|
|
20235
|
-
console.log(source);
|
|
20236
|
-
// Set isEditorFocus if quill.hasFocus()
|
|
20237
20396
|
isEditorFocus.value = !!(quill === null || quill === void 0 ? void 0 : quill.hasFocus());
|
|
20238
|
-
console.log(isEditorFocus.value);
|
|
20239
|
-
console.log("----------------------------------");
|
|
20240
20397
|
// 动态显示/隐藏toolbar
|
|
20241
20398
|
const toolbar = (_a = quill === null || quill === void 0 ? void 0 : quill.getModule('toolbar')) === null || _a === void 0 ? void 0 : _a.container;
|
|
20242
20399
|
if (toolbar) {
|
|
20243
20400
|
if (isEditorFocus.value) {
|
|
20244
|
-
toolbar.style.display = '
|
|
20401
|
+
toolbar.style.display = 'block';
|
|
20245
20402
|
}
|
|
20246
20403
|
else {
|
|
20404
|
+
showMoreToolbar.value = false;
|
|
20247
20405
|
toolbar.style.display = 'none';
|
|
20248
20406
|
}
|
|
20249
20407
|
}
|
|
@@ -20346,7 +20504,6 @@
|
|
|
20346
20504
|
vue.watch(() => props.content, (newContent) => {
|
|
20347
20505
|
if (!quill || !newContent || internalModelEquals(newContent))
|
|
20348
20506
|
return;
|
|
20349
|
-
// Restore the selection and cursor position after updating the content
|
|
20350
20507
|
const selection = quill.getSelection();
|
|
20351
20508
|
if (selection) {
|
|
20352
20509
|
vue.nextTick(() => quill === null || quill === void 0 ? void 0 : quill.setSelection(selection));
|
|
@@ -20372,14 +20529,36 @@
|
|
|
20372
20529
|
setText,
|
|
20373
20530
|
reinit,
|
|
20374
20531
|
editorWrapClass,
|
|
20532
|
+
showMoreToolbar,
|
|
20375
20533
|
};
|
|
20376
20534
|
},
|
|
20377
20535
|
render() {
|
|
20378
|
-
var _a, _b;
|
|
20379
20536
|
return [
|
|
20380
20537
|
vue.h('div', { class: this.editorWrapClass }, [
|
|
20381
|
-
|
|
20382
|
-
|
|
20538
|
+
// this.$slots.toolbar?.(), // 工具栏内容固定
|
|
20539
|
+
// 当 needCollapse 为 false 时,显示 MoreTools 组件
|
|
20540
|
+
this.showMoreToolbar && vue.h(MoreTools, {
|
|
20541
|
+
needCollapse: this.needCollapse,
|
|
20542
|
+
toolbarStyle: this.$props.toolbarStyle,
|
|
20543
|
+
onToolClick: (tool) => {
|
|
20544
|
+
var _a, _b, _c, _d;
|
|
20545
|
+
if (tool === 'undo') {
|
|
20546
|
+
(_b = (_a = this.getQuill()) === null || _a === void 0 ? void 0 : _a.getModule('history')) === null || _b === void 0 ? void 0 : _b.undo();
|
|
20547
|
+
}
|
|
20548
|
+
else if (tool === 'redo') {
|
|
20549
|
+
(_d = (_c = this.getQuill()) === null || _c === void 0 ? void 0 : _c.getModule('history')) === null || _d === void 0 ? void 0 : _d.redo();
|
|
20550
|
+
}
|
|
20551
|
+
else if (tool === 'ocr') {
|
|
20552
|
+
this.$emit('ocr');
|
|
20553
|
+
}
|
|
20554
|
+
else if (tool === 'math') {
|
|
20555
|
+
this.$emit('math');
|
|
20556
|
+
}
|
|
20557
|
+
}
|
|
20558
|
+
}),
|
|
20559
|
+
vue.h('div', {
|
|
20560
|
+
ref: 'editor', ...this.$attrs
|
|
20561
|
+
}),
|
|
20383
20562
|
]),
|
|
20384
20563
|
];
|
|
20385
20564
|
},
|