pxx-vue-quill 1.0.17 → 1.0.19
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 +221 -50
- package/dist/vue-quill.cjs.prod.js +2 -2
- package/dist/vue-quill.esm-browser.js +408 -237
- package/dist/vue-quill.esm-browser.prod.js +2 -2
- package/dist/vue-quill.esm-bundler.js +222 -51
- package/dist/vue-quill.esm-bundler.prod.js +2 -2
- package/dist/vue-quill.global.js +491 -320
- package/dist/vue-quill.global.prod.js +2 -2
- package/dist/vue-quill.snow.css +50 -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 = {};
|
|
@@ -19130,182 +19142,190 @@
|
|
|
19130
19142
|
return AlignAction;
|
|
19131
19143
|
}
|
|
19132
19144
|
|
|
19133
|
-
var ResizeAction
|
|
19145
|
+
var ResizeAction = {};
|
|
19134
19146
|
|
|
19135
|
-
|
|
19136
|
-
value: true
|
|
19137
|
-
});
|
|
19147
|
+
var hasRequiredResizeAction;
|
|
19138
19148
|
|
|
19139
|
-
|
|
19149
|
+
function requireResizeAction () {
|
|
19150
|
+
if (hasRequiredResizeAction) return ResizeAction;
|
|
19151
|
+
hasRequiredResizeAction = 1;
|
|
19140
19152
|
|
|
19141
|
-
|
|
19153
|
+
Object.defineProperty(ResizeAction, "__esModule", {
|
|
19154
|
+
value: true
|
|
19155
|
+
});
|
|
19142
19156
|
|
|
19143
|
-
|
|
19157
|
+
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; }; }();
|
|
19144
19158
|
|
|
19145
|
-
|
|
19159
|
+
var _Action2 = requireAction();
|
|
19146
19160
|
|
|
19147
|
-
|
|
19161
|
+
var _Action3 = _interopRequireDefault(_Action2);
|
|
19148
19162
|
|
|
19149
|
-
|
|
19163
|
+
var _BlotFormatter = requireBlotFormatter();
|
|
19150
19164
|
|
|
19151
|
-
|
|
19165
|
+
_interopRequireDefault(_BlotFormatter);
|
|
19152
19166
|
|
|
19153
|
-
|
|
19167
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19154
19168
|
|
|
19155
|
-
|
|
19169
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
19156
19170
|
|
|
19157
|
-
|
|
19158
|
-
_inherits(ResizeAction, _Action);
|
|
19171
|
+
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; }
|
|
19159
19172
|
|
|
19160
|
-
|
|
19161
|
-
_classCallCheck(this, ResizeAction);
|
|
19173
|
+
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; }
|
|
19162
19174
|
|
|
19163
|
-
|
|
19175
|
+
var ResizeAction$1 = function (_Action) {
|
|
19176
|
+
_inherits(ResizeAction, _Action);
|
|
19164
19177
|
|
|
19165
|
-
|
|
19166
|
-
|
|
19167
|
-
return;
|
|
19168
|
-
}
|
|
19169
|
-
_this.dragHandle = event.target;
|
|
19170
|
-
_this.setCursor(_this.dragHandle.style.cursor);
|
|
19178
|
+
function ResizeAction(formatter) {
|
|
19179
|
+
_classCallCheck(this, ResizeAction);
|
|
19171
19180
|
|
|
19172
|
-
|
|
19173
|
-
return;
|
|
19174
|
-
}
|
|
19181
|
+
var _this = _possibleConstructorReturn(this, (ResizeAction.__proto__ || Object.getPrototypeOf(ResizeAction)).call(this, formatter));
|
|
19175
19182
|
|
|
19176
|
-
|
|
19177
|
-
|
|
19178
|
-
|
|
19179
|
-
|
|
19183
|
+
_this.onMouseDown = function (event) {
|
|
19184
|
+
if (!(event.target instanceof HTMLElement)) {
|
|
19185
|
+
return;
|
|
19186
|
+
}
|
|
19187
|
+
_this.dragHandle = event.target;
|
|
19188
|
+
_this.setCursor(_this.dragHandle.style.cursor);
|
|
19180
19189
|
|
|
19181
|
-
|
|
19190
|
+
if (!_this.formatter.currentSpec) {
|
|
19191
|
+
return;
|
|
19192
|
+
}
|
|
19182
19193
|
|
|
19183
|
-
|
|
19184
|
-
|
|
19185
|
-
|
|
19194
|
+
var target = _this.formatter.currentSpec.getTargetElement();
|
|
19195
|
+
if (!target) {
|
|
19196
|
+
return;
|
|
19197
|
+
}
|
|
19186
19198
|
|
|
19187
|
-
|
|
19188
|
-
document.addEventListener('mouseup', _this.onMouseUp);
|
|
19189
|
-
};
|
|
19199
|
+
var rect = target.getBoundingClientRect();
|
|
19190
19200
|
|
|
19191
|
-
|
|
19192
|
-
|
|
19193
|
-
|
|
19194
|
-
}
|
|
19201
|
+
_this.dragStartX = event.clientX;
|
|
19202
|
+
_this.preDragWidth = rect.width;
|
|
19203
|
+
_this.targetRatio = rect.height / rect.width;
|
|
19195
19204
|
|
|
19196
|
-
|
|
19197
|
-
|
|
19198
|
-
|
|
19199
|
-
}
|
|
19205
|
+
document.addEventListener('mousemove', _this.onDrag);
|
|
19206
|
+
document.addEventListener('mouseup', _this.onMouseUp);
|
|
19207
|
+
};
|
|
19200
19208
|
|
|
19201
|
-
|
|
19202
|
-
|
|
19209
|
+
_this.onDrag = function (event) {
|
|
19210
|
+
if (!_this.formatter.currentSpec) {
|
|
19211
|
+
return;
|
|
19212
|
+
}
|
|
19203
19213
|
|
|
19204
|
-
|
|
19205
|
-
|
|
19206
|
-
|
|
19207
|
-
|
|
19208
|
-
}
|
|
19214
|
+
var target = _this.formatter.currentSpec.getTargetElement();
|
|
19215
|
+
if (!target) {
|
|
19216
|
+
return;
|
|
19217
|
+
}
|
|
19209
19218
|
|
|
19210
|
-
|
|
19219
|
+
var deltaX = event.clientX - _this.dragStartX;
|
|
19220
|
+
var newWidth = 0;
|
|
19211
19221
|
|
|
19212
|
-
|
|
19213
|
-
|
|
19222
|
+
if (_this.dragHandle === _this.topLeftHandle || _this.dragHandle === _this.bottomLeftHandle) {
|
|
19223
|
+
newWidth = Math.round(_this.preDragWidth - deltaX);
|
|
19224
|
+
} else {
|
|
19225
|
+
newWidth = Math.round(_this.preDragWidth + deltaX);
|
|
19226
|
+
}
|
|
19214
19227
|
|
|
19215
|
-
|
|
19216
|
-
};
|
|
19228
|
+
var newHeight = _this.targetRatio * newWidth;
|
|
19217
19229
|
|
|
19218
|
-
|
|
19219
|
-
|
|
19220
|
-
document.removeEventListener('mousemove', _this.onDrag);
|
|
19221
|
-
document.removeEventListener('mouseup', _this.onMouseUp);
|
|
19222
|
-
};
|
|
19230
|
+
target.setAttribute('width', '' + newWidth);
|
|
19231
|
+
target.setAttribute('height', '' + newHeight);
|
|
19223
19232
|
|
|
19224
|
-
|
|
19225
|
-
|
|
19226
|
-
_this.bottomRightHandle = _this.createHandle('bottom-right', 'nwse-resize');
|
|
19227
|
-
_this.bottomLeftHandle = _this.createHandle('bottom-left', 'nesw-resize');
|
|
19228
|
-
_this.dragHandle = null;
|
|
19229
|
-
_this.dragStartX = 0;
|
|
19230
|
-
_this.preDragWidth = 0;
|
|
19231
|
-
_this.targetRatio = 0;
|
|
19232
|
-
return _this;
|
|
19233
|
-
}
|
|
19233
|
+
_this.formatter.update();
|
|
19234
|
+
};
|
|
19234
19235
|
|
|
19235
|
-
|
|
19236
|
-
|
|
19237
|
-
|
|
19238
|
-
|
|
19239
|
-
|
|
19240
|
-
this.formatter.overlay.appendChild(this.bottomRightHandle);
|
|
19241
|
-
this.formatter.overlay.appendChild(this.bottomLeftHandle);
|
|
19236
|
+
_this.onMouseUp = function () {
|
|
19237
|
+
_this.setCursor('');
|
|
19238
|
+
document.removeEventListener('mousemove', _this.onDrag);
|
|
19239
|
+
document.removeEventListener('mouseup', _this.onMouseUp);
|
|
19240
|
+
};
|
|
19242
19241
|
|
|
19243
|
-
|
|
19244
|
-
|
|
19245
|
-
|
|
19246
|
-
|
|
19247
|
-
|
|
19248
|
-
|
|
19249
|
-
|
|
19250
|
-
|
|
19251
|
-
|
|
19252
|
-
|
|
19253
|
-
}
|
|
19254
|
-
}, {
|
|
19255
|
-
key: 'createHandle',
|
|
19256
|
-
value: function createHandle(position, cursor) {
|
|
19257
|
-
var box = document.createElement('div');
|
|
19258
|
-
box.classList.add(this.formatter.options.resize.handleClassName);
|
|
19259
|
-
box.setAttribute('data-position', position);
|
|
19260
|
-
box.style.cursor = cursor;
|
|
19261
|
-
|
|
19262
|
-
if (this.formatter.options.resize.handleStyle) {
|
|
19263
|
-
Object.assign(box.style, this.formatter.options.resize.handleStyle);
|
|
19264
|
-
}
|
|
19242
|
+
_this.topLeftHandle = _this.createHandle('top-left', 'nwse-resize');
|
|
19243
|
+
_this.topRightHandle = _this.createHandle('top-right', 'nesw-resize');
|
|
19244
|
+
_this.bottomRightHandle = _this.createHandle('bottom-right', 'nwse-resize');
|
|
19245
|
+
_this.bottomLeftHandle = _this.createHandle('bottom-left', 'nesw-resize');
|
|
19246
|
+
_this.dragHandle = null;
|
|
19247
|
+
_this.dragStartX = 0;
|
|
19248
|
+
_this.preDragWidth = 0;
|
|
19249
|
+
_this.targetRatio = 0;
|
|
19250
|
+
return _this;
|
|
19251
|
+
}
|
|
19265
19252
|
|
|
19266
|
-
|
|
19253
|
+
_createClass(ResizeAction, [{
|
|
19254
|
+
key: 'onCreate',
|
|
19255
|
+
value: function onCreate() {
|
|
19256
|
+
this.formatter.overlay.appendChild(this.topLeftHandle);
|
|
19257
|
+
this.formatter.overlay.appendChild(this.topRightHandle);
|
|
19258
|
+
this.formatter.overlay.appendChild(this.bottomRightHandle);
|
|
19259
|
+
this.formatter.overlay.appendChild(this.bottomLeftHandle);
|
|
19267
19260
|
|
|
19268
|
-
|
|
19269
|
-
|
|
19270
|
-
|
|
19271
|
-
|
|
19272
|
-
|
|
19273
|
-
|
|
19274
|
-
|
|
19275
|
-
|
|
19276
|
-
|
|
19277
|
-
|
|
19278
|
-
|
|
19279
|
-
|
|
19280
|
-
|
|
19281
|
-
|
|
19282
|
-
|
|
19261
|
+
this.repositionHandles(this.formatter.options.resize.handleStyle);
|
|
19262
|
+
}
|
|
19263
|
+
}, {
|
|
19264
|
+
key: 'onDestroy',
|
|
19265
|
+
value: function onDestroy() {
|
|
19266
|
+
this.setCursor('');
|
|
19267
|
+
this.formatter.overlay.removeChild(this.topLeftHandle);
|
|
19268
|
+
this.formatter.overlay.removeChild(this.topRightHandle);
|
|
19269
|
+
this.formatter.overlay.removeChild(this.bottomRightHandle);
|
|
19270
|
+
this.formatter.overlay.removeChild(this.bottomLeftHandle);
|
|
19271
|
+
}
|
|
19272
|
+
}, {
|
|
19273
|
+
key: 'createHandle',
|
|
19274
|
+
value: function createHandle(position, cursor) {
|
|
19275
|
+
var box = document.createElement('div');
|
|
19276
|
+
box.classList.add(this.formatter.options.resize.handleClassName);
|
|
19277
|
+
box.setAttribute('data-position', position);
|
|
19278
|
+
box.style.cursor = cursor;
|
|
19279
|
+
|
|
19280
|
+
if (this.formatter.options.resize.handleStyle) {
|
|
19281
|
+
Object.assign(box.style, this.formatter.options.resize.handleStyle);
|
|
19282
|
+
}
|
|
19283
19283
|
|
|
19284
|
-
|
|
19285
|
-
Object.assign(this.topRightHandle.style, { right: handleXOffset, top: handleYOffset });
|
|
19286
|
-
Object.assign(this.bottomRightHandle.style, { right: handleXOffset, bottom: handleYOffset });
|
|
19287
|
-
Object.assign(this.bottomLeftHandle.style, { left: handleXOffset, bottom: handleYOffset });
|
|
19288
|
-
}
|
|
19289
|
-
}, {
|
|
19290
|
-
key: 'setCursor',
|
|
19291
|
-
value: function setCursor(value) {
|
|
19292
|
-
if (document.body) {
|
|
19293
|
-
document.body.style.cursor = value;
|
|
19294
|
-
}
|
|
19284
|
+
box.addEventListener('mousedown', this.onMouseDown);
|
|
19295
19285
|
|
|
19296
|
-
|
|
19297
|
-
|
|
19298
|
-
|
|
19299
|
-
|
|
19300
|
-
|
|
19301
|
-
|
|
19302
|
-
|
|
19303
|
-
|
|
19286
|
+
return box;
|
|
19287
|
+
}
|
|
19288
|
+
}, {
|
|
19289
|
+
key: 'repositionHandles',
|
|
19290
|
+
value: function repositionHandles(handleStyle) {
|
|
19291
|
+
var handleXOffset = '0px';
|
|
19292
|
+
var handleYOffset = '0px';
|
|
19293
|
+
if (handleStyle) {
|
|
19294
|
+
if (handleStyle.width) {
|
|
19295
|
+
handleXOffset = -parseFloat(handleStyle.width) / 2 + 'px';
|
|
19296
|
+
}
|
|
19297
|
+
if (handleStyle.height) {
|
|
19298
|
+
handleYOffset = -parseFloat(handleStyle.height) / 2 + 'px';
|
|
19299
|
+
}
|
|
19300
|
+
}
|
|
19304
19301
|
|
|
19305
|
-
|
|
19306
|
-
|
|
19302
|
+
Object.assign(this.topLeftHandle.style, { left: handleXOffset, top: handleYOffset });
|
|
19303
|
+
Object.assign(this.topRightHandle.style, { right: handleXOffset, top: handleYOffset });
|
|
19304
|
+
Object.assign(this.bottomRightHandle.style, { right: handleXOffset, bottom: handleYOffset });
|
|
19305
|
+
Object.assign(this.bottomLeftHandle.style, { left: handleXOffset, bottom: handleYOffset });
|
|
19306
|
+
}
|
|
19307
|
+
}, {
|
|
19308
|
+
key: 'setCursor',
|
|
19309
|
+
value: function setCursor(value) {
|
|
19310
|
+
if (document.body) {
|
|
19311
|
+
document.body.style.cursor = value;
|
|
19312
|
+
}
|
|
19307
19313
|
|
|
19308
|
-
|
|
19314
|
+
if (this.formatter.currentSpec) {
|
|
19315
|
+
var target = this.formatter.currentSpec.getOverlayElement();
|
|
19316
|
+
if (target) {
|
|
19317
|
+
target.style.cursor = value;
|
|
19318
|
+
}
|
|
19319
|
+
}
|
|
19320
|
+
}
|
|
19321
|
+
}]);
|
|
19322
|
+
|
|
19323
|
+
return ResizeAction;
|
|
19324
|
+
}(_Action3.default);
|
|
19325
|
+
|
|
19326
|
+
ResizeAction.default = ResizeAction$1;
|
|
19327
|
+
return ResizeAction;
|
|
19328
|
+
}
|
|
19309
19329
|
|
|
19310
19330
|
var DeleteAction = {};
|
|
19311
19331
|
|
|
@@ -19412,7 +19432,7 @@
|
|
|
19412
19432
|
|
|
19413
19433
|
var _AlignAction2 = _interopRequireDefault(_AlignAction);
|
|
19414
19434
|
|
|
19415
|
-
var _ResizeAction =
|
|
19435
|
+
var _ResizeAction = requireResizeAction();
|
|
19416
19436
|
|
|
19417
19437
|
var _ResizeAction2 = _interopRequireDefault(_ResizeAction);
|
|
19418
19438
|
|
|
@@ -19544,156 +19564,148 @@
|
|
|
19544
19564
|
|
|
19545
19565
|
var IframeVideoSpec = {};
|
|
19546
19566
|
|
|
19547
|
-
var UnclickableBlotSpec = {};
|
|
19548
|
-
|
|
19549
|
-
var hasRequiredUnclickableBlotSpec;
|
|
19567
|
+
var UnclickableBlotSpec$1 = {};
|
|
19550
19568
|
|
|
19551
|
-
|
|
19552
|
-
|
|
19553
|
-
|
|
19554
|
-
|
|
19555
|
-
Object.defineProperty(UnclickableBlotSpec, "__esModule", {
|
|
19556
|
-
value: true
|
|
19557
|
-
});
|
|
19558
|
-
|
|
19559
|
-
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
|
+
});
|
|
19560
19572
|
|
|
19561
|
-
|
|
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; }; }();
|
|
19562
19574
|
|
|
19563
|
-
|
|
19575
|
+
var _BlotSpec2 = requireBlotSpec();
|
|
19564
19576
|
|
|
19565
|
-
|
|
19577
|
+
var _BlotSpec3 = _interopRequireDefault(_BlotSpec2);
|
|
19566
19578
|
|
|
19567
|
-
|
|
19579
|
+
var _BlotFormatter = requireBlotFormatter();
|
|
19568
19580
|
|
|
19569
|
-
|
|
19581
|
+
_interopRequireDefault(_BlotFormatter);
|
|
19570
19582
|
|
|
19571
|
-
|
|
19583
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19572
19584
|
|
|
19573
|
-
|
|
19585
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
19574
19586
|
|
|
19575
|
-
|
|
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; }
|
|
19576
19588
|
|
|
19577
|
-
|
|
19578
|
-
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; }
|
|
19579
19590
|
|
|
19580
|
-
|
|
19581
|
-
|
|
19591
|
+
var MOUSE_ENTER_ATTRIBUTE = 'data-blot-formatter-unclickable-bound';
|
|
19592
|
+
var PROXY_IMAGE_CLASS = 'blot-formatter__proxy-image';
|
|
19582
19593
|
|
|
19583
|
-
|
|
19584
|
-
|
|
19594
|
+
var UnclickableBlotSpec = function (_BlotSpec) {
|
|
19595
|
+
_inherits(UnclickableBlotSpec, _BlotSpec);
|
|
19585
19596
|
|
|
19586
|
-
|
|
19597
|
+
function UnclickableBlotSpec(formatter, selector) {
|
|
19598
|
+
_classCallCheck(this, UnclickableBlotSpec);
|
|
19587
19599
|
|
|
19588
|
-
|
|
19589
|
-
Array.from(document.querySelectorAll(_this.selector + ':not([' + MOUSE_ENTER_ATTRIBUTE + '])')).forEach(function (unclickable) {
|
|
19590
|
-
unclickable.setAttribute(MOUSE_ENTER_ATTRIBUTE, 'true');
|
|
19591
|
-
unclickable.addEventListener('mouseenter', _this.onMouseEnter);
|
|
19592
|
-
});
|
|
19593
|
-
};
|
|
19600
|
+
var _this = _possibleConstructorReturn(this, (UnclickableBlotSpec.__proto__ || Object.getPrototypeOf(UnclickableBlotSpec)).call(this, formatter));
|
|
19594
19601
|
|
|
19595
|
-
|
|
19596
|
-
|
|
19597
|
-
|
|
19598
|
-
|
|
19599
|
-
|
|
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
|
+
};
|
|
19600
19608
|
|
|
19601
|
-
|
|
19602
|
-
|
|
19603
|
-
|
|
19609
|
+
_this.onMouseEnter = function (event) {
|
|
19610
|
+
var unclickable = event.target;
|
|
19611
|
+
if (!(unclickable instanceof HTMLElement)) {
|
|
19612
|
+
return;
|
|
19613
|
+
}
|
|
19604
19614
|
|
|
19605
|
-
|
|
19606
|
-
|
|
19607
|
-
|
|
19608
|
-
_this.formatter.show(_this);
|
|
19609
|
-
_this.hideProxyImage();
|
|
19610
|
-
};
|
|
19615
|
+
_this.nextUnclickable = unclickable;
|
|
19616
|
+
_this.repositionProxyImage(_this.nextUnclickable);
|
|
19617
|
+
};
|
|
19611
19618
|
|
|
19612
|
-
|
|
19613
|
-
|
|
19614
|
-
|
|
19615
|
-
|
|
19616
|
-
|
|
19619
|
+
_this.onProxyImageClick = function () {
|
|
19620
|
+
_this.unclickable = _this.nextUnclickable;
|
|
19621
|
+
_this.nextUnclickable = null;
|
|
19622
|
+
_this.formatter.show(_this);
|
|
19623
|
+
_this.hideProxyImage();
|
|
19624
|
+
};
|
|
19617
19625
|
|
|
19618
|
-
|
|
19619
|
-
|
|
19620
|
-
|
|
19621
|
-
|
|
19622
|
-
|
|
19623
|
-
it's important that this is attached to the body instead of the root quill element.
|
|
19624
|
-
this prevents the click event from overlapping with ImageSpec
|
|
19625
|
-
*/
|
|
19626
|
-
document.body.appendChild(this.createProxyImage());
|
|
19627
|
-
}
|
|
19626
|
+
_this.selector = selector;
|
|
19627
|
+
_this.unclickable = null;
|
|
19628
|
+
_this.nextUnclickable = null;
|
|
19629
|
+
return _this;
|
|
19630
|
+
}
|
|
19628
19631
|
|
|
19629
|
-
|
|
19630
|
-
|
|
19631
|
-
|
|
19632
|
-
|
|
19633
|
-
|
|
19634
|
-
|
|
19635
|
-
|
|
19636
|
-
|
|
19637
|
-
|
|
19638
|
-
|
|
19639
|
-
key: 'getOverlayElement',
|
|
19640
|
-
value: function getOverlayElement() {
|
|
19641
|
-
return this.unclickable;
|
|
19642
|
-
}
|
|
19643
|
-
}, {
|
|
19644
|
-
key: 'onHide',
|
|
19645
|
-
value: function onHide() {
|
|
19646
|
-
this.hideProxyImage();
|
|
19647
|
-
this.nextUnclickable = null;
|
|
19648
|
-
this.unclickable = null;
|
|
19649
|
-
}
|
|
19650
|
-
}, {
|
|
19651
|
-
key: 'createProxyImage',
|
|
19652
|
-
value: function createProxyImage() {
|
|
19653
|
-
var canvas = document.createElement('canvas');
|
|
19654
|
-
var context = canvas.getContext('2d');
|
|
19655
|
-
context.globalAlpha = 0;
|
|
19656
|
-
context.fillRect(0, 0, 1, 1);
|
|
19657
|
-
|
|
19658
|
-
this.proxyImage = document.createElement('img');
|
|
19659
|
-
this.proxyImage.src = canvas.toDataURL('image/png');
|
|
19660
|
-
this.proxyImage.classList.add(PROXY_IMAGE_CLASS);
|
|
19661
|
-
|
|
19662
|
-
Object.assign(this.proxyImage.style, {
|
|
19663
|
-
position: 'absolute',
|
|
19664
|
-
margin: '0'
|
|
19665
|
-
});
|
|
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
|
+
}
|
|
19666
19642
|
|
|
19667
|
-
|
|
19668
|
-
|
|
19669
|
-
|
|
19670
|
-
|
|
19671
|
-
|
|
19672
|
-
|
|
19673
|
-
|
|
19674
|
-
|
|
19675
|
-
|
|
19676
|
-
|
|
19677
|
-
|
|
19678
|
-
|
|
19679
|
-
|
|
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
|
+
});
|
|
19680
19680
|
|
|
19681
|
-
|
|
19682
|
-
|
|
19683
|
-
|
|
19684
|
-
|
|
19685
|
-
|
|
19686
|
-
|
|
19687
|
-
|
|
19688
|
-
|
|
19689
|
-
|
|
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
|
+
}]);
|
|
19690
19704
|
|
|
19691
|
-
|
|
19692
|
-
|
|
19705
|
+
return UnclickableBlotSpec;
|
|
19706
|
+
}(_BlotSpec3.default);
|
|
19693
19707
|
|
|
19694
|
-
|
|
19695
|
-
return UnclickableBlotSpec;
|
|
19696
|
-
}
|
|
19708
|
+
UnclickableBlotSpec$1.default = UnclickableBlotSpec;
|
|
19697
19709
|
|
|
19698
19710
|
var hasRequiredIframeVideoSpec;
|
|
19699
19711
|
|
|
@@ -19705,7 +19717,7 @@
|
|
|
19705
19717
|
value: true
|
|
19706
19718
|
});
|
|
19707
19719
|
|
|
19708
|
-
var _UnclickableBlotSpec2 =
|
|
19720
|
+
var _UnclickableBlotSpec2 = UnclickableBlotSpec$1;
|
|
19709
19721
|
|
|
19710
19722
|
var _UnclickableBlotSpec3 = _interopRequireDefault(_UnclickableBlotSpec2);
|
|
19711
19723
|
|
|
@@ -19905,7 +19917,7 @@
|
|
|
19905
19917
|
}
|
|
19906
19918
|
});
|
|
19907
19919
|
|
|
19908
|
-
var _ResizeAction =
|
|
19920
|
+
var _ResizeAction = requireResizeAction();
|
|
19909
19921
|
|
|
19910
19922
|
Object.defineProperty(exports, 'ResizeAction', {
|
|
19911
19923
|
enumerable: true,
|
|
@@ -19932,7 +19944,7 @@
|
|
|
19932
19944
|
}
|
|
19933
19945
|
});
|
|
19934
19946
|
|
|
19935
|
-
var _UnclickableBlotSpec =
|
|
19947
|
+
var _UnclickableBlotSpec = UnclickableBlotSpec$1;
|
|
19936
19948
|
|
|
19937
19949
|
Object.defineProperty(exports, 'UnclickableBlotSpec', {
|
|
19938
19950
|
enumerable: true,
|
|
@@ -19955,6 +19967,123 @@
|
|
|
19955
19967
|
|
|
19956
19968
|
var BlotFormatter = /*@__PURE__*/getDefaultExportFromCjs(dist);
|
|
19957
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
|
+
|
|
19958
20087
|
const QuillEditor = vue.defineComponent({
|
|
19959
20088
|
name: 'QuillEditor',
|
|
19960
20089
|
inheritAttrs: false,
|
|
@@ -19998,12 +20127,22 @@
|
|
|
19998
20127
|
return ['fixed-top', 'embedded'].includes(value);
|
|
19999
20128
|
},
|
|
20000
20129
|
},
|
|
20130
|
+
needCollapse: {
|
|
20131
|
+
type: Boolean,
|
|
20132
|
+
default: true,
|
|
20133
|
+
},
|
|
20001
20134
|
// 传入toolbar的自定义style
|
|
20002
20135
|
toolbarStyle: {
|
|
20003
20136
|
type: Object,
|
|
20004
20137
|
required: false,
|
|
20005
20138
|
default: () => ({})
|
|
20006
20139
|
},
|
|
20140
|
+
// 编辑器输入内容的自定义style
|
|
20141
|
+
editorStyle: {
|
|
20142
|
+
type: Object,
|
|
20143
|
+
required: false,
|
|
20144
|
+
default: () => ({})
|
|
20145
|
+
},
|
|
20007
20146
|
theme: {
|
|
20008
20147
|
type: String,
|
|
20009
20148
|
default: 'snow',
|
|
@@ -20065,30 +20204,17 @@
|
|
|
20065
20204
|
let quill;
|
|
20066
20205
|
let options;
|
|
20067
20206
|
const editor = vue.ref();
|
|
20207
|
+
const showMoreToolbar = vue.ref(false);
|
|
20068
20208
|
const editorWrapClass = vue.computed(() => {
|
|
20069
20209
|
return {
|
|
20070
20210
|
'quill-editor-container': true,
|
|
20071
20211
|
'need-border': props.needBorder,
|
|
20212
|
+
'more-toolbar': showMoreToolbar.value,
|
|
20072
20213
|
'fixed-top': props.toolbarMode === 'fixed-top',
|
|
20073
20214
|
'embedded': props.toolbarMode === 'embedded',
|
|
20074
20215
|
};
|
|
20075
20216
|
});
|
|
20076
|
-
//
|
|
20077
|
-
const updateEditorHeight = () => {
|
|
20078
|
-
if (quill && editor.value) {
|
|
20079
|
-
const editorElement = editor.value.querySelector('.ql-editor');
|
|
20080
|
-
if (editorElement) {
|
|
20081
|
-
editorElement.style.minHeight = `${props.minHeight}px`;
|
|
20082
|
-
}
|
|
20083
|
-
}
|
|
20084
|
-
};
|
|
20085
|
-
// 监听 minHeight 变化
|
|
20086
|
-
vue.watch(() => props.minHeight, () => {
|
|
20087
|
-
vue.nextTick(() => {
|
|
20088
|
-
updateEditorHeight();
|
|
20089
|
-
});
|
|
20090
|
-
});
|
|
20091
|
-
// 应用自定义toolbar样式
|
|
20217
|
+
// 应用自定义toolbar样式,目前通过改dom的形式,因为h函数没有暴露更深的dom,无法绑定真正的toolbar
|
|
20092
20218
|
const applyToolbarStyle = () => {
|
|
20093
20219
|
var _a;
|
|
20094
20220
|
if (quill && props.toolbarStyle) {
|
|
@@ -20098,24 +20224,35 @@
|
|
|
20098
20224
|
}
|
|
20099
20225
|
}
|
|
20100
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');
|
|
20232
|
+
if (editorElement) {
|
|
20233
|
+
Object.assign(editorElement.style, props.editorStyle);
|
|
20234
|
+
}
|
|
20235
|
+
}
|
|
20236
|
+
};
|
|
20101
20237
|
// 监听 toolbarStyle 变化
|
|
20102
20238
|
vue.watch(() => props.toolbarStyle, () => {
|
|
20103
20239
|
vue.nextTick(() => {
|
|
20104
20240
|
applyToolbarStyle();
|
|
20105
20241
|
});
|
|
20106
20242
|
});
|
|
20107
|
-
//
|
|
20243
|
+
// 监听 editorStyle 变化
|
|
20244
|
+
vue.watch(() => props.editorStyle, () => {
|
|
20245
|
+
vue.nextTick(() => {
|
|
20246
|
+
applyEditorStyle();
|
|
20247
|
+
});
|
|
20248
|
+
});
|
|
20108
20249
|
const registerModule = (moduleName, module) => {
|
|
20109
|
-
// For Quill 1.x, we can't check if module is already registered
|
|
20110
|
-
// So we'll just register it directly
|
|
20111
20250
|
Quill.register(moduleName, module);
|
|
20112
20251
|
};
|
|
20113
|
-
// Initialize Quill
|
|
20114
20252
|
const initialize = () => {
|
|
20115
20253
|
var _a, _b;
|
|
20116
20254
|
if (!editor.value)
|
|
20117
20255
|
return;
|
|
20118
|
-
// Create new Quill instance
|
|
20119
20256
|
quill = new Quill(editor.value, options);
|
|
20120
20257
|
// 初始隐藏toolbar
|
|
20121
20258
|
const toolbar = (_a = quill === null || quill === void 0 ? void 0 : quill.getModule('toolbar')) === null || _a === void 0 ? void 0 : _a.container;
|
|
@@ -20123,10 +20260,17 @@
|
|
|
20123
20260
|
toolbar.style.display = 'none';
|
|
20124
20261
|
}
|
|
20125
20262
|
const icons = Quill.import('ui/icons');
|
|
20126
|
-
icons['
|
|
20127
|
-
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;
|
|
20128
20273
|
options = composeOptions();
|
|
20129
|
-
// Register modules
|
|
20130
20274
|
if (props.modules) {
|
|
20131
20275
|
if (Array.isArray(props.modules)) {
|
|
20132
20276
|
for (const module of props.modules) {
|
|
@@ -20137,29 +20281,23 @@
|
|
|
20137
20281
|
registerModule(`modules/${props.modules.name}`, props.modules.module);
|
|
20138
20282
|
}
|
|
20139
20283
|
}
|
|
20140
|
-
// Create new Quill instance
|
|
20141
20284
|
quill = new Quill(editor.value, options);
|
|
20142
|
-
// Set editor content
|
|
20143
20285
|
setContents(props.content);
|
|
20144
|
-
// Set event handlers
|
|
20145
20286
|
quill.on('text-change', handleTextChange);
|
|
20146
20287
|
quill.on('selection-change', handleSelectionChange);
|
|
20147
20288
|
quill.on('editor-change', handleEditorChange);
|
|
20148
|
-
// Remove editor class when theme changes
|
|
20149
20289
|
if (props.theme !== 'bubble')
|
|
20150
20290
|
editor.value.classList.remove('ql-bubble');
|
|
20151
20291
|
if (props.theme !== 'snow')
|
|
20152
20292
|
editor.value.classList.remove('ql-snow');
|
|
20153
|
-
// Fix clicking the quill toolbar is detected as blur event
|
|
20154
20293
|
(_b = quill
|
|
20155
20294
|
.getModule('toolbar')) === null || _b === void 0 ? void 0 : _b.container.addEventListener('mousedown', (e) => {
|
|
20156
20295
|
e.preventDefault();
|
|
20157
20296
|
});
|
|
20158
|
-
// 设置初始编辑器高度
|
|
20159
|
-
updateEditorHeight();
|
|
20160
20297
|
// 应用初始toolbar样式
|
|
20161
20298
|
applyToolbarStyle();
|
|
20162
|
-
//
|
|
20299
|
+
// 应用初始editor样式
|
|
20300
|
+
applyEditorStyle();
|
|
20163
20301
|
ctx.emit('ready', quill);
|
|
20164
20302
|
};
|
|
20165
20303
|
// Compose Options
|
|
@@ -20174,12 +20312,21 @@
|
|
|
20174
20312
|
if (props.toolbar && props.toolbar !== '') {
|
|
20175
20313
|
clientOptions.modules = {
|
|
20176
20314
|
toolbar: {
|
|
20177
|
-
|
|
20315
|
+
// 需要展开的话显示完整的工具栏
|
|
20316
|
+
container: props.needCollapse ? [
|
|
20178
20317
|
...toolbarOptions.full,
|
|
20179
|
-
|
|
20180
|
-
|
|
20318
|
+
] : [
|
|
20319
|
+
...toolbarOptions.short,
|
|
20181
20320
|
],
|
|
20182
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
|
+
},
|
|
20183
20330
|
ocr: function () {
|
|
20184
20331
|
// 按钮点击逻辑
|
|
20185
20332
|
ctx.emit('ocr');
|
|
@@ -20188,6 +20335,9 @@
|
|
|
20188
20335
|
// 按钮点击逻辑
|
|
20189
20336
|
ctx.emit('math');
|
|
20190
20337
|
},
|
|
20338
|
+
more: function () {
|
|
20339
|
+
showMoreToolbar.value = !showMoreToolbar.value;
|
|
20340
|
+
}
|
|
20191
20341
|
},
|
|
20192
20342
|
},
|
|
20193
20343
|
};
|
|
@@ -20216,7 +20366,6 @@
|
|
|
20216
20366
|
const deltaHasValuesOtherThanRetain = (delta) => {
|
|
20217
20367
|
return Object.values(delta.ops).some((v) => !v.retain || Object.keys(v).length !== 1);
|
|
20218
20368
|
};
|
|
20219
|
-
// Doesn't need reactivity, but does need to be cloned to avoid deep mutations always registering as equal
|
|
20220
20369
|
let internalModel;
|
|
20221
20370
|
const internalModelEquals = (against) => {
|
|
20222
20371
|
if (typeof internalModel === typeof against) {
|
|
@@ -20249,9 +20398,10 @@
|
|
|
20249
20398
|
const toolbar = (_a = quill === null || quill === void 0 ? void 0 : quill.getModule('toolbar')) === null || _a === void 0 ? void 0 : _a.container;
|
|
20250
20399
|
if (toolbar) {
|
|
20251
20400
|
if (isEditorFocus.value) {
|
|
20252
|
-
toolbar.style.display = '
|
|
20401
|
+
toolbar.style.display = 'block';
|
|
20253
20402
|
}
|
|
20254
20403
|
else {
|
|
20404
|
+
showMoreToolbar.value = false;
|
|
20255
20405
|
toolbar.style.display = 'none';
|
|
20256
20406
|
}
|
|
20257
20407
|
}
|
|
@@ -20354,7 +20504,6 @@
|
|
|
20354
20504
|
vue.watch(() => props.content, (newContent) => {
|
|
20355
20505
|
if (!quill || !newContent || internalModelEquals(newContent))
|
|
20356
20506
|
return;
|
|
20357
|
-
// Restore the selection and cursor position after updating the content
|
|
20358
20507
|
const selection = quill.getSelection();
|
|
20359
20508
|
if (selection) {
|
|
20360
20509
|
vue.nextTick(() => quill === null || quill === void 0 ? void 0 : quill.setSelection(selection));
|
|
@@ -20380,14 +20529,36 @@
|
|
|
20380
20529
|
setText,
|
|
20381
20530
|
reinit,
|
|
20382
20531
|
editorWrapClass,
|
|
20532
|
+
showMoreToolbar,
|
|
20383
20533
|
};
|
|
20384
20534
|
},
|
|
20385
20535
|
render() {
|
|
20386
|
-
var _a, _b;
|
|
20387
20536
|
return [
|
|
20388
20537
|
vue.h('div', { class: this.editorWrapClass }, [
|
|
20389
|
-
|
|
20390
|
-
|
|
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
|
+
}),
|
|
20391
20562
|
]),
|
|
20392
20563
|
];
|
|
20393
20564
|
},
|