@atlaskit/editor-core 180.1.0 → 181.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 (404) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/cjs/actions/index.js +25 -10
  3. package/dist/cjs/analytics-api/attach-payload-into-transaction.js +1 -1
  4. package/dist/cjs/create-editor/ReactEditorView.js +0 -5
  5. package/dist/cjs/create-editor/ReactEditorViewInternal.js +73 -103
  6. package/dist/cjs/create-editor/create-plugins-list.js +30 -3
  7. package/dist/cjs/create-editor/preset-utils.js +27 -0
  8. package/dist/cjs/editor-next/editor-internal.js +2 -2
  9. package/dist/cjs/editor-next/editor-migration-component.js +18 -2
  10. package/dist/cjs/editor-next/hooks/useProviderFactory.js +4 -3
  11. package/dist/cjs/editor-next/index.js +13 -9
  12. package/dist/cjs/editor-next/utils/getProvidersFromEditorProps.js +41 -0
  13. package/dist/cjs/editor-next/utils/handleProviders.js +17 -22
  14. package/dist/cjs/editor.js +20 -13
  15. package/dist/cjs/keymaps/consts.js +1 -16
  16. package/dist/cjs/labs/next/presets/cxhtml.js +56 -55
  17. package/dist/cjs/labs/next/presets/default.js +15 -42
  18. package/dist/cjs/labs/next/presets/mobile.js +76 -89
  19. package/dist/cjs/labs/next/presets/universal.js +330 -257
  20. package/dist/cjs/labs/next/presets/useUniversalPreset.js +36 -0
  21. package/dist/cjs/plugins/analytics/plugin.js +6 -0
  22. package/dist/cjs/plugins/annotation/utils.js +2 -36
  23. package/dist/cjs/plugins/base/pm-plugins/react-nodeview.js +2 -7
  24. package/dist/cjs/plugins/block-type/pm-plugins/input-rule.js +0 -10
  25. package/dist/cjs/plugins/caption/index.js +0 -7
  26. package/dist/cjs/plugins/card/nodeviews/blockCard.js +9 -4
  27. package/dist/cjs/plugins/card/nodeviews/inlineCard.js +6 -2
  28. package/dist/cjs/plugins/card/pm-plugins/main.js +6 -3
  29. package/dist/cjs/plugins/card/pm-plugins/util/resolve.js +4 -0
  30. package/dist/cjs/plugins/code-block/pm-plugins/main-state.js +2 -14
  31. package/dist/cjs/plugins/collab-edit/provider/index.js +1 -8
  32. package/dist/cjs/plugins/collab-edit/provider/types.js +1 -12
  33. package/dist/cjs/plugins/context-panel/index.js +1 -6
  34. package/dist/cjs/plugins/data-consumer/index.js +0 -8
  35. package/dist/cjs/plugins/date/utils/internal.js +0 -4
  36. package/dist/cjs/plugins/extension/commands.js +1 -8
  37. package/dist/cjs/plugins/extension/ui/Extension/Extension/index.js +9 -2
  38. package/dist/cjs/plugins/extension/ui/Extension/Extension/styles.js +2 -2
  39. package/dist/cjs/plugins/extension/ui/Extension/Lozenge.js +1 -0
  40. package/dist/cjs/plugins/feedback-dialog/index.js +1 -4
  41. package/dist/cjs/plugins/floating-toolbar/ui/Button.js +7 -3
  42. package/dist/cjs/plugins/floating-toolbar/ui/Dropdown.js +10 -5
  43. package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +2 -9
  44. package/dist/cjs/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +1 -0
  45. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +24 -8
  46. package/dist/cjs/plugins/floating-toolbar/utils.js +0 -12
  47. package/dist/cjs/plugins/fragment/index.js +0 -8
  48. package/dist/cjs/plugins/help-dialog/commands.js +2 -6
  49. package/dist/cjs/plugins/image-upload/pm-plugins/main.js +50 -12
  50. package/dist/cjs/plugins/layout/styles.js +10 -1
  51. package/dist/cjs/plugins/list/utils/find.js +0 -28
  52. package/dist/cjs/plugins/list/utils/indentation.js +1 -25
  53. package/dist/cjs/plugins/list/utils/node.js +0 -5
  54. package/dist/cjs/plugins/list/utils/selection.js +2 -15
  55. package/dist/cjs/plugins/media/utils/media-common.js +1 -20
  56. package/dist/cjs/plugins/mentions/nodeviews/mention.js +100 -16
  57. package/dist/cjs/plugins/mentions/type-ahead/index.js +1 -18
  58. package/dist/cjs/plugins/mentions/ui/InviteItem/index.js +1 -3
  59. package/dist/cjs/plugins/mobile-dimensions/index.js +1 -4
  60. package/dist/cjs/plugins/paste/index.js +1 -2
  61. package/dist/cjs/plugins/paste/pm-plugins/analytics.js +123 -87
  62. package/dist/cjs/plugins/paste/util/index.js +0 -46
  63. package/dist/cjs/plugins/quick-insert/assets/index.js +1 -27
  64. package/dist/cjs/plugins/selection/gap-cursor/actions.js +49 -44
  65. package/dist/cjs/plugins/status/utils.js +1 -15
  66. package/dist/cjs/plugins/text-color/pm-plugins/main.js +0 -1
  67. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +7 -5
  68. package/dist/cjs/plugins/text-formatting/pm-plugins/smart-input-rule.js +8 -2
  69. package/dist/cjs/plugins/text-formatting/utils.js +1 -26
  70. package/dist/cjs/plugins/type-ahead/constants.js +1 -7
  71. package/dist/cjs/plugins/type-ahead/pm-plugins/decorations.js +2 -35
  72. package/dist/cjs/plugins/type-ahead/utils.js +3 -22
  73. package/dist/cjs/test-utils.js +4 -12
  74. package/dist/cjs/ui/Appearance/Comment/Toolbar.js +43 -8
  75. package/dist/cjs/ui/ColorPalette/index.js +18 -0
  76. package/dist/cjs/ui/ColorPickerButton/index.js +6 -2
  77. package/dist/cjs/ui/ConfigPanel/Fields/Expand.js +1 -0
  78. package/dist/cjs/ui/ConfigPanel/utils.js +4 -17
  79. package/dist/cjs/ui/ContentStyles/index.js +1 -1
  80. package/dist/cjs/ui/ElementBrowser/ModalElementBrowser.js +1 -1
  81. package/dist/cjs/ui/ElementBrowser/constants.js +1 -3
  82. package/dist/cjs/ui/Resizer/utils.js +1 -3
  83. package/dist/cjs/ui/styles.js +3 -7
  84. package/dist/cjs/utils/get-editor-plugins.js +1 -3
  85. package/dist/cjs/utils/index.js +9 -269
  86. package/dist/cjs/utils/input-rules.js +1 -15
  87. package/dist/cjs/version-wrapper.js +1 -1
  88. package/dist/cjs/version.json +1 -1
  89. package/dist/es2019/actions/index.js +23 -9
  90. package/dist/es2019/analytics-api/attach-payload-into-transaction.js +1 -1
  91. package/dist/es2019/create-editor/ReactEditorView.js +0 -5
  92. package/dist/es2019/create-editor/ReactEditorViewInternal.js +67 -82
  93. package/dist/es2019/create-editor/create-plugins-list.js +25 -3
  94. package/dist/es2019/create-editor/preset-utils.js +15 -0
  95. package/dist/es2019/editor-next/editor-internal.js +2 -2
  96. package/dist/es2019/editor-next/editor-migration-component.js +19 -2
  97. package/dist/es2019/editor-next/hooks/useProviderFactory.js +4 -3
  98. package/dist/es2019/editor-next/index.js +13 -7
  99. package/dist/es2019/editor-next/utils/getProvidersFromEditorProps.js +36 -0
  100. package/dist/es2019/editor-next/utils/handleProviders.js +18 -24
  101. package/dist/es2019/editor.js +20 -11
  102. package/dist/es2019/keymaps/consts.js +7 -11
  103. package/dist/es2019/labs/next/presets/cxhtml.js +56 -53
  104. package/dist/es2019/labs/next/presets/default.js +18 -38
  105. package/dist/es2019/labs/next/presets/mobile.js +88 -88
  106. package/dist/es2019/labs/next/presets/universal.js +338 -265
  107. package/dist/es2019/labs/next/presets/useUniversalPreset.js +25 -0
  108. package/dist/es2019/plugins/analytics/plugin.js +7 -0
  109. package/dist/es2019/plugins/annotation/utils.js +2 -30
  110. package/dist/es2019/plugins/base/pm-plugins/react-nodeview.js +1 -3
  111. package/dist/es2019/plugins/block-type/pm-plugins/input-rule.js +3 -9
  112. package/dist/es2019/plugins/caption/index.js +0 -2
  113. package/dist/es2019/plugins/card/nodeviews/blockCard.js +8 -4
  114. package/dist/es2019/plugins/card/nodeviews/inlineCard.js +6 -2
  115. package/dist/es2019/plugins/card/pm-plugins/main.js +6 -3
  116. package/dist/es2019/plugins/card/pm-plugins/util/resolve.js +4 -0
  117. package/dist/es2019/plugins/code-block/pm-plugins/main-state.js +1 -9
  118. package/dist/es2019/plugins/collab-edit/provider/index.js +1 -1
  119. package/dist/es2019/plugins/collab-edit/provider/types.js +1 -10
  120. package/dist/es2019/plugins/context-panel/index.js +0 -3
  121. package/dist/es2019/plugins/data-consumer/index.js +0 -7
  122. package/dist/es2019/plugins/date/utils/internal.js +0 -3
  123. package/dist/es2019/plugins/extension/commands.js +0 -6
  124. package/dist/es2019/plugins/extension/ui/Extension/Extension/index.js +12 -2
  125. package/dist/es2019/plugins/extension/ui/Extension/Extension/styles.js +3 -0
  126. package/dist/es2019/plugins/extension/ui/Extension/Lozenge.js +1 -0
  127. package/dist/es2019/plugins/feedback-dialog/index.js +0 -2
  128. package/dist/es2019/plugins/floating-toolbar/ui/Button.js +7 -3
  129. package/dist/es2019/plugins/floating-toolbar/ui/Dropdown.js +10 -5
  130. package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +1 -11
  131. package/dist/es2019/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +1 -0
  132. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +21 -4
  133. package/dist/es2019/plugins/floating-toolbar/utils.js +0 -10
  134. package/dist/es2019/plugins/fragment/index.js +0 -7
  135. package/dist/es2019/plugins/help-dialog/commands.js +1 -2
  136. package/dist/es2019/plugins/image-upload/pm-plugins/main.js +47 -5
  137. package/dist/es2019/plugins/layout/styles.js +12 -4
  138. package/dist/es2019/plugins/list/utils/find.js +0 -27
  139. package/dist/es2019/plugins/list/utils/indentation.js +0 -23
  140. package/dist/es2019/plugins/list/utils/node.js +1 -4
  141. package/dist/es2019/plugins/list/utils/selection.js +2 -15
  142. package/dist/es2019/plugins/media/utils/media-common.js +1 -19
  143. package/dist/es2019/plugins/mentions/nodeviews/mention.js +64 -16
  144. package/dist/es2019/plugins/mentions/type-ahead/index.js +1 -14
  145. package/dist/es2019/plugins/mentions/ui/InviteItem/index.js +1 -2
  146. package/dist/es2019/plugins/mobile-dimensions/index.js +0 -3
  147. package/dist/es2019/plugins/paste/index.js +1 -2
  148. package/dist/es2019/plugins/paste/pm-plugins/analytics.js +126 -94
  149. package/dist/es2019/plugins/paste/util/index.js +5 -45
  150. package/dist/es2019/plugins/quick-insert/assets/index.js +0 -8
  151. package/dist/es2019/plugins/selection/gap-cursor/actions.js +56 -56
  152. package/dist/es2019/plugins/status/utils.js +1 -11
  153. package/dist/es2019/plugins/text-color/pm-plugins/main.js +1 -1
  154. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +7 -5
  155. package/dist/es2019/plugins/text-formatting/pm-plugins/smart-input-rule.js +8 -2
  156. package/dist/es2019/plugins/text-formatting/utils.js +0 -19
  157. package/dist/es2019/plugins/type-ahead/constants.js +0 -5
  158. package/dist/es2019/plugins/type-ahead/pm-plugins/decorations.js +0 -35
  159. package/dist/es2019/plugins/type-ahead/utils.js +0 -23
  160. package/dist/es2019/test-utils.js +4 -7
  161. package/dist/es2019/ui/Appearance/Comment/Toolbar.js +40 -6
  162. package/dist/es2019/ui/ColorPalette/index.js +2 -1
  163. package/dist/es2019/ui/ColorPickerButton/index.js +6 -2
  164. package/dist/es2019/ui/ConfigPanel/Fields/Expand.js +1 -0
  165. package/dist/es2019/ui/ConfigPanel/utils.js +0 -6
  166. package/dist/es2019/ui/ContentStyles/index.js +1 -1
  167. package/dist/es2019/ui/ElementBrowser/ModalElementBrowser.js +1 -1
  168. package/dist/es2019/ui/ElementBrowser/constants.js +0 -1
  169. package/dist/es2019/ui/Resizer/utils.js +0 -1
  170. package/dist/es2019/ui/styles.js +0 -6
  171. package/dist/es2019/utils/get-editor-plugins.js +1 -3
  172. package/dist/es2019/utils/index.js +13 -199
  173. package/dist/es2019/utils/input-rules.js +0 -14
  174. package/dist/es2019/version-wrapper.js +1 -1
  175. package/dist/es2019/version.json +1 -1
  176. package/dist/esm/actions/index.js +23 -9
  177. package/dist/esm/analytics-api/attach-payload-into-transaction.js +1 -1
  178. package/dist/esm/create-editor/ReactEditorView.js +0 -5
  179. package/dist/esm/create-editor/ReactEditorViewInternal.js +73 -102
  180. package/dist/esm/create-editor/create-plugins-list.js +29 -3
  181. package/dist/esm/create-editor/preset-utils.js +21 -0
  182. package/dist/esm/editor-next/editor-internal.js +2 -2
  183. package/dist/esm/editor-next/editor-migration-component.js +18 -2
  184. package/dist/esm/editor-next/hooks/useProviderFactory.js +4 -3
  185. package/dist/esm/editor-next/index.js +13 -9
  186. package/dist/esm/editor-next/utils/getProvidersFromEditorProps.js +35 -0
  187. package/dist/esm/editor-next/utils/handleProviders.js +17 -22
  188. package/dist/esm/editor.js +20 -13
  189. package/dist/esm/keymaps/consts.js +7 -11
  190. package/dist/esm/labs/next/presets/cxhtml.js +56 -55
  191. package/dist/esm/labs/next/presets/default.js +18 -41
  192. package/dist/esm/labs/next/presets/mobile.js +88 -90
  193. package/dist/esm/labs/next/presets/universal.js +330 -257
  194. package/dist/esm/labs/next/presets/useUniversalPreset.js +29 -0
  195. package/dist/esm/plugins/analytics/plugin.js +6 -0
  196. package/dist/esm/plugins/annotation/utils.js +2 -32
  197. package/dist/esm/plugins/base/pm-plugins/react-nodeview.js +1 -5
  198. package/dist/esm/plugins/block-type/pm-plugins/input-rule.js +3 -9
  199. package/dist/esm/plugins/caption/index.js +0 -2
  200. package/dist/esm/plugins/card/nodeviews/blockCard.js +9 -4
  201. package/dist/esm/plugins/card/nodeviews/inlineCard.js +6 -2
  202. package/dist/esm/plugins/card/pm-plugins/main.js +6 -3
  203. package/dist/esm/plugins/card/pm-plugins/util/resolve.js +4 -0
  204. package/dist/esm/plugins/code-block/pm-plugins/main-state.js +0 -10
  205. package/dist/esm/plugins/collab-edit/provider/index.js +1 -1
  206. package/dist/esm/plugins/collab-edit/provider/types.js +1 -10
  207. package/dist/esm/plugins/context-panel/index.js +0 -3
  208. package/dist/esm/plugins/data-consumer/index.js +0 -7
  209. package/dist/esm/plugins/date/utils/internal.js +0 -3
  210. package/dist/esm/plugins/extension/commands.js +0 -6
  211. package/dist/esm/plugins/extension/ui/Extension/Extension/index.js +9 -2
  212. package/dist/esm/plugins/extension/ui/Extension/Extension/styles.js +2 -2
  213. package/dist/esm/plugins/extension/ui/Extension/Lozenge.js +1 -0
  214. package/dist/esm/plugins/feedback-dialog/index.js +0 -2
  215. package/dist/esm/plugins/floating-toolbar/ui/Button.js +7 -3
  216. package/dist/esm/plugins/floating-toolbar/ui/Dropdown.js +10 -5
  217. package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +2 -9
  218. package/dist/esm/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +1 -0
  219. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +24 -8
  220. package/dist/esm/plugins/floating-toolbar/utils.js +0 -10
  221. package/dist/esm/plugins/fragment/index.js +0 -7
  222. package/dist/esm/plugins/help-dialog/commands.js +0 -3
  223. package/dist/esm/plugins/image-upload/pm-plugins/main.js +51 -12
  224. package/dist/esm/plugins/layout/styles.js +11 -2
  225. package/dist/esm/plugins/list/utils/find.js +0 -27
  226. package/dist/esm/plugins/list/utils/indentation.js +0 -23
  227. package/dist/esm/plugins/list/utils/node.js +1 -4
  228. package/dist/esm/plugins/list/utils/selection.js +2 -12
  229. package/dist/esm/plugins/media/utils/media-common.js +1 -17
  230. package/dist/esm/plugins/mentions/nodeviews/mention.js +97 -16
  231. package/dist/esm/plugins/mentions/type-ahead/index.js +1 -18
  232. package/dist/esm/plugins/mentions/ui/InviteItem/index.js +1 -2
  233. package/dist/esm/plugins/mobile-dimensions/index.js +0 -3
  234. package/dist/esm/plugins/paste/index.js +1 -2
  235. package/dist/esm/plugins/paste/pm-plugins/analytics.js +122 -86
  236. package/dist/esm/plugins/paste/util/index.js +5 -45
  237. package/dist/esm/plugins/quick-insert/assets/index.js +0 -20
  238. package/dist/esm/plugins/selection/gap-cursor/actions.js +52 -45
  239. package/dist/esm/plugins/status/utils.js +1 -13
  240. package/dist/esm/plugins/text-color/pm-plugins/main.js +1 -1
  241. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +7 -5
  242. package/dist/esm/plugins/text-formatting/pm-plugins/smart-input-rule.js +8 -2
  243. package/dist/esm/plugins/text-formatting/utils.js +0 -21
  244. package/dist/esm/plugins/type-ahead/constants.js +0 -5
  245. package/dist/esm/plugins/type-ahead/pm-plugins/decorations.js +0 -31
  246. package/dist/esm/plugins/type-ahead/utils.js +2 -20
  247. package/dist/esm/test-utils.js +4 -7
  248. package/dist/esm/ui/Appearance/Comment/Toolbar.js +41 -6
  249. package/dist/esm/ui/ColorPalette/index.js +2 -1
  250. package/dist/esm/ui/ColorPickerButton/index.js +6 -2
  251. package/dist/esm/ui/ConfigPanel/Fields/Expand.js +1 -0
  252. package/dist/esm/ui/ConfigPanel/utils.js +3 -14
  253. package/dist/esm/ui/ContentStyles/index.js +1 -1
  254. package/dist/esm/ui/ElementBrowser/ModalElementBrowser.js +1 -1
  255. package/dist/esm/ui/ElementBrowser/constants.js +0 -1
  256. package/dist/esm/ui/Resizer/utils.js +0 -1
  257. package/dist/esm/ui/styles.js +2 -5
  258. package/dist/esm/utils/get-editor-plugins.js +1 -3
  259. package/dist/esm/utils/index.js +13 -196
  260. package/dist/esm/utils/input-rules.js +0 -13
  261. package/dist/esm/version-wrapper.js +1 -1
  262. package/dist/esm/version.json +1 -1
  263. package/dist/types/actions/index.d.ts +4 -4
  264. package/dist/types/create-editor/ReactEditorView.d.ts +0 -3
  265. package/dist/types/create-editor/ReactEditorViewInternal.d.ts +9 -7
  266. package/dist/types/create-editor/ReactEditorViewNext.d.ts +3 -4
  267. package/dist/types/create-editor/create-plugins-list.d.ts +3 -5
  268. package/dist/types/create-editor/preset-utils.d.ts +2 -0
  269. package/dist/types/editor-next/editor-internal.d.ts +9 -9
  270. package/dist/types/editor-next/hooks/useMeasureEditorMountTime.d.ts +2 -2
  271. package/dist/types/editor-next/hooks/useProviderFactory.d.ts +2 -2
  272. package/dist/types/editor-next/index.d.ts +6 -6
  273. package/dist/types/editor-next/utils/deprecationWarnings.d.ts +2 -2
  274. package/dist/types/editor-next/utils/editorPropTypes.d.ts +1 -1
  275. package/dist/types/editor-next/utils/getProvidersFromEditorProps.d.ts +9 -0
  276. package/dist/types/editor-next/utils/handleProviders.d.ts +2 -2
  277. package/dist/types/editor-next/utils/onEditorCreated.d.ts +2 -2
  278. package/dist/types/editor-next/utils/sendDurationAnalytics.d.ts +1 -1
  279. package/dist/types/editor.d.ts +7 -4
  280. package/dist/types/keymaps/consts.d.ts +0 -11
  281. package/dist/types/labs/next/presets/cxhtml.d.ts +33 -1
  282. package/dist/types/labs/next/presets/default.d.ts +67 -10
  283. package/dist/types/labs/next/presets/mobile.d.ts +33 -1
  284. package/dist/types/labs/next/presets/universal.d.ts +5 -13
  285. package/dist/types/labs/next/presets/useUniversalPreset.d.ts +7 -0
  286. package/dist/types/nodeviews/context-adapter.d.ts +0 -1
  287. package/dist/types/nodeviews/index.d.ts +0 -1
  288. package/dist/types/plugins/alignment/pm-plugins/types.d.ts +0 -11
  289. package/dist/types/plugins/annotation/utils.d.ts +0 -17
  290. package/dist/types/plugins/base/pm-plugins/react-nodeview.d.ts +2 -3
  291. package/dist/types/plugins/block-type/pm-plugins/input-rule.d.ts +2 -6
  292. package/dist/types/plugins/caption/index.d.ts +0 -2
  293. package/dist/types/plugins/card/nodeviews/blockCard.d.ts +2 -10
  294. package/dist/types/plugins/card/nodeviews/genericCard.d.ts +1 -0
  295. package/dist/types/plugins/card/nodeviews/inlineCard.d.ts +1 -1
  296. package/dist/types/plugins/code-block/actions.d.ts +0 -4
  297. package/dist/types/plugins/code-block/pm-plugins/main-state.d.ts +0 -3
  298. package/dist/types/plugins/collab-edit/provider/index.d.ts +1 -2
  299. package/dist/types/plugins/collab-edit/provider/types.d.ts +1 -36
  300. package/dist/types/plugins/context-panel/index.d.ts +2 -3
  301. package/dist/types/plugins/data-consumer/index.d.ts +0 -2
  302. package/dist/types/plugins/date/utils/internal.d.ts +0 -1
  303. package/dist/types/plugins/extension/commands.d.ts +0 -1
  304. package/dist/types/plugins/extension/nodeviews/extension.d.ts +0 -5
  305. package/dist/types/plugins/feedback-dialog/index.d.ts +0 -2
  306. package/dist/types/plugins/floating-toolbar/ui/Button.d.ts +3 -1
  307. package/dist/types/plugins/floating-toolbar/ui/Dropdown.d.ts +1 -0
  308. package/dist/types/plugins/floating-toolbar/utils.d.ts +0 -2
  309. package/dist/types/plugins/fragment/index.d.ts +0 -2
  310. package/dist/types/plugins/help-dialog/commands.d.ts +0 -1
  311. package/dist/types/plugins/history/actions.d.ts +1 -2
  312. package/dist/types/plugins/layout/styles.d.ts +2 -1
  313. package/dist/types/plugins/list/utils/find.d.ts +0 -1
  314. package/dist/types/plugins/list/utils/indentation.d.ts +0 -1
  315. package/dist/types/plugins/list/utils/node.d.ts +0 -2
  316. package/dist/types/plugins/list/utils/selection.d.ts +0 -3
  317. package/dist/types/plugins/media/utils/media-common.d.ts +0 -5
  318. package/dist/types/plugins/mentions/types.d.ts +1 -2
  319. package/dist/types/plugins/mentions/ui/InviteItem/index.d.ts +2 -3
  320. package/dist/types/plugins/mentions/ui/InviteItem/styles.d.ts +0 -6
  321. package/dist/types/plugins/mentions/ui/ToolbarMention/index.d.ts +1 -4
  322. package/dist/types/plugins/mobile-dimensions/index.d.ts +0 -1
  323. package/dist/types/plugins/paste/index.d.ts +0 -1
  324. package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +6 -3
  325. package/dist/types/plugins/paste/util/index.d.ts +0 -6
  326. package/dist/types/plugins/quick-insert/assets/index.d.ts +0 -2
  327. package/dist/types/plugins/status/utils.d.ts +0 -3
  328. package/dist/types/plugins/tasks-and-decisions/pm-plugins/main.d.ts +0 -6
  329. package/dist/types/plugins/text-color/pm-plugins/main.d.ts +2 -12
  330. package/dist/types/plugins/text-formatting/pm-plugins/clear-formatting.d.ts +0 -1
  331. package/dist/types/plugins/text-formatting/utils.d.ts +0 -4
  332. package/dist/types/plugins/type-ahead/constants.d.ts +0 -4
  333. package/dist/types/plugins/type-ahead/pm-plugins/decorations.d.ts +0 -10
  334. package/dist/types/plugins/type-ahead/utils.d.ts +1 -2
  335. package/dist/types/test-utils.d.ts +4 -5
  336. package/dist/types/types/editor-appearance-component.d.ts +2 -2
  337. package/dist/types/types/editor-props.d.ts +55 -42
  338. package/dist/types/ui/Appearance/Chromeless.d.ts +0 -5
  339. package/dist/types/ui/Appearance/Comment/Comment.d.ts +0 -7
  340. package/dist/types/ui/Appearance/Comment/Toolbar.d.ts +3 -2
  341. package/dist/types/ui/Appearance/FullPage/MainToolbar.d.ts +0 -4
  342. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +3 -3
  343. package/dist/types/ui/AppearanceComponents/Mobile.d.ts +2 -5
  344. package/dist/types/ui/ColorPalette/Palettes/index.d.ts +1 -1
  345. package/dist/types/ui/ColorPalette/Palettes/type.d.ts +1 -1
  346. package/dist/types/ui/ColorPalette/index.d.ts +2 -1
  347. package/dist/types/ui/ColorPickerButton/index.d.ts +4 -2
  348. package/dist/types/ui/ConfigPanel/types.d.ts +0 -3
  349. package/dist/types/ui/ConfigPanel/utils.d.ts +2 -3
  350. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  351. package/dist/types/ui/ElementBrowser/ModalElementBrowser.d.ts +0 -3
  352. package/dist/types/ui/ElementBrowser/constants.d.ts +0 -1
  353. package/dist/types/ui/ElementBrowser/types.d.ts +0 -5
  354. package/dist/types/ui/Resizer/utils.d.ts +0 -1
  355. package/dist/types/ui/styles.d.ts +0 -1
  356. package/dist/types/utils/index.d.ts +6 -65
  357. package/dist/types/utils/input-rules.d.ts +1 -2
  358. package/dist/types/utils/table.d.ts +0 -1
  359. package/package.json +23 -24
  360. package/report.api.md +155 -146
  361. package/dist/cjs/labs/next/presets/preset.js +0 -101
  362. package/dist/cjs/plugins/analytics/types/type-ahead.js +0 -5
  363. package/dist/cjs/plugins/collab-edit/provider/channel.js +0 -313
  364. package/dist/cjs/plugins/collab-edit/provider/logger.js +0 -17
  365. package/dist/cjs/plugins/collab-edit/provider/mock-users.js +0 -19
  366. package/dist/cjs/plugins/data-consumer/plugin-key.js +0 -9
  367. package/dist/cjs/plugins/media/toolbar/toolbar-messages.js +0 -15
  368. package/dist/cjs/profiler/render-count.js +0 -60
  369. package/dist/cjs/ui/ColorPalette/Color/index.js +0 -9
  370. package/dist/cjs/ui/ConfigPanel/FieldDescription.js +0 -19
  371. package/dist/cjs/ui/WithPluginState/types.js +0 -5
  372. package/dist/es2019/labs/next/presets/preset.js +0 -68
  373. package/dist/es2019/plugins/analytics/types/type-ahead.js +0 -1
  374. package/dist/es2019/plugins/collab-edit/provider/channel.js +0 -179
  375. package/dist/es2019/plugins/collab-edit/provider/logger.js +0 -8
  376. package/dist/es2019/plugins/collab-edit/provider/mock-users.js +0 -12
  377. package/dist/es2019/plugins/data-consumer/plugin-key.js +0 -2
  378. package/dist/es2019/plugins/media/toolbar/toolbar-messages.js +0 -8
  379. package/dist/es2019/profiler/render-count.js +0 -53
  380. package/dist/es2019/ui/ColorPalette/Color/index.js +0 -2
  381. package/dist/es2019/ui/ConfigPanel/FieldDescription.js +0 -12
  382. package/dist/es2019/ui/WithPluginState/types.js +0 -1
  383. package/dist/esm/labs/next/presets/preset.js +0 -93
  384. package/dist/esm/plugins/analytics/types/type-ahead.js +0 -1
  385. package/dist/esm/plugins/collab-edit/provider/channel.js +0 -305
  386. package/dist/esm/plugins/collab-edit/provider/logger.js +0 -10
  387. package/dist/esm/plugins/collab-edit/provider/mock-users.js +0 -12
  388. package/dist/esm/plugins/data-consumer/plugin-key.js +0 -2
  389. package/dist/esm/plugins/media/toolbar/toolbar-messages.js +0 -8
  390. package/dist/esm/profiler/render-count.js +0 -49
  391. package/dist/esm/ui/ColorPalette/Color/index.js +0 -2
  392. package/dist/esm/ui/ConfigPanel/FieldDescription.js +0 -11
  393. package/dist/esm/ui/WithPluginState/types.js +0 -1
  394. package/dist/types/labs/next/presets/preset.d.ts +0 -46
  395. package/dist/types/plugins/analytics/types/type-ahead.d.ts +0 -1
  396. package/dist/types/plugins/collab-edit/provider/channel.d.ts +0 -48
  397. package/dist/types/plugins/collab-edit/provider/logger.d.ts +0 -1
  398. package/dist/types/plugins/collab-edit/provider/mock-users.d.ts +0 -6
  399. package/dist/types/plugins/data-consumer/plugin-key.d.ts +0 -2
  400. package/dist/types/plugins/media/toolbar/toolbar-messages.d.ts +0 -7
  401. package/dist/types/profiler/render-count.d.ts +0 -14
  402. package/dist/types/ui/ColorPalette/Color/index.d.ts +0 -2
  403. package/dist/types/ui/ConfigPanel/FieldDescription.d.ts +0 -6
  404. package/dist/types/ui/WithPluginState/types.d.ts +0 -10
@@ -3,11 +3,9 @@ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
3
  import _inherits from "@babel/runtime/helpers/inherits";
4
4
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
5
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
6
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8
7
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
9
8
  import { ReactEditorView as BaseReactEditorView } from './ReactEditorViewInternal';
10
- import getEditorPlugins from '../utils/get-editor-plugins';
11
9
  import { injectIntl } from 'react-intl-next';
12
10
  export var ReactEditorView = /*#__PURE__*/function (_BaseReactEditorView) {
13
11
  _inherits(ReactEditorView, _BaseReactEditorView);
@@ -18,7 +16,4 @@ export var ReactEditorView = /*#__PURE__*/function (_BaseReactEditorView) {
18
16
  }
19
17
  return _createClass(ReactEditorView);
20
18
  }(BaseReactEditorView);
21
- _defineProperty(ReactEditorView, "defaultProps", {
22
- getEditorPlugins: getEditorPlugins
23
- });
24
19
  export default injectIntl(ReactEditorView);
@@ -40,8 +40,7 @@ import { EVENT_NAME_DISPATCH_TRANSACTION, EVENT_NAME_STATE_APPLY, EVENT_NAME_UPD
40
40
  import { PROSEMIRROR_RENDERED_NORMAL_SEVERITY_THRESHOLD, PROSEMIRROR_RENDERED_DEGRADED_SEVERITY_THRESHOLD, DEFAULT_SAMPLING_RATE_VALID_TRANSACTIONS } from './consts';
41
41
  import { getContextIdentifier } from '../plugins/base/pm-plugins/context-identifier';
42
42
  import ReactEditorViewContext from './ReactEditorViewContext';
43
- import { createInsertNodeAPI } from '../insert-api/api';
44
- import { createEditorAnalyticsAPI } from '../analytics-api/api';
43
+ import { EditorPluginInjectionAPI } from '@atlaskit/editor-common/preset';
45
44
  function handleEditorFocus(view) {
46
45
  if (view.hasFocus()) {
47
46
  return;
@@ -50,31 +49,13 @@ function handleEditorFocus(view) {
50
49
  view.focus();
51
50
  }, 0);
52
51
  }
53
- var EMPTY = [];
54
- export function shouldReconfigureState(props, nextProps) {
55
- var _props$dangerouslyApp, _props$dangerouslyApp2, _nextProps$dangerousl, _nextProps$dangerousl2;
56
- var prevPlugins = (_props$dangerouslyApp = (_props$dangerouslyApp2 = props.dangerouslyAppendPlugins) === null || _props$dangerouslyApp2 === void 0 ? void 0 : _props$dangerouslyApp2.__plugins) !== null && _props$dangerouslyApp !== void 0 ? _props$dangerouslyApp : EMPTY;
57
- var nextPlugins = (_nextProps$dangerousl = (_nextProps$dangerousl2 = nextProps.dangerouslyAppendPlugins) === null || _nextProps$dangerousl2 === void 0 ? void 0 : _nextProps$dangerousl2.__plugins) !== null && _nextProps$dangerousl !== void 0 ? _nextProps$dangerousl : EMPTY;
58
- if (nextPlugins.length !== prevPlugins.length || prevPlugins.some(function (p) {
59
- return nextPlugins.some(function (n) {
60
- return n.name === p.name && n !== p;
61
- });
62
- })) {
63
- return true;
64
- }
65
- var mobileProperties = props.appearance === 'mobile' ? ['featureFlags', 'quickInsert'] : [];
66
- var properties = ['appearance', 'persistScrollGutter', 'allowUndoRedoButtons', 'placeholder', 'sanitizePrivateContent'].concat(mobileProperties);
67
- return properties.reduce(function (acc, curr) {
68
- return acc || props[curr] !== nextProps[curr];
69
- }, false);
70
- }
71
52
  export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
72
53
  _inherits(ReactEditorView, _React$Component);
73
54
  var _super = _createSuper(ReactEditorView);
74
- function ReactEditorView(_props, context) {
55
+ function ReactEditorView(props, context) {
75
56
  var _this;
76
57
  _classCallCheck(this, ReactEditorView);
77
- _this = _super.call(this, _props, context);
58
+ _this = _super.call(this, props, context);
78
59
  _defineProperty(_assertThisInitialized(_this), "editorRef", /*#__PURE__*/React.createRef());
79
60
  _defineProperty(_assertThisInitialized(_this), "canDispatchTransactions", true);
80
61
  _defineProperty(_assertThisInitialized(_this), "onPluginObservation", function (report, editorState) {
@@ -88,6 +69,10 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
88
69
  }
89
70
  });
90
71
  });
72
+ _defineProperty(_assertThisInitialized(_this), "getEditorState", function () {
73
+ var _this$view;
74
+ return (_this$view = _this.view) === null || _this$view === void 0 ? void 0 : _this$view.state;
75
+ });
91
76
  _defineProperty(_assertThisInitialized(_this), "formatFullWidthAppearance", function (appearance) {
92
77
  if (appearance === 'full-width') {
93
78
  return FULL_WIDTH_MODE.FULL_WIDTH;
@@ -135,48 +120,6 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
135
120
  sel.removeAllRanges();
136
121
  }
137
122
  });
138
- _defineProperty(_assertThisInitialized(_this), "reconfigureState", function (props) {
139
- if (!_this.view) {
140
- return;
141
- }
142
-
143
- // We cannot currently guarentee when all the portals will have re-rendered during a reconfigure
144
- // so we blur here to stop ProseMirror from trying to apply selection to detached nodes or
145
- // nodes that haven't been re-rendered to the document yet.
146
- _this.blur();
147
- var editorPlugins = _this.getPlugins(props.editorProps, _this.props.editorProps, _this.props.createAnalyticsEvent);
148
- _this.config = processPluginsList(editorPlugins);
149
- var state = _this.editorState;
150
- var plugins = createPMPlugins({
151
- schema: state.schema,
152
- dispatch: _this.dispatch,
153
- errorReporter: _this.errorReporter,
154
- editorConfig: _this.config,
155
- eventDispatcher: _this.eventDispatcher,
156
- providerFactory: props.providerFactory,
157
- portalProviderAPI: props.portalProviderAPI,
158
- reactContext: function reactContext() {
159
- return _this.context;
160
- },
161
- dispatchAnalyticsEvent: _this.dispatchAnalyticsEvent,
162
- performanceTracking: props.editorProps.performanceTracking,
163
- transactionTracker: _this.transactionTracker,
164
- featureFlags: createFeatureFlagsFromProps(props.editorProps),
165
- getIntl: function getIntl() {
166
- return _this.props.intl;
167
- }
168
- });
169
- var newState = state.reconfigure({
170
- plugins: plugins
171
- });
172
-
173
- // need to update the state first so when the view builds the nodeviews it is
174
- // using the latest plugins
175
- _this.view.updateState(newState);
176
- return _this.view.update(_objectSpread(_objectSpread({}, _this.view.props), {}, {
177
- state: newState
178
- }));
179
- });
180
123
  _defineProperty(_assertThisInitialized(_this), "handleAnalyticsEvent", function (payload) {
181
124
  if (!_this.props.allowAnalyticsGASV3) {
182
125
  return;
@@ -207,7 +150,7 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
207
150
  return _this.editorState;
208
151
  }
209
152
  } else {
210
- _this.config = processPluginsList(_this.getPlugins(options.props.editorProps, undefined, options.props.createAnalyticsEvent));
153
+ _this.config = processPluginsList(_this.getPlugins(options.props.preset));
211
154
  schema = createSchema(_this.config);
212
155
  }
213
156
  var contentTransformerProvider = options.props.editorProps.contentTransformerProvider;
@@ -322,6 +265,10 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
322
265
  var _this$experienceStore3;
323
266
  (_this$experienceStore3 = _this.experienceStore) === null || _this$experienceStore3 === void 0 ? void 0 : _this$experienceStore3.mark(EditorExperience.interaction, 'viewUpdateState', startTime + duration);
324
267
  });
268
+ _this.pluginInjectionAPI.onEditorViewUpdated({
269
+ newEditorState: editorState,
270
+ oldEditorState: oldEditorState
271
+ });
325
272
  startMeasure(EVENT_NAME_VIEW_STATE_UPDATED);
326
273
  _this.onEditorViewStateUpdated({
327
274
  originalTransaction: transaction,
@@ -449,6 +396,10 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
449
396
  _this.view = new EditorView({
450
397
  mount: node
451
398
  }, _this.getDirectEditorProps());
399
+ _this.pluginInjectionAPI.onEditorViewUpdated({
400
+ newEditorState: _this.view.state,
401
+ oldEditorState: undefined
402
+ });
452
403
  });
453
404
  _defineProperty(_assertThisInitialized(_this), "handleEditorViewRef", function (node) {
454
405
  if (!_this.view && node) {
@@ -531,9 +482,12 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
531
482
  "aria-label": _this.props.intl.formatMessage(editorMessages.editorAssistiveLabel),
532
483
  role: "textbox"
533
484
  }));
485
+ _this.pluginInjectionAPI = new EditorPluginInjectionAPI({
486
+ getEditorState: _this.getEditorState
487
+ });
534
488
  _this.eventDispatcher = new EventDispatcher();
535
489
  _this.dispatch = createDispatch(_this.eventDispatcher);
536
- _this.errorReporter = createErrorReporter(_props.editorProps.errorReporterHandler);
490
+ _this.errorReporter = createErrorReporter(props.editorProps.errorReporterHandler);
537
491
  _this.transactionTracker = new TransactionTracker();
538
492
  _this.pluginPerformanceObserver = new PluginPerformanceObserver(function (report) {
539
493
  return _this.onPluginObservation(report, _this.editorState);
@@ -561,11 +515,11 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
561
515
  _this.eventDispatcher.on(analyticsEventKey, _this.handleAnalyticsEvent);
562
516
  _this.eventDispatcher.on('resetEditorState', _this.resetEditorState);
563
517
  _this.editorState = _this.createEditorState({
564
- props: _props,
518
+ props: props,
565
519
  context: context,
566
- doc: _props.editorProps.defaultValue,
520
+ doc: props.editorProps.defaultValue,
567
521
  // ED-4759: Don't set selection at end for full-page editor - should be at start.
568
- selectionAtStart: isFullPage(_props.editorProps.appearance)
522
+ selectionAtStart: isFullPage(props.editorProps.appearance)
569
523
  });
570
524
  _this.dispatchAnalyticsEvent({
571
525
  action: ACTION.STARTED,
@@ -625,7 +579,7 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
625
579
  }
626
580
  var appearance = this.props.editorProps.appearance;
627
581
  var nextAppearance = nextProps.editorProps.appearance;
628
- if (shouldReconfigureState(this.props.editorProps, nextProps.editorProps)) {
582
+ if (this.props.preset !== nextProps.preset) {
629
583
  this.reconfigureState(nextProps);
630
584
  }
631
585
  if (nextAppearance !== appearance) {
@@ -645,6 +599,51 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
645
599
  this.pluginPerformanceObserver.disconnect();
646
600
  }
647
601
  }
602
+ }, {
603
+ key: "reconfigureState",
604
+ value: function reconfigureState(props) {
605
+ var _this2 = this;
606
+ if (!this.view) {
607
+ return;
608
+ }
609
+
610
+ // We cannot currently guarentee when all the portals will have re-rendered during a reconfigure
611
+ // so we blur here to stop ProseMirror from trying to apply selection to detached nodes or
612
+ // nodes that haven't been re-rendered to the document yet.
613
+ this.blur();
614
+ var editorPlugins = this.getPlugins(props.preset);
615
+ this.config = processPluginsList(editorPlugins);
616
+ var state = this.editorState;
617
+ var plugins = createPMPlugins({
618
+ schema: state.schema,
619
+ dispatch: this.dispatch,
620
+ errorReporter: this.errorReporter,
621
+ editorConfig: this.config,
622
+ eventDispatcher: this.eventDispatcher,
623
+ providerFactory: props.providerFactory,
624
+ portalProviderAPI: props.portalProviderAPI,
625
+ reactContext: function reactContext() {
626
+ return _this2.context;
627
+ },
628
+ dispatchAnalyticsEvent: this.dispatchAnalyticsEvent,
629
+ performanceTracking: props.editorProps.performanceTracking,
630
+ transactionTracker: this.transactionTracker,
631
+ featureFlags: createFeatureFlagsFromProps(props.editorProps),
632
+ getIntl: function getIntl() {
633
+ return _this2.props.intl;
634
+ }
635
+ });
636
+ var newState = state.reconfigure({
637
+ plugins: plugins
638
+ });
639
+
640
+ // need to update the state first so when the view builds the nodeviews it is
641
+ // using the latest plugins
642
+ this.view.updateState(newState);
643
+ return this.view.update(_objectSpread(_objectSpread({}, this.view.props), {}, {
644
+ state: newState
645
+ }));
646
+ }
648
647
  }, {
649
648
  key: "componentDidMount",
650
649
  value: function componentDidMount() {
@@ -693,39 +692,11 @@ export var ReactEditorView = /*#__PURE__*/function (_React$Component) {
693
692
  key: "getPlugins",
694
693
  value:
695
694
  // Helper to allow tests to inject plugins directly
696
- function getPlugins(editorProps, prevEditorProps, createAnalyticsEvent) {
697
- var _this2 = this,
698
- _this$props$getEditor,
699
- _this$props$getEditor2,
700
- _this$props;
701
- var insertNodeAPI = createInsertNodeAPI({
702
- getEditorView: function getEditorView() {
703
- return _this2.view;
704
- },
705
- getEditorPlugins: function getEditorPlugins() {
706
- return _this2.editorPlugins;
707
- }
695
+ function getPlugins(preset) {
696
+ var plugins = preset.build({
697
+ pluginInjectionAPI: this.pluginInjectionAPI
708
698
  });
709
- var editorAnalyticsAPI = createEditorAnalyticsAPI({
710
- getEditorView: function getEditorView() {
711
- return _this2.view;
712
- },
713
- getCreateUIAnalyticsEvent: function getCreateUIAnalyticsEvent() {
714
- return createAnalyticsEvent;
715
- }
716
- });
717
- var getPluginsProps = {
718
- props: editorProps,
719
- prevAppearance: prevEditorProps === null || prevEditorProps === void 0 ? void 0 : prevEditorProps.appearance,
720
- createAnalyticsEvent: createAnalyticsEvent,
721
- insertNodeAPI: insertNodeAPI,
722
- editorAnalyticsAPI: editorAnalyticsAPI
723
- };
724
- if (this.props.getEditorPlugins === undefined) {
725
- // eslint-disable-next-line no-console
726
- console.error('getEditorPlugins is undefined in ReactEditorViewInternal - no editor plugins will be added.');
727
- }
728
- this.editorPlugins = (_this$props$getEditor = (_this$props$getEditor2 = (_this$props = this.props).getEditorPlugins) === null || _this$props$getEditor2 === void 0 ? void 0 : _this$props$getEditor2.call(_this$props, getPluginsProps)) !== null && _this$props$getEditor !== void 0 ? _this$props$getEditor : [];
699
+ this.editorPlugins = plugins;
729
700
  return this.editorPlugins;
730
701
  }
731
702
  }, {
@@ -102,13 +102,39 @@ export function getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEve
102
102
  * Note: The order that presets are added determines
103
103
  * their placement in the editor toolbar
104
104
  */
105
- export default function createPluginsList(props, prevProps, createAnalyticsEvent, insertNodeAPI, editorAnalyticsAPI, editorSelectionAPI, getEditorContainerWidth) {
106
- var preset = createUniversalPreset(props.appearance, getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEvent), createFeatureFlagsFromProps(props), prevProps === null || prevProps === void 0 ? void 0 : prevProps.appearance, createAnalyticsEvent, insertNodeAPI, editorAnalyticsAPI, editorSelectionAPI, getEditorContainerWidth);
105
+ export default function createPluginsList(props, prevProps, createAnalyticsEvent) {
106
+ var preset = createUniversalPreset(props.appearance, getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEvent), createFeatureFlagsFromProps(props), prevProps === null || prevProps === void 0 ? void 0 : prevProps.appearance, createAnalyticsEvent);
107
107
  var excludes = new Set();
108
108
  if (!isCodeBlockAllowed({
109
109
  allowBlockType: props.allowBlockType
110
110
  })) {
111
111
  excludes.add('codeBlock');
112
112
  }
113
- return preset.getEditorPlugins(excludes);
113
+ return preset.build({
114
+ excludePlugins: excludes
115
+ });
116
+ }
117
+ function withDangerouslyAppendPlugins(preset) {
118
+ function createEditorNextPluginsFromDangerouslyAppended(plugins) {
119
+ return plugins ? plugins.map(function (plugin) {
120
+ return function () {
121
+ return plugin;
122
+ };
123
+ }) : [];
124
+ }
125
+ return function (editorPluginsToAppend) {
126
+ if (!editorPluginsToAppend || editorPluginsToAppend.length === 0) {
127
+ return preset;
128
+ }
129
+ var nextEditorPluginsToAppend = createEditorNextPluginsFromDangerouslyAppended(editorPluginsToAppend);
130
+ var presetWithAppendedPlugins = nextEditorPluginsToAppend.reduce(function (acc, plugin) {
131
+ return acc.add(plugin);
132
+ }, preset);
133
+ return presetWithAppendedPlugins;
134
+ };
135
+ }
136
+ export function createPreset(props, prevProps, createAnalyticsEvent) {
137
+ var _props$dangerouslyApp;
138
+ var preset = createUniversalPreset(props.appearance, getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEvent), createFeatureFlagsFromProps(props), prevProps === null || prevProps === void 0 ? void 0 : prevProps.appearance, createAnalyticsEvent);
139
+ return withDangerouslyAppendPlugins(preset)((_props$dangerouslyApp = props.dangerouslyAppendPlugins) === null || _props$dangerouslyApp === void 0 ? void 0 : _props$dangerouslyApp.__plugins);
114
140
  }
@@ -0,0 +1,21 @@
1
+ var EMPTY = [];
2
+ export function shouldRecreatePreset(props, nextProps) {
3
+ var _props$dangerouslyApp, _props$dangerouslyApp2, _nextProps$dangerousl, _nextProps$dangerousl2;
4
+ var prevPlugins = (_props$dangerouslyApp = (_props$dangerouslyApp2 = props.dangerouslyAppendPlugins) === null || _props$dangerouslyApp2 === void 0 ? void 0 : _props$dangerouslyApp2.__plugins) !== null && _props$dangerouslyApp !== void 0 ? _props$dangerouslyApp : EMPTY;
5
+ var nextPlugins = (_nextProps$dangerousl = (_nextProps$dangerousl2 = nextProps.dangerouslyAppendPlugins) === null || _nextProps$dangerousl2 === void 0 ? void 0 : _nextProps$dangerousl2.__plugins) !== null && _nextProps$dangerousl !== void 0 ? _nextProps$dangerousl : EMPTY;
6
+ if (nextPlugins.length !== prevPlugins.length || prevPlugins.some(function (p) {
7
+ return nextPlugins.some(function (n) {
8
+ return n.name === p.name && n !== p;
9
+ });
10
+ })) {
11
+ return true;
12
+ }
13
+ return shouldReconfigureState(props, nextProps);
14
+ }
15
+ function shouldReconfigureState(props, nextProps) {
16
+ var mobileProperties = props.appearance === 'mobile' ? ['quickInsert', 'featureFlags'] : [];
17
+ var properties = ['appearance', 'persistScrollGutter', 'allowUndoRedoButtons', 'placeholder', 'sanitizePrivateContent'].concat(mobileProperties);
18
+ return properties.reduce(function (acc, curr) {
19
+ return acc || props[curr] !== nextProps[curr];
20
+ }, false);
21
+ }
@@ -49,7 +49,7 @@ export function EditorInternalWithoutHooks(_ref) {
49
49
  providerFactory = _ref.providerFactory,
50
50
  onEditorCreated = _ref.onEditorCreated,
51
51
  onEditorDestroyed = _ref.onEditorDestroyed,
52
- getEditorPlugins = _ref.getEditorPlugins;
52
+ preset = _ref.preset;
53
53
  var Component = getUiComponent(props.appearance);
54
54
  var overriddenEditorProps = _objectSpread(_objectSpread({}, props), {}, {
55
55
  onSave: props.onSave ? handleSave : undefined,
@@ -89,7 +89,7 @@ export function EditorInternalWithoutHooks(_ref) {
89
89
  onEditorDestroyed: onEditorDestroyed,
90
90
  allowAnalyticsGASV3: props.allowAnalyticsGASV3,
91
91
  disabled: props.disabled,
92
- getEditorPlugins: getEditorPlugins,
92
+ preset: preset,
93
93
  render: function render(_ref2) {
94
94
  var _props$featureFlags, _props$featureFlags2;
95
95
  var editor = _ref2.editor,
@@ -3,12 +3,23 @@ import _createClass from "@babel/runtime/helpers/createClass";
3
3
  import _inherits from "@babel/runtime/helpers/inherits";
4
4
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
5
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
+ import _extends from "@babel/runtime/helpers/extends";
6
7
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
7
8
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
8
9
  import React from 'react';
10
+ import { createFeatureFlagsFromProps } from '../create-editor/feature-flags-from-props';
9
11
  import Editor from '../editor';
10
12
  import EditorNext from './index';
11
- import { createFeatureFlagsFromProps } from '../create-editor/feature-flags-from-props';
13
+ import useUniversalPreset from '../labs/next/presets/useUniversalPreset';
14
+ var EditorNextWrapper = function EditorNextWrapper(_ref) {
15
+ var props = _ref.props;
16
+ var preset = useUniversalPreset({
17
+ props: props
18
+ });
19
+ return /*#__PURE__*/React.createElement(EditorNext, _extends({
20
+ preset: preset
21
+ }, props));
22
+ };
12
23
  var EditorMigrationComponent = /*#__PURE__*/function (_React$Component) {
13
24
  _inherits(EditorMigrationComponent, _React$Component);
14
25
  var _super = _createSuper(EditorMigrationComponent);
@@ -20,7 +31,12 @@ var EditorMigrationComponent = /*#__PURE__*/function (_React$Component) {
20
31
  key: "render",
21
32
  value: function render() {
22
33
  var featureFlags = createFeatureFlagsFromProps(this.props);
23
- return featureFlags.useEditorNext ? /*#__PURE__*/React.createElement(EditorNext, this.props) : /*#__PURE__*/React.createElement(Editor, this.props);
34
+ if (!featureFlags.useEditorNext) {
35
+ return /*#__PURE__*/React.createElement(Editor, this.props);
36
+ }
37
+ return /*#__PURE__*/React.createElement(EditorNextWrapper, {
38
+ props: this.props
39
+ });
24
40
  }
25
41
  }]);
26
42
  return EditorMigrationComponent;
@@ -5,6 +5,7 @@ import { usePreviousState } from '@atlaskit/editor-common/hooks';
5
5
  import prepareQuickInsertProvider from '../../utils/prepare-quick-insert-provider';
6
6
  import prepareExtensionProvider from '../../utils/prepare-extension-provider';
7
7
  import handleProviders from '../utils/handleProviders';
8
+ import getProvidersFromEditorProps from '../utils/getProvidersFromEditorProps';
8
9
  function createNewState(editorActions, quickInsert, extensionProviders, createAnalyticsEvent) {
9
10
  var extensionProvider = prepareExtensionProvider(function () {
10
11
  return editorActions;
@@ -46,11 +47,11 @@ export default function useProviderFactory(props, editorActions, createAnalytics
46
47
  quickInsert && quickInsert !== (prevProps === null || prevProps === void 0 ? void 0 : prevProps.quickInsert)) {
47
48
  var newState = createNewState(editorActions, quickInsert, extensionProviders, createAnalyticsEvent);
48
49
  setProviderState(newState);
49
- handleProviders(providerFactory.current, props, newState.extensionProvider, newState.quickInsertProvider);
50
+ handleProviders(providerFactory.current, getProvidersFromEditorProps(props), newState.extensionProvider, newState.quickInsertProvider);
50
51
  return;
51
52
  }
52
- handleProviders(providerFactory.current, props, providerState.extensionProvider, providerState.quickInsertProvider);
53
- }, [props, prevProps, createAnalyticsEvent, editorActions, providerState.extensionProvider, providerState.quickInsertProvider, extensionProviders, quickInsert]);
53
+ handleProviders(providerFactory.current, getProvidersFromEditorProps(props), providerState.extensionProvider, providerState.quickInsertProvider);
54
+ }, [props, prevProps === null || prevProps === void 0 ? void 0 : prevProps.quickInsert, prevProps === null || prevProps === void 0 ? void 0 : prevProps.extensionProviders, createAnalyticsEvent, editorActions, providerState.extensionProvider, providerState.quickInsertProvider, extensionProviders, quickInsert]);
54
55
 
55
56
  // componentWillUnmount equivalent
56
57
  useEffect(function () {
@@ -5,6 +5,8 @@ import _inherits from "@babel/runtime/helpers/inherits";
5
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
7
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
10
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
9
11
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
10
12
  /** @jsx jsx */
@@ -24,7 +26,7 @@ import { defaultProps, propTypes } from './utils/editorPropTypes';
24
26
  import trackEditorActions from './utils/trackEditorActions';
25
27
  import _onEditorCreated from './utils/onEditorCreated';
26
28
  import deprecationWarnings from './utils/deprecationWarnings';
27
- import _getEditorPlugins from '../utils/get-editor-plugins';
29
+ import { basePlugin } from '../plugins';
28
30
  var EditorNext = /*#__PURE__*/function (_React$Component) {
29
31
  _inherits(EditorNext, _React$Component);
30
32
  var _super = _createSuper(EditorNext);
@@ -55,7 +57,6 @@ var EditorNext = /*#__PURE__*/function (_React$Component) {
55
57
  _this.onEditorCreated = _this.onEditorCreated.bind(_assertThisInitialized(_this));
56
58
  _this.onEditorDestroyed = _this.onEditorDestroyed.bind(_assertThisInitialized(_this));
57
59
  _this.getExperienceStore = _this.getExperienceStore.bind(_assertThisInitialized(_this));
58
- _this.getEditorPlugins = _this.getEditorPlugins.bind(_assertThisInitialized(_this));
59
60
  trackEditorActions(_this.editorActions, props.performanceTracking, function (value) {
60
61
  return _this.handleAnalyticsEvent(value);
61
62
  });
@@ -108,7 +109,7 @@ var EditorNext = /*#__PURE__*/function (_React$Component) {
108
109
  props: _this3.props,
109
110
  handleAnalyticsEvent: _this3.handleAnalyticsEvent,
110
111
  createAnalyticsEvent: _this3.createAnalyticsEvent,
111
- getEditorPlugins: _this3.getEditorPlugins,
112
+ preset: _this3.props.preset,
112
113
  handleSave: _this3.handleSave,
113
114
  editorActions: _this3.editorActions,
114
115
  getExperienceStore: _this3.getExperienceStore,
@@ -118,11 +119,6 @@ var EditorNext = /*#__PURE__*/function (_React$Component) {
118
119
  }
119
120
  }));
120
121
  }
121
- }, {
122
- key: "getEditorPlugins",
123
- value: function getEditorPlugins(props) {
124
- return _getEditorPlugins(props);
125
- }
126
122
  }]);
127
123
  return EditorNext;
128
124
  }(React.Component);
@@ -130,5 +126,13 @@ _defineProperty(EditorNext, "defaultProps", defaultProps);
130
126
  _defineProperty(EditorNext, "contextTypes", {
131
127
  editorActions: PropTypes.object
132
128
  });
133
- _defineProperty(EditorNext, "propTypes", propTypes('minHeight only supports editor appearance chromeless and comment for EditorNext'));
129
+ _defineProperty(EditorNext, "propTypes", _objectSpread(_objectSpread({}, propTypes('minHeight only supports editor appearance chromeless and comment for EditorNext')), {}, {
130
+ preset: function preset(_ref) {
131
+ var _preset = _ref.preset;
132
+ if (!_preset.has(basePlugin)) {
133
+ return new Error('Presets must contain the base plugin');
134
+ }
135
+ return null;
136
+ }
137
+ }));
134
138
  export { EditorNext as default };
@@ -0,0 +1,35 @@
1
+ export default function getProvidersFromEditorProps(_ref) {
2
+ var _linking$smartLinks;
3
+ var linking = _ref.linking,
4
+ smartLinks = _ref.smartLinks,
5
+ UNSAFE_cards = _ref.UNSAFE_cards,
6
+ autoformattingProvider = _ref.autoformattingProvider,
7
+ media = _ref.media,
8
+ emojiProvider = _ref.emojiProvider,
9
+ mentionProvider = _ref.mentionProvider,
10
+ legacyImageUploadProvider = _ref.legacyImageUploadProvider,
11
+ taskDecisionProvider = _ref.taskDecisionProvider,
12
+ contextIdentifierProvider = _ref.contextIdentifierProvider,
13
+ searchProvider = _ref.searchProvider,
14
+ macroProvider = _ref.macroProvider,
15
+ activityProvider = _ref.activityProvider,
16
+ collabEdit = _ref.collabEdit,
17
+ collabEditProvider = _ref.collabEditProvider,
18
+ presenceProvider = _ref.presenceProvider;
19
+ var cardProvider = (linking === null || linking === void 0 ? void 0 : (_linking$smartLinks = linking.smartLinks) === null || _linking$smartLinks === void 0 ? void 0 : _linking$smartLinks.provider) || smartLinks && smartLinks.provider || UNSAFE_cards && UNSAFE_cards.provider;
20
+ return {
21
+ mediaProvider: media === null || media === void 0 ? void 0 : media.provider,
22
+ emojiProvider: emojiProvider,
23
+ mentionProvider: mentionProvider,
24
+ autoformattingProvider: autoformattingProvider,
25
+ cardProvider: cardProvider,
26
+ activityProvider: activityProvider,
27
+ imageUploadProvider: legacyImageUploadProvider,
28
+ taskDecisionProvider: taskDecisionProvider,
29
+ contextIdentifierProvider: contextIdentifierProvider,
30
+ searchProvider: searchProvider,
31
+ presenceProvider: presenceProvider,
32
+ macroProvider: macroProvider,
33
+ collabEditProvider: collabEdit && collabEdit.provider ? collabEdit.provider : collabEditProvider
34
+ };
35
+ }
@@ -7,36 +7,31 @@
7
7
  * @param extensionProvider
8
8
  * @param quickInsertProvider
9
9
  */
10
- export default function handleProviders(providerFactory, props, extensionProvider, quickInsertProvider) {
11
- var _linking$smartLinks;
12
- var emojiProvider = props.emojiProvider,
13
- mentionProvider = props.mentionProvider,
14
- taskDecisionProvider = props.taskDecisionProvider,
15
- contextIdentifierProvider = props.contextIdentifierProvider,
16
- collabEditProvider = props.collabEditProvider,
17
- activityProvider = props.activityProvider,
18
- presenceProvider = props.presenceProvider,
19
- macroProvider = props.macroProvider,
20
- legacyImageUploadProvider = props.legacyImageUploadProvider,
21
- media = props.media,
22
- collabEdit = props.collabEdit,
23
- autoformattingProvider = props.autoformattingProvider,
24
- searchProvider = props.searchProvider,
25
- UNSAFE_cards = props.UNSAFE_cards,
26
- smartLinks = props.smartLinks,
27
- linking = props.linking;
10
+ export default function handleProviders(providerFactory, _ref, extensionProvider, quickInsertProvider) {
11
+ var emojiProvider = _ref.emojiProvider,
12
+ mentionProvider = _ref.mentionProvider,
13
+ taskDecisionProvider = _ref.taskDecisionProvider,
14
+ contextIdentifierProvider = _ref.contextIdentifierProvider,
15
+ collabEditProvider = _ref.collabEditProvider,
16
+ activityProvider = _ref.activityProvider,
17
+ presenceProvider = _ref.presenceProvider,
18
+ macroProvider = _ref.macroProvider,
19
+ imageUploadProvider = _ref.imageUploadProvider,
20
+ mediaProvider = _ref.mediaProvider,
21
+ autoformattingProvider = _ref.autoformattingProvider,
22
+ searchProvider = _ref.searchProvider,
23
+ cardProvider = _ref.cardProvider;
28
24
  providerFactory.setProvider('emojiProvider', emojiProvider);
29
25
  providerFactory.setProvider('mentionProvider', mentionProvider);
30
26
  providerFactory.setProvider('taskDecisionProvider', taskDecisionProvider);
31
27
  providerFactory.setProvider('contextIdentifierProvider', contextIdentifierProvider);
32
- providerFactory.setProvider('mediaProvider', media && media.provider);
33
- providerFactory.setProvider('imageUploadProvider', legacyImageUploadProvider);
34
- providerFactory.setProvider('collabEditProvider', collabEdit && collabEdit.provider ? collabEdit.provider : collabEditProvider);
28
+ providerFactory.setProvider('mediaProvider', mediaProvider);
29
+ providerFactory.setProvider('imageUploadProvider', imageUploadProvider);
30
+ providerFactory.setProvider('collabEditProvider', collabEditProvider);
35
31
  providerFactory.setProvider('activityProvider', activityProvider);
36
32
  providerFactory.setProvider('searchProvider', searchProvider);
37
33
  providerFactory.setProvider('presenceProvider', presenceProvider);
38
34
  providerFactory.setProvider('macroProvider', macroProvider);
39
- var cardProvider = (linking === null || linking === void 0 ? void 0 : (_linking$smartLinks = linking.smartLinks) === null || _linking$smartLinks === void 0 ? void 0 : _linking$smartLinks.provider) || smartLinks && smartLinks.provider || UNSAFE_cards && UNSAFE_cards.provider;
40
35
  if (cardProvider) {
41
36
  providerFactory.setProvider('cardProvider', cardProvider);
42
37
  }