@atlaskit/editor-common 69.2.1 → 69.3.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 (562) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/analytics/package.json +8 -0
  3. package/core-utils/package.json +8 -0
  4. package/dist/cjs/__tests_external__/cases/fundamentals/collection.js +21 -0
  5. package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +25 -0
  6. package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +37 -0
  7. package/dist/cjs/__tests_external__/cases/media/test-cases/alt-text.js +45 -0
  8. package/dist/cjs/__tests_external__/cases/media/test-cases/caption.js +44 -0
  9. package/dist/cjs/__tests_external__/cases/media/test-cases/index.js +23 -0
  10. package/dist/cjs/__tests_external__/cases/media/test-cases/types.js +5 -0
  11. package/dist/cjs/__tests_external__/cases/media/test-cases/upload.js +38 -0
  12. package/dist/cjs/__tests_external__/cases/smart-links/index.js +37 -0
  13. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/delete.js +43 -0
  14. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/edit.js +77 -0
  15. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/index.js +23 -0
  16. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/insert.js +42 -0
  17. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/delete.js +43 -0
  18. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/edit.js +77 -0
  19. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/index.js +23 -0
  20. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/insert.js +42 -0
  21. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/delete.js +42 -0
  22. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/edit.js +75 -0
  23. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/index.js +25 -0
  24. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/insert.js +41 -0
  25. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +44 -0
  26. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/types.js +5 -0
  27. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/index.js +19 -0
  28. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/insert.js +39 -0
  29. package/dist/cjs/__tests_external__/cases/types.js +5 -0
  30. package/dist/cjs/__tests_external__/index.js +55 -0
  31. package/dist/cjs/__tests_external__/page-objects/Editor.js +71 -0
  32. package/dist/cjs/__tests_external__/page-objects/EditorMedia.js +98 -0
  33. package/dist/cjs/__tests_external__/page-objects/EditorSmartLink.js +232 -0
  34. package/dist/cjs/__tests_external__/page-objects/Renderer.js +59 -0
  35. package/dist/cjs/analytics/api.js +5 -0
  36. package/dist/cjs/analytics/index.js +223 -0
  37. package/dist/cjs/analytics/types/avatar.js +5 -0
  38. package/dist/cjs/analytics/types/block.js +5 -0
  39. package/dist/cjs/analytics/types/config-panel-events.js +5 -0
  40. package/dist/cjs/analytics/types/cut-copy-events.js +5 -0
  41. package/dist/cjs/analytics/types/date-events.js +5 -0
  42. package/dist/cjs/analytics/types/dispatch-analytics-event.js +5 -0
  43. package/dist/cjs/analytics/types/element-browser-events.js +5 -0
  44. package/dist/cjs/analytics/types/enums.js +350 -0
  45. package/dist/cjs/analytics/types/events.js +5 -0
  46. package/dist/cjs/analytics/types/experimental-events.js +5 -0
  47. package/dist/cjs/analytics/types/extension-events.js +22 -0
  48. package/dist/cjs/analytics/types/find-replace-events.js +5 -0
  49. package/dist/cjs/analytics/types/format-events.js +24 -0
  50. package/dist/cjs/analytics/types/general-events.js +40 -0
  51. package/dist/cjs/analytics/types/index.js +249 -0
  52. package/dist/cjs/analytics/types/inline-comment-events.js +14 -0
  53. package/dist/cjs/analytics/types/insert-events.js +51 -0
  54. package/dist/cjs/analytics/types/link-tool-bar-events.js +5 -0
  55. package/dist/cjs/analytics/types/list-events.js +25 -0
  56. package/dist/cjs/analytics/types/media-events.js +5 -0
  57. package/dist/cjs/analytics/types/node-events.js +26 -0
  58. package/dist/cjs/analytics/types/paste-events.js +55 -0
  59. package/dist/cjs/analytics/types/performance-report.js +5 -0
  60. package/dist/cjs/analytics/types/selection-events.js +5 -0
  61. package/dist/cjs/analytics/types/smart-links.js +19 -0
  62. package/dist/cjs/analytics/types/substitute-events.js +24 -0
  63. package/dist/cjs/analytics/types/table-events.js +43 -0
  64. package/dist/cjs/analytics/types/toolbar-button.js +26 -0
  65. package/dist/cjs/analytics/types/type-ahead.js +5 -0
  66. package/dist/cjs/analytics/types/utils.js +28 -0
  67. package/dist/cjs/core-utils/index.js +13 -0
  68. package/dist/cjs/core-utils/inside.js +17 -0
  69. package/dist/cjs/event-dispatcher/index.js +88 -0
  70. package/dist/cjs/keymaps/consts.js +30 -0
  71. package/dist/cjs/keymaps/index.js +362 -0
  72. package/dist/cjs/messages/index.js +137 -1
  73. package/dist/cjs/messages/insert-block.js +177 -0
  74. package/dist/cjs/node-width/index.js +85 -0
  75. package/dist/cjs/react-node-view/index.js +252 -0
  76. package/dist/cjs/react-node-view/types.js +5 -0
  77. package/dist/cjs/selection/gap-cursor/selection.js +196 -0
  78. package/dist/cjs/selection/gap-cursor/utils/index.js +21 -0
  79. package/dist/cjs/selection/gap-cursor/utils/is-ignored.js +14 -0
  80. package/dist/cjs/selection/gap-cursor/utils/is-valid-target-node.js +14 -0
  81. package/dist/cjs/selection/index.js +67 -0
  82. package/dist/cjs/selection/types.js +15 -0
  83. package/dist/cjs/selection/utils.js +50 -0
  84. package/dist/cjs/styles/index.js +29 -1
  85. package/dist/cjs/styles/shared/extension.js +13 -0
  86. package/dist/cjs/styles/shared/layout.js +13 -0
  87. package/dist/cjs/styles/shared/table.js +3 -1
  88. package/dist/cjs/transforms/expand.js +52 -0
  89. package/dist/cjs/transforms/extension.js +34 -0
  90. package/dist/cjs/transforms/index.js +59 -0
  91. package/dist/cjs/transforms/layout.js +72 -0
  92. package/dist/cjs/types/command.js +5 -0
  93. package/dist/cjs/types/context-panel.js +5 -0
  94. package/dist/cjs/types/editor-actions.js +5 -0
  95. package/dist/cjs/types/editor-appearance.js +5 -0
  96. package/dist/cjs/types/editor-container-width.js +5 -0
  97. package/dist/cjs/types/editor-plugin.js +5 -0
  98. package/dist/cjs/types/editor-react-context.js +5 -0
  99. package/dist/cjs/types/empty-state-handler.js +5 -0
  100. package/dist/cjs/types/feature-flags.js +5 -0
  101. package/dist/cjs/types/floating-toolbar.js +5 -0
  102. package/dist/cjs/types/index.js +20 -0
  103. package/dist/cjs/types/plugin-factory.js +5 -0
  104. package/dist/cjs/types/prosemirror-config.js +5 -0
  105. package/dist/cjs/types/quick-insert.js +5 -0
  106. package/dist/cjs/types/supported-browsers.js +6 -0
  107. package/dist/cjs/types/toolbar.js +39 -0
  108. package/dist/cjs/types/ui-components.js +5 -0
  109. package/dist/cjs/ui/DropList/index.js +217 -0
  110. package/dist/cjs/ui/ErrorBoundary/index.js +100 -0
  111. package/dist/cjs/ui/Layer/index.js +245 -0
  112. package/dist/cjs/ui/Layer/internal/helpers.js +70 -0
  113. package/dist/cjs/ui/PortalProvider/PortalProviderThemesProvider.js +60 -0
  114. package/dist/cjs/ui/PortalProvider/index.js +294 -0
  115. package/dist/cjs/ui-color/ColorPalette/Color/index.js +115 -0
  116. package/dist/cjs/ui-color/ColorPalette/Color/styles.js +32 -0
  117. package/dist/cjs/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.js +30 -0
  118. package/dist/cjs/ui-color/ColorPalette/Palettes/common.js +37 -0
  119. package/dist/cjs/ui-color/ColorPalette/Palettes/getColorMessage.js +17 -0
  120. package/dist/cjs/ui-color/ColorPalette/Palettes/index.js +13 -0
  121. package/dist/cjs/ui-color/ColorPalette/Palettes/paletteMessages.js +123 -0
  122. package/dist/cjs/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +164 -0
  123. package/dist/cjs/ui-color/ColorPalette/Palettes/statusColorPalette.js +72 -0
  124. package/dist/cjs/ui-color/ColorPalette/Palettes/textColorPalette.js +41 -0
  125. package/dist/cjs/ui-color/ColorPalette/Palettes/type.js +5 -0
  126. package/dist/cjs/ui-color/ColorPalette/index.js +90 -0
  127. package/dist/cjs/ui-color/ColorPalette/styles.js +19 -0
  128. package/dist/cjs/ui-color/index.js +89 -0
  129. package/dist/cjs/ui-menu/Dropdown/index.js +127 -0
  130. package/dist/cjs/ui-menu/DropdownMenu/index.js +294 -0
  131. package/dist/cjs/ui-menu/DropdownMenu/types.js +5 -0
  132. package/dist/cjs/ui-menu/ToolbarButton/index.js +127 -0
  133. package/dist/cjs/ui-menu/ToolbarButton/styles.js +26 -0
  134. package/dist/cjs/ui-menu/index.js +43 -0
  135. package/dist/cjs/ui-react/ReactEditorViewContext.js +15 -0
  136. package/dist/cjs/ui-react/index.js +23 -0
  137. package/dist/cjs/ui-react/with-react-editor-view-outer-listeners.js +159 -0
  138. package/dist/cjs/utils/dom.js +138 -0
  139. package/dist/cjs/utils/editor-core-utils.js +108 -0
  140. package/dist/cjs/utils/index.js +222 -0
  141. package/dist/cjs/utils/is-text-input.js +31 -0
  142. package/dist/cjs/utils/nodes.js +134 -0
  143. package/dist/cjs/utils/plugin-state-factory.js +113 -0
  144. package/dist/cjs/utils/slice.js +77 -0
  145. package/dist/cjs/version.json +1 -1
  146. package/dist/cjs/with-plugin-state/index.js +316 -0
  147. package/dist/cjs/with-plugin-state/types.js +5 -0
  148. package/dist/es2019/__tests_external__/cases/fundamentals/collection.js +7 -0
  149. package/dist/es2019/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +12 -0
  150. package/dist/es2019/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +25 -0
  151. package/dist/es2019/__tests_external__/cases/media/test-cases/alt-text.js +29 -0
  152. package/dist/es2019/__tests_external__/cases/media/test-cases/caption.js +28 -0
  153. package/dist/es2019/__tests_external__/cases/media/test-cases/index.js +8 -0
  154. package/dist/es2019/__tests_external__/cases/media/test-cases/types.js +1 -0
  155. package/dist/es2019/__tests_external__/cases/media/test-cases/upload.js +23 -0
  156. package/dist/es2019/__tests_external__/cases/smart-links/index.js +4 -0
  157. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/delete.js +29 -0
  158. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/edit.js +59 -0
  159. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/index.js +8 -0
  160. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/insert.js +28 -0
  161. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/delete.js +29 -0
  162. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/edit.js +59 -0
  163. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/index.js +8 -0
  164. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/insert.js +28 -0
  165. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/delete.js +28 -0
  166. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/edit.js +57 -0
  167. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/index.js +9 -0
  168. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/insert.js +27 -0
  169. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +30 -0
  170. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/types.js +1 -0
  171. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/url/index.js +6 -0
  172. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/url/insert.js +25 -0
  173. package/dist/es2019/__tests_external__/cases/types.js +1 -0
  174. package/dist/es2019/__tests_external__/index.js +4 -0
  175. package/dist/es2019/__tests_external__/page-objects/Editor.js +29 -0
  176. package/dist/es2019/__tests_external__/page-objects/EditorMedia.js +51 -0
  177. package/dist/es2019/__tests_external__/page-objects/EditorSmartLink.js +168 -0
  178. package/dist/es2019/__tests_external__/page-objects/Renderer.js +17 -0
  179. package/dist/es2019/analytics/api.js +1 -0
  180. package/dist/es2019/analytics/index.js +1 -0
  181. package/dist/es2019/analytics/types/avatar.js +1 -0
  182. package/dist/es2019/analytics/types/block.js +1 -0
  183. package/dist/es2019/analytics/types/config-panel-events.js +1 -0
  184. package/dist/es2019/analytics/types/cut-copy-events.js +1 -0
  185. package/dist/es2019/analytics/types/date-events.js +1 -0
  186. package/dist/es2019/analytics/types/dispatch-analytics-event.js +1 -0
  187. package/dist/es2019/analytics/types/element-browser-events.js +1 -0
  188. package/dist/es2019/analytics/types/enums.js +336 -0
  189. package/dist/es2019/analytics/types/events.js +1 -0
  190. package/dist/es2019/analytics/types/experimental-events.js +1 -0
  191. package/dist/es2019/analytics/types/extension-events.js +13 -0
  192. package/dist/es2019/analytics/types/find-replace-events.js +1 -0
  193. package/dist/es2019/analytics/types/format-events.js +16 -0
  194. package/dist/es2019/analytics/types/general-events.js +30 -0
  195. package/dist/es2019/analytics/types/index.js +14 -0
  196. package/dist/es2019/analytics/types/inline-comment-events.js +7 -0
  197. package/dist/es2019/analytics/types/insert-events.js +41 -0
  198. package/dist/es2019/analytics/types/link-tool-bar-events.js +1 -0
  199. package/dist/es2019/analytics/types/list-events.js +17 -0
  200. package/dist/es2019/analytics/types/media-events.js +1 -0
  201. package/dist/es2019/analytics/types/node-events.js +18 -0
  202. package/dist/es2019/analytics/types/paste-events.js +46 -0
  203. package/dist/es2019/analytics/types/performance-report.js +1 -0
  204. package/dist/es2019/analytics/types/selection-events.js +1 -0
  205. package/dist/es2019/analytics/types/smart-links.js +12 -0
  206. package/dist/es2019/analytics/types/substitute-events.js +16 -0
  207. package/dist/es2019/analytics/types/table-events.js +34 -0
  208. package/dist/es2019/analytics/types/toolbar-button.js +19 -0
  209. package/dist/es2019/analytics/types/type-ahead.js +1 -0
  210. package/dist/es2019/analytics/types/utils.js +20 -0
  211. package/dist/es2019/core-utils/index.js +1 -0
  212. package/dist/es2019/core-utils/inside.js +8 -0
  213. package/dist/es2019/event-dispatcher/index.js +60 -0
  214. package/dist/es2019/keymaps/consts.js +12 -0
  215. package/dist/es2019/keymaps/index.js +186 -0
  216. package/dist/es2019/messages/index.js +125 -1
  217. package/dist/es2019/messages/insert-block.js +168 -0
  218. package/dist/es2019/node-width/index.js +74 -0
  219. package/dist/es2019/react-node-view/index.js +199 -0
  220. package/dist/es2019/react-node-view/types.js +1 -0
  221. package/dist/es2019/selection/gap-cursor/selection.js +136 -0
  222. package/dist/es2019/selection/gap-cursor/utils/index.js +2 -0
  223. package/dist/es2019/selection/gap-cursor/utils/is-ignored.js +5 -0
  224. package/dist/es2019/selection/gap-cursor/utils/is-valid-target-node.js +4 -0
  225. package/dist/es2019/selection/index.js +4 -0
  226. package/dist/es2019/selection/types.js +8 -0
  227. package/dist/es2019/selection/utils.js +38 -0
  228. package/dist/es2019/styles/index.js +3 -1
  229. package/dist/es2019/styles/shared/extension.js +3 -0
  230. package/dist/es2019/styles/shared/layout.js +3 -0
  231. package/dist/es2019/styles/shared/table.js +3 -1
  232. package/dist/es2019/transforms/expand.js +36 -0
  233. package/dist/es2019/transforms/extension.js +26 -0
  234. package/dist/es2019/transforms/index.js +3 -0
  235. package/dist/es2019/transforms/layout.js +54 -0
  236. package/dist/es2019/types/command.js +1 -0
  237. package/dist/es2019/types/context-panel.js +1 -0
  238. package/dist/es2019/types/editor-actions.js +1 -0
  239. package/dist/es2019/types/editor-appearance.js +1 -0
  240. package/dist/es2019/types/editor-container-width.js +1 -0
  241. package/dist/es2019/types/editor-plugin.js +1 -0
  242. package/dist/es2019/types/editor-react-context.js +1 -0
  243. package/dist/es2019/types/empty-state-handler.js +1 -0
  244. package/dist/es2019/types/feature-flags.js +1 -0
  245. package/dist/es2019/types/floating-toolbar.js +1 -0
  246. package/dist/es2019/types/index.js +2 -1
  247. package/dist/es2019/types/plugin-factory.js +1 -0
  248. package/dist/es2019/types/prosemirror-config.js +1 -0
  249. package/dist/es2019/types/quick-insert.js +1 -0
  250. package/dist/es2019/types/supported-browsers.js +2 -0
  251. package/dist/es2019/types/toolbar.js +30 -0
  252. package/dist/es2019/types/ui-components.js +1 -0
  253. package/dist/es2019/ui/DropList/index.js +187 -0
  254. package/dist/es2019/ui/ErrorBoundary/index.js +52 -0
  255. package/dist/es2019/ui/Layer/index.js +195 -0
  256. package/dist/es2019/ui/Layer/internal/helpers.js +62 -0
  257. package/dist/es2019/ui/PortalProvider/PortalProviderThemesProvider.js +43 -0
  258. package/dist/es2019/ui/PortalProvider/index.js +193 -0
  259. package/dist/es2019/ui-color/ColorPalette/Color/index.js +72 -0
  260. package/dist/es2019/ui-color/ColorPalette/Color/styles.js +35 -0
  261. package/dist/es2019/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.js +15 -0
  262. package/dist/es2019/ui-color/ColorPalette/Palettes/common.js +25 -0
  263. package/dist/es2019/ui-color/ColorPalette/Palettes/getColorMessage.js +14 -0
  264. package/dist/es2019/ui-color/ColorPalette/Palettes/index.js +1 -0
  265. package/dist/es2019/ui-color/ColorPalette/Palettes/paletteMessages.js +113 -0
  266. package/dist/es2019/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +143 -0
  267. package/dist/es2019/ui-color/ColorPalette/Palettes/statusColorPalette.js +56 -0
  268. package/dist/es2019/ui-color/ColorPalette/Palettes/textColorPalette.js +25 -0
  269. package/dist/es2019/ui-color/ColorPalette/Palettes/type.js +1 -0
  270. package/dist/es2019/ui-color/ColorPalette/index.js +68 -0
  271. package/dist/es2019/ui-color/ColorPalette/styles.js +7 -0
  272. package/dist/es2019/ui-color/index.js +8 -0
  273. package/dist/es2019/ui-menu/Dropdown/index.js +83 -0
  274. package/dist/es2019/ui-menu/DropdownMenu/index.js +244 -0
  275. package/dist/es2019/ui-menu/DropdownMenu/types.js +1 -0
  276. package/dist/es2019/ui-menu/ToolbarButton/index.js +94 -0
  277. package/dist/es2019/ui-menu/ToolbarButton/styles.js +12 -0
  278. package/dist/es2019/ui-menu/index.js +3 -0
  279. package/dist/es2019/ui-react/ReactEditorViewContext.js +3 -0
  280. package/dist/es2019/ui-react/index.js +2 -0
  281. package/dist/es2019/ui-react/with-react-editor-view-outer-listeners.js +103 -0
  282. package/dist/es2019/utils/dom.js +113 -0
  283. package/dist/es2019/utils/editor-core-utils.js +72 -0
  284. package/dist/es2019/utils/index.js +6 -0
  285. package/dist/es2019/utils/is-text-input.js +19 -0
  286. package/dist/es2019/utils/nodes.js +88 -0
  287. package/dist/es2019/utils/plugin-state-factory.js +107 -0
  288. package/dist/es2019/utils/slice.js +56 -0
  289. package/dist/es2019/version.json +1 -1
  290. package/dist/es2019/with-plugin-state/index.js +263 -0
  291. package/dist/es2019/with-plugin-state/types.js +1 -0
  292. package/dist/esm/__tests_external__/cases/fundamentals/collection.js +9 -0
  293. package/dist/esm/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +14 -0
  294. package/dist/esm/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +25 -0
  295. package/dist/esm/__tests_external__/cases/media/test-cases/alt-text.js +32 -0
  296. package/dist/esm/__tests_external__/cases/media/test-cases/caption.js +31 -0
  297. package/dist/esm/__tests_external__/cases/media/test-cases/index.js +10 -0
  298. package/dist/esm/__tests_external__/cases/media/test-cases/types.js +1 -0
  299. package/dist/esm/__tests_external__/cases/media/test-cases/upload.js +26 -0
  300. package/dist/esm/__tests_external__/cases/smart-links/index.js +4 -0
  301. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/delete.js +30 -0
  302. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/edit.js +61 -0
  303. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/index.js +10 -0
  304. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/insert.js +29 -0
  305. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/delete.js +30 -0
  306. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/edit.js +61 -0
  307. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/index.js +10 -0
  308. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/insert.js +29 -0
  309. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/delete.js +29 -0
  310. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/edit.js +59 -0
  311. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/index.js +11 -0
  312. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/insert.js +28 -0
  313. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +31 -0
  314. package/dist/esm/__tests_external__/cases/smart-links/test-cases/types.js +1 -0
  315. package/dist/esm/__tests_external__/cases/smart-links/test-cases/url/index.js +8 -0
  316. package/dist/esm/__tests_external__/cases/smart-links/test-cases/url/insert.js +26 -0
  317. package/dist/esm/__tests_external__/cases/types.js +1 -0
  318. package/dist/esm/__tests_external__/index.js +4 -0
  319. package/dist/esm/__tests_external__/page-objects/Editor.js +56 -0
  320. package/dist/esm/__tests_external__/page-objects/EditorMedia.js +83 -0
  321. package/dist/esm/__tests_external__/page-objects/EditorSmartLink.js +218 -0
  322. package/dist/esm/__tests_external__/page-objects/Renderer.js +45 -0
  323. package/dist/esm/analytics/api.js +1 -0
  324. package/dist/esm/analytics/index.js +1 -0
  325. package/dist/esm/analytics/types/avatar.js +1 -0
  326. package/dist/esm/analytics/types/block.js +1 -0
  327. package/dist/esm/analytics/types/config-panel-events.js +1 -0
  328. package/dist/esm/analytics/types/cut-copy-events.js +1 -0
  329. package/dist/esm/analytics/types/date-events.js +1 -0
  330. package/dist/esm/analytics/types/dispatch-analytics-event.js +1 -0
  331. package/dist/esm/analytics/types/element-browser-events.js +1 -0
  332. package/dist/esm/analytics/types/enums.js +336 -0
  333. package/dist/esm/analytics/types/events.js +1 -0
  334. package/dist/esm/analytics/types/experimental-events.js +1 -0
  335. package/dist/esm/analytics/types/extension-events.js +13 -0
  336. package/dist/esm/analytics/types/find-replace-events.js +1 -0
  337. package/dist/esm/analytics/types/format-events.js +16 -0
  338. package/dist/esm/analytics/types/general-events.js +30 -0
  339. package/dist/esm/analytics/types/index.js +14 -0
  340. package/dist/esm/analytics/types/inline-comment-events.js +7 -0
  341. package/dist/esm/analytics/types/insert-events.js +41 -0
  342. package/dist/esm/analytics/types/link-tool-bar-events.js +1 -0
  343. package/dist/esm/analytics/types/list-events.js +17 -0
  344. package/dist/esm/analytics/types/media-events.js +1 -0
  345. package/dist/esm/analytics/types/node-events.js +18 -0
  346. package/dist/esm/analytics/types/paste-events.js +46 -0
  347. package/dist/esm/analytics/types/performance-report.js +1 -0
  348. package/dist/esm/analytics/types/selection-events.js +1 -0
  349. package/dist/esm/analytics/types/smart-links.js +12 -0
  350. package/dist/esm/analytics/types/substitute-events.js +16 -0
  351. package/dist/esm/analytics/types/table-events.js +34 -0
  352. package/dist/esm/analytics/types/toolbar-button.js +19 -0
  353. package/dist/esm/analytics/types/type-ahead.js +1 -0
  354. package/dist/esm/analytics/types/utils.js +20 -0
  355. package/dist/esm/core-utils/index.js +1 -0
  356. package/dist/esm/core-utils/inside.js +7 -0
  357. package/dist/esm/event-dispatcher/index.js +74 -0
  358. package/dist/esm/keymaps/consts.js +12 -0
  359. package/dist/esm/keymaps/index.js +184 -0
  360. package/dist/esm/messages/index.js +125 -1
  361. package/dist/esm/messages/insert-block.js +168 -0
  362. package/dist/esm/node-width/index.js +72 -0
  363. package/dist/esm/react-node-view/index.js +244 -0
  364. package/dist/esm/react-node-view/types.js +1 -0
  365. package/dist/esm/selection/gap-cursor/selection.js +176 -0
  366. package/dist/esm/selection/gap-cursor/utils/index.js +2 -0
  367. package/dist/esm/selection/gap-cursor/utils/is-ignored.js +5 -0
  368. package/dist/esm/selection/gap-cursor/utils/is-valid-target-node.js +4 -0
  369. package/dist/esm/selection/index.js +4 -0
  370. package/dist/esm/selection/types.js +8 -0
  371. package/dist/esm/selection/utils.js +38 -0
  372. package/dist/esm/styles/index.js +3 -1
  373. package/dist/esm/styles/shared/extension.js +3 -0
  374. package/dist/esm/styles/shared/layout.js +3 -0
  375. package/dist/esm/styles/shared/table.js +3 -1
  376. package/dist/esm/transforms/expand.js +34 -0
  377. package/dist/esm/transforms/extension.js +24 -0
  378. package/dist/esm/transforms/index.js +3 -0
  379. package/dist/esm/transforms/layout.js +58 -0
  380. package/dist/esm/types/command.js +1 -0
  381. package/dist/esm/types/context-panel.js +1 -0
  382. package/dist/esm/types/editor-actions.js +1 -0
  383. package/dist/esm/types/editor-appearance.js +1 -0
  384. package/dist/esm/types/editor-container-width.js +1 -0
  385. package/dist/esm/types/editor-plugin.js +1 -0
  386. package/dist/esm/types/editor-react-context.js +1 -0
  387. package/dist/esm/types/empty-state-handler.js +1 -0
  388. package/dist/esm/types/feature-flags.js +1 -0
  389. package/dist/esm/types/floating-toolbar.js +1 -0
  390. package/dist/esm/types/index.js +2 -1
  391. package/dist/esm/types/plugin-factory.js +1 -0
  392. package/dist/esm/types/prosemirror-config.js +1 -0
  393. package/dist/esm/types/quick-insert.js +1 -0
  394. package/dist/esm/types/supported-browsers.js +2 -0
  395. package/dist/esm/types/toolbar.js +30 -0
  396. package/dist/esm/types/ui-components.js +1 -0
  397. package/dist/esm/ui/DropList/index.js +205 -0
  398. package/dist/esm/ui/ErrorBoundary/index.js +84 -0
  399. package/dist/esm/ui/Layer/index.js +228 -0
  400. package/dist/esm/ui/Layer/internal/helpers.js +62 -0
  401. package/dist/esm/ui/PortalProvider/PortalProviderThemesProvider.js +43 -0
  402. package/dist/esm/ui/PortalProvider/index.js +275 -0
  403. package/dist/esm/ui-color/ColorPalette/Color/index.js +93 -0
  404. package/dist/esm/ui-color/ColorPalette/Color/styles.js +19 -0
  405. package/dist/esm/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.js +15 -0
  406. package/dist/esm/ui-color/ColorPalette/Palettes/common.js +24 -0
  407. package/dist/esm/ui-color/ColorPalette/Palettes/getColorMessage.js +10 -0
  408. package/dist/esm/ui-color/ColorPalette/Palettes/index.js +1 -0
  409. package/dist/esm/ui-color/ColorPalette/Palettes/paletteMessages.js +113 -0
  410. package/dist/esm/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +153 -0
  411. package/dist/esm/ui-color/ColorPalette/Palettes/statusColorPalette.js +56 -0
  412. package/dist/esm/ui-color/ColorPalette/Palettes/textColorPalette.js +25 -0
  413. package/dist/esm/ui-color/ColorPalette/Palettes/type.js +1 -0
  414. package/dist/esm/ui-color/ColorPalette/index.js +70 -0
  415. package/dist/esm/ui-color/ColorPalette/styles.js +7 -0
  416. package/dist/esm/ui-color/index.js +8 -0
  417. package/dist/esm/ui-menu/Dropdown/index.js +105 -0
  418. package/dist/esm/ui-menu/DropdownMenu/index.js +265 -0
  419. package/dist/esm/ui-menu/DropdownMenu/types.js +1 -0
  420. package/dist/esm/ui-menu/ToolbarButton/index.js +102 -0
  421. package/dist/esm/ui-menu/ToolbarButton/styles.js +12 -0
  422. package/dist/esm/ui-menu/index.js +3 -0
  423. package/dist/esm/ui-react/ReactEditorViewContext.js +3 -0
  424. package/dist/esm/ui-react/index.js +2 -0
  425. package/dist/esm/ui-react/with-react-editor-view-outer-listeners.js +138 -0
  426. package/dist/esm/utils/dom.js +113 -0
  427. package/dist/esm/utils/editor-core-utils.js +72 -0
  428. package/dist/esm/utils/index.js +6 -0
  429. package/dist/esm/utils/is-text-input.js +18 -0
  430. package/dist/esm/utils/nodes.js +100 -0
  431. package/dist/esm/utils/plugin-state-factory.js +106 -0
  432. package/dist/esm/utils/slice.js +59 -0
  433. package/dist/esm/version.json +1 -1
  434. package/dist/esm/with-plugin-state/index.js +311 -0
  435. package/dist/esm/with-plugin-state/types.js +1 -0
  436. package/dist/types/analytics/api.d.ts +5 -0
  437. package/dist/types/analytics/index.d.ts +3 -0
  438. package/dist/types/analytics/types/avatar.d.ts +5 -0
  439. package/dist/types/analytics/types/block.d.ts +3 -0
  440. package/dist/types/analytics/types/config-panel-events.d.ts +17 -0
  441. package/dist/types/analytics/types/cut-copy-events.d.ts +12 -0
  442. package/dist/types/analytics/types/date-events.d.ts +17 -0
  443. package/dist/types/analytics/types/dispatch-analytics-event.d.ts +2 -0
  444. package/dist/types/analytics/types/element-browser-events.d.ts +11 -0
  445. package/dist/types/analytics/types/enums.d.ts +313 -0
  446. package/dist/types/analytics/types/events.d.ts +125 -0
  447. package/dist/types/analytics/types/experimental-events.d.ts +17 -0
  448. package/dist/types/analytics/types/extension-events.d.ts +37 -0
  449. package/dist/types/analytics/types/find-replace-events.d.ts +23 -0
  450. package/dist/types/analytics/types/format-events.d.ts +49 -0
  451. package/dist/types/analytics/types/general-events.d.ts +179 -0
  452. package/dist/types/analytics/types/index.d.ts +34 -0
  453. package/dist/types/analytics/types/inline-comment-events.d.ts +17 -0
  454. package/dist/types/analytics/types/insert-events.d.ts +128 -0
  455. package/dist/types/analytics/types/link-tool-bar-events.d.ts +76 -0
  456. package/dist/types/analytics/types/list-events.d.ts +52 -0
  457. package/dist/types/analytics/types/media-events.d.ts +16 -0
  458. package/dist/types/analytics/types/node-events.d.ts +56 -0
  459. package/dist/types/analytics/types/paste-events.d.ts +39 -0
  460. package/dist/types/analytics/types/performance-report.d.ts +24 -0
  461. package/dist/types/analytics/types/selection-events.d.ts +18 -0
  462. package/dist/types/analytics/types/smart-links.d.ts +13 -0
  463. package/dist/types/analytics/types/substitute-events.d.ts +26 -0
  464. package/dist/types/analytics/types/table-events.d.ts +94 -0
  465. package/dist/types/analytics/types/toolbar-button.d.ts +22 -0
  466. package/dist/types/analytics/types/type-ahead.d.ts +27 -0
  467. package/dist/types/analytics/types/utils.d.ts +46 -0
  468. package/dist/types/core-utils/index.d.ts +1 -0
  469. package/dist/types/core-utils/inside.d.ts +2 -0
  470. package/dist/types/event-dispatcher/index.d.ts +19 -0
  471. package/dist/types/keymaps/consts.d.ts +12 -0
  472. package/dist/types/keymaps/index.d.ts +89 -0
  473. package/dist/types/messages/index.d.ts +124 -0
  474. package/dist/types/messages/insert-block.d.ts +167 -0
  475. package/dist/types/node-width/index.d.ts +7 -0
  476. package/dist/types/react-node-view/index.d.ts +52 -0
  477. package/dist/types/react-node-view/types.d.ts +12 -0
  478. package/dist/types/selection/gap-cursor/selection.d.ts +40 -0
  479. package/dist/types/selection/gap-cursor/utils/index.d.ts +2 -0
  480. package/dist/types/selection/gap-cursor/utils/is-ignored.d.ts +2 -0
  481. package/dist/types/selection/gap-cursor/utils/is-valid-target-node.d.ts +2 -0
  482. package/dist/types/selection/index.d.ts +5 -0
  483. package/dist/types/selection/types.d.ts +26 -0
  484. package/dist/types/selection/utils.d.ts +4 -0
  485. package/dist/types/styles/index.d.ts +2 -0
  486. package/dist/types/styles/shared/extension.d.ts +2 -0
  487. package/dist/types/styles/shared/layout.d.ts +2 -0
  488. package/dist/types/styles/shared/table.d.ts +2 -0
  489. package/dist/types/transforms/expand.d.ts +5 -0
  490. package/dist/types/transforms/extension.d.ts +6 -0
  491. package/dist/types/transforms/index.d.ts +3 -0
  492. package/dist/types/transforms/layout.d.ts +15 -0
  493. package/dist/types/types/command.d.ts +5 -0
  494. package/dist/types/types/context-panel.d.ts +3 -0
  495. package/dist/types/types/editor-actions.d.ts +19 -0
  496. package/dist/types/types/editor-appearance.d.ts +1 -0
  497. package/dist/types/types/editor-container-width.d.ts +6 -0
  498. package/dist/types/types/editor-plugin.d.ts +61 -0
  499. package/dist/types/types/editor-react-context.d.ts +6 -0
  500. package/dist/types/types/empty-state-handler.d.ts +7 -0
  501. package/dist/types/types/feature-flags.d.ts +344 -0
  502. package/dist/types/types/floating-toolbar.d.ts +183 -0
  503. package/dist/types/types/index.d.ts +17 -1
  504. package/dist/types/types/plugin-factory.d.ts +27 -0
  505. package/dist/types/types/prosemirror-config.d.ts +14 -0
  506. package/dist/types/types/quick-insert.d.ts +26 -0
  507. package/dist/types/types/supported-browsers.d.ts +10 -0
  508. package/dist/types/types/toolbar.d.ts +30 -0
  509. package/dist/types/types/type-ahead.d.ts +50 -1
  510. package/dist/types/types/ui-components.d.ts +22 -0
  511. package/dist/types/ui/DropList/index.d.ts +19 -0
  512. package/dist/types/ui/ErrorBoundary/index.d.ts +24 -0
  513. package/dist/types/ui/Layer/index.d.ts +47 -0
  514. package/dist/types/ui/Layer/internal/helpers.d.ts +5 -0
  515. package/dist/types/ui/PortalProvider/PortalProviderThemesProvider.d.ts +6 -0
  516. package/dist/types/ui/PortalProvider/index.d.ts +50 -0
  517. package/dist/types/ui-color/ColorPalette/Color/index.d.ts +19 -0
  518. package/dist/types/ui-color/ColorPalette/Color/styles.d.ts +4 -0
  519. package/dist/types/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.d.ts +3 -0
  520. package/dist/types/ui-color/ColorPalette/Palettes/common.d.ts +2 -0
  521. package/dist/types/ui-color/ColorPalette/Palettes/getColorMessage.d.ts +2 -0
  522. package/dist/types/ui-color/ColorPalette/Palettes/index.d.ts +2 -0
  523. package/dist/types/ui-color/ColorPalette/Palettes/paletteMessages.d.ts +113 -0
  524. package/dist/types/ui-color/ColorPalette/Palettes/panelBackgroundPalette.d.ts +4 -0
  525. package/dist/types/ui-color/ColorPalette/Palettes/statusColorPalette.d.ts +4 -0
  526. package/dist/types/ui-color/ColorPalette/Palettes/textColorPalette.d.ts +3 -0
  527. package/dist/types/ui-color/ColorPalette/Palettes/type.d.ts +8 -0
  528. package/dist/types/ui-color/ColorPalette/index.d.ts +15 -0
  529. package/dist/types/ui-color/ColorPalette/styles.d.ts +1 -0
  530. package/dist/types/ui-color/index.d.ts +9 -0
  531. package/dist/types/ui-menu/Dropdown/index.d.ts +32 -0
  532. package/dist/types/ui-menu/DropdownMenu/index.d.ts +19 -0
  533. package/dist/types/ui-menu/DropdownMenu/types.d.ts +43 -0
  534. package/dist/types/ui-menu/ToolbarButton/index.d.ts +53 -0
  535. package/dist/types/ui-menu/ToolbarButton/styles.d.ts +4 -0
  536. package/dist/types/ui-menu/index.d.ts +5 -0
  537. package/dist/types/ui-react/ReactEditorViewContext.d.ts +8 -0
  538. package/dist/types/ui-react/index.d.ts +2 -0
  539. package/dist/types/ui-react/with-react-editor-view-outer-listeners.d.ts +9 -0
  540. package/dist/types/utils/dom.d.ts +26 -0
  541. package/dist/types/utils/editor-core-utils.d.ts +23 -0
  542. package/dist/types/utils/getModeFromTheme.d.ts +1 -1
  543. package/dist/types/utils/index.d.ts +9 -0
  544. package/dist/types/utils/is-text-input.d.ts +2 -0
  545. package/dist/types/utils/nodes.d.ts +35 -0
  546. package/dist/types/utils/plugin-state-factory.d.ts +16 -0
  547. package/dist/types/utils/slice.d.ts +11 -0
  548. package/dist/types/with-plugin-state/index.d.ts +86 -0
  549. package/dist/types/with-plugin-state/types.d.ts +10 -0
  550. package/error-boundary/package.json +8 -0
  551. package/event-dispatcher/package.json +8 -0
  552. package/keymaps/package.json +8 -0
  553. package/node-width/package.json +8 -0
  554. package/package.json +28 -7
  555. package/portal-provider/package.json +8 -0
  556. package/react-node-view/package.json +8 -0
  557. package/selection/package.json +8 -0
  558. package/transforms/package.json +8 -0
  559. package/ui-color/package.json +8 -0
  560. package/ui-menu/package.json +8 -0
  561. package/ui-react/package.json +8 -0
  562. package/with-plugin-state/package.json +8 -0
@@ -0,0 +1,263 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import React from 'react';
3
+ import PropTypes from 'prop-types';
4
+ const DEFAULT_SAMPLING_RATE = 100;
5
+ const DEFAULT_SLOW_THRESHOLD = 4;
6
+
7
+ /**
8
+ * Wraps component in a high order component that watches state changes of given plugins
9
+ * and passes those states to the wrapped component.
10
+ *
11
+ * Example:
12
+ * <WithPluginState
13
+ * eventDispatcher={eventDispatcher}
14
+ * editorView={editorView}
15
+ * plugins={{
16
+ * hyperlink: hyperlinkPluginKey
17
+ * }}
18
+ * render={renderComponent}
19
+ * />
20
+ *
21
+ * renderComponent: ({ hyperlink }) => React.Component;
22
+ */
23
+ class WithPluginState extends React.Component {
24
+ constructor(...args) {
25
+ super(...args);
26
+
27
+ _defineProperty(this, "listeners", {});
28
+
29
+ _defineProperty(this, "debounce", null);
30
+
31
+ _defineProperty(this, "notAppliedState", {});
32
+
33
+ _defineProperty(this, "isSubscribed", false);
34
+
35
+ _defineProperty(this, "state", this.getPluginsStates(this.props.plugins, this.getEditorView(this.props, this.context)));
36
+
37
+ _defineProperty(this, "handlePluginStateChange", (propName, pluginName, performanceOptions, skipEqualityCheck) => pluginState => {
38
+ // skipEqualityCheck is being used for old plugins since they are mutating plugin state instead of creating a new one
39
+ if (this.state[propName] !== pluginState || skipEqualityCheck) {
40
+ this.updateState({
41
+ stateSubset: {
42
+ [propName]: pluginState
43
+ },
44
+ pluginName,
45
+ performanceOptions
46
+ });
47
+ }
48
+ });
49
+
50
+ _defineProperty(this, "updateState", ({
51
+ stateSubset,
52
+ pluginName,
53
+ performanceOptions
54
+ }) => {
55
+ this.notAppliedState = { ...this.notAppliedState,
56
+ ...stateSubset
57
+ };
58
+
59
+ if (this.debounce) {
60
+ window.clearTimeout(this.debounce);
61
+ }
62
+
63
+ const debounce = this.props.debounce !== false ? fn => window.setTimeout(fn, 0) : fn => fn();
64
+ this.debounce = debounce(() => {
65
+ // TODO: ED-15580
66
+ //const measure = `🦉${pluginName}::WithPluginState`;
67
+ //performanceOptions.trackingEnabled && startMeasure(measure);
68
+ // () => {
69
+ // performanceOptions.trackingEnabled &&
70
+ // stopMeasure(measure, (duration) => {
71
+ // // Each WithPluginState component will fire analytics event no more than once every `samplingLimit` times
72
+ // if (
73
+ // ++this.callsCount % performanceOptions.samplingRate === 0 &&
74
+ // duration > performanceOptions.slowThreshold
75
+ // ) {
76
+ // const editorView = this.getEditorView();
77
+ // this.dispatchAnalyticsEvent({
78
+ // action: ACTION.WITH_PLUGIN_STATE_CALLED,
79
+ // actionSubject: ACTION_SUBJECT.EDITOR,
80
+ // eventType: EVENT_TYPE.OPERATIONAL,
81
+ // attributes: {
82
+ // plugin: pluginName,
83
+ // duration,
84
+ // participants: getParticipantsCount(
85
+ // editorView && editorView.state,
86
+ // ),
87
+ // },
88
+ // });
89
+ // }
90
+ // });
91
+ //}
92
+ this.setState(this.notAppliedState);
93
+ this.debounce = null;
94
+ this.notAppliedState = {};
95
+ });
96
+ });
97
+
98
+ _defineProperty(this, "onContextUpdate", () => {
99
+ this.subscribe(this.props);
100
+ });
101
+ }
102
+
103
+ getEditorView(maybeProps, maybeContext) {
104
+ const props = maybeProps || this.props;
105
+ const context = maybeContext || this.context;
106
+ return props.editorView || context && context.editorActions && context.editorActions._privateGetEditorView() || context && context.editorSharedConfig && context.editorSharedConfig.editorView;
107
+ }
108
+
109
+ getEventDispatcher(maybeProps) {
110
+ const props = maybeProps || this.props;
111
+ return props.eventDispatcher || this.context && this.context.editorActions && this.context.editorActions._privateGetEventDispatcher() || this.context && this.context.editorSharedConfig && this.context.editorSharedConfig.eventDispatcher;
112
+ }
113
+
114
+ // TODO: ED-15580
115
+ //private dispatchAnalyticsEvent = (payload: AnalyticsEventPayload) => {
116
+ // const eventDispatcher = this.getEventDispatcher();
117
+ // if (eventDispatcher) {
118
+ // const dispatch: AnalyticsDispatch = createDispatch(eventDispatcher);
119
+ // dispatch(analyticsEventKey, {
120
+ // payload,
121
+ // });
122
+ // }
123
+ //};
124
+ getPluginsStates(plugins, editorView) {
125
+ if (!editorView || !plugins) {
126
+ return {};
127
+ }
128
+
129
+ const keys = Object.keys(plugins);
130
+ return keys.reduce((acc, propName) => {
131
+ const pluginKey = plugins[propName];
132
+
133
+ if (!pluginKey) {
134
+ return acc;
135
+ }
136
+
137
+ acc[propName] = pluginKey.getState(editorView.state);
138
+ return acc;
139
+ }, {});
140
+ }
141
+
142
+ subscribe(props) {
143
+ const plugins = props.plugins;
144
+ const eventDispatcher = this.getEventDispatcher(props);
145
+ const editorView = this.getEditorView(props);
146
+
147
+ if (!eventDispatcher || !editorView || this.isSubscribed) {
148
+ return;
149
+ } // TODO: ED-15580
150
+ //const analyticsPlugin = analyticsPluginKey.getState(editorView.state);
151
+ //const uiTracking =
152
+ // analyticsPlugin && analyticsPlugin.performanceTracking
153
+ // ? analyticsPlugin.performanceTracking.uiTracking || {}
154
+ // : {};
155
+ //const trackingEnabled = uiTracking.enabled === true;
156
+ //const samplingRate = uiTracking.samplingRate || DEFAULT_SAMPLING_RATE;
157
+ //const slowThreshold = uiTracking.slowThreshold || DEFAULT_SLOW_THRESHOLD;
158
+
159
+
160
+ const trackingEnabled = false;
161
+ const samplingRate = DEFAULT_SAMPLING_RATE;
162
+ const slowThreshold = DEFAULT_SLOW_THRESHOLD;
163
+ this.isSubscribed = true;
164
+ const pluginsStates = this.getPluginsStates(plugins, editorView);
165
+ this.setState(pluginsStates);
166
+ Object.keys(plugins).forEach(propName => {
167
+ const pluginKey = plugins[propName];
168
+
169
+ if (!pluginKey) {
170
+ return;
171
+ }
172
+
173
+ const pluginName = pluginKey.key;
174
+ const pluginState = pluginsStates[propName];
175
+ const isPluginWithSubscribe = pluginState && pluginState.subscribe;
176
+ const handler = this.handlePluginStateChange(propName, pluginName, {
177
+ samplingRate,
178
+ slowThreshold,
179
+ trackingEnabled
180
+ }, isPluginWithSubscribe);
181
+
182
+ if (isPluginWithSubscribe) {
183
+ pluginState.subscribe(handler);
184
+ } else {
185
+ eventDispatcher.on(pluginKey.key, handler);
186
+ }
187
+
188
+ this.listeners[pluginKey.key] = {
189
+ handler,
190
+ pluginKey
191
+ };
192
+ });
193
+ }
194
+
195
+ unsubscribe() {
196
+ const eventDispatcher = this.getEventDispatcher();
197
+ const editorView = this.getEditorView();
198
+
199
+ if (!eventDispatcher || !editorView || !this.isSubscribed) {
200
+ return;
201
+ }
202
+
203
+ Object.keys(this.listeners).forEach(key => {
204
+ const pluginState = this.listeners[key].pluginKey.getState(editorView.state);
205
+
206
+ if (pluginState && pluginState.unsubscribe) {
207
+ pluginState.unsubscribe(this.listeners[key].handler);
208
+ } else {
209
+ eventDispatcher.off(key, this.listeners[key].handler);
210
+ }
211
+ });
212
+ this.listeners = [];
213
+ }
214
+
215
+ subscribeToContextUpdates(context) {
216
+ if (context && context.editorActions) {
217
+ context.editorActions._privateSubscribe(this.onContextUpdate);
218
+ }
219
+ }
220
+
221
+ unsubscribeFromContextUpdates(context) {
222
+ if (context && context.editorActions) {
223
+ context.editorActions._privateUnsubscribe(this.onContextUpdate);
224
+ }
225
+ }
226
+
227
+ componentDidMount() {
228
+ this.subscribe(this.props);
229
+ this.subscribeToContextUpdates(this.context);
230
+ }
231
+
232
+ UNSAFE_componentWillReceiveProps(nextProps) {
233
+ if (!this.isSubscribed) {
234
+ this.subscribe(nextProps);
235
+ }
236
+ }
237
+
238
+ componentWillUnmount() {
239
+ if (this.debounce) {
240
+ window.clearTimeout(this.debounce);
241
+ }
242
+
243
+ this.unsubscribeFromContextUpdates(this.context);
244
+ this.unsubscribe();
245
+ }
246
+
247
+ render() {
248
+ const {
249
+ render
250
+ } = this.props;
251
+ return render(this.state);
252
+ }
253
+
254
+ }
255
+
256
+ _defineProperty(WithPluginState, "displayName", 'WithPluginState');
257
+
258
+ _defineProperty(WithPluginState, "contextTypes", {
259
+ editorActions: PropTypes.object,
260
+ editorSharedConfig: PropTypes.object
261
+ });
262
+
263
+ export { WithPluginState };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import { InProductTestCollection } from '@atlaskit/in-product-testing';
2
+ import { editorIsPresentTestCase } from './test-cases/editor-is-present';
3
+ import { editorTypingTestCase } from './test-cases/editor-typing';
4
+ export var fundamentalsTestCollection = function fundamentalsTestCollection(opts) {
5
+ return new InProductTestCollection({
6
+ title: '@atlaskit/editor-core -> Editor fundamentals happy path tests',
7
+ testCases: [editorIsPresentTestCase(opts), editorTypingTestCase(opts)]
8
+ });
9
+ };
@@ -0,0 +1,14 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { EditorPageObject } from '../../../page-objects/Editor';
3
+ export var editorIsPresentTestCase = function editorIsPresentTestCase(testOptions) {
4
+ return new InProductTestCase({
5
+ testOptions: testOptions,
6
+ title: 'content-area, title of Editor are visible',
7
+ id: 'editor-is-present',
8
+ assertions: function assertions(cy) {
9
+ var editor = new EditorPageObject(cy);
10
+ editor.getTitleArea().should('be.visible');
11
+ editor.getEditorArea().should('be.visible');
12
+ }
13
+ });
14
+ };
@@ -0,0 +1,25 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { EditorPageObject } from '../../../page-objects/Editor';
3
+ import { RendererPageObject } from '../../../page-objects/Renderer';
4
+ export var editorTypingTestCase = function editorTypingTestCase(opts) {
5
+ return new InProductTestCase({
6
+ title: 'typing in Editor works',
7
+ id: 'editor-typing',
8
+ assertions: function assertions(cy) {
9
+ var _opts$ui;
10
+
11
+ var editor = new EditorPageObject(cy);
12
+ editor.getEditorArea().type('abcdef');
13
+ editor.getEditorArea().contains('abcdef');
14
+
15
+ if (!opts || !((_opts$ui = opts.ui) !== null && _opts$ui !== void 0 && _opts$ui.publishButton)) {
16
+ return;
17
+ }
18
+
19
+ var publishButton = opts.ui.publishButton;
20
+ var renderer = new RendererPageObject(cy);
21
+ cy.get(publishButton).click();
22
+ renderer.getContent().contains('abcdef');
23
+ }
24
+ });
25
+ };
@@ -0,0 +1,32 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { MediaCardPageObject } from '@atlaskit/media-card/in-product';
3
+ import { EditorPageObject } from '../../../page-objects/Editor';
4
+ import { EditorMediaPageObject } from '../../../page-objects/EditorMedia';
5
+ export var addAltTextMediaTestCase = function addAltTextMediaTestCase(_ref) {
6
+ var ui = _ref.ui,
7
+ fixtures = _ref.fixtures;
8
+ return new InProductTestCase({
9
+ title: 'adding alt text to Media works',
10
+ id: 'media-alt-text',
11
+ precondition: function precondition() {
12
+ return fixtures.length > 0;
13
+ },
14
+ assertions: function assertions(cy) {
15
+ var editor = new EditorPageObject(cy);
16
+ var editorMedia = new EditorMediaPageObject(cy);
17
+ var mediaCard = new MediaCardPageObject(cy);
18
+ editor.upload(fixtures);
19
+ mediaCard.expectCardReady(fixtures.length);
20
+ var altText = 'Corne **loves** avocados';
21
+ editorMedia.addAltTextToImage(altText);
22
+ editorMedia.assertAltText(altText);
23
+
24
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
25
+ var renderer = editor.publish(ui);
26
+ renderer.expectContentReady();
27
+ renderer.expectMediaSingleRenders(fixtures.length);
28
+ mediaCard.assertAltText(altText);
29
+ }
30
+ }
31
+ });
32
+ };
@@ -0,0 +1,31 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { MediaCardPageObject } from '@atlaskit/media-card/in-product';
3
+ import { EditorPageObject } from '../../../page-objects/Editor';
4
+ import { EditorMediaPageObject } from '../../../page-objects/EditorMedia';
5
+ export var addCaptionMediaTestCase = function addCaptionMediaTestCase(_ref) {
6
+ var ui = _ref.ui,
7
+ fixtures = _ref.fixtures;
8
+ return new InProductTestCase({
9
+ title: 'adding caption to Media works',
10
+ id: 'media-caption',
11
+ precondition: function precondition() {
12
+ return fixtures.length > 0;
13
+ },
14
+ assertions: function assertions(cy) {
15
+ var editor = new EditorPageObject(cy);
16
+ var editorMedia = new EditorMediaPageObject(cy);
17
+ var mediaCard = new MediaCardPageObject(cy);
18
+ editor.upload(fixtures);
19
+ mediaCard.expectCardReady(fixtures.length);
20
+ var captionText = 'Corne loves avocados';
21
+ editorMedia.addCaptionToImage(captionText);
22
+
23
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
24
+ var renderer = editor.publish(ui);
25
+ renderer.expectContentReady();
26
+ renderer.expectMediaSingleRenders(fixtures.length);
27
+ editorMedia.assertCaptionText(captionText);
28
+ }
29
+ }
30
+ });
31
+ };
@@ -0,0 +1,10 @@
1
+ import { InProductTestCollection } from '@atlaskit/in-product-testing';
2
+ import { addAltTextMediaTestCase } from './alt-text';
3
+ import { addCaptionMediaTestCase } from './caption';
4
+ import { uploadMediaTestCase } from './upload';
5
+ export var mediaTestCollection = function mediaTestCollection(opts) {
6
+ return new InProductTestCollection({
7
+ title: '@atlaskit/editor-core -> Media, happy paths',
8
+ testCases: [uploadMediaTestCase(opts), addAltTextMediaTestCase(opts), addCaptionMediaTestCase(opts)]
9
+ });
10
+ };
@@ -0,0 +1,26 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { MediaCardPageObject } from '@atlaskit/media-card/in-product';
3
+ import { EditorPageObject } from '../../../page-objects/Editor';
4
+ export var uploadMediaTestCase = function uploadMediaTestCase(_ref) {
5
+ var ui = _ref.ui,
6
+ fixtures = _ref.fixtures;
7
+ return new InProductTestCase({
8
+ title: 'media upload and publish works',
9
+ id: 'media-file-upload',
10
+ precondition: function precondition() {
11
+ return fixtures.length > 0;
12
+ },
13
+ assertions: function assertions(cy) {
14
+ var editor = new EditorPageObject(cy);
15
+ var mediaCard = new MediaCardPageObject(cy);
16
+ editor.upload(fixtures);
17
+ mediaCard.expectCardReady(fixtures.length);
18
+
19
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
20
+ var renderer = editor.publish(ui);
21
+ renderer.expectContentReady();
22
+ renderer.expectMediaSingleRenders(fixtures.length);
23
+ }
24
+ }
25
+ });
26
+ };
@@ -0,0 +1,4 @@
1
+ export { inlineSmartLinksTestCollection } from './test-cases/inline';
2
+ export { blockSmartLinksTestCollection } from './test-cases/block';
3
+ export { embedSmartLinksTestCollection } from './test-cases/embed';
4
+ export { blueLinksTestCollection } from './test-cases/url';
@@ -0,0 +1,30 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { BlockCardPageObject, blockSmartLinkRendersTestCase } from '@atlaskit/smart-card/in-product';
3
+ import { EditorPageObject } from '../../../../page-objects/Editor';
4
+ import { EditorSmartLinkPageObject } from '../../../../page-objects/EditorSmartLink';
5
+ export var deleteBlockSmartLinkTestCase = function deleteBlockSmartLinkTestCase(_ref) {
6
+ var ui = _ref.ui,
7
+ url = _ref.url;
8
+ return new InProductTestCase({
9
+ title: 'able to delete a Block Smart Link using floating toolbar',
10
+ id: 'delete-block-smart-link',
11
+ assertions: function assertions(cy) {
12
+ var editor = new EditorPageObject(cy);
13
+ var editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ var blockCard = new BlockCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('block');
17
+ blockSmartLinkRendersTestCase({
18
+ url: url
19
+ }).assertions(cy);
20
+ editorWithSmartLinks.deleteSmartLink('block');
21
+ blockCard.expectCardNotExists();
22
+
23
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
24
+ var renderer = editor.publish(ui);
25
+ renderer.expectContentReady();
26
+ blockCard.expectCardNotExists();
27
+ }
28
+ }
29
+ });
30
+ };
@@ -0,0 +1,61 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { BlockCardPageObject, blockSmartLinkRendersTestCase } from '@atlaskit/smart-card/in-product';
3
+ import { EditorPageObject } from '../../../../page-objects/Editor';
4
+ import { EditorSmartLinkPageObject } from '../../../../page-objects/EditorSmartLink';
5
+ export var editBlockSmartLinkTitleTestCase = function editBlockSmartLinkTitleTestCase(_ref) {
6
+ var ui = _ref.ui,
7
+ url = _ref.url;
8
+ return new InProductTestCase({
9
+ title: 'editing a Block Smart Link renders as Blue Link (title)',
10
+ id: 'block-smart-link-edit-title',
11
+ assertions: function assertions(cy) {
12
+ var editor = new EditorPageObject(cy);
13
+ var editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ var blockCard = new BlockCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('block');
17
+ blockSmartLinkRendersTestCase({
18
+ url: url
19
+ }).assertions(cy);
20
+ editorWithSmartLinks.changeLinkLabel('Avocorne is watching you 🥑', 'block');
21
+ blockCard.assertHrefRendered(url);
22
+ blockCard.expectCardNotExists();
23
+
24
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
25
+ var renderer = editor.publish(ui);
26
+ renderer.expectContentReady();
27
+ blockCard.assertHrefRendered(url);
28
+ blockCard.expectCardNotExists();
29
+ }
30
+ }
31
+ });
32
+ };
33
+ export var editBlockSmartLinkUrlTestCase = function editBlockSmartLinkUrlTestCase(_ref2) {
34
+ var ui = _ref2.ui,
35
+ url = _ref2.url;
36
+ return new InProductTestCase({
37
+ title: 'editing a Block Smart Link renders as Blue Link (URL)',
38
+ id: 'block-smart-link-edit',
39
+ assertions: function assertions(cy) {
40
+ var editor = new EditorPageObject(cy);
41
+ var editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
42
+ var blockCard = new BlockCardPageObject(cy);
43
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
44
+ editorWithSmartLinks.switchAfterInsert('block');
45
+ blockSmartLinkRendersTestCase({
46
+ url: url
47
+ }).assertions(cy);
48
+ var newUrl = 'https://avo.corne.com';
49
+ editorWithSmartLinks.changeLinkUrl(newUrl, 'block');
50
+ blockCard.expectCardNotExists();
51
+ blockCard.assertHrefRendered(newUrl);
52
+
53
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
54
+ var renderer = editor.publish(ui);
55
+ renderer.expectContentReady();
56
+ blockCard.assertHrefRendered(newUrl);
57
+ blockCard.expectCardNotExists();
58
+ }
59
+ }
60
+ });
61
+ };
@@ -0,0 +1,10 @@
1
+ import { InProductTestCollection } from '@atlaskit/in-product-testing';
2
+ import { deleteBlockSmartLinkTestCase } from './delete';
3
+ import { editBlockSmartLinkTitleTestCase, editBlockSmartLinkUrlTestCase } from './edit';
4
+ import { switchToBlockSmartLinkTestCase } from './insert';
5
+ export var blockSmartLinksTestCollection = function blockSmartLinksTestCollection(opts) {
6
+ return new InProductTestCollection({
7
+ title: '@atlaskit/editor-core -> Block Smart Links, happy paths',
8
+ testCases: [switchToBlockSmartLinkTestCase(opts), editBlockSmartLinkTitleTestCase(opts), editBlockSmartLinkUrlTestCase(opts), deleteBlockSmartLinkTestCase(opts)]
9
+ });
10
+ };
@@ -0,0 +1,29 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { blockSmartLinkRendersTestCase } from '@atlaskit/smart-card/in-product';
3
+ import { EditorPageObject } from '../../../../page-objects/Editor';
4
+ import { EditorSmartLinkPageObject } from '../../../../page-objects/EditorSmartLink';
5
+ export var switchToBlockSmartLinkTestCase = function switchToBlockSmartLinkTestCase(_ref) {
6
+ var ui = _ref.ui,
7
+ url = _ref.url;
8
+ return new InProductTestCase({
9
+ title: 'switching to a Block Smart Link works',
10
+ id: 'switch-to-block',
11
+ assertions: function assertions(cy) {
12
+ var editor = new EditorPageObject(cy);
13
+ var editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
15
+ editorWithSmartLinks.switchAfterInsert('block');
16
+ blockSmartLinkRendersTestCase({
17
+ url: url
18
+ }).assertions(cy);
19
+
20
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
21
+ var renderer = editor.publish(ui);
22
+ renderer.expectContentReady();
23
+ blockSmartLinkRendersTestCase({
24
+ url: url
25
+ }).assertions(cy);
26
+ }
27
+ }
28
+ });
29
+ };
@@ -0,0 +1,30 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { EmbedCardPageObject, embedSmartLinkRendersTestCase } from '@atlaskit/smart-card/in-product';
3
+ import { EditorPageObject } from '../../../../page-objects/Editor';
4
+ import { EditorSmartLinkPageObject } from '../../../../page-objects/EditorSmartLink';
5
+ export var deleteEmbedSmartLinkTestCase = function deleteEmbedSmartLinkTestCase(_ref) {
6
+ var ui = _ref.ui,
7
+ url = _ref.url;
8
+ return new InProductTestCase({
9
+ title: 'able to delete an Embed Smart Link using floating toolbar',
10
+ id: 'delete-embed-smart-link',
11
+ assertions: function assertions(cy) {
12
+ var editor = new EditorPageObject(cy);
13
+ var editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ var embedCard = new EmbedCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('embed');
17
+ embedSmartLinkRendersTestCase({
18
+ url: url
19
+ }).assertions(cy);
20
+ editorWithSmartLinks.deleteSmartLink('embed');
21
+ embedCard.expectCardNotExists();
22
+
23
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
24
+ var renderer = editor.publish(ui);
25
+ renderer.expectContentReady();
26
+ embedCard.expectCardNotExists();
27
+ }
28
+ }
29
+ });
30
+ };
@@ -0,0 +1,61 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { EmbedCardPageObject, embedSmartLinkRendersTestCase } from '@atlaskit/smart-card/in-product';
3
+ import { EditorPageObject } from '../../../../page-objects/Editor';
4
+ import { EditorSmartLinkPageObject } from '../../../../page-objects/EditorSmartLink';
5
+ export var editEmbedSmartLinkTitleTestCase = function editEmbedSmartLinkTitleTestCase(_ref) {
6
+ var ui = _ref.ui,
7
+ url = _ref.url;
8
+ return new InProductTestCase({
9
+ title: 'editing an Embed Smart Link renders as Blue Link (title)',
10
+ id: 'embed-smart-link-edit-title',
11
+ assertions: function assertions(cy) {
12
+ var editor = new EditorPageObject(cy);
13
+ var editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ var embedCard = new EmbedCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('embed');
17
+ embedSmartLinkRendersTestCase({
18
+ url: url
19
+ }).assertions(cy);
20
+ editorWithSmartLinks.changeLinkLabel('Avocorne is watching you 🥑', 'embed');
21
+ embedCard.assertHrefRendered(url);
22
+ embedCard.expectCardNotExists();
23
+
24
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
25
+ var renderer = editor.publish(ui);
26
+ renderer.expectContentReady();
27
+ embedCard.assertHrefRendered(url);
28
+ embedCard.expectCardNotExists();
29
+ }
30
+ }
31
+ });
32
+ };
33
+ export var editEmbedSmartLinkUrlTestCase = function editEmbedSmartLinkUrlTestCase(_ref2) {
34
+ var ui = _ref2.ui,
35
+ url = _ref2.url;
36
+ return new InProductTestCase({
37
+ title: 'editing an Embed Smart Link renders as Blue Link (URL)',
38
+ id: 'embed-smart-link-edit',
39
+ assertions: function assertions(cy) {
40
+ var editor = new EditorPageObject(cy);
41
+ var editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
42
+ var embedCard = new EmbedCardPageObject(cy);
43
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
44
+ editorWithSmartLinks.switchAfterInsert('embed');
45
+ embedSmartLinkRendersTestCase({
46
+ url: url
47
+ }).assertions(cy);
48
+ var newUrl = 'https://avo.corne.com';
49
+ editorWithSmartLinks.changeLinkUrl(newUrl, 'embed');
50
+ embedCard.expectCardNotExists();
51
+ embedCard.assertHrefRendered(newUrl);
52
+
53
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
54
+ var renderer = editor.publish(ui);
55
+ renderer.expectContentReady();
56
+ embedCard.assertHrefRendered(newUrl);
57
+ embedCard.expectCardNotExists();
58
+ }
59
+ }
60
+ });
61
+ };
@@ -0,0 +1,10 @@
1
+ import { InProductTestCollection } from '@atlaskit/in-product-testing';
2
+ import { deleteEmbedSmartLinkTestCase } from './delete';
3
+ import { editEmbedSmartLinkTitleTestCase, editEmbedSmartLinkUrlTestCase } from './edit';
4
+ import { switchToEmbedSmartLinkTestCase } from './insert';
5
+ export var embedSmartLinksTestCollection = function embedSmartLinksTestCollection(opts) {
6
+ return new InProductTestCollection({
7
+ title: '@atlaskit/editor-core -> Embed Smart Links, happy paths',
8
+ testCases: [switchToEmbedSmartLinkTestCase(opts), editEmbedSmartLinkTitleTestCase(opts), editEmbedSmartLinkUrlTestCase(opts), deleteEmbedSmartLinkTestCase(opts)]
9
+ });
10
+ };