@atlaskit/editor-core 180.0.0 → 180.1.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 (457) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/codemods/180.1.0-update-to-editor-migration-component.ts +8 -0
  3. package/codemods/__tests__/rename-editor-to-editor-migration-component.ts +156 -0
  4. package/codemods/migrates/rename-editor-to-editor-migration-component.ts +34 -0
  5. package/dist/cjs/actions/index.js +1 -1
  6. package/dist/cjs/create-editor/ReactEditorView.js +12 -762
  7. package/dist/cjs/create-editor/ReactEditorViewInternal.js +783 -0
  8. package/dist/cjs/create-editor/ReactEditorViewNext.js +16 -0
  9. package/dist/cjs/create-editor/create-plugins-list.js +1 -0
  10. package/dist/cjs/create-editor/feature-flags-from-props.js +3 -2
  11. package/dist/cjs/editor-next/editor-internal.js +147 -0
  12. package/dist/cjs/editor-next/editor-migration-component.js +35 -0
  13. package/dist/cjs/editor-next/hooks/useEditorMeasuresConstructor.js +36 -0
  14. package/dist/cjs/editor-next/hooks/useMeasureEditorMountTime.js +42 -0
  15. package/dist/cjs/editor-next/hooks/useProviderFactory.js +72 -0
  16. package/dist/cjs/editor-next/index.js +139 -0
  17. package/dist/cjs/editor-next/utils/deprecationWarnings.js +45 -0
  18. package/dist/cjs/editor-next/utils/editorMeasureTTICallback.js +44 -0
  19. package/dist/cjs/editor-next/utils/editorPropTypes.js +36 -0
  20. package/dist/cjs/editor-next/utils/getBaseFontSize.js +17 -0
  21. package/dist/cjs/editor-next/utils/handleProviders.js +56 -0
  22. package/dist/cjs/editor-next/utils/onEditorCreated.js +28 -0
  23. package/dist/cjs/editor-next/utils/sendDurationAnalytics.js +68 -0
  24. package/dist/cjs/editor-next/utils/trackEditorActions.js +101 -0
  25. package/dist/cjs/editor.js +130 -443
  26. package/dist/cjs/index.js +7 -0
  27. package/dist/cjs/labs/next/internal/hooks/use-analytics/index.js +4 -4
  28. package/dist/cjs/labs/next/internal/hooks/use-editor/create-dispatch-transaction.js +6 -6
  29. package/dist/cjs/labs/next/presets/create-stub-internal-apis.js +117 -0
  30. package/dist/cjs/labs/next/presets/preset.js +0 -5
  31. package/dist/cjs/labs/next/presets/universal.js +11 -2
  32. package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +48 -13
  33. package/dist/cjs/plugins/analytics/index.js +2 -3
  34. package/dist/cjs/plugins/analytics/plugin.js +5 -6
  35. package/dist/cjs/plugins/analytics/utils.js +0 -11
  36. package/dist/cjs/plugins/base/pm-plugins/filter-steps.js +1 -1
  37. package/dist/cjs/plugins/base/pm-plugins/frozen-editor.js +98 -56
  38. package/dist/cjs/plugins/base/utils/input-latency-tracking.js +24 -25
  39. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -0
  40. package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/index.js +36 -9
  41. package/dist/cjs/plugins/card/nodeviews/blockCard.js +2 -1
  42. package/dist/cjs/plugins/card/nodeviews/genericCard.js +16 -2
  43. package/dist/cjs/plugins/card/pm-plugins/main.js +4 -2
  44. package/dist/cjs/plugins/clipboard/pm-plugins/main.js +4 -1
  45. package/dist/cjs/plugins/collab-edit/plugin.js +2 -3
  46. package/dist/cjs/plugins/extension/toolbar.js +7 -1
  47. package/dist/cjs/plugins/find-replace/ui/FindReplaceToolbarButton.js +5 -1
  48. package/dist/cjs/plugins/floating-toolbar/ui/Button.js +2 -0
  49. package/dist/cjs/plugins/floating-toolbar/ui/CheckboxModal.js +5 -3
  50. package/dist/cjs/plugins/floating-toolbar/ui/Dropdown.js +38 -9
  51. package/dist/cjs/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +23 -21
  52. package/dist/cjs/plugins/floating-toolbar/ui/ScrollButtons.js +12 -7
  53. package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +11 -0
  54. package/dist/cjs/plugins/fragment/pm-plugins/fragment-consistency.js +1 -0
  55. package/dist/cjs/plugins/hyperlink/analytics.js +5 -5
  56. package/dist/cjs/plugins/hyperlink/index.js +1 -1
  57. package/dist/cjs/plugins/hyperlink/pm-plugins/main.js +9 -5
  58. package/dist/cjs/plugins/hyperlink/ui/EditorLinkPicker/index.js +10 -4
  59. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
  60. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +4 -3
  61. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -0
  62. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +1 -0
  63. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +3 -0
  64. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +1 -0
  65. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +22 -0
  66. package/dist/cjs/plugins/media/commands/helpers.js +12 -40
  67. package/dist/cjs/plugins/media/commands/index.js +4 -4
  68. package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +14 -12
  69. package/dist/cjs/plugins/media/nodeviews/mediaInline.js +1 -1
  70. package/dist/cjs/plugins/media/nodeviews/mediaNodeUpdater.js +310 -205
  71. package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +1 -1
  72. package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +1 -1
  73. package/dist/cjs/plugins/media/pm-plugins/main.js +2 -27
  74. package/dist/cjs/plugins/media/toolbar/filePreviewItem.js +1 -4
  75. package/dist/cjs/plugins/panel/utils.js +4 -1
  76. package/dist/cjs/plugins/paste/handlers.js +128 -13
  77. package/dist/cjs/plugins/paste/pm-plugins/analytics.js +15 -6
  78. package/dist/cjs/plugins/paste/pm-plugins/main.js +12 -3
  79. package/dist/cjs/plugins/placeholder-text/index.js +2 -2
  80. package/dist/cjs/plugins/status/index.js +9 -3
  81. package/dist/cjs/plugins/status/ui/statusPicker.js +8 -2
  82. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +42 -8
  83. package/dist/cjs/plugins/text-formatting/ui/Toolbar/dropdown-menu.js +22 -2
  84. package/dist/cjs/plugins/text-formatting/ui/Toolbar/index.js +3 -1
  85. package/dist/cjs/plugins/text-formatting/ui/Toolbar/more-button.js +3 -1
  86. package/dist/cjs/plugins/text-formatting/utils.js +1 -10
  87. package/dist/cjs/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +19 -1
  88. package/dist/cjs/plugins/type-ahead/index.js +1 -1
  89. package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +79 -106
  90. package/dist/cjs/types/get-editor-props.js +5 -0
  91. package/dist/cjs/ui/ChromeCollapsed/index.js +1 -0
  92. package/dist/cjs/ui/CollapsedEditor/index.js +7 -13
  93. package/dist/cjs/ui/ColorPickerButton/index.js +68 -6
  94. package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +1 -1
  95. package/dist/cjs/ui/ContextPanel/context.js +13 -12
  96. package/dist/cjs/ui/Dropdown/index.js +7 -2
  97. package/dist/cjs/ui/DropdownMenu/index.js +7 -2
  98. package/dist/cjs/ui/ElementBrowser/components/CategoryList.js +1 -1
  99. package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +1 -1
  100. package/dist/cjs/ui/ElementBrowser/components/StatelessElementBrowser.js +1 -1
  101. package/dist/cjs/ui/PanelTextInput/index.js +4 -4
  102. package/dist/cjs/ui/PortalProvider/index.js +5 -5
  103. package/dist/cjs/ui/WidthEmitter/index.js +29 -35
  104. package/dist/cjs/utils/document.js +15 -0
  105. package/dist/cjs/utils/extensions.js +6 -7
  106. package/dist/cjs/utils/get-editor-plugins.js +32 -0
  107. package/dist/cjs/utils/linking-utils.js +1 -1
  108. package/dist/cjs/utils/performance/components/RenderTracking.js +1 -1
  109. package/dist/cjs/utils/performance/safer-transactions.js +1 -1
  110. package/dist/cjs/utils/prepare-extension-provider.js +25 -0
  111. package/dist/cjs/version-wrapper.js +1 -1
  112. package/dist/cjs/version.json +1 -1
  113. package/dist/es2019/actions/index.js +2 -2
  114. package/dist/es2019/create-editor/ReactEditorView.js +6 -708
  115. package/dist/es2019/create-editor/ReactEditorViewInternal.js +712 -0
  116. package/dist/es2019/create-editor/ReactEditorViewNext.js +7 -0
  117. package/dist/es2019/create-editor/create-plugins-list.js +1 -0
  118. package/dist/es2019/create-editor/feature-flags-from-props.js +3 -2
  119. package/dist/es2019/editor-next/editor-internal.js +142 -0
  120. package/dist/es2019/editor-next/editor-migration-component.js +10 -0
  121. package/dist/es2019/editor-next/hooks/useEditorMeasuresConstructor.js +30 -0
  122. package/dist/es2019/editor-next/hooks/useMeasureEditorMountTime.js +35 -0
  123. package/dist/es2019/editor-next/hooks/useProviderFactory.js +61 -0
  124. package/dist/es2019/editor-next/index.js +90 -0
  125. package/dist/es2019/editor-next/utils/deprecationWarnings.js +39 -0
  126. package/dist/es2019/editor-next/utils/editorMeasureTTICallback.js +40 -0
  127. package/dist/es2019/editor-next/utils/editorPropTypes.js +29 -0
  128. package/dist/es2019/editor-next/utils/getBaseFontSize.js +11 -0
  129. package/dist/es2019/editor-next/utils/handleProviders.js +52 -0
  130. package/dist/es2019/editor-next/utils/onEditorCreated.js +21 -0
  131. package/dist/es2019/editor-next/utils/sendDurationAnalytics.js +40 -0
  132. package/dist/es2019/editor-next/utils/trackEditorActions.js +78 -0
  133. package/dist/es2019/editor.js +111 -396
  134. package/dist/es2019/index.js +2 -1
  135. package/dist/es2019/labs/next/internal/hooks/use-analytics/index.js +2 -2
  136. package/dist/es2019/labs/next/internal/hooks/use-editor/create-dispatch-transaction.js +2 -3
  137. package/dist/es2019/labs/next/presets/create-stub-internal-apis.js +105 -0
  138. package/dist/es2019/labs/next/presets/preset.js +0 -3
  139. package/dist/es2019/labs/next/presets/universal.js +13 -2
  140. package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +41 -12
  141. package/dist/es2019/plugins/analytics/index.js +3 -4
  142. package/dist/es2019/plugins/analytics/plugin.js +1 -2
  143. package/dist/es2019/plugins/analytics/utils.js +0 -4
  144. package/dist/es2019/plugins/base/pm-plugins/filter-steps.js +1 -1
  145. package/dist/es2019/plugins/base/pm-plugins/frozen-editor.js +96 -58
  146. package/dist/es2019/plugins/base/utils/input-latency-tracking.js +23 -23
  147. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -0
  148. package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/index.js +31 -5
  149. package/dist/es2019/plugins/card/nodeviews/blockCard.js +4 -1
  150. package/dist/es2019/plugins/card/nodeviews/genericCard.js +16 -2
  151. package/dist/es2019/plugins/card/pm-plugins/main.js +3 -1
  152. package/dist/es2019/plugins/clipboard/pm-plugins/main.js +3 -1
  153. package/dist/es2019/plugins/collab-edit/plugin.js +1 -2
  154. package/dist/es2019/plugins/extension/toolbar.js +7 -1
  155. package/dist/es2019/plugins/find-replace/ui/FindReplaceToolbarButton.js +5 -1
  156. package/dist/es2019/plugins/floating-toolbar/ui/Button.js +2 -0
  157. package/dist/es2019/plugins/floating-toolbar/ui/CheckboxModal.js +5 -3
  158. package/dist/es2019/plugins/floating-toolbar/ui/Dropdown.js +35 -7
  159. package/dist/es2019/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +2 -2
  160. package/dist/es2019/plugins/floating-toolbar/ui/ScrollButtons.js +12 -7
  161. package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +11 -0
  162. package/dist/es2019/plugins/fragment/pm-plugins/fragment-consistency.js +1 -0
  163. package/dist/es2019/plugins/hyperlink/analytics.js +1 -1
  164. package/dist/es2019/plugins/hyperlink/index.js +1 -1
  165. package/dist/es2019/plugins/hyperlink/pm-plugins/main.js +8 -4
  166. package/dist/es2019/plugins/hyperlink/ui/EditorLinkPicker/index.js +9 -3
  167. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
  168. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -2
  169. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -0
  170. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +1 -0
  171. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +3 -0
  172. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +1 -0
  173. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +24 -0
  174. package/dist/es2019/plugins/media/commands/helpers.js +9 -35
  175. package/dist/es2019/plugins/media/commands/index.js +1 -1
  176. package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +3 -3
  177. package/dist/es2019/plugins/media/nodeviews/mediaInline.js +1 -1
  178. package/dist/es2019/plugins/media/nodeviews/mediaNodeUpdater.js +70 -37
  179. package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +1 -1
  180. package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +1 -1
  181. package/dist/es2019/plugins/media/pm-plugins/main.js +3 -30
  182. package/dist/es2019/plugins/media/toolbar/filePreviewItem.js +1 -4
  183. package/dist/es2019/plugins/panel/utils.js +4 -1
  184. package/dist/es2019/plugins/paste/handlers.js +127 -5
  185. package/dist/es2019/plugins/paste/pm-plugins/analytics.js +10 -4
  186. package/dist/es2019/plugins/paste/pm-plugins/main.js +13 -4
  187. package/dist/es2019/plugins/placeholder-text/index.js +1 -1
  188. package/dist/es2019/plugins/status/index.js +8 -2
  189. package/dist/es2019/plugins/status/ui/statusPicker.js +8 -2
  190. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +42 -8
  191. package/dist/es2019/plugins/text-formatting/ui/Toolbar/dropdown-menu.js +20 -3
  192. package/dist/es2019/plugins/text-formatting/ui/Toolbar/index.js +4 -2
  193. package/dist/es2019/plugins/text-formatting/ui/Toolbar/more-button.js +3 -1
  194. package/dist/es2019/plugins/text-formatting/utils.js +0 -8
  195. package/dist/es2019/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +16 -1
  196. package/dist/es2019/plugins/type-ahead/index.js +1 -1
  197. package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +73 -92
  198. package/dist/es2019/types/get-editor-props.js +1 -0
  199. package/dist/es2019/ui/ChromeCollapsed/index.js +1 -0
  200. package/dist/es2019/ui/CollapsedEditor/index.js +7 -11
  201. package/dist/es2019/ui/ColorPickerButton/index.js +61 -8
  202. package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +1 -1
  203. package/dist/es2019/ui/ContextPanel/context.js +5 -4
  204. package/dist/es2019/ui/Dropdown/index.js +5 -2
  205. package/dist/es2019/ui/DropdownMenu/index.js +5 -2
  206. package/dist/es2019/ui/ElementBrowser/components/CategoryList.js +1 -1
  207. package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +1 -1
  208. package/dist/es2019/ui/ElementBrowser/components/StatelessElementBrowser.js +1 -1
  209. package/dist/es2019/ui/PanelTextInput/index.js +3 -3
  210. package/dist/es2019/ui/PortalProvider/index.js +1 -1
  211. package/dist/es2019/ui/WidthEmitter/index.js +25 -29
  212. package/dist/es2019/utils/document.js +11 -1
  213. package/dist/es2019/utils/extensions.js +1 -3
  214. package/dist/es2019/utils/get-editor-plugins.js +25 -0
  215. package/dist/es2019/utils/linking-utils.js +1 -1
  216. package/dist/es2019/utils/performance/components/RenderTracking.js +1 -1
  217. package/dist/es2019/utils/performance/safer-transactions.js +1 -1
  218. package/dist/es2019/utils/prepare-extension-provider.js +13 -0
  219. package/dist/es2019/version-wrapper.js +1 -1
  220. package/dist/es2019/version.json +1 -1
  221. package/dist/esm/actions/index.js +2 -2
  222. package/dist/esm/create-editor/ReactEditorView.js +12 -763
  223. package/dist/esm/create-editor/ReactEditorViewInternal.js +776 -0
  224. package/dist/esm/create-editor/ReactEditorViewNext.js +7 -0
  225. package/dist/esm/create-editor/create-plugins-list.js +1 -0
  226. package/dist/esm/create-editor/feature-flags-from-props.js +3 -2
  227. package/dist/esm/editor-next/editor-internal.js +141 -0
  228. package/dist/esm/editor-next/editor-migration-component.js +28 -0
  229. package/dist/esm/editor-next/hooks/useEditorMeasuresConstructor.js +30 -0
  230. package/dist/esm/editor-next/hooks/useMeasureEditorMountTime.js +35 -0
  231. package/dist/esm/editor-next/hooks/useProviderFactory.js +65 -0
  232. package/dist/esm/editor-next/index.js +134 -0
  233. package/dist/esm/editor-next/utils/deprecationWarnings.js +39 -0
  234. package/dist/esm/editor-next/utils/editorMeasureTTICallback.js +38 -0
  235. package/dist/esm/editor-next/utils/editorPropTypes.js +28 -0
  236. package/dist/esm/editor-next/utils/getBaseFontSize.js +11 -0
  237. package/dist/esm/editor-next/utils/handleProviders.js +50 -0
  238. package/dist/esm/editor-next/utils/onEditorCreated.js +21 -0
  239. package/dist/esm/editor-next/utils/sendDurationAnalytics.js +61 -0
  240. package/dist/esm/editor-next/utils/trackEditorActions.js +94 -0
  241. package/dist/esm/editor.js +130 -440
  242. package/dist/esm/index.js +2 -1
  243. package/dist/esm/labs/next/internal/hooks/use-analytics/index.js +2 -2
  244. package/dist/esm/labs/next/internal/hooks/use-editor/create-dispatch-transaction.js +2 -3
  245. package/dist/esm/labs/next/presets/create-stub-internal-apis.js +110 -0
  246. package/dist/esm/labs/next/presets/preset.js +0 -5
  247. package/dist/esm/labs/next/presets/universal.js +11 -2
  248. package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +48 -13
  249. package/dist/esm/plugins/analytics/index.js +3 -4
  250. package/dist/esm/plugins/analytics/plugin.js +1 -2
  251. package/dist/esm/plugins/analytics/utils.js +0 -9
  252. package/dist/esm/plugins/base/pm-plugins/filter-steps.js +1 -1
  253. package/dist/esm/plugins/base/pm-plugins/frozen-editor.js +98 -56
  254. package/dist/esm/plugins/base/utils/input-latency-tracking.js +24 -25
  255. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -0
  256. package/dist/esm/plugins/block-type/ui/ToolbarBlockType/index.js +36 -9
  257. package/dist/esm/plugins/card/nodeviews/blockCard.js +2 -1
  258. package/dist/esm/plugins/card/nodeviews/genericCard.js +16 -2
  259. package/dist/esm/plugins/card/pm-plugins/main.js +4 -2
  260. package/dist/esm/plugins/clipboard/pm-plugins/main.js +4 -1
  261. package/dist/esm/plugins/collab-edit/plugin.js +1 -2
  262. package/dist/esm/plugins/extension/toolbar.js +7 -1
  263. package/dist/esm/plugins/find-replace/ui/FindReplaceToolbarButton.js +5 -1
  264. package/dist/esm/plugins/floating-toolbar/ui/Button.js +2 -0
  265. package/dist/esm/plugins/floating-toolbar/ui/CheckboxModal.js +5 -3
  266. package/dist/esm/plugins/floating-toolbar/ui/Dropdown.js +38 -9
  267. package/dist/esm/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +23 -21
  268. package/dist/esm/plugins/floating-toolbar/ui/ScrollButtons.js +12 -7
  269. package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +11 -0
  270. package/dist/esm/plugins/fragment/pm-plugins/fragment-consistency.js +1 -0
  271. package/dist/esm/plugins/hyperlink/analytics.js +1 -1
  272. package/dist/esm/plugins/hyperlink/index.js +1 -1
  273. package/dist/esm/plugins/hyperlink/pm-plugins/main.js +9 -5
  274. package/dist/esm/plugins/hyperlink/ui/EditorLinkPicker/index.js +10 -4
  275. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
  276. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -2
  277. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -0
  278. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +1 -0
  279. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +3 -0
  280. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +1 -0
  281. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +22 -0
  282. package/dist/esm/plugins/media/commands/helpers.js +9 -35
  283. package/dist/esm/plugins/media/commands/index.js +1 -1
  284. package/dist/esm/plugins/media/nodeviews/mediaGroup.js +14 -12
  285. package/dist/esm/plugins/media/nodeviews/mediaInline.js +1 -1
  286. package/dist/esm/plugins/media/nodeviews/mediaNodeUpdater.js +311 -206
  287. package/dist/esm/plugins/media/nodeviews/mediaSingle.js +1 -1
  288. package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +1 -1
  289. package/dist/esm/plugins/media/pm-plugins/main.js +3 -28
  290. package/dist/esm/plugins/media/toolbar/filePreviewItem.js +1 -4
  291. package/dist/esm/plugins/panel/utils.js +4 -1
  292. package/dist/esm/plugins/paste/handlers.js +127 -13
  293. package/dist/esm/plugins/paste/pm-plugins/analytics.js +13 -5
  294. package/dist/esm/plugins/paste/pm-plugins/main.js +13 -4
  295. package/dist/esm/plugins/placeholder-text/index.js +2 -2
  296. package/dist/esm/plugins/status/index.js +9 -3
  297. package/dist/esm/plugins/status/ui/statusPicker.js +8 -2
  298. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +42 -8
  299. package/dist/esm/plugins/text-formatting/ui/Toolbar/dropdown-menu.js +23 -3
  300. package/dist/esm/plugins/text-formatting/ui/Toolbar/index.js +4 -2
  301. package/dist/esm/plugins/text-formatting/ui/Toolbar/more-button.js +3 -1
  302. package/dist/esm/plugins/text-formatting/utils.js +0 -8
  303. package/dist/esm/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +19 -1
  304. package/dist/esm/plugins/type-ahead/index.js +1 -1
  305. package/dist/esm/plugins/type-ahead/ui/InputQuery.js +79 -106
  306. package/dist/esm/types/get-editor-props.js +1 -0
  307. package/dist/esm/ui/ChromeCollapsed/index.js +1 -0
  308. package/dist/esm/ui/CollapsedEditor/index.js +7 -13
  309. package/dist/esm/ui/ColorPickerButton/index.js +69 -7
  310. package/dist/esm/ui/ConfigPanel/ConfigPanel.js +1 -1
  311. package/dist/esm/ui/ContextPanel/context.js +8 -8
  312. package/dist/esm/ui/Dropdown/index.js +7 -2
  313. package/dist/esm/ui/DropdownMenu/index.js +7 -2
  314. package/dist/esm/ui/ElementBrowser/components/CategoryList.js +1 -1
  315. package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +1 -1
  316. package/dist/esm/ui/ElementBrowser/components/StatelessElementBrowser.js +1 -1
  317. package/dist/esm/ui/PanelTextInput/index.js +4 -4
  318. package/dist/esm/ui/PortalProvider/index.js +1 -1
  319. package/dist/esm/ui/WidthEmitter/index.js +28 -37
  320. package/dist/esm/utils/document.js +15 -1
  321. package/dist/esm/utils/extensions.js +1 -3
  322. package/dist/esm/utils/get-editor-plugins.js +25 -0
  323. package/dist/esm/utils/linking-utils.js +1 -1
  324. package/dist/esm/utils/performance/components/RenderTracking.js +1 -1
  325. package/dist/esm/utils/performance/safer-transactions.js +1 -1
  326. package/dist/esm/utils/prepare-extension-provider.js +17 -0
  327. package/dist/esm/version-wrapper.js +1 -1
  328. package/dist/esm/version.json +1 -1
  329. package/dist/types/actions/index.d.ts +2 -2
  330. package/dist/types/create-editor/ReactEditorView.d.ts +7 -109
  331. package/dist/types/create-editor/ReactEditorViewInternal.d.ts +112 -0
  332. package/dist/types/create-editor/ReactEditorViewNext.d.ts +9 -0
  333. package/dist/types/editor-next/editor-internal.d.ts +44 -0
  334. package/dist/types/editor-next/editor-migration-component.d.ts +5 -0
  335. package/dist/types/editor-next/hooks/useEditorMeasuresConstructor.d.ts +17 -0
  336. package/dist/types/editor-next/hooks/useMeasureEditorMountTime.d.ts +13 -0
  337. package/dist/types/editor-next/hooks/useProviderFactory.d.ts +21 -0
  338. package/dist/types/editor-next/index.d.ts +34 -0
  339. package/dist/types/editor-next/utils/deprecationWarnings.d.ts +2 -0
  340. package/dist/types/editor-next/utils/editorMeasureTTICallback.d.ts +5 -0
  341. package/dist/types/editor-next/utils/editorPropTypes.d.ts +19 -0
  342. package/dist/types/editor-next/utils/getBaseFontSize.d.ts +6 -0
  343. package/dist/types/editor-next/utils/handleProviders.d.ts +14 -0
  344. package/dist/types/editor-next/utils/onEditorCreated.d.ts +12 -0
  345. package/dist/types/editor-next/utils/sendDurationAnalytics.d.ts +15 -0
  346. package/dist/types/editor-next/utils/trackEditorActions.d.ts +29 -0
  347. package/dist/types/editor.d.ts +47 -25
  348. package/dist/types/index.d.ts +1 -0
  349. package/dist/types/labs/next/internal/hooks/use-analytics/index.d.ts +1 -1
  350. package/dist/types/labs/next/presets/create-stub-internal-apis.d.ts +16 -0
  351. package/dist/types/labs/next/presets/preset.d.ts +6 -6
  352. package/dist/types/labs/next/presets/universal.d.ts +1 -1
  353. package/dist/types/plugins/alignment/index.d.ts +1 -1
  354. package/dist/types/plugins/alignment/ui/ToolbarAlignment/index.d.ts +3 -1
  355. package/dist/types/plugins/analytics/index.d.ts +3 -6
  356. package/dist/types/plugins/analytics/plugin.d.ts +3 -1
  357. package/dist/types/plugins/analytics/utils.d.ts +2 -3
  358. package/dist/types/plugins/annotation/index.d.ts +3 -1
  359. package/dist/types/plugins/avatar-group/index.d.ts +3 -1
  360. package/dist/types/plugins/base/index.d.ts +3 -1
  361. package/dist/types/plugins/base/pm-plugins/filter-steps.d.ts +1 -1
  362. package/dist/types/plugins/base/utils/input-latency-tracking.d.ts +1 -3
  363. package/dist/types/plugins/before-primaryToolbar/index.d.ts +3 -1
  364. package/dist/types/plugins/block-type/index.d.ts +3 -1
  365. package/dist/types/plugins/block-type/ui/ToolbarBlockType/blocktype-button.d.ts +1 -0
  366. package/dist/types/plugins/block-type/ui/ToolbarBlockType/index.d.ts +1 -0
  367. package/dist/types/plugins/breakout/index.d.ts +3 -1
  368. package/dist/types/plugins/card/index.d.ts +3 -1
  369. package/dist/types/plugins/card/nodeviews/genericCard.d.ts +1 -1
  370. package/dist/types/plugins/card/pm-plugins/util/state.d.ts +1 -0
  371. package/dist/types/plugins/card/types.d.ts +3 -0
  372. package/dist/types/plugins/code-bidi-warning/index.d.ts +3 -1
  373. package/dist/types/plugins/code-block/index.d.ts +3 -1
  374. package/dist/types/plugins/collab-edit/index.d.ts +3 -1
  375. package/dist/types/plugins/context-panel/index.d.ts +1 -1
  376. package/dist/types/plugins/emoji/index.d.ts +3 -1
  377. package/dist/types/plugins/expand/index.d.ts +3 -1
  378. package/dist/types/plugins/extension/index.d.ts +3 -1
  379. package/dist/types/plugins/extension/toolbar.d.ts +5 -0
  380. package/dist/types/plugins/feature-flags-context/index.d.ts +3 -1
  381. package/dist/types/plugins/feedback-dialog/index.d.ts +3 -1
  382. package/dist/types/plugins/find-replace/index.d.ts +3 -1
  383. package/dist/types/plugins/floating-toolbar/ui/Button.d.ts +2 -1
  384. package/dist/types/plugins/floating-toolbar/ui/Dropdown.d.ts +5 -2
  385. package/dist/types/plugins/grid/index.d.ts +3 -1
  386. package/dist/types/plugins/help-dialog/index.d.ts +3 -1
  387. package/dist/types/plugins/hyperlink/analytics.d.ts +1 -1
  388. package/dist/types/plugins/hyperlink/index.d.ts +3 -1
  389. package/dist/types/plugins/hyperlink/pm-plugins/main.d.ts +4 -2
  390. package/dist/types/plugins/hyperlink/types.d.ts +3 -1
  391. package/dist/types/plugins/hyperlink/ui/EditorLinkPicker/index.d.ts +3 -1
  392. package/dist/types/plugins/insert-block/index.d.ts +3 -1
  393. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.d.ts +1 -0
  394. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.d.ts +1 -0
  395. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.d.ts +1 -0
  396. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.d.ts +1 -0
  397. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/index.d.ts +1 -0
  398. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/types.d.ts +1 -0
  399. package/dist/types/plugins/layout/index.d.ts +3 -1
  400. package/dist/types/plugins/list/index.d.ts +3 -1
  401. package/dist/types/plugins/max-content-size/index.d.ts +3 -1
  402. package/dist/types/plugins/media/commands/helpers.d.ts +5 -12
  403. package/dist/types/plugins/media/commands/index.d.ts +1 -1
  404. package/dist/types/plugins/media/index.d.ts +3 -1
  405. package/dist/types/plugins/media/nodeviews/__mocks__/mediaNodeUpdater.d.ts +3 -1
  406. package/dist/types/plugins/media/nodeviews/mediaNodeUpdater.d.ts +4 -1
  407. package/dist/types/plugins/media/pm-plugins/main.d.ts +1 -4
  408. package/dist/types/plugins/media/pm-plugins/types.d.ts +1 -4
  409. package/dist/types/plugins/mentions/index.d.ts +3 -1
  410. package/dist/types/plugins/panel/index.d.ts +3 -1
  411. package/dist/types/plugins/paste/handlers.d.ts +2 -1
  412. package/dist/types/plugins/paste/index.d.ts +3 -1
  413. package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +4 -1
  414. package/dist/types/plugins/placeholder/index.d.ts +3 -1
  415. package/dist/types/plugins/placeholder-text/index.d.ts +3 -1
  416. package/dist/types/plugins/quick-insert/index.d.ts +3 -1
  417. package/dist/types/plugins/save-on-enter/index.d.ts +3 -1
  418. package/dist/types/plugins/selection/index.d.ts +3 -1
  419. package/dist/types/plugins/status/index.d.ts +3 -1
  420. package/dist/types/plugins/status/ui/statusPicker.d.ts +3 -0
  421. package/dist/types/plugins/submit-editor/index.d.ts +3 -1
  422. package/dist/types/plugins/tasks-and-decisions/index.d.ts +3 -1
  423. package/dist/types/plugins/text-color/index.d.ts +3 -1
  424. package/dist/types/plugins/text-color/ui/ToolbarTextColor/index.d.ts +2 -0
  425. package/dist/types/plugins/text-formatting/index.d.ts +3 -1
  426. package/dist/types/plugins/text-formatting/ui/Toolbar/more-button.d.ts +2 -1
  427. package/dist/types/plugins/text-formatting/utils.d.ts +0 -1
  428. package/dist/types/plugins/toolbar-lists-indentation/index.d.ts +3 -1
  429. package/dist/types/plugins/type-ahead/index.d.ts +3 -1
  430. package/dist/types/types/get-editor-props.d.ts +12 -0
  431. package/dist/types/types/performance-tracking.d.ts +10 -0
  432. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +29 -29
  433. package/dist/types/ui/CollapsedEditor/index.d.ts +4 -3
  434. package/dist/types/ui/ColorPickerButton/index.d.ts +2 -1
  435. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  436. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  437. package/dist/types/ui/ContextPanel/context.d.ts +2 -1
  438. package/dist/types/ui/PanelTextInput/index.d.ts +1 -1
  439. package/dist/types/ui/PortalProvider/index.d.ts +1 -1
  440. package/dist/types/utils/document.d.ts +4 -3
  441. package/dist/types/utils/get-editor-plugins.d.ts +10 -0
  442. package/dist/types/utils/linking-utils.d.ts +1 -1
  443. package/dist/types/utils/performance/components/RenderTracking.d.ts +1 -1
  444. package/dist/types/utils/performance/instrumented-plugin.d.ts +1 -1
  445. package/dist/types/utils/performance/safer-transactions.d.ts +1 -1
  446. package/dist/types/utils/prepare-extension-provider.d.ts +5 -0
  447. package/docs/0-intro.tsx +0 -1
  448. package/package.json +23 -22
  449. package/report.api.md +193 -139
  450. package/dist/cjs/plugins/analytics/analytics-queue.js +0 -79
  451. package/dist/cjs/plugins/analytics/fire-analytics-event.js +0 -35
  452. package/dist/es2019/plugins/analytics/analytics-queue.js +0 -53
  453. package/dist/es2019/plugins/analytics/fire-analytics-event.js +0 -26
  454. package/dist/esm/plugins/analytics/analytics-queue.js +0 -71
  455. package/dist/esm/plugins/analytics/fire-analytics-event.js +0 -28
  456. package/dist/types/plugins/analytics/analytics-queue.d.ts +0 -10
  457. package/dist/types/plugins/analytics/fire-analytics-event.d.ts +0 -9
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { ReactEditorView } from './ReactEditorViewInternal';
3
+ import { injectIntl } from 'react-intl-next';
4
+ export function ReactEditorViewEditor(props) {
5
+ return /*#__PURE__*/React.createElement(ReactEditorView, props);
6
+ }
7
+ export default injectIntl(ReactEditorViewEditor);
@@ -80,6 +80,7 @@ export function getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEve
80
80
  },
81
81
  cardOptions,
82
82
  hyperlinkOptions: {
83
+ editorAppearance: props.appearance,
83
84
  linkPicker: (_props$linking2 = props.linking) === null || _props$linking2 === void 0 ? void 0 : _props$linking2.linkPicker,
84
85
  cardOptions,
85
86
  platform: isMobile ? 'mobile' : 'web'
@@ -21,7 +21,7 @@ function getSpellCheck(featureFlags) {
21
21
  * which is used by both current and archv3 editors.
22
22
  */
23
23
  export function createFeatureFlagsFromProps(props) {
24
- var _props$featureFlags, _props$allowLayouts, _props$performanceTra, _props$performanceTra2, _props$featureFlags2, _props$featureFlags3, _props$allowTables, _props$featureFlags4, _props$featureFlags5, _props$allowTables2, _props$featureFlags6, _props$featureFlags7, _props$allowTables3, _props$featureFlags8, _props$featureFlags9, _props$allowTables4, _props$allowTables5, _props$featureFlags10, _props$featureFlags11, _props$allowTables6, _props$allowExtension, _props$featureFlags12, _props$featureFlags13, _props$featureFlags14, _props$featureFlags15, _props$featureFlags16, _props$featureFlags17, _props$featureFlags18, _props$featureFlags19, _props$featureFlags20, _props$featureFlags21, _props$featureFlags22, _props$featureFlags23, _props$featureFlags24, _props$featureFlags25, _props$featureFlags26, _props$featureFlags27, _props$featureFlags28, _props$featureFlags29, _props$collabEdit, _props$collabEdit2, _props$featureFlags30, _props$featureFlags31, _props$featureFlags32, _props$featureFlags33, _props$featureFlags34, _props$featureFlags35, _props$featureFlags36, _props$featureFlags37, _props$featureFlags38, _props$featureFlags39, _props$featureFlags40, _props$featureFlags41, _props$featureFlags42, _props$featureFlags43, _props$featureFlags44;
24
+ var _props$featureFlags, _props$allowLayouts, _props$performanceTra, _props$performanceTra2, _props$featureFlags2, _props$featureFlags3, _props$allowTables, _props$featureFlags4, _props$featureFlags5, _props$allowTables2, _props$featureFlags6, _props$featureFlags7, _props$allowTables3, _props$featureFlags8, _props$featureFlags9, _props$allowTables4, _props$allowTables5, _props$featureFlags10, _props$featureFlags11, _props$allowTables6, _props$allowExtension, _props$featureFlags12, _props$featureFlags13, _props$featureFlags14, _props$featureFlags15, _props$featureFlags16, _props$featureFlags17, _props$featureFlags18, _props$featureFlags19, _props$featureFlags20, _props$featureFlags21, _props$featureFlags22, _props$featureFlags23, _props$featureFlags24, _props$featureFlags25, _props$featureFlags26, _props$featureFlags27, _props$featureFlags28, _props$featureFlags29, _props$collabEdit, _props$collabEdit2, _props$featureFlags30, _props$featureFlags31, _props$featureFlags32, _props$featureFlags33, _props$featureFlags34, _props$featureFlags35, _props$featureFlags36, _props$featureFlags37, _props$featureFlags38, _props$featureFlags39, _props$featureFlags40, _props$featureFlags41, _props$featureFlags42, _props$featureFlags43, _props$featureFlags44, _props$featureFlags45;
25
25
  const normalizedFeatureFlags = normalizeFeatureFlags(props.featureFlags);
26
26
  const tableCellOptionsInFloatingToolbar = normalizedFeatureFlags.tableCellOptionsInFloatingToolbar || ((_props$featureFlags = props.featureFlags) === null || _props$featureFlags === void 0 ? void 0 : _props$featureFlags.tableCellOptionsInFloatingToolbar) || undefined;
27
27
  return {
@@ -65,6 +65,7 @@ export function createFeatureFlagsFromProps(props) {
65
65
  restartNumberedListsToolbar: normalizedFeatureFlags.restartNumberedListsToolbar === true || ((_props$featureFlags40 = props.featureFlags) === null || _props$featureFlags40 === void 0 ? void 0 : _props$featureFlags40.restartNumberedListsToolbar) === true,
66
66
  useSomewhatSemanticTextColorNames: Boolean(typeof normalizedFeatureFlags.useSomewhatSemanticTextColorNames === 'boolean' && !!normalizedFeatureFlags.useSomewhatSemanticTextColorNames || (typeof ((_props$featureFlags41 = props.featureFlags) === null || _props$featureFlags41 === void 0 ? void 0 : _props$featureFlags41.useSomewhatSemanticTextColorNames) === 'boolean' ? !!((_props$featureFlags42 = props.featureFlags) !== null && _props$featureFlags42 !== void 0 && _props$featureFlags42.useSomewhatSemanticTextColorNames) : false)),
67
67
  lpLinkPickerFocusTrap: Boolean(normalizedFeatureFlags.lpLinkPickerFocusTrap),
68
- preventPopupOverflow: Boolean(typeof ((_props$featureFlags43 = props.featureFlags) === null || _props$featureFlags43 === void 0 ? void 0 : _props$featureFlags43['prevent-popup-overflow']) === 'boolean' ? !!((_props$featureFlags44 = props.featureFlags) !== null && _props$featureFlags44 !== void 0 && _props$featureFlags44['prevent-popup-overflow']) : false)
68
+ preventPopupOverflow: Boolean(typeof ((_props$featureFlags43 = props.featureFlags) === null || _props$featureFlags43 === void 0 ? void 0 : _props$featureFlags43['prevent-popup-overflow']) === 'boolean' ? !!((_props$featureFlags44 = props.featureFlags) !== null && _props$featureFlags44 !== void 0 && _props$featureFlags44['prevent-popup-overflow']) : false),
69
+ useEditorNext: normalizedFeatureFlags.useEditorNext === true || ((_props$featureFlags45 = props.featureFlags) === null || _props$featureFlags45 === void 0 ? void 0 : _props$featureFlags45.useEditorNext) === true
69
70
  };
70
71
  }
@@ -0,0 +1,142 @@
1
+ /** @jsx jsx */
2
+
3
+ import { BaseTheme, WidthProvider } from '@atlaskit/editor-common/ui';
4
+ import { jsx, css } from '@emotion/react';
5
+ import { Fragment } from 'react';
6
+ import { getUiComponent } from '../create-editor';
7
+ import ReactEditorView from '../create-editor/ReactEditorViewNext';
8
+ import ErrorBoundary from '../create-editor/ErrorBoundary';
9
+ import { createFeatureFlagsFromProps } from '../create-editor/feature-flags-from-props';
10
+ import { ContextAdapter } from '../nodeviews/context-adapter';
11
+ import { ACTION, ACTION_SUBJECT } from '@atlaskit/editor-common/analytics';
12
+ import EditorContext from '../ui/EditorContext';
13
+ import { PortalProviderWithThemeProviders, PortalRenderer } from '../ui/PortalProvider';
14
+ import { RenderTracking } from '../utils/performance/components/RenderTracking';
15
+ import { getBaseFontSize } from './utils/getBaseFontSize';
16
+ import useMeasureEditorMountTime from './hooks/useMeasureEditorMountTime';
17
+ import useProviderFactory from './hooks/useProviderFactory';
18
+ /**
19
+ * EditorInternal is used for the internal editor react component
20
+ * with the lifecycle methods extracted into hooks.
21
+ */
22
+ export default function EditorInternal(props) {
23
+ const {
24
+ props: editorProps,
25
+ getExperienceStore,
26
+ editorActions,
27
+ createAnalyticsEvent
28
+ } = props;
29
+ useMeasureEditorMountTime(editorProps, getExperienceStore, createAnalyticsEvent);
30
+ const providerFactory = useProviderFactory(editorProps, editorActions, createAnalyticsEvent);
31
+ const updatedProps = {
32
+ ...props,
33
+ providerFactory
34
+ };
35
+ return jsx(EditorInternalWithoutHooks, updatedProps);
36
+ }
37
+
38
+ /**
39
+ * EditorInternalComponent is used to capture the common component
40
+ * from the `render` method of `Editor` and share it with `EditorNext`.
41
+ */
42
+ export function EditorInternalWithoutHooks({
43
+ props,
44
+ handleAnalyticsEvent,
45
+ createAnalyticsEvent,
46
+ handleSave,
47
+ editorActions,
48
+ providerFactory,
49
+ onEditorCreated,
50
+ onEditorDestroyed,
51
+ getEditorPlugins
52
+ }) {
53
+ var _props$performanceTra, _props$performanceTra2;
54
+ const Component = getUiComponent(props.appearance);
55
+ const overriddenEditorProps = {
56
+ ...props,
57
+ onSave: props.onSave ? handleSave : undefined,
58
+ // noop all analytic events, even if a handler is still passed.
59
+ analyticsHandler: undefined
60
+ };
61
+ const featureFlags = createFeatureFlagsFromProps(props);
62
+ const renderTracking = (_props$performanceTra = props.performanceTracking) === null || _props$performanceTra === void 0 ? void 0 : (_props$performanceTra2 = _props$performanceTra.renderTracking) === null || _props$performanceTra2 === void 0 ? void 0 : _props$performanceTra2.editor;
63
+ const renderTrackingEnabled = renderTracking === null || renderTracking === void 0 ? void 0 : renderTracking.enabled;
64
+ const useShallow = renderTracking === null || renderTracking === void 0 ? void 0 : renderTracking.useShallow;
65
+ return jsx(Fragment, null, renderTrackingEnabled && jsx(RenderTracking, {
66
+ componentProps: props,
67
+ action: ACTION.RE_RENDERED,
68
+ actionSubject: ACTION_SUBJECT.EDITOR,
69
+ handleAnalyticsEvent: handleAnalyticsEvent,
70
+ propsToIgnore: ['defaultValue'],
71
+ useShallow: useShallow
72
+ }), jsx(ErrorBoundary, {
73
+ createAnalyticsEvent: createAnalyticsEvent,
74
+ contextIdentifierProvider: props.contextIdentifierProvider
75
+ }, jsx(WidthProvider, {
76
+ css: css({
77
+ height: '100%'
78
+ })
79
+ }, jsx(EditorContext, {
80
+ editorActions: editorActions
81
+ }, jsx(ContextAdapter, null, jsx(PortalProviderWithThemeProviders, {
82
+ onAnalyticsEvent: handleAnalyticsEvent,
83
+ useAnalyticsContext: props.UNSAFE_useAnalyticsContext,
84
+ render: portalProviderAPI => jsx(Fragment, null, jsx(ReactEditorView, {
85
+ editorProps: overriddenEditorProps,
86
+ createAnalyticsEvent: createAnalyticsEvent,
87
+ portalProviderAPI: portalProviderAPI,
88
+ providerFactory: providerFactory,
89
+ onEditorCreated: onEditorCreated,
90
+ onEditorDestroyed: onEditorDestroyed,
91
+ allowAnalyticsGASV3: props.allowAnalyticsGASV3,
92
+ disabled: props.disabled,
93
+ getEditorPlugins: getEditorPlugins,
94
+ render: ({
95
+ editor,
96
+ view,
97
+ eventDispatcher,
98
+ config,
99
+ dispatchAnalyticsEvent,
100
+ editorRef
101
+ }) => {
102
+ var _props$featureFlags, _props$featureFlags2;
103
+ return jsx(BaseTheme, {
104
+ baseFontSize: getBaseFontSize(props.appearance)
105
+ }, jsx(Component, {
106
+ innerRef: editorRef,
107
+ appearance: props.appearance,
108
+ disabled: props.disabled,
109
+ editorActions: editorActions,
110
+ editorDOMElement: editor,
111
+ editorView: view,
112
+ providerFactory: providerFactory,
113
+ eventDispatcher: eventDispatcher,
114
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent,
115
+ maxHeight: props.maxHeight,
116
+ minHeight: props.minHeight,
117
+ onSave: props.onSave ? handleSave : undefined,
118
+ onCancel: props.onCancel,
119
+ popupsMountPoint: props.popupsMountPoint,
120
+ popupsBoundariesElement: props.popupsBoundariesElement,
121
+ popupsScrollableElement: props.popupsScrollableElement,
122
+ contentComponents: config.contentComponents,
123
+ primaryToolbarComponents: config.primaryToolbarComponents,
124
+ primaryToolbarIconBefore: props.primaryToolbarIconBefore,
125
+ secondaryToolbarComponents: config.secondaryToolbarComponents,
126
+ insertMenuItems: props.insertMenuItems,
127
+ customContentComponents: props.contentComponents,
128
+ customPrimaryToolbarComponents: props.primaryToolbarComponents,
129
+ customSecondaryToolbarComponents: props.secondaryToolbarComponents,
130
+ contextPanel: props.contextPanel,
131
+ collabEdit: props.collabEdit,
132
+ persistScrollGutter: props.persistScrollGutter,
133
+ enableToolbarMinWidth: ((_props$featureFlags = props.featureFlags) === null || _props$featureFlags === void 0 ? void 0 : _props$featureFlags.toolbarMinWidthOverflow) != null ? !!((_props$featureFlags2 = props.featureFlags) !== null && _props$featureFlags2 !== void 0 && _props$featureFlags2.toolbarMinWidthOverflow) : props.allowUndoRedoButtons,
134
+ useStickyToolbar: props.useStickyToolbar,
135
+ featureFlags: featureFlags
136
+ }));
137
+ }
138
+ }), jsx(PortalRenderer, {
139
+ portalProviderAPI: portalProviderAPI
140
+ }))
141
+ }))))));
142
+ }
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import Editor from '../editor';
3
+ import EditorNext from './index';
4
+ import { createFeatureFlagsFromProps } from '../create-editor/feature-flags-from-props';
5
+ export default class EditorMigrationComponent extends React.Component {
6
+ render() {
7
+ const featureFlags = createFeatureFlagsFromProps(this.props);
8
+ return featureFlags.useEditorNext ? /*#__PURE__*/React.createElement(EditorNext, this.props) : /*#__PURE__*/React.createElement(Editor, this.props);
9
+ }
10
+ }
@@ -0,0 +1,30 @@
1
+ /** @jsx jsx */
2
+
3
+ import { useConstructor } from '@atlaskit/editor-common/hooks';
4
+ import { measureTTI, startMeasure } from '@atlaskit/editor-common/utils';
5
+ import measurements from '../../utils/performance/measure-enum';
6
+ import editorMeasureTTICallback from '../utils/editorMeasureTTICallback';
7
+
8
+ /**
9
+ *
10
+ * Hook to be used for running analytics on mounting the editor.
11
+ * Should run once.
12
+ * WARNING: Consider any changes to also make to `src/editor.tsx`
13
+ *
14
+ * @param performanceTracking
15
+ * @param featureFlags
16
+ * @param getExperienceStore function to retrieve the Editor's current ExperienceStore
17
+ * @param createAnalyticsEvent
18
+ */
19
+ export default function useEditorConstructor(performanceTracking, featureFlags, getExperienceStore, createAnalyticsEvent) {
20
+ useConstructor(() => {
21
+ var _performanceTracking$;
22
+ startMeasure(measurements.EDITOR_MOUNTED);
23
+ if (performanceTracking !== null && performanceTracking !== void 0 && (_performanceTracking$ = performanceTracking.ttiTracking) !== null && _performanceTracking$ !== void 0 && _performanceTracking$.enabled || featureFlags !== null && featureFlags !== void 0 && featureFlags.ufo) {
24
+ var _performanceTracking$2, _performanceTracking$3;
25
+ measureTTI((tti, ttiFromInvocation, canceled) => {
26
+ editorMeasureTTICallback(tti, ttiFromInvocation, canceled, performanceTracking, featureFlags, createAnalyticsEvent, getExperienceStore());
27
+ }, performanceTracking === null || performanceTracking === void 0 ? void 0 : (_performanceTracking$2 = performanceTracking.ttiTracking) === null || _performanceTracking$2 === void 0 ? void 0 : _performanceTracking$2.ttiIdleThreshold, performanceTracking === null || performanceTracking === void 0 ? void 0 : (_performanceTracking$3 = performanceTracking.ttiTracking) === null || _performanceTracking$3 === void 0 ? void 0 : _performanceTracking$3.ttiCancelTimeout);
28
+ }
29
+ });
30
+ }
@@ -0,0 +1,35 @@
1
+ /** @jsx jsx */
2
+ import { useEffect } from 'react';
3
+ import { clearMeasure, stopMeasure } from '@atlaskit/editor-common/utils';
4
+ import { ACTION } from '@atlaskit/editor-common/analytics';
5
+ import measurements from '../../utils/performance/measure-enum';
6
+ import sendDurationAnalytics from '../utils/sendDurationAnalytics';
7
+ import useEditorConstructor from './useEditorMeasuresConstructor';
8
+
9
+ /**
10
+ *
11
+ * Hook to run the analytics for the Editor component.
12
+ * WARNING: Consider any changes to also make to `src/editor.tsx`
13
+ *
14
+ * @param props EditorProps
15
+ * @param getExperienceStore function to retrieve the Editor's current ExperienceStore
16
+ * @param createAnalyticsEvent
17
+ */
18
+ export default function useMeasureEditorMountTime(props, getExperienceStore, createAnalyticsEvent) {
19
+ useEditorConstructor(props.performanceTracking, props.featureFlags, getExperienceStore, createAnalyticsEvent);
20
+ useEffect(() => {
21
+ stopMeasure(measurements.EDITOR_MOUNTED, sendDurationAnalytics(ACTION.EDITOR_MOUNTED, props, getExperienceStore, createAnalyticsEvent));
22
+ return () => {
23
+ var _props$performanceTra, _props$performanceTra2, _props$featureFlags;
24
+ clearMeasure(measurements.EDITOR_MOUNTED);
25
+ (props === null || props === void 0 ? void 0 : (_props$performanceTra = props.performanceTracking) === null || _props$performanceTra === void 0 ? void 0 : (_props$performanceTra2 = _props$performanceTra.onEditorReadyCallbackTracking) === null || _props$performanceTra2 === void 0 ? void 0 : _props$performanceTra2.enabled) && clearMeasure(measurements.ON_EDITOR_READY_CALLBACK);
26
+ if ((_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.ufo) {
27
+ var _getExperienceStore;
28
+ (_getExperienceStore = getExperienceStore()) === null || _getExperienceStore === void 0 ? void 0 : _getExperienceStore.abortAll({
29
+ reason: 'editor component unmounted'
30
+ });
31
+ }
32
+ };
33
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
34
+ // Disable Exhaustive Deps here since we only want to stop the measure on mount.
35
+ }
@@ -0,0 +1,61 @@
1
+ import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import { usePreviousState } from '@atlaskit/editor-common/hooks';
4
+ import prepareQuickInsertProvider from '../../utils/prepare-quick-insert-provider';
5
+ import prepareExtensionProvider from '../../utils/prepare-extension-provider';
6
+ import handleProviders from '../utils/handleProviders';
7
+ function createNewState(editorActions, quickInsert, extensionProviders, createAnalyticsEvent) {
8
+ const extensionProvider = prepareExtensionProvider(() => editorActions)(extensionProviders);
9
+ const quickInsertProvider = prepareQuickInsertProvider(editorActions, extensionProvider, quickInsert, createAnalyticsEvent);
10
+ return {
11
+ extensionProvider,
12
+ quickInsertProvider
13
+ };
14
+ }
15
+
16
+ /**
17
+ *
18
+ * This hook is used to create the provider factory object.
19
+ * WARNING: Consider any changes to also make to `src/editor.tsx`
20
+ *
21
+ * @param props
22
+ * @param editorActions
23
+ * @param createAnalyticsEvent
24
+ * @returns ProviderFactory for Editor
25
+ */
26
+ export default function useProviderFactory(props, editorActions, createAnalyticsEvent) {
27
+ const {
28
+ extensionProviders,
29
+ quickInsert
30
+ } = props;
31
+ const providerFactory = useRef(new ProviderFactory());
32
+ const [providerState, setProviderState] = useState(createNewState(editorActions, quickInsert, extensionProviders, createAnalyticsEvent));
33
+ const prevProps = usePreviousState({
34
+ extensionProviders,
35
+ quickInsert
36
+ });
37
+ useEffect(() => {
38
+ if (extensionProviders && extensionProviders !== (prevProps === null || prevProps === void 0 ? void 0 : prevProps.extensionProviders) ||
39
+ // Though this will introduce some performance regression related to quick insert
40
+ // loading but we can remove it soon when Forge will move to new API.
41
+ // quickInsert={Promise.resolve(consumerQuickInsert)} is one of the main reason behind this performance issue.
42
+ quickInsert && quickInsert !== (prevProps === null || prevProps === void 0 ? void 0 : prevProps.quickInsert)) {
43
+ const newState = createNewState(editorActions, quickInsert, extensionProviders, createAnalyticsEvent);
44
+ setProviderState(newState);
45
+ handleProviders(providerFactory.current, props, newState.extensionProvider, newState.quickInsertProvider);
46
+ return;
47
+ }
48
+ handleProviders(providerFactory.current, props, providerState.extensionProvider, providerState.quickInsertProvider);
49
+ }, [props, prevProps, createAnalyticsEvent, editorActions, providerState.extensionProvider, providerState.quickInsertProvider, extensionProviders, quickInsert]);
50
+
51
+ // componentWillUnmount equivalent
52
+ useEffect(() => {
53
+ return () => {
54
+ // Disable this next line because it is not a React node
55
+ // so we can safely call destroy on the ref.
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ providerFactory.current.destroy();
58
+ };
59
+ }, []);
60
+ return providerFactory.current;
61
+ }
@@ -0,0 +1,90 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ /** @jsx jsx */
3
+
4
+ import { WithCreateAnalyticsEvent } from '@atlaskit/editor-common/ui';
5
+ import { getAnalyticsAppearance } from '@atlaskit/editor-common/utils';
6
+ import { jsx } from '@emotion/react';
7
+ import PropTypes from 'prop-types';
8
+ import React from 'react';
9
+ import { name, version } from '../version-wrapper';
10
+ import { FabricEditorAnalyticsContext } from '@atlaskit/analytics-namespaced-context';
11
+ import uuid from 'uuid/v4';
12
+ import EditorActions from '../actions';
13
+ import { fireAnalyticsEvent } from '@atlaskit/editor-common/analytics';
14
+ import EditorInternal from './editor-internal';
15
+ import { defaultProps, propTypes } from './utils/editorPropTypes';
16
+ import trackEditorActions from './utils/trackEditorActions';
17
+ import onEditorCreated from './utils/onEditorCreated';
18
+ import deprecationWarnings from './utils/deprecationWarnings';
19
+ import getEditorPlugins from '../utils/get-editor-plugins';
20
+ export default class EditorNext extends React.Component {
21
+ /**
22
+ * WARNING: Code should be shared between Editor + EditorNext
23
+ * If you are making changes that affect both, consider making them
24
+ * in editor-next/editor-internal.tsx or editor-next/editor-utils.ts
25
+ */
26
+
27
+ constructor(props, context) {
28
+ super(props);
29
+ _defineProperty(this, "handleSave", view => {
30
+ var _this$props$onSave, _this$props;
31
+ return (_this$props$onSave = (_this$props = this.props).onSave) === null || _this$props$onSave === void 0 ? void 0 : _this$props$onSave.call(_this$props, view);
32
+ });
33
+ _defineProperty(this, "handleAnalyticsEvent", data => fireAnalyticsEvent(this.createAnalyticsEvent)(data));
34
+ _defineProperty(this, "getExperienceStore", () => this.experienceStore);
35
+ deprecationWarnings(props);
36
+ this.editorActions = (context || {}).editorActions || new EditorActions();
37
+ this.editorSessionId = uuid();
38
+ this.startTime = performance.now();
39
+ this.onEditorCreated = this.onEditorCreated.bind(this);
40
+ this.onEditorDestroyed = this.onEditorDestroyed.bind(this);
41
+ this.getExperienceStore = this.getExperienceStore.bind(this);
42
+ this.getEditorPlugins = this.getEditorPlugins.bind(this);
43
+ trackEditorActions(this.editorActions, props.performanceTracking, value => this.handleAnalyticsEvent(value));
44
+ }
45
+ onEditorCreated(instance) {
46
+ onEditorCreated(instance, this.props, experienceStore => this.experienceStore = experienceStore, this.getExperienceStore, () => this.createAnalyticsEvent, this.editorActions, this.startTime, (view, dispatcher, transformerForActions) => this.registerEditorForActions(view, dispatcher, transformerForActions));
47
+ }
48
+ onEditorDestroyed(_instance) {
49
+ var _this$props$onDestroy, _this$props2;
50
+ this.unregisterEditorFromActions();
51
+ (_this$props$onDestroy = (_this$props2 = this.props).onDestroy) === null || _this$props$onDestroy === void 0 ? void 0 : _this$props$onDestroy.call(_this$props2);
52
+ }
53
+ registerEditorForActions(editorView, eventDispatcher, contentTransformer) {
54
+ this.editorActions._privateRegisterEditor(editorView, eventDispatcher, contentTransformer);
55
+ }
56
+ unregisterEditorFromActions() {
57
+ this.editorActions._privateUnregisterEditor();
58
+ }
59
+ render() {
60
+ return jsx(FabricEditorAnalyticsContext, {
61
+ data: {
62
+ packageName: name,
63
+ packageVersion: version,
64
+ componentName: 'editorCore',
65
+ appearance: getAnalyticsAppearance(this.props.appearance),
66
+ editorSessionId: this.editorSessionId
67
+ }
68
+ }, jsx(WithCreateAnalyticsEvent, {
69
+ render: createAnalyticsEvent => (this.createAnalyticsEvent = createAnalyticsEvent) && jsx(EditorInternal, {
70
+ props: this.props,
71
+ handleAnalyticsEvent: this.handleAnalyticsEvent,
72
+ createAnalyticsEvent: this.createAnalyticsEvent,
73
+ getEditorPlugins: this.getEditorPlugins,
74
+ handleSave: this.handleSave,
75
+ editorActions: this.editorActions,
76
+ getExperienceStore: this.getExperienceStore,
77
+ onEditorCreated: this.onEditorCreated,
78
+ onEditorDestroyed: this.onEditorDestroyed
79
+ })
80
+ }));
81
+ }
82
+ getEditorPlugins(props) {
83
+ return getEditorPlugins(props);
84
+ }
85
+ }
86
+ _defineProperty(EditorNext, "defaultProps", defaultProps);
87
+ _defineProperty(EditorNext, "contextTypes", {
88
+ editorActions: PropTypes.object
89
+ });
90
+ _defineProperty(EditorNext, "propTypes", propTypes('minHeight only supports editor appearance chromeless and comment for EditorNext'));
@@ -0,0 +1,39 @@
1
+ import { nextMajorVersion } from '../../version-wrapper';
2
+ export default function deprecationWarnings(props) {
3
+ var _props$allowTextColor;
4
+ if (process.env.NODE_ENV === 'production') {
5
+ return;
6
+ }
7
+ const nextVersion = nextMajorVersion();
8
+ const deprecatedProperties = {
9
+ allowTasksAndDecisions: {
10
+ message: 'To allow tasks and decisions use taskDecisionProvider – <Editor taskDecisionProvider={{ provider }} />',
11
+ type: 'removed'
12
+ },
13
+ allowConfluenceInlineComment: {
14
+ message: 'To integrate inline comments use experimental annotationProvider – <Editor annotationProviders={{ provider }} />',
15
+ type: 'removed'
16
+ },
17
+ smartLinks: {
18
+ message: 'To use smartLinks, pass the same object into the smartlinks key of linking - <Editor linking={{ smartLinks: {existing object} }}.',
19
+ type: 'removed'
20
+ }
21
+ };
22
+ Object.keys(deprecatedProperties).forEach(property => {
23
+ if (props.hasOwnProperty(property)) {
24
+ const meta = deprecatedProperties[property];
25
+ const type = meta.type || 'enabled by default';
26
+
27
+ // eslint-disable-next-line no-console
28
+ console.warn(`${property} property is deprecated. ${meta.message || ''} [Will be ${type} in editor-core@${nextVersion}]`);
29
+ }
30
+ });
31
+ if (props.hasOwnProperty('allowTables') && typeof props.allowTables !== 'boolean' && (!props.allowTables || !props.allowTables.advanced)) {
32
+ // eslint-disable-next-line no-console
33
+ console.warn(`Advanced table options are deprecated (except isHeaderRowRequired) to continue using advanced table features use - <Editor allowTables={{ advanced: true }} /> [Will be changed in editor-core@${nextVersion}]`);
34
+ }
35
+ if (props.hasOwnProperty('allowTextColor') && typeof props.allowTextColor !== 'boolean' && (props === null || props === void 0 ? void 0 : (_props$allowTextColor = props.allowTextColor) === null || _props$allowTextColor === void 0 ? void 0 : _props$allowTextColor.allowMoreTextColors) !== undefined) {
36
+ // eslint-disable-next-line no-console
37
+ console.warn(`"allowMoreTextColors" field of "allowTextColor" property is deprecated. It will be removedin editor-core@${nextVersion}. The color palette now shows more colors by default.`);
38
+ }
39
+ }
@@ -0,0 +1,40 @@
1
+ import { getTTISeverity } from '@atlaskit/editor-common/utils';
2
+ import { EditorExperience } from '@atlaskit/editor-common/ufo';
3
+ import { ACTION, ACTION_SUBJECT, EVENT_TYPE, fireAnalyticsEvent } from '@atlaskit/editor-common/analytics';
4
+ export default function editorMeasureTTICallback(tti, ttiFromInvocation, canceled, performanceTracking, featureFlags, createAnalyticsEvent, experienceStore) {
5
+ var _performanceTracking$;
6
+ if (performanceTracking !== null && performanceTracking !== void 0 && (_performanceTracking$ = performanceTracking.ttiTracking) !== null && _performanceTracking$ !== void 0 && _performanceTracking$.enabled && createAnalyticsEvent) {
7
+ var _ttiTracking;
8
+ const ttiEvent = {
9
+ payload: {
10
+ action: ACTION.EDITOR_TTI,
11
+ actionSubject: ACTION_SUBJECT.EDITOR,
12
+ attributes: {
13
+ tti,
14
+ ttiFromInvocation,
15
+ canceled
16
+ },
17
+ eventType: EVENT_TYPE.OPERATIONAL
18
+ }
19
+ };
20
+ if ((_ttiTracking = performanceTracking.ttiTracking) !== null && _ttiTracking !== void 0 && _ttiTracking.trackSeverity) {
21
+ const {
22
+ ttiSeverityNormalThreshold,
23
+ ttiSeverityDegradedThreshold,
24
+ ttiFromInvocationSeverityNormalThreshold,
25
+ ttiFromInvocationSeverityDegradedThreshold
26
+ } = performanceTracking.ttiTracking;
27
+ const {
28
+ ttiSeverity,
29
+ ttiFromInvocationSeverity
30
+ } = getTTISeverity(tti, ttiFromInvocation, ttiSeverityNormalThreshold, ttiSeverityDegradedThreshold, ttiFromInvocationSeverityNormalThreshold, ttiFromInvocationSeverityDegradedThreshold);
31
+ ttiEvent.payload.attributes.ttiSeverity = ttiSeverity;
32
+ ttiEvent.payload.attributes.ttiFromInvocationSeverity = ttiFromInvocationSeverity;
33
+ }
34
+ fireAnalyticsEvent(createAnalyticsEvent)(ttiEvent);
35
+ }
36
+ if (featureFlags !== null && featureFlags !== void 0 && featureFlags.ufo) {
37
+ experienceStore === null || experienceStore === void 0 ? void 0 : experienceStore.mark(EditorExperience.loadEditor, ACTION.EDITOR_TTI, tti);
38
+ experienceStore === null || experienceStore === void 0 ? void 0 : experienceStore.success(EditorExperience.loadEditor);
39
+ }
40
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ *
3
+ * Logic for Editor prop types (ie. `static propTypes = propTypes(message)`)
4
+ * for use with 'prop-types' library
5
+ *
6
+ * @param errorMessage
7
+ * @returns Editor prop-types
8
+ */
9
+ export function propTypes(errorMessage) {
10
+ return {
11
+ minHeight: ({
12
+ appearance,
13
+ minHeight
14
+ }) => {
15
+ if (minHeight && appearance && !['comment', 'chromeless'].includes(appearance)) {
16
+ return new Error(errorMessage);
17
+ }
18
+ return null;
19
+ }
20
+ };
21
+ }
22
+ export const defaultProps = {
23
+ appearance: 'comment',
24
+ disabled: false,
25
+ extensionHandlers: {},
26
+ allowHelpDialog: true,
27
+ allowNewInsertionBehaviour: true,
28
+ quickInsert: true
29
+ };
@@ -0,0 +1,11 @@
1
+ import { akEditorFullPageDefaultFontSize } from '@atlaskit/editor-shared-styles';
2
+ /**
3
+ * @param appearance
4
+ * @returns default font size if valid
5
+ */
6
+ export function getBaseFontSize(appearance) {
7
+ if (appearance === undefined) {
8
+ return akEditorFullPageDefaultFontSize;
9
+ }
10
+ return !['comment', 'chromeless', 'mobile'].includes(appearance) ? akEditorFullPageDefaultFontSize : undefined;
11
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ *
3
+ * Utility to set all the providers on a provider factory
4
+ *
5
+ * @param providerFactory
6
+ * @param props
7
+ * @param extensionProvider
8
+ * @param quickInsertProvider
9
+ */
10
+ export default function handleProviders(providerFactory, props, extensionProvider, quickInsertProvider) {
11
+ var _linking$smartLinks;
12
+ const {
13
+ emojiProvider,
14
+ mentionProvider,
15
+ taskDecisionProvider,
16
+ contextIdentifierProvider,
17
+ collabEditProvider,
18
+ activityProvider,
19
+ presenceProvider,
20
+ macroProvider,
21
+ legacyImageUploadProvider,
22
+ media,
23
+ collabEdit,
24
+ autoformattingProvider,
25
+ searchProvider,
26
+ UNSAFE_cards,
27
+ smartLinks,
28
+ linking
29
+ } = props;
30
+ providerFactory.setProvider('emojiProvider', emojiProvider);
31
+ providerFactory.setProvider('mentionProvider', mentionProvider);
32
+ providerFactory.setProvider('taskDecisionProvider', taskDecisionProvider);
33
+ providerFactory.setProvider('contextIdentifierProvider', contextIdentifierProvider);
34
+ providerFactory.setProvider('mediaProvider', media && media.provider);
35
+ providerFactory.setProvider('imageUploadProvider', legacyImageUploadProvider);
36
+ providerFactory.setProvider('collabEditProvider', collabEdit && collabEdit.provider ? collabEdit.provider : collabEditProvider);
37
+ providerFactory.setProvider('activityProvider', activityProvider);
38
+ providerFactory.setProvider('searchProvider', searchProvider);
39
+ providerFactory.setProvider('presenceProvider', presenceProvider);
40
+ providerFactory.setProvider('macroProvider', macroProvider);
41
+ const 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;
42
+ if (cardProvider) {
43
+ providerFactory.setProvider('cardProvider', cardProvider);
44
+ }
45
+ providerFactory.setProvider('autoformattingProvider', autoformattingProvider);
46
+ if (extensionProvider) {
47
+ providerFactory.setProvider('extensionProvider', Promise.resolve(extensionProvider));
48
+ }
49
+ if (quickInsertProvider) {
50
+ providerFactory.setProvider('quickInsertProvider', quickInsertProvider);
51
+ }
52
+ }
@@ -0,0 +1,21 @@
1
+ import { EditorExperience, ExperienceStore } from '@atlaskit/editor-common/ufo';
2
+ import { startMeasure, stopMeasure } from '@atlaskit/editor-common/utils';
3
+ import { ACTION } from '@atlaskit/editor-common/analytics';
4
+ import measurements from '../../utils/performance/measure-enum';
5
+ import sendDurationAnalytics from './sendDurationAnalytics';
6
+ export default function onEditorCreated(instance, props, setExperienceStore, getExperienceStore, getCreateAnalyticsEvent, editorActions, startTime, registerEditorForActions) {
7
+ var _props$featureFlags;
8
+ registerEditorForActions(instance.view, instance.eventDispatcher, instance.transformer);
9
+ if ((_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.ufo) {
10
+ var _getExperienceStore;
11
+ setExperienceStore(ExperienceStore.getInstance(instance.view));
12
+ (_getExperienceStore = getExperienceStore()) === null || _getExperienceStore === void 0 ? void 0 : _getExperienceStore.start(EditorExperience.loadEditor, startTime);
13
+ }
14
+ if (props.onEditorReady) {
15
+ var _props$performanceTra, _props$performanceTra2, _props$featureFlags2;
16
+ const measureEditorReady = (props === null || props === void 0 ? void 0 : (_props$performanceTra = props.performanceTracking) === null || _props$performanceTra === void 0 ? void 0 : (_props$performanceTra2 = _props$performanceTra.onEditorReadyCallbackTracking) === null || _props$performanceTra2 === void 0 ? void 0 : _props$performanceTra2.enabled) || ((_props$featureFlags2 = props.featureFlags) === null || _props$featureFlags2 === void 0 ? void 0 : _props$featureFlags2.ufo);
17
+ measureEditorReady && startMeasure(measurements.ON_EDITOR_READY_CALLBACK);
18
+ props.onEditorReady(editorActions);
19
+ measureEditorReady && stopMeasure(measurements.ON_EDITOR_READY_CALLBACK, sendDurationAnalytics(ACTION.ON_EDITOR_READY_CALLBACK, props, getExperienceStore, getCreateAnalyticsEvent()));
20
+ }
21
+ }