@atlaskit/editor-core 185.10.3 → 185.11.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 (58) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/composable-editor/package.json +15 -0
  3. package/dist/cjs/composable-editor.js +13 -0
  4. package/dist/cjs/plugins/block-type/commands/block-type.js +35 -24
  5. package/dist/cjs/plugins/block-type/index.js +4 -3
  6. package/dist/cjs/plugins/block-type/pm-plugins/keymap.js +2 -2
  7. package/dist/cjs/plugins/insert-block/index.js +6 -3
  8. package/dist/cjs/preset-universal.js +13 -0
  9. package/dist/cjs/version-wrapper.js +1 -1
  10. package/dist/cjs/version.json +1 -1
  11. package/dist/es2019/composable-editor.js +1 -0
  12. package/dist/es2019/plugins/block-type/commands/block-type.js +18 -7
  13. package/dist/es2019/plugins/block-type/index.js +6 -3
  14. package/dist/es2019/plugins/block-type/pm-plugins/keymap.js +2 -2
  15. package/dist/es2019/plugins/insert-block/index.js +47 -44
  16. package/dist/es2019/preset-universal.js +1 -0
  17. package/dist/es2019/version-wrapper.js +1 -1
  18. package/dist/es2019/version.json +1 -1
  19. package/dist/esm/composable-editor.js +1 -0
  20. package/dist/esm/plugins/block-type/commands/block-type.js +18 -7
  21. package/dist/esm/plugins/block-type/index.js +4 -3
  22. package/dist/esm/plugins/block-type/pm-plugins/keymap.js +2 -2
  23. package/dist/esm/plugins/insert-block/index.js +6 -3
  24. package/dist/esm/preset-universal.js +1 -0
  25. package/dist/esm/version-wrapper.js +1 -1
  26. package/dist/esm/version.json +1 -1
  27. package/dist/types/composable-editor.d.ts +1 -0
  28. package/dist/types/plugins/block-type/commands/block-type.d.ts +11 -2
  29. package/dist/types/plugins/block-type/pm-plugins/keymap.d.ts +2 -1
  30. package/dist/types/plugins/insert-block/index.d.ts +4 -2
  31. package/dist/types/preset-universal.d.ts +1 -0
  32. package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +1 -1
  33. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +2 -2
  34. package/dist/types/ui/ColorPickerButton/index.d.ts +1 -1
  35. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  36. package/dist/types/ui/ConfigPanel/FormErrorBoundary.d.ts +1 -1
  37. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  38. package/dist/types/ui/ElementBrowser/components/CategoryList.d.ts +1 -1
  39. package/dist/types/ui/ElementBrowser/components/ElementList/ElementList.d.ts +1 -1
  40. package/dist/types/ui/ElementBrowser/components/StatelessElementBrowser.d.ts +1 -1
  41. package/dist/types-ts4.5/composable-editor.d.ts +1 -0
  42. package/dist/types-ts4.5/plugins/block-type/commands/block-type.d.ts +11 -2
  43. package/dist/types-ts4.5/plugins/block-type/pm-plugins/keymap.d.ts +2 -1
  44. package/dist/types-ts4.5/plugins/insert-block/index.d.ts +4 -2
  45. package/dist/types-ts4.5/preset-universal.d.ts +1 -0
  46. package/dist/types-ts4.5/ui/Appearance/FullPage/FullPageContentArea.d.ts +1 -1
  47. package/dist/types-ts4.5/ui/Appearance/FullPage/StyledComponents.d.ts +2 -2
  48. package/dist/types-ts4.5/ui/ColorPickerButton/index.d.ts +1 -1
  49. package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  50. package/dist/types-ts4.5/ui/ConfigPanel/FormErrorBoundary.d.ts +1 -1
  51. package/dist/types-ts4.5/ui/ContentStyles/index.d.ts +2 -2
  52. package/dist/types-ts4.5/ui/ElementBrowser/components/CategoryList.d.ts +1 -1
  53. package/dist/types-ts4.5/ui/ElementBrowser/components/ElementList/ElementList.d.ts +1 -1
  54. package/dist/types-ts4.5/ui/ElementBrowser/components/StatelessElementBrowser.d.ts +1 -1
  55. package/package.json +2 -2
  56. package/preset-universal/package.json +15 -0
  57. package/report.api.md +3 -1
  58. package/tmp/api-report-tmp.d.ts +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/editor-core
2
2
 
3
+ ## 185.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`f21b48e8a51`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f21b48e8a51) - enabled access to NextEditorPlugin actions for mobile bridge
8
+
3
9
  ## 185.10.3
4
10
 
5
11
  ### Patch Changes
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "@atlaskit/editor-core/composable-editor",
3
+ "main": "../dist/cjs/composable-editor.js",
4
+ "module": "../dist/esm/composable-editor.js",
5
+ "module:es2019": "../dist/es2019/composable-editor.js",
6
+ "sideEffects": false,
7
+ "types": "../dist/types/composable-editor.d.ts",
8
+ "typesVersions": {
9
+ ">=4.5 <4.9": {
10
+ "*": [
11
+ "../dist/types-ts4.5/composable-editor.d.ts"
12
+ ]
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "Editor", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _editorNext.default;
11
+ }
12
+ });
13
+ var _editorNext = _interopRequireDefault(require("./editor-next"));
@@ -18,6 +18,8 @@ var _types = require("../types");
18
18
  var _mark = require("../../../utils/mark");
19
19
  var _insert = require("@atlaskit/editor-common/insert");
20
20
  var _analytics = require("../../analytics");
21
+ var _analytics2 = require("@atlaskit/editor-common/analytics");
22
+ var _editorAnalytics = require("@atlaskit/editor-common/editor-analytics");
21
23
  var _utils = require("../../../utils");
22
24
  var _adfSchema = require("@atlaskit/adf-schema");
23
25
  var _editorTables = require("@atlaskit/editor-tables");
@@ -105,10 +107,10 @@ function withCurrentHeadingLevel(fn) {
105
107
  function setNormalTextWithAnalytics(inputMethod) {
106
108
  return withCurrentHeadingLevel(function (previousHeadingLevel) {
107
109
  return (0, _analytics.withAnalytics)({
108
- action: _analytics.ACTION.FORMATTED,
109
- actionSubject: _analytics.ACTION_SUBJECT.TEXT,
110
- eventType: _analytics.EVENT_TYPE.TRACK,
111
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_HEADING,
110
+ action: _analytics2.ACTION.FORMATTED,
111
+ actionSubject: _analytics2.ACTION_SUBJECT.TEXT,
112
+ eventType: _analytics2.EVENT_TYPE.TRACK,
113
+ actionSubjectId: _analytics2.ACTION_SUBJECT_ID.FORMAT_HEADING,
112
114
  attributes: {
113
115
  inputMethod: inputMethod,
114
116
  newHeadingLevel: 0,
@@ -139,10 +141,10 @@ function setHeading(level) {
139
141
  var setHeadingWithAnalytics = function setHeadingWithAnalytics(newHeadingLevel, inputMethod) {
140
142
  return withCurrentHeadingLevel(function (previousHeadingLevel) {
141
143
  return (0, _analytics.withAnalytics)({
142
- action: _analytics.ACTION.FORMATTED,
143
- actionSubject: _analytics.ACTION_SUBJECT.TEXT,
144
- eventType: _analytics.EVENT_TYPE.TRACK,
145
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_HEADING,
144
+ action: _analytics2.ACTION.FORMATTED,
145
+ actionSubject: _analytics2.ACTION_SUBJECT.TEXT,
146
+ eventType: _analytics2.EVENT_TYPE.TRACK,
147
+ actionSubjectId: _analytics2.ACTION_SUBJECT_ID.FORMAT_HEADING,
146
148
  attributes: {
147
149
  inputMethod: inputMethod,
148
150
  newHeadingLevel: newHeadingLevel,
@@ -175,39 +177,48 @@ function insertBlockType(name) {
175
177
  return false;
176
178
  };
177
179
  }
178
- var insertBlockTypesWithAnalytics = function insertBlockTypesWithAnalytics(name, inputMethod) {
180
+
181
+ /**
182
+ *
183
+ * @param name - block type name
184
+ * @param inputMethod - input method
185
+ * @param editorAnalyticsApi - analytics api, undefined if not available either because it failed to load or wasn't added
186
+ * otherwise Editor becomes very sad and crashes
187
+ * @returns - command that inserts block type
188
+ */
189
+ var insertBlockTypesWithAnalytics = function insertBlockTypesWithAnalytics(name, inputMethod, editorAnalyticsApi) {
179
190
  switch (name) {
180
191
  case _types.BLOCK_QUOTE.name:
181
- return (0, _analytics.withAnalytics)({
182
- action: _analytics.ACTION.FORMATTED,
183
- actionSubject: _analytics.ACTION_SUBJECT.TEXT,
184
- eventType: _analytics.EVENT_TYPE.TRACK,
185
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_BLOCK_QUOTE,
192
+ return (0, _editorAnalytics.withAnalytics)(editorAnalyticsApi, {
193
+ action: _analytics2.ACTION.FORMATTED,
194
+ actionSubject: _analytics2.ACTION_SUBJECT.TEXT,
195
+ eventType: _analytics2.EVENT_TYPE.TRACK,
196
+ actionSubjectId: _analytics2.ACTION_SUBJECT_ID.FORMAT_BLOCK_QUOTE,
186
197
  attributes: {
187
198
  inputMethod: inputMethod
188
199
  }
189
200
  })(insertBlockType(name));
190
201
  case _types.CODE_BLOCK.name:
191
- return (0, _analytics.withAnalytics)({
192
- action: _analytics.ACTION.INSERTED,
193
- actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
194
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.CODE_BLOCK,
202
+ return (0, _editorAnalytics.withAnalytics)(editorAnalyticsApi, {
203
+ action: _analytics2.ACTION.INSERTED,
204
+ actionSubject: _analytics2.ACTION_SUBJECT.DOCUMENT,
205
+ actionSubjectId: _analytics2.ACTION_SUBJECT_ID.CODE_BLOCK,
195
206
  attributes: {
196
207
  inputMethod: inputMethod
197
208
  },
198
- eventType: _analytics.EVENT_TYPE.TRACK
209
+ eventType: _analytics2.EVENT_TYPE.TRACK
199
210
  })(insertBlockType(name));
200
211
  case _types.PANEL.name:
201
- return (0, _analytics.withAnalytics)({
202
- action: _analytics.ACTION.INSERTED,
203
- actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
204
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.PANEL,
212
+ return (0, _editorAnalytics.withAnalytics)(editorAnalyticsApi, {
213
+ action: _analytics2.ACTION.INSERTED,
214
+ actionSubject: _analytics2.ACTION_SUBJECT.DOCUMENT,
215
+ actionSubjectId: _analytics2.ACTION_SUBJECT_ID.PANEL,
205
216
  attributes: {
206
217
  inputMethod: inputMethod,
207
218
  panelType: _adfSchema.PanelType.INFO // only info panels can be inserted from toolbar
208
219
  },
209
220
 
210
- eventType: _analytics.EVENT_TYPE.TRACK
221
+ eventType: _analytics2.EVENT_TYPE.TRACK
211
222
  })(insertBlockType(name));
212
223
  default:
213
224
  return insertBlockType(name);
@@ -142,9 +142,10 @@ var blockTypePlugin = function blockTypePlugin(options, api) {
142
142
  {
143
143
  name: 'blockTypeKeyMap',
144
144
  plugin: function plugin(_ref5) {
145
+ var _api$dependencies$ana;
145
146
  var schema = _ref5.schema,
146
147
  featureFlags = _ref5.featureFlags;
147
- return (0, _keymap.default)(schema, featureFlags);
148
+ return (0, _keymap.default)(schema, featureFlags, api === null || api === void 0 ? void 0 : (_api$dependencies$ana = api.dependencies.analytics) === null || _api$dependencies$ana === void 0 ? void 0 : _api$dependencies$ana.actions);
148
149
  }
149
150
  }];
150
151
  },
@@ -184,9 +185,9 @@ var blockTypePlugin = function blockTypePlugin(options, api) {
184
185
  },
185
186
  pluginsOptions: {
186
187
  quickInsert: function quickInsert(intl) {
187
- var _api$dependencies$ana, _api$dependencies$ana2;
188
+ var _api$dependencies$ana2, _api$dependencies$ana3;
188
189
  var exclude = options && options.allowBlockType && options.allowBlockType.exclude ? options.allowBlockType.exclude : [];
189
- return [].concat((0, _toConsumableArray2.default)(blockquotePluginOptions(intl, exclude.indexOf('blockquote') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana = api.dependencies.analytics) === null || _api$dependencies$ana === void 0 ? void 0 : _api$dependencies$ana.actions)), (0, _toConsumableArray2.default)(headingPluginOptions(intl, exclude.indexOf('heading') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions)));
190
+ return [].concat((0, _toConsumableArray2.default)(blockquotePluginOptions(intl, exclude.indexOf('blockquote') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions)), (0, _toConsumableArray2.default)(headingPluginOptions(intl, exclude.indexOf('heading') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana3 = api.dependencies.analytics) === null || _api$dependencies$ana3 === void 0 ? void 0 : _api$dependencies$ana3.actions)));
190
191
  }
191
192
  }
192
193
  };
@@ -19,7 +19,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
19
19
  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; }
20
20
  var backspace = (0, _prosemirrorCommands.chainCommands)(_commands2.cleanUpAtTheStartOfDocument, (0, _commands2.deleteBlockContent)(_utils.isNodeAWrappingBlockNode), _commands2.deleteAndMoveCursor);
21
21
  var del = (0, _prosemirrorCommands.chainCommands)((0, _commands3.deleteEmptyParagraphAndMoveBlockUp)(_utils.isNodeAWrappingBlockNode), (0, _commands2.deleteBlockContent)(_utils.isNodeAWrappingBlockNode), _commands2.deleteAndMoveCursor);
22
- function keymapPlugin(schema, featureFlags) {
22
+ function keymapPlugin(schema, featureFlags, editorAnalyticsApi) {
23
23
  var list = {};
24
24
  keymaps.bindKeymapWithCommand(keymaps.insertNewLine.common, commands.insertNewLineWithAnalytics, list);
25
25
  keymaps.bindKeymapWithCommand(keymaps.moveUp.common, commands.createNewParagraphAbove, list);
@@ -30,7 +30,7 @@ function keymapPlugin(schema, featureFlags) {
30
30
  keymaps.bindKeymapWithCommand(keymaps.deleteKey.common, del, list);
31
31
  keymaps.bindKeymapWithCommand(keymaps.forwardDelete.mac, del, list);
32
32
  if (schema.nodes[blockTypes.BLOCK_QUOTE.nodeName]) {
33
- keymaps.bindKeymapWithCommand(keymaps.findShortcutByKeymap(keymaps.toggleBlockQuote), (0, _commands2.insertBlockTypesWithAnalytics)(blockTypes.BLOCK_QUOTE.name, _analytics.INPUT_METHOD.KEYBOARD), list);
33
+ keymaps.bindKeymapWithCommand(keymaps.findShortcutByKeymap(keymaps.toggleBlockQuote), (0, _commands2.insertBlockTypesWithAnalytics)(blockTypes.BLOCK_QUOTE.name, _analytics.INPUT_METHOD.KEYBOARD, editorAnalyticsApi), list);
34
34
  }
35
35
  return (0, _keymap.keymap)(list);
36
36
  }
@@ -43,8 +43,10 @@ var toolbarSizeToButtons = function toolbarSizeToButtons(toolbarSize) {
43
43
  * Wrapper over insertBlockTypeWithAnalytics to autobind toolbar input method
44
44
  * @param name Block name
45
45
  */
46
- function handleInsertBlockType(name) {
47
- return (0, _commands.insertBlockTypesWithAnalytics)(name, _analytics.INPUT_METHOD.TOOLBAR);
46
+ function handleInsertBlockType(editorAnalyticsApi) {
47
+ return function (name) {
48
+ return (0, _commands.insertBlockTypesWithAnalytics)(name, _analytics.INPUT_METHOD.TOOLBAR, editorAnalyticsApi);
49
+ };
48
50
  }
49
51
  var insertBlockPlugin = function insertBlockPlugin() {
50
52
  var _api$dependencies, _api$dependencies$fea;
@@ -82,6 +84,7 @@ var insertBlockPlugin = function insertBlockPlugin() {
82
84
  layoutState: _layout.pluginKey
83
85
  },
84
86
  render: function render(_ref2) {
87
+ var _api$dependencies$ana;
85
88
  var mentionState = _ref2.mentionState,
86
89
  blockTypeState = _ref2.blockTypeState,
87
90
  mediaState = _ref2.mediaState,
@@ -121,7 +124,7 @@ var insertBlockPlugin = function insertBlockPlugin() {
121
124
  emojiProvider: providers.emojiProvider,
122
125
  nativeStatusSupported: options.nativeStatusSupported,
123
126
  horizontalRuleEnabled: options.horizontalRuleEnabled,
124
- onInsertBlockType: handleInsertBlockType,
127
+ onInsertBlockType: handleInsertBlockType(api === null || api === void 0 ? void 0 : (_api$dependencies$ana = api.dependencies.analytics) === null || _api$dependencies$ana === void 0 ? void 0 : _api$dependencies$ana.actions),
125
128
  onInsertMacroFromMacroBrowser: _macro.insertMacroFromMacroBrowser,
126
129
  macroProvider: macroState.macroProvider,
127
130
  popupsMountPoint: popupsMountPoint,
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "useUniversalPreset", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _useUniversalPreset.default;
11
+ }
12
+ });
13
+ var _useUniversalPreset = _interopRequireDefault(require("./labs/next/presets/useUniversalPreset"));
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.version = exports.nextMajorVersion = exports.name = void 0;
7
7
  var name = "@atlaskit/editor-core";
8
8
  exports.name = name;
9
- var version = "185.10.3";
9
+ var version = "185.11.0";
10
10
  exports.version = version;
11
11
  var nextMajorVersion = function nextMajorVersion() {
12
12
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "185.10.3",
3
+ "version": "185.11.0",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1 @@
1
+ export { default as Editor } from './editor-next';
@@ -3,7 +3,9 @@ import { safeInsert } from 'prosemirror-utils';
3
3
  import { CODE_BLOCK, BLOCK_QUOTE, PANEL, HEADINGS_BY_NAME, NORMAL_TEXT } from '../types';
4
4
  import { removeBlockMarks } from '../../../utils/mark';
5
5
  import { shouldSplitSelectedNodeOnNodeInsertion } from '@atlaskit/editor-common/insert';
6
- import { withAnalytics, ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../../analytics';
6
+ import { withAnalytics as withAnalyticsDeprecated } from '../../analytics';
7
+ import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
8
+ import { withAnalytics } from '@atlaskit/editor-common/editor-analytics';
7
9
  import { filterChildrenBetween } from '../../../utils';
8
10
  import { PanelType } from '@atlaskit/adf-schema';
9
11
  import { CellSelection } from '@atlaskit/editor-tables';
@@ -85,7 +87,7 @@ function withCurrentHeadingLevel(fn) {
85
87
  };
86
88
  }
87
89
  export function setNormalTextWithAnalytics(inputMethod) {
88
- return withCurrentHeadingLevel(previousHeadingLevel => withAnalytics({
90
+ return withCurrentHeadingLevel(previousHeadingLevel => withAnalyticsDeprecated({
89
91
  action: ACTION.FORMATTED,
90
92
  actionSubject: ACTION_SUBJECT.TEXT,
91
93
  eventType: EVENT_TYPE.TRACK,
@@ -120,7 +122,7 @@ export function setHeading(level) {
120
122
  };
121
123
  }
122
124
  export const setHeadingWithAnalytics = (newHeadingLevel, inputMethod) => {
123
- return withCurrentHeadingLevel(previousHeadingLevel => withAnalytics({
125
+ return withCurrentHeadingLevel(previousHeadingLevel => withAnalyticsDeprecated({
124
126
  action: ACTION.FORMATTED,
125
127
  actionSubject: ACTION_SUBJECT.TEXT,
126
128
  eventType: EVENT_TYPE.TRACK,
@@ -157,10 +159,19 @@ export function insertBlockType(name) {
157
159
  return false;
158
160
  };
159
161
  }
160
- export const insertBlockTypesWithAnalytics = (name, inputMethod) => {
162
+
163
+ /**
164
+ *
165
+ * @param name - block type name
166
+ * @param inputMethod - input method
167
+ * @param editorAnalyticsApi - analytics api, undefined if not available either because it failed to load or wasn't added
168
+ * otherwise Editor becomes very sad and crashes
169
+ * @returns - command that inserts block type
170
+ */
171
+ export const insertBlockTypesWithAnalytics = (name, inputMethod, editorAnalyticsApi) => {
161
172
  switch (name) {
162
173
  case BLOCK_QUOTE.name:
163
- return withAnalytics({
174
+ return withAnalytics(editorAnalyticsApi, {
164
175
  action: ACTION.FORMATTED,
165
176
  actionSubject: ACTION_SUBJECT.TEXT,
166
177
  eventType: EVENT_TYPE.TRACK,
@@ -170,7 +181,7 @@ export const insertBlockTypesWithAnalytics = (name, inputMethod) => {
170
181
  }
171
182
  })(insertBlockType(name));
172
183
  case CODE_BLOCK.name:
173
- return withAnalytics({
184
+ return withAnalytics(editorAnalyticsApi, {
174
185
  action: ACTION.INSERTED,
175
186
  actionSubject: ACTION_SUBJECT.DOCUMENT,
176
187
  actionSubjectId: ACTION_SUBJECT_ID.CODE_BLOCK,
@@ -180,7 +191,7 @@ export const insertBlockTypesWithAnalytics = (name, inputMethod) => {
180
191
  eventType: EVENT_TYPE.TRACK
181
192
  })(insertBlockType(name));
182
193
  case PANEL.name:
183
- return withAnalytics({
194
+ return withAnalytics(editorAnalyticsApi, {
184
195
  action: ACTION.INSERTED,
185
196
  actionSubject: ACTION_SUBJECT.DOCUMENT,
186
197
  actionSubjectId: ACTION_SUBJECT_ID.PANEL,
@@ -120,7 +120,10 @@ const blockTypePlugin = (options, api) => ({
120
120
  plugin: ({
121
121
  schema,
122
122
  featureFlags
123
- }) => keymapPlugin(schema, featureFlags)
123
+ }) => {
124
+ var _api$dependencies$ana;
125
+ return keymapPlugin(schema, featureFlags, api === null || api === void 0 ? void 0 : (_api$dependencies$ana = api.dependencies.analytics) === null || _api$dependencies$ana === void 0 ? void 0 : _api$dependencies$ana.actions);
126
+ }
124
127
  }];
125
128
  },
126
129
  primaryToolbarComponent({
@@ -159,9 +162,9 @@ const blockTypePlugin = (options, api) => ({
159
162
  },
160
163
  pluginsOptions: {
161
164
  quickInsert: intl => {
162
- var _api$dependencies$ana, _api$dependencies$ana2;
165
+ var _api$dependencies$ana2, _api$dependencies$ana3;
163
166
  const exclude = options && options.allowBlockType && options.allowBlockType.exclude ? options.allowBlockType.exclude : [];
164
- return [...blockquotePluginOptions(intl, exclude.indexOf('blockquote') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana = api.dependencies.analytics) === null || _api$dependencies$ana === void 0 ? void 0 : _api$dependencies$ana.actions), ...headingPluginOptions(intl, exclude.indexOf('heading') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions)];
167
+ return [...blockquotePluginOptions(intl, exclude.indexOf('blockquote') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions), ...headingPluginOptions(intl, exclude.indexOf('heading') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana3 = api.dependencies.analytics) === null || _api$dependencies$ana3 === void 0 ? void 0 : _api$dependencies$ana3.actions)];
165
168
  }
166
169
  }
167
170
  });
@@ -10,7 +10,7 @@ import { INPUT_METHOD } from '../../analytics';
10
10
  import { isNodeAWrappingBlockNode } from '../utils';
11
11
  const backspace = chainCommands(cleanUpAtTheStartOfDocument, deleteBlockContent(isNodeAWrappingBlockNode), deleteAndMoveCursor);
12
12
  const del = chainCommands(deleteEmptyParagraphAndMoveBlockUp(isNodeAWrappingBlockNode), deleteBlockContent(isNodeAWrappingBlockNode), deleteAndMoveCursor);
13
- export default function keymapPlugin(schema, featureFlags) {
13
+ export default function keymapPlugin(schema, featureFlags, editorAnalyticsApi) {
14
14
  const list = {};
15
15
  keymaps.bindKeymapWithCommand(keymaps.insertNewLine.common, commands.insertNewLineWithAnalytics, list);
16
16
  keymaps.bindKeymapWithCommand(keymaps.moveUp.common, commands.createNewParagraphAbove, list);
@@ -21,7 +21,7 @@ export default function keymapPlugin(schema, featureFlags) {
21
21
  keymaps.bindKeymapWithCommand(keymaps.deleteKey.common, del, list);
22
22
  keymaps.bindKeymapWithCommand(keymaps.forwardDelete.mac, del, list);
23
23
  if (schema.nodes[blockTypes.BLOCK_QUOTE.nodeName]) {
24
- keymaps.bindKeymapWithCommand(keymaps.findShortcutByKeymap(keymaps.toggleBlockQuote), insertBlockTypesWithAnalytics(blockTypes.BLOCK_QUOTE.name, INPUT_METHOD.KEYBOARD), list);
24
+ keymaps.bindKeymapWithCommand(keymaps.findShortcutByKeymap(keymaps.toggleBlockQuote), insertBlockTypesWithAnalytics(blockTypes.BLOCK_QUOTE.name, INPUT_METHOD.KEYBOARD, editorAnalyticsApi), list);
25
25
  }
26
26
  return keymap(list);
27
27
  }
@@ -36,8 +36,8 @@ const toolbarSizeToButtons = toolbarSize => {
36
36
  * Wrapper over insertBlockTypeWithAnalytics to autobind toolbar input method
37
37
  * @param name Block name
38
38
  */
39
- function handleInsertBlockType(name) {
40
- return insertBlockTypesWithAnalytics(name, INPUT_METHOD.TOOLBAR);
39
+ function handleInsertBlockType(editorAnalyticsApi) {
40
+ return name => insertBlockTypesWithAnalytics(name, INPUT_METHOD.TOOLBAR, editorAnalyticsApi);
41
41
  }
42
42
  const insertBlockPlugin = (options = {}, api) => {
43
43
  var _api$dependencies, _api$dependencies$fea;
@@ -84,48 +84,51 @@ const insertBlockPlugin = (options = {}, api) => {
84
84
  imageUpload,
85
85
  placeholderTextState,
86
86
  layoutState
87
- }) => /*#__PURE__*/React.createElement(ToolbarInsertBlock, {
88
- pluginInjectionApi: api,
89
- buttons: buttons,
90
- isReducedSpacing: isToolbarReducedSpacing,
91
- isDisabled: disabled,
92
- isTypeAheadAllowed: isTypeAheadAllowed(editorView.state),
93
- editorView: editorView,
94
- tableSupported: !!editorView.state.schema.nodes.table,
95
- actionSupported: !!editorView.state.schema.nodes.taskItem,
96
- mentionsSupported: !!(mentionState && mentionState.mentionProvider),
97
- decisionSupported: !!editorView.state.schema.nodes.decisionItem,
98
- dateEnabled: !!dateState,
99
- placeholderTextEnabled: placeholderTextState && placeholderTextState.allowInserting,
100
- layoutSectionEnabled: !!layoutState,
101
- expandEnabled: !!options.allowExpand,
102
- mediaUploadsEnabled: mediaState && mediaState.allowsUploads,
103
- onShowMediaPicker: mediaState && mediaState.showMediaPicker,
104
- mediaSupported: !!mediaState,
105
- imageUploadSupported: !!imageUpload,
106
- imageUploadEnabled: imageUpload && imageUpload.enabled,
107
- handleImageUpload: startImageUpload,
108
- availableWrapperBlockTypes: blockTypeState && blockTypeState.availableWrapperBlockTypes,
109
- linkSupported: !!hyperlinkState,
110
- linkDisabled: !hyperlinkState || !hyperlinkState.canInsertLink || !!hyperlinkState.activeLinkMark,
111
- emojiDisabled: !emojiState || !emojiState.emojiProvider,
112
- emojiProvider: providers.emojiProvider,
113
- nativeStatusSupported: options.nativeStatusSupported,
114
- horizontalRuleEnabled: options.horizontalRuleEnabled,
115
- onInsertBlockType: handleInsertBlockType,
116
- onInsertMacroFromMacroBrowser: insertMacroFromMacroBrowser,
117
- macroProvider: macroState.macroProvider,
118
- popupsMountPoint: popupsMountPoint,
119
- popupsBoundariesElement: popupsBoundariesElement,
120
- popupsScrollableElement: popupsScrollableElement,
121
- insertMenuItems: options.insertMenuItems,
122
- editorActions: editorActions,
123
- dispatchAnalyticsEvent: dispatchAnalyticsEvent,
124
- replacePlusMenuWithElementBrowser: options.replacePlusMenuWithElementBrowser,
125
- showElementBrowserLink: options.showElementBrowserLink,
126
- showSeparator: !isLastItem && toolbarSize <= ToolbarSize.S,
127
- featureFlags: featureFlags
128
- })
87
+ }) => {
88
+ var _api$dependencies$ana;
89
+ return /*#__PURE__*/React.createElement(ToolbarInsertBlock, {
90
+ pluginInjectionApi: api,
91
+ buttons: buttons,
92
+ isReducedSpacing: isToolbarReducedSpacing,
93
+ isDisabled: disabled,
94
+ isTypeAheadAllowed: isTypeAheadAllowed(editorView.state),
95
+ editorView: editorView,
96
+ tableSupported: !!editorView.state.schema.nodes.table,
97
+ actionSupported: !!editorView.state.schema.nodes.taskItem,
98
+ mentionsSupported: !!(mentionState && mentionState.mentionProvider),
99
+ decisionSupported: !!editorView.state.schema.nodes.decisionItem,
100
+ dateEnabled: !!dateState,
101
+ placeholderTextEnabled: placeholderTextState && placeholderTextState.allowInserting,
102
+ layoutSectionEnabled: !!layoutState,
103
+ expandEnabled: !!options.allowExpand,
104
+ mediaUploadsEnabled: mediaState && mediaState.allowsUploads,
105
+ onShowMediaPicker: mediaState && mediaState.showMediaPicker,
106
+ mediaSupported: !!mediaState,
107
+ imageUploadSupported: !!imageUpload,
108
+ imageUploadEnabled: imageUpload && imageUpload.enabled,
109
+ handleImageUpload: startImageUpload,
110
+ availableWrapperBlockTypes: blockTypeState && blockTypeState.availableWrapperBlockTypes,
111
+ linkSupported: !!hyperlinkState,
112
+ linkDisabled: !hyperlinkState || !hyperlinkState.canInsertLink || !!hyperlinkState.activeLinkMark,
113
+ emojiDisabled: !emojiState || !emojiState.emojiProvider,
114
+ emojiProvider: providers.emojiProvider,
115
+ nativeStatusSupported: options.nativeStatusSupported,
116
+ horizontalRuleEnabled: options.horizontalRuleEnabled,
117
+ onInsertBlockType: handleInsertBlockType(api === null || api === void 0 ? void 0 : (_api$dependencies$ana = api.dependencies.analytics) === null || _api$dependencies$ana === void 0 ? void 0 : _api$dependencies$ana.actions),
118
+ onInsertMacroFromMacroBrowser: insertMacroFromMacroBrowser,
119
+ macroProvider: macroState.macroProvider,
120
+ popupsMountPoint: popupsMountPoint,
121
+ popupsBoundariesElement: popupsBoundariesElement,
122
+ popupsScrollableElement: popupsScrollableElement,
123
+ insertMenuItems: options.insertMenuItems,
124
+ editorActions: editorActions,
125
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent,
126
+ replacePlusMenuWithElementBrowser: options.replacePlusMenuWithElementBrowser,
127
+ showElementBrowserLink: options.showElementBrowserLink,
128
+ showSeparator: !isLastItem && toolbarSize <= ToolbarSize.S,
129
+ featureFlags: featureFlags
130
+ });
131
+ }
129
132
  });
130
133
  };
131
134
  return /*#__PURE__*/React.createElement(WithProviders, {
@@ -0,0 +1 @@
1
+ export { default as useUniversalPreset } from './labs/next/presets/useUniversalPreset';
@@ -1,5 +1,5 @@
1
1
  export const name = "@atlaskit/editor-core";
2
- export const version = "185.10.3";
2
+ export const version = "185.11.0";
3
3
  export const nextMajorVersion = () => {
4
4
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
5
5
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "185.10.3",
3
+ "version": "185.11.0",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1 @@
1
+ export { default as Editor } from './editor-next';
@@ -6,7 +6,9 @@ import { safeInsert } from 'prosemirror-utils';
6
6
  import { CODE_BLOCK, BLOCK_QUOTE, PANEL, HEADINGS_BY_NAME, NORMAL_TEXT } from '../types';
7
7
  import { removeBlockMarks } from '../../../utils/mark';
8
8
  import { shouldSplitSelectedNodeOnNodeInsertion } from '@atlaskit/editor-common/insert';
9
- import { withAnalytics, ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../../analytics';
9
+ import { withAnalytics as withAnalyticsDeprecated } from '../../analytics';
10
+ import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
11
+ import { withAnalytics } from '@atlaskit/editor-common/editor-analytics';
10
12
  import { filterChildrenBetween } from '../../../utils';
11
13
  import { PanelType } from '@atlaskit/adf-schema';
12
14
  import { CellSelection } from '@atlaskit/editor-tables';
@@ -90,7 +92,7 @@ function withCurrentHeadingLevel(fn) {
90
92
  }
91
93
  export function setNormalTextWithAnalytics(inputMethod) {
92
94
  return withCurrentHeadingLevel(function (previousHeadingLevel) {
93
- return withAnalytics({
95
+ return withAnalyticsDeprecated({
94
96
  action: ACTION.FORMATTED,
95
97
  actionSubject: ACTION_SUBJECT.TEXT,
96
98
  eventType: EVENT_TYPE.TRACK,
@@ -124,7 +126,7 @@ export function setHeading(level) {
124
126
  }
125
127
  export var setHeadingWithAnalytics = function setHeadingWithAnalytics(newHeadingLevel, inputMethod) {
126
128
  return withCurrentHeadingLevel(function (previousHeadingLevel) {
127
- return withAnalytics({
129
+ return withAnalyticsDeprecated({
128
130
  action: ACTION.FORMATTED,
129
131
  actionSubject: ACTION_SUBJECT.TEXT,
130
132
  eventType: EVENT_TYPE.TRACK,
@@ -160,10 +162,19 @@ export function insertBlockType(name) {
160
162
  return false;
161
163
  };
162
164
  }
163
- export var insertBlockTypesWithAnalytics = function insertBlockTypesWithAnalytics(name, inputMethod) {
165
+
166
+ /**
167
+ *
168
+ * @param name - block type name
169
+ * @param inputMethod - input method
170
+ * @param editorAnalyticsApi - analytics api, undefined if not available either because it failed to load or wasn't added
171
+ * otherwise Editor becomes very sad and crashes
172
+ * @returns - command that inserts block type
173
+ */
174
+ export var insertBlockTypesWithAnalytics = function insertBlockTypesWithAnalytics(name, inputMethod, editorAnalyticsApi) {
164
175
  switch (name) {
165
176
  case BLOCK_QUOTE.name:
166
- return withAnalytics({
177
+ return withAnalytics(editorAnalyticsApi, {
167
178
  action: ACTION.FORMATTED,
168
179
  actionSubject: ACTION_SUBJECT.TEXT,
169
180
  eventType: EVENT_TYPE.TRACK,
@@ -173,7 +184,7 @@ export var insertBlockTypesWithAnalytics = function insertBlockTypesWithAnalytic
173
184
  }
174
185
  })(insertBlockType(name));
175
186
  case CODE_BLOCK.name:
176
- return withAnalytics({
187
+ return withAnalytics(editorAnalyticsApi, {
177
188
  action: ACTION.INSERTED,
178
189
  actionSubject: ACTION_SUBJECT.DOCUMENT,
179
190
  actionSubjectId: ACTION_SUBJECT_ID.CODE_BLOCK,
@@ -183,7 +194,7 @@ export var insertBlockTypesWithAnalytics = function insertBlockTypesWithAnalytic
183
194
  eventType: EVENT_TYPE.TRACK
184
195
  })(insertBlockType(name));
185
196
  case PANEL.name:
186
- return withAnalytics({
197
+ return withAnalytics(editorAnalyticsApi, {
187
198
  action: ACTION.INSERTED,
188
199
  actionSubject: ACTION_SUBJECT.DOCUMENT,
189
200
  actionSubjectId: ACTION_SUBJECT_ID.PANEL,
@@ -126,9 +126,10 @@ var blockTypePlugin = function blockTypePlugin(options, api) {
126
126
  {
127
127
  name: 'blockTypeKeyMap',
128
128
  plugin: function plugin(_ref5) {
129
+ var _api$dependencies$ana;
129
130
  var schema = _ref5.schema,
130
131
  featureFlags = _ref5.featureFlags;
131
- return keymapPlugin(schema, featureFlags);
132
+ return keymapPlugin(schema, featureFlags, api === null || api === void 0 ? void 0 : (_api$dependencies$ana = api.dependencies.analytics) === null || _api$dependencies$ana === void 0 ? void 0 : _api$dependencies$ana.actions);
132
133
  }
133
134
  }];
134
135
  },
@@ -168,9 +169,9 @@ var blockTypePlugin = function blockTypePlugin(options, api) {
168
169
  },
169
170
  pluginsOptions: {
170
171
  quickInsert: function quickInsert(intl) {
171
- var _api$dependencies$ana, _api$dependencies$ana2;
172
+ var _api$dependencies$ana2, _api$dependencies$ana3;
172
173
  var exclude = options && options.allowBlockType && options.allowBlockType.exclude ? options.allowBlockType.exclude : [];
173
- return [].concat(_toConsumableArray(blockquotePluginOptions(intl, exclude.indexOf('blockquote') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana = api.dependencies.analytics) === null || _api$dependencies$ana === void 0 ? void 0 : _api$dependencies$ana.actions)), _toConsumableArray(headingPluginOptions(intl, exclude.indexOf('heading') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions)));
174
+ return [].concat(_toConsumableArray(blockquotePluginOptions(intl, exclude.indexOf('blockquote') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana2 = api.dependencies.analytics) === null || _api$dependencies$ana2 === void 0 ? void 0 : _api$dependencies$ana2.actions)), _toConsumableArray(headingPluginOptions(intl, exclude.indexOf('heading') === -1, api === null || api === void 0 ? void 0 : (_api$dependencies$ana3 = api.dependencies.analytics) === null || _api$dependencies$ana3 === void 0 ? void 0 : _api$dependencies$ana3.actions)));
174
175
  }
175
176
  }
176
177
  };
@@ -10,7 +10,7 @@ import { INPUT_METHOD } from '../../analytics';
10
10
  import { isNodeAWrappingBlockNode } from '../utils';
11
11
  var backspace = chainCommands(cleanUpAtTheStartOfDocument, deleteBlockContent(isNodeAWrappingBlockNode), deleteAndMoveCursor);
12
12
  var del = chainCommands(deleteEmptyParagraphAndMoveBlockUp(isNodeAWrappingBlockNode), deleteBlockContent(isNodeAWrappingBlockNode), deleteAndMoveCursor);
13
- export default function keymapPlugin(schema, featureFlags) {
13
+ export default function keymapPlugin(schema, featureFlags, editorAnalyticsApi) {
14
14
  var list = {};
15
15
  keymaps.bindKeymapWithCommand(keymaps.insertNewLine.common, commands.insertNewLineWithAnalytics, list);
16
16
  keymaps.bindKeymapWithCommand(keymaps.moveUp.common, commands.createNewParagraphAbove, list);
@@ -21,7 +21,7 @@ export default function keymapPlugin(schema, featureFlags) {
21
21
  keymaps.bindKeymapWithCommand(keymaps.deleteKey.common, del, list);
22
22
  keymaps.bindKeymapWithCommand(keymaps.forwardDelete.mac, del, list);
23
23
  if (schema.nodes[blockTypes.BLOCK_QUOTE.nodeName]) {
24
- keymaps.bindKeymapWithCommand(keymaps.findShortcutByKeymap(keymaps.toggleBlockQuote), insertBlockTypesWithAnalytics(blockTypes.BLOCK_QUOTE.name, INPUT_METHOD.KEYBOARD), list);
24
+ keymaps.bindKeymapWithCommand(keymaps.findShortcutByKeymap(keymaps.toggleBlockQuote), insertBlockTypesWithAnalytics(blockTypes.BLOCK_QUOTE.name, INPUT_METHOD.KEYBOARD, editorAnalyticsApi), list);
25
25
  }
26
26
  return keymap(list);
27
27
  }