Skip to content

Commit 1450d35

Browse files
committed
chore: upgrade Slate dependency to version 0.82.0
- Update Slate dependency across multiple packages from 0.72.0 to 0.82.0 - Modify core content plugin to align with latest Slate implementation - Refactor apply and deleteBackward methods in core plugin - Ensure compatibility with Slate's latest version
1 parent 2e06943 commit 1450d35

File tree

16 files changed

+74
-59
lines changed

16 files changed

+74
-59
lines changed

.changeset/chilled-timers-remember.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@wangeditor-next/editor': patch
3+
'@wangeditor-next/core': patch
4+
---
5+
6+
update slate version && modify core content plugin

packages/basic-modules/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"dom7": "^3.0.0 || ^4.0.0",
4949
"lodash.throttle": "^4.1.1",
5050
"nanoid": "^5.0.0",
51-
"slate": "^0.72.0",
51+
"slate": "^0.82.0",
5252
"snabbdom": "^3.6.0"
5353
},
5454
"dependencies": {

packages/code-highlight/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"peerDependencies": {
4747
"@wangeditor-next/core": "1.7.33",
4848
"dom7": "^3.0.0 || ^4.0.0",
49-
"slate": "^0.72.0",
49+
"slate": "^0.82.0",
5050
"snabbdom": "^3.6.0"
5151
},
5252
"dependencies": {

packages/core/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"lodash.throttle": "^4.1.1",
5757
"lodash.toarray": "^4.4.0",
5858
"nanoid": "^5.0.0",
59-
"slate": "^0.72.0",
59+
"slate": "^0.82.0",
6060
"snabbdom": "^3.6.0"
6161
},
6262
"dependencies": {

packages/core/src/editor/plugins/with-content.ts

+36-27
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,17 @@ import { EDITOR_TO_SELECTION, NODE_TO_KEY } from '../../utils/weak-maps'
2424
import { DomEditor } from '../dom-editor'
2525
import { ElementWithId } from '../interface'
2626

27+
const getMatches = (e: IDomEditor, path: Path) => {
28+
const matches: [Path, Key][] = []
29+
30+
for (const [n, p] of Editor.levels(e, { at: path })) {
31+
const key = DomEditor.findKey(e, n)
32+
33+
matches.push([p, key])
34+
}
35+
return matches
36+
}
37+
2738
/**
2839
* 把 elem 插入到编辑器
2940
* @param editor editor
@@ -56,62 +67,56 @@ export const withContent = <T extends Editor>(editor: T) => {
5667
insertText(text)
5768
}
5869

59-
// 重写 apply 方法
60-
// apply 方法非常重要,它最终执行 operation https://docs.slatejs.org/concepts/05-operations
61-
// operation 的接口定义参考 slate src/interfaces/operation.ts
70+
// 重写 apply 方法,参考 slate 最新版本的实现
6271
e.apply = (op: Operation) => {
6372
const matches: [Path, Key][] = []
6473

6574
switch (op.type) {
6675
case 'insert_text':
6776
case 'remove_text':
68-
case 'set_node': {
69-
for (const [node, path] of Editor.levels(e, { at: op.path })) {
70-
// 在当前节点寻找
71-
const key = DomEditor.findKey(e, node)
72-
73-
matches.push([path, key])
74-
}
77+
case 'set_node':
78+
case 'split_node': {
79+
matches.push(...getMatches(e, op.path))
7580
break
7681
}
7782

7883
case 'insert_node':
79-
case 'remove_node':
80-
case 'merge_node':
81-
case 'split_node': {
82-
for (const [node, path] of Editor.levels(e, { at: Path.parent(op.path) })) {
83-
// 在父节点寻找
84-
const key = DomEditor.findKey(e, node)
84+
case 'remove_node': {
85+
matches.push(...getMatches(e, Path.parent(op.path)))
86+
break
87+
}
8588

86-
matches.push([path, key])
87-
}
89+
case 'merge_node': {
90+
const prevPath = Path.previous(op.path)
91+
92+
matches.push(...getMatches(e, prevPath))
8893
break
8994
}
9095

9196
case 'move_node': {
92-
for (const [node, path] of Editor.levels(e, {
93-
at: Path.common(Path.parent(op.path), Path.parent(op.newPath)),
94-
})) {
95-
const key = DomEditor.findKey(e, node)
97+
const commonPath = Path.common(
98+
Path.parent(op.path),
99+
Path.parent(op.newPath),
100+
)
96101

97-
matches.push([path, key])
98-
}
102+
matches.push(...getMatches(e, commonPath))
99103
break
100104
}
101105
default:
102106
}
103107

104-
// 执行原本的 apply - 重要!!!
108+
// 执行原本的 apply
105109
apply(op)
106110

107-
// 绑定 node 和 key
111+
// 更新 node 和 key 的映射
108112
for (const [path, key] of matches) {
109113
const [node] = Editor.node(e, path)
110114

111115
NODE_TO_KEY.set(node, key)
112116
}
113117
}
114118

119+
// 重写 deleteBackward,参考 slate 最新版本的实现
115120
e.deleteBackward = unit => {
116121
if (unit !== 'line') {
117122
return deleteBackward(unit)
@@ -125,7 +130,11 @@ export const withContent = <T extends Editor>(editor: T) => {
125130

126131
if (parentBlockEntry) {
127132
const [, parentBlockPath] = parentBlockEntry
128-
const parentElementRange = Editor.range(editor, parentBlockPath, editor.selection.anchor)
133+
const parentElementRange = Editor.range(
134+
editor,
135+
parentBlockPath,
136+
editor.selection.anchor,
137+
)
129138

130139
const currentLineRange = findCurrentLineRange(e, parentElementRange)
131140

packages/editor/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
"lodash.throttle": "^4.1.1",
7373
"lodash.toarray": "^4.4.0",
7474
"nanoid": "^5.0.0",
75-
"slate": "^0.72.0",
75+
"slate": "^0.82.0",
7676
"snabbdom": "^3.6.0"
7777
}
7878
}

packages/list-module/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"peerDependencies": {
4747
"@wangeditor-next/core": "1.7.33",
4848
"dom7": "^3.0.0 || ^4.0.0",
49-
"slate": "^0.72.0",
49+
"slate": "^0.82.0",
5050
"snabbdom": "^3.6.0"
5151
}
5252
}

packages/plugin-float-image/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"peerDependencies": {
4444
"@wangeditor-next/editor": "5.6.33",
4545
"dom7": "^3.0.0 || ^4.0.0",
46-
"slate": "^0.72.0",
46+
"slate": "^0.82.0",
4747
"snabbdom": "^3.6.0"
4848
}
4949
}

packages/plugin-link-card/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"peerDependencies": {
4444
"@wangeditor-next/editor": "5.6.33",
4545
"dom7": "^3.0.0 || ^4.0.0",
46-
"slate": "^0.72.0",
46+
"slate": "^0.82.0",
4747
"snabbdom": "^3.6.0"
4848
}
4949
}

packages/plugin-markdown/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"peerDependencies": {
4444
"@wangeditor-next/editor": "5.6.33",
4545
"dom7": "^3.0.0 || ^4.0.0",
46-
"slate": "^0.72.0",
46+
"slate": "^0.82.0",
4747
"snabbdom": "^3.6.0"
4848
}
4949
}

packages/table-module/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"lodash.isequal": "^4.5.0",
5151
"lodash.throttle": "^4.1.1",
5252
"nanoid": "^5.0.0",
53-
"slate": "^0.72.0",
53+
"slate": "^0.82.0",
5454
"snabbdom": "^3.6.0"
5555
}
5656
}

packages/upload-image-module/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"@wangeditor-next/core": "1.7.33",
5151
"dom7": "^3.0.0 || ^4.0.0",
5252
"lodash.foreach": "^4.5.0",
53-
"slate": "^0.72.0",
53+
"slate": "^0.82.0",
5454
"snabbdom": "^3.6.0"
5555
}
5656
}

packages/video-module/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
"@wangeditor-next/core": "1.7.33",
5050
"dom7": "^3.0.0 || ^4.0.0",
5151
"nanoid": "^5.0.0",
52-
"slate": "^0.72.0",
52+
"slate": "^0.82.0",
5353
"snabbdom": "^3.6.0"
5454
}
5555
}

packages/yjs-for-react/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
"@wangeditor-next/editor": "5.6.33",
6262
"@wangeditor-next/yjs": "^0.1.31",
6363
"react": ">=17.0.2",
64-
"slate": "^0.72.0",
64+
"slate": "^0.82.0",
6565
"yjs": "^13.5.29"
6666
}
6767
}

packages/yjs/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
},
5050
"peerDependencies": {
5151
"@wangeditor-next/core": "1.7.33",
52-
"slate": "^0.72.0",
52+
"slate": "^0.82.0",
5353
"yjs": "^13.5.29"
5454
},
5555
"bugs": {
@@ -59,7 +59,7 @@
5959
"y-protocols": "^1.0.5"
6060
},
6161
"devDependencies": {
62-
"slate": "^0.72.0",
62+
"slate": "^0.82.0",
6363
"typescript": "^5.0.0",
6464
"yjs": "^13.5.29"
6565
}

yarn.lock

+18-18
Original file line numberDiff line numberDiff line change
@@ -3505,7 +3505,7 @@ __metadata:
35053505
dom7: ^3.0.0 || ^4.0.0
35063506
lodash.throttle: ^4.1.1
35073507
nanoid: ^5.0.0
3508-
slate: ^0.72.0
3508+
slate: ^0.82.0
35093509
snabbdom: ^3.6.0
35103510
languageName: unknown
35113511
linkType: soft
@@ -3519,7 +3519,7 @@ __metadata:
35193519
peerDependencies:
35203520
"@wangeditor-next/core": 1.7.33
35213521
dom7: ^3.0.0 || ^4.0.0
3522-
slate: ^0.72.0
3522+
slate: ^0.82.0
35233523
snabbdom: ^3.6.0
35243524
languageName: unknown
35253525
linkType: soft
@@ -3548,7 +3548,7 @@ __metadata:
35483548
lodash.throttle: ^4.1.1
35493549
lodash.toarray: ^4.4.0
35503550
nanoid: ^5.0.0
3551-
slate: ^0.72.0
3551+
slate: ^0.82.0
35523552
snabbdom: ^3.6.0
35533553
languageName: unknown
35543554
linkType: soft
@@ -3590,7 +3590,7 @@ __metadata:
35903590
lodash.throttle: "npm:^4.1.1"
35913591
lodash.toarray: "npm:^4.4.0"
35923592
nanoid: "npm:^5.0.0"
3593-
slate: "npm:^0.72.0"
3593+
slate: "npm:^0.82.0"
35943594
snabbdom: "npm:^3.6.0"
35953595
languageName: unknown
35963596
linkType: soft
@@ -3601,7 +3601,7 @@ __metadata:
36013601
peerDependencies:
36023602
"@wangeditor-next/core": 1.7.33
36033603
dom7: ^3.0.0 || ^4.0.0
3604-
slate: ^0.72.0
3604+
slate: ^0.82.0
36053605
snabbdom: ^3.6.0
36063606
languageName: unknown
36073607
linkType: soft
@@ -3612,7 +3612,7 @@ __metadata:
36123612
peerDependencies:
36133613
"@wangeditor-next/editor": 5.6.33
36143614
dom7: ^3.0.0 || ^4.0.0
3615-
slate: ^0.72.0
3615+
slate: ^0.82.0
36163616
snabbdom: ^3.6.0
36173617
languageName: unknown
36183618
linkType: soft
@@ -3637,7 +3637,7 @@ __metadata:
36373637
peerDependencies:
36383638
"@wangeditor-next/editor": 5.6.33
36393639
dom7: ^3.0.0 || ^4.0.0
3640-
slate: ^0.72.0
3640+
slate: ^0.82.0
36413641
snabbdom: ^3.6.0
36423642
languageName: unknown
36433643
linkType: soft
@@ -3648,7 +3648,7 @@ __metadata:
36483648
peerDependencies:
36493649
"@wangeditor-next/editor": 5.6.33
36503650
dom7: ^3.0.0 || ^4.0.0
3651-
slate: ^0.72.0
3651+
slate: ^0.82.0
36523652
snabbdom: ^3.6.0
36533653
languageName: unknown
36543654
linkType: soft
@@ -3672,7 +3672,7 @@ __metadata:
36723672
lodash.isequal: ^4.5.0
36733673
lodash.throttle: ^4.1.1
36743674
nanoid: ^5.0.0
3675-
slate: ^0.72.0
3675+
slate: ^0.82.0
36763676
snabbdom: ^3.6.0
36773677
languageName: unknown
36783678
linkType: soft
@@ -3687,7 +3687,7 @@ __metadata:
36873687
"@wangeditor-next/core": 1.7.33
36883688
dom7: ^3.0.0 || ^4.0.0
36893689
lodash.foreach: ^4.5.0
3690-
slate: ^0.72.0
3690+
slate: ^0.82.0
36913691
snabbdom: ^3.6.0
36923692
languageName: unknown
36933693
linkType: soft
@@ -3701,7 +3701,7 @@ __metadata:
37013701
"@wangeditor-next/core": 1.7.33
37023702
dom7: ^3.0.0 || ^4.0.0
37033703
nanoid: ^5.0.0
3704-
slate: ^0.72.0
3704+
slate: ^0.82.0
37053705
snabbdom: ^3.6.0
37063706
languageName: unknown
37073707
linkType: soft
@@ -3793,7 +3793,7 @@ __metadata:
37933793
"@wangeditor-next/editor": 5.6.33
37943794
"@wangeditor-next/yjs": ^0.1.31
37953795
react: ">=17.0.2"
3796-
slate: ^0.72.0
3796+
slate: ^0.82.0
37973797
yjs: ^13.5.29
37983798
languageName: unknown
37993799
linkType: soft
@@ -3802,13 +3802,13 @@ __metadata:
38023802
version: 0.0.0-use.local
38033803
resolution: "@wangeditor-next/yjs@workspace:packages/yjs"
38043804
dependencies:
3805-
slate: "npm:^0.72.0"
3805+
slate: "npm:^0.82.0"
38063806
typescript: "npm:^5.0.0"
38073807
y-protocols: "npm:^1.0.5"
38083808
yjs: "npm:^13.5.29"
38093809
peerDependencies:
38103810
"@wangeditor-next/core": 1.7.33
3811-
slate: ^0.72.0
3811+
slate: ^0.82.0
38123812
yjs: ^13.5.29
38133813
languageName: unknown
38143814
linkType: soft
@@ -11832,14 +11832,14 @@ __metadata:
1183211832
languageName: node
1183311833
linkType: hard
1183411834

11835-
"slate@npm:^0.72.0":
11836-
version: 0.72.0
11837-
resolution: "slate@npm:0.72.0"
11835+
"slate@npm:^0.82.0":
11836+
version: 0.82.1
11837+
resolution: "slate@npm:0.82.1"
1183811838
dependencies:
1183911839
immer: "npm:^9.0.6"
1184011840
is-plain-object: "npm:^5.0.0"
1184111841
tiny-warning: "npm:^1.0.3"
11842-
checksum: 10c0/9e22107270909ab616669273920dbccea25bc145a3b5d4c3b91b144d307c726f577ae4f3afe684fe9974ad3534287a64a1e66fafa35530e6ebfb8f53f4c44c3f
11842+
checksum: 10c0/f0d64467c66f4399de147c16c6232ea4e4defea1f9ae0e0e6adedb910fa3af5005af94f1f852a68cefc3145651e1c1227dd455ca81b00b8681188fcba18216b6
1184311843
languageName: node
1184411844
linkType: hard
1184511845

0 commit comments

Comments
 (0)