@tiptap/core 2.0.0-beta.19 → 2.0.0-beta.193

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 (283) hide show
  1. package/README.md +2 -2
  2. package/package.json +16 -20
  3. package/src/CommandManager.ts +64 -65
  4. package/src/Editor.ts +116 -78
  5. package/src/EventEmitter.ts +14 -4
  6. package/src/Extension.ts +193 -43
  7. package/src/ExtensionManager.ts +242 -84
  8. package/src/InputRule.ts +265 -0
  9. package/src/Mark.ts +277 -48
  10. package/src/Node.ts +279 -57
  11. package/src/NodeView.ts +115 -47
  12. package/src/PasteRule.ts +247 -0
  13. package/src/Tracker.ts +42 -0
  14. package/src/commands/blur.ts +12 -6
  15. package/src/commands/clearContent.ts +3 -3
  16. package/src/commands/clearNodes.ts +30 -18
  17. package/src/commands/command.ts +2 -2
  18. package/src/commands/createParagraphNear.ts +4 -3
  19. package/src/commands/deleteNode.ts +37 -0
  20. package/src/commands/deleteRange.ts +3 -3
  21. package/src/commands/deleteSelection.ts +4 -3
  22. package/src/commands/enter.ts +3 -3
  23. package/src/commands/exitCode.ts +4 -3
  24. package/src/commands/extendMarkRange.ts +12 -11
  25. package/src/commands/first.ts +3 -3
  26. package/src/commands/focus.ts +47 -44
  27. package/src/commands/forEach.ts +24 -0
  28. package/src/commands/index.ts +50 -0
  29. package/src/commands/insertContent.ts +13 -24
  30. package/src/commands/insertContentAt.ts +108 -0
  31. package/src/commands/joinBackward.ts +4 -3
  32. package/src/commands/joinForward.ts +4 -3
  33. package/src/commands/keyboardShortcut.ts +6 -6
  34. package/src/commands/lift.ts +6 -5
  35. package/src/commands/liftEmptyBlock.ts +4 -3
  36. package/src/commands/liftListItem.ts +6 -5
  37. package/src/commands/newlineInCode.ts +4 -3
  38. package/src/commands/resetAttributes.ts +62 -0
  39. package/src/commands/scrollIntoView.ts +3 -3
  40. package/src/commands/selectAll.ts +8 -6
  41. package/src/commands/selectNodeBackward.ts +4 -3
  42. package/src/commands/selectNodeForward.ts +4 -3
  43. package/src/commands/selectParentNode.ts +4 -3
  44. package/src/commands/selectTextblockEnd.ts +20 -0
  45. package/src/commands/selectTextblockStart.ts +20 -0
  46. package/src/commands/setContent.ts +9 -15
  47. package/src/commands/setMark.ts +36 -12
  48. package/src/commands/setMeta.ts +18 -0
  49. package/src/commands/setNode.ts +29 -7
  50. package/src/commands/setNodeSelection.ts +27 -0
  51. package/src/commands/setTextSelection.ts +33 -0
  52. package/src/commands/sinkListItem.ts +6 -5
  53. package/src/commands/splitBlock.ts +14 -19
  54. package/src/commands/splitListItem.ts +45 -18
  55. package/src/commands/toggleList.ts +83 -18
  56. package/src/commands/toggleMark.ts +18 -7
  57. package/src/commands/toggleNode.ts +6 -5
  58. package/src/commands/toggleWrap.ts +9 -9
  59. package/src/commands/undoInputRule.ts +34 -5
  60. package/src/commands/unsetAllMarks.ts +7 -11
  61. package/src/commands/unsetMark.ts +35 -22
  62. package/src/commands/updateAttributes.ts +16 -9
  63. package/src/commands/wrapIn.ts +5 -10
  64. package/src/commands/wrapInList.ts +6 -5
  65. package/src/extensions/clipboardTextSerializer.ts +14 -35
  66. package/src/extensions/commands.ts +3 -144
  67. package/src/extensions/editable.ts +1 -0
  68. package/src/extensions/focusEvents.ts +3 -5
  69. package/src/extensions/index.ts +1 -0
  70. package/src/extensions/keymap.ts +110 -13
  71. package/src/extensions/tabindex.ts +18 -0
  72. package/src/helpers/combineTransactionSteps.ts +18 -0
  73. package/src/helpers/createChainableState.ts +38 -0
  74. package/src/helpers/createDocument.ts +5 -6
  75. package/src/helpers/createNodeFromContent.ts +17 -19
  76. package/src/helpers/defaultBlockAt.ts +13 -0
  77. package/src/helpers/findChildren.ts +18 -0
  78. package/src/helpers/findChildrenInRange.ts +32 -0
  79. package/src/helpers/findParentNode.ts +3 -2
  80. package/src/helpers/findParentNodeClosestToPos.ts +3 -2
  81. package/src/helpers/generateHTML.ts +6 -5
  82. package/src/helpers/generateJSON.ts +14 -0
  83. package/src/helpers/generateText.ts +30 -0
  84. package/src/helpers/getAttributes.ts +28 -0
  85. package/src/helpers/getAttributesFromExtensions.ts +42 -14
  86. package/src/helpers/getChangedRanges.ts +83 -0
  87. package/src/helpers/getDebugJSON.ts +54 -0
  88. package/src/helpers/getExtensionField.ts +25 -0
  89. package/src/helpers/getHTMLFromFragment.ts +6 -5
  90. package/src/helpers/getMarkAttributes.ts +14 -10
  91. package/src/helpers/getMarkRange.ts +41 -8
  92. package/src/helpers/getMarkType.ts +5 -1
  93. package/src/helpers/getMarksBetween.ts +32 -10
  94. package/src/helpers/getNodeAttributes.ts +9 -9
  95. package/src/helpers/getNodeType.ts +5 -1
  96. package/src/helpers/getRenderedAttributes.ts +6 -7
  97. package/src/helpers/getSchema.ts +7 -133
  98. package/src/helpers/getSchemaByResolvedExtensions.ts +148 -0
  99. package/src/helpers/getSchemaTypeByName.ts +2 -10
  100. package/src/helpers/getSchemaTypeNameByName.ts +1 -1
  101. package/src/helpers/getSplittedAttributes.ts +4 -4
  102. package/src/helpers/getText.ts +19 -0
  103. package/src/helpers/getTextBetween.ts +49 -0
  104. package/src/helpers/getTextContentFromNodes.ts +17 -0
  105. package/src/helpers/getTextSerializersFromSchema.ts +10 -0
  106. package/src/helpers/index.ts +33 -0
  107. package/src/helpers/injectExtensionAttributesToParseRule.ts +17 -19
  108. package/src/helpers/isActive.ts +5 -5
  109. package/src/helpers/isExtensionRulesEnabled.ts +15 -0
  110. package/src/helpers/isList.ts +14 -7
  111. package/src/helpers/isMarkActive.ts +45 -20
  112. package/src/helpers/isNodeActive.ts +28 -35
  113. package/src/helpers/isNodeEmpty.ts +1 -1
  114. package/src/helpers/isNodeSelection.ts +2 -3
  115. package/src/helpers/isTextSelection.ts +2 -3
  116. package/src/helpers/posToDOMRect.ts +35 -0
  117. package/src/helpers/resolveFocusPosition.ts +43 -0
  118. package/src/helpers/selectionToInsertionEnd.ts +2 -2
  119. package/src/helpers/splitExtensions.ts +3 -3
  120. package/src/index.ts +15 -24
  121. package/src/inputRules/index.ts +5 -0
  122. package/src/inputRules/markInputRule.ts +59 -39
  123. package/src/inputRules/nodeInputRule.ts +45 -11
  124. package/src/inputRules/textInputRule.ts +35 -0
  125. package/src/inputRules/textblockTypeInputRule.ts +38 -0
  126. package/src/inputRules/wrappingInputRule.ts +60 -0
  127. package/src/pasteRules/index.ts +3 -0
  128. package/src/pasteRules/markPasteRule.ts +62 -53
  129. package/src/pasteRules/nodePasteRule.ts +39 -0
  130. package/src/pasteRules/textPasteRule.ts +35 -0
  131. package/src/style.ts +16 -3
  132. package/src/types.ts +129 -43
  133. package/src/utilities/callOrReturn.ts +6 -3
  134. package/src/utilities/createStyleTag.ts +12 -1
  135. package/src/utilities/deleteProps.ts +2 -4
  136. package/src/utilities/elementFromString.ts +4 -5
  137. package/src/utilities/escapeForRegEx.ts +4 -0
  138. package/src/utilities/findDuplicates.ts +5 -0
  139. package/src/utilities/fromString.ts +2 -2
  140. package/src/utilities/index.ts +3 -0
  141. package/src/utilities/isEmptyObject.ts +2 -2
  142. package/src/utilities/isFunction.ts +3 -0
  143. package/src/utilities/isMacOS.ts +5 -0
  144. package/src/utilities/isNumber.ts +3 -0
  145. package/src/utilities/isPlainObject.ts +8 -5
  146. package/src/utilities/isRegExp.ts +3 -0
  147. package/src/utilities/isString.ts +3 -0
  148. package/src/utilities/isiOS.ts +12 -0
  149. package/src/utilities/mergeAttributes.ts +2 -3
  150. package/src/utilities/mergeDeep.ts +2 -3
  151. package/src/utilities/minMax.ts +1 -1
  152. package/src/utilities/objectIncludes.ts +17 -5
  153. package/src/utilities/removeDuplicates.ts +15 -0
  154. package/CHANGELOG.md +0 -346
  155. package/LICENSE.md +0 -21
  156. package/dist/packages/core/src/CommandManager.d.ts +0 -13
  157. package/dist/packages/core/src/Editor.d.ts +0 -142
  158. package/dist/packages/core/src/EventEmitter.d.ts +0 -7
  159. package/dist/packages/core/src/Extension.d.ts +0 -155
  160. package/dist/packages/core/src/ExtensionManager.d.ts +0 -24
  161. package/dist/packages/core/src/Mark.d.ts +0 -219
  162. package/dist/packages/core/src/Node.d.ts +0 -273
  163. package/dist/packages/core/src/NodeView.d.ts +0 -31
  164. package/dist/packages/core/src/commands/blur.d.ts +0 -12
  165. package/dist/packages/core/src/commands/clearContent.d.ts +0 -12
  166. package/dist/packages/core/src/commands/clearNodes.d.ts +0 -12
  167. package/dist/packages/core/src/commands/command.d.ts +0 -12
  168. package/dist/packages/core/src/commands/createParagraphNear.d.ts +0 -12
  169. package/dist/packages/core/src/commands/deleteRange.d.ts +0 -12
  170. package/dist/packages/core/src/commands/deleteSelection.d.ts +0 -12
  171. package/dist/packages/core/src/commands/enter.d.ts +0 -12
  172. package/dist/packages/core/src/commands/exitCode.d.ts +0 -12
  173. package/dist/packages/core/src/commands/extendMarkRange.d.ts +0 -13
  174. package/dist/packages/core/src/commands/first.d.ts +0 -12
  175. package/dist/packages/core/src/commands/focus.d.ts +0 -12
  176. package/dist/packages/core/src/commands/insertContent.d.ts +0 -12
  177. package/dist/packages/core/src/commands/insertHTML.d.ts +0 -12
  178. package/dist/packages/core/src/commands/insertNode.d.ts +0 -13
  179. package/dist/packages/core/src/commands/insertText.d.ts +0 -12
  180. package/dist/packages/core/src/commands/joinBackward.d.ts +0 -12
  181. package/dist/packages/core/src/commands/joinForward.d.ts +0 -12
  182. package/dist/packages/core/src/commands/keyboardShortcut.d.ts +0 -12
  183. package/dist/packages/core/src/commands/lift.d.ts +0 -13
  184. package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +0 -12
  185. package/dist/packages/core/src/commands/liftListItem.d.ts +0 -13
  186. package/dist/packages/core/src/commands/newlineInCode.d.ts +0 -12
  187. package/dist/packages/core/src/commands/replace.d.ts +0 -13
  188. package/dist/packages/core/src/commands/replaceRange.d.ts +0 -13
  189. package/dist/packages/core/src/commands/resetNodeAttributes.d.ts +0 -13
  190. package/dist/packages/core/src/commands/scrollIntoView.d.ts +0 -12
  191. package/dist/packages/core/src/commands/selectAll.d.ts +0 -12
  192. package/dist/packages/core/src/commands/selectNodeBackward.d.ts +0 -12
  193. package/dist/packages/core/src/commands/selectNodeForward.d.ts +0 -12
  194. package/dist/packages/core/src/commands/selectParentNode.d.ts +0 -12
  195. package/dist/packages/core/src/commands/setContent.d.ts +0 -12
  196. package/dist/packages/core/src/commands/setMark.d.ts +0 -13
  197. package/dist/packages/core/src/commands/setNode.d.ts +0 -13
  198. package/dist/packages/core/src/commands/sinkListItem.d.ts +0 -13
  199. package/dist/packages/core/src/commands/splitBlock.d.ts +0 -14
  200. package/dist/packages/core/src/commands/splitListItem.d.ts +0 -13
  201. package/dist/packages/core/src/commands/toggleList.d.ts +0 -13
  202. package/dist/packages/core/src/commands/toggleMark.d.ts +0 -13
  203. package/dist/packages/core/src/commands/toggleNode.d.ts +0 -13
  204. package/dist/packages/core/src/commands/toggleWrap.d.ts +0 -13
  205. package/dist/packages/core/src/commands/undoInputRule.d.ts +0 -12
  206. package/dist/packages/core/src/commands/unsetAllMarks.d.ts +0 -12
  207. package/dist/packages/core/src/commands/unsetMark.d.ts +0 -13
  208. package/dist/packages/core/src/commands/updateAttributes.d.ts +0 -13
  209. package/dist/packages/core/src/commands/updateNodeAttributes.d.ts +0 -13
  210. package/dist/packages/core/src/commands/wrapIn.d.ts +0 -13
  211. package/dist/packages/core/src/commands/wrapInList.d.ts +0 -13
  212. package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +0 -2
  213. package/dist/packages/core/src/extensions/commands.d.ts +0 -98
  214. package/dist/packages/core/src/extensions/editable.d.ts +0 -2
  215. package/dist/packages/core/src/extensions/focusEvents.d.ts +0 -2
  216. package/dist/packages/core/src/extensions/index.d.ts +0 -5
  217. package/dist/packages/core/src/extensions/keymap.d.ts +0 -2
  218. package/dist/packages/core/src/helpers/createDocument.d.ts +0 -4
  219. package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +0 -8
  220. package/dist/packages/core/src/helpers/findParentNode.d.ts +0 -9
  221. package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +0 -8
  222. package/dist/packages/core/src/helpers/generateHTML.d.ts +0 -2
  223. package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +0 -6
  224. package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +0 -2
  225. package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +0 -4
  226. package/dist/packages/core/src/helpers/getMarkRange.d.ts +0 -3
  227. package/dist/packages/core/src/helpers/getMarkType.d.ts +0 -2
  228. package/dist/packages/core/src/helpers/getMarksBetween.d.ts +0 -3
  229. package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +0 -4
  230. package/dist/packages/core/src/helpers/getNodeType.d.ts +0 -2
  231. package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +0 -3
  232. package/dist/packages/core/src/helpers/getSchema.d.ts +0 -3
  233. package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +0 -2
  234. package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +0 -2
  235. package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +0 -2
  236. package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +0 -9
  237. package/dist/packages/core/src/helpers/isActive.d.ts +0 -3
  238. package/dist/packages/core/src/helpers/isList.d.ts +0 -2
  239. package/dist/packages/core/src/helpers/isMarkActive.d.ts +0 -4
  240. package/dist/packages/core/src/helpers/isNodeActive.d.ts +0 -4
  241. package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +0 -2
  242. package/dist/packages/core/src/helpers/isNodeSelection.d.ts +0 -2
  243. package/dist/packages/core/src/helpers/isTextSelection.d.ts +0 -2
  244. package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +0 -2
  245. package/dist/packages/core/src/helpers/splitExtensions.d.ts +0 -9
  246. package/dist/packages/core/src/index.d.ts +0 -30
  247. package/dist/packages/core/src/inputRules/markInputRule.d.ts +0 -3
  248. package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +0 -3
  249. package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +0 -3
  250. package/dist/packages/core/src/style.d.ts +0 -2
  251. package/dist/packages/core/src/types.d.ts +0 -157
  252. package/dist/packages/core/src/utilities/callOrReturn.d.ts +0 -8
  253. package/dist/packages/core/src/utilities/createStyleTag.d.ts +0 -1
  254. package/dist/packages/core/src/utilities/deleteProps.d.ts +0 -7
  255. package/dist/packages/core/src/utilities/elementFromString.d.ts +0 -1
  256. package/dist/packages/core/src/utilities/fromString.d.ts +0 -1
  257. package/dist/packages/core/src/utilities/isClass.d.ts +0 -1
  258. package/dist/packages/core/src/utilities/isEmptyObject.d.ts +0 -1
  259. package/dist/packages/core/src/utilities/isObject.d.ts +0 -1
  260. package/dist/packages/core/src/utilities/isPlainObject.d.ts +0 -1
  261. package/dist/packages/core/src/utilities/mergeAttributes.d.ts +0 -2
  262. package/dist/packages/core/src/utilities/mergeDeep.d.ts +0 -2
  263. package/dist/packages/core/src/utilities/minMax.d.ts +0 -1
  264. package/dist/packages/core/src/utilities/objectIncludes.d.ts +0 -7
  265. package/dist/packages/core/src/utilities/removeElement.d.ts +0 -1
  266. package/dist/tiptap-core.bundle.umd.min.js +0 -17
  267. package/dist/tiptap-core.bundle.umd.min.js.map +0 -1
  268. package/dist/tiptap-core.cjs.js +0 -3000
  269. package/dist/tiptap-core.cjs.js.map +0 -1
  270. package/dist/tiptap-core.esm.js +0 -2975
  271. package/dist/tiptap-core.esm.js.map +0 -1
  272. package/dist/tiptap-core.umd.js +0 -2997
  273. package/dist/tiptap-core.umd.js.map +0 -1
  274. package/src/commands/insertHTML.ts +0 -30
  275. package/src/commands/insertNode.ts +0 -33
  276. package/src/commands/insertText.ts +0 -22
  277. package/src/commands/replace.ts +0 -20
  278. package/src/commands/replaceRange.ts +0 -36
  279. package/src/commands/resetNodeAttributes.ts +0 -31
  280. package/src/commands/updateNodeAttributes.ts +0 -35
  281. package/src/utilities/isClass.ts +0 -7
  282. package/src/utilities/isObject.ts +0 -10
  283. package/src/utilities/removeElement.ts +0 -5
@@ -0,0 +1,3 @@
1
+ export * from './callOrReturn'
2
+ export * from './escapeForRegEx'
3
+ export * from './mergeAttributes'
@@ -1,3 +1,3 @@
1
- export default function isEmptyObject(object = {}): boolean {
2
- return Object.keys(object).length === 0 && object.constructor === Object
1
+ export function isEmptyObject(value = {}): boolean {
2
+ return Object.keys(value).length === 0 && value.constructor === Object
3
3
  }
@@ -0,0 +1,3 @@
1
+ export function isFunction(value: any): value is Function {
2
+ return typeof value === 'function'
3
+ }
@@ -0,0 +1,5 @@
1
+ export function isMacOS(): boolean {
2
+ return typeof navigator !== 'undefined'
3
+ ? /Mac/.test(navigator.platform)
4
+ : false
5
+ }
@@ -0,0 +1,3 @@
1
+ export function isNumber(value: any): value is number {
2
+ return typeof value === 'number'
3
+ }
@@ -1,10 +1,13 @@
1
1
  // see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts
2
2
 
3
- function getType(payload: any): string {
4
- return Object.prototype.toString.call(payload).slice(8, -1)
3
+ function getType(value: any): string {
4
+ return Object.prototype.toString.call(value).slice(8, -1)
5
5
  }
6
6
 
7
- export default function isPlainObject(payload: any): payload is Record<string, any> {
8
- if (getType(payload) !== 'Object') return false
9
- return payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype
7
+ export function isPlainObject(value: any): value is Record<string, any> {
8
+ if (getType(value) !== 'Object') {
9
+ return false
10
+ }
11
+
12
+ return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype
10
13
  }
@@ -0,0 +1,3 @@
1
+ export function isRegExp(value: any): value is RegExp {
2
+ return Object.prototype.toString.call(value) === '[object RegExp]'
3
+ }
@@ -0,0 +1,3 @@
1
+ export function isString(value: any): value is string {
2
+ return typeof value === 'string'
3
+ }
@@ -0,0 +1,12 @@
1
+ export function isiOS(): boolean {
2
+ return [
3
+ 'iPad Simulator',
4
+ 'iPhone Simulator',
5
+ 'iPod Simulator',
6
+ 'iPad',
7
+ 'iPhone',
8
+ 'iPod',
9
+ ].includes(navigator.platform)
10
+ // iPad on iOS 13 detection
11
+ || (navigator.userAgent.includes('Mac') && 'ontouchend' in document)
12
+ }
@@ -1,6 +1,4 @@
1
- import { AnyObject } from '../types'
2
-
3
- export default function mergeAttributes(...objects: AnyObject[]): AnyObject {
1
+ export function mergeAttributes(...objects: Record<string, any>[]): Record<string, any> {
4
2
  return objects
5
3
  .filter(item => !!item)
6
4
  .reduce((items, item) => {
@@ -11,6 +9,7 @@ export default function mergeAttributes(...objects: AnyObject[]): AnyObject {
11
9
 
12
10
  if (!exists) {
13
11
  mergedAttributes[key] = value
12
+
14
13
  return
15
14
  }
16
15
 
@@ -1,7 +1,6 @@
1
- import { AnyObject } from '../types'
2
- import isPlainObject from './isPlainObject'
1
+ import { isPlainObject } from './isPlainObject'
3
2
 
4
- export default function mergeDeep(target: AnyObject, source: AnyObject): AnyObject {
3
+ export function mergeDeep(target: Record<string, any>, source: Record<string, any>): Record<string, any> {
5
4
  const output = { ...target }
6
5
 
7
6
  if (isPlainObject(target) && isPlainObject(source)) {
@@ -1,3 +1,3 @@
1
- export default function minMax(value = 0, min = 0, max = 0): number {
1
+ export function minMax(value = 0, min = 0, max = 0): number {
2
2
  return Math.min(Math.max(value, min), max)
3
3
  }
@@ -1,18 +1,30 @@
1
- import { AnyObject } from '../types'
1
+ import { isRegExp } from './isRegExp'
2
2
 
3
3
  /**
4
4
  * Check if object1 includes object2
5
5
  * @param object1 Object
6
6
  * @param object2 Object
7
7
  */
8
- export default function objectIncludes(object1: AnyObject, object2: AnyObject): boolean {
8
+ export function objectIncludes(
9
+ object1: Record<string, any>,
10
+ object2: Record<string, any>,
11
+ options: { strict: boolean } = { strict: true },
12
+ ): boolean {
9
13
  const keys = Object.keys(object2)
10
14
 
11
15
  if (!keys.length) {
12
16
  return true
13
17
  }
14
18
 
15
- return !!keys
16
- .filter(key => object2[key] === object1[key])
17
- .length
19
+ return keys.every(key => {
20
+ if (options.strict) {
21
+ return object2[key] === object1[key]
22
+ }
23
+
24
+ if (isRegExp(object2[key])) {
25
+ return object2[key].test(object1[key])
26
+ }
27
+
28
+ return object2[key] === object1[key]
29
+ })
18
30
  }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Removes duplicated values within an array.
3
+ * Supports numbers, strings and objects.
4
+ */
5
+ export function removeDuplicates<T>(array: T[], by = JSON.stringify): T[] {
6
+ const seen: Record<any, any> = {}
7
+
8
+ return array.filter(item => {
9
+ const key = by(item)
10
+
11
+ return Object.prototype.hasOwnProperty.call(seen, key)
12
+ ? false
13
+ : (seen[key] = true)
14
+ })
15
+ }
package/CHANGELOG.md DELETED
@@ -1,346 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- # [2.0.0-beta.19](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.18...@tiptap/core@2.0.0-beta.19) (2021-04-07)
7
-
8
-
9
- ### Features
10
-
11
- * add updateAttributes() command, deprecate updateNodeAttributes(), fix [#254](https://github.com/ueberdosis/tiptap-next/issues/254) ([aac32b4](https://github.com/ueberdosis/tiptap-next/commit/aac32b4df6a1dfd93500e09d3433fcd8acad5fbe))
12
-
13
-
14
-
15
-
16
-
17
- # [2.0.0-beta.18](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.17...@tiptap/core@2.0.0-beta.18) (2021-04-07)
18
-
19
-
20
- ### Features
21
-
22
- * add priority option to extensions ([bb1ae65](https://github.com/ueberdosis/tiptap-next/commit/bb1ae659a463e97a7ada15af711347b5c004897a))
23
-
24
-
25
-
26
-
27
-
28
- # [2.0.0-beta.17](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.16...@tiptap/core@2.0.0-beta.17) (2021-04-07)
29
-
30
-
31
- ### Bug Fixes
32
-
33
- * remove debug log ([beb96c5](https://github.com/ueberdosis/tiptap-next/commit/beb96c5cbfdb81869763e23f82f5ab270c30f0ea))
34
-
35
-
36
-
37
-
38
-
39
- # [2.0.0-beta.16](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.15...@tiptap/core@2.0.0-beta.16) (2021-04-07)
40
-
41
-
42
- ### Features
43
-
44
- * add insertContent() command, deprecate insertText(), insertHTML() and insertNode() ([b8d9b7d](https://github.com/ueberdosis/tiptap-next/commit/b8d9b7d4c70b38fb9eec3c079be8243d30166e5e))
45
-
46
-
47
-
48
-
49
-
50
- # [2.0.0-beta.15](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.14...@tiptap/core@2.0.0-beta.15) (2021-04-06)
51
-
52
- **Note:** Version bump only for package @tiptap/core
53
-
54
-
55
-
56
-
57
-
58
- # [2.0.0-beta.14](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.13...@tiptap/core@2.0.0-beta.14) (2021-04-04)
59
-
60
- **Note:** Version bump only for package @tiptap/core
61
-
62
-
63
-
64
-
65
-
66
- # [2.0.0-beta.13](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.12...@tiptap/core@2.0.0-beta.13) (2021-04-02)
67
-
68
- **Note:** Version bump only for package @tiptap/core
69
-
70
-
71
-
72
-
73
-
74
- # [2.0.0-beta.12](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.11...@tiptap/core@2.0.0-beta.12) (2021-04-01)
75
-
76
- **Note:** Version bump only for package @tiptap/core
77
-
78
-
79
-
80
-
81
-
82
- # [2.0.0-beta.11](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.10...@tiptap/core@2.0.0-beta.11) (2021-04-01)
83
-
84
- **Note:** Version bump only for package @tiptap/core
85
-
86
-
87
-
88
-
89
-
90
- # [2.0.0-beta.10](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.9...@tiptap/core@2.0.0-beta.10) (2021-03-31)
91
-
92
- **Note:** Version bump only for package @tiptap/core
93
-
94
-
95
-
96
-
97
-
98
- # [2.0.0-beta.9](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.8...@tiptap/core@2.0.0-beta.9) (2021-03-28)
99
-
100
- **Note:** Version bump only for package @tiptap/core
101
-
102
-
103
-
104
-
105
-
106
- # [2.0.0-beta.8](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.7...@tiptap/core@2.0.0-beta.8) (2021-03-28)
107
-
108
- **Note:** Version bump only for package @tiptap/core
109
-
110
-
111
-
112
-
113
-
114
- # [2.0.0-beta.7](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.6...@tiptap/core@2.0.0-beta.7) (2021-03-28)
115
-
116
- **Note:** Version bump only for package @tiptap/core
117
-
118
-
119
-
120
-
121
-
122
- # [2.0.0-beta.6](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.5...@tiptap/core@2.0.0-beta.6) (2021-03-24)
123
-
124
- **Note:** Version bump only for package @tiptap/core
125
-
126
-
127
-
128
-
129
-
130
- # [2.0.0-beta.5](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.4...@tiptap/core@2.0.0-beta.5) (2021-03-18)
131
-
132
- **Note:** Version bump only for package @tiptap/core
133
-
134
-
135
-
136
-
137
-
138
- # [2.0.0-beta.4](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.3...@tiptap/core@2.0.0-beta.4) (2021-03-18)
139
-
140
- **Note:** Version bump only for package @tiptap/core
141
-
142
-
143
-
144
-
145
-
146
- # [2.0.0-beta.3](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.2...@tiptap/core@2.0.0-beta.3) (2021-03-16)
147
-
148
- **Note:** Version bump only for package @tiptap/core
149
-
150
-
151
-
152
-
153
-
154
- # [2.0.0-beta.2](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-beta.1...@tiptap/core@2.0.0-beta.2) (2021-03-09)
155
-
156
- **Note:** Version bump only for package @tiptap/core
157
-
158
-
159
-
160
-
161
-
162
- # [2.0.0-beta.1](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.22...@tiptap/core@2.0.0-beta.1) (2021-03-05)
163
-
164
- **Note:** Version bump only for package @tiptap/core
165
-
166
-
167
-
168
-
169
-
170
- # [2.0.0-alpha.22](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.21...@tiptap/core@2.0.0-alpha.22) (2021-02-28)
171
-
172
- **Note:** Version bump only for package @tiptap/core
173
-
174
-
175
-
176
-
177
-
178
- # [2.0.0-alpha.21](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.20...@tiptap/core@2.0.0-alpha.21) (2021-02-26)
179
-
180
- **Note:** Version bump only for package @tiptap/core
181
-
182
-
183
-
184
-
185
-
186
- # [2.0.0-alpha.20](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.19...@tiptap/core@2.0.0-alpha.20) (2021-02-26)
187
-
188
- **Note:** Version bump only for package @tiptap/core
189
-
190
-
191
-
192
-
193
-
194
- # [2.0.0-alpha.19](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.18...@tiptap/core@2.0.0-alpha.19) (2021-02-18)
195
-
196
- **Note:** Version bump only for package @tiptap/core
197
-
198
-
199
-
200
-
201
-
202
- # [2.0.0-alpha.18](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.17...@tiptap/core@2.0.0-alpha.18) (2021-02-16)
203
-
204
- **Note:** Version bump only for package @tiptap/core
205
-
206
-
207
-
208
-
209
-
210
- # [2.0.0-alpha.17](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.16...@tiptap/core@2.0.0-alpha.17) (2021-02-16)
211
-
212
- **Note:** Version bump only for package @tiptap/core
213
-
214
-
215
-
216
-
217
-
218
- # [2.0.0-alpha.16](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.15...@tiptap/core@2.0.0-alpha.16) (2021-02-07)
219
-
220
- **Note:** Version bump only for package @tiptap/core
221
-
222
-
223
-
224
-
225
-
226
- # [2.0.0-alpha.15](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.14...@tiptap/core@2.0.0-alpha.15) (2021-02-05)
227
-
228
- **Note:** Version bump only for package @tiptap/core
229
-
230
-
231
-
232
-
233
-
234
- # [2.0.0-alpha.14](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.13...@tiptap/core@2.0.0-alpha.14) (2021-01-29)
235
-
236
- **Note:** Version bump only for package @tiptap/core
237
-
238
-
239
-
240
-
241
-
242
- # [2.0.0-alpha.13](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.12...@tiptap/core@2.0.0-alpha.13) (2021-01-29)
243
-
244
- **Note:** Version bump only for package @tiptap/core
245
-
246
-
247
-
248
-
249
-
250
- # [2.0.0-alpha.12](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.11...@tiptap/core@2.0.0-alpha.12) (2021-01-28)
251
-
252
- **Note:** Version bump only for package @tiptap/core
253
-
254
-
255
-
256
-
257
-
258
- # [2.0.0-alpha.11](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.10...@tiptap/core@2.0.0-alpha.11) (2021-01-28)
259
-
260
-
261
- ### Bug Fixes
262
-
263
- * don’t merge classes ([dba0c1a](https://github.com/ueberdosis/tiptap-next/commit/dba0c1ac15e9beda3ebd027c67c969a4fe7ae7c7))
264
-
265
-
266
-
267
-
268
-
269
- # [2.0.0-alpha.10](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.9...@tiptap/core@2.0.0-alpha.10) (2021-01-06)
270
-
271
- **Note:** Version bump only for package @tiptap/core
272
-
273
-
274
-
275
-
276
-
277
- # [2.0.0-alpha.9](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.8...@tiptap/core@2.0.0-alpha.9) (2020-12-18)
278
-
279
- **Note:** Version bump only for package @tiptap/core
280
-
281
-
282
-
283
-
284
-
285
- # [2.0.0-alpha.8](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.7...@tiptap/core@2.0.0-alpha.8) (2020-12-18)
286
-
287
- **Note:** Version bump only for package @tiptap/core
288
-
289
-
290
-
291
-
292
-
293
- # [2.0.0-alpha.7](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.6...@tiptap/core@2.0.0-alpha.7) (2020-12-02)
294
-
295
- **Note:** Version bump only for package @tiptap/core
296
-
297
-
298
-
299
-
300
-
301
- # [2.0.0-alpha.6](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.5...@tiptap/core@2.0.0-alpha.6) (2020-11-19)
302
-
303
- **Note:** Version bump only for package @tiptap/core
304
-
305
-
306
-
307
-
308
-
309
- # [2.0.0-alpha.5](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.4...@tiptap/core@2.0.0-alpha.5) (2020-11-18)
310
-
311
- **Note:** Version bump only for package @tiptap/core
312
-
313
-
314
-
315
-
316
-
317
- # [2.0.0-alpha.4](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.3...@tiptap/core@2.0.0-alpha.4) (2020-11-16)
318
-
319
- **Note:** Version bump only for package @tiptap/core
320
-
321
-
322
-
323
-
324
-
325
- # [2.0.0-alpha.3](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.2...@tiptap/core@2.0.0-alpha.3) (2020-11-16)
326
-
327
-
328
- ### Reverts
329
-
330
- * Revert "use global namespace" ([0c9ce26](https://github.com/ueberdosis/tiptap-next/commit/0c9ce26c02c07d88a757c01b0a9d7f9e2b0b7502))
331
-
332
-
333
-
334
-
335
-
336
- # [2.0.0-alpha.2](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.1...@tiptap/core@2.0.0-alpha.2) (2020-11-16)
337
-
338
- **Note:** Version bump only for package @tiptap/core
339
-
340
-
341
-
342
-
343
-
344
- # [2.0.0-alpha.1](https://github.com/ueberdosis/tiptap-next/compare/@tiptap/core@2.0.0-alpha.0...@tiptap/core@2.0.0-alpha.1) (2020-11-16)
345
-
346
- **Note:** Version bump only for package @tiptap/core
package/LICENSE.md DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2020, überdosis GbR
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,13 +0,0 @@
1
- import { EditorState, Transaction } from 'prosemirror-state';
2
- import { Editor } from './Editor';
3
- import { SingleCommands, ChainedCommands, CanCommands, RawCommands, CommandProps } from './types';
4
- export default class CommandManager {
5
- editor: Editor;
6
- commands: RawCommands;
7
- constructor(editor: Editor, commands: RawCommands);
8
- createCommands(): SingleCommands;
9
- createChain(startTr?: Transaction, shouldDispatch?: boolean): ChainedCommands;
10
- createCan(startTr?: Transaction): CanCommands;
11
- buildProps(tr: Transaction, shouldDispatch?: boolean): CommandProps;
12
- chainableState(tr: Transaction, state: EditorState): EditorState;
13
- }
@@ -1,142 +0,0 @@
1
- import { EditorState, Plugin, PluginKey, Transaction } from 'prosemirror-state';
2
- import { EditorView } from 'prosemirror-view';
3
- import { Schema } from 'prosemirror-model';
4
- import ExtensionManager from './ExtensionManager';
5
- import EventEmitter from './EventEmitter';
6
- import { EditorOptions, CanCommands, ChainedCommands, SingleCommands, AnyObject } from './types';
7
- import * as extensions from './extensions';
8
- export { extensions };
9
- export interface HTMLElement {
10
- editor?: Editor;
11
- }
12
- export declare class Editor extends EventEmitter {
13
- private commandManager;
14
- extensionManager: ExtensionManager;
15
- private css;
16
- schema: Schema;
17
- view: EditorView;
18
- isFocused: boolean;
19
- private resizeObserver;
20
- options: EditorOptions;
21
- constructor(options?: Partial<EditorOptions>);
22
- /**
23
- * An object of all registered commands.
24
- */
25
- get commands(): SingleCommands;
26
- /**
27
- * Create a command chain to call multiple commands at once.
28
- */
29
- chain(): ChainedCommands;
30
- /**
31
- * Check if a command or a command chain can be executed. Without executing it.
32
- */
33
- can(): CanCommands;
34
- /**
35
- * Inject CSS styles.
36
- */
37
- private injectCSS;
38
- /**
39
- * Update editor options.
40
- *
41
- * @param options A list of options
42
- */
43
- setOptions(options?: Partial<EditorOptions>): void;
44
- /**
45
- * Update editable state of the editor.
46
- */
47
- setEditable(editable: boolean): void;
48
- /**
49
- * Returns whether the editor is editable.
50
- */
51
- get isEditable(): boolean;
52
- /**
53
- * Returns the editor state.
54
- */
55
- get state(): EditorState;
56
- /**
57
- * Register a ProseMirror plugin.
58
- *
59
- * @param plugin A ProseMirror plugin
60
- * @param handlePlugins Control how to merge the plugin into the existing plugins.
61
- */
62
- registerPlugin(plugin: Plugin, handlePlugins?: (newPlugin: Plugin, plugins: Plugin[]) => Plugin[]): void;
63
- /**
64
- * Unregister a ProseMirror plugin.
65
- *
66
- * @param name The plugins name
67
- */
68
- unregisterPlugin(nameOrPluginKey: string | PluginKey): void;
69
- /**
70
- * Creates an extension manager.
71
- */
72
- private createExtensionManager;
73
- /**
74
- * Creates an command manager.
75
- */
76
- private createCommandManager;
77
- /**
78
- * Creates a ProseMirror schema.
79
- */
80
- private createSchema;
81
- /**
82
- * Creates a ProseMirror view.
83
- */
84
- private createView;
85
- /**
86
- * Creates all node views.
87
- */
88
- createNodeViews(): void;
89
- isCapturingTransaction: boolean;
90
- private capturedTransaction;
91
- captureTransaction(fn: Function): Transaction<any> | null;
92
- /**
93
- * The callback over which to send transactions (state updates) produced by the view.
94
- *
95
- * @param transaction An editor state transaction
96
- */
97
- private dispatchTransaction;
98
- /**
99
- * Get attributes of the currently selected node.
100
- *
101
- * @param name Name of the node
102
- */
103
- getNodeAttributes(name: string): AnyObject;
104
- /**
105
- * Get attributes of the currently selected mark.
106
- *
107
- * @param name Name of the mark
108
- */
109
- getMarkAttributes(name: string): AnyObject;
110
- /**
111
- * Returns if the currently selected node or mark is active.
112
- *
113
- * @param name Name of the node or mark
114
- * @param attributes Attributes of the node or mark
115
- */
116
- isActive(name: string, attributes?: {}): boolean;
117
- isActive(attributes: {}): boolean;
118
- /**
119
- * Get the document as JSON.
120
- */
121
- getJSON(): AnyObject;
122
- /**
123
- * Get the document as HTML.
124
- */
125
- getHTML(): string;
126
- /**
127
- * Check if there is no content.
128
- */
129
- get isEmpty(): boolean;
130
- /**
131
- * Get the number of characters for the current document.
132
- */
133
- getCharacterCount(): number;
134
- /**
135
- * Destroy the editor.
136
- */
137
- destroy(): void;
138
- /**
139
- * Check if the editor is already destroyed.
140
- */
141
- get isDestroyed(): boolean;
142
- }