@atlaskit/editor-core 182.0.3 → 182.1.1

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 (269) hide show
  1. package/.eslintrc.js +2 -0
  2. package/CHANGELOG.md +47 -0
  3. package/README.md +20 -0
  4. package/architecture/0001-record-architecture-decisions.md +25 -0
  5. package/architecture/0002-deep-equality-check-for-getsharedstate.md +67 -0
  6. package/architecture/0003-explicit-plugin-dependencies.md +291 -0
  7. package/dist/cjs/actions/index.js +17 -6
  8. package/dist/cjs/analytics-api/attach-payload-into-transaction.js +2 -1
  9. package/dist/cjs/create-editor/ErrorBoundary.js +1 -16
  10. package/dist/cjs/create-editor/ReactEditorViewInternal.js +3 -3
  11. package/dist/cjs/editor-next/editor-internal.js +2 -1
  12. package/dist/cjs/editor-next/index.js +5 -1
  13. package/dist/cjs/editor.js +9 -5
  14. package/dist/cjs/keymaps/index.js +12 -0
  15. package/dist/cjs/labs/next/internal/hooks/use-editor/index.js +5 -7
  16. package/dist/cjs/labs/next/presets/default.js +1 -2
  17. package/dist/cjs/plugins/card/index.js +16 -5
  18. package/dist/cjs/plugins/card/pm-plugins/actions.js +10 -1
  19. package/dist/cjs/plugins/card/pm-plugins/analytics/create-analytics-queue.js +48 -0
  20. package/dist/cjs/plugins/card/pm-plugins/analytics/events-from-tr.js +337 -0
  21. package/dist/cjs/plugins/card/pm-plugins/analytics/index.js +19 -0
  22. package/dist/cjs/plugins/card/pm-plugins/analytics/types.js +5 -0
  23. package/dist/cjs/plugins/card/pm-plugins/analytics/utils.js +139 -0
  24. package/dist/cjs/plugins/card/pm-plugins/doc.js +99 -22
  25. package/dist/cjs/plugins/card/pm-plugins/main.js +16 -10
  26. package/dist/cjs/plugins/card/pm-plugins/reducers.js +7 -0
  27. package/dist/cjs/plugins/card/pm-plugins/util/resolve.js +3 -7
  28. package/dist/cjs/plugins/card/toolbar.js +18 -8
  29. package/dist/cjs/plugins/card/ui/EditLinkToolbar.js +12 -8
  30. package/dist/cjs/plugins/card/ui/EditorSmartCardEventsNext.js +202 -0
  31. package/dist/cjs/plugins/card/ui/LinkToolbarAppearance.js +12 -4
  32. package/dist/cjs/plugins/card/utils.js +4 -2
  33. package/dist/cjs/plugins/extension/context-panel.js +3 -2
  34. package/dist/cjs/plugins/extension/index.js +4 -1
  35. package/dist/cjs/plugins/help-dialog/ui/index.js +29 -8
  36. package/dist/cjs/plugins/hyperlink/Toolbar.js +12 -2
  37. package/dist/cjs/plugins/hyperlink/commands.js +9 -5
  38. package/dist/cjs/plugins/hyperlink/pm-plugins/input-rule.js +4 -0
  39. package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +2 -2
  40. package/dist/cjs/plugins/index.js +0 -7
  41. package/dist/cjs/plugins/insert-block/index.js +5 -1
  42. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +25 -23
  43. package/dist/cjs/plugins/media/index.js +9 -5
  44. package/dist/cjs/plugins/media/pm-plugins/main.js +5 -4
  45. package/dist/cjs/plugins/media/utils/media-single.js +1 -4
  46. package/dist/cjs/plugins/panel/pm-plugins/keymaps.js +2 -1
  47. package/dist/cjs/plugins/paste/handlers.js +5 -5
  48. package/dist/cjs/plugins/paste/index.js +4 -2
  49. package/dist/cjs/plugins/paste/pm-plugins/main.js +6 -4
  50. package/dist/cjs/plugins/rule/commands.js +2 -2
  51. package/dist/cjs/plugins/rule/index.js +5 -4
  52. package/dist/cjs/plugins/rule/pm-plugins/input-rule.js +6 -8
  53. package/dist/cjs/plugins/rule/pm-plugins/keymap.js +2 -2
  54. package/dist/cjs/plugins/text-color/index.js +5 -2
  55. package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +3 -4
  56. package/dist/cjs/plugins/text-formatting/ui/Toolbar/toolbar-messages.js +10 -0
  57. package/dist/cjs/ui/Appearance/Comment/Comment.js +2 -0
  58. package/dist/cjs/ui/Appearance/FullPage/FullPage.js +2 -4
  59. package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +2 -0
  60. package/dist/cjs/ui/ColorPalette/index.js +6 -0
  61. package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +15 -10
  62. package/dist/cjs/ui/ConfigPanel/ConfigPanelFieldsLoader.js +3 -1
  63. package/dist/cjs/ui/ConfigPanel/Fields/ColorPicker.js +248 -17
  64. package/dist/cjs/ui/ConfigPanel/FormContent.js +12 -6
  65. package/dist/cjs/ui/ConfigPanel/utils.js +2 -12
  66. package/dist/cjs/ui/ContentStyles/index.js +2 -5
  67. package/dist/cjs/ui/MediaAndEmbedsToolbar/index.js +16 -8
  68. package/dist/cjs/utils/document.js +5 -3
  69. package/dist/cjs/version-wrapper.js +1 -1
  70. package/dist/cjs/version.json +1 -1
  71. package/dist/es2019/actions/index.js +10 -4
  72. package/dist/es2019/analytics-api/attach-payload-into-transaction.js +2 -1
  73. package/dist/es2019/create-editor/ErrorBoundary.js +1 -13
  74. package/dist/es2019/create-editor/ReactEditorViewInternal.js +2 -2
  75. package/dist/es2019/editor-next/editor-internal.js +2 -1
  76. package/dist/es2019/editor-next/index.js +5 -1
  77. package/dist/es2019/editor.js +5 -2
  78. package/dist/es2019/keymaps/index.js +1 -1
  79. package/dist/es2019/labs/next/internal/hooks/use-editor/index.js +4 -6
  80. package/dist/es2019/labs/next/presets/default.js +1 -2
  81. package/dist/es2019/plugins/card/index.js +15 -5
  82. package/dist/es2019/plugins/card/pm-plugins/actions.js +4 -0
  83. package/dist/es2019/plugins/card/pm-plugins/analytics/create-analytics-queue.js +38 -0
  84. package/dist/es2019/plugins/card/pm-plugins/analytics/events-from-tr.js +316 -0
  85. package/dist/es2019/plugins/card/pm-plugins/analytics/index.js +2 -0
  86. package/dist/es2019/plugins/card/pm-plugins/analytics/types.js +1 -0
  87. package/dist/es2019/plugins/card/pm-plugins/analytics/utils.js +124 -0
  88. package/dist/es2019/plugins/card/pm-plugins/doc.js +94 -20
  89. package/dist/es2019/plugins/card/pm-plugins/main.js +17 -8
  90. package/dist/es2019/plugins/card/pm-plugins/reducers.js +8 -0
  91. package/dist/es2019/plugins/card/pm-plugins/util/resolve.js +3 -7
  92. package/dist/es2019/plugins/card/toolbar.js +16 -8
  93. package/dist/es2019/plugins/card/ui/EditLinkToolbar.js +13 -9
  94. package/dist/es2019/plugins/card/ui/EditorSmartCardEventsNext.js +180 -0
  95. package/dist/es2019/plugins/card/ui/LinkToolbarAppearance.js +11 -2
  96. package/dist/es2019/plugins/card/utils.js +6 -2
  97. package/dist/es2019/plugins/extension/context-panel.js +3 -2
  98. package/dist/es2019/plugins/extension/index.js +45 -41
  99. package/dist/es2019/plugins/help-dialog/ui/index.js +17 -1
  100. package/dist/es2019/plugins/hyperlink/Toolbar.js +13 -4
  101. package/dist/es2019/plugins/hyperlink/commands.js +9 -6
  102. package/dist/es2019/plugins/hyperlink/pm-plugins/input-rule.js +4 -0
  103. package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +2 -2
  104. package/dist/es2019/plugins/index.js +0 -1
  105. package/dist/es2019/plugins/insert-block/index.js +96 -91
  106. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +3 -2
  107. package/dist/es2019/plugins/media/index.js +202 -198
  108. package/dist/es2019/plugins/media/pm-plugins/main.js +5 -4
  109. package/dist/es2019/plugins/media/utils/media-single.js +1 -5
  110. package/dist/es2019/plugins/panel/pm-plugins/keymaps.js +3 -2
  111. package/dist/es2019/plugins/paste/handlers.js +6 -6
  112. package/dist/es2019/plugins/paste/index.js +18 -14
  113. package/dist/es2019/plugins/paste/pm-plugins/main.js +7 -5
  114. package/dist/es2019/plugins/rule/commands.js +2 -2
  115. package/dist/es2019/plugins/rule/index.js +49 -46
  116. package/dist/es2019/plugins/rule/pm-plugins/input-rule.js +6 -7
  117. package/dist/es2019/plugins/rule/pm-plugins/keymap.js +2 -2
  118. package/dist/es2019/plugins/text-color/index.js +49 -44
  119. package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +3 -3
  120. package/dist/es2019/plugins/text-formatting/ui/Toolbar/toolbar-messages.js +10 -0
  121. package/dist/es2019/ui/Appearance/Comment/Comment.js +2 -0
  122. package/dist/es2019/ui/Appearance/FullPage/FullPage.js +2 -4
  123. package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +2 -0
  124. package/dist/es2019/ui/ColorPalette/index.js +2 -2
  125. package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +8 -4
  126. package/dist/es2019/ui/ConfigPanel/ConfigPanelFieldsLoader.js +3 -1
  127. package/dist/es2019/ui/ConfigPanel/Fields/ColorPicker.js +238 -13
  128. package/dist/es2019/ui/ConfigPanel/FormContent.js +12 -6
  129. package/dist/es2019/ui/ConfigPanel/utils.js +1 -11
  130. package/dist/es2019/ui/ContentStyles/index.js +2 -5
  131. package/dist/es2019/ui/MediaAndEmbedsToolbar/index.js +12 -10
  132. package/dist/es2019/utils/document.js +5 -3
  133. package/dist/es2019/version-wrapper.js +1 -1
  134. package/dist/es2019/version.json +1 -1
  135. package/dist/esm/actions/index.js +17 -6
  136. package/dist/esm/analytics-api/attach-payload-into-transaction.js +2 -1
  137. package/dist/esm/create-editor/ErrorBoundary.js +1 -16
  138. package/dist/esm/create-editor/ReactEditorViewInternal.js +2 -2
  139. package/dist/esm/editor-next/editor-internal.js +2 -1
  140. package/dist/esm/editor-next/index.js +5 -1
  141. package/dist/esm/editor.js +9 -5
  142. package/dist/esm/keymaps/index.js +1 -1
  143. package/dist/esm/labs/next/internal/hooks/use-editor/index.js +4 -6
  144. package/dist/esm/labs/next/presets/default.js +1 -2
  145. package/dist/esm/plugins/card/index.js +13 -5
  146. package/dist/esm/plugins/card/pm-plugins/actions.js +8 -0
  147. package/dist/esm/plugins/card/pm-plugins/analytics/create-analytics-queue.js +41 -0
  148. package/dist/esm/plugins/card/pm-plugins/analytics/events-from-tr.js +328 -0
  149. package/dist/esm/plugins/card/pm-plugins/analytics/index.js +2 -0
  150. package/dist/esm/plugins/card/pm-plugins/analytics/types.js +1 -0
  151. package/dist/esm/plugins/card/pm-plugins/analytics/utils.js +124 -0
  152. package/dist/esm/plugins/card/pm-plugins/doc.js +98 -22
  153. package/dist/esm/plugins/card/pm-plugins/main.js +16 -10
  154. package/dist/esm/plugins/card/pm-plugins/reducers.js +7 -0
  155. package/dist/esm/plugins/card/pm-plugins/util/resolve.js +3 -7
  156. package/dist/esm/plugins/card/toolbar.js +18 -8
  157. package/dist/esm/plugins/card/ui/EditLinkToolbar.js +13 -9
  158. package/dist/esm/plugins/card/ui/EditorSmartCardEventsNext.js +191 -0
  159. package/dist/esm/plugins/card/ui/LinkToolbarAppearance.js +12 -4
  160. package/dist/esm/plugins/card/utils.js +4 -2
  161. package/dist/esm/plugins/extension/context-panel.js +3 -2
  162. package/dist/esm/plugins/extension/index.js +4 -1
  163. package/dist/esm/plugins/help-dialog/ui/index.js +29 -8
  164. package/dist/esm/plugins/hyperlink/Toolbar.js +13 -3
  165. package/dist/esm/plugins/hyperlink/commands.js +9 -5
  166. package/dist/esm/plugins/hyperlink/pm-plugins/input-rule.js +4 -0
  167. package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +2 -2
  168. package/dist/esm/plugins/index.js +0 -1
  169. package/dist/esm/plugins/insert-block/index.js +5 -1
  170. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +25 -23
  171. package/dist/esm/plugins/media/index.js +9 -5
  172. package/dist/esm/plugins/media/pm-plugins/main.js +5 -4
  173. package/dist/esm/plugins/media/utils/media-single.js +1 -4
  174. package/dist/esm/plugins/panel/pm-plugins/keymaps.js +3 -2
  175. package/dist/esm/plugins/paste/handlers.js +6 -6
  176. package/dist/esm/plugins/paste/index.js +4 -2
  177. package/dist/esm/plugins/paste/pm-plugins/main.js +7 -5
  178. package/dist/esm/plugins/rule/commands.js +2 -2
  179. package/dist/esm/plugins/rule/index.js +5 -4
  180. package/dist/esm/plugins/rule/pm-plugins/input-rule.js +6 -8
  181. package/dist/esm/plugins/rule/pm-plugins/keymap.js +2 -2
  182. package/dist/esm/plugins/text-color/index.js +5 -2
  183. package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +3 -4
  184. package/dist/esm/plugins/text-formatting/ui/Toolbar/toolbar-messages.js +10 -0
  185. package/dist/esm/ui/Appearance/Comment/Comment.js +2 -0
  186. package/dist/esm/ui/Appearance/FullPage/FullPage.js +2 -4
  187. package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +2 -0
  188. package/dist/esm/ui/ColorPalette/index.js +2 -2
  189. package/dist/esm/ui/ConfigPanel/ConfigPanel.js +15 -10
  190. package/dist/esm/ui/ConfigPanel/ConfigPanelFieldsLoader.js +3 -1
  191. package/dist/esm/ui/ConfigPanel/Fields/ColorPicker.js +244 -19
  192. package/dist/esm/ui/ConfigPanel/FormContent.js +12 -6
  193. package/dist/esm/ui/ConfigPanel/utils.js +0 -10
  194. package/dist/esm/ui/ContentStyles/index.js +2 -5
  195. package/dist/esm/ui/MediaAndEmbedsToolbar/index.js +16 -8
  196. package/dist/esm/utils/document.js +5 -3
  197. package/dist/esm/version-wrapper.js +1 -1
  198. package/dist/esm/version.json +1 -1
  199. package/dist/types/actions/index.d.ts +3 -2
  200. package/dist/types/create-editor/ErrorBoundary.d.ts +2 -2
  201. package/dist/types/editor-next/index.d.ts +1 -0
  202. package/dist/types/editor.d.ts +1 -0
  203. package/dist/types/keymaps/index.d.ts +1 -1
  204. package/dist/types/labs/next/internal/hooks/use-editor/index.d.ts +2 -1
  205. package/dist/types/labs/next/presets/cxhtml.d.ts +1 -5
  206. package/dist/types/labs/next/presets/default.d.ts +2 -10
  207. package/dist/types/labs/next/presets/mobile.d.ts +1 -5
  208. package/dist/types/plugins/card/pm-plugins/actions.d.ts +2 -1
  209. package/dist/types/plugins/card/pm-plugins/analytics/create-analytics-queue.d.ts +10 -0
  210. package/dist/types/plugins/card/pm-plugins/analytics/events-from-tr.d.ts +17 -0
  211. package/dist/types/plugins/card/pm-plugins/analytics/index.d.ts +2 -0
  212. package/dist/types/plugins/card/pm-plugins/analytics/types.d.ts +10 -0
  213. package/dist/types/plugins/card/pm-plugins/analytics/utils.d.ts +26 -0
  214. package/dist/types/plugins/card/pm-plugins/doc.d.ts +8 -7
  215. package/dist/types/plugins/card/pm-plugins/main.d.ts +1 -1
  216. package/dist/types/plugins/card/pm-plugins/util/resolve.d.ts +2 -2
  217. package/dist/types/plugins/card/pm-plugins/util/state.d.ts +3 -0
  218. package/dist/types/plugins/card/types.d.ts +81 -7
  219. package/dist/types/plugins/card/ui/EditLinkToolbar.d.ts +2 -1
  220. package/dist/types/plugins/card/ui/EditorSmartCardEventsNext.d.ts +18 -0
  221. package/dist/types/plugins/card/utils.d.ts +1 -1
  222. package/dist/types/plugins/extension/context-panel.d.ts +2 -1
  223. package/dist/types/plugins/extension/index.d.ts +2 -0
  224. package/dist/types/plugins/hyperlink/commands.d.ts +3 -2
  225. package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/index.d.ts +2 -1
  226. package/dist/types/plugins/index.d.ts +0 -1
  227. package/dist/types/plugins/insert-block/index.d.ts +2 -0
  228. package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/types.d.ts +2 -1
  229. package/dist/types/plugins/media/index.d.ts +2 -0
  230. package/dist/types/plugins/media/pm-plugins/main.d.ts +3 -2
  231. package/dist/types/plugins/media/utils/media-single.d.ts +1 -1
  232. package/dist/types/plugins/paste/index.d.ts +2 -0
  233. package/dist/types/plugins/paste/pm-plugins/main.d.ts +2 -1
  234. package/dist/types/plugins/rule/commands.d.ts +2 -1
  235. package/dist/types/plugins/rule/index.d.ts +5 -1
  236. package/dist/types/plugins/rule/pm-plugins/input-rule.d.ts +1 -1
  237. package/dist/types/plugins/rule/pm-plugins/keymap.d.ts +2 -1
  238. package/dist/types/plugins/text-color/index.d.ts +2 -0
  239. package/dist/types/plugins/text-color/ui/ToolbarTextColor/index.d.ts +2 -0
  240. package/dist/types/plugins/text-formatting/ui/Toolbar/toolbar-messages.d.ts +10 -0
  241. package/dist/types/types/editor-appearance-component.d.ts +1 -1
  242. package/dist/types/types/editor-props.d.ts +1 -0
  243. package/dist/types/ui/Appearance/FullPage/FullPage.d.ts +2 -0
  244. package/dist/types/ui/ColorPalette/index.d.ts +2 -2
  245. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +3 -1
  246. package/dist/types/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +3 -1
  247. package/dist/types/ui/ConfigPanel/Fields/ColorPicker.d.ts +12 -1
  248. package/dist/types/ui/ConfigPanel/FormContent.d.ts +2 -2
  249. package/dist/types/ui/ConfigPanel/types.d.ts +3 -0
  250. package/dist/types/ui/ConfigPanel/utils.d.ts +0 -1
  251. package/dist/types/ui/MediaAndEmbedsToolbar/index.d.ts +1 -1
  252. package/package.json +15 -14
  253. package/report.api.md +10 -0
  254. package/dist/cjs/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +0 -12
  255. package/dist/cjs/plugins/feature-flags-context/get-feature-flags.js +0 -11
  256. package/dist/cjs/plugins/feature-flags-context/index.js +0 -50
  257. package/dist/cjs/plugins/feature-flags-context/plugin-key.js +0 -9
  258. package/dist/es2019/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +0 -1
  259. package/dist/es2019/plugins/feature-flags-context/get-feature-flags.js +0 -2
  260. package/dist/es2019/plugins/feature-flags-context/index.js +0 -29
  261. package/dist/es2019/plugins/feature-flags-context/plugin-key.js +0 -2
  262. package/dist/esm/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +0 -1
  263. package/dist/esm/plugins/feature-flags-context/get-feature-flags.js +0 -4
  264. package/dist/esm/plugins/feature-flags-context/index.js +0 -40
  265. package/dist/esm/plugins/feature-flags-context/plugin-key.js +0 -2
  266. package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +0 -1
  267. package/dist/types/plugins/feature-flags-context/get-feature-flags.d.ts +0 -3
  268. package/dist/types/plugins/feature-flags-context/index.d.ts +0 -9
  269. package/dist/types/plugins/feature-flags-context/plugin-key.d.ts +0 -2
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.EventsBinding = exports.EditorSmartCardEventsNext = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
16
+ var _react = _interopRequireWildcard(require("react"));
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _linkAnalytics = require("@atlaskit/link-analytics");
19
+ var _analytics = require("@atlaskit/editor-common/analytics");
20
+ var _analyticsNext = require("@atlaskit/analytics-next");
21
+ var _actions = require("../pm-plugins/actions");
22
+ var _excluded = ["url", "display"],
23
+ _excluded2 = ["url", "display", "previousDisplay"],
24
+ _excluded3 = ["url", "display"];
25
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+ 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); }; }
28
+ 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; } }
29
+ /**
30
+ * If the metadata is for a history event,
31
+ * returns undo/redo instead of instead of what fn(metadata) would have otherwise
32
+ * returned
33
+ */
34
+ var withHistoryMethod = function withHistoryMethod(fn) {
35
+ return function (metadata) {
36
+ var isUndo = metadata.isUndo,
37
+ isRedo = metadata.isRedo;
38
+ if (isUndo) {
39
+ return 'undo';
40
+ }
41
+ if (isRedo) {
42
+ return 'redo';
43
+ }
44
+ return fn(metadata);
45
+ };
46
+ };
47
+ var getMethod = withHistoryMethod(function (_ref) {
48
+ var inputMethod = _ref.inputMethod,
49
+ sourceEvent = _ref.sourceEvent;
50
+ /**
51
+ * If sourceEvent is present, don't provide a custom method
52
+ */
53
+ if (sourceEvent) {
54
+ return;
55
+ }
56
+ switch (inputMethod) {
57
+ case _analytics.INPUT_METHOD.CLIPBOARD:
58
+ return 'editor_paste';
59
+ case _analytics.INPUT_METHOD.FLOATING_TB:
60
+ return 'editor_floatingToolbar';
61
+ case _analytics.INPUT_METHOD.AUTO_DETECT:
62
+ return 'editor_type';
63
+ default:
64
+ return 'unknown';
65
+ }
66
+ });
67
+ var getUpdateType = withHistoryMethod(function (_ref2) {
68
+ var action = _ref2.action,
69
+ sourceEvent = _ref2.sourceEvent;
70
+ /**
71
+ * If sourceEvent is present, don't provide a custom method
72
+ */
73
+ if (sourceEvent) {
74
+ return;
75
+ }
76
+ switch (action) {
77
+ case _analytics.ACTION.CHANGED_TYPE:
78
+ return 'display_update';
79
+ case _analytics.ACTION.UPDATED:
80
+ return 'link_update';
81
+ default:
82
+ return 'unknown';
83
+ }
84
+ });
85
+ var getDeleteType = withHistoryMethod(function (_ref3) {
86
+ var action = _ref3.action;
87
+ if (action === _analytics.ACTION.UNLINK) {
88
+ return 'unlink';
89
+ }
90
+ return 'delete';
91
+ });
92
+ var getSourceEventFromMetadata = function getSourceEventFromMetadata(metadata) {
93
+ return metadata.sourceEvent instanceof _analyticsNext.UIAnalyticsEvent ? metadata.sourceEvent : null;
94
+ };
95
+
96
+ /**
97
+ * Set display category as `link` if not displaying the link as a smart card
98
+ */
99
+ var displayCategoryFromDisplay = function displayCategoryFromDisplay(display) {
100
+ if (display === 'url') {
101
+ return 'link';
102
+ }
103
+ };
104
+
105
+ /**
106
+ * Binds the @atlaskit/link-analytics callbacks
107
+ * to the editor card plugin state events callbacks interfaces
108
+ */
109
+ var EventsBinding = function EventsBinding(_ref4) {
110
+ var editorView = _ref4.editorView;
111
+ /**
112
+ * These callbacks internally use window.requestIdleCallback/requestAnimationFrame
113
+ * to defer any heavy operations involving network
114
+ *
115
+ * The callbacks themselves should not be deferred, they should be called syncronously the moment
116
+ * the events take place.
117
+ */
118
+ var _useSmartLinkLifecycl = (0, _linkAnalytics.useSmartLinkLifecycleAnalytics)(),
119
+ linkCreated = _useSmartLinkLifecycl.linkCreated,
120
+ linkUpdated = _useSmartLinkLifecycl.linkUpdated,
121
+ linkDeleted = _useSmartLinkLifecycl.linkDeleted;
122
+ var events = (0, _react.useMemo)(function () {
123
+ return {
124
+ created: function created(_ref5) {
125
+ var url = _ref5.url,
126
+ display = _ref5.display,
127
+ metadata = (0, _objectWithoutProperties2.default)(_ref5, _excluded);
128
+ linkCreated({
129
+ url: url,
130
+ displayCategory: displayCategoryFromDisplay(display)
131
+ }, getSourceEventFromMetadata(metadata), {
132
+ display: display,
133
+ creationMethod: getMethod(metadata)
134
+ });
135
+ },
136
+ updated: function updated(_ref6) {
137
+ var url = _ref6.url,
138
+ display = _ref6.display,
139
+ previousDisplay = _ref6.previousDisplay,
140
+ metadata = (0, _objectWithoutProperties2.default)(_ref6, _excluded2);
141
+ linkUpdated({
142
+ url: url,
143
+ displayCategory: displayCategoryFromDisplay(display)
144
+ }, getSourceEventFromMetadata(metadata), {
145
+ display: display,
146
+ previousDisplay: previousDisplay,
147
+ updateMethod: getMethod(metadata),
148
+ updateType: getUpdateType(metadata)
149
+ });
150
+ },
151
+ deleted: function deleted(_ref7) {
152
+ var url = _ref7.url,
153
+ display = _ref7.display,
154
+ metadata = (0, _objectWithoutProperties2.default)(_ref7, _excluded3);
155
+ linkDeleted({
156
+ url: url,
157
+ displayCategory: displayCategoryFromDisplay(display)
158
+ }, getSourceEventFromMetadata(metadata), {
159
+ display: display,
160
+ deleteMethod: getMethod(metadata),
161
+ deleteType: getDeleteType(metadata)
162
+ });
163
+ }
164
+ };
165
+ }, [linkCreated, linkUpdated, linkDeleted]);
166
+ (0, _react.useEffect)(function () {
167
+ editorView.dispatch((0, _actions.registerSmartCardEventsNext)(events)(editorView.state.tr));
168
+ }, [events, editorView]);
169
+ return null;
170
+ };
171
+ exports.EventsBinding = EventsBinding;
172
+ var EditorSmartCardEventsNext = /*#__PURE__*/function (_React$PureComponent) {
173
+ (0, _inherits2.default)(EditorSmartCardEventsNext, _React$PureComponent);
174
+ var _super = _createSuper(EditorSmartCardEventsNext);
175
+ function EditorSmartCardEventsNext() {
176
+ (0, _classCallCheck2.default)(this, EditorSmartCardEventsNext);
177
+ return _super.apply(this, arguments);
178
+ }
179
+ (0, _createClass2.default)(EditorSmartCardEventsNext, [{
180
+ key: "render",
181
+ value: function render() {
182
+ var cardContext = this.context.contextAdapter.card;
183
+
184
+ /**
185
+ * The analytics hook needs to be able to communicate with the card context
186
+ * If we can't access it, don't mount the event bindings
187
+ * This effectively entirely disables all tracking behaviour
188
+ */
189
+ if (!cardContext) {
190
+ return null;
191
+ }
192
+ return /*#__PURE__*/_react.default.createElement(cardContext.Provider, {
193
+ value: cardContext.value
194
+ }, /*#__PURE__*/_react.default.createElement(EventsBinding, this.props));
195
+ }
196
+ }]);
197
+ return EditorSmartCardEventsNext;
198
+ }(_react.default.PureComponent);
199
+ exports.EditorSmartCardEventsNext = EditorSmartCardEventsNext;
200
+ (0, _defineProperty2.default)(EditorSmartCardEventsNext, "contextTypes", {
201
+ contextAdapter: _propTypes.default.object
202
+ });
@@ -12,15 +12,19 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
12
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _analytics = require("@atlaskit/editor-common/analytics");
15
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
16
17
  var _prosemirrorModel = require("prosemirror-model");
17
18
  var _react = _interopRequireDefault(require("react"));
18
19
  var _messages = _interopRequireDefault(require("../../../messages"));
19
20
  var _nodes = require("../../../utils/nodes");
20
21
  var _messages2 = require("../messages");
22
+ var _card = require("@atlaskit/editor-common/card");
21
23
  var _doc = require("../pm-plugins/doc");
22
24
  var _linkToolbarButtonGroupOptions = require("./link-toolbar-button-group-options");
23
25
  var _LinkToolbarButtonGroup = require("./LinkToolbarButtonGroup");
26
+ 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; }
27
+ 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; }
24
28
  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); }; }
25
29
  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; } }
26
30
  var LinkToolbarAppearance = /*#__PURE__*/function (_React$Component) {
@@ -74,9 +78,9 @@ var LinkToolbarAppearance = /*#__PURE__*/function (_React$Component) {
74
78
  };
75
79
  var options = [{
76
80
  title: intl.formatMessage(_messages2.messages.url),
77
- onClick: function onClick() {
78
- return (0, _doc.changeSelectedCardToLink)(url, url, true)(editorState, view === null || view === void 0 ? void 0 : view.dispatch);
79
- },
81
+ onClick: (0, _card.commandWithMetadata)((0, _doc.changeSelectedCardToLink)(url, url, true), {
82
+ action: _analytics.ACTION.CHANGED_TYPE
83
+ }),
80
84
  selected: !currentAppearance,
81
85
  testId: 'url-appearance'
82
86
  }, {
@@ -102,7 +106,11 @@ var LinkToolbarAppearance = /*#__PURE__*/function (_React$Component) {
102
106
  return /*#__PURE__*/_react.default.createElement(_LinkToolbarButtonGroup.LinkToolbarButtonGroup, {
103
107
  key: "link-toolbar-button-group",
104
108
  options: options.map(function (option) {
105
- return (0, _linkToolbarButtonGroupOptions.getButtonGroupOption)(intl, dispatchCommand, option);
109
+ return (0, _linkToolbarButtonGroupOptions.getButtonGroupOption)(intl, dispatchCommand, _objectSpread(_objectSpread({}, option), {}, {
110
+ onClick: (0, _card.commandWithMetadata)(option.onClick, {
111
+ inputMethod: _analytics.INPUT_METHOD.FLOATING_TB
112
+ })
113
+ }));
106
114
  })
107
115
  });
108
116
  });
@@ -8,7 +8,7 @@ var _prosemirrorState = require("prosemirror-state");
8
8
  var _prosemirrorModel = require("prosemirror-model");
9
9
  var _pluginKey = require("./pm-plugins/plugin-key");
10
10
  var _slice = require("../../utils/slice");
11
- var _nodes = require("../..//utils/nodes");
11
+ var _nodes = require("../../utils/nodes");
12
12
  var appearanceForNodeType = function appearanceForNodeType(spec) {
13
13
  if (spec.name === 'inlineCard') {
14
14
  return 'inline';
@@ -21,7 +21,9 @@ var appearanceForNodeType = function appearanceForNodeType(spec) {
21
21
  };
22
22
  exports.appearanceForNodeType = appearanceForNodeType;
23
23
  var selectedCardAppearance = function selectedCardAppearance(state) {
24
- return state.selection instanceof _prosemirrorState.NodeSelection && appearanceForNodeType(state.selection.node.type);
24
+ if (state.selection instanceof _prosemirrorState.NodeSelection) {
25
+ return appearanceForNodeType(state.selection.node.type);
26
+ }
25
27
  };
26
28
  exports.selectedCardAppearance = selectedCardAppearance;
27
29
  var titleUrlPairFromNode = function titleUrlPairFromNode(node) {
@@ -34,7 +34,7 @@ var areParametersEqual = function areParametersEqual(firstParameters, secondPara
34
34
  }
35
35
  return firstParameters === secondParameters;
36
36
  };
37
- var getContextPanel = function getContextPanel(allowAutoSave) {
37
+ var getContextPanel = function getContextPanel(allowAutoSave, featureFlags) {
38
38
  return function (state) {
39
39
  var nodeWithPos = (0, _utils.getSelectedExtension)(state, true);
40
40
 
@@ -141,7 +141,8 @@ var getContextPanel = function getContextPanel(allowAutoSave) {
141
141
  }
142
142
  }
143
143
  }, _callee2, null, [[1, 6]]);
144
- }))
144
+ })),
145
+ featureFlags: featureFlags
145
146
  });
146
147
  }
147
148
  });
@@ -12,7 +12,10 @@ var _uniqueId = require("./pm-plugins/unique-id");
12
12
  var _toolbar = require("./toolbar");
13
13
  var _contextPanel = require("./context-panel");
14
14
  var extensionPlugin = function extensionPlugin() {
15
+ var _api$dependencies, _api$dependencies$fea;
15
16
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
17
+ var api = arguments.length > 1 ? arguments[1] : undefined;
18
+ var featureFlags = (api === null || api === void 0 ? void 0 : (_api$dependencies = api.dependencies) === null || _api$dependencies === void 0 ? void 0 : (_api$dependencies$fea = _api$dependencies.featureFlags) === null || _api$dependencies$fea === void 0 ? void 0 : _api$dependencies$fea.sharedState.currentState()) || {};
16
19
  return {
17
20
  name: 'extension',
18
21
  nodes: function nodes() {
@@ -52,7 +55,7 @@ var extensionPlugin = function extensionPlugin() {
52
55
  },
53
56
  pluginsOptions: {
54
57
  floatingToolbar: (0, _toolbar.getToolbarConfig)(options.breakoutEnabled),
55
- contextPanel: (0, _contextPanel.getContextPanel)(options.allowAutoSave)
58
+ contextPanel: (0, _contextPanel.getContextPanel)(options.allowAutoSave, featureFlags)
56
59
  }
57
60
  };
58
61
  };
@@ -79,8 +79,24 @@ var messages = (0, _reactIntlNext.defineMessages)({
79
79
  description: 'Name of a feature, which let you insert items quickly.'
80
80
  }
81
81
  });
82
- var formatting = function formatting(_ref) {
82
+ var navigationKeymaps = function navigationKeymaps(_ref) {
83
83
  var formatMessage = _ref.formatMessage;
84
+ return [{
85
+ name: formatMessage(_toolbarMessages.toolbarMessages.navigateToEditorToolbar),
86
+ type: 'navigation',
87
+ keymap: function keymap() {
88
+ return keymaps.navToEditorToolbar;
89
+ }
90
+ }, {
91
+ name: formatMessage(_toolbarMessages.toolbarMessages.navigateToFloatingToolbar),
92
+ type: 'navigation',
93
+ keymap: function keymap() {
94
+ return keymaps.navToFloatingToolbar;
95
+ }
96
+ }];
97
+ };
98
+ var formatting = function formatting(_ref2) {
99
+ var formatMessage = _ref2.formatMessage;
84
100
  return [{
85
101
  name: formatMessage(_toolbarMessages.toolbarMessages.bold),
86
102
  type: 'strong',
@@ -345,8 +361,8 @@ var formatting = function formatting(_ref) {
345
361
  };
346
362
  exports.formatting = formatting;
347
363
  var shortcutNamesWithoutKeymap = ['emoji', 'mention', 'quickInsert'];
348
- var otherFormatting = function otherFormatting(_ref2) {
349
- var formatMessage = _ref2.formatMessage;
364
+ var otherFormatting = function otherFormatting(_ref3) {
365
+ var formatMessage = _ref3.formatMessage;
350
366
  return [{
351
367
  name: formatMessage(_toolbarMessages.toolbarMessages.clearFormatting),
352
368
  type: 'clearFormatting',
@@ -388,8 +404,8 @@ var imageAutoFormat = {
388
404
  }, "![", (0, _react2.jsx)(_reactIntlNext.FormattedMessage, messages.altText), "](http://www.image.com)"));
389
405
  }
390
406
  };
391
- var quickInsertAutoFormat = function quickInsertAutoFormat(_ref3) {
392
- var formatMessage = _ref3.formatMessage;
407
+ var quickInsertAutoFormat = function quickInsertAutoFormat(_ref4) {
408
+ var formatMessage = _ref4.formatMessage;
393
409
  return {
394
410
  name: formatMessage(messages.quickInsert),
395
411
  type: 'quickInsert',
@@ -411,7 +427,7 @@ var getSupportedFormatting = function getSupportedFormatting(schema, intl, image
411
427
  var supportedBySchema = formatting(intl).filter(function (format) {
412
428
  return schema.nodes[format.type] || schema.marks[format.type];
413
429
  });
414
- return [].concat((0, _toConsumableArray2.default)(supportedBySchema), (0, _toConsumableArray2.default)(imageEnabled ? [imageAutoFormat] : []), (0, _toConsumableArray2.default)(quickInsertEnabled ? [quickInsertAutoFormat(intl)] : []), (0, _toConsumableArray2.default)(otherFormatting(intl)));
430
+ return [].concat((0, _toConsumableArray2.default)(navigationKeymaps(intl)), (0, _toConsumableArray2.default)(supportedBySchema), (0, _toConsumableArray2.default)(imageEnabled ? [imageAutoFormat] : []), (0, _toConsumableArray2.default)(quickInsertEnabled ? [quickInsertAutoFormat(intl)] : []), (0, _toConsumableArray2.default)(otherFormatting(intl)));
415
431
  };
416
432
  exports.getSupportedFormatting = getSupportedFormatting;
417
433
  var getComponentFromKeymap = function getComponentFromKeymap(keymap) {
@@ -431,6 +447,11 @@ var getComponentFromKeymap = function getComponentFromKeymap(keymap) {
431
447
  css: _styles.codeMd,
432
448
  key: "".concat(keyParts, "-").concat(index)
433
449
  }, part);
450
+ } else if (['f9', 'f10'].indexOf(part.toLowerCase()) >= 0) {
451
+ return (0, _react2.jsx)("span", {
452
+ css: _styles.codeLg,
453
+ key: "".concat(keyParts, "-").concat(index)
454
+ }, part);
434
455
  }
435
456
  return (0, _react2.jsx)("span", {
436
457
  css: _styles.codeSm,
@@ -439,8 +460,8 @@ var getComponentFromKeymap = function getComponentFromKeymap(keymap) {
439
460
  }));
440
461
  };
441
462
  exports.getComponentFromKeymap = getComponentFromKeymap;
442
- var ModalHeader = (0, _reactIntlNext.injectIntl)(function (_ref4) {
443
- var formatMessage = _ref4.intl.formatMessage;
463
+ var ModalHeader = (0, _reactIntlNext.injectIntl)(function (_ref5) {
464
+ var formatMessage = _ref5.intl.formatMessage;
444
465
  var _useModal = (0, _modalDialog.useModal)(),
445
466
  onClose = _useModal.onClose;
446
467
  return (0, _react2.jsx)("div", {
@@ -11,6 +11,7 @@ var _react = _interopRequireDefault(require("react"));
11
11
  var _main = require("./pm-plugins/main");
12
12
  var _commands = require("./commands");
13
13
  var _HyperlinkAddToolbar = _interopRequireDefault(require("./ui/HyperlinkAddToolbar"));
14
+ var _card = require("@atlaskit/editor-common/card");
14
15
  var _unlink = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/unlink"));
15
16
  var _settings = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/settings"));
16
17
  var _shortcut = _interopRequireDefault(require("@atlaskit/icon/glyph/shortcut"));
@@ -162,7 +163,9 @@ var getToolbarConfig = function getToolbarConfig(options, featureFlags) {
162
163
  }, {
163
164
  id: 'editor.link.unlink',
164
165
  type: 'button',
165
- onClick: (0, _commands.removeLink)(pos),
166
+ onClick: (0, _card.commandWithMetadata)((0, _commands.removeLink)(pos), {
167
+ inputMethod: _analytics.INPUT_METHOD.FLOATING_TB
168
+ }),
166
169
  selected: false,
167
170
  title: labelUnlink,
168
171
  icon: _unlink.default,
@@ -221,7 +224,14 @@ var getToolbarConfig = function getToolbarConfig(options, featureFlags) {
221
224
  var title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
222
225
  var displayText = arguments.length > 2 ? arguments[2] : undefined;
223
226
  var inputMethod = arguments.length > 3 ? arguments[3] : undefined;
224
- isEditLink(activeLinkMark) ? (0, _commands.updateLink)(href, displayText || title, activeLinkMark.pos)(view.state, view.dispatch) : (0, _commands.insertLinkWithAnalytics)(inputMethod, activeLinkMark.from, activeLinkMark.to, href, title, displayText, !!(options !== null && options !== void 0 && (_options$cardOptions = options.cardOptions) !== null && _options$cardOptions !== void 0 && _options$cardOptions.provider))(view.state, view.dispatch);
227
+ var analytic = arguments.length > 4 ? arguments[4] : undefined;
228
+ var isEdit = isEditLink(activeLinkMark);
229
+ var action = isEdit ? _analytics.ACTION.UPDATED : _analytics.ACTION.INSERTED;
230
+ var command = isEdit ? (0, _card.commandWithMetadata)((0, _commands.updateLink)(href, displayText || title, activeLinkMark.pos), {
231
+ action: action,
232
+ sourceEvent: analytic
233
+ }) : (0, _commands.insertLinkWithAnalytics)(inputMethod, activeLinkMark.from, activeLinkMark.to, href, title, displayText, !!(options !== null && options !== void 0 && (_options$cardOptions = options.cardOptions) !== null && _options$cardOptions !== void 0 && _options$cardOptions.provider), analytic);
234
+ command(view.state, view.dispatch, view);
225
235
  view.focus();
226
236
  }
227
237
  });
@@ -15,6 +15,7 @@ exports.setLinkHref = setLinkHref;
15
15
  exports.showLinkToolbar = showLinkToolbar;
16
16
  exports.updateLink = updateLink;
17
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _card = require("@atlaskit/editor-common/card");
18
19
  var _utils = require("./utils");
19
20
  var _main = require("./pm-plugins/main");
20
21
  var _prosemirrorState = require("prosemirror-state");
@@ -101,7 +102,7 @@ function updateLink(href, text, pos, to) {
101
102
  return true;
102
103
  };
103
104
  }
104
- function insertLink(from, to, incomingHref, incomingTitle, displayText, source) {
105
+ function insertLink(from, to, incomingHref, incomingTitle, displayText, source, sourceEvent) {
105
106
  return function (state, dispatch) {
106
107
  var link = state.schema.marks.link;
107
108
  var tr = state.tr;
@@ -125,7 +126,7 @@ function insertLink(from, to, incomingHref, incomingTitle, displayText, source)
125
126
  }));
126
127
  tr.setSelection(_prosemirrorState.Selection.near(tr.doc.resolve(markEnd)));
127
128
  if (!displayText || displayText === incomingHref) {
128
- (0, _doc.queueCardsFromChangedTr)(state, tr, source, false);
129
+ (0, _doc.queueCardsFromChangedTr)(state, tr, source, _analytics.ACTION.INSERTED, false, sourceEvent);
129
130
  }
130
131
  tr.setMeta(_main.stateKey, {
131
132
  type: _main.LinkAction.HIDE_TOOLBAR
@@ -146,11 +147,12 @@ function insertLink(from, to, incomingHref, incomingTitle, displayText, source)
146
147
  }
147
148
  var insertLinkWithAnalytics = function insertLinkWithAnalytics(inputMethod, from, to, href, title, displayText) {
148
149
  var cardsAvailable = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
150
+ var sourceEvent = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : undefined;
149
151
  // If smart cards are available, we send analytics for hyperlinks when a smart link is rejected.
150
152
  if (cardsAvailable && !title && !displayText) {
151
- return insertLink(from, to, href, title, displayText, inputMethod);
153
+ return insertLink(from, to, href, title, displayText, inputMethod, sourceEvent);
152
154
  }
153
- return (0, _analytics.withAnalytics)((0, _analytics2.getLinkCreationAnalyticsEvent)(inputMethod, href))(insertLink(from, to, href, title, displayText, inputMethod));
155
+ return (0, _analytics.withAnalytics)((0, _analytics2.getLinkCreationAnalyticsEvent)(inputMethod, href))(insertLink(from, to, href, title, displayText, inputMethod, sourceEvent));
154
156
  };
155
157
  exports.insertLinkWithAnalytics = insertLinkWithAnalytics;
156
158
  var insertLinkWithAnalyticsMobileNative = function insertLinkWithAnalyticsMobileNative(inputMethod, from, to, href, title, displayText) {
@@ -158,7 +160,9 @@ var insertLinkWithAnalyticsMobileNative = function insertLinkWithAnalyticsMobile
158
160
  };
159
161
  exports.insertLinkWithAnalyticsMobileNative = insertLinkWithAnalyticsMobileNative;
160
162
  function removeLink(pos) {
161
- return setLinkHref('', pos);
163
+ return (0, _card.commandWithMetadata)(setLinkHref('', pos), {
164
+ action: _analytics.ACTION.UNLINK
165
+ });
162
166
  }
163
167
  function editInsertedLink() {
164
168
  return function (state, dispatch) {
@@ -8,6 +8,7 @@ exports.createInputRulePlugin = createInputRulePlugin;
8
8
  exports.createLinkInputRule = createLinkInputRule;
9
9
  exports.default = void 0;
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _card = require("@atlaskit/editor-common/card");
11
12
  var _inputRules = require("../../../utils/input-rules");
12
13
  var _utils = require("../utils");
13
14
  var _analytics = require("../../analytics");
@@ -48,6 +49,9 @@ function createLinkInputRule(regexp) {
48
49
  if (to === end) {
49
50
  tr.insertText(' ');
50
51
  }
52
+ (0, _card.addLinkMetadata)(state.selection, tr, {
53
+ inputMethod: _analytics.INPUT_METHOD.AUTO_DETECT
54
+ });
51
55
  if (skipAnalytics) {
52
56
  return tr;
53
57
  }
@@ -24,13 +24,13 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
24
24
  * Wraps around the editor's onSubmit handler so that the plugin can interface with the link picker
25
25
  */
26
26
  var onSubmitInterface = function onSubmitInterface(onSubmit) {
27
- return function (_ref) {
27
+ return function (_ref, analytic) {
28
28
  var url = _ref.url,
29
29
  title = _ref.title,
30
30
  displayText = _ref.displayText,
31
31
  rawUrl = _ref.rawUrl,
32
32
  meta = _ref.meta;
33
- onSubmit(url, title !== null && title !== void 0 ? title : rawUrl, displayText || undefined, meta.inputMethod === 'manual' ? _types.INPUT_METHOD.MANUAL : _types.INPUT_METHOD.TYPEAHEAD);
33
+ onSubmit(url, title !== null && title !== void 0 ? title : rawUrl, displayText || undefined, meta.inputMethod === 'manual' ? _types.INPUT_METHOD.MANUAL : _types.INPUT_METHOD.TYPEAHEAD, analytic);
34
34
  };
35
35
  };
36
36
  var HyperlinkAddToolbar = /*#__PURE__*/function (_React$PureComponent) {
@@ -167,12 +167,6 @@ Object.defineProperty(exports, "fakeTextCursorPlugin", {
167
167
  return _fakeTextCursor.default;
168
168
  }
169
169
  });
170
- Object.defineProperty(exports, "featureFlagsContextPlugin", {
171
- enumerable: true,
172
- get: function get() {
173
- return _featureFlagsContext.default;
174
- }
175
- });
176
170
  Object.defineProperty(exports, "feedbackDialogPlugin", {
177
171
  enumerable: true,
178
172
  get: function get() {
@@ -470,7 +464,6 @@ var _customAutoformat = _interopRequireDefault(require("./custom-autoformat"));
470
464
  var _feedbackDialog = _interopRequireDefault(require("./feedback-dialog"));
471
465
  var _history = _interopRequireDefault(require("./history"));
472
466
  var _caption = _interopRequireDefault(require("./caption"));
473
- var _featureFlagsContext = _interopRequireDefault(require("./feature-flags-context"));
474
467
  var _expand = _interopRequireWildcard(require("./expand"));
475
468
  var _scrollIntoView = _interopRequireDefault(require("./scroll-into-view"));
476
469
  var _mobileDimensions = _interopRequireDefault(require("./mobile-dimensions"));
@@ -47,7 +47,10 @@ function handleInsertBlockType(name) {
47
47
  return (0, _commands.insertBlockTypesWithAnalytics)(name, _analytics.INPUT_METHOD.TOOLBAR);
48
48
  }
49
49
  var insertBlockPlugin = function insertBlockPlugin() {
50
+ var _api$dependencies, _api$dependencies$fea;
50
51
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52
+ var api = arguments.length > 1 ? arguments[1] : undefined;
53
+ var featureFlags = (api === null || api === void 0 ? void 0 : (_api$dependencies = api.dependencies) === null || _api$dependencies === void 0 ? void 0 : (_api$dependencies$fea = _api$dependencies.featureFlags) === null || _api$dependencies$fea === void 0 ? void 0 : _api$dependencies$fea.sharedState.currentState()) || {};
51
54
  return {
52
55
  name: 'insertBlock',
53
56
  primaryToolbarComponent: function primaryToolbarComponent(_ref) {
@@ -129,7 +132,8 @@ var insertBlockPlugin = function insertBlockPlugin() {
129
132
  dispatchAnalyticsEvent: dispatchAnalyticsEvent,
130
133
  replacePlusMenuWithElementBrowser: options.replacePlusMenuWithElementBrowser,
131
134
  showElementBrowserLink: options.showElementBrowserLink,
132
- showSeparator: !isLastItem && toolbarSize <= _types.ToolbarSize.S
135
+ showSeparator: !isLastItem && toolbarSize <= _types.ToolbarSize.S,
136
+ featureFlags: featureFlags
133
137
  });
134
138
  }
135
139
  });
@@ -255,22 +255,24 @@ var ToolbarInsertBlock = /*#__PURE__*/function (_React$PureComponent) {
255
255
  };
256
256
  });
257
257
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "insertHorizontalRule", function (inputMethod) {
258
+ var _this$props2 = _this.props,
259
+ _this$props2$editorVi = _this$props2.editorView,
260
+ state = _this$props2$editorVi.state,
261
+ dispatch = _this$props2$editorVi.dispatch,
262
+ featureFlags = _this$props2.featureFlags;
263
+ return (0, _commands5.insertHorizontalRule)(inputMethod, featureFlags)(state, dispatch);
264
+ });
265
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "insertExpand", function () {
258
266
  var _this$props$editorVie2 = _this.props.editorView,
259
267
  state = _this$props$editorVie2.state,
260
268
  dispatch = _this$props$editorVie2.dispatch;
261
- return (0, _commands5.insertHorizontalRule)(inputMethod)(state, dispatch);
262
- });
263
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "insertExpand", function () {
264
- var _this$props$editorVie3 = _this.props.editorView,
265
- state = _this$props$editorVie3.state,
266
- dispatch = _this$props$editorVie3.dispatch;
267
269
  return (0, _commands3.insertExpand)(state, dispatch);
268
270
  });
269
271
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "insertBlockType", function (itemName) {
270
272
  return function () {
271
- var _this$props2 = _this.props,
272
- editorView = _this$props2.editorView,
273
- onInsertBlockType = _this$props2.onInsertBlockType;
273
+ var _this$props3 = _this.props,
274
+ editorView = _this$props3.editorView,
275
+ onInsertBlockType = _this$props3.onInsertBlockType;
274
276
  var state = editorView.state,
275
277
  dispatch = editorView.dispatch;
276
278
  onInsertBlockType(itemName)(state, dispatch);
@@ -289,11 +291,11 @@ var ToolbarInsertBlock = /*#__PURE__*/function (_React$PureComponent) {
289
291
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onItemActivated", function (_ref2) {
290
292
  var item = _ref2.item,
291
293
  inputMethod = _ref2.inputMethod;
292
- var _this$props3 = _this.props,
293
- editorView = _this$props3.editorView,
294
- editorActions = _this$props3.editorActions,
295
- handleImageUpload = _this$props3.handleImageUpload,
296
- expandEnabled = _this$props3.expandEnabled;
294
+ var _this$props4 = _this.props,
295
+ editorView = _this$props4.editorView,
296
+ editorActions = _this$props4.editorActions,
297
+ handleImageUpload = _this$props4.handleImageUpload,
298
+ expandEnabled = _this$props4.expandEnabled;
297
299
 
298
300
  // need to do this before inserting nodes so scrollIntoView works properly
299
301
  if (!editorView.hasFocus()) {
@@ -409,12 +411,12 @@ var ToolbarInsertBlock = /*#__PURE__*/function (_React$PureComponent) {
409
411
  key: "renderPopup",
410
412
  value: function renderPopup() {
411
413
  var emojiPickerOpen = this.state.emojiPickerOpen;
412
- var _this$props4 = this.props,
413
- popupsMountPoint = _this$props4.popupsMountPoint,
414
- popupsBoundariesElement = _this$props4.popupsBoundariesElement,
415
- popupsScrollableElement = _this$props4.popupsScrollableElement,
416
- emojiProvider = _this$props4.emojiProvider,
417
- replacePlusMenuWithElementBrowser = _this$props4.replacePlusMenuWithElementBrowser;
414
+ var _this$props5 = this.props,
415
+ popupsMountPoint = _this$props5.popupsMountPoint,
416
+ popupsBoundariesElement = _this$props5.popupsBoundariesElement,
417
+ popupsScrollableElement = _this$props5.popupsScrollableElement,
418
+ emojiProvider = _this$props5.emojiProvider,
419
+ replacePlusMenuWithElementBrowser = _this$props5.replacePlusMenuWithElementBrowser;
418
420
  var dropdownEmoji = this.state.dropdownItems.some(function (_ref4) {
419
421
  var name = _ref4.value.name;
420
422
  return name === 'emoji';
@@ -450,9 +452,9 @@ var ToolbarInsertBlock = /*#__PURE__*/function (_React$PureComponent) {
450
452
  buttons = _this$state.buttons,
451
453
  dropdownItems = _this$state.dropdownItems,
452
454
  emojiPickerOpen = _this$state.emojiPickerOpen;
453
- var _this$props5 = this.props,
454
- isDisabled = _this$props5.isDisabled,
455
- isReducedSpacing = _this$props5.isReducedSpacing;
455
+ var _this$props6 = this.props,
456
+ isDisabled = _this$props6.isDisabled,
457
+ isReducedSpacing = _this$props6.isReducedSpacing;
456
458
  if (buttons.length === 0 && dropdownItems.length === 0) {
457
459
  return null;
458
460
  }