@tiptap/core 2.0.0-beta.200 → 2.0.0-beta.201
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/tiptap-core.cjs.js +3 -31
- package/dist/tiptap-core.cjs.js.map +1 -1
- package/dist/tiptap-core.esm.js +3 -31
- package/dist/tiptap-core.esm.js.map +1 -1
- package/dist/tiptap-core.umd.js +3 -31
- package/dist/tiptap-core.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/PasteRule.ts +1 -34
package/package.json
CHANGED
package/src/PasteRule.ts
CHANGED
|
@@ -160,9 +160,6 @@ function run(config: {
|
|
|
160
160
|
export function pasteRulesPlugin(props: { editor: Editor, rules: PasteRule[] }): Plugin[] {
|
|
161
161
|
const { editor, rules } = props
|
|
162
162
|
let dragSourceElement: Element | null = null
|
|
163
|
-
let draggedElement: any
|
|
164
|
-
let draggedText: Selection | null = null
|
|
165
|
-
let caretOffset: number | undefined
|
|
166
163
|
let isPastedFromProseMirror = false
|
|
167
164
|
let isDroppedFromProseMirror = false
|
|
168
165
|
|
|
@@ -171,55 +168,25 @@ export function pasteRulesPlugin(props: { editor: Editor, rules: PasteRule[] }):
|
|
|
171
168
|
// we register a global drag handler to track the current drag source element
|
|
172
169
|
view(view) {
|
|
173
170
|
const handleDragstart = (event: DragEvent) => {
|
|
174
|
-
draggedElement = event.target
|
|
175
|
-
draggedText = window.getSelection()
|
|
176
|
-
event.dataTransfer?.setData('text/plain', draggedText?.toString() as string)
|
|
177
171
|
dragSourceElement = view.dom.parentElement?.contains(event.target as Element)
|
|
178
172
|
? view.dom.parentElement
|
|
179
173
|
: null
|
|
180
174
|
}
|
|
181
175
|
|
|
182
|
-
const handleDragEnter = (event: DragEvent) => {
|
|
183
|
-
event.preventDefault()
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
const handleDragOver = (event: DragEvent) => {
|
|
187
|
-
event.preventDefault()
|
|
188
|
-
let caretData
|
|
189
|
-
|
|
190
|
-
if (document.caretRangeFromPoint) {
|
|
191
|
-
caretData = document.caretRangeFromPoint(event.clientX, event.clientY)
|
|
192
|
-
}
|
|
193
|
-
caretOffset = caretData?.startOffset
|
|
194
|
-
}
|
|
195
|
-
|
|
196
176
|
window.addEventListener('dragstart', handleDragstart)
|
|
197
177
|
|
|
198
|
-
window.addEventListener('dragenter', handleDragEnter)
|
|
199
|
-
|
|
200
|
-
window.addEventListener('dragover', handleDragOver)
|
|
201
|
-
|
|
202
178
|
return {
|
|
203
179
|
destroy() {
|
|
204
180
|
window.removeEventListener('dragstart', handleDragstart)
|
|
205
|
-
window.removeEventListener('dragenter', handleDragEnter)
|
|
206
|
-
window.removeEventListener('dragover', handleDragOver)
|
|
207
181
|
},
|
|
208
182
|
}
|
|
209
183
|
},
|
|
210
184
|
|
|
211
185
|
props: {
|
|
212
186
|
handleDOMEvents: {
|
|
213
|
-
drop:
|
|
187
|
+
drop: view => {
|
|
214
188
|
isDroppedFromProseMirror = dragSourceElement === view.dom.parentElement
|
|
215
|
-
event.preventDefault()
|
|
216
|
-
|
|
217
|
-
const data = event.dataTransfer?.getData('text/plain')
|
|
218
189
|
|
|
219
|
-
if (event.target.parentElement.className === 'ProseMirror') {
|
|
220
|
-
draggedElement.textContent = draggedElement.textContent.replace(data, '')
|
|
221
|
-
event.target.textContent = event.target.textContent.slice(0, caretOffset) + data + event.target.textContent.slice(caretOffset)
|
|
222
|
-
}
|
|
223
190
|
return false
|
|
224
191
|
},
|
|
225
192
|
|