@atlaskit/editor-core 181.0.0 → 182.0.0

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 (351) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/codemods/140.0.0-rc-kraken-fix-type-errors.ts +0 -2
  3. package/codemods/__tests__/next-remove-allow-more-text-colors-prop.ts +0 -17
  4. package/codemods/migrates/next-remove-allow-more-text-colors-prop.ts +0 -4
  5. package/dist/cjs/create-editor/create-plugins-list.js +7 -2
  6. package/dist/cjs/create-editor/feature-flags-from-props.js +31 -26
  7. package/dist/cjs/create-editor/sort-by-order.js +12 -0
  8. package/dist/cjs/editor-next/editor-migration-component.js +4 -1
  9. package/dist/cjs/editor-next/utils/deprecationWarnings.js +0 -5
  10. package/dist/cjs/labs/next/full-page.js +2 -1
  11. package/dist/cjs/labs/next/presets/default.js +2 -1
  12. package/dist/cjs/labs/next/presets/universal.js +7 -1
  13. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +2 -1
  14. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/styles.js +4 -7
  15. package/dist/cjs/plugins/analytics/plugin.js +6 -6
  16. package/dist/cjs/plugins/avatar-group/index.js +5 -2
  17. package/dist/cjs/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  18. package/dist/cjs/plugins/base/index.js +4 -2
  19. package/dist/cjs/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  20. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  21. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/index.js +2 -8
  22. package/dist/cjs/plugins/border/index.js +20 -0
  23. package/dist/cjs/plugins/card/index.js +4 -2
  24. package/dist/cjs/plugins/card/toolbar.js +12 -15
  25. package/dist/cjs/plugins/card/ui/EditLinkToolbar.js +7 -3
  26. package/dist/cjs/plugins/code-block/toolbar.js +1 -1
  27. package/dist/cjs/plugins/collab-edit/analytics.js +2 -3
  28. package/dist/cjs/plugins/collab-edit/events/handlers.js +2 -2
  29. package/dist/cjs/plugins/collab-edit/events/initialize.js +3 -2
  30. package/dist/cjs/plugins/collab-edit/index.js +5 -3
  31. package/dist/cjs/plugins/collab-edit/plugin.js +4 -3
  32. package/dist/cjs/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  33. package/dist/cjs/plugins/collab-edit/ui/avatars.js +2 -3
  34. package/dist/cjs/plugins/date/index.js +90 -64
  35. package/dist/cjs/plugins/editor-disabled/index.js +8 -0
  36. package/dist/cjs/plugins/expand/index.js +4 -1
  37. package/dist/cjs/plugins/expand/nodeviews/index.js +6 -7
  38. package/dist/cjs/plugins/expand/pm-plugins/main.js +5 -2
  39. package/dist/cjs/plugins/extension/extension-api.js +27 -14
  40. package/dist/cjs/plugins/extension/pm-plugins/main.js +117 -177
  41. package/dist/cjs/plugins/extension/pm-plugins/utils.js +80 -0
  42. package/dist/cjs/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +7 -11
  43. package/dist/cjs/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -4
  44. package/dist/cjs/plugins/find-replace/index.js +5 -2
  45. package/dist/cjs/plugins/floating-toolbar/index.js +15 -7
  46. package/dist/cjs/plugins/floating-toolbar/ui/CheckboxModal.js +2 -1
  47. package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  48. package/dist/cjs/plugins/floating-toolbar/ui/SimpleModal.js +2 -1
  49. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  50. package/dist/cjs/plugins/hyperlink/Toolbar.js +9 -12
  51. package/dist/cjs/plugins/hyperlink/index.js +6 -2
  52. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -4
  53. package/dist/cjs/plugins/index.js +7 -0
  54. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  55. package/dist/cjs/plugins/list/actions/outdent-list-items-selected.js +5 -5
  56. package/dist/cjs/plugins/list/commands/index.js +31 -27
  57. package/dist/cjs/plugins/list/commands/outdent-list.js +2 -3
  58. package/dist/cjs/plugins/list/index.js +4 -3
  59. package/dist/cjs/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  60. package/dist/cjs/plugins/list/pm-plugins/input-rules/index.js +2 -1
  61. package/dist/cjs/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +58 -0
  62. package/dist/cjs/plugins/list/pm-plugins/keymap.js +4 -4
  63. package/dist/cjs/plugins/list/pm-plugins/main.js +23 -21
  64. package/dist/cjs/plugins/media/nodeviews/mediaNodeView/media.js +6 -1
  65. package/dist/cjs/plugins/media/nodeviews/styles.js +13 -1
  66. package/dist/cjs/plugins/media/toolbar/commands.js +105 -2
  67. package/dist/cjs/plugins/media/toolbar/imageBorder.js +20 -0
  68. package/dist/cjs/plugins/media/toolbar/index.js +33 -4
  69. package/dist/cjs/plugins/media/ui/ImageBorder/index.js +219 -0
  70. package/dist/cjs/plugins/media/ui/ImageBorder/messages.js +50 -0
  71. package/dist/cjs/plugins/media/ui/ImageBorder/styles.js +54 -0
  72. package/dist/cjs/plugins/media/utils/current-media-node.js +28 -5
  73. package/dist/cjs/plugins/paste/util/index.js +2 -0
  74. package/dist/cjs/plugins/rank.js +1 -1
  75. package/dist/cjs/plugins/rule/pm-plugins/input-rule.js +5 -0
  76. package/dist/cjs/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  77. package/dist/cjs/plugins/toolbar-lists-indentation/index.js +3 -1
  78. package/dist/cjs/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  79. package/dist/cjs/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  80. package/dist/cjs/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  81. package/dist/cjs/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  82. package/dist/cjs/plugins/type-ahead/index.js +4 -1
  83. package/dist/cjs/plugins/type-ahead/pm-plugins/decorations.js +4 -2
  84. package/dist/cjs/plugins/type-ahead/pm-plugins/main.js +4 -2
  85. package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +41 -4
  86. package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +2 -0
  87. package/dist/cjs/plugins/type-ahead/ui/WrapperTypeAhead.js +9 -5
  88. package/dist/cjs/plugins/type-ahead/utils.js +22 -2
  89. package/dist/cjs/test-utils.js +3 -1
  90. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  91. package/dist/cjs/ui/styles.js +1 -1
  92. package/dist/cjs/utils/input-rules.js +0 -17
  93. package/dist/cjs/utils/insert.js +53 -7
  94. package/dist/cjs/version-wrapper.js +1 -1
  95. package/dist/cjs/version.json +1 -1
  96. package/dist/es2019/create-editor/create-plugins-list.js +7 -2
  97. package/dist/es2019/create-editor/feature-flags-from-props.js +31 -26
  98. package/dist/es2019/create-editor/sort-by-order.js +11 -0
  99. package/dist/es2019/editor-next/editor-migration-component.js +4 -1
  100. package/dist/es2019/editor-next/utils/deprecationWarnings.js +0 -5
  101. package/dist/es2019/labs/next/full-page.js +2 -1
  102. package/dist/es2019/labs/next/presets/default.js +2 -1
  103. package/dist/es2019/labs/next/presets/universal.js +8 -2
  104. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +3 -2
  105. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/styles.js +0 -8
  106. package/dist/es2019/plugins/analytics/plugin.js +45 -43
  107. package/dist/es2019/plugins/avatar-group/index.js +26 -21
  108. package/dist/es2019/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  109. package/dist/es2019/plugins/base/index.js +101 -97
  110. package/dist/es2019/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  111. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  112. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/index.js +2 -7
  113. package/dist/es2019/plugins/border/index.js +11 -0
  114. package/dist/es2019/plugins/card/index.js +4 -2
  115. package/dist/es2019/plugins/card/toolbar.js +10 -11
  116. package/dist/es2019/plugins/card/ui/EditLinkToolbar.js +7 -3
  117. package/dist/es2019/plugins/code-block/toolbar.js +2 -2
  118. package/dist/es2019/plugins/collab-edit/analytics.js +2 -3
  119. package/dist/es2019/plugins/collab-edit/events/handlers.js +2 -2
  120. package/dist/es2019/plugins/collab-edit/events/initialize.js +3 -2
  121. package/dist/es2019/plugins/collab-edit/index.js +5 -3
  122. package/dist/es2019/plugins/collab-edit/plugin.js +4 -3
  123. package/dist/es2019/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  124. package/dist/es2019/plugins/collab-edit/ui/avatars.js +2 -3
  125. package/dist/es2019/plugins/date/index.js +92 -64
  126. package/dist/es2019/plugins/editor-disabled/index.js +8 -0
  127. package/dist/es2019/plugins/expand/index.js +57 -53
  128. package/dist/es2019/plugins/expand/nodeviews/index.js +6 -9
  129. package/dist/es2019/plugins/expand/pm-plugins/main.js +5 -3
  130. package/dist/es2019/plugins/extension/extension-api.js +31 -13
  131. package/dist/es2019/plugins/extension/pm-plugins/main.js +77 -96
  132. package/dist/es2019/plugins/extension/pm-plugins/utils.js +30 -0
  133. package/dist/es2019/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +1 -8
  134. package/dist/es2019/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -3
  135. package/dist/es2019/plugins/find-replace/index.js +5 -2
  136. package/dist/es2019/plugins/floating-toolbar/index.js +159 -149
  137. package/dist/es2019/plugins/floating-toolbar/ui/CheckboxModal.js +4 -1
  138. package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  139. package/dist/es2019/plugins/floating-toolbar/ui/SimpleModal.js +4 -1
  140. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  141. package/dist/es2019/plugins/hyperlink/Toolbar.js +7 -9
  142. package/dist/es2019/plugins/hyperlink/index.js +66 -62
  143. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -3
  144. package/dist/es2019/plugins/index.js +2 -1
  145. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  146. package/dist/es2019/plugins/list/actions/outdent-list-items-selected.js +5 -5
  147. package/dist/es2019/plugins/list/commands/index.js +4 -4
  148. package/dist/es2019/plugins/list/commands/outdent-list.js +2 -4
  149. package/dist/es2019/plugins/list/index.js +80 -77
  150. package/dist/es2019/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  151. package/dist/es2019/plugins/list/pm-plugins/input-rules/index.js +2 -1
  152. package/dist/es2019/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +52 -0
  153. package/dist/es2019/plugins/list/pm-plugins/keymap.js +4 -4
  154. package/dist/es2019/plugins/list/pm-plugins/main.js +46 -46
  155. package/dist/es2019/plugins/media/nodeviews/mediaNodeView/media.js +4 -1
  156. package/dist/es2019/plugins/media/nodeviews/styles.js +12 -1
  157. package/dist/es2019/plugins/media/toolbar/commands.js +93 -0
  158. package/dist/es2019/plugins/media/toolbar/imageBorder.js +15 -0
  159. package/dist/es2019/plugins/media/toolbar/index.js +36 -5
  160. package/dist/es2019/plugins/media/ui/ImageBorder/index.js +206 -0
  161. package/dist/es2019/plugins/media/ui/ImageBorder/messages.js +43 -0
  162. package/dist/es2019/plugins/media/ui/ImageBorder/styles.js +124 -0
  163. package/dist/es2019/plugins/media/utils/current-media-node.js +22 -3
  164. package/dist/es2019/plugins/paste/util/index.js +2 -0
  165. package/dist/es2019/plugins/rank.js +1 -1
  166. package/dist/es2019/plugins/rule/pm-plugins/input-rule.js +7 -0
  167. package/dist/es2019/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  168. package/dist/es2019/plugins/toolbar-lists-indentation/index.js +59 -55
  169. package/dist/es2019/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  170. package/dist/es2019/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  171. package/dist/es2019/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  172. package/dist/es2019/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  173. package/dist/es2019/plugins/type-ahead/index.js +4 -1
  174. package/dist/es2019/plugins/type-ahead/pm-plugins/decorations.js +4 -2
  175. package/dist/es2019/plugins/type-ahead/pm-plugins/main.js +4 -2
  176. package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +41 -4
  177. package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +2 -0
  178. package/dist/es2019/plugins/type-ahead/ui/WrapperTypeAhead.js +9 -5
  179. package/dist/es2019/plugins/type-ahead/utils.js +22 -2
  180. package/dist/es2019/test-utils.js +3 -1
  181. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  182. package/dist/es2019/ui/styles.js +1 -0
  183. package/dist/es2019/utils/input-rules.js +0 -17
  184. package/dist/es2019/utils/insert.js +61 -10
  185. package/dist/es2019/version-wrapper.js +1 -1
  186. package/dist/es2019/version.json +1 -1
  187. package/dist/esm/create-editor/create-plugins-list.js +7 -2
  188. package/dist/esm/create-editor/feature-flags-from-props.js +31 -26
  189. package/dist/esm/create-editor/sort-by-order.js +11 -0
  190. package/dist/esm/editor-next/editor-migration-component.js +3 -0
  191. package/dist/esm/editor-next/utils/deprecationWarnings.js +0 -5
  192. package/dist/esm/labs/next/full-page.js +2 -1
  193. package/dist/esm/labs/next/presets/default.js +2 -1
  194. package/dist/esm/labs/next/presets/universal.js +8 -2
  195. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +3 -2
  196. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/styles.js +3 -5
  197. package/dist/esm/plugins/analytics/plugin.js +6 -6
  198. package/dist/esm/plugins/avatar-group/index.js +5 -2
  199. package/dist/esm/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +4 -2
  200. package/dist/esm/plugins/base/index.js +4 -2
  201. package/dist/esm/plugins/base/pm-plugins/disable-spell-checking.js +1 -3
  202. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -6
  203. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/index.js +2 -8
  204. package/dist/esm/plugins/border/index.js +13 -0
  205. package/dist/esm/plugins/card/index.js +4 -2
  206. package/dist/esm/plugins/card/toolbar.js +12 -15
  207. package/dist/esm/plugins/card/ui/EditLinkToolbar.js +7 -3
  208. package/dist/esm/plugins/code-block/toolbar.js +2 -2
  209. package/dist/esm/plugins/collab-edit/analytics.js +2 -3
  210. package/dist/esm/plugins/collab-edit/events/handlers.js +2 -2
  211. package/dist/esm/plugins/collab-edit/events/initialize.js +3 -2
  212. package/dist/esm/plugins/collab-edit/index.js +5 -3
  213. package/dist/esm/plugins/collab-edit/plugin.js +4 -3
  214. package/dist/esm/plugins/collab-edit/ui/avatars-with-plugin-state.js +5 -3
  215. package/dist/esm/plugins/collab-edit/ui/avatars.js +2 -3
  216. package/dist/esm/plugins/date/index.js +90 -64
  217. package/dist/esm/plugins/editor-disabled/index.js +8 -0
  218. package/dist/esm/plugins/expand/index.js +4 -1
  219. package/dist/esm/plugins/expand/nodeviews/index.js +6 -7
  220. package/dist/esm/plugins/expand/pm-plugins/main.js +5 -2
  221. package/dist/esm/plugins/extension/extension-api.js +24 -12
  222. package/dist/esm/plugins/extension/pm-plugins/main.js +113 -173
  223. package/dist/esm/plugins/extension/pm-plugins/utils.js +72 -0
  224. package/dist/esm/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +1 -10
  225. package/dist/esm/plugins/find-replace/FindReplaceToolbarButtonWithState.js +3 -4
  226. package/dist/esm/plugins/find-replace/index.js +5 -2
  227. package/dist/esm/plugins/floating-toolbar/index.js +15 -7
  228. package/dist/esm/plugins/floating-toolbar/ui/CheckboxModal.js +2 -1
  229. package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +13 -3
  230. package/dist/esm/plugins/floating-toolbar/ui/SimpleModal.js +2 -1
  231. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +6 -5
  232. package/dist/esm/plugins/hyperlink/Toolbar.js +9 -13
  233. package/dist/esm/plugins/hyperlink/index.js +6 -2
  234. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -4
  235. package/dist/esm/plugins/index.js +2 -1
  236. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +2 -1
  237. package/dist/esm/plugins/list/actions/outdent-list-items-selected.js +5 -5
  238. package/dist/esm/plugins/list/commands/index.js +31 -27
  239. package/dist/esm/plugins/list/commands/outdent-list.js +2 -3
  240. package/dist/esm/plugins/list/index.js +4 -3
  241. package/dist/esm/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -1
  242. package/dist/esm/plugins/list/pm-plugins/input-rules/index.js +2 -1
  243. package/dist/esm/plugins/list/pm-plugins/input-rules/wrapping-join-rule.js +51 -0
  244. package/dist/esm/plugins/list/pm-plugins/keymap.js +4 -4
  245. package/dist/esm/plugins/list/pm-plugins/main.js +23 -21
  246. package/dist/esm/plugins/media/nodeviews/mediaNodeView/media.js +6 -1
  247. package/dist/esm/plugins/media/nodeviews/styles.js +13 -1
  248. package/dist/esm/plugins/media/toolbar/commands.js +99 -0
  249. package/dist/esm/plugins/media/toolbar/imageBorder.js +14 -0
  250. package/dist/esm/plugins/media/toolbar/index.js +34 -5
  251. package/dist/esm/plugins/media/ui/ImageBorder/index.js +211 -0
  252. package/dist/esm/plugins/media/ui/ImageBorder/messages.js +43 -0
  253. package/dist/esm/plugins/media/ui/ImageBorder/styles.js +37 -0
  254. package/dist/esm/plugins/media/utils/current-media-node.js +24 -3
  255. package/dist/esm/plugins/paste/util/index.js +2 -0
  256. package/dist/esm/plugins/rank.js +1 -1
  257. package/dist/esm/plugins/rule/pm-plugins/input-rule.js +5 -0
  258. package/dist/esm/plugins/text-formatting/ui/Toolbar/hooks/clear-formatting-icon.js +2 -1
  259. package/dist/esm/plugins/toolbar-lists-indentation/index.js +3 -1
  260. package/dist/esm/plugins/toolbar-lists-indentation/ui/Toolbar.js +2 -1
  261. package/dist/esm/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +2 -1
  262. package/dist/esm/plugins/toolbar-lists-indentation/ui/index.js +6 -3
  263. package/dist/esm/plugins/toolbar-lists-indentation/ui/onItemActivated.js +3 -2
  264. package/dist/esm/plugins/type-ahead/index.js +4 -1
  265. package/dist/esm/plugins/type-ahead/pm-plugins/decorations.js +4 -2
  266. package/dist/esm/plugins/type-ahead/pm-plugins/main.js +4 -2
  267. package/dist/esm/plugins/type-ahead/ui/InputQuery.js +41 -4
  268. package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +2 -0
  269. package/dist/esm/plugins/type-ahead/ui/WrapperTypeAhead.js +9 -5
  270. package/dist/esm/plugins/type-ahead/utils.js +22 -2
  271. package/dist/esm/test-utils.js +3 -1
  272. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +4 -2
  273. package/dist/esm/ui/styles.js +1 -1
  274. package/dist/esm/utils/input-rules.js +0 -17
  275. package/dist/esm/utils/insert.js +56 -10
  276. package/dist/esm/version-wrapper.js +1 -1
  277. package/dist/esm/version.json +1 -1
  278. package/dist/types/create-editor/sort-by-order.d.ts +9 -0
  279. package/dist/types/editor-next/editor-migration-component.d.ts +1 -0
  280. package/dist/types/labs/next/presets/cxhtml.d.ts +36 -2
  281. package/dist/types/labs/next/presets/default.d.ts +72 -4
  282. package/dist/types/labs/next/presets/mobile.d.ts +36 -2
  283. package/dist/types/plugins/alignment/ui/ToolbarAlignment/styles.d.ts +0 -1
  284. package/dist/types/plugins/analytics/plugin.d.ts +2 -0
  285. package/dist/types/plugins/avatar-group/index.d.ts +2 -0
  286. package/dist/types/plugins/avatar-group/ui/AvatarGroupPluginWrapper.d.ts +2 -0
  287. package/dist/types/plugins/base/index.d.ts +2 -0
  288. package/dist/types/plugins/base/pm-plugins/disable-spell-checking.d.ts +2 -1
  289. package/dist/types/plugins/border/index.d.ts +3 -0
  290. package/dist/types/plugins/card/index.d.ts +2 -0
  291. package/dist/types/plugins/card/toolbar.d.ts +2 -1
  292. package/dist/types/plugins/card/ui/EditLinkToolbar.d.ts +5 -2
  293. package/dist/types/plugins/collab-edit/analytics.d.ts +2 -1
  294. package/dist/types/plugins/collab-edit/events/handlers.d.ts +2 -1
  295. package/dist/types/plugins/collab-edit/events/initialize.d.ts +3 -1
  296. package/dist/types/plugins/collab-edit/index.d.ts +2 -0
  297. package/dist/types/plugins/collab-edit/plugin.d.ts +2 -1
  298. package/dist/types/plugins/collab-edit/ui/avatars-with-plugin-state.d.ts +4 -0
  299. package/dist/types/plugins/collab-edit/ui/avatars.d.ts +2 -0
  300. package/dist/types/plugins/date/index.d.ts +9 -1
  301. package/dist/types/plugins/editor-disabled/index.d.ts +3 -1
  302. package/dist/types/plugins/expand/index.d.ts +2 -0
  303. package/dist/types/plugins/expand/nodeviews/index.d.ts +5 -2
  304. package/dist/types/plugins/expand/pm-plugins/main.d.ts +2 -1
  305. package/dist/types/plugins/extension/pm-plugins/main.d.ts +8 -2
  306. package/dist/types/plugins/extension/pm-plugins/utils.d.ts +3 -0
  307. package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -7
  308. package/dist/types/plugins/find-replace/FindReplaceToolbarButtonWithState.d.ts +2 -0
  309. package/dist/types/plugins/find-replace/index.d.ts +2 -0
  310. package/dist/types/plugins/floating-toolbar/index.d.ts +4 -1
  311. package/dist/types/plugins/floating-toolbar/ui/Toolbar.d.ts +2 -0
  312. package/dist/types/plugins/hyperlink/Toolbar.d.ts +2 -1
  313. package/dist/types/plugins/hyperlink/index.d.ts +2 -0
  314. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/index.d.ts +2 -0
  315. package/dist/types/plugins/index.d.ts +1 -0
  316. package/dist/types/plugins/list/actions/outdent-list-items-selected.d.ts +2 -1
  317. package/dist/types/plugins/list/commands/index.d.ts +3 -2
  318. package/dist/types/plugins/list/commands/outdent-list.d.ts +2 -1
  319. package/dist/types/plugins/list/index.d.ts +2 -0
  320. package/dist/types/plugins/list/pm-plugins/input-rules/create-list-input-rule.d.ts +1 -1
  321. package/dist/types/plugins/list/pm-plugins/input-rules/wrapping-join-rule.d.ts +13 -0
  322. package/dist/types/plugins/list/pm-plugins/keymap.d.ts +2 -1
  323. package/dist/types/plugins/list/pm-plugins/main.d.ts +3 -2
  324. package/dist/types/plugins/media/nodeviews/styles.d.ts +3 -1
  325. package/dist/types/plugins/media/toolbar/commands.d.ts +5 -0
  326. package/dist/types/plugins/media/toolbar/imageBorder.d.ts +2 -0
  327. package/dist/types/plugins/media/types.d.ts +3 -0
  328. package/dist/types/plugins/media/ui/ImageBorder/index.d.ts +13 -0
  329. package/dist/types/plugins/media/ui/ImageBorder/messages.d.ts +42 -0
  330. package/dist/types/plugins/media/ui/ImageBorder/styles.d.ts +15 -0
  331. package/dist/types/plugins/media/utils/current-media-node.d.ts +6 -0
  332. package/dist/types/plugins/text-color/pm-plugins/main.d.ts +0 -2
  333. package/dist/types/plugins/toolbar-lists-indentation/index.d.ts +2 -0
  334. package/dist/types/plugins/toolbar-lists-indentation/types.d.ts +2 -0
  335. package/dist/types/plugins/toolbar-lists-indentation/ui/index.d.ts +2 -0
  336. package/dist/types/plugins/toolbar-lists-indentation/ui/onItemActivated.d.ts +3 -1
  337. package/dist/types/plugins/type-ahead/index.d.ts +1 -0
  338. package/dist/types/plugins/type-ahead/pm-plugins/decorations.d.ts +2 -1
  339. package/dist/types/plugins/type-ahead/pm-plugins/main.d.ts +2 -1
  340. package/dist/types/plugins/type-ahead/ui/InputQuery.d.ts +1 -0
  341. package/dist/types/plugins/type-ahead/ui/WrapperTypeAhead.d.ts +1 -0
  342. package/dist/types/plugins/type-ahead/utils.d.ts +2 -1
  343. package/dist/types/test-utils.d.ts +4 -2
  344. package/dist/types/types/editor-props.d.ts +5 -0
  345. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +5 -5
  346. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  347. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  348. package/package.json +13 -12
  349. package/report.api.md +12 -4
  350. package/codemods/__tests__/rename-experimental-text-color-prop.ts +0 -204
  351. package/codemods/migrates/rename-experimental-text-color-prop.ts +0 -6
@@ -24,7 +24,10 @@ var _commands = require("./commands");
24
24
  var _messages = require("../insert-block/ui/ToolbarInsertBlock/messages");
25
25
  var _pluginFactory = require("./pm-plugins/plugin-factory");
26
26
  var expandPlugin = function expandPlugin() {
27
+ var _api$dependencies, _api$dependencies$fea;
27
28
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
29
+ var api = arguments.length > 1 ? arguments[1] : undefined;
30
+ var featureFlags = (api === null || api === void 0 ? void 0 : (_api$dependencies = api.dependencies) === null || _api$dependencies === void 0 ? void 0 : (_api$dependencies$fea = _api$dependencies.featureFlags) === null || _api$dependencies$fea === void 0 ? void 0 : _api$dependencies$fea.sharedState.currentState()) || {};
28
31
  return {
29
32
  name: 'expand',
30
33
  nodes: function nodes() {
@@ -42,7 +45,7 @@ var expandPlugin = function expandPlugin() {
42
45
  plugin: function plugin(_ref) {
43
46
  var dispatch = _ref.dispatch,
44
47
  getIntl = _ref.getIntl;
45
- return (0, _main.createPlugin)(dispatch, getIntl, options.appearance, options.useLongPressSelection);
48
+ return (0, _main.createPlugin)(dispatch, getIntl, options.appearance, options.useLongPressSelection, featureFlags);
46
49
  }
47
50
  }, {
48
51
  name: 'expandKeymap',
@@ -20,7 +20,6 @@ var _utils = require("../../../utils");
20
20
  var _commands = require("../commands");
21
21
  var _classNames = require("../ui/class-names");
22
22
  var _gapCursorSelection = require("../../../plugins/selection/gap-cursor-selection");
23
- var _featureFlagsContext = require("../../feature-flags-context");
24
23
  var _dom = require("../../../utils/dom");
25
24
  var _types = require("../../selection/types");
26
25
  var _commands2 = require("../../selection/commands");
@@ -62,7 +61,7 @@ var toDOM = function toDOM(node, intl) {
62
61
  }, 0]];
63
62
  };
64
63
  var ExpandNodeView = /*#__PURE__*/function () {
65
- function ExpandNodeView(node, view, getPos, getIntl, isMobile) {
64
+ function ExpandNodeView(node, view, getPos, getIntl, isMobile, featureFlags) {
66
65
  var _this = this;
67
66
  (0, _classCallCheck2.default)(this, ExpandNodeView);
68
67
  (0, _defineProperty2.default)(this, "allowInteractiveExpand", true);
@@ -90,9 +89,7 @@ var ExpandNodeView = /*#__PURE__*/function () {
90
89
  }
91
90
  });
92
91
  (0, _defineProperty2.default)(this, "isAllowInteractiveExpandEnabled", function () {
93
- var state = _this.view.state;
94
- var featureFlags = (0, _featureFlagsContext.getFeatureFlags)(state);
95
- return featureFlags && !!featureFlags.interactiveExpand;
92
+ return _this.featureFlags && !!_this.featureFlags.interactiveExpand;
96
93
  });
97
94
  (0, _defineProperty2.default)(this, "handleClick", function (event) {
98
95
  var target = event.target;
@@ -294,6 +291,7 @@ var ExpandNodeView = /*#__PURE__*/function () {
294
291
  this.dom = dom;
295
292
  this.contentDOM = contentDOM;
296
293
  this.isMobile = isMobile;
294
+ this.featureFlags = featureFlags;
297
295
  this.icon = this.dom.querySelector(".".concat(_classNames.expandClassNames.icon));
298
296
  this.input = this.dom.querySelector(".".concat(_classNames.expandClassNames.titleInput));
299
297
  this.titleContainer = this.dom.querySelector(".".concat(_classNames.expandClassNames.titleContainer));
@@ -414,8 +412,9 @@ var ExpandNodeView = /*#__PURE__*/function () {
414
412
  exports.ExpandNodeView = ExpandNodeView;
415
413
  function _default(_ref2) {
416
414
  var getIntl = _ref2.getIntl,
417
- isMobile = _ref2.isMobile;
415
+ isMobile = _ref2.isMobile,
416
+ featureFlags = _ref2.featureFlags;
418
417
  return function (node, view, getPos) {
419
- return new ExpandNodeView(node, view, getPos, getIntl, isMobile);
418
+ return new ExpandNodeView(node, view, getPos, getIntl, isMobile, featureFlags);
420
419
  };
421
420
  }
@@ -21,6 +21,7 @@ function containsClass(element, className) {
21
21
  var createPlugin = function createPlugin(dispatch, getIntl) {
22
22
  var appearance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'full-page';
23
23
  var useLongPressSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
24
+ var featureFlags = arguments.length > 4 ? arguments[4] : undefined;
24
25
  var state = (0, _pluginFactory.createPluginState)(dispatch, {});
25
26
  var isMobile = appearance === 'mobile';
26
27
  return new _safePlugin.SafePlugin({
@@ -30,11 +31,13 @@ var createPlugin = function createPlugin(dispatch, getIntl) {
30
31
  nodeViews: {
31
32
  expand: (0, _nodeviews.default)({
32
33
  getIntl: getIntl,
33
- isMobile: isMobile
34
+ isMobile: isMobile,
35
+ featureFlags: featureFlags
34
36
  }),
35
37
  nestedExpand: (0, _nodeviews.default)({
36
38
  getIntl: getIntl,
37
- isMobile: isMobile
39
+ isMobile: isMobile,
40
+ featureFlags: featureFlags
38
41
  })
39
42
  },
40
43
  handleKeyDown: function handleKeyDown(_view, event) {
@@ -12,8 +12,9 @@ var _prosemirrorModel = require("prosemirror-model");
12
12
  var _prosemirrorState = require("prosemirror-state");
13
13
  var _macro = require("../macro");
14
14
  var _pluginKey = require("../macro/plugin-key");
15
+ var _utils = require("../../utils");
15
16
  var _commands = require("./commands");
16
- var _utils = require("./utils");
17
+ var _utils2 = require("./utils");
17
18
  var _analytics = require("../analytics");
18
19
  var _prosemirrorUtils = require("prosemirror-utils");
19
20
  var getEditInLegacyMacroBrowser = function getEditInLegacyMacroBrowser(_ref) {
@@ -26,7 +27,7 @@ var getEditInLegacyMacroBrowser = function getEditInLegacyMacroBrowser(_ref) {
26
27
  if (!macroProvider) {
27
28
  throw new Error("Missing macroProvider. Can't use the macro browser for updates");
28
29
  }
29
- var nodeWithPos = (0, _utils.getSelectedExtension)(view.state, true);
30
+ var nodeWithPos = (0, _utils2.getSelectedExtension)(view.state, true);
30
31
  if (!nodeWithPos) {
31
32
  throw new Error("Missing nodeWithPos. Can't determine position of node");
32
33
  }
@@ -46,7 +47,12 @@ var extensionAPICallPayload = function extensionAPICallPayload(functionName) {
46
47
  };
47
48
  };
48
49
  var createExtensionAPI = function createExtensionAPI(options) {
49
- var validate = (0, _validator.validator)();
50
+ var schema = options.editorView.state.schema;
51
+ var nodes = Object.keys(schema.nodes);
52
+ var marks = Object.keys(schema.marks);
53
+ var validate = (0, _validator.validator)(nodes, marks, {
54
+ allowPrivateAttributes: true
55
+ });
50
56
 
51
57
  /**
52
58
  * Finds the node and its position by `localId`. Throws if the node could not be found.
@@ -62,7 +68,7 @@ var createExtensionAPI = function createExtensionAPI(options) {
62
68
 
63
69
  // Find the node + position matching the given ID
64
70
  var state = options.editorView.state;
65
- var nodePos = (0, _utils.findNodePosWithLocalId)(state, localId);
71
+ var nodePos = (0, _utils2.findNodePosWithLocalId)(state, localId);
66
72
  if (!nodePos) {
67
73
  throw new Error("".concat(opName, "(): Could not find node with ID '").concat(localId, "'."));
68
74
  }
@@ -121,12 +127,12 @@ var createExtensionAPI = function createExtensionAPI(options) {
121
127
  var _node$attrs = node.attrs,
122
128
  extensionKey = _node$attrs.extensionKey,
123
129
  extensionType = _node$attrs.extensionType;
124
- var dataConsumerMark = (0, _utils.getDataConsumerMark)(node);
130
+ var dataConsumerMark = (0, _utils2.getDataConsumerMark)(node);
125
131
  var stringIds = (dataConsumerMark === null || dataConsumerMark === void 0 ? void 0 : dataConsumerMark.attrs.sources.map(function (sourceId) {
126
132
  return sourceId;
127
133
  })) || [];
128
134
  var hasReferentiality = !!dataConsumerMark;
129
- var nodeTypesReferenced = hasReferentiality ? (0, _utils.getNodeTypesReferenced)(stringIds, state) : undefined;
135
+ var nodeTypesReferenced = hasReferentiality ? (0, _utils2.getNodeTypesReferenced)(stringIds, state) : undefined;
130
136
 
131
137
  // fire off analytics for this ADF
132
138
  var payload = {
@@ -179,6 +185,7 @@ var createExtensionAPI = function createExtensionAPI(options) {
179
185
  var tr = state.tr,
180
186
  schema = state.schema;
181
187
  var changedValues = mutationCallback({
188
+ content: (0, _utils.nodeToJSON)(node).content,
182
189
  attrs: node.attrs,
183
190
  marks: node.marks.map(function (pmMark) {
184
191
  return {
@@ -187,13 +194,12 @@ var createExtensionAPI = function createExtensionAPI(options) {
187
194
  };
188
195
  })
189
196
  });
190
- var _state$doc$resolve = state.doc.resolve(pos),
191
- parent = _state$doc$resolve.parent;
192
197
  var ensureValidMark = function ensureValidMark(mark) {
193
198
  if ((0, _typeof2.default)(mark) !== 'object' || Array.isArray(mark)) {
194
199
  throw new Error("update(): Invalid mark given.");
195
200
  }
196
-
201
+ var _state$doc$resolve = state.doc.resolve(pos),
202
+ parent = _state$doc$resolve.parent;
197
203
  // Ensure that the given mark is present in the schema
198
204
  var markType = schema.marks[mark.type];
199
205
  if (!markType) {
@@ -207,21 +213,28 @@ var createExtensionAPI = function createExtensionAPI(options) {
207
213
  attrs: mark.attrs
208
214
  };
209
215
  };
210
- var newMarks = (_changedValues$marks = changedValues.marks) === null || _changedValues$marks === void 0 ? void 0 : _changedValues$marks.map(ensureValidMark).map(function (_ref3) {
216
+ var newMarks = changedValues.hasOwnProperty('marks') ? (_changedValues$marks = changedValues.marks) === null || _changedValues$marks === void 0 ? void 0 : _changedValues$marks.map(ensureValidMark).map(function (_ref3) {
211
217
  var mark = _ref3.mark,
212
218
  attrs = _ref3.attrs;
213
219
  return mark.create(attrs);
214
- });
220
+ }) : node.marks;
221
+ var newContent = changedValues.hasOwnProperty('content') ? _prosemirrorModel.Fragment.fromJSON(schema, changedValues.content) : node.content;
222
+ var newAttrs = changedValues.hasOwnProperty('attrs') ? changedValues.attrs : node.attrs;
215
223
 
216
- // Validate if the new attributes and marks result in a valid node and adf.
224
+ // Validate if the new attributes, content and marks result in a valid node and adf.
217
225
  try {
218
- var newNode = node.type.createChecked(changedValues.attrs, node.content, newMarks);
226
+ var newNode = node.type.createChecked(newAttrs, newContent, newMarks);
219
227
  var newNodeAdf = new _editorJsonTransformer.JSONTransformer().encodeNode(newNode);
220
228
  validate(newNodeAdf);
229
+ tr.replaceWith(pos, pos + node.nodeSize, newNode);
230
+
231
+ // Keep selection if content does not change
232
+ if (newContent === node.content) {
233
+ tr.setSelection(_prosemirrorState.Selection.fromJSON(tr.doc, state.selection.toJSON()));
234
+ }
221
235
  } catch (err) {
222
236
  throw new Error("update(): The given ADFEntity cannot be inserted in the current position.\n".concat(err));
223
237
  }
224
- tr.setNodeMarkup(pos, undefined, changedValues.attrs, newMarks);
225
238
 
226
239
  // Analytics - tracking the api call
227
240
  var apiCallPayload = extensionAPICallPayload('update');
@@ -17,92 +17,24 @@ Object.defineProperty(exports, "getPluginState", {
17
17
  return _pluginFactory.getPluginState;
18
18
  }
19
19
  });
20
+ exports.handleUpdate = void 0;
20
21
  Object.defineProperty(exports, "pluginKey", {
21
22
  enumerable: true,
22
23
  get: function get() {
23
24
  return _pluginKey.pluginKey;
24
25
  }
25
26
  });
26
- exports.updateEditButton = void 0;
27
27
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
28
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
29
28
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
29
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
30
30
  var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
31
- var _extensions = require("@atlaskit/editor-common/extensions");
32
31
  var _utils = require("../../selection/utils");
33
32
  var _extension = _interopRequireDefault(require("../nodeviews/extension"));
34
33
  var _commands = require("../commands");
35
34
  var _utils2 = require("../utils");
36
35
  var _pluginFactory = require("../plugin-factory");
37
36
  var _pluginKey = require("../plugin-key");
38
- var maybeGetUpdateMethodFromExtensionProvider = /*#__PURE__*/function () {
39
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(view, extensionProvider) {
40
- var nodeWithPos, _nodeWithPos$node$att, extensionType, extensionKey, extensionModuleNode, newNodeWithPos;
41
- return _regenerator.default.wrap(function _callee$(_context) {
42
- while (1) {
43
- switch (_context.prev = _context.next) {
44
- case 0:
45
- nodeWithPos = (0, _utils2.getSelectedExtension)(view.state, true);
46
- if (nodeWithPos) {
47
- _context.next = 3;
48
- break;
49
- }
50
- throw new Error('There is no selection');
51
- case 3:
52
- _nodeWithPos$node$att = nodeWithPos.node.attrs, extensionType = _nodeWithPos$node$att.extensionType, extensionKey = _nodeWithPos$node$att.extensionKey;
53
- _context.next = 6;
54
- return (0, _extensions.getExtensionModuleNode)(extensionProvider, extensionType, extensionKey);
55
- case 6:
56
- extensionModuleNode = _context.sent;
57
- newNodeWithPos = (0, _utils2.getSelectedExtension)(view.state, true);
58
- if (!(newNodeWithPos && newNodeWithPos.node.attrs.extensionType === extensionType && newNodeWithPos.node.attrs.extensionKey === extensionKey && newNodeWithPos.pos === nodeWithPos.pos && extensionModuleNode)) {
59
- _context.next = 10;
60
- break;
61
- }
62
- return _context.abrupt("return", extensionModuleNode.update);
63
- case 10:
64
- case "end":
65
- return _context.stop();
66
- }
67
- }
68
- }, _callee);
69
- }));
70
- return function maybeGetUpdateMethodFromExtensionProvider(_x, _x2) {
71
- return _ref.apply(this, arguments);
72
- };
73
- }();
74
- var updateEditButton = /*#__PURE__*/function () {
75
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(view, extensionProvider) {
76
- var updateMethod;
77
- return _regenerator.default.wrap(function _callee2$(_context2) {
78
- while (1) {
79
- switch (_context2.prev = _context2.next) {
80
- case 0:
81
- _context2.prev = 0;
82
- _context2.next = 3;
83
- return maybeGetUpdateMethodFromExtensionProvider(view, extensionProvider);
84
- case 3:
85
- updateMethod = _context2.sent;
86
- (0, _commands.updateState)({
87
- showEditButton: !!updateMethod,
88
- updateExtension: updateMethod && Promise.resolve(updateMethod) || undefined
89
- })(view.state, view.dispatch);
90
- return _context2.abrupt("return", updateMethod);
91
- case 8:
92
- _context2.prev = 8;
93
- _context2.t0 = _context2["catch"](0);
94
- case 10:
95
- case "end":
96
- return _context2.stop();
97
- }
98
- }
99
- }, _callee2, null, [[0, 8]]);
100
- }));
101
- return function updateEditButton(_x3, _x4) {
102
- return _ref2.apply(this, arguments);
103
- };
104
- }();
105
- exports.updateEditButton = updateEditButton;
37
+ var _utils3 = require("./utils");
106
38
  var shouldShowEditButton = function shouldShowEditButton(extensionHandler, extensionProvider) {
107
39
  var usesLegacyMacroBrowser = !extensionHandler && !extensionProvider || typeof extensionHandler === 'function';
108
40
  var usesModernUpdateMethod = (0, _typeof2.default)(extensionHandler) === 'object' && typeof extensionHandler.update === 'function';
@@ -112,129 +44,191 @@ var shouldShowEditButton = function shouldShowEditButton(extensionHandler, exten
112
44
  return false;
113
45
  };
114
46
  var getUpdateExtensionPromise = /*#__PURE__*/function () {
115
- var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(view, extensionHandler, extensionProvider) {
47
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(view, extensionHandler, extensionProvider) {
116
48
  var updateMethod;
117
- return _regenerator.default.wrap(function _callee3$(_context3) {
49
+ return _regenerator.default.wrap(function _callee$(_context) {
118
50
  while (1) {
119
- switch (_context3.prev = _context3.next) {
51
+ switch (_context.prev = _context.next) {
120
52
  case 0:
121
53
  if (!(extensionHandler && (0, _typeof2.default)(extensionHandler) === 'object')) {
122
- _context3.next = 4;
54
+ _context.next = 4;
123
55
  break;
124
56
  }
125
- return _context3.abrupt("return", extensionHandler.update);
57
+ return _context.abrupt("return", extensionHandler.update);
126
58
  case 4:
127
59
  if (!extensionProvider) {
128
- _context3.next = 10;
60
+ _context.next = 10;
129
61
  break;
130
62
  }
131
- _context3.next = 7;
132
- return updateEditButton(view, extensionProvider);
63
+ _context.next = 7;
64
+ return (0, _utils3.updateEditButton)(view, extensionProvider);
133
65
  case 7:
134
- updateMethod = _context3.sent;
66
+ updateMethod = _context.sent;
135
67
  if (!updateMethod) {
136
- _context3.next = 10;
68
+ _context.next = 10;
137
69
  break;
138
70
  }
139
- return _context3.abrupt("return", updateMethod);
71
+ return _context.abrupt("return", updateMethod);
140
72
  case 10:
141
73
  throw new Error('No update method available');
142
74
  case 11:
143
75
  case "end":
144
- return _context3.stop();
76
+ return _context.stop();
145
77
  }
146
78
  }
147
- }, _callee3);
79
+ }, _callee);
148
80
  }));
149
- return function getUpdateExtensionPromise(_x5, _x6, _x7) {
150
- return _ref3.apply(this, arguments);
81
+ return function getUpdateExtensionPromise(_x, _x2, _x3) {
82
+ return _ref.apply(this, arguments);
151
83
  };
152
84
  }();
153
85
  var createExtensionProviderHandler = function createExtensionProviderHandler(view) {
154
86
  return /*#__PURE__*/function () {
155
- var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(name, provider) {
87
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(name, provider) {
156
88
  var extensionProvider;
157
- return _regenerator.default.wrap(function _callee4$(_context4) {
89
+ return _regenerator.default.wrap(function _callee2$(_context2) {
158
90
  while (1) {
159
- switch (_context4.prev = _context4.next) {
91
+ switch (_context2.prev = _context2.next) {
160
92
  case 0:
161
93
  if (!(name === 'extensionProvider' && provider)) {
162
- _context4.next = 13;
94
+ _context2.next = 13;
163
95
  break;
164
96
  }
165
- _context4.prev = 1;
166
- _context4.next = 4;
97
+ _context2.prev = 1;
98
+ _context2.next = 4;
167
99
  return provider;
168
100
  case 4:
169
- extensionProvider = _context4.sent;
101
+ extensionProvider = _context2.sent;
170
102
  (0, _commands.updateState)({
171
103
  extensionProvider: extensionProvider
172
104
  })(view.state, view.dispatch);
173
- _context4.next = 8;
174
- return updateEditButton(view, extensionProvider);
105
+ _context2.next = 8;
106
+ return (0, _utils3.updateEditButton)(view, extensionProvider);
175
107
  case 8:
176
- _context4.next = 13;
108
+ _context2.next = 13;
177
109
  break;
178
110
  case 10:
179
- _context4.prev = 10;
180
- _context4.t0 = _context4["catch"](1);
111
+ _context2.prev = 10;
112
+ _context2.t0 = _context2["catch"](1);
181
113
  (0, _commands.updateState)({
182
114
  extensionProvider: undefined
183
115
  })(view.state, view.dispatch);
184
116
  case 13:
185
117
  case "end":
186
- return _context4.stop();
118
+ return _context2.stop();
187
119
  }
188
120
  }
189
- }, _callee4, null, [[1, 10]]);
121
+ }, _callee2, null, [[1, 10]]);
190
122
  }));
191
- return function (_x8, _x9) {
192
- return _ref4.apply(this, arguments);
123
+ return function (_x4, _x5) {
124
+ return _ref2.apply(this, arguments);
193
125
  };
194
126
  }();
195
127
  };
196
128
  exports.createExtensionProviderHandler = createExtensionProviderHandler;
197
129
  var createContextIdentifierProviderHandler = function createContextIdentifierProviderHandler(view) {
198
130
  return /*#__PURE__*/function () {
199
- var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(name, provider) {
131
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(name, provider) {
200
132
  var contextIdentifierProvider;
201
- return _regenerator.default.wrap(function _callee5$(_context5) {
133
+ return _regenerator.default.wrap(function _callee3$(_context3) {
202
134
  while (1) {
203
- switch (_context5.prev = _context5.next) {
135
+ switch (_context3.prev = _context3.next) {
204
136
  case 0:
205
137
  if (!(name === 'contextIdentifierProvider' && provider)) {
206
- _context5.next = 11;
138
+ _context3.next = 11;
207
139
  break;
208
140
  }
209
- _context5.prev = 1;
210
- _context5.next = 4;
141
+ _context3.prev = 1;
142
+ _context3.next = 4;
211
143
  return provider;
212
144
  case 4:
213
- contextIdentifierProvider = _context5.sent;
145
+ contextIdentifierProvider = _context3.sent;
214
146
  (0, _commands.updateState)({
215
147
  contextIdentifierProvider: contextIdentifierProvider
216
148
  })(view.state, view.dispatch);
217
- _context5.next = 11;
149
+ _context3.next = 11;
218
150
  break;
219
151
  case 8:
220
- _context5.prev = 8;
221
- _context5.t0 = _context5["catch"](1);
152
+ _context3.prev = 8;
153
+ _context3.t0 = _context3["catch"](1);
222
154
  (0, _commands.updateState)({
223
155
  contextIdentifierProvider: undefined
224
156
  })(view.state, view.dispatch);
225
157
  case 11:
226
158
  case "end":
227
- return _context5.stop();
159
+ return _context3.stop();
228
160
  }
229
161
  }
230
- }, _callee5, null, [[1, 8]]);
162
+ }, _callee3, null, [[1, 8]]);
231
163
  }));
232
- return function (_x10, _x11) {
233
- return _ref5.apply(this, arguments);
164
+ return function (_x6, _x7) {
165
+ return _ref3.apply(this, arguments);
234
166
  };
235
167
  }();
236
168
  };
237
169
  exports.createContextIdentifierProviderHandler = createContextIdentifierProviderHandler;
170
+ var handleUpdate = function handleUpdate(_ref4) {
171
+ var view = _ref4.view,
172
+ prevState = _ref4.prevState,
173
+ domAtPos = _ref4.domAtPos,
174
+ extensionHandlers = _ref4.extensionHandlers;
175
+ var state = view.state,
176
+ dispatch = view.dispatch;
177
+ var _getPluginState = (0, _pluginFactory.getPluginState)(state),
178
+ element = _getPluginState.element,
179
+ localId = _getPluginState.localId,
180
+ extensionProvider = _getPluginState.extensionProvider,
181
+ showContextPanel = _getPluginState.showContextPanel,
182
+ showEditButton = _getPluginState.showEditButton;
183
+
184
+ // This fetches the selected extension node, either by keyboard selection or click for all types of extensions
185
+ var selectedExtension = (0, _utils2.getSelectedExtension)(state, true);
186
+ if (!selectedExtension) {
187
+ if (showContextPanel) {
188
+ (0, _commands.clearEditingContext)(state, dispatch);
189
+ }
190
+ return;
191
+ }
192
+ var node = selectedExtension.node;
193
+ var newElement = (0, _utils2.getSelectedDomElement)(state.schema, domAtPos, selectedExtension);
194
+
195
+ // In some cases, showEditButton can be stale and the edit button doesn't show - @see ED-15285
196
+ // To be safe, we update the showEditButton state here
197
+ var shouldUpdateEditButton = !showEditButton && extensionProvider && element === newElement && !(0, _utils2.getSelectedExtension)(prevState, true);
198
+ var isNewNodeSelected = node.attrs.localId ? localId !== node.attrs.localId :
199
+ // This is the current assumption and it's wrong but we are keeping it
200
+ // as fallback in case we need to turn off `allowLocalIdGeneration`
201
+ element !== newElement;
202
+ if (isNewNodeSelected || shouldUpdateEditButton) {
203
+ if (showContextPanel) {
204
+ (0, _commands.clearEditingContext)(state, dispatch);
205
+ return;
206
+ }
207
+ var extensionType = node.attrs.extensionType;
208
+ var extensionHandler = extensionHandlers[extensionType];
209
+
210
+ // showEditButton might change async based on results from extension providers
211
+ var _showEditButton = shouldShowEditButton(extensionHandler, extensionProvider);
212
+ var updateExtension = getUpdateExtensionPromise(view, extensionHandler, extensionProvider).catch(function () {
213
+ // do nothing;
214
+ });
215
+ (0, _commands.updateState)({
216
+ localId: node.attrs.localId,
217
+ showContextPanel: false,
218
+ element: newElement,
219
+ showEditButton: _showEditButton,
220
+ updateExtension: updateExtension
221
+ })(state, dispatch);
222
+ }
223
+ // New DOM element doesn't necessarily mean it's a new Node
224
+ else if (element !== newElement) {
225
+ (0, _commands.updateState)({
226
+ element: newElement
227
+ })(state, dispatch);
228
+ }
229
+ return true;
230
+ };
231
+ exports.handleUpdate = handleUpdate;
238
232
  var createPlugin = function createPlugin(dispatch, providerFactory, extensionHandlers, portalProviderAPI, eventDispatcher) {
239
233
  var useLongPressSelection = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
240
234
  var options = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
@@ -254,67 +248,13 @@ var createPlugin = function createPlugin(dispatch, providerFactory, extensionHan
254
248
  providerFactory.subscribe('extensionProvider', extensionProviderHandler);
255
249
  providerFactory.subscribe('contextIdentificationProvider', contextIdentificationProviderHandler);
256
250
  return {
257
- update: function update(view) {
258
- var state = view.state,
259
- dispatch = view.dispatch;
260
- var _getPluginState = (0, _pluginFactory.getPluginState)(state),
261
- element = _getPluginState.element,
262
- localId = _getPluginState.localId,
263
- extensionProvider = _getPluginState.extensionProvider,
264
- showContextPanel = _getPluginState.showContextPanel;
265
-
266
- // This fetches the selected extension node, either by keyboard selection or click for all types of extensions
267
- var selectedExtension = (0, _utils2.getSelectedExtension)(state, true);
268
- if (!selectedExtension) {
269
- if (showContextPanel) {
270
- (0, _commands.clearEditingContext)(state, dispatch);
271
- }
272
-
273
- // if an extension is no longer selected, but the plugin has cached the previous selected extension id/ref
274
- // then this should clear those values so that if an exention is selected again, then this sees it as a change
275
- // and updates the state correctly.
276
- if (!!localId || !!element) {
277
- (0, _commands.updateState)({
278
- localId: undefined,
279
- element: undefined
280
- })(state, dispatch);
281
- }
282
- return;
283
- }
284
- var node = selectedExtension.node;
285
- var newElement = (0, _utils2.getSelectedDomElement)(state.schema, domAtPos, selectedExtension);
286
-
287
- // New node is selection
288
- if (node.attrs.localId ? localId !== node.attrs.localId :
289
- // This is the current assumption and it's wrong but we are keeping it
290
- // as fallback in case we need to turn off `allowLocalIdGeneration`
291
- element !== newElement) {
292
- if (showContextPanel) {
293
- (0, _commands.clearEditingContext)(state, dispatch);
294
- }
295
- var extensionType = node.attrs.extensionType;
296
- var extensionHandler = extensionHandlers[extensionType];
297
-
298
- // showEditButton might change async based on results from extension providers
299
- var showEditButton = shouldShowEditButton(extensionHandler, extensionProvider);
300
- var updateExtension = getUpdateExtensionPromise(view, extensionHandler, extensionProvider).catch(function () {
301
- // do nothing;
302
- });
303
- (0, _commands.updateState)({
304
- localId: node.attrs.localId,
305
- showContextPanel: false,
306
- element: newElement,
307
- showEditButton: showEditButton,
308
- updateExtension: updateExtension
309
- })(state, dispatch);
310
- }
311
- // New DOM element doesn't necessarily mean it's a new Node
312
- else if (element !== newElement) {
313
- (0, _commands.updateState)({
314
- element: newElement
315
- })(state, dispatch);
316
- }
317
- return true;
251
+ update: function update(view, prevState) {
252
+ handleUpdate({
253
+ view: view,
254
+ prevState: prevState,
255
+ domAtPos: domAtPos,
256
+ extensionHandlers: extensionHandlers
257
+ });
318
258
  },
319
259
  destroy: function destroy() {
320
260
  providerFactory.unsubscribe('extensionProvider', extensionProviderHandler);