@atlaskit/editor-core 188.7.6 → 188.9.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 (117) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/composable-editor/editor-internal.js +2 -2
  3. package/dist/cjs/create-editor/ReactEditorView.js +796 -8
  4. package/dist/cjs/labs/next/presets/universal.js +7 -4
  5. package/dist/cjs/plugins/index.js +0 -21
  6. package/dist/cjs/plugins/type-ahead/index.js +4 -372
  7. package/dist/cjs/plugins/type-ahead/plugin.js +382 -0
  8. package/dist/cjs/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +17 -8
  9. package/dist/cjs/version-wrapper.js +1 -1
  10. package/dist/es2019/composable-editor/editor-internal.js +1 -1
  11. package/dist/es2019/create-editor/ReactEditorView.js +753 -2
  12. package/dist/es2019/labs/next/presets/universal.js +4 -1
  13. package/dist/es2019/plugins/index.js +0 -3
  14. package/dist/es2019/plugins/type-ahead/index.js +2 -375
  15. package/dist/es2019/plugins/type-ahead/plugin.js +381 -0
  16. package/dist/es2019/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +17 -8
  17. package/dist/es2019/version-wrapper.js +1 -1
  18. package/dist/esm/composable-editor/editor-internal.js +1 -1
  19. package/dist/esm/create-editor/ReactEditorView.js +797 -8
  20. package/dist/esm/labs/next/presets/universal.js +4 -1
  21. package/dist/esm/plugins/index.js +0 -3
  22. package/dist/esm/plugins/type-ahead/index.js +2 -368
  23. package/dist/esm/plugins/type-ahead/plugin.js +374 -0
  24. package/dist/esm/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +17 -8
  25. package/dist/esm/version-wrapper.js +1 -1
  26. package/dist/types/create-editor/ReactEditorView.d.ts +119 -5
  27. package/dist/types/labs/next/presets/default.d.ts +30 -12
  28. package/dist/types/plugins/index.d.ts +0 -3
  29. package/dist/types/plugins/insert-block/types.d.ts +1 -1
  30. package/dist/types/plugins/type-ahead/index.d.ts +3 -14
  31. package/dist/types/plugins/type-ahead/plugin.d.ts +10 -0
  32. package/dist/types/plugins/type-ahead/types.d.ts +51 -6
  33. package/dist/types/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.d.ts +1 -1
  34. package/dist/types-ts4.5/create-editor/ReactEditorView.d.ts +119 -5
  35. package/dist/types-ts4.5/labs/next/presets/default.d.ts +30 -12
  36. package/dist/types-ts4.5/plugins/index.d.ts +0 -3
  37. package/dist/types-ts4.5/plugins/insert-block/types.d.ts +1 -1
  38. package/dist/types-ts4.5/plugins/type-ahead/index.d.ts +3 -14
  39. package/dist/types-ts4.5/plugins/type-ahead/plugin.d.ts +10 -0
  40. package/dist/types-ts4.5/plugins/type-ahead/types.d.ts +53 -6
  41. package/dist/types-ts4.5/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.d.ts +1 -1
  42. package/package.json +6 -4
  43. package/dist/cjs/create-editor/ReactEditorViewInternal.js +0 -812
  44. package/dist/cjs/create-editor/ReactEditorViewNext.js +0 -15
  45. package/dist/cjs/plugins/save-on-enter/index.js +0 -70
  46. package/dist/cjs/plugins/scroll-into-view/index.js +0 -55
  47. package/dist/cjs/plugins/status/actions.js +0 -158
  48. package/dist/cjs/plugins/status/analytics.js +0 -31
  49. package/dist/cjs/plugins/status/index.js +0 -143
  50. package/dist/cjs/plugins/status/keymap.js +0 -22
  51. package/dist/cjs/plugins/status/nodeviews/status.js +0 -58
  52. package/dist/cjs/plugins/status/plugin-key.js +0 -9
  53. package/dist/cjs/plugins/status/plugin.js +0 -133
  54. package/dist/cjs/plugins/status/types.js +0 -5
  55. package/dist/cjs/plugins/status/ui/statusPicker.js +0 -314
  56. package/dist/cjs/plugins/status/utils.js +0 -22
  57. package/dist/cjs/plugins/view-update-subscription/subscribe/type-ahead-updates.js +0 -33
  58. package/dist/es2019/create-editor/ReactEditorViewInternal.js +0 -753
  59. package/dist/es2019/create-editor/ReactEditorViewNext.js +0 -7
  60. package/dist/es2019/plugins/save-on-enter/index.js +0 -63
  61. package/dist/es2019/plugins/scroll-into-view/index.js +0 -44
  62. package/dist/es2019/plugins/status/actions.js +0 -144
  63. package/dist/es2019/plugins/status/analytics.js +0 -18
  64. package/dist/es2019/plugins/status/index.js +0 -135
  65. package/dist/es2019/plugins/status/keymap.js +0 -13
  66. package/dist/es2019/plugins/status/nodeviews/status.js +0 -60
  67. package/dist/es2019/plugins/status/plugin-key.js +0 -3
  68. package/dist/es2019/plugins/status/plugin.js +0 -113
  69. package/dist/es2019/plugins/status/types.js +0 -1
  70. package/dist/es2019/plugins/status/ui/statusPicker.js +0 -293
  71. package/dist/es2019/plugins/status/utils.js +0 -12
  72. package/dist/es2019/plugins/view-update-subscription/subscribe/type-ahead-updates.js +0 -28
  73. package/dist/esm/create-editor/ReactEditorViewInternal.js +0 -806
  74. package/dist/esm/create-editor/ReactEditorViewNext.js +0 -7
  75. package/dist/esm/plugins/save-on-enter/index.js +0 -63
  76. package/dist/esm/plugins/scroll-into-view/index.js +0 -50
  77. package/dist/esm/plugins/status/actions.js +0 -151
  78. package/dist/esm/plugins/status/analytics.js +0 -24
  79. package/dist/esm/plugins/status/index.js +0 -136
  80. package/dist/esm/plugins/status/keymap.js +0 -15
  81. package/dist/esm/plugins/status/nodeviews/status.js +0 -51
  82. package/dist/esm/plugins/status/plugin-key.js +0 -3
  83. package/dist/esm/plugins/status/plugin.js +0 -115
  84. package/dist/esm/plugins/status/types.js +0 -1
  85. package/dist/esm/plugins/status/ui/statusPicker.js +0 -308
  86. package/dist/esm/plugins/status/utils.js +0 -16
  87. package/dist/esm/plugins/view-update-subscription/subscribe/type-ahead-updates.js +0 -27
  88. package/dist/types/create-editor/ReactEditorViewInternal.d.ts +0 -119
  89. package/dist/types/create-editor/ReactEditorViewNext.d.ts +0 -8
  90. package/dist/types/plugins/save-on-enter/index.d.ts +0 -10
  91. package/dist/types/plugins/scroll-into-view/index.d.ts +0 -14
  92. package/dist/types/plugins/status/actions.d.ts +0 -16
  93. package/dist/types/plugins/status/analytics.d.ts +0 -4
  94. package/dist/types/plugins/status/index.d.ts +0 -15
  95. package/dist/types/plugins/status/keymap.d.ts +0 -3
  96. package/dist/types/plugins/status/nodeviews/status.d.ts +0 -25
  97. package/dist/types/plugins/status/plugin-key.d.ts +0 -4
  98. package/dist/types/plugins/status/plugin.d.ts +0 -7
  99. package/dist/types/plugins/status/types.d.ts +0 -18
  100. package/dist/types/plugins/status/ui/statusPicker.d.ts +0 -63
  101. package/dist/types/plugins/status/utils.d.ts +0 -5
  102. package/dist/types/plugins/view-update-subscription/subscribe/type-ahead-updates.d.ts +0 -9
  103. package/dist/types-ts4.5/create-editor/ReactEditorViewInternal.d.ts +0 -119
  104. package/dist/types-ts4.5/create-editor/ReactEditorViewNext.d.ts +0 -8
  105. package/dist/types-ts4.5/plugins/save-on-enter/index.d.ts +0 -10
  106. package/dist/types-ts4.5/plugins/scroll-into-view/index.d.ts +0 -14
  107. package/dist/types-ts4.5/plugins/status/actions.d.ts +0 -16
  108. package/dist/types-ts4.5/plugins/status/analytics.d.ts +0 -4
  109. package/dist/types-ts4.5/plugins/status/index.d.ts +0 -17
  110. package/dist/types-ts4.5/plugins/status/keymap.d.ts +0 -3
  111. package/dist/types-ts4.5/plugins/status/nodeviews/status.d.ts +0 -25
  112. package/dist/types-ts4.5/plugins/status/plugin-key.d.ts +0 -4
  113. package/dist/types-ts4.5/plugins/status/plugin.d.ts +0 -7
  114. package/dist/types-ts4.5/plugins/status/types.d.ts +0 -18
  115. package/dist/types-ts4.5/plugins/status/ui/statusPicker.d.ts +0 -63
  116. package/dist/types-ts4.5/plugins/status/utils.d.ts +0 -5
  117. package/dist/types-ts4.5/plugins/view-update-subscription/subscribe/type-ahead-updates.d.ts +0 -9
@@ -8,6 +8,7 @@ exports.default = createUniversalPreset;
8
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _plugins = require("../../../plugins");
11
+ var _editorPluginStatus = require("@atlaskit/editor-plugin-status");
11
12
  var _date = require("../../../plugins/date");
12
13
  var _editorPluginCaption = require("@atlaskit/editor-plugin-caption");
13
14
  var _editorPluginBorder = require("@atlaskit/editor-plugin-border");
@@ -24,6 +25,8 @@ var _editorPluginCard = require("@atlaskit/editor-plugin-card");
24
25
  var _editorPluginTable = require("@atlaskit/editor-plugin-table");
25
26
  var _editorPluginContentInsertion = require("@atlaskit/editor-plugin-content-insertion");
26
27
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
28
+ var _editorPluginSaveOnEnter = require("@atlaskit/editor-plugin-save-on-enter");
29
+ var _editorPluginScrollIntoView = require("@atlaskit/editor-plugin-scroll-into-view");
27
30
  var _isFullPage = require("../../../utils/is-full-page");
28
31
  var _mediaCommon = require("@atlaskit/media-common");
29
32
  var _default = require("./default");
@@ -188,7 +191,7 @@ function createUniversalPreset(appearance, props, featureFlags, prevAppearance,
188
191
  return builder.add([plugin, !!props.legacyImageUploadProvider]);
189
192
  }
190
193
  return builder;
191
- }).maybeAdd(_plugins.saveOnEnterPlugin, function (plugin, builder) {
194
+ }).maybeAdd(_editorPluginSaveOnEnter.saveOnEnterPlugin, function (plugin, builder) {
192
195
  if (props.saveOnEnter && props.onSave) {
193
196
  return builder.add([plugin, props.onSave]);
194
197
  }
@@ -312,7 +315,7 @@ function createUniversalPreset(appearance, props, featureFlags, prevAppearance,
312
315
  return builder.add(plugin);
313
316
  }
314
317
  return builder;
315
- }).maybeAdd(_plugins.statusPlugin, function (plugin, builder) {
318
+ }).maybeAdd(_editorPluginStatus.statusPlugin, function (plugin, builder) {
316
319
  if (props.allowStatus) {
317
320
  return builder.add([plugin, {
318
321
  menuDisabled: statusMenuDisabled,
@@ -325,9 +328,9 @@ function createUniversalPreset(appearance, props, featureFlags, prevAppearance,
325
328
  return builder.add(plugin);
326
329
  }
327
330
  return builder;
328
- }).maybeAdd(_plugins.scrollIntoViewPlugin, function (plugin, builder) {
331
+ }).maybeAdd(_editorPluginScrollIntoView.scrollIntoViewPlugin, function (plugin, builder) {
329
332
  if (props.autoScrollIntoView !== false) {
330
- return builder.add(_plugins.scrollIntoViewPlugin);
333
+ return builder.add(_editorPluginScrollIntoView.scrollIntoViewPlugin);
331
334
  }
332
335
  return builder;
333
336
  }).maybeAdd(_plugins.historyPlugin, function (plugin, builder) {
@@ -209,24 +209,6 @@ Object.defineProperty(exports, "placeholderTextPlugin", {
209
209
  return _placeholderText.default;
210
210
  }
211
211
  });
212
- Object.defineProperty(exports, "saveOnEnterPlugin", {
213
- enumerable: true,
214
- get: function get() {
215
- return _saveOnEnter.default;
216
- }
217
- });
218
- Object.defineProperty(exports, "scrollIntoViewPlugin", {
219
- enumerable: true,
220
- get: function get() {
221
- return _scrollIntoView.default;
222
- }
223
- });
224
- Object.defineProperty(exports, "statusPlugin", {
225
- enumerable: true,
226
- get: function get() {
227
- return _status.default;
228
- }
229
- });
230
212
  Object.defineProperty(exports, "submitEditorPlugin", {
231
213
  enumerable: true,
232
214
  get: function get() {
@@ -286,12 +268,10 @@ var _mentions = _interopRequireDefault(require("./mentions"));
286
268
  var _panel = _interopRequireDefault(require("./panel"));
287
269
  var _paste = _interopRequireDefault(require("./paste"));
288
270
  var _placeholderText = _interopRequireDefault(require("./placeholder-text"));
289
- var _saveOnEnter = _interopRequireDefault(require("./save-on-enter"));
290
271
  var _submitEditor = _interopRequireDefault(require("./submit-editor"));
291
272
  var _tasksAndDecisions = _interopRequireDefault(require("./tasks-and-decisions"));
292
273
  var _textColor = _interopRequireDefault(require("./text-color"));
293
274
  var _typeAhead = _interopRequireDefault(require("./type-ahead"));
294
- var _status = _interopRequireDefault(require("./status"));
295
275
  var _breakout = _interopRequireDefault(require("./breakout"));
296
276
  var _alignment = _interopRequireDefault(require("./alignment"));
297
277
  var _dataConsumer = _interopRequireDefault(require("./data-consumer"));
@@ -303,7 +283,6 @@ var _customAutoformat = _interopRequireDefault(require("./custom-autoformat"));
303
283
  var _feedbackDialog = _interopRequireDefault(require("./feedback-dialog"));
304
284
  var _history = _interopRequireDefault(require("./history"));
305
285
  var _expand = _interopRequireWildcard(require("./expand"));
306
- var _scrollIntoView = _interopRequireDefault(require("./scroll-into-view"));
307
286
  var _mobileDimensions = _interopRequireDefault(require("./mobile-dimensions"));
308
287
  var _findReplace = _interopRequireDefault(require("./find-replace"));
309
288
  var _mobileSelection = _interopRequireDefault(require("./mobile-selection"));
@@ -1,382 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.default = void 0;
8
- Object.defineProperty(exports, "typeAheadPluginKey", {
7
+ Object.defineProperty(exports, "typeAheadPlugin", {
9
8
  enumerable: true,
10
9
  get: function get() {
11
- return _key.pluginKey;
10
+ return _plugin.typeAheadPlugin;
12
11
  }
13
12
  });
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
- var _react = _interopRequireDefault(require("react"));
16
- var _typeAhead = require("@atlaskit/editor-common/type-ahead");
17
- var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
18
- var _main = require("./pm-plugins/main");
19
- var _insertItemPlugin = require("./pm-plugins/insert-item-plugin");
20
- var _withPluginState = require("@atlaskit/editor-common/with-plugin-state");
21
- var _adfSchema = require("@atlaskit/adf-schema");
22
- var _key = require("./pm-plugins/key");
23
- var _inputRules = require("./pm-plugins/input-rules");
24
- var _TypeAheadPopup = require("./ui/TypeAheadPopup");
25
- var _utils = require("./utils");
26
- var _useItemInsert3 = require("./ui/hooks/use-item-insert");
27
- var _updateSelectedIndex = require("./commands/update-selected-index");
28
- var _statsModifier = require("./stats-modifier");
29
- var _analytics = require("@atlaskit/editor-common/analytics");
30
- var _openTypeaheadAtCursor = require("./transforms/open-typeahead-at-cursor");
31
- var _closeTypeAhead = require("./transforms/close-type-ahead");
32
- var _insertTypeAheadItem = require("./commands/insert-type-ahead-item");
33
- /**
34
- *
35
- * Revamped typeahead using decorations instead of the `typeAheadQuery` mark
36
- *
37
- * https://product-fabric.atlassian.net/wiki/spaces/E/pages/2992177582/Technical+TypeAhead+Data+Flow
38
- *
39
- *
40
- */
41
-
42
- var TypeAheadMenu = /*#__PURE__*/_react.default.memo(function (_ref) {
43
- var _popupMountRef$curren, _popupMountRef$curren2, _popupMountRef$curren3;
44
- var editorView = _ref.editorView,
45
- popupMountRef = _ref.popupMountRef,
46
- typeAheadState = _ref.typeAheadState,
47
- fireAnalyticsCallback = _ref.fireAnalyticsCallback;
48
- var isOpen = typeAheadState.decorationSet.find().length > 0;
49
- var triggerHandler = typeAheadState.triggerHandler,
50
- items = typeAheadState.items,
51
- selectedIndex = typeAheadState.selectedIndex,
52
- decorationElement = typeAheadState.decorationElement,
53
- decorationSet = typeAheadState.decorationSet,
54
- query = typeAheadState.query;
55
- var _useItemInsert = (0, _useItemInsert3.useItemInsert)(triggerHandler, editorView, items),
56
- _useItemInsert2 = (0, _slicedToArray2.default)(_useItemInsert, 3),
57
- onItemInsert = _useItemInsert2[0],
58
- onTextInsert = _useItemInsert2[1],
59
- onItemMatch = _useItemInsert2[2];
60
- var setSelectedItem = _react.default.useCallback(function (_ref2) {
61
- var nextIndex = _ref2.index;
62
- queueMicrotask(function () {
63
- (0, _updateSelectedIndex.updateSelectedIndex)(nextIndex)(editorView.state, editorView.dispatch);
64
- });
65
- }, [editorView]);
66
- var insertItem = _react.default.useCallback(function () {
67
- var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _typeAhead.SelectItemMode.SELECTED;
68
- var index = arguments.length > 1 ? arguments[1] : undefined;
69
- queueMicrotask(function () {
70
- onItemInsert({
71
- mode: mode,
72
- index: index,
73
- query: query
74
- });
75
- });
76
- }, [onItemInsert, query]);
77
- var cancel = _react.default.useCallback(function (_ref3) {
78
- var setSelectionAt = _ref3.setSelectionAt,
79
- addPrefixTrigger = _ref3.addPrefixTrigger,
80
- forceFocusOnEditor = _ref3.forceFocusOnEditor;
81
- var fullQuery = addPrefixTrigger ? "".concat(triggerHandler === null || triggerHandler === void 0 ? void 0 : triggerHandler.trigger).concat(query) : query;
82
- onTextInsert({
83
- forceFocusOnEditor: forceFocusOnEditor,
84
- setSelectionAt: setSelectionAt,
85
- text: fullQuery
86
- });
87
- }, [triggerHandler, onTextInsert, query]);
88
- _react.default.useEffect(function () {
89
- if (!isOpen || !query) {
90
- return;
91
- }
92
- var isLastCharSpace = query[query.length - 1] === ' ';
93
- if (!isLastCharSpace) {
94
- return;
95
- }
96
- var result = onItemMatch({
97
- mode: _typeAhead.SelectItemMode.SPACE,
98
- query: query.trim()
99
- });
100
- if (!result) {
101
- return;
102
- }
103
- }, [isOpen, query, onItemMatch]);
104
- if (!isOpen || !triggerHandler || !(decorationElement instanceof HTMLElement) || items.length === 0) {
105
- return null;
106
- }
107
- return /*#__PURE__*/_react.default.createElement(_TypeAheadPopup.TypeAheadPopup, {
108
- editorView: editorView,
109
- popupsMountPoint: (_popupMountRef$curren = popupMountRef.current) === null || _popupMountRef$curren === void 0 ? void 0 : _popupMountRef$curren.popupsMountPoint,
110
- popupsBoundariesElement: (_popupMountRef$curren2 = popupMountRef.current) === null || _popupMountRef$curren2 === void 0 ? void 0 : _popupMountRef$curren2.popupsBoundariesElement,
111
- popupsScrollableElement: (_popupMountRef$curren3 = popupMountRef.current) === null || _popupMountRef$curren3 === void 0 ? void 0 : _popupMountRef$curren3.popupsScrollableElement,
112
- anchorElement: decorationElement,
113
- triggerHandler: triggerHandler,
114
- fireAnalyticsCallback: fireAnalyticsCallback,
115
- items: items,
116
- selectedIndex: selectedIndex,
117
- setSelectedItem: setSelectedItem,
118
- onItemInsert: insertItem,
119
- decorationSet: decorationSet,
120
- isEmptyQuery: !query,
121
- cancel: cancel
122
- });
123
- });
124
- var createOpenAtTransaction = function createOpenAtTransaction(editorAnalyticsAPI) {
125
- return function (props) {
126
- return function (tr) {
127
- var triggerHandler = props.triggerHandler,
128
- inputMethod = props.inputMethod;
129
- (0, _openTypeaheadAtCursor.openTypeAheadAtCursor)({
130
- triggerHandler: triggerHandler,
131
- inputMethod: inputMethod
132
- })({
133
- tr: tr
134
- });
135
- editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({
136
- action: _analytics.ACTION.INVOKED,
137
- actionSubject: _analytics.ACTION_SUBJECT.TYPEAHEAD,
138
- actionSubjectId: triggerHandler.id,
139
- attributes: {
140
- inputMethod: inputMethod
141
- },
142
- eventType: _analytics.EVENT_TYPE.UI
143
- })(tr);
144
- return true;
145
- };
146
- };
147
- };
148
- var createOpenTypeAhead = function createOpenTypeAhead(editorViewRef, editorAnalyticsAPI) {
149
- return function (props) {
150
- if (!editorViewRef.current) {
151
- return false;
152
- }
153
- var view = editorViewRef.current;
154
- var tr = view.state.tr;
155
- createOpenAtTransaction(editorAnalyticsAPI)(props)(tr);
156
- view.dispatch(tr);
157
- return true;
158
- };
159
- };
160
- var createInsertTypeAheadItem = function createInsertTypeAheadItem(editorViewRef) {
161
- return function (props) {
162
- if (!editorViewRef.current) {
163
- return false;
164
- }
165
- var view = editorViewRef.current;
166
- var triggerHandler = props.triggerHandler,
167
- contentItem = props.contentItem,
168
- query = props.query,
169
- sourceListItem = props.sourceListItem,
170
- mode = props.mode;
171
- (0, _insertTypeAheadItem.insertTypeAheadItem)(view)({
172
- handler: triggerHandler,
173
- item: contentItem,
174
- mode: mode || _typeAhead.SelectItemMode.SELECTED,
175
- query: query,
176
- sourceListItem: sourceListItem
177
- });
178
- return true;
179
- };
180
- };
181
- var createFindHandlerByTrigger = function createFindHandlerByTrigger(editorViewRef) {
182
- return function (trigger) {
183
- if (!editorViewRef.current) {
184
- return null;
185
- }
186
- var view = editorViewRef.current;
187
- return (0, _utils.findHandler)(trigger, view.state);
188
- };
189
- };
190
- var createCloseTypeAhead = function createCloseTypeAhead(editorViewRef) {
191
- return function (options) {
192
- if (!editorViewRef.current) {
193
- return false;
194
- }
195
- var view = editorViewRef.current;
196
- var currentQuery = (0, _utils.getTypeAheadQuery)(view.state) || '';
197
- var state = view.state;
198
- var tr = state.tr;
199
- if (options.attachCommand) {
200
- var fakeDispatch = function fakeDispatch(customTr) {
201
- tr = customTr;
202
- };
203
- options.attachCommand(state, fakeDispatch);
204
- }
205
- (0, _closeTypeAhead.closeTypeAhead)(tr);
206
- if (options.insertCurrentQueryAsRawText && currentQuery && currentQuery.length > 0) {
207
- var handler = (0, _utils.getTypeAheadHandler)(state);
208
- if (!handler) {
209
- return false;
210
- }
211
- var text = handler.trigger.concat(currentQuery);
212
- tr.replaceSelectionWith(state.schema.text(text));
213
- }
214
- view.dispatch(tr);
215
- if (!view.hasFocus()) {
216
- view.focus();
217
- }
218
- return true;
219
- };
220
- };
221
-
222
- /**
223
- *
224
- * Revamped typeahead using decorations instead of the `typeAheadQuery` mark
225
- *
226
- * https://product-fabric.atlassian.net/wiki/spaces/E/pages/2992177582/Technical+TypeAhead+Data+Flow
227
- *
228
- *
229
- */
230
- var typeAheadPlugin = function typeAheadPlugin(_ref4) {
231
- var _api$analytics, _api$analytics2;
232
- var options = _ref4.config,
233
- api = _ref4.api;
234
- var fireAnalyticsCallback = (0, _analytics.fireAnalyticsEvent)(options === null || options === void 0 ? void 0 : options.createAnalyticsEvent);
235
- var popupMountRef = {
236
- current: null
237
- };
238
- var editorViewRef = {
239
- current: null
240
- };
241
- return {
242
- name: 'typeAhead',
243
- marks: function marks() {
244
- // We need to keep this to make sure
245
- // All documents with typeahead marks will be loaded normally
246
- return [{
247
- name: 'typeAheadQuery',
248
- mark: _adfSchema.typeAheadQuery
249
- }];
250
- },
251
- pmPlugins: function pmPlugins() {
252
- var typeAhead = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
253
- return [{
254
- name: 'typeAhead',
255
- plugin: function plugin(_ref5) {
256
- var dispatch = _ref5.dispatch,
257
- getIntl = _ref5.getIntl;
258
- return (0, _main.createPlugin)({
259
- getIntl: getIntl,
260
- popupMountRef: popupMountRef,
261
- reactDispatch: dispatch,
262
- typeAheadHandlers: typeAhead,
263
- createAnalyticsEvent: options === null || options === void 0 ? void 0 : options.createAnalyticsEvent
264
- });
265
- }
266
- }, {
267
- name: 'typeAheadEditorViewRef',
268
- plugin: function plugin() {
269
- return new _safePlugin.SafePlugin({
270
- view: function view(_view) {
271
- editorViewRef.current = _view;
272
- return {
273
- destroy: function destroy() {
274
- editorViewRef.current = null;
275
- }
276
- };
277
- }
278
- });
279
- }
280
- }, {
281
- name: 'typeAheadInsertItem',
282
- plugin: _insertItemPlugin.createPlugin
283
- }, {
284
- name: 'typeAheadInputRule',
285
- plugin: function plugin(_ref6) {
286
- var schema = _ref6.schema,
287
- featureFlags = _ref6.featureFlags;
288
- return (0, _inputRules.inputRulePlugin)(schema, typeAhead, featureFlags);
289
- }
290
- }];
291
- },
292
- getSharedState: function getSharedState(editorState) {
293
- if (!editorState) {
294
- return {
295
- query: ''
296
- };
297
- }
298
- return {
299
- query: (0, _utils.getTypeAheadQuery)(editorState) || ''
300
- };
301
- },
302
- actions: {
303
- isOpen: _utils.isTypeAheadOpen,
304
- isAllowed: _utils.isTypeAheadAllowed,
305
- open: createOpenTypeAhead(editorViewRef, api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions),
306
- openAtTransaction: createOpenAtTransaction(api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions),
307
- findHandlerByTrigger: createFindHandlerByTrigger(editorViewRef),
308
- insert: createInsertTypeAheadItem(editorViewRef),
309
- close: createCloseTypeAhead(editorViewRef)
310
- },
311
- contentComponent: function contentComponent(_ref7) {
312
- var editorView = _ref7.editorView,
313
- containerElement = _ref7.containerElement,
314
- popupsMountPoint = _ref7.popupsMountPoint,
315
- popupsBoundariesElement = _ref7.popupsBoundariesElement,
316
- popupsScrollableElement = _ref7.popupsScrollableElement,
317
- wrapperElement = _ref7.wrapperElement;
318
- popupMountRef.current = {
319
- popupsMountPoint: popupsMountPoint || wrapperElement || undefined,
320
- popupsBoundariesElement: popupsBoundariesElement,
321
- popupsScrollableElement: popupsScrollableElement || containerElement || undefined
322
- };
323
- return /*#__PURE__*/_react.default.createElement(_withPluginState.WithPluginState, {
324
- plugins: {
325
- typeAheadState: _key.pluginKey
326
- },
327
- render: function render(_ref8) {
328
- var typeAheadState = _ref8.typeAheadState;
329
- if (!typeAheadState) {
330
- return null;
331
- }
332
- return /*#__PURE__*/_react.default.createElement(TypeAheadMenu, {
333
- editorView: editorView,
334
- popupMountRef: popupMountRef,
335
- typeAheadState: typeAheadState,
336
- fireAnalyticsCallback: fireAnalyticsCallback
337
- });
338
- }
339
- });
340
- },
341
- onEditorViewStateUpdated: function onEditorViewStateUpdated(_ref9) {
342
- var originalTransaction = _ref9.originalTransaction,
343
- oldEditorState = _ref9.oldEditorState,
344
- newEditorState = _ref9.newEditorState;
345
- var oldPluginState = (0, _utils.getPluginState)(oldEditorState);
346
- var newPluginState = (0, _utils.getPluginState)(newEditorState);
347
- if (!oldPluginState || !newPluginState) {
348
- return;
349
- }
350
- var oldTriggerHandler = oldPluginState.triggerHandler;
351
- var newTriggerHandler = newPluginState.triggerHandler;
352
- var isANewHandler = oldTriggerHandler !== newTriggerHandler;
353
- if (oldTriggerHandler !== null && oldTriggerHandler !== void 0 && oldTriggerHandler.dismiss && isANewHandler) {
354
- var typeAheadMessage = originalTransaction.getMeta(_key.pluginKey);
355
- var wasItemInserted = typeAheadMessage && typeAheadMessage.action === 'INSERT_RAW_QUERY';
356
- oldTriggerHandler.dismiss({
357
- editorState: newEditorState,
358
- query: oldPluginState.query,
359
- stats: (oldPluginState.stats || new _statsModifier.StatsModifier()).serialize(),
360
- wasItemInserted: wasItemInserted
361
- });
362
- }
363
- if (newTriggerHandler !== null && newTriggerHandler !== void 0 && newTriggerHandler.onOpen && isANewHandler) {
364
- newTriggerHandler.onOpen(newEditorState);
365
- }
366
- if (newTriggerHandler && isANewHandler && options !== null && options !== void 0 && options.createAnalyticsEvent) {
367
- fireAnalyticsCallback({
368
- payload: {
369
- action: _analytics.ACTION.INVOKED,
370
- actionSubject: _analytics.ACTION_SUBJECT.TYPEAHEAD,
371
- actionSubjectId: newTriggerHandler.id || 'not_set',
372
- attributes: {
373
- inputMethod: newPluginState.inputMethod || _analytics.INPUT_METHOD.KEYBOARD
374
- },
375
- eventType: _analytics.EVENT_TYPE.UI
376
- }
377
- });
378
- }
379
- }
380
- };
381
- };
382
- var _default = exports.default = typeAheadPlugin;
13
+ var _plugin = require("./plugin");
14
+ var _default = exports.default = _plugin.typeAheadPlugin;