@vtx/components 3.1.18 → 3.1.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.
@@ -21,7 +21,7 @@ var _editor = require("@wangeditor/editor");
21
21
 
22
22
  var _wangEditorUtil = require("./wangEditorUtil");
23
23
 
24
- var _excluded = ["value", "onChange", "downloadUrl", "uploadUrl", "thumbnailUrl", "placeholder", "height"];
24
+ var _excluded = ["value", "onChange", "downloadUrl", "uploadUrl", "placeholder", "height"];
25
25
 
26
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
27
27
 
@@ -29,6 +29,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
29
29
 
30
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
31
 
32
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
33
+
32
34
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
33
35
 
34
36
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
@@ -57,15 +59,13 @@ _editor.Boot.registerModule(_pluginUploadAttachment["default"]); // 注册插件
57
59
 
58
60
  _editor.Boot.registerPlugin(_wangEditorUtil.withEmptyHtml);
59
61
 
60
- var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
62
+ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props) {
61
63
  var value = props.value,
62
64
  _onChange = props.onChange,
63
65
  _props$downloadUrl = props.downloadUrl,
64
66
  downloadUrl = _props$downloadUrl === void 0 ? '/cloudFile/common/downloadFile?id=' : _props$downloadUrl,
65
67
  _props$uploadUrl = props.uploadUrl,
66
68
  uploadUrl = _props$uploadUrl === void 0 ? '/cloudFile/common/uploadFile' : _props$uploadUrl,
67
- _props$thumbnailUrl = props.thumbnailUrl,
68
- thumbnailUrl = _props$thumbnailUrl === void 0 ? '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=' : _props$thumbnailUrl,
69
69
  _props$placeholder = props.placeholder,
70
70
  placeholder = _props$placeholder === void 0 ? '' : _props$placeholder,
71
71
  _props$height = props.height,
@@ -91,7 +91,7 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
91
91
  // 插入图片
92
92
  uploadImage: {
93
93
  server: uploadUrl,
94
- onSuccess: function onSuccess(file, res) {},
94
+ // onSuccess(file, res) {},
95
95
  customInsert: function customInsert(res, insertFn) {
96
96
  // res 即服务端的返回结果
97
97
  // 从 res 中找到 url alt href ,然后插入图片
@@ -107,7 +107,7 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
107
107
  // 插入视频
108
108
  uploadVideo: {
109
109
  server: uploadUrl,
110
- onSuccess: function onSuccess(file, res) {},
110
+ // onSuccess(file, res) {},
111
111
  // 上传成功后,用户自定义插入文件
112
112
  customInsert: function customInsert(res, insertFn) {
113
113
  if (res.result == 0) {
@@ -122,7 +122,7 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
122
122
  // 插入附件
123
123
  uploadAttachment: {
124
124
  server: uploadUrl,
125
- onSuccess: function onSuccess(file, res) {},
125
+ // onSuccess(file, res) {},
126
126
  // 上传成功后,用户自定义插入文件
127
127
  customInsert: function customInsert(res, file, insertFn) {
128
128
  if (res.result == 0) {
@@ -157,17 +157,18 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
157
157
  rtf = event.clipboardData.getData('text/rtf'); // 该条件分支即表示要自定义word粘贴
158
158
 
159
159
  if (!(html && rtf)) {
160
- _context.next = 14;
160
+ _context.next = 15;
161
161
  break;
162
162
  }
163
163
 
164
164
  // 列表缩进会超出边框,直接过滤掉
165
165
  html = html.replace(/text\-indent:\-(.*?)pt/gi, ''); // 从html内容中查找粘贴内容中是否有图片元素,并返回img标签的属性src值的集合
166
166
 
167
- imgSrcs = (0, _wangEditorUtil.findAllImgSrcsFromHtml)(html); // 如果有图片
167
+ imgSrcs = (0, _wangEditorUtil.findAllImgSrcsFromHtml)(html);
168
+ html = (0, _wangEditorUtil.replaceAllSpanFontSize)(html); // 如果有图片
168
169
 
169
170
  if (!(imgSrcs && Array.isArray(imgSrcs) && imgSrcs.length)) {
170
- _context.next = 12;
171
+ _context.next = 13;
171
172
  break;
172
173
  }
173
174
 
@@ -176,21 +177,21 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
176
177
  rtfImageData = (0, _wangEditorUtil.extractImageDataFromRtf)(rtf);
177
178
 
178
179
  if (!rtfImageData.length) {
179
- _context.next = 12;
180
+ _context.next = 13;
180
181
  break;
181
182
  }
182
183
 
183
- _context.next = 11;
184
+ _context.next = 12;
184
185
  return (0, _wangEditorUtil.replaceImagesFileSourceWithInlineRepresentation)(html, imgSrcs, rtfImageData, true, uploadUrl, downloadUrl);
185
186
 
186
- case 11:
187
+ case 12:
187
188
  html = _context.sent;
188
189
 
189
- case 12:
190
+ case 13:
190
191
  editor.dangerouslyInsertHtml(html);
191
192
  return _context.abrupt("return", false);
192
193
 
193
- case 14:
194
+ case 15:
194
195
  case "end":
195
196
  return _context.stop();
196
197
  }
@@ -220,7 +221,7 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
220
221
  editor: editor,
221
222
  defaultConfig: toolbarConfig,
222
223
  mode: "default"
223
- }), /*#__PURE__*/_react["default"].createElement(_editorForReact.Editor, {
224
+ }), /*#__PURE__*/_react["default"].createElement(_editorForReact.Editor, _extends({
224
225
  defaultConfig: editorConfig,
225
226
  value: value,
226
227
  onCreated: function onCreated(editor) {
@@ -234,12 +235,15 @@ var VtxWangeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
234
235
  style: {
235
236
  height: height
236
237
  }
237
- }));
238
+ }, rest)));
238
239
  });
239
240
  VtxWangeEditor.propTypes = {
240
241
  value: _propTypes["default"].string,
241
242
  onChange: _propTypes["default"].func,
242
- placeholder: _propTypes["default"].string
243
+ placeholder: _propTypes["default"].string,
244
+ downloadUrl: _propTypes["default"].string,
245
+ uploadUrl: _propTypes["default"].string,
246
+ height: _propTypes["default"].number
243
247
  };
244
248
  var _default = VtxWangeEditor;
245
249
  exports["default"] = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Boot","registerModule","attachmentModule","registerPlugin","withEmptyHtml","VtxWangeEditor","forwardRef","props","ref","value","onChange","downloadUrl","uploadUrl","thumbnailUrl","placeholder","height","rest","useState","editor","setEditor","useEffect","destroy","editorConfig","MENU_CONF","uploadImage","server","onSuccess","file","res","customInsert","insertFn","result","data","map","item","id","fileName","Error","uploadVideo","uploadAttachment","hoverbarKeys","attachment","menuKeys","customPaste","event","preventDefault","html","clipboardData","getData","rtf","replace","imgSrcs","findAllImgSrcsFromHtml","Array","isArray","length","rtfImageData","extractImageDataFromRtf","replaceImagesFileSourceWithInlineRepresentation","dangerouslyInsertHtml","toolbarConfig","insertKeys","index","keys","getHtml","propTypes","PropTypes","string","func"],"sources":["vtx-wang-editor/index.jsx"],"sourcesContent":["import '@wangeditor/editor/dist/css/style.css';\r\nimport React, { forwardRef, useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Editor, Toolbar } from '@wangeditor/editor-for-react';\r\nimport attachmentModule from '@wangeditor/plugin-upload-attachment';\r\nimport { Boot } from '@wangeditor/editor';\r\nimport {\r\n withEmptyHtml,\r\n findAllImgSrcsFromHtml,\r\n extractImageDataFromRtf,\r\n replaceImagesFileSourceWithInlineRepresentation,\r\n} from './wangEditorUtil';\r\n\r\n// 注册插件 处理附件\r\nBoot.registerModule(attachmentModule);\r\n// 注册插件 处理为空的时候\r\nBoot.registerPlugin(withEmptyHtml);\r\n\r\nconst VtxWangeEditor = forwardRef((props, ref) => {\r\n const {\r\n value,\r\n onChange,\r\n downloadUrl = '/cloudFile/common/downloadFile?id=',\r\n uploadUrl = '/cloudFile/common/uploadFile',\r\n thumbnailUrl = '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=',\r\n placeholder = '',\r\n height = 350,\r\n ...rest\r\n } = props;\r\n const [editor, setEditor] = useState(null);\r\n\r\n // 及时销毁 editor ,重要!\r\n useEffect(() => {\r\n return () => {\r\n if (editor == null) return;\r\n editor.destroy();\r\n setEditor(null);\r\n };\r\n }, [editor]);\r\n // 编辑器配置\r\n const editorConfig = {\r\n MENU_CONF: {\r\n // 插入图片\r\n uploadImage: {\r\n server: uploadUrl,\r\n onSuccess(file, res) {},\r\n customInsert(res, insertFn) {\r\n // res 即服务端的返回结果\r\n // 从 res 中找到 url alt href ,然后插入图片\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\r\n });\r\n } else {\r\n throw new Error(`插入图片失败`);\r\n }\r\n },\r\n },\r\n // 插入视频\r\n uploadVideo: {\r\n server: uploadUrl,\r\n onSuccess(file, res) {},\r\n // 上传成功后,用户自定义插入文件\r\n customInsert(res, insertFn) {\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\r\n });\r\n } else {\r\n throw new Error(`插入视频失败`);\r\n }\r\n },\r\n },\r\n // 插入附件\r\n uploadAttachment: {\r\n server: uploadUrl,\r\n onSuccess(file, res) {},\r\n // 上传成功后,用户自定义插入文件\r\n customInsert(res, file, insertFn) {\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(item.fileName, `${downloadUrl}${item.id}`);\r\n });\r\n } else {\r\n throw new Error(`插入附件失败`);\r\n }\r\n },\r\n },\r\n },\r\n placeholder,\r\n // 在编辑器中,点击选中“附件”节点时,要弹出的菜单\r\n hoverbarKeys: {\r\n attachment: {\r\n menuKeys: ['downloadAttachment'], // “下载附件”菜单\r\n },\r\n },\r\n customPaste: async (editor, event) => {\r\n event.preventDefault();\r\n // 获取粘贴的html部分(??没错粘贴word时候,一部分内容就是html),该部分包含了图片img标签\r\n let html = event.clipboardData.getData('text/html');\r\n // 获取rtf数据(从word、wps复制粘贴时有),复制粘贴过程中图片的数据就保存在rtf中\r\n const rtf = event.clipboardData.getData('text/rtf');\r\n // 该条件分支即表示要自定义word粘贴\r\n if (html && rtf) {\r\n // 列表缩进会超出边框,直接过滤掉\r\n html = html.replace(/text\\-indent:\\-(.*?)pt/gi, '');\r\n // 从html内容中查找粘贴内容中是否有图片元素,并返回img标签的属性src值的集合\r\n const imgSrcs = findAllImgSrcsFromHtml(html);\r\n // 如果有图片\r\n if (imgSrcs && Array.isArray(imgSrcs) && imgSrcs.length) {\r\n // 从rtf内容中查找图片数据\r\n\r\n // 从rtf内容中查找图片数据\r\n const rtfImageData = extractImageDataFromRtf(rtf);\r\n\r\n if (rtfImageData.length) {\r\n html = await replaceImagesFileSourceWithInlineRepresentation(\r\n html,\r\n imgSrcs,\r\n rtfImageData,\r\n true,\r\n uploadUrl,\r\n downloadUrl,\r\n );\r\n }\r\n }\r\n\r\n editor.dangerouslyInsertHtml(html);\r\n return false;\r\n }\r\n },\r\n };\r\n // 工具栏配置\r\n const toolbarConfig = {\r\n insertKeys: {\r\n // 自定义插入的位置\r\n index: 24,\r\n // “上传附件”菜单\r\n keys: ['uploadAttachment'],\r\n },\r\n };\r\n return (\r\n <div className=\"vtx-wang-editor\" >\r\n <Toolbar editor={editor} defaultConfig={toolbarConfig} mode=\"default\" />\r\n <Editor\r\n defaultConfig={editorConfig}\r\n value={value}\r\n onCreated={(editor)=>{\r\n setEditor(editor)\r\n }}\r\n onChange={editor => {\r\n onChange(editor.getHtml())\r\n }}\r\n mode=\"default\"\r\n className={'vtx-wang-editor-content'}\r\n style={{height}}\r\n />\r\n </div>\r\n );\r\n});\r\n\r\nVtxWangeEditor.propTypes = {\r\n value: PropTypes.string,\r\n onChange: PropTypes.func,\r\n placeholder: PropTypes.string,\r\n};\r\n\r\nexport default VtxWangeEditor;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["Boot","registerModule","attachmentModule","registerPlugin","withEmptyHtml","VtxWangeEditor","forwardRef","props","value","onChange","downloadUrl","uploadUrl","placeholder","height","rest","useState","editor","setEditor","useEffect","destroy","editorConfig","MENU_CONF","uploadImage","server","customInsert","res","insertFn","result","data","map","item","id","fileName","Error","uploadVideo","uploadAttachment","file","hoverbarKeys","attachment","menuKeys","customPaste","event","preventDefault","html","clipboardData","getData","rtf","replace","imgSrcs","findAllImgSrcsFromHtml","replaceAllSpanFontSize","Array","isArray","length","rtfImageData","extractImageDataFromRtf","replaceImagesFileSourceWithInlineRepresentation","dangerouslyInsertHtml","toolbarConfig","insertKeys","index","keys","getHtml","propTypes","PropTypes","string","func","number"],"sources":["vtx-wang-editor/index.jsx"],"sourcesContent":["/*eslint-disable*/\r\nimport '@wangeditor/editor/dist/css/style.css';\r\nimport React, { forwardRef, useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Editor, Toolbar } from '@wangeditor/editor-for-react';\r\nimport attachmentModule from '@wangeditor/plugin-upload-attachment';\r\nimport { Boot } from '@wangeditor/editor';\r\nimport {\r\n withEmptyHtml,\r\n findAllImgSrcsFromHtml,\r\n extractImageDataFromRtf,\r\n replaceImagesFileSourceWithInlineRepresentation,\r\n replaceAllSpanFontSize,\r\n} from './wangEditorUtil';\r\n\r\n// 注册插件 处理附件\r\nBoot.registerModule(attachmentModule);\r\n// 注册插件 处理为空的时候\r\nBoot.registerPlugin(withEmptyHtml);\r\n\r\nconst VtxWangeEditor = forwardRef(props => {\r\n const {\r\n value,\r\n onChange,\r\n downloadUrl = '/cloudFile/common/downloadFile?id=',\r\n uploadUrl = '/cloudFile/common/uploadFile',\r\n // thumbnailUrl = '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=',\r\n placeholder = '',\r\n height = 350,\r\n ...rest\r\n } = props;\r\n const [editor, setEditor] = useState(null);\r\n\r\n // 及时销毁 editor ,重要!\r\n useEffect(() => {\r\n return () => {\r\n if (editor == null) return;\r\n editor.destroy();\r\n setEditor(null);\r\n };\r\n }, [editor]);\r\n // 编辑器配置\r\n const editorConfig = {\r\n MENU_CONF: {\r\n // 插入图片\r\n uploadImage: {\r\n server: uploadUrl,\r\n // onSuccess(file, res) {},\r\n customInsert(res, insertFn) {\r\n // res 即服务端的返回结果\r\n // 从 res 中找到 url alt href ,然后插入图片\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\r\n });\r\n } else {\r\n throw new Error(`插入图片失败`);\r\n }\r\n },\r\n },\r\n // 插入视频\r\n uploadVideo: {\r\n server: uploadUrl,\r\n // onSuccess(file, res) {},\r\n // 上传成功后,用户自定义插入文件\r\n customInsert(res, insertFn) {\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\r\n });\r\n } else {\r\n throw new Error(`插入视频失败`);\r\n }\r\n },\r\n },\r\n // 插入附件\r\n uploadAttachment: {\r\n server: uploadUrl,\r\n // onSuccess(file, res) {},\r\n // 上传成功后,用户自定义插入文件\r\n customInsert(res, file, insertFn) {\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(item.fileName, `${downloadUrl}${item.id}`);\r\n });\r\n } else {\r\n throw new Error(`插入附件失败`);\r\n }\r\n },\r\n },\r\n },\r\n placeholder,\r\n // 在编辑器中,点击选中“附件”节点时,要弹出的菜单\r\n hoverbarKeys: {\r\n attachment: {\r\n menuKeys: ['downloadAttachment'], // “下载附件”菜单\r\n },\r\n },\r\n customPaste: async (editor, event) => {\r\n event.preventDefault();\r\n // 获取粘贴的html部分(??没错粘贴word时候,一部分内容就是html),该部分包含了图片img标签\r\n let html = event.clipboardData.getData('text/html');\r\n // 获取rtf数据(从word、wps复制粘贴时有),复制粘贴过程中图片的数据就保存在rtf中\r\n const rtf = event.clipboardData.getData('text/rtf');\r\n\r\n // 该条件分支即表示要自定义word粘贴\r\n if (html && rtf) {\r\n // 列表缩进会超出边框,直接过滤掉\r\n html = html.replace(/text\\-indent:\\-(.*?)pt/gi, '');\r\n\r\n // 从html内容中查找粘贴内容中是否有图片元素,并返回img标签的属性src值的集合\r\n const imgSrcs = findAllImgSrcsFromHtml(html);\r\n\r\n html = replaceAllSpanFontSize(html);\r\n\r\n // 如果有图片\r\n if (imgSrcs && Array.isArray(imgSrcs) && imgSrcs.length) {\r\n // 从rtf内容中查找图片数据\r\n\r\n // 从rtf内容中查找图片数据\r\n const rtfImageData = extractImageDataFromRtf(rtf);\r\n\r\n if (rtfImageData.length) {\r\n html = await replaceImagesFileSourceWithInlineRepresentation(\r\n html,\r\n imgSrcs,\r\n rtfImageData,\r\n true,\r\n uploadUrl,\r\n downloadUrl,\r\n );\r\n }\r\n }\r\n editor.dangerouslyInsertHtml(html);\r\n return false;\r\n }\r\n },\r\n };\r\n // 工具栏配置\r\n const toolbarConfig = {\r\n insertKeys: {\r\n // 自定义插入的位置\r\n index: 24,\r\n // “上传附件”菜单\r\n keys: ['uploadAttachment'],\r\n },\r\n };\r\n return (\r\n <div className=\"vtx-wang-editor\">\r\n <Toolbar editor={editor} defaultConfig={toolbarConfig} mode=\"default\" />\r\n <Editor\r\n defaultConfig={editorConfig}\r\n value={value}\r\n onCreated={editor => {\r\n setEditor(editor);\r\n }}\r\n onChange={editor => {\r\n onChange(editor.getHtml());\r\n }}\r\n mode=\"default\"\r\n className={'vtx-wang-editor-content'}\r\n style={{ height }}\r\n {...rest}\r\n />\r\n </div>\r\n );\r\n});\r\n\r\nVtxWangeEditor.propTypes = {\r\n value: PropTypes.string,\r\n onChange: PropTypes.func,\r\n placeholder: PropTypes.string,\r\n downloadUrl: PropTypes.string,\r\n uploadUrl: PropTypes.string,\r\n height: PropTypes.number,\r\n};\r\n\r\nexport default VtxWangeEditor;\r\n"],"mappings":"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"}
@@ -8,13 +8,3 @@
8
8
  height: 350px;
9
9
  border-top: 1px solid #d9d9d9;
10
10
  }
11
- .vtx-wang-editor-html table tr:first-child td {
12
- border-right-width: 3px;
13
- }
14
- .vtx-wang-editor-html table td {
15
- border: 1px solid var(--w-e-textarea-border-color);
16
- line-height: 1.5;
17
- min-width: 30px;
18
- padding: 3px 5px;
19
- text-align: left;
20
- }
@@ -9,16 +9,4 @@
9
9
  height: 350px;
10
10
  border-top: @border-width-base @border-style-base @border-color-base;
11
11
  }
12
- &-html {
13
- table tr:first-child td {
14
- border-right-width: 3px;
15
- }
16
- table td {
17
- border: 1px solid var(--w-e-textarea-border-color);
18
- line-height: 1.5;
19
- min-width: 30px;
20
- padding: 3px 5px;
21
- text-align: left;
22
- }
23
- }
24
12
  }
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.extractImageDataFromRtf = extractImageDataFromRtf;
9
9
  exports.findAllImgSrcsFromHtml = findAllImgSrcsFromHtml;
10
+ exports.replaceAllSpanFontSize = replaceAllSpanFontSize;
10
11
  exports.replaceImagesFileSourceWithInlineRepresentation = replaceImagesFileSourceWithInlineRepresentation;
11
12
  exports.withEmptyHtml = withEmptyHtml;
12
13
 
@@ -22,6 +23,74 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
22
23
 
23
24
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
24
25
 
26
+ function replaceAllSpanFontSize(htmlData) {
27
+ var spanReg = /\<span([\s\S]+?)\<\/span\>/g;
28
+ var fontReg = /\<font([\s\S]+?)\<\/font\>/g;
29
+ var fontSizeReg = /font-size:([\s\S]+?)\;/g;
30
+ var spanArr = htmlData.match(spanReg); // 筛选出所有的span
31
+
32
+ if (!spanArr || Array.isArray(spanArr) && !spanArr.length) {
33
+ return false;
34
+ }
35
+
36
+ var fontSizeReplaceList = {};
37
+
38
+ for (var i = 0; i < spanArr.length; i++) {
39
+ var fontArr = spanArr[i].match(fontReg);
40
+
41
+ if ((fontArr === null || fontArr === void 0 ? void 0 : fontArr.length) > 0) {
42
+ var fontSize = spanArr[i].match(fontSizeReg);
43
+
44
+ if ((fontSize === null || fontSize === void 0 ? void 0 : fontSize.length) > 0) {
45
+ var ptValue = fontSize[0].split(':')[1].replace(';', '');
46
+
47
+ if (ptValue.indexOf('pt') > -1) {
48
+ var value = toFontSize(parseInt(Number(ptValue.replace('pt', '')) / 0.75));
49
+ fontSizeReplaceList[fontSize[0]] = "font-size:".concat(value, "px;");
50
+ }
51
+ }
52
+ }
53
+ }
54
+
55
+ for (var _i in fontSizeReplaceList) {
56
+ htmlData = htmlData.replaceAll(_i, fontSizeReplaceList[_i]);
57
+ }
58
+
59
+ return htmlData;
60
+ } // 判断字体在这个范围之内,不在这个范围之内 则不显示字体大小
61
+
62
+
63
+ function toFontSize(size) {
64
+ var result = size;
65
+ var sizeArr = [12, 13, 14, 15, 16, 19, 22, 24, 29, 32, 40, 48];
66
+
67
+ if (sizeArr.includes(size)) {
68
+ return result;
69
+ }
70
+
71
+ if (size < sizeArr[0]) {
72
+ return sizeArr[0];
73
+ }
74
+
75
+ if (size > sizeArr[sizeArr.length - 1]) {
76
+ return sizeArr[sizeArr.length - 1];
77
+ }
78
+
79
+ for (var i = 1; i < sizeArr.length; i++) {
80
+ if (size >= sizeArr[i - 1] && size <= sizeArr[i]) {
81
+ if (size - sizeArr[i - 1] < sizeArr[i] - size) {
82
+ result = sizeArr[i - 1];
83
+ } else {
84
+ result = sizeArr[i];
85
+ }
86
+
87
+ break;
88
+ }
89
+ }
90
+
91
+ return result;
92
+ }
93
+
25
94
  function findAllImgSrcsFromHtml(htmlData) {
26
95
  var imgReg = /<img.*?(?:>|\/>)/gi; //匹配图片中的img标签
27
96
 
@@ -214,9 +283,9 @@ function convertBase64UrlToBlob(dataurl) {
214
283
  var _arr = arr[1].substring(0, arr[1].length - 2);
215
284
 
216
285
  var mime = arr[0].match(/:(.*?);/)[1],
217
- bstr = atob(_arr),
218
- n = bstr.length,
219
- u8arr = new Uint8Array(n);
286
+ bstr = atob(_arr);
287
+ var n = bstr.length;
288
+ var u8arr = new Uint8Array(n);
220
289
 
221
290
  while (n--) {
222
291
  u8arr[n] = bstr.charCodeAt(n);
@@ -1 +1 @@
1
- {"version":3,"file":"wangEditorUtil.js","names":["findAllImgSrcsFromHtml","htmlData","imgReg","srcReg","widthReg","heightReg","arr","match","Array","isArray","length","srcArr","i","src","width","height","push","url","img","withEmptyHtml","editor","getHtml","newEditor","isEmpty","extractImageDataFromRtf","rtfData","regexPictureHeader","regexPicture","RegExp","source","images","result","image","imageType","includes","hex","replace","type","replaceImagesFileSourceWithInlineRepresentation","imageSrcs","imagesHexSources","isBase64Data","uploadUrl","downloadUrl","newSrc","_convertHexToBase64","formData","FormData","blob","convertBase64UrlToBlob","imgName","split","slice","file","File","append","window","fetch","method","body","then","response","json","res","data","id","hexString","btoa","map","char","String","fromCharCode","parseInt","join","dataurl","_arr","substring","mime","bstr","atob","n","u8arr","Uint8Array","charCodeAt","Blob"],"sources":["vtx-wang-editor/wangEditorUtil.js"],"sourcesContent":["export function findAllImgSrcsFromHtml(htmlData) {\r\n let imgReg = /<img.*?(?:>|\\/>)/gi; //匹配图片中的img标签\r\n let srcReg = /src=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的src\r\n let widthReg = /width=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的width\r\n let heightReg = /height=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的height\r\n\r\n let arr = htmlData.match(imgReg); //筛选出所有的img\r\n if (!arr || (Array.isArray(arr) && !arr.length)) {\r\n return false;\r\n }\r\n\r\n let srcArr = [];\r\n for (let i = 0; i < arr.length; i++) {\r\n let src = arr[i].match(srcReg);\r\n let width = arr[i].match(widthReg);\r\n let height = arr[i].match(heightReg);\r\n // 获取图片地址\r\n srcArr.push({\r\n width: width[1],\r\n height: height[1],\r\n url: src[1],\r\n img: arr[i],\r\n });\r\n }\r\n\r\n return srcArr;\r\n}\r\n// 处理为空的时候\r\nexport function withEmptyHtml(editor) {\r\n const { getHtml } = editor;\r\n const newEditor = editor;\r\n newEditor.getHtml = () => {\r\n if (newEditor.isEmpty()) {\r\n return '';\r\n }\r\n return getHtml();\r\n };\r\n\r\n return newEditor;\r\n}\r\n\r\nexport function extractImageDataFromRtf(rtfData) {\r\n if (!rtfData) {\r\n return [];\r\n }\r\n\r\n const regexPictureHeader = /{\\\\pict[\\s\\S]+?({\\\\\\*\\\\blipuid\\s?[\\da-fA-F]+)[\\s}]*/;\r\n const regexPicture = new RegExp(\r\n '(?:(' + regexPictureHeader.source + '))([\\\\da-fA-F\\\\s]+)\\\\}',\r\n 'g',\r\n );\r\n const images = rtfData.match(regexPicture);\r\n const result = [];\r\n\r\n if (images) {\r\n for (const image of images) {\r\n let imageType = false;\r\n\r\n if (image.includes('\\\\pngblip')) {\r\n imageType = 'image/png';\r\n } else if (image.includes('\\\\jpegblip')) {\r\n imageType = 'image/jpeg';\r\n }\r\n\r\n if (imageType) {\r\n result.push({\r\n hex: image.replace(regexPictureHeader, '').replace(/[^\\da-fA-F]/g, ''),\r\n type: imageType,\r\n });\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport async function replaceImagesFileSourceWithInlineRepresentation(\r\n htmlData,\r\n imageSrcs,\r\n imagesHexSources,\r\n isBase64Data = true,\r\n uploadUrl,\r\n downloadUrl,\r\n) {\r\n if (imageSrcs.length === imagesHexSources.length) {\r\n for (let i = 0; i < imageSrcs.length; i++) {\r\n const url = imageSrcs?.[i]?.url;\r\n const width = imageSrcs?.[i]?.width;\r\n const height = imageSrcs?.[i]?.height;\r\n const img = imageSrcs?.[i]?.img;\r\n const newSrc = isBase64Data\r\n ? `data:${imagesHexSources[i].type};base64,${_convertHexToBase64(\r\n imagesHexSources[i].hex,\r\n )}`\r\n : imagesHexSources[i];\r\n const formData = new FormData();\r\n let blob = convertBase64UrlToBlob(newSrc);\r\n let imgName = url.split('\\\\')?.slice(-1)?.[0] || 'image.jpg';\r\n let file = new File([blob], imgName);\r\n formData.append('file', file);\r\n const res = await window\r\n .fetch(uploadUrl, {\r\n method: 'POST',\r\n body: formData,\r\n })\r\n .then(function(response) {\r\n return response.json();\r\n });\r\n htmlData = htmlData.replace(\r\n img,\r\n `<img src=\"${downloadUrl}${res.data[0].id}\" style=\"width:${width}px;height:${height}px\"`,\r\n );\r\n }\r\n }\r\n return htmlData;\r\n}\r\n\r\nfunction _convertHexToBase64(hexString) {\r\n return btoa(\r\n hexString\r\n .match(/\\w{2}/g)\r\n .map(char => {\r\n return String.fromCharCode(parseInt(char, 16));\r\n })\r\n .join(''),\r\n );\r\n}\r\n\r\nfunction convertBase64UrlToBlob(dataurl) {\r\n var arr = dataurl.split(',');\r\n //注意base64的最后面中括号和引号是不转译的\r\n var _arr = arr[1].substring(0, arr[1].length - 2);\r\n var mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(_arr),\r\n n = bstr.length,\r\n u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new Blob([u8arr], {\r\n type: mime,\r\n });\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"wangEditorUtil.js","names":["replaceAllSpanFontSize","htmlData","spanReg","fontReg","fontSizeReg","spanArr","match","Array","isArray","length","fontSizeReplaceList","i","fontArr","fontSize","ptValue","split","replace","indexOf","value","toFontSize","parseInt","Number","replaceAll","size","result","sizeArr","includes","findAllImgSrcsFromHtml","imgReg","srcReg","widthReg","heightReg","arr","srcArr","src","width","height","push","url","img","withEmptyHtml","editor","getHtml","newEditor","isEmpty","extractImageDataFromRtf","rtfData","regexPictureHeader","regexPicture","RegExp","source","images","image","imageType","hex","type","replaceImagesFileSourceWithInlineRepresentation","imageSrcs","imagesHexSources","isBase64Data","uploadUrl","downloadUrl","newSrc","_convertHexToBase64","formData","FormData","blob","convertBase64UrlToBlob","imgName","slice","file","File","append","window","fetch","method","body","then","response","json","res","data","id","hexString","btoa","map","char","String","fromCharCode","join","dataurl","_arr","substring","mime","bstr","atob","n","u8arr","Uint8Array","charCodeAt","Blob"],"sources":["vtx-wang-editor/wangEditorUtil.js"],"sourcesContent":["export function replaceAllSpanFontSize(htmlData) {\r\n const spanReg = /\\<span([\\s\\S]+?)\\<\\/span\\>/g;\r\n const fontReg = /\\<font([\\s\\S]+?)\\<\\/font\\>/g;\r\n const fontSizeReg = /font-size:([\\s\\S]+?)\\;/g;\r\n\r\n let spanArr = htmlData.match(spanReg); // 筛选出所有的span\r\n if (!spanArr || (Array.isArray(spanArr) && !spanArr.length)) {\r\n return false;\r\n }\r\n let fontSizeReplaceList = {};\r\n for (let i = 0; i < spanArr.length; i++) {\r\n const fontArr = spanArr[i].match(fontReg);\r\n if (fontArr?.length > 0) {\r\n const fontSize = spanArr[i].match(fontSizeReg);\r\n if (fontSize?.length > 0) {\r\n const ptValue = fontSize[0].split(':')[1].replace(';', '');\r\n\r\n if (ptValue.indexOf('pt') > -1) {\r\n const value = toFontSize(parseInt(Number(ptValue.replace('pt', '')) / 0.75));\r\n fontSizeReplaceList[fontSize[0]] = `font-size:${value}px;`;\r\n }\r\n }\r\n }\r\n }\r\n for (let i in fontSizeReplaceList) {\r\n htmlData = htmlData.replaceAll(i, fontSizeReplaceList[i]);\r\n }\r\n return htmlData;\r\n}\r\n// 判断字体在这个范围之内,不在这个范围之内 则不显示字体大小\r\nfunction toFontSize(size) {\r\n let result = size;\r\n const sizeArr = [12, 13, 14, 15, 16, 19, 22, 24, 29, 32, 40, 48];\r\n if (sizeArr.includes(size)) {\r\n return result;\r\n }\r\n if (size < sizeArr[0]) {\r\n return sizeArr[0];\r\n }\r\n if (size > sizeArr[sizeArr.length - 1]) {\r\n return sizeArr[sizeArr.length - 1];\r\n }\r\n\r\n for (let i = 1; i < sizeArr.length; i++) {\r\n if (size >= sizeArr[i - 1] && size <= sizeArr[i]) {\r\n if (size - sizeArr[i - 1] < sizeArr[i] - size) {\r\n result = sizeArr[i - 1];\r\n } else {\r\n result = sizeArr[i];\r\n }\r\n break;\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nexport function findAllImgSrcsFromHtml(htmlData) {\r\n let imgReg = /<img.*?(?:>|\\/>)/gi; //匹配图片中的img标签\r\n let srcReg = /src=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的src\r\n let widthReg = /width=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的width\r\n let heightReg = /height=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的height\r\n\r\n let arr = htmlData.match(imgReg); //筛选出所有的img\r\n if (!arr || (Array.isArray(arr) && !arr.length)) {\r\n return false;\r\n }\r\n\r\n let srcArr = [];\r\n for (let i = 0; i < arr.length; i++) {\r\n let src = arr[i].match(srcReg);\r\n let width = arr[i].match(widthReg);\r\n let height = arr[i].match(heightReg);\r\n // 获取图片地址\r\n srcArr.push({\r\n width: width[1],\r\n height: height[1],\r\n url: src[1],\r\n img: arr[i],\r\n });\r\n }\r\n\r\n return srcArr;\r\n}\r\n// 处理为空的时候\r\nexport function withEmptyHtml(editor) {\r\n const { getHtml } = editor;\r\n const newEditor = editor;\r\n newEditor.getHtml = () => {\r\n if (newEditor.isEmpty()) {\r\n return '';\r\n }\r\n return getHtml();\r\n };\r\n\r\n return newEditor;\r\n}\r\n\r\nexport function extractImageDataFromRtf(rtfData) {\r\n if (!rtfData) {\r\n return [];\r\n }\r\n\r\n const regexPictureHeader = /{\\\\pict[\\s\\S]+?({\\\\\\*\\\\blipuid\\s?[\\da-fA-F]+)[\\s}]*/;\r\n const regexPicture = new RegExp(\r\n '(?:(' + regexPictureHeader.source + '))([\\\\da-fA-F\\\\s]+)\\\\}',\r\n 'g',\r\n );\r\n const images = rtfData.match(regexPicture);\r\n const result = [];\r\n\r\n if (images) {\r\n for (const image of images) {\r\n let imageType = false;\r\n\r\n if (image.includes('\\\\pngblip')) {\r\n imageType = 'image/png';\r\n } else if (image.includes('\\\\jpegblip')) {\r\n imageType = 'image/jpeg';\r\n }\r\n\r\n if (imageType) {\r\n result.push({\r\n hex: image.replace(regexPictureHeader, '').replace(/[^\\da-fA-F]/g, ''),\r\n type: imageType,\r\n });\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport async function replaceImagesFileSourceWithInlineRepresentation(\r\n htmlData,\r\n imageSrcs,\r\n imagesHexSources,\r\n isBase64Data = true,\r\n uploadUrl,\r\n downloadUrl,\r\n) {\r\n if (imageSrcs.length === imagesHexSources.length) {\r\n for (let i = 0; i < imageSrcs.length; i++) {\r\n const url = imageSrcs?.[i]?.url;\r\n const width = imageSrcs?.[i]?.width;\r\n const height = imageSrcs?.[i]?.height;\r\n const img = imageSrcs?.[i]?.img;\r\n const newSrc = isBase64Data\r\n ? `data:${imagesHexSources[i].type};base64,${_convertHexToBase64(\r\n imagesHexSources[i].hex,\r\n )}`\r\n : imagesHexSources[i];\r\n const formData = new FormData();\r\n let blob = convertBase64UrlToBlob(newSrc);\r\n let imgName = url.split('\\\\')?.slice(-1)?.[0] || 'image.jpg';\r\n let file = new File([blob], imgName);\r\n formData.append('file', file);\r\n const res = await window\r\n .fetch(uploadUrl, {\r\n method: 'POST',\r\n body: formData,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n });\r\n htmlData = htmlData.replace(\r\n img,\r\n `<img src=\"${downloadUrl}${res.data[0].id}\" style=\"width:${width}px;height:${height}px\"`,\r\n );\r\n }\r\n }\r\n return htmlData;\r\n}\r\n\r\nfunction _convertHexToBase64(hexString) {\r\n return btoa(\r\n hexString\r\n .match(/\\w{2}/g)\r\n .map(char => {\r\n return String.fromCharCode(parseInt(char, 16));\r\n })\r\n .join(''),\r\n );\r\n}\r\n\r\nfunction convertBase64UrlToBlob(dataurl) {\r\n const arr = dataurl.split(',');\r\n //注意base64的最后面中括号和引号是不转译的\r\n const _arr = arr[1].substring(0, arr[1].length - 2);\r\n const mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(_arr);\r\n let n = bstr.length;\r\n const u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new Blob([u8arr], {\r\n type: mime,\r\n });\r\n}\r\n"],"mappings":";;;;;;;;;;;;;+CACA,oJ;;;;;;;;;;;;AADO,SAASA,sBAAT,CAAgCC,QAAhC,EAA0C;EAC7C,IAAMC,OAAO,GAAG,6BAAhB;EACA,IAAMC,OAAO,GAAG,6BAAhB;EACA,IAAMC,WAAW,GAAG,yBAApB;EAEA,IAAIC,OAAO,GAAGJ,QAAQ,CAACK,KAAT,CAAeJ,OAAf,CAAd,CAL6C,CAKN;;EACvC,IAAI,CAACG,OAAD,IAAaE,KAAK,CAACC,OAAN,CAAcH,OAAd,KAA0B,CAACA,OAAO,CAACI,MAApD,EAA6D;IACzD,OAAO,KAAP;EACH;;EACD,IAAIC,mBAAmB,GAAG,EAA1B;;EACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,OAAO,CAACI,MAA5B,EAAoCE,CAAC,EAArC,EAAyC;IACrC,IAAMC,OAAO,GAAGP,OAAO,CAACM,CAAD,CAAP,CAAWL,KAAX,CAAiBH,OAAjB,CAAhB;;IACA,IAAI,CAAAS,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEH,MAAT,IAAkB,CAAtB,EAAyB;MACrB,IAAMI,QAAQ,GAAGR,OAAO,CAACM,CAAD,CAAP,CAAWL,KAAX,CAAiBF,WAAjB,CAAjB;;MACA,IAAI,CAAAS,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEJ,MAAV,IAAmB,CAAvB,EAA0B;QACtB,IAAMK,OAAO,GAAGD,QAAQ,CAAC,CAAD,CAAR,CAAYE,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BC,OAA1B,CAAkC,GAAlC,EAAuC,EAAvC,CAAhB;;QAEA,IAAIF,OAAO,CAACG,OAAR,CAAgB,IAAhB,IAAwB,CAAC,CAA7B,EAAgC;UAC5B,IAAMC,KAAK,GAAGC,UAAU,CAACC,QAAQ,CAACC,MAAM,CAACP,OAAO,CAACE,OAAR,CAAgB,IAAhB,EAAsB,EAAtB,CAAD,CAAN,GAAoC,IAArC,CAAT,CAAxB;UACAN,mBAAmB,CAACG,QAAQ,CAAC,CAAD,CAAT,CAAnB,uBAAgDK,KAAhD;QACH;MACJ;IACJ;EACJ;;EACD,KAAK,IAAIP,EAAT,IAAcD,mBAAd,EAAmC;IAC/BT,QAAQ,GAAGA,QAAQ,CAACqB,UAAT,CAAoBX,EAApB,EAAuBD,mBAAmB,CAACC,EAAD,CAA1C,CAAX;EACH;;EACD,OAAOV,QAAP;AACH,C,CACD;;;AACA,SAASkB,UAAT,CAAoBI,IAApB,EAA0B;EACtB,IAAIC,MAAM,GAAGD,IAAb;EACA,IAAME,OAAO,GAAG,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,EAAb,EAAiB,EAAjB,EAAqB,EAArB,EAAyB,EAAzB,EAA6B,EAA7B,EAAiC,EAAjC,EAAqC,EAArC,EAAyC,EAAzC,EAA6C,EAA7C,CAAhB;;EACA,IAAIA,OAAO,CAACC,QAAR,CAAiBH,IAAjB,CAAJ,EAA4B;IACxB,OAAOC,MAAP;EACH;;EACD,IAAID,IAAI,GAAGE,OAAO,CAAC,CAAD,CAAlB,EAAuB;IACnB,OAAOA,OAAO,CAAC,CAAD,CAAd;EACH;;EACD,IAAIF,IAAI,GAAGE,OAAO,CAACA,OAAO,CAAChB,MAAR,GAAiB,CAAlB,CAAlB,EAAwC;IACpC,OAAOgB,OAAO,CAACA,OAAO,CAAChB,MAAR,GAAiB,CAAlB,CAAd;EACH;;EAED,KAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGc,OAAO,CAAChB,MAA5B,EAAoCE,CAAC,EAArC,EAAyC;IACrC,IAAIY,IAAI,IAAIE,OAAO,CAACd,CAAC,GAAG,CAAL,CAAf,IAA0BY,IAAI,IAAIE,OAAO,CAACd,CAAD,CAA7C,EAAkD;MAC9C,IAAIY,IAAI,GAAGE,OAAO,CAACd,CAAC,GAAG,CAAL,CAAd,GAAwBc,OAAO,CAACd,CAAD,CAAP,GAAaY,IAAzC,EAA+C;QAC3CC,MAAM,GAAGC,OAAO,CAACd,CAAC,GAAG,CAAL,CAAhB;MACH,CAFD,MAEO;QACHa,MAAM,GAAGC,OAAO,CAACd,CAAD,CAAhB;MACH;;MACD;IACH;EACJ;;EACD,OAAOa,MAAP;AACH;;AAEM,SAASG,sBAAT,CAAgC1B,QAAhC,EAA0C;EAC7C,IAAI2B,MAAM,GAAG,oBAAb,CAD6C,CACV;;EACnC,IAAIC,MAAM,GAAG,+BAAb,CAF6C,CAEC;;EAC9C,IAAIC,QAAQ,GAAG,iCAAf,CAH6C,CAGK;;EAClD,IAAIC,SAAS,GAAG,kCAAhB,CAJ6C,CAIO;;EAEpD,IAAIC,GAAG,GAAG/B,QAAQ,CAACK,KAAT,CAAesB,MAAf,CAAV,CAN6C,CAMX;;EAClC,IAAI,CAACI,GAAD,IAASzB,KAAK,CAACC,OAAN,CAAcwB,GAAd,KAAsB,CAACA,GAAG,CAACvB,MAAxC,EAAiD;IAC7C,OAAO,KAAP;EACH;;EAED,IAAIwB,MAAM,GAAG,EAAb;;EACA,KAAK,IAAItB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqB,GAAG,CAACvB,MAAxB,EAAgCE,CAAC,EAAjC,EAAqC;IACjC,IAAIuB,GAAG,GAAGF,GAAG,CAACrB,CAAD,CAAH,CAAOL,KAAP,CAAauB,MAAb,CAAV;IACA,IAAIM,KAAK,GAAGH,GAAG,CAACrB,CAAD,CAAH,CAAOL,KAAP,CAAawB,QAAb,CAAZ;IACA,IAAIM,MAAM,GAAGJ,GAAG,CAACrB,CAAD,CAAH,CAAOL,KAAP,CAAayB,SAAb,CAAb,CAHiC,CAIjC;;IACAE,MAAM,CAACI,IAAP,CAAY;MACRF,KAAK,EAAEA,KAAK,CAAC,CAAD,CADJ;MAERC,MAAM,EAAEA,MAAM,CAAC,CAAD,CAFN;MAGRE,GAAG,EAAEJ,GAAG,CAAC,CAAD,CAHA;MAIRK,GAAG,EAAEP,GAAG,CAACrB,CAAD;IAJA,CAAZ;EAMH;;EAED,OAAOsB,MAAP;AACH,C,CACD;;;AACO,SAASO,aAAT,CAAuBC,MAAvB,EAA+B;EAClC,IAAQC,OAAR,GAAoBD,MAApB,CAAQC,OAAR;EACA,IAAMC,SAAS,GAAGF,MAAlB;;EACAE,SAAS,CAACD,OAAV,GAAoB,YAAM;IACtB,IAAIC,SAAS,CAACC,OAAV,EAAJ,EAAyB;MACrB,OAAO,EAAP;IACH;;IACD,OAAOF,OAAO,EAAd;EACH,CALD;;EAOA,OAAOC,SAAP;AACH;;AAEM,SAASE,uBAAT,CAAiCC,OAAjC,EAA0C;EAC7C,IAAI,CAACA,OAAL,EAAc;IACV,OAAO,EAAP;EACH;;EAED,IAAMC,kBAAkB,GAAG,qDAA3B;EACA,IAAMC,YAAY,GAAG,IAAIC,MAAJ,CACjB,SAASF,kBAAkB,CAACG,MAA5B,GAAqC,wBADpB,EAEjB,GAFiB,CAArB;EAIA,IAAMC,MAAM,GAAGL,OAAO,CAACxC,KAAR,CAAc0C,YAAd,CAAf;EACA,IAAMxB,MAAM,GAAG,EAAf;;EAEA,IAAI2B,MAAJ,EAAY;IAAA,2CACYA,MADZ;IAAA;;IAAA;MACR,oDAA4B;QAAA,IAAjBC,KAAiB;QACxB,IAAIC,SAAS,GAAG,KAAhB;;QAEA,IAAID,KAAK,CAAC1B,QAAN,CAAe,WAAf,CAAJ,EAAiC;UAC7B2B,SAAS,GAAG,WAAZ;QACH,CAFD,MAEO,IAAID,KAAK,CAAC1B,QAAN,CAAe,YAAf,CAAJ,EAAkC;UACrC2B,SAAS,GAAG,YAAZ;QACH;;QAED,IAAIA,SAAJ,EAAe;UACX7B,MAAM,CAACa,IAAP,CAAY;YACRiB,GAAG,EAAEF,KAAK,CAACpC,OAAN,CAAc+B,kBAAd,EAAkC,EAAlC,EAAsC/B,OAAtC,CAA8C,cAA9C,EAA8D,EAA9D,CADG;YAERuC,IAAI,EAAEF;UAFE,CAAZ;QAIH;MACJ;IAhBO;MAAA;IAAA;MAAA;IAAA;EAiBX;;EAED,OAAO7B,MAAP;AACH;;SAEqBgC,+C;;;;;gHAAf,iBACHvD,QADG,EAEHwD,SAFG,EAGHC,gBAHG;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;;IAAA;MAAA;QAAA;UAAA;YAIHC,YAJG,2DAIY,IAJZ;YAKHC,SALG;YAMHC,WANG;;YAAA,MAQCJ,SAAS,CAAChD,MAAV,KAAqBiD,gBAAgB,CAACjD,MARvC;cAAA;cAAA;YAAA;;YASUE,CATV,GASc,CATd;;UAAA;YAAA,MASiBA,CAAC,GAAG8C,SAAS,CAAChD,MAT/B;cAAA;cAAA;YAAA;;YAUW6B,GAVX,GAUiBmB,SAVjB,aAUiBA,SAVjB,uCAUiBA,SAAS,CAAG9C,CAAH,CAV1B,iDAUiB,aAAgB2B,GAVjC;YAWWH,KAXX,GAWmBsB,SAXnB,aAWmBA,SAXnB,wCAWmBA,SAAS,CAAG9C,CAAH,CAX5B,kDAWmB,cAAgBwB,KAXnC;YAYWC,MAZX,GAYoBqB,SAZpB,aAYoBA,SAZpB,wCAYoBA,SAAS,CAAG9C,CAAH,CAZ7B,kDAYoB,cAAgByB,MAZpC;YAaWG,GAbX,GAaiBkB,SAbjB,aAaiBA,SAbjB,wCAaiBA,SAAS,CAAG9C,CAAH,CAb1B,kDAaiB,cAAgB4B,GAbjC;YAcWuB,MAdX,GAcoBH,YAAY,kBACbD,gBAAgB,CAAC/C,CAAD,CAAhB,CAAoB4C,IADP,qBACsBQ,mBAAmB,CAC5DL,gBAAgB,CAAC/C,CAAD,CAAhB,CAAoB2C,GADwC,CADzC,IAIrBI,gBAAgB,CAAC/C,CAAD,CAlB3B;YAmBWqD,QAnBX,GAmBsB,IAAIC,QAAJ,EAnBtB;YAoBSC,IApBT,GAoBgBC,sBAAsB,CAACL,MAAD,CApBtC;YAqBSM,OArBT,GAqBmB,eAAA9B,GAAG,CAACvB,KAAJ,CAAU,IAAV,+EAAiBsD,KAAjB,CAAuB,CAAC,CAAxB,uEAA6B,CAA7B,MAAmC,WArBtD;YAsBSC,IAtBT,GAsBgB,IAAIC,IAAJ,CAAS,CAACL,IAAD,CAAT,EAAiBE,OAAjB,CAtBhB;YAuBKJ,QAAQ,CAACQ,MAAT,CAAgB,MAAhB,EAAwBF,IAAxB;YAvBL;YAAA,OAwBuBG,MAAM,CACnBC,KADa,CACPd,SADO,EACI;cACde,MAAM,EAAE,MADM;cAEdC,IAAI,EAAEZ;YAFQ,CADJ,EAKba,IALa,CAKR,UAAUC,QAAV,EAAoB;cACtB,OAAOA,QAAQ,CAACC,IAAT,EAAP;YACH,CAPa,CAxBvB;;UAAA;YAwBWC,GAxBX;YAgCK/E,QAAQ,GAAGA,QAAQ,CAACe,OAAT,CACPuB,GADO,uBAEMsB,WAFN,SAEoBmB,GAAG,CAACC,IAAJ,CAAS,CAAT,EAAYC,EAFhC,8BAEoD/C,KAFpD,uBAEsEC,MAFtE,UAAX;;UAhCL;YASuCzB,CAAC,EATxC;YAAA;YAAA;;UAAA;YAAA,iCAsCIV,QAtCJ;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,C;;;;AAyCP,SAAS8D,mBAAT,CAA6BoB,SAA7B,EAAwC;EACpC,OAAOC,IAAI,CACPD,SAAS,CACJ7E,KADL,CACW,QADX,EAEK+E,GAFL,CAES,UAAAC,KAAI,EAAI;IACT,OAAOC,MAAM,CAACC,YAAP,CAAoBpE,QAAQ,CAACkE,KAAD,EAAO,EAAP,CAA5B,CAAP;EACH,CAJL,EAKKG,IALL,CAKU,EALV,CADO,CAAX;AAQH;;AAED,SAAStB,sBAAT,CAAgCuB,OAAhC,EAAyC;EACrC,IAAM1D,GAAG,GAAG0D,OAAO,CAAC3E,KAAR,CAAc,GAAd,CAAZ,CADqC,CAErC;;EACA,IAAM4E,IAAI,GAAG3D,GAAG,CAAC,CAAD,CAAH,CAAO4D,SAAP,CAAiB,CAAjB,EAAoB5D,GAAG,CAAC,CAAD,CAAH,CAAOvB,MAAP,GAAgB,CAApC,CAAb;;EACA,IAAMoF,IAAI,GAAG7D,GAAG,CAAC,CAAD,CAAH,CAAO1B,KAAP,CAAa,SAAb,EAAwB,CAAxB,CAAb;EAAA,IACIwF,IAAI,GAAGC,IAAI,CAACJ,IAAD,CADf;EAEA,IAAIK,CAAC,GAAGF,IAAI,CAACrF,MAAb;EACA,IAAMwF,KAAK,GAAG,IAAIC,UAAJ,CAAeF,CAAf,CAAd;;EACA,OAAOA,CAAC,EAAR,EAAY;IACRC,KAAK,CAACD,CAAD,CAAL,GAAWF,IAAI,CAACK,UAAL,CAAgBH,CAAhB,CAAX;EACH;;EACD,OAAO,IAAII,IAAJ,CAAS,CAACH,KAAD,CAAT,EAAkB;IACrB1C,IAAI,EAAEsC;EADe,CAAlB,CAAP;AAGH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtx/components",
3
- "version": "3.1.18",
3
+ "version": "3.1.19",
4
4
  "description": "React components for Vortex",
5
5
  "keywords": [
6
6
  "react",