@kaitify/core 0.0.1-beta.1 → 0.0.1-beta.2

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.
Files changed (69) hide show
  1. package/package.json +1 -1
  2. package/examples/App.vue +0 -342
  3. package/examples/content.js +0 -1
  4. package/examples/main.ts +0 -4
  5. package/examples/test.html +0 -23
  6. package/src/css/style.less +0 -56
  7. package/src/css/var.less +0 -45
  8. package/src/extensions/Extension.ts +0 -200
  9. package/src/extensions/align/index.ts +0 -115
  10. package/src/extensions/attachment/icon.svg +0 -1
  11. package/src/extensions/attachment/index.ts +0 -293
  12. package/src/extensions/attachment/style.less +0 -25
  13. package/src/extensions/back-color/index.ts +0 -56
  14. package/src/extensions/blockquote/index.ts +0 -144
  15. package/src/extensions/blockquote/style.less +0 -16
  16. package/src/extensions/bold/index.ts +0 -77
  17. package/src/extensions/code/index.ts +0 -295
  18. package/src/extensions/code/style.less +0 -14
  19. package/src/extensions/code-block/hljs.less +0 -183
  20. package/src/extensions/code-block/hljs.ts +0 -95
  21. package/src/extensions/code-block/index.ts +0 -308
  22. package/src/extensions/code-block/style.less +0 -20
  23. package/src/extensions/color/index.ts +0 -56
  24. package/src/extensions/font-family/index.ts +0 -80
  25. package/src/extensions/font-size/index.ts +0 -56
  26. package/src/extensions/heading/index.ts +0 -164
  27. package/src/extensions/heading/style.less +0 -42
  28. package/src/extensions/history/index.ts +0 -96
  29. package/src/extensions/horizontal/index.ts +0 -45
  30. package/src/extensions/horizontal/style.less +0 -13
  31. package/src/extensions/image/index.ts +0 -242
  32. package/src/extensions/image/style.less +0 -8
  33. package/src/extensions/indent/index.ts +0 -98
  34. package/src/extensions/index.ts +0 -29
  35. package/src/extensions/italic/index.ts +0 -77
  36. package/src/extensions/line-height/index.ts +0 -113
  37. package/src/extensions/link/index.ts +0 -184
  38. package/src/extensions/link/style.less +0 -19
  39. package/src/extensions/list/index.ts +0 -410
  40. package/src/extensions/list/style.less +0 -19
  41. package/src/extensions/math/index.ts +0 -233
  42. package/src/extensions/math/style.less +0 -21
  43. package/src/extensions/strikethrough/index.ts +0 -78
  44. package/src/extensions/subscript/index.ts +0 -77
  45. package/src/extensions/superscript/index.ts +0 -77
  46. package/src/extensions/table/index.ts +0 -1148
  47. package/src/extensions/table/style.less +0 -71
  48. package/src/extensions/task/index.ts +0 -243
  49. package/src/extensions/task/style.less +0 -59
  50. package/src/extensions/text/index.ts +0 -359
  51. package/src/extensions/underline/index.ts +0 -78
  52. package/src/extensions/video/index.ts +0 -273
  53. package/src/extensions/video/style.less +0 -8
  54. package/src/index.ts +0 -9
  55. package/src/model/Editor.ts +0 -1963
  56. package/src/model/History.ts +0 -115
  57. package/src/model/KNode.ts +0 -677
  58. package/src/model/Selection.ts +0 -39
  59. package/src/model/config/dom-observe.ts +0 -184
  60. package/src/model/config/event-handler.ts +0 -237
  61. package/src/model/config/format-patch.ts +0 -215
  62. package/src/model/config/format-rules.ts +0 -218
  63. package/src/model/config/function.ts +0 -1018
  64. package/src/model/index.ts +0 -6
  65. package/src/tools/index.ts +0 -156
  66. package/src/view/index.ts +0 -46
  67. package/src/view/js-render/dom-patch.ts +0 -324
  68. package/src/view/js-render/index.ts +0 -210
  69. package/vite-env.d.ts +0 -2
@@ -1,115 +0,0 @@
1
- import { KNode } from './KNode'
2
- import { Selection } from './Selection'
3
- /**
4
- * 历史记录的record类型
5
- */
6
- export type HistoryRecordType = {
7
- nodes: KNode[]
8
- selection: Selection
9
- }
10
- /**
11
- * 历史记录
12
- */
13
- export class History {
14
- /**
15
- * 存放历史记录的堆栈
16
- */
17
- records: HistoryRecordType[] = []
18
- /**
19
- * 存放撤销记录的堆栈
20
- */
21
- redoRecords: HistoryRecordType[] = []
22
-
23
- /**
24
- * 复制selection
25
- */
26
- cloneSelection(newNodes: KNode[], selection: Selection) {
27
- const newSelection = new Selection()
28
- //如果存在选区
29
- if (selection.focused()) {
30
- //查找新的节点数组中start对应的节点
31
- const startNode = KNode.searchByKey(selection.start!.node.key, newNodes)
32
- //查找新的节点数组中end对应的节点
33
- const endNode = KNode.searchByKey(selection.end!.node.key, newNodes)
34
- //如果都存在
35
- if (startNode && endNode) {
36
- newSelection.start = {
37
- node: startNode,
38
- offset: selection.start!.offset
39
- }
40
- newSelection.end = {
41
- node: endNode,
42
- offset: selection.end!.offset
43
- }
44
- }
45
- }
46
- return newSelection
47
- }
48
-
49
- /**
50
- * 保存新的记录
51
- */
52
- setState(nodes: KNode[], selection: Selection) {
53
- const newNodes = nodes.map(item => item.fullClone())
54
- const newSelection = this.cloneSelection(newNodes, selection)
55
- this.records.push({
56
- nodes: newNodes,
57
- selection: newSelection
58
- })
59
- //每次保存新状态时清空撤销记录的堆栈
60
- this.redoRecords = []
61
- }
62
-
63
- /**
64
- * 撤销操作:返回上一个历史记录
65
- */
66
- setUndo(): HistoryRecordType | null {
67
- //存在的历史记录大于1则表示可以进行撤销操作
68
- if (this.records.length > 1) {
69
- //取出最近的历史记录
70
- const record = this.records.pop()!
71
- //将这个历史记录加入到撤销记录数组中
72
- this.redoRecords.push(record)
73
- //再次获取历史记录数组中的最近的一个
74
- const lastRecord = this.records[this.records.length - 1]
75
- const newNodes = lastRecord.nodes.map(item => item.fullClone())
76
- const newSelection = this.cloneSelection(newNodes, lastRecord.selection)
77
- return {
78
- nodes: newNodes,
79
- selection: newSelection
80
- }
81
- }
82
- //没有历史记录则返回null
83
- return null
84
- }
85
-
86
- /**
87
- * 重做操作:返回下一个历史记录
88
- */
89
- setRedo(): HistoryRecordType | null {
90
- //如果存在撤销记录
91
- if (this.redoRecords.length > 0) {
92
- //取出最近的一个撤销记录
93
- const record = this.redoRecords.pop()!
94
- //将撤销记录加入历史记录中
95
- this.records.push(record)
96
- //返回取出的这个撤销记录,即最近的一个历史记录
97
- const newNodes = record.nodes.map(item => item.fullClone())
98
- const newSelection = this.cloneSelection(newNodes, record.selection)
99
- return {
100
- nodes: newNodes,
101
- selection: newSelection
102
- }
103
- }
104
- return null
105
- }
106
-
107
- /**
108
- * 更新当前记录的编辑器的光标
109
- */
110
- updateSelection(selection: Selection) {
111
- const record = this.records[this.records.length - 1]
112
- const newSelection = this.cloneSelection(record.nodes, selection)
113
- this.records[this.records.length - 1].selection = newSelection
114
- }
115
- }