@atlaskit/editor-core 185.10.0 → 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 (66) hide show
  1. package/CHANGELOG.md +12 -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/collab-edit/index.js +1 -8
  8. package/dist/cjs/plugins/collab-edit/plugin.js +8 -1
  9. package/dist/cjs/plugins/insert-block/index.js +6 -3
  10. package/dist/cjs/preset-universal.js +13 -0
  11. package/dist/cjs/version-wrapper.js +1 -1
  12. package/dist/cjs/version.json +1 -1
  13. package/dist/es2019/composable-editor.js +1 -0
  14. package/dist/es2019/plugins/block-type/commands/block-type.js +18 -7
  15. package/dist/es2019/plugins/block-type/index.js +6 -3
  16. package/dist/es2019/plugins/block-type/pm-plugins/keymap.js +2 -2
  17. package/dist/es2019/plugins/collab-edit/index.js +1 -6
  18. package/dist/es2019/plugins/collab-edit/plugin.js +6 -1
  19. package/dist/es2019/plugins/insert-block/index.js +47 -44
  20. package/dist/es2019/preset-universal.js +1 -0
  21. package/dist/es2019/version-wrapper.js +1 -1
  22. package/dist/es2019/version.json +1 -1
  23. package/dist/esm/composable-editor.js +1 -0
  24. package/dist/esm/plugins/block-type/commands/block-type.js +18 -7
  25. package/dist/esm/plugins/block-type/index.js +4 -3
  26. package/dist/esm/plugins/block-type/pm-plugins/keymap.js +2 -2
  27. package/dist/esm/plugins/collab-edit/index.js +1 -8
  28. package/dist/esm/plugins/collab-edit/plugin.js +8 -1
  29. package/dist/esm/plugins/insert-block/index.js +6 -3
  30. package/dist/esm/preset-universal.js +1 -0
  31. package/dist/esm/version-wrapper.js +1 -1
  32. package/dist/esm/version.json +1 -1
  33. package/dist/types/composable-editor.d.ts +1 -0
  34. package/dist/types/plugins/block-type/commands/block-type.d.ts +11 -2
  35. package/dist/types/plugins/block-type/pm-plugins/keymap.d.ts +2 -1
  36. package/dist/types/plugins/collab-edit/plugin.d.ts +2 -1
  37. package/dist/types/plugins/insert-block/index.d.ts +4 -2
  38. package/dist/types/preset-universal.d.ts +1 -0
  39. package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +1 -1
  40. package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +2 -2
  41. package/dist/types/ui/ColorPickerButton/index.d.ts +1 -1
  42. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  43. package/dist/types/ui/ConfigPanel/FormErrorBoundary.d.ts +1 -1
  44. package/dist/types/ui/ContentStyles/index.d.ts +2 -2
  45. package/dist/types/ui/ElementBrowser/components/CategoryList.d.ts +1 -1
  46. package/dist/types/ui/ElementBrowser/components/ElementList/ElementList.d.ts +1 -1
  47. package/dist/types/ui/ElementBrowser/components/StatelessElementBrowser.d.ts +1 -1
  48. package/dist/types-ts4.5/composable-editor.d.ts +1 -0
  49. package/dist/types-ts4.5/plugins/block-type/commands/block-type.d.ts +11 -2
  50. package/dist/types-ts4.5/plugins/block-type/pm-plugins/keymap.d.ts +2 -1
  51. package/dist/types-ts4.5/plugins/collab-edit/plugin.d.ts +2 -1
  52. package/dist/types-ts4.5/plugins/insert-block/index.d.ts +4 -2
  53. package/dist/types-ts4.5/preset-universal.d.ts +1 -0
  54. package/dist/types-ts4.5/ui/Appearance/FullPage/FullPageContentArea.d.ts +1 -1
  55. package/dist/types-ts4.5/ui/Appearance/FullPage/StyledComponents.d.ts +2 -2
  56. package/dist/types-ts4.5/ui/ColorPickerButton/index.d.ts +1 -1
  57. package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
  58. package/dist/types-ts4.5/ui/ConfigPanel/FormErrorBoundary.d.ts +1 -1
  59. package/dist/types-ts4.5/ui/ContentStyles/index.d.ts +2 -2
  60. package/dist/types-ts4.5/ui/ElementBrowser/components/CategoryList.d.ts +1 -1
  61. package/dist/types-ts4.5/ui/ElementBrowser/components/ElementList/ElementList.d.ts +1 -1
  62. package/dist/types-ts4.5/ui/ElementBrowser/components/StatelessElementBrowser.d.ts +1 -1
  63. package/package.json +2 -2
  64. package/preset-universal/package.json +15 -0
  65. package/report.api.md +3 -1
  66. package/tmp/api-report-tmp.d.ts +2364 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
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
+
9
+ ## 185.10.3
10
+
11
+ ### Patch Changes
12
+
13
+ - [`6c6c3491dfa`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6c6c3491dfa) - Move collab provider subscription into plugin#view methods to avoid race conditions with re-configuring editor state
14
+
3
15
  ## 185.10.0
4
16
 
5
17
  ### Minor 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
  }
@@ -94,14 +94,7 @@ var collabEditPlugin = function collabEditPlugin(options, api) {
94
94
  plugin: function plugin(_ref3) {
95
95
  var dispatch = _ref3.dispatch,
96
96
  providerFactory = _ref3.providerFactory;
97
- providerFactory && providerFactory.subscribe('collabEditProvider', function (_name, providerPromise) {
98
- if (providerPromise) {
99
- providerPromise.then(function (provider) {
100
- return providerResolver(provider);
101
- });
102
- }
103
- });
104
- return (0, _plugin.createPlugin)(dispatch, providerFactory, executeProviderCode, options, featureFlags);
97
+ return (0, _plugin.createPlugin)(dispatch, providerFactory, providerResolver, executeProviderCode, options, featureFlags);
105
98
  }
106
99
  }]);
107
100
  },
@@ -22,7 +22,7 @@ var _pluginState = require("./plugin-state");
22
22
  var _pluginKey = require("./plugin-key");
23
23
  var _analytics = require("./analytics");
24
24
  var _analytics2 = require("@atlaskit/editor-common/analytics");
25
- var createPlugin = function createPlugin(dispatch, providerFactory, collabProviderCallback, options, featureFlags) {
25
+ var createPlugin = function createPlugin(dispatch, providerFactory, providerResolver, collabProviderCallback, options, featureFlags) {
26
26
  var fireAnalyticsCallback = (0, _analytics2.fireAnalyticsEvent)(options === null || options === void 0 ? void 0 : options.createAnalyticsEvent);
27
27
  return new _safePlugin.SafePlugin({
28
28
  key: _pluginKey.pluginKey,
@@ -75,6 +75,13 @@ var createPlugin = function createPlugin(dispatch, providerFactory, collabProvid
75
75
  providerFactory: providerFactory,
76
76
  featureFlags: featureFlags
77
77
  }), addErrorAnalytics);
78
+ providerFactory && providerFactory.subscribe('collabEditProvider', function (_name, providerPromise) {
79
+ if (providerPromise) {
80
+ providerPromise.then(function (provider) {
81
+ return providerResolver(provider);
82
+ });
83
+ }
84
+ });
78
85
  return {
79
86
  destroy: function destroy() {
80
87
  providerFactory.unsubscribeAll('collabEditProvider');
@@ -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.0";
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.0",
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
  }
@@ -50,12 +50,7 @@ const collabEditPlugin = (options, api) => {
50
50
  dispatch,
51
51
  providerFactory
52
52
  }) => {
53
- providerFactory && providerFactory.subscribe('collabEditProvider', (_name, providerPromise) => {
54
- if (providerPromise) {
55
- providerPromise.then(provider => providerResolver(provider));
56
- }
57
- });
58
- return createPlugin(dispatch, providerFactory, executeProviderCode, options, featureFlags);
53
+ return createPlugin(dispatch, providerFactory, providerResolver, executeProviderCode, options, featureFlags);
59
54
  }
60
55
  }];
61
56
  },
@@ -5,7 +5,7 @@ import { pluginKey } from './plugin-key';
5
5
  import { addSynchronyErrorAnalytics } from './analytics';
6
6
  import { fireAnalyticsEvent, ACTION, ACTION_SUBJECT, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
7
7
  export { PluginState, pluginKey };
8
- export const createPlugin = (dispatch, providerFactory, collabProviderCallback, options, featureFlags) => {
8
+ export const createPlugin = (dispatch, providerFactory, providerResolver, collabProviderCallback, options, featureFlags) => {
9
9
  const fireAnalyticsCallback = fireAnalyticsEvent(options === null || options === void 0 ? void 0 : options.createAnalyticsEvent);
10
10
  return new SafePlugin({
11
11
  key: pluginKey,
@@ -58,6 +58,11 @@ export const createPlugin = (dispatch, providerFactory, collabProviderCallback,
58
58
  providerFactory,
59
59
  featureFlags
60
60
  }), addErrorAnalytics);
61
+ providerFactory && providerFactory.subscribe('collabEditProvider', (_name, providerPromise) => {
62
+ if (providerPromise) {
63
+ providerPromise.then(provider => providerResolver(provider));
64
+ }
65
+ });
61
66
  return {
62
67
  destroy() {
63
68
  providerFactory.unsubscribeAll('collabEditProvider');
@@ -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.0";
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.0",
3
+ "version": "185.11.0",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1 @@
1
+ export { default as Editor } from './editor-next';