@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,316 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.WithPluginState = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _react = _interopRequireDefault(require("react"));
25
+
26
+ var _propTypes = _interopRequireDefault(require("prop-types"));
27
+
28
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
+
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
+
32
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
33
+
34
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
+
36
+ var DEFAULT_SAMPLING_RATE = 100;
37
+ var DEFAULT_SLOW_THRESHOLD = 4;
38
+
39
+ /**
40
+ * Wraps component in a high order component that watches state changes of given plugins
41
+ * and passes those states to the wrapped component.
42
+ *
43
+ * Example:
44
+ * <WithPluginState
45
+ * eventDispatcher={eventDispatcher}
46
+ * editorView={editorView}
47
+ * plugins={{
48
+ * hyperlink: hyperlinkPluginKey
49
+ * }}
50
+ * render={renderComponent}
51
+ * />
52
+ *
53
+ * renderComponent: ({ hyperlink }) => React.Component;
54
+ */
55
+ var WithPluginState = /*#__PURE__*/function (_React$Component) {
56
+ (0, _inherits2.default)(WithPluginState, _React$Component);
57
+
58
+ var _super = _createSuper(WithPluginState);
59
+
60
+ function WithPluginState() {
61
+ var _this;
62
+
63
+ (0, _classCallCheck2.default)(this, WithPluginState);
64
+
65
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
66
+ args[_key] = arguments[_key];
67
+ }
68
+
69
+ _this = _super.call.apply(_super, [this].concat(args));
70
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "listeners", {});
71
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "debounce", null);
72
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "notAppliedState", {});
73
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isSubscribed", false);
74
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", _this.getPluginsStates(_this.props.plugins, _this.getEditorView(_this.props, _this.context)));
75
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handlePluginStateChange", function (propName, pluginName, performanceOptions, skipEqualityCheck) {
76
+ return function (pluginState) {
77
+ // skipEqualityCheck is being used for old plugins since they are mutating plugin state instead of creating a new one
78
+ if (_this.state[propName] !== pluginState || skipEqualityCheck) {
79
+ _this.updateState({
80
+ stateSubset: (0, _defineProperty2.default)({}, propName, pluginState),
81
+ pluginName: pluginName,
82
+ performanceOptions: performanceOptions
83
+ });
84
+ }
85
+ };
86
+ });
87
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updateState", function (_ref) {
88
+ var stateSubset = _ref.stateSubset,
89
+ pluginName = _ref.pluginName,
90
+ performanceOptions = _ref.performanceOptions;
91
+ _this.notAppliedState = _objectSpread(_objectSpread({}, _this.notAppliedState), stateSubset);
92
+
93
+ if (_this.debounce) {
94
+ window.clearTimeout(_this.debounce);
95
+ }
96
+
97
+ var debounce = _this.props.debounce !== false ? function (fn) {
98
+ return window.setTimeout(fn, 0);
99
+ } : function (fn) {
100
+ return fn();
101
+ };
102
+ _this.debounce = debounce(function () {
103
+ // TODO: ED-15580
104
+ //const measure = `🦉${pluginName}::WithPluginState`;
105
+ //performanceOptions.trackingEnabled && startMeasure(measure);
106
+ // () => {
107
+ // performanceOptions.trackingEnabled &&
108
+ // stopMeasure(measure, (duration) => {
109
+ // // Each WithPluginState component will fire analytics event no more than once every `samplingLimit` times
110
+ // if (
111
+ // ++this.callsCount % performanceOptions.samplingRate === 0 &&
112
+ // duration > performanceOptions.slowThreshold
113
+ // ) {
114
+ // const editorView = this.getEditorView();
115
+ // this.dispatchAnalyticsEvent({
116
+ // action: ACTION.WITH_PLUGIN_STATE_CALLED,
117
+ // actionSubject: ACTION_SUBJECT.EDITOR,
118
+ // eventType: EVENT_TYPE.OPERATIONAL,
119
+ // attributes: {
120
+ // plugin: pluginName,
121
+ // duration,
122
+ // participants: getParticipantsCount(
123
+ // editorView && editorView.state,
124
+ // ),
125
+ // },
126
+ // });
127
+ // }
128
+ // });
129
+ //}
130
+ _this.setState(_this.notAppliedState);
131
+
132
+ _this.debounce = null;
133
+ _this.notAppliedState = {};
134
+ });
135
+ });
136
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onContextUpdate", function () {
137
+ _this.subscribe(_this.props);
138
+ });
139
+ return _this;
140
+ }
141
+
142
+ (0, _createClass2.default)(WithPluginState, [{
143
+ key: "getEditorView",
144
+ value: function getEditorView(maybeProps, maybeContext) {
145
+ var props = maybeProps || this.props;
146
+ var context = maybeContext || this.context;
147
+ return props.editorView || context && context.editorActions && context.editorActions._privateGetEditorView() || context && context.editorSharedConfig && context.editorSharedConfig.editorView;
148
+ }
149
+ }, {
150
+ key: "getEventDispatcher",
151
+ value: function getEventDispatcher(maybeProps) {
152
+ var props = maybeProps || this.props;
153
+ return props.eventDispatcher || this.context && this.context.editorActions && this.context.editorActions._privateGetEventDispatcher() || this.context && this.context.editorSharedConfig && this.context.editorSharedConfig.eventDispatcher;
154
+ }
155
+ }, {
156
+ key: "getPluginsStates",
157
+ value: // TODO: ED-15580
158
+ //private dispatchAnalyticsEvent = (payload: AnalyticsEventPayload) => {
159
+ // const eventDispatcher = this.getEventDispatcher();
160
+ // if (eventDispatcher) {
161
+ // const dispatch: AnalyticsDispatch = createDispatch(eventDispatcher);
162
+ // dispatch(analyticsEventKey, {
163
+ // payload,
164
+ // });
165
+ // }
166
+ //};
167
+ function getPluginsStates(plugins, editorView) {
168
+ if (!editorView || !plugins) {
169
+ return {};
170
+ }
171
+
172
+ var keys = Object.keys(plugins);
173
+ return keys.reduce(function (acc, propName) {
174
+ var pluginKey = plugins[propName];
175
+
176
+ if (!pluginKey) {
177
+ return acc;
178
+ }
179
+
180
+ acc[propName] = pluginKey.getState(editorView.state);
181
+ return acc;
182
+ }, {});
183
+ }
184
+ }, {
185
+ key: "subscribe",
186
+ value: function subscribe(props) {
187
+ var _this2 = this;
188
+
189
+ var plugins = props.plugins;
190
+ var eventDispatcher = this.getEventDispatcher(props);
191
+ var editorView = this.getEditorView(props);
192
+
193
+ if (!eventDispatcher || !editorView || this.isSubscribed) {
194
+ return;
195
+ } // TODO: ED-15580
196
+ //const analyticsPlugin = analyticsPluginKey.getState(editorView.state);
197
+ //const uiTracking =
198
+ // analyticsPlugin && analyticsPlugin.performanceTracking
199
+ // ? analyticsPlugin.performanceTracking.uiTracking || {}
200
+ // : {};
201
+ //const trackingEnabled = uiTracking.enabled === true;
202
+ //const samplingRate = uiTracking.samplingRate || DEFAULT_SAMPLING_RATE;
203
+ //const slowThreshold = uiTracking.slowThreshold || DEFAULT_SLOW_THRESHOLD;
204
+
205
+
206
+ var trackingEnabled = false;
207
+ var samplingRate = DEFAULT_SAMPLING_RATE;
208
+ var slowThreshold = DEFAULT_SLOW_THRESHOLD;
209
+ this.isSubscribed = true;
210
+ var pluginsStates = this.getPluginsStates(plugins, editorView);
211
+ this.setState(pluginsStates);
212
+ Object.keys(plugins).forEach(function (propName) {
213
+ var pluginKey = plugins[propName];
214
+
215
+ if (!pluginKey) {
216
+ return;
217
+ }
218
+
219
+ var pluginName = pluginKey.key;
220
+ var pluginState = pluginsStates[propName];
221
+ var isPluginWithSubscribe = pluginState && pluginState.subscribe;
222
+
223
+ var handler = _this2.handlePluginStateChange(propName, pluginName, {
224
+ samplingRate: samplingRate,
225
+ slowThreshold: slowThreshold,
226
+ trackingEnabled: trackingEnabled
227
+ }, isPluginWithSubscribe);
228
+
229
+ if (isPluginWithSubscribe) {
230
+ pluginState.subscribe(handler);
231
+ } else {
232
+ eventDispatcher.on(pluginKey.key, handler);
233
+ }
234
+
235
+ _this2.listeners[pluginKey.key] = {
236
+ handler: handler,
237
+ pluginKey: pluginKey
238
+ };
239
+ });
240
+ }
241
+ }, {
242
+ key: "unsubscribe",
243
+ value: function unsubscribe() {
244
+ var _this3 = this;
245
+
246
+ var eventDispatcher = this.getEventDispatcher();
247
+ var editorView = this.getEditorView();
248
+
249
+ if (!eventDispatcher || !editorView || !this.isSubscribed) {
250
+ return;
251
+ }
252
+
253
+ Object.keys(this.listeners).forEach(function (key) {
254
+ var pluginState = _this3.listeners[key].pluginKey.getState(editorView.state);
255
+
256
+ if (pluginState && pluginState.unsubscribe) {
257
+ pluginState.unsubscribe(_this3.listeners[key].handler);
258
+ } else {
259
+ eventDispatcher.off(key, _this3.listeners[key].handler);
260
+ }
261
+ });
262
+ this.listeners = [];
263
+ }
264
+ }, {
265
+ key: "subscribeToContextUpdates",
266
+ value: function subscribeToContextUpdates(context) {
267
+ if (context && context.editorActions) {
268
+ context.editorActions._privateSubscribe(this.onContextUpdate);
269
+ }
270
+ }
271
+ }, {
272
+ key: "unsubscribeFromContextUpdates",
273
+ value: function unsubscribeFromContextUpdates(context) {
274
+ if (context && context.editorActions) {
275
+ context.editorActions._privateUnsubscribe(this.onContextUpdate);
276
+ }
277
+ }
278
+ }, {
279
+ key: "componentDidMount",
280
+ value: function componentDidMount() {
281
+ this.subscribe(this.props);
282
+ this.subscribeToContextUpdates(this.context);
283
+ }
284
+ }, {
285
+ key: "UNSAFE_componentWillReceiveProps",
286
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
287
+ if (!this.isSubscribed) {
288
+ this.subscribe(nextProps);
289
+ }
290
+ }
291
+ }, {
292
+ key: "componentWillUnmount",
293
+ value: function componentWillUnmount() {
294
+ if (this.debounce) {
295
+ window.clearTimeout(this.debounce);
296
+ }
297
+
298
+ this.unsubscribeFromContextUpdates(this.context);
299
+ this.unsubscribe();
300
+ }
301
+ }, {
302
+ key: "render",
303
+ value: function render() {
304
+ var render = this.props.render;
305
+ return render(this.state);
306
+ }
307
+ }]);
308
+ return WithPluginState;
309
+ }(_react.default.Component);
310
+
311
+ exports.WithPluginState = WithPluginState;
312
+ (0, _defineProperty2.default)(WithPluginState, "displayName", 'WithPluginState');
313
+ (0, _defineProperty2.default)(WithPluginState, "contextTypes", {
314
+ editorActions: _propTypes.default.object,
315
+ editorSharedConfig: _propTypes.default.object
316
+ });
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,7 @@
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 const fundamentalsTestCollection = opts => new InProductTestCollection({
5
+ title: '@atlaskit/editor-core -> Editor fundamentals happy path tests',
6
+ testCases: [editorIsPresentTestCase(opts), editorTypingTestCase(opts)]
7
+ });
@@ -0,0 +1,12 @@
1
+ import { InProductTestCase } from '@atlaskit/in-product-testing';
2
+ import { EditorPageObject } from '../../../page-objects/Editor';
3
+ export const editorIsPresentTestCase = testOptions => new InProductTestCase({
4
+ testOptions,
5
+ title: 'content-area, title of Editor are visible',
6
+ id: 'editor-is-present',
7
+ assertions: cy => {
8
+ const editor = new EditorPageObject(cy);
9
+ editor.getTitleArea().should('be.visible');
10
+ editor.getEditorArea().should('be.visible');
11
+ }
12
+ });
@@ -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 const editorTypingTestCase = opts => new InProductTestCase({
5
+ title: 'typing in Editor works',
6
+ id: 'editor-typing',
7
+ assertions: cy => {
8
+ var _opts$ui;
9
+
10
+ const editor = new EditorPageObject(cy);
11
+ editor.getEditorArea().type('abcdef');
12
+ editor.getEditorArea().contains('abcdef');
13
+
14
+ if (!opts || !((_opts$ui = opts.ui) !== null && _opts$ui !== void 0 && _opts$ui.publishButton)) {
15
+ return;
16
+ }
17
+
18
+ const {
19
+ publishButton
20
+ } = opts.ui;
21
+ const renderer = new RendererPageObject(cy);
22
+ cy.get(publishButton).click();
23
+ renderer.getContent().contains('abcdef');
24
+ }
25
+ });
@@ -0,0 +1,29 @@
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 const addAltTextMediaTestCase = ({
6
+ ui,
7
+ fixtures
8
+ }) => new InProductTestCase({
9
+ title: 'adding alt text to Media works',
10
+ id: 'media-alt-text',
11
+ precondition: () => fixtures.length > 0,
12
+ assertions: cy => {
13
+ const editor = new EditorPageObject(cy);
14
+ const editorMedia = new EditorMediaPageObject(cy);
15
+ const mediaCard = new MediaCardPageObject(cy);
16
+ editor.upload(fixtures);
17
+ mediaCard.expectCardReady(fixtures.length);
18
+ const altText = 'Corne **loves** avocados';
19
+ editorMedia.addAltTextToImage(altText);
20
+ editorMedia.assertAltText(altText);
21
+
22
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
23
+ const renderer = editor.publish(ui);
24
+ renderer.expectContentReady();
25
+ renderer.expectMediaSingleRenders(fixtures.length);
26
+ mediaCard.assertAltText(altText);
27
+ }
28
+ }
29
+ });
@@ -0,0 +1,28 @@
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 const addCaptionMediaTestCase = ({
6
+ ui,
7
+ fixtures
8
+ }) => new InProductTestCase({
9
+ title: 'adding caption to Media works',
10
+ id: 'media-caption',
11
+ precondition: () => fixtures.length > 0,
12
+ assertions: cy => {
13
+ const editor = new EditorPageObject(cy);
14
+ const editorMedia = new EditorMediaPageObject(cy);
15
+ const mediaCard = new MediaCardPageObject(cy);
16
+ editor.upload(fixtures);
17
+ mediaCard.expectCardReady(fixtures.length);
18
+ const captionText = 'Corne loves avocados';
19
+ editorMedia.addCaptionToImage(captionText);
20
+
21
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
22
+ const renderer = editor.publish(ui);
23
+ renderer.expectContentReady();
24
+ renderer.expectMediaSingleRenders(fixtures.length);
25
+ editorMedia.assertCaptionText(captionText);
26
+ }
27
+ }
28
+ });
@@ -0,0 +1,8 @@
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 const mediaTestCollection = opts => new InProductTestCollection({
6
+ title: '@atlaskit/editor-core -> Media, happy paths',
7
+ testCases: [uploadMediaTestCase(opts), addAltTextMediaTestCase(opts), addCaptionMediaTestCase(opts)]
8
+ });
@@ -0,0 +1,23 @@
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 const uploadMediaTestCase = ({
5
+ ui,
6
+ fixtures
7
+ }) => new InProductTestCase({
8
+ title: 'media upload and publish works',
9
+ id: 'media-file-upload',
10
+ precondition: () => fixtures.length > 0,
11
+ assertions: cy => {
12
+ const editor = new EditorPageObject(cy);
13
+ const mediaCard = new MediaCardPageObject(cy);
14
+ editor.upload(fixtures);
15
+ mediaCard.expectCardReady(fixtures.length);
16
+
17
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
18
+ const renderer = editor.publish(ui);
19
+ renderer.expectContentReady();
20
+ renderer.expectMediaSingleRenders(fixtures.length);
21
+ }
22
+ }
23
+ });
@@ -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,29 @@
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 const deleteBlockSmartLinkTestCase = ({
6
+ ui,
7
+ url
8
+ }) => new InProductTestCase({
9
+ title: 'able to delete a Block Smart Link using floating toolbar',
10
+ id: 'delete-block-smart-link',
11
+ assertions: cy => {
12
+ const editor = new EditorPageObject(cy);
13
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ const blockCard = new BlockCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('block');
17
+ blockSmartLinkRendersTestCase({
18
+ url
19
+ }).assertions(cy);
20
+ editorWithSmartLinks.deleteSmartLink('block');
21
+ blockCard.expectCardNotExists();
22
+
23
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
24
+ const renderer = editor.publish(ui);
25
+ renderer.expectContentReady();
26
+ blockCard.expectCardNotExists();
27
+ }
28
+ }
29
+ });
@@ -0,0 +1,59 @@
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 const editBlockSmartLinkTitleTestCase = ({
6
+ ui,
7
+ url
8
+ }) => new InProductTestCase({
9
+ title: 'editing a Block Smart Link renders as Blue Link (title)',
10
+ id: 'block-smart-link-edit-title',
11
+ assertions: cy => {
12
+ const editor = new EditorPageObject(cy);
13
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ const blockCard = new BlockCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('block');
17
+ blockSmartLinkRendersTestCase({
18
+ 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
+ const renderer = editor.publish(ui);
26
+ renderer.expectContentReady();
27
+ blockCard.assertHrefRendered(url);
28
+ blockCard.expectCardNotExists();
29
+ }
30
+ }
31
+ });
32
+ export const editBlockSmartLinkUrlTestCase = ({
33
+ ui,
34
+ url
35
+ }) => new InProductTestCase({
36
+ title: 'editing a Block Smart Link renders as Blue Link (URL)',
37
+ id: 'block-smart-link-edit',
38
+ assertions: cy => {
39
+ const editor = new EditorPageObject(cy);
40
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
41
+ const blockCard = new BlockCardPageObject(cy);
42
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
43
+ editorWithSmartLinks.switchAfterInsert('block');
44
+ blockSmartLinkRendersTestCase({
45
+ url
46
+ }).assertions(cy);
47
+ const newUrl = 'https://avo.corne.com';
48
+ editorWithSmartLinks.changeLinkUrl(newUrl, 'block');
49
+ blockCard.expectCardNotExists();
50
+ blockCard.assertHrefRendered(newUrl);
51
+
52
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
53
+ const renderer = editor.publish(ui);
54
+ renderer.expectContentReady();
55
+ blockCard.assertHrefRendered(newUrl);
56
+ blockCard.expectCardNotExists();
57
+ }
58
+ }
59
+ });
@@ -0,0 +1,8 @@
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 const blockSmartLinksTestCollection = opts => new InProductTestCollection({
6
+ title: '@atlaskit/editor-core -> Block Smart Links, happy paths',
7
+ testCases: [switchToBlockSmartLinkTestCase(opts), editBlockSmartLinkTitleTestCase(opts), editBlockSmartLinkUrlTestCase(opts), deleteBlockSmartLinkTestCase(opts)]
8
+ });
@@ -0,0 +1,28 @@
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 const switchToBlockSmartLinkTestCase = ({
6
+ ui,
7
+ url
8
+ }) => new InProductTestCase({
9
+ title: 'switching to a Block Smart Link works',
10
+ id: 'switch-to-block',
11
+ assertions: cy => {
12
+ const editor = new EditorPageObject(cy);
13
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
15
+ editorWithSmartLinks.switchAfterInsert('block');
16
+ blockSmartLinkRendersTestCase({
17
+ url
18
+ }).assertions(cy);
19
+
20
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
21
+ const renderer = editor.publish(ui);
22
+ renderer.expectContentReady();
23
+ blockSmartLinkRendersTestCase({
24
+ url
25
+ }).assertions(cy);
26
+ }
27
+ }
28
+ });
@@ -0,0 +1,29 @@
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 const deleteEmbedSmartLinkTestCase = ({
6
+ ui,
7
+ url
8
+ }) => new InProductTestCase({
9
+ title: 'able to delete an Embed Smart Link using floating toolbar',
10
+ id: 'delete-embed-smart-link',
11
+ assertions: cy => {
12
+ const editor = new EditorPageObject(cy);
13
+ const editorWithSmartLinks = new EditorSmartLinkPageObject(cy, editor);
14
+ const embedCard = new EmbedCardPageObject(cy);
15
+ editorWithSmartLinks.insertSmartLinkByTyping(url);
16
+ editorWithSmartLinks.switchAfterInsert('embed');
17
+ embedSmartLinkRendersTestCase({
18
+ url
19
+ }).assertions(cy);
20
+ editorWithSmartLinks.deleteSmartLink('embed');
21
+ embedCard.expectCardNotExists();
22
+
23
+ if (ui !== null && ui !== void 0 && ui.publishButton) {
24
+ const renderer = editor.publish(ui);
25
+ renderer.expectContentReady();
26
+ embedCard.expectCardNotExists();
27
+ }
28
+ }
29
+ });