@atlaskit/editor-core 220.0.2 → 220.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/codemods/createRenameVariableTransform.ts +17 -0
  3. package/codemods/findImportFromPackage.ts +54 -0
  4. package/codemods/migrates/createJSXRenameVariableToNestedKeyTransform.ts +43 -0
  5. package/codemods/migrates/createUpdateEditorToMigrationComponent.ts +25 -0
  6. package/codemods/migrates/next-remove-allow-more-text-colors-prop.ts +1 -1
  7. package/codemods/migrates/remove-config-panel-width-prop.ts +1 -1
  8. package/codemods/migrates/rename-editor-to-editor-migration-component.ts +1 -22
  9. package/codemods/migrates/rename-smartlinks-prop.ts +1 -40
  10. package/codemods/migrates/rename-unsafe-allowUndoRedoButtons-prop.ts +1 -1
  11. package/codemods/migrates/rename-unsafe-cards-prop.ts +1 -1
  12. package/codemods/utils.ts +0 -67
  13. package/dist/cjs/actions/isEmptyParagraph.js +12 -0
  14. package/dist/cjs/actions/temp-is-empty-document.js +2 -9
  15. package/dist/cjs/create-editor/ReactEditorView/useDispatchTransaction.js +2 -1
  16. package/dist/cjs/create-editor/ReactEditorView.js +6 -4
  17. package/dist/cjs/create-editor/addMetadataAttributes.js +36 -0
  18. package/dist/cjs/create-editor/create-editor.js +0 -62
  19. package/dist/cjs/create-editor/create-plugins-list.js +2 -15
  20. package/dist/cjs/create-editor/create-schema.js +4 -35
  21. package/dist/cjs/create-editor/createErrorReporter.js +14 -0
  22. package/dist/cjs/create-editor/createPMPlugins.js +39 -0
  23. package/dist/cjs/create-editor/fixExcludes.js +22 -0
  24. package/dist/cjs/create-editor/getScrollGutterOptions.js +19 -0
  25. package/dist/cjs/create-editor/sortByRank.js +9 -0
  26. package/dist/cjs/entry-points/test-utils.js +4 -2
  27. package/dist/cjs/isElementBySelectorInDocument.js +15 -0
  28. package/dist/cjs/setTextSelection.js +12 -0
  29. package/dist/cjs/test-utils.js +1 -18
  30. package/dist/cjs/ui/Addon/checkForModal.js +25 -0
  31. package/dist/cjs/ui/Addon/click-area-helper.js +5 -52
  32. package/dist/cjs/ui/Addon/outsideProsemirrorEditorClickHandler.js +35 -0
  33. package/dist/cjs/ui/Appearance/Chromeless.js +4 -16
  34. package/dist/cjs/ui/Appearance/ChromelessEditorContainer.js +19 -0
  35. package/dist/cjs/ui/Appearance/FullPage/CustomToolbarWrapperMigration.js +13 -0
  36. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +5 -2
  37. package/dist/cjs/ui/Appearance/FullPage/MainToolbar.js +2 -15
  38. package/dist/cjs/ui/Appearance/FullPage/MainToolbarIconBeforeMigration.js +13 -0
  39. package/dist/cjs/ui/Appearance/FullPage/NonCustomToolbarWrapperMigration.js +13 -0
  40. package/dist/cjs/ui/EditorContentContainer/styles/mentions.js +19 -0
  41. package/dist/cjs/utils/combineQuickInsertProviders.js +16 -0
  42. package/dist/cjs/utils/extensions.js +0 -11
  43. package/dist/cjs/utils/getNodesVisibleInViewport.js +3 -12
  44. package/dist/cjs/utils/isNodeVisible.js +15 -0
  45. package/dist/cjs/utils/prepare-quick-insert-provider.js +2 -1
  46. package/dist/cjs/utils/validNode.js +14 -0
  47. package/dist/cjs/utils/validateNodes.js +3 -11
  48. package/dist/cjs/version-wrapper.js +1 -1
  49. package/dist/es2019/actions/isEmptyParagraph.js +6 -0
  50. package/dist/es2019/actions/temp-is-empty-document.js +1 -6
  51. package/dist/es2019/create-editor/ReactEditorView/useDispatchTransaction.js +2 -1
  52. package/dist/es2019/create-editor/ReactEditorView.js +3 -1
  53. package/dist/es2019/create-editor/addMetadataAttributes.js +29 -0
  54. package/dist/es2019/create-editor/create-editor.js +0 -53
  55. package/dist/es2019/create-editor/create-plugins-list.js +1 -13
  56. package/dist/es2019/create-editor/create-schema.js +2 -31
  57. package/dist/es2019/create-editor/createErrorReporter.js +8 -0
  58. package/dist/es2019/create-editor/createPMPlugins.js +30 -0
  59. package/dist/es2019/create-editor/fixExcludes.js +12 -0
  60. package/dist/es2019/create-editor/getScrollGutterOptions.js +13 -0
  61. package/dist/es2019/create-editor/sortByRank.js +3 -0
  62. package/dist/es2019/entry-points/test-utils.js +3 -1
  63. package/dist/es2019/isElementBySelectorInDocument.js +9 -0
  64. package/dist/es2019/setTextSelection.js +8 -0
  65. package/dist/es2019/test-utils.js +0 -18
  66. package/dist/es2019/ui/Addon/checkForModal.js +19 -0
  67. package/dist/es2019/ui/Addon/click-area-helper.js +2 -53
  68. package/dist/es2019/ui/Addon/outsideProsemirrorEditorClickHandler.js +33 -0
  69. package/dist/es2019/ui/Appearance/Chromeless.js +2 -12
  70. package/dist/es2019/ui/Appearance/ChromelessEditorContainer.js +12 -0
  71. package/dist/es2019/ui/Appearance/FullPage/CustomToolbarWrapperMigration.js +5 -0
  72. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +4 -1
  73. package/dist/es2019/ui/Appearance/FullPage/MainToolbar.js +1 -8
  74. package/dist/es2019/ui/Appearance/FullPage/MainToolbarIconBeforeMigration.js +5 -0
  75. package/dist/es2019/ui/Appearance/FullPage/NonCustomToolbarWrapperMigration.js +5 -0
  76. package/dist/es2019/ui/EditorContentContainer/styles/mentions.js +19 -0
  77. package/dist/es2019/utils/combineQuickInsertProviders.js +11 -0
  78. package/dist/es2019/utils/extensions.js +0 -11
  79. package/dist/es2019/utils/getNodesVisibleInViewport.js +1 -9
  80. package/dist/es2019/utils/isNodeVisible.js +9 -0
  81. package/dist/es2019/utils/prepare-quick-insert-provider.js +2 -1
  82. package/dist/es2019/utils/validNode.js +8 -0
  83. package/dist/es2019/utils/validateNodes.js +1 -8
  84. package/dist/es2019/version-wrapper.js +1 -1
  85. package/dist/esm/actions/isEmptyParagraph.js +6 -0
  86. package/dist/esm/actions/temp-is-empty-document.js +1 -6
  87. package/dist/esm/create-editor/ReactEditorView/useDispatchTransaction.js +2 -1
  88. package/dist/esm/create-editor/ReactEditorView.js +3 -1
  89. package/dist/esm/create-editor/addMetadataAttributes.js +29 -0
  90. package/dist/esm/create-editor/create-editor.js +0 -58
  91. package/dist/esm/create-editor/create-plugins-list.js +1 -13
  92. package/dist/esm/create-editor/create-schema.js +2 -31
  93. package/dist/esm/create-editor/createErrorReporter.js +8 -0
  94. package/dist/esm/create-editor/createPMPlugins.js +32 -0
  95. package/dist/esm/create-editor/fixExcludes.js +16 -0
  96. package/dist/esm/create-editor/getScrollGutterOptions.js +13 -0
  97. package/dist/esm/create-editor/sortByRank.js +3 -0
  98. package/dist/esm/entry-points/test-utils.js +3 -1
  99. package/dist/esm/isElementBySelectorInDocument.js +9 -0
  100. package/dist/esm/setTextSelection.js +6 -0
  101. package/dist/esm/test-utils.js +0 -16
  102. package/dist/esm/ui/Addon/checkForModal.js +19 -0
  103. package/dist/esm/ui/Addon/click-area-helper.js +2 -49
  104. package/dist/esm/ui/Addon/outsideProsemirrorEditorClickHandler.js +29 -0
  105. package/dist/esm/ui/Appearance/Chromeless.js +2 -14
  106. package/dist/esm/ui/Appearance/ChromelessEditorContainer.js +14 -0
  107. package/dist/esm/ui/Appearance/FullPage/CustomToolbarWrapperMigration.js +7 -0
  108. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +4 -1
  109. package/dist/esm/ui/Appearance/FullPage/MainToolbar.js +1 -14
  110. package/dist/esm/ui/Appearance/FullPage/MainToolbarIconBeforeMigration.js +7 -0
  111. package/dist/esm/ui/Appearance/FullPage/NonCustomToolbarWrapperMigration.js +7 -0
  112. package/dist/esm/ui/EditorContentContainer/styles/mentions.js +19 -0
  113. package/dist/esm/utils/combineQuickInsertProviders.js +10 -0
  114. package/dist/esm/utils/extensions.js +0 -10
  115. package/dist/esm/utils/getNodesVisibleInViewport.js +1 -9
  116. package/dist/esm/utils/isNodeVisible.js +9 -0
  117. package/dist/esm/utils/prepare-quick-insert-provider.js +2 -1
  118. package/dist/esm/utils/validNode.js +8 -0
  119. package/dist/esm/utils/validateNodes.js +1 -8
  120. package/dist/esm/version-wrapper.js +1 -1
  121. package/dist/types/actions/isEmptyParagraph.d.ts +5 -0
  122. package/dist/types/actions/temp-is-empty-document.d.ts +0 -4
  123. package/dist/types/composable-editor/editor-internal.d.ts +1 -1
  124. package/dist/types/create-editor/ReactEditorView.d.ts +2 -2
  125. package/dist/types/create-editor/addMetadataAttributes.d.ts +16 -0
  126. package/dist/types/create-editor/create-editor.d.ts +1 -17
  127. package/dist/types/create-editor/create-plugins-list.d.ts +1 -4
  128. package/dist/types/create-editor/create-schema.d.ts +0 -15
  129. package/dist/types/create-editor/create-universal-preset.d.ts +1 -1
  130. package/dist/types/create-editor/createErrorReporter.d.ts +3 -0
  131. package/dist/types/create-editor/createPMPlugins.d.ts +3 -0
  132. package/dist/types/create-editor/fixExcludes.d.ts +6 -0
  133. package/dist/types/create-editor/get-ui-component.d.ts +1 -1
  134. package/dist/types/create-editor/getScrollGutterOptions.d.ts +3 -0
  135. package/dist/types/create-editor/sortByRank.d.ts +5 -0
  136. package/dist/types/editor.d.ts +1 -1
  137. package/dist/types/entry-points/editor.d.ts +10 -1
  138. package/dist/types/entry-points/test-utils.d.ts +5 -2
  139. package/dist/types/index.d.ts +3 -1
  140. package/dist/types/isElementBySelectorInDocument.d.ts +7 -0
  141. package/dist/types/presets/universal.d.ts +1 -2
  142. package/dist/types/setTextSelection.d.ts +2 -0
  143. package/dist/types/test-utils.d.ts +1 -10
  144. package/dist/types/types/with-appearance-component.d.ts +1 -1
  145. package/dist/types/ui/Addon/ClickAreaBlock/contentComponentWrapper.d.ts +1 -1
  146. package/dist/types/ui/Addon/checkForModal.d.ts +10 -0
  147. package/dist/types/ui/Addon/click-area-helper.d.ts +0 -11
  148. package/dist/types/ui/Addon/outsideProsemirrorEditorClickHandler.d.ts +2 -0
  149. package/dist/types/ui/Appearance/Chromeless.d.ts +2 -10
  150. package/dist/types/ui/Appearance/ChromelessEditorContainer.d.ts +9 -0
  151. package/dist/types/ui/Appearance/Comment/Comment.d.ts +1 -1
  152. package/dist/types/ui/Appearance/FullPage/CustomToolbarWrapperMigration.d.ts +4 -0
  153. package/dist/types/ui/Appearance/FullPage/FullPage.d.ts +1 -1
  154. package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +1 -1
  155. package/dist/types/ui/Appearance/FullPage/FullPageToolbar.d.ts +1 -1
  156. package/dist/types/ui/Appearance/FullPage/FullPageToolbarNext.d.ts +1 -1
  157. package/dist/types/ui/Appearance/FullPage/MainToolbar.d.ts +0 -10
  158. package/dist/types/ui/Appearance/FullPage/MainToolbarIconBeforeMigration.d.ts +4 -0
  159. package/dist/types/ui/Appearance/FullPage/NonCustomToolbarWrapperMigration.d.ts +4 -0
  160. package/dist/types/utils/combineQuickInsertProviders.d.ts +2 -0
  161. package/dist/types/utils/extensions.d.ts +0 -1
  162. package/dist/types/utils/getNodesVisibleInViewport.d.ts +0 -5
  163. package/dist/types/utils/isNodeVisible.d.ts +5 -0
  164. package/dist/types/utils/validNode.d.ts +2 -0
  165. package/dist/types/utils/validateNodes.d.ts +0 -1
  166. package/dist/types-ts4.5/actions/isEmptyParagraph.d.ts +5 -0
  167. package/dist/types-ts4.5/actions/temp-is-empty-document.d.ts +0 -4
  168. package/dist/types-ts4.5/composable-editor/editor-internal.d.ts +1 -1
  169. package/dist/types-ts4.5/create-editor/ReactEditorView.d.ts +2 -2
  170. package/dist/types-ts4.5/create-editor/addMetadataAttributes.d.ts +16 -0
  171. package/dist/types-ts4.5/create-editor/create-editor.d.ts +1 -17
  172. package/dist/types-ts4.5/create-editor/create-plugins-list.d.ts +1 -4
  173. package/dist/types-ts4.5/create-editor/create-schema.d.ts +0 -15
  174. package/dist/types-ts4.5/create-editor/create-universal-preset.d.ts +1 -1
  175. package/dist/types-ts4.5/create-editor/createErrorReporter.d.ts +3 -0
  176. package/dist/types-ts4.5/create-editor/createPMPlugins.d.ts +3 -0
  177. package/dist/types-ts4.5/create-editor/fixExcludes.d.ts +6 -0
  178. package/dist/types-ts4.5/create-editor/get-ui-component.d.ts +1 -1
  179. package/dist/types-ts4.5/create-editor/getScrollGutterOptions.d.ts +3 -0
  180. package/dist/types-ts4.5/create-editor/sortByRank.d.ts +5 -0
  181. package/dist/types-ts4.5/editor.d.ts +1 -1
  182. package/dist/types-ts4.5/entry-points/editor.d.ts +10 -1
  183. package/dist/types-ts4.5/entry-points/test-utils.d.ts +5 -2
  184. package/dist/types-ts4.5/index.d.ts +3 -1
  185. package/dist/types-ts4.5/isElementBySelectorInDocument.d.ts +7 -0
  186. package/dist/types-ts4.5/presets/universal.d.ts +1 -2
  187. package/dist/types-ts4.5/setTextSelection.d.ts +2 -0
  188. package/dist/types-ts4.5/test-utils.d.ts +1 -10
  189. package/dist/types-ts4.5/types/with-appearance-component.d.ts +1 -1
  190. package/dist/types-ts4.5/ui/Addon/ClickAreaBlock/contentComponentWrapper.d.ts +1 -1
  191. package/dist/types-ts4.5/ui/Addon/checkForModal.d.ts +10 -0
  192. package/dist/types-ts4.5/ui/Addon/click-area-helper.d.ts +0 -11
  193. package/dist/types-ts4.5/ui/Addon/outsideProsemirrorEditorClickHandler.d.ts +2 -0
  194. package/dist/types-ts4.5/ui/Appearance/Chromeless.d.ts +2 -10
  195. package/dist/types-ts4.5/ui/Appearance/ChromelessEditorContainer.d.ts +9 -0
  196. package/dist/types-ts4.5/ui/Appearance/Comment/Comment.d.ts +1 -1
  197. package/dist/types-ts4.5/ui/Appearance/FullPage/CustomToolbarWrapperMigration.d.ts +4 -0
  198. package/dist/types-ts4.5/ui/Appearance/FullPage/FullPage.d.ts +1 -1
  199. package/dist/types-ts4.5/ui/Appearance/FullPage/FullPageContentArea.d.ts +1 -1
  200. package/dist/types-ts4.5/ui/Appearance/FullPage/FullPageToolbar.d.ts +1 -1
  201. package/dist/types-ts4.5/ui/Appearance/FullPage/FullPageToolbarNext.d.ts +1 -1
  202. package/dist/types-ts4.5/ui/Appearance/FullPage/MainToolbar.d.ts +0 -10
  203. package/dist/types-ts4.5/ui/Appearance/FullPage/MainToolbarIconBeforeMigration.d.ts +4 -0
  204. package/dist/types-ts4.5/ui/Appearance/FullPage/NonCustomToolbarWrapperMigration.d.ts +4 -0
  205. package/dist/types-ts4.5/utils/combineQuickInsertProviders.d.ts +2 -0
  206. package/dist/types-ts4.5/utils/extensions.d.ts +0 -1
  207. package/dist/types-ts4.5/utils/getNodesVisibleInViewport.d.ts +0 -5
  208. package/dist/types-ts4.5/utils/isNodeVisible.d.ts +5 -0
  209. package/dist/types-ts4.5/utils/validNode.d.ts +2 -0
  210. package/dist/types-ts4.5/utils/validateNodes.d.ts +0 -1
  211. package/package.json +11 -11
  212. package/dist/cjs/types/index.js +0 -1
  213. package/dist/es2019/types/index.js +0 -0
  214. package/dist/esm/types/index.js +0 -0
  215. package/dist/types/types/index.d.ts +0 -9
  216. package/dist/types-ts4.5/types/index.d.ts +0 -9
@@ -82,6 +82,25 @@ var mentionNodeStyles = exports.mentionNodeStyles = (0, _react.css)({
82
82
  '&:active': {
83
83
  background: "var(--ds-background-brand-bold-pressed, #144794)"
84
84
  }
85
+ },
86
+ // Disabled variant — mirrors `MentionType.DISABLED` in
87
+ // `packages/elements/mention/src/components/Mention/PrimitiveMention.tsx`.
88
+ // Hover / active states are intentionally flat: a disabled chip should
89
+ // not respond to mouse interaction. The chip is still keyboard-focusable
90
+ // (see `MentionNodeView.setClassList`) so the focus ring is still
91
+ // allowed to render via `:focus-visible`.
92
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
93
+ '.editor-mention-primitive.mention-disabled': {
94
+ background: "var(--ds-background-disabled, #0515240F)",
95
+ border: '1px solid transparent',
96
+ color: "var(--ds-text-disabled, #080F214A)",
97
+ cursor: 'default',
98
+ '&:hover': {
99
+ background: "var(--ds-background-disabled, #0515240F)"
100
+ },
101
+ '&:active': {
102
+ background: "var(--ds-background-disabled, #0515240F)"
103
+ }
85
104
  }
86
105
  });
87
106
 
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.combineQuickInsertProviders = combineQuickInsertProviders;
7
+ var _providerHelpers = require("@atlaskit/editor-common/provider-helpers");
8
+ function combineQuickInsertProviders(quickInsertProviders) {
9
+ var _combineProviders = (0, _providerHelpers.combineProviders)(quickInsertProviders),
10
+ invokeList = _combineProviders.invokeList;
11
+ return {
12
+ getItems: function getItems() {
13
+ return invokeList('getItems');
14
+ }
15
+ };
16
+ }
@@ -4,7 +4,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.combineQuickInsertProviders = combineQuickInsertProviders;
8
7
  exports.extensionProviderToQuickInsertProvider = extensionProviderToQuickInsertProvider;
9
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
@@ -13,7 +12,6 @@ var _react = _interopRequireDefault(require("react"));
13
12
  var _reactLoadable = _interopRequireDefault(require("react-loadable"));
14
13
  var _analytics = require("@atlaskit/editor-common/analytics");
15
14
  var _extensions = require("@atlaskit/editor-common/extensions");
16
- var _providerHelpers = require("@atlaskit/editor-common/provider-helpers");
17
15
  var _analytics2 = require("@atlaskit/editor-common/utils/analytics");
18
16
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
19
17
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -175,13 +173,4 @@ function _extensionProviderToQuickInsertProvider() {
175
173
  }, _callee);
176
174
  }));
177
175
  return _extensionProviderToQuickInsertProvider.apply(this, arguments);
178
- }
179
- function combineQuickInsertProviders(quickInsertProviders) {
180
- var _combineProviders = (0, _providerHelpers.combineProviders)(quickInsertProviders),
181
- invokeList = _combineProviders.invokeList;
182
- return {
183
- getItems: function getItems() {
184
- return invokeList('getItems');
185
- }
186
- };
187
176
  }
@@ -3,17 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isNodeVisible = exports.getNodesVisibleInViewport = void 0;
7
- /**
8
- * Check if a DOM element is visible within the viewport. We deem a node visible if the top left corner coordinate is within the viewport.
9
- * This may not look visible, and may include a node that looks below the fold – but it's more than 0 pixels within the viewport.
10
- */
11
- var isNodeVisible = exports.isNodeVisible = function isNodeVisible(node) {
12
- var rect = node.getBoundingClientRect();
13
- var isVisible = rect.x >= 0 && rect.x < window.innerWidth && rect.y >= 0 && rect.y < window.innerHeight;
14
- return isVisible;
15
- };
16
-
6
+ exports.getNodesVisibleInViewport = void 0;
7
+ var _isNodeVisible = require("./isNodeVisible");
17
8
  /**
18
9
  * Get visible nodes in viewport by looping through the first N nodes (MAX_NODES_TO_COUNT)
19
10
  * in the editor DOM and counting the node types that are visible.
@@ -30,7 +21,7 @@ var getNodesVisibleInViewport = exports.getNodesVisibleInViewport = function get
30
21
  if (!type) {
31
22
  continue;
32
23
  }
33
- var isVisible = isNodeVisible(node);
24
+ var isVisible = (0, _isNodeVisible.isNodeVisible)(node);
34
25
 
35
26
  // Not a visible node, end counting.
36
27
  if (!isVisible) {
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isNodeVisible = void 0;
7
+ /**
8
+ * Check if a DOM element is visible within the viewport. We deem a node visible if the top left corner coordinate is within the viewport.
9
+ * This may not look visible, and may include a node that looks below the fold – but it's more than 0 pixels within the viewport.
10
+ */
11
+ var isNodeVisible = exports.isNodeVisible = function isNodeVisible(node) {
12
+ var rect = node.getBoundingClientRect();
13
+ var isVisible = rect.x >= 0 && rect.x < window.innerWidth && rect.y >= 0 && rect.y < window.innerHeight;
14
+ return isVisible;
15
+ };
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = prepareQuickInsertProvider;
7
+ var _combineQuickInsertProviders = require("./combineQuickInsertProviders");
7
8
  var _extensions = require("./extensions");
8
9
  /**
9
10
  *
@@ -18,5 +19,5 @@ var _extensions = require("./extensions");
18
19
  function prepareQuickInsertProvider(editorActions, apiRef, extensionProvider, quickInsert, createAnalyticsEvent) {
19
20
  var quickInsertProvider = quickInsert && typeof quickInsert !== 'boolean' && quickInsert.provider;
20
21
  var extensionQuickInsertProvider = extensionProvider && (0, _extensions.extensionProviderToQuickInsertProvider)(extensionProvider, editorActions, apiRef, createAnalyticsEvent);
21
- return quickInsertProvider && extensionQuickInsertProvider ? Promise.resolve((0, _extensions.combineQuickInsertProviders)([quickInsertProvider, extensionQuickInsertProvider])) : quickInsertProvider || extensionQuickInsertProvider;
22
+ return quickInsertProvider && extensionQuickInsertProvider ? Promise.resolve((0, _combineQuickInsertProviders.combineQuickInsertProviders)([quickInsertProvider, extensionQuickInsertProvider])) : quickInsertProvider || extensionQuickInsertProvider;
22
23
  }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validNode = void 0;
7
+ var validNode = exports.validNode = function validNode(node) {
8
+ try {
9
+ node.check();
10
+ } catch (error) {
11
+ return false;
12
+ }
13
+ return true;
14
+ };
@@ -3,17 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.validateNodes = exports.validNode = void 0;
7
- var validNode = exports.validNode = function validNode(node) {
8
- try {
9
- node.check();
10
- } catch (error) {
11
- return false;
12
- }
13
- return true;
14
- };
15
-
6
+ exports.validateNodes = void 0;
7
+ var _validNode = require("./validNode");
16
8
  /** Validates prosemirror nodes, and returns true only if all nodes are valid */
17
9
  var validateNodes = exports.validateNodes = function validateNodes(nodes) {
18
- return nodes.every(validNode);
10
+ return nodes.every(_validNode.validNode);
19
11
  };
@@ -5,4 +5,4 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.version = exports.name = void 0;
7
7
  var name = exports.name = "@atlaskit/editor-core";
8
- var version = exports.version = "220.0.1";
8
+ var version = exports.version = "220.0.3";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Checks if node is an empty paragraph.
3
+ */
4
+ export function isEmptyParagraph(node) {
5
+ return !!node && node.type.name === 'paragraph' && !node.childCount;
6
+ }
@@ -5,12 +5,7 @@
5
5
  * help decouple it from editor-common
6
6
  */
7
7
 
8
- /**
9
- * Checks if node is an empty paragraph.
10
- */
11
- export function isEmptyParagraph(node) {
12
- return !!node && node.type.name === 'paragraph' && !node.childCount;
13
- }
8
+ import { isEmptyParagraph } from './isEmptyParagraph';
14
9
 
15
10
  /**
16
11
  * Checks if a node looks like an empty document
@@ -6,7 +6,8 @@ import { startMeasure, stopMeasure } from '@atlaskit/editor-common/performance-m
6
6
  import { findChangedNodesFromTransaction } from '../../utils/findChangedNodesFromTransaction';
7
7
  import { freezeUnsafeTransactionProperties } from '../../utils/performance/safer-transactions';
8
8
  import { EVENT_NAME_ON_CHANGE } from '../../utils/performance/track-transactions';
9
- import { validateNodes, validNode } from '../../utils/validateNodes';
9
+ import { validateNodes } from '../../utils/validateNodes';
10
+ import { validNode } from '../../utils/validNode';
10
11
  export const useDispatchTransaction = ({
11
12
  onChange,
12
13
  dispatchAnalyticsEvent,
@@ -36,9 +36,11 @@ import { isFullPage } from '../utils/is-full-page';
36
36
  import { RenderTracking } from '../utils/performance/components/RenderTracking';
37
37
  import measurements from '../utils/performance/measure-enum';
38
38
  import { PROSEMIRROR_RENDERED_DEGRADED_SEVERITY_THRESHOLD, PROSEMIRROR_RENDERED_NORMAL_SEVERITY_THRESHOLD } from './consts';
39
- import { createErrorReporter, createPMPlugins, processPluginsList } from './create-editor';
39
+ import { processPluginsList } from './create-editor';
40
40
  import createPluginsList from './create-plugins-list';
41
41
  import { createSchema } from './create-schema';
42
+ import { createErrorReporter } from './createErrorReporter';
43
+ import { createPMPlugins } from './createPMPlugins';
42
44
  import { filterPluginsForReconfigure } from './filter-plugins-for-reconfigure';
43
45
  import { editorMessages } from './messages';
44
46
  import { focusEditorElement } from './ReactEditorView/focusEditorElement';
@@ -0,0 +1,29 @@
1
+ import { createProseMirrorMetadata } from '@atlaskit/editor-common/prosemirror-dom-metadata';
2
+ /**
3
+ * 🧱 Internal Helper Function: Editor FE Platform
4
+ *
5
+ * Adds generic metadata attributes to a DOMOutputSpec array based on the provided node or mark.
6
+ * This function ensures that the DOMOutputSpec is annotated with ProseMirror-specific metadata.
7
+ *
8
+ * @param {object} params - Parameters object.
9
+ * @param {PMNode | PMMark} params.nodeOrMark - The ProseMirror node or mark to extract metadata from.
10
+ * @param {DOMOutputSpec} params.domSpec - The DOMOutputSpec to which attributes will be added.
11
+ * @returns {DOMOutputSpec} The modified DOMOutputSpec with additional metadata.
12
+ */
13
+ export const addMetadataAttributes = ({
14
+ nodeOrMark,
15
+ domSpec
16
+ }) => {
17
+ if (!Array.isArray(domSpec)) {
18
+ return domSpec;
19
+ }
20
+ const maybeDefinedAttributes = domSpec[1];
21
+ const metadata = createProseMirrorMetadata(nodeOrMark);
22
+ const hasDefinedAttributes = typeof maybeDefinedAttributes === 'object' && !Array.isArray(maybeDefinedAttributes);
23
+ if (hasDefinedAttributes) {
24
+ domSpec[1] = Object.assign(maybeDefinedAttributes, metadata);
25
+ } else {
26
+ domSpec.splice(1, 0, metadata);
27
+ }
28
+ return domSpec;
29
+ };
@@ -1,23 +1,3 @@
1
- import { ErrorReporter } from '@atlaskit/editor-common/error-reporter';
2
- import { sortByOrder } from '@atlaskit/editor-common/legacy-rank-plugins';
3
- import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
4
- import { createEditorNativeAnchorSupportPlugin } from './editorNativeAnchorSupportPlugin';
5
- import { createEditorStateNotificationPlugin } from './editorStateNotificationPlugin';
6
- export function sortByRank(a, b) {
7
- return a.rank - b.rank;
8
- }
9
- export function fixExcludes(marks) {
10
- const markKeys = Object.keys(marks);
11
- const markGroups = new Set(markKeys.map(mark => marks[mark].group));
12
- markKeys.forEach(markKey => {
13
- const mark = marks[markKey];
14
- if (mark.excludes) {
15
- // eslint-disable-next-line @atlassian/perf-linting/no-expensive-split-replace -- Ignored via go/ees017 (to be fixed)
16
- mark.excludes = mark.excludes.split(' ').filter(group => markGroups.has(group)).join(' ');
17
- }
18
- });
19
- return marks;
20
- }
21
1
  export function processPluginsList(plugins) {
22
2
  /**
23
3
  * First pass to collect pluginsOptions
@@ -83,37 +63,4 @@ export function processPluginsList(plugins) {
83
63
  secondaryToolbarComponents: [],
84
64
  onEditorViewStateUpdatedCallbacks: []
85
65
  });
86
- }
87
- export function createPMPlugins(config) {
88
- const {
89
- editorConfig
90
- } = config;
91
- const pmPlugins = editorConfig.pmPlugins.sort(sortByOrder('plugins')).map(({
92
- plugin
93
- }) => plugin({
94
- schema: config.schema,
95
- dispatch: config.dispatch,
96
- eventDispatcher: config.eventDispatcher,
97
- providerFactory: config.providerFactory,
98
- errorReporter: config.errorReporter,
99
- portalProviderAPI: config.portalProviderAPI,
100
- nodeViewPortalProviderAPI: config.nodeViewPortalProviderAPI,
101
- dispatchAnalyticsEvent: config.dispatchAnalyticsEvent,
102
- featureFlags: config.featureFlags || {},
103
- getIntl: config.getIntl
104
- })).filter(plugin => typeof plugin !== 'undefined');
105
- if (expValEquals('platform_editor_native_anchor_with_dnd', 'isEnabled', true)) {
106
- pmPlugins.push(createEditorNativeAnchorSupportPlugin(config.schema));
107
- }
108
- if (config.onEditorStateUpdated !== undefined) {
109
- return [createEditorStateNotificationPlugin(config.onEditorStateUpdated, config.editorConfig.onEditorViewStateUpdatedCallbacks), ...pmPlugins];
110
- }
111
- return pmPlugins;
112
- }
113
- export function createErrorReporter(errorReporterHandler) {
114
- const errorReporter = new ErrorReporter();
115
- if (errorReporterHandler) {
116
- errorReporter.handler = errorReporterHandler;
117
- }
118
- return errorReporter;
119
66
  }
@@ -1,21 +1,9 @@
1
1
  import { createFeatureFlagsFromProps } from '../utils/feature-flags-from-props';
2
- import { isFullPage as fullPageCheck } from '../utils/is-full-page';
2
+ import { getScrollGutterOptions } from './getScrollGutterOptions';
3
3
  const isCodeBlockAllowed = options => {
4
4
  const exclude = options && options.allowBlockType && options.allowBlockType.exclude ? options.allowBlockType.exclude : [];
5
5
  return exclude.indexOf('codeBlock') === -1;
6
6
  };
7
- export function getScrollGutterOptions(props) {
8
- const {
9
- appearance
10
- } = props;
11
- if (fullPageCheck(appearance)) {
12
- // Full Page appearance uses a scrollable div wrapper.
13
- return {
14
- getScrollElement: () => document.querySelector('.fabric-editor-popup-scroll-parent')
15
- };
16
- }
17
- return undefined;
18
- }
19
7
  export function getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEvent
20
8
  // Omit placeholder since it's an existing prop in `DefaultPresetPluginOptions` and will get overridden there
21
9
  ) {
@@ -1,37 +1,8 @@
1
1
  import { sanitizeNodes } from '@atlaskit/adf-schema/schema';
2
2
  import { sortByOrder } from '@atlaskit/editor-common/legacy-rank-plugins';
3
- import { createProseMirrorMetadata } from '@atlaskit/editor-common/prosemirror-dom-metadata';
4
3
  import { Schema } from '@atlaskit/editor-prosemirror/model';
5
- import { fixExcludes } from './create-editor';
6
- /**
7
- * 🧱 Internal Helper Function: Editor FE Platform
8
- *
9
- * Adds generic metadata attributes to a DOMOutputSpec array based on the provided node or mark.
10
- * This function ensures that the DOMOutputSpec is annotated with ProseMirror-specific metadata.
11
- *
12
- * @param {object} params - Parameters object.
13
- * @param {PMNode | PMMark} params.nodeOrMark - The ProseMirror node or mark to extract metadata from.
14
- * @param {DOMOutputSpec} params.domSpec - The DOMOutputSpec to which attributes will be added.
15
- * @returns {DOMOutputSpec} The modified DOMOutputSpec with additional metadata.
16
- */
17
- export const addMetadataAttributes = ({
18
- nodeOrMark,
19
- domSpec
20
- }) => {
21
- if (!Array.isArray(domSpec)) {
22
- return domSpec;
23
- }
24
- const maybeDefinedAttributes = domSpec[1];
25
- const metadata = createProseMirrorMetadata(nodeOrMark);
26
- const hasDefinedAttributes = typeof maybeDefinedAttributes === 'object' && !Array.isArray(maybeDefinedAttributes);
27
- if (hasDefinedAttributes) {
28
- domSpec[1] = Object.assign(maybeDefinedAttributes, metadata);
29
- } else {
30
- domSpec.splice(1, 0, metadata);
31
- }
32
- return domSpec;
33
- };
34
-
4
+ import { addMetadataAttributes } from './addMetadataAttributes';
5
+ import { fixExcludes } from './fixExcludes';
35
6
  /**
36
7
  * 🧱 Internal Helper Function: Editor FE Platform
37
8
  *
@@ -0,0 +1,8 @@
1
+ import { ErrorReporter } from '@atlaskit/editor-common/error-reporter';
2
+ export function createErrorReporter(errorReporterHandler) {
3
+ const errorReporter = new ErrorReporter();
4
+ if (errorReporterHandler) {
5
+ errorReporter.handler = errorReporterHandler;
6
+ }
7
+ return errorReporter;
8
+ }
@@ -0,0 +1,30 @@
1
+ import { sortByOrder } from '@atlaskit/editor-common/legacy-rank-plugins';
2
+ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
3
+ import { createEditorNativeAnchorSupportPlugin } from './editorNativeAnchorSupportPlugin';
4
+ import { createEditorStateNotificationPlugin } from './editorStateNotificationPlugin';
5
+ export function createPMPlugins(config) {
6
+ const {
7
+ editorConfig
8
+ } = config;
9
+ const pmPlugins = editorConfig.pmPlugins.sort(sortByOrder('plugins')).map(({
10
+ plugin
11
+ }) => plugin({
12
+ schema: config.schema,
13
+ dispatch: config.dispatch,
14
+ eventDispatcher: config.eventDispatcher,
15
+ providerFactory: config.providerFactory,
16
+ errorReporter: config.errorReporter,
17
+ portalProviderAPI: config.portalProviderAPI,
18
+ nodeViewPortalProviderAPI: config.nodeViewPortalProviderAPI,
19
+ dispatchAnalyticsEvent: config.dispatchAnalyticsEvent,
20
+ featureFlags: config.featureFlags || {},
21
+ getIntl: config.getIntl
22
+ })).filter(plugin => typeof plugin !== 'undefined');
23
+ if (expValEquals('platform_editor_native_anchor_with_dnd', 'isEnabled', true)) {
24
+ pmPlugins.push(createEditorNativeAnchorSupportPlugin(config.schema));
25
+ }
26
+ if (config.onEditorStateUpdated !== undefined) {
27
+ return [createEditorStateNotificationPlugin(config.onEditorStateUpdated, config.editorConfig.onEditorViewStateUpdatedCallbacks), ...pmPlugins];
28
+ }
29
+ return pmPlugins;
30
+ }
@@ -0,0 +1,12 @@
1
+ export function fixExcludes(marks) {
2
+ const markKeys = Object.keys(marks);
3
+ const markGroups = new Set(markKeys.map(mark => marks[mark].group));
4
+ markKeys.forEach(markKey => {
5
+ const mark = marks[markKey];
6
+ if (mark.excludes) {
7
+ // eslint-disable-next-line @atlassian/perf-linting/no-expensive-split-replace -- Ignored via go/ees017 (to be fixed)
8
+ mark.excludes = mark.excludes.split(' ').filter(group => markGroups.has(group)).join(' ');
9
+ }
10
+ });
11
+ return marks;
12
+ }
@@ -0,0 +1,13 @@
1
+ import { isFullPage as fullPageCheck } from '../utils/is-full-page';
2
+ export function getScrollGutterOptions(props) {
3
+ const {
4
+ appearance
5
+ } = props;
6
+ if (fullPageCheck(appearance)) {
7
+ // Full Page appearance uses a scrollable div wrapper.
8
+ return {
9
+ getScrollElement: () => document.querySelector('.fabric-editor-popup-scroll-parent')
10
+ };
11
+ }
12
+ return undefined;
13
+ }
@@ -0,0 +1,3 @@
1
+ export function sortByRank(a, b) {
2
+ return a.rank - b.rank;
3
+ }
@@ -1,2 +1,4 @@
1
1
  /* eslint-disable @atlaskit/editor/no-re-export */
2
- export { createPMSchemaAndPlugins, isElementBySelectorInDocument, setTextSelection } from '../test-utils';
2
+ export { isElementBySelectorInDocument } from '../isElementBySelectorInDocument';
3
+ export { setTextSelection } from '../setTextSelection';
4
+ export { createPMSchemaAndPlugins } from '../test-utils';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Given a selector, checks if an element matching the selector exists in the
3
+ * document.
4
+ * @param selector
5
+ * @returns true if element matching selector exists in document, false otherwise
6
+ */
7
+ export const isElementBySelectorInDocument = selector => {
8
+ return Boolean(document.querySelector(selector));
9
+ };
@@ -0,0 +1,8 @@
1
+ import { TextSelection } from '@atlaskit/editor-prosemirror/state';
2
+ export function setTextSelection(view, anchor, head) {
3
+ const {
4
+ state
5
+ } = view;
6
+ const tr = state.tr.setSelection(TextSelection.create(state.doc, anchor, head));
7
+ view.dispatch(tr);
8
+ }
@@ -4,7 +4,6 @@
4
4
  import { sortByOrder } from '@atlaskit/editor-common/legacy-rank-plugins';
5
5
  import { EditorPresetBuilder } from '@atlaskit/editor-common/preset';
6
6
  import { basePlugin } from '@atlaskit/editor-plugins/base';
7
- import { TextSelection } from '@atlaskit/editor-prosemirror/state';
8
7
  import { createSchema } from './create-editor/create-schema';
9
8
  function lightProcessPluginsList(editorPlugins) {
10
9
  /**
@@ -84,21 +83,4 @@ export const createPMSchemaAndPlugins = (inputPreset = new EditorPresetBuilder()
84
83
  onEditorViewStateUpdatedCallbacks: editorConfig.onEditorViewStateUpdatedCallbacks,
85
84
  editorConfig
86
85
  };
87
- };
88
- export function setTextSelection(view, anchor, head) {
89
- const {
90
- state
91
- } = view;
92
- const tr = state.tr.setSelection(TextSelection.create(state.doc, anchor, head));
93
- view.dispatch(tr);
94
- }
95
-
96
- /**
97
- * Given a selector, checks if an element matching the selector exists in the
98
- * document.
99
- * @param selector
100
- * @returns true if element matching selector exists in document, false otherwise
101
- */
102
- export const isElementBySelectorInDocument = selector => {
103
- return Boolean(document.querySelector(selector));
104
86
  };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @see ED-14699 - check if editor is inside a modal to continue to bring cursor to input when
3
+ * any part of the editor container is clicked
4
+ *
5
+ * Handles two cases when a click event is fired:
6
+ *
7
+ * 1. if editor (e.g. comment inside of Jira ticket view) is inside modal then ensure focus and cursor is brought to the input
8
+ * 2. if another modal is open (e.g. delete confirmation modal for confluence table) then ignore clicks as they shouldn't influence editor state
9
+ */
10
+ export const checkForModal = target => {
11
+ const modalDialog = target === null || target === void 0 ? void 0 : target.closest('[role=dialog]');
12
+ if (modalDialog) {
13
+ // return false if not an editor inside modal, otherwise return true
14
+ return !!(modalDialog !== null && modalDialog !== void 0 && modalDialog.querySelector('.akEditor'));
15
+ }
16
+
17
+ // no modal present so we can return true
18
+ return true;
19
+ };
@@ -1,8 +1,7 @@
1
- import { tintDirtyTransaction } from '@atlaskit/editor-common/collab';
2
- import { addParagraphAtEnd } from '@atlaskit/editor-common/commands';
3
- import { setSelectionTopLevelBlocks } from '@atlaskit/editor-common/selection';
4
1
  import { closestElement } from '@atlaskit/editor-common/utils';
2
+ import { checkForModal } from './checkForModal';
5
3
  import { ignoreAttribute } from './ClickAreaBlock/contentComponentWrapper';
4
+ import { outsideProsemirrorEditorClickHandler } from './outsideProsemirrorEditorClickHandler';
6
5
 
7
6
  // we ignore all of the clicks made inside <div class="ak-editor-content-area" /> (but not clicks on the node itself)
8
7
  const insideContentArea = ref => {
@@ -19,26 +18,6 @@ const insideContentArea = ref => {
19
18
  const insideProseMirrorEditableArea = ref => {
20
19
  return Boolean(ref === null || ref === void 0 ? void 0 : ref.closest('.ProseMirror'));
21
20
  };
22
-
23
- /**
24
- * @see ED-14699 - check if editor is inside a modal to continue to bring cursor to input when
25
- * any part of the editor container is clicked
26
- *
27
- * Handles two cases when a click event is fired:
28
- *
29
- * 1. if editor (e.g. comment inside of Jira ticket view) is inside modal then ensure focus and cursor is brought to the input
30
- * 2. if another modal is open (e.g. delete confirmation modal for confluence table) then ignore clicks as they shouldn't influence editor state
31
- */
32
- export const checkForModal = target => {
33
- const modalDialog = target === null || target === void 0 ? void 0 : target.closest('[role=dialog]');
34
- if (modalDialog) {
35
- // return false if not an editor inside modal, otherwise return true
36
- return !!(modalDialog !== null && modalDialog !== void 0 && modalDialog.querySelector('.akEditor'));
37
- }
38
-
39
- // no modal present so we can return true
40
- return true;
41
- };
42
21
  const clickAreaClickHandler = (view, event) => {
43
22
  var _view$hasFocus, _target$parentElement, _event$currentTarget, _event$currentTarget2;
44
23
  const isEditorFocused = !!(view !== null && view !== void 0 && (_view$hasFocus = view.hasFocus) !== null && _view$hasFocus !== void 0 && _view$hasFocus.call(view));
@@ -100,34 +79,4 @@ const clickAreaClickHandler = (view, event) => {
100
79
  outsideProsemirrorEditorClickHandler(view, event);
101
80
  }
102
81
  };
103
- export const outsideProsemirrorEditorClickHandler = (view, event) => {
104
- var _view$hasFocus2;
105
- const {
106
- dispatch,
107
- dom,
108
- state
109
- } = view;
110
- const {
111
- tr
112
- } = state;
113
- const isEditorFocused = !!(view !== null && view !== void 0 && (_view$hasFocus2 = view.hasFocus) !== null && _view$hasFocus2 !== void 0 && _view$hasFocus2.call(view));
114
- const isBottomAreaClicked = event.clientY > dom.getBoundingClientRect().bottom;
115
- if (isBottomAreaClicked) {
116
- tr.setMeta('outsideProsemirrorEditorClicked', true);
117
- addParagraphAtEnd(tr);
118
- }
119
- setSelectionTopLevelBlocks(tr, event,
120
- // Ignored via go/ees005
121
- // eslint-disable-next-line @atlaskit/editor/no-as-casting
122
- dom, view.posAtCoords.bind(view), isEditorFocused);
123
- tintDirtyTransaction(tr);
124
- if (!tr.docChanged && !tr.selectionSet) {
125
- return;
126
- }
127
- if (dispatch) {
128
- dispatch(tr);
129
- }
130
- view.focus();
131
- event.preventDefault();
132
- };
133
82
  export { clickAreaClickHandler };
@@ -0,0 +1,33 @@
1
+ import { tintDirtyTransaction } from '@atlaskit/editor-common/collab';
2
+ import { addParagraphAtEnd } from '@atlaskit/editor-common/commands';
3
+ import { setSelectionTopLevelBlocks } from '@atlaskit/editor-common/selection';
4
+ export const outsideProsemirrorEditorClickHandler = (view, event) => {
5
+ var _view$hasFocus;
6
+ const {
7
+ dispatch,
8
+ dom,
9
+ state
10
+ } = view;
11
+ const {
12
+ tr
13
+ } = state;
14
+ const isEditorFocused = !!(view !== null && view !== void 0 && (_view$hasFocus = view.hasFocus) !== null && _view$hasFocus !== void 0 && _view$hasFocus.call(view));
15
+ const isBottomAreaClicked = event.clientY > dom.getBoundingClientRect().bottom;
16
+ if (isBottomAreaClicked) {
17
+ tr.setMeta('outsideProsemirrorEditorClicked', true);
18
+ addParagraphAtEnd(tr);
19
+ }
20
+ setSelectionTopLevelBlocks(tr, event,
21
+ // Ignored via go/ees005
22
+ // eslint-disable-next-line @atlaskit/editor/no-as-casting
23
+ dom, view.posAtCoords.bind(view), isEditorFocused);
24
+ tintDirtyTransaction(tr);
25
+ if (!tr.docChanged && !tr.selectionSet) {
26
+ return;
27
+ }
28
+ if (dispatch) {
29
+ dispatch(tr);
30
+ }
31
+ view.focus();
32
+ event.preventDefault();
33
+ };