@ctzhian/tiptap 1.3.1 → 1.3.3
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.
|
@@ -85,7 +85,9 @@ export var IframeExtension = function IframeExtension(props) {
|
|
|
85
85
|
return ['iframe', mergeAttributes(this.options.HTMLAttributes, _objectSpread(_objectSpread({}, rest), {}, {
|
|
86
86
|
src: src,
|
|
87
87
|
frameborder: '0',
|
|
88
|
-
allowfullscreen: 'true'
|
|
88
|
+
allowfullscreen: 'true',
|
|
89
|
+
autoplay: '0',
|
|
90
|
+
loop: '0'
|
|
89
91
|
}))];
|
|
90
92
|
},
|
|
91
93
|
addCommands: function addCommands() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Extension } from '@tiptap/core';
|
|
2
2
|
export declare const TableExtension: ({ editable }: {
|
|
3
3
|
editable: boolean;
|
|
4
|
-
}) => (
|
|
4
|
+
}) => (import("@tiptap/core").Node<import("@tiptap/extension-table").TableOptions, any> | import("@tiptap/core").Node<import("@tiptap/extension-table").TableHeaderOptions, any> | Extension<any, any>)[];
|
|
5
5
|
export default TableExtension;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
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; }
|
|
2
5
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
6
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
7
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -8,7 +11,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
8
11
|
|
|
9
12
|
import { Extension } from '@tiptap/core';
|
|
10
13
|
import { Table, TableCell, TableHeader, TableRow } from '@tiptap/extension-table';
|
|
11
|
-
import { TextSelection } from '@tiptap/pm/state';
|
|
14
|
+
import { Plugin, TextSelection } from '@tiptap/pm/state';
|
|
12
15
|
import { createTableContextMenuPlugin } from "../component/Table";
|
|
13
16
|
export var TableExtension = function TableExtension(_ref) {
|
|
14
17
|
var editable = _ref.editable;
|
|
@@ -169,6 +172,81 @@ export var TableExtension = function TableExtension(_ref) {
|
|
|
169
172
|
addProseMirrorPlugins: function addProseMirrorPlugins() {
|
|
170
173
|
return editable ? [createTableContextMenuPlugin(this.editor)] : [];
|
|
171
174
|
}
|
|
175
|
+
}),
|
|
176
|
+
// Safari 中文输入 deleteCompositionText 修复
|
|
177
|
+
Extension.create({
|
|
178
|
+
name: 'safariCompositionDeleteFix',
|
|
179
|
+
addProseMirrorPlugins: function addProseMirrorPlugins() {
|
|
180
|
+
if (!editable) return [];
|
|
181
|
+
var ZERO_WIDTH_SPACE = "\u200B";
|
|
182
|
+
var isSafari = function () {
|
|
183
|
+
if (typeof navigator === 'undefined') return false;
|
|
184
|
+
var ua = navigator.userAgent;
|
|
185
|
+
var isAppleMobile = /iP(ad|hone|od)/.test(ua);
|
|
186
|
+
var isMacSafari = /Safari\//.test(ua) && !/Chrome\//.test(ua);
|
|
187
|
+
return isAppleMobile || isMacSafari;
|
|
188
|
+
}();
|
|
189
|
+
if (!isSafari) return [];
|
|
190
|
+
|
|
191
|
+
// 注意:这里不能使用上面从 ProseMirror 导入的 Node 类型,需判断 DOM 文本节点
|
|
192
|
+
var isTextNode = function isTextNode(node) {
|
|
193
|
+
return !!node && node.nodeType === 3;
|
|
194
|
+
};
|
|
195
|
+
return [new Plugin({
|
|
196
|
+
props: {
|
|
197
|
+
handleDOMEvents: {
|
|
198
|
+
beforeinput: function beforeinput(_view, event) {
|
|
199
|
+
// 仅处理 Safari 在中文合成结束后触发的删除合成文本行为
|
|
200
|
+
if (event.inputType !== 'deleteCompositionText') {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
var selection = window.getSelection();
|
|
204
|
+
if (!selection || selection.rangeCount === 0) return false;
|
|
205
|
+
var range = selection.getRangeAt(0);
|
|
206
|
+
var startContainer = range.startContainer,
|
|
207
|
+
endContainer = range.endContainer,
|
|
208
|
+
startOffset = range.startOffset,
|
|
209
|
+
endOffset = range.endOffset;
|
|
210
|
+
if (isTextNode(startContainer) && startContainer === endContainer && startOffset === 0 && endOffset === startContainer.length) {
|
|
211
|
+
var _startContainer$paren;
|
|
212
|
+
(_startContainer$paren = startContainer.parentElement) === null || _startContainer$paren === void 0 || _startContainer$paren.insertBefore(document.createTextNode(ZERO_WIDTH_SPACE), startContainer);
|
|
213
|
+
}
|
|
214
|
+
// 让 ProseMirror 照常处理
|
|
215
|
+
return false;
|
|
216
|
+
},
|
|
217
|
+
input: function input(_view, event) {
|
|
218
|
+
if (event.inputType !== 'deleteCompositionText') {
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
var selection = window.getSelection();
|
|
222
|
+
if (!selection || selection.rangeCount === 0) return false;
|
|
223
|
+
var range = selection.getRangeAt(0);
|
|
224
|
+
var node = range.startContainer;
|
|
225
|
+
var parentEl = (node === null || node === void 0 ? void 0 : node.parentElement) || null;
|
|
226
|
+
if (!parentEl) return false;
|
|
227
|
+
var textNodes = Array.from(parentEl.childNodes).filter(isTextNode);
|
|
228
|
+
var _iterator = _createForOfIteratorHelper(textNodes),
|
|
229
|
+
_step;
|
|
230
|
+
try {
|
|
231
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
232
|
+
var textNode = _step.value;
|
|
233
|
+
if (textNode.textContent === ZERO_WIDTH_SPACE) {
|
|
234
|
+
textNode.remove();
|
|
235
|
+
} else if (textNode.textContent && textNode.textContent.includes(ZERO_WIDTH_SPACE)) {
|
|
236
|
+
textNode.textContent = textNode.textContent.split(ZERO_WIDTH_SPACE).join('');
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
} catch (err) {
|
|
240
|
+
_iterator.e(err);
|
|
241
|
+
} finally {
|
|
242
|
+
_iterator.f();
|
|
243
|
+
}
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
})];
|
|
249
|
+
}
|
|
172
250
|
})];
|
|
173
251
|
};
|
|
174
252
|
export default TableExtension;
|