@atlaskit/editor-plugin-hyperlink 0.6.11 → 0.8.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @atlaskit/editor-plugin-hyperlink
2
2
 
3
+ ## 0.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#66364](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/66364) [`212c782cb7a6`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/212c782cb7a6) - No longer require `cardOptions` to be passed to the hyperlink plugin configuration, it exposes a new optional way to skip analytics via the prependToolbarButtons action.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+
13
+ ## 0.7.0
14
+
15
+ ### Minor Changes
16
+
17
+ - [#65019](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/65019) [`7290a6f8d435`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/7290a6f8d435) - Adding lpLinkPicker param to card and hyperlink plugins instead of using feature flag
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies
22
+
3
23
  ## 0.6.11
4
24
 
5
25
  ### Patch Changes
@@ -72,7 +72,7 @@ function HyperlinkAddToolbarWithState(_ref) {
72
72
  view = _ref.view,
73
73
  onCancel = _ref.onCancel,
74
74
  invokeMethod = _ref.invokeMethod,
75
- featureFlags = _ref.featureFlags,
75
+ lpLinkPicker = _ref.lpLinkPicker,
76
76
  onClose = _ref.onClose,
77
77
  onEscapeCallback = _ref.onEscapeCallback,
78
78
  onClickAwayCallback = _ref.onClickAwayCallback,
@@ -88,7 +88,7 @@ function HyperlinkAddToolbarWithState(_ref) {
88
88
  view: view,
89
89
  onCancel: onCancel,
90
90
  invokeMethod: invokeMethod,
91
- featureFlags: featureFlags,
91
+ lpLinkPicker: lpLinkPicker,
92
92
  onClose: onClose,
93
93
  onEscapeCallback: onEscapeCallback,
94
94
  onClickAwayCallback: onClickAwayCallback,
@@ -108,13 +108,13 @@ var getSettingsButtonGroup = function getSettingsButtonGroup(intl, editorAnalyti
108
108
  target: '_blank'
109
109
  }];
110
110
  };
111
- var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(options, featureFlags, pluginInjectionApi) {
111
+ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(options, pluginInjectionApi) {
112
112
  return function (state, intl, providerFactory) {
113
- var _pluginInjectionApi$a;
113
+ var _pluginInjectionApi$a, _options$lpLinkPicker;
114
114
  var formatMessage = intl.formatMessage;
115
115
  var linkState = _main.stateKey.getState(state);
116
116
  var editorAnalyticsApi = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a === void 0 ? void 0 : _pluginInjectionApi$a.actions;
117
- var lpLinkPicker = featureFlags.lpLinkPicker;
117
+ var lpLinkPicker = (_options$lpLinkPicker = options.lpLinkPicker) !== null && _options$lpLinkPicker !== void 0 ? _options$lpLinkPicker : true;
118
118
  if (linkState && linkState.activeLinkMark) {
119
119
  var activeLinkMark = linkState.activeLinkMark;
120
120
  var hyperLinkToolbar = {
@@ -228,7 +228,7 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(opti
228
228
  view: view,
229
229
  key: idx,
230
230
  linkPickerOptions: options === null || options === void 0 ? void 0 : options.linkPicker,
231
- featureFlags: featureFlags,
231
+ lpLinkPicker: lpLinkPicker,
232
232
  displayUrl: _link,
233
233
  displayText: displayText || '',
234
234
  providerFactory: providerFactory,
@@ -238,18 +238,19 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(opti
238
238
  onEscapeCallback: _commands.onEscapeCallback,
239
239
  onClickAwayCallback: _commands.onClickAwayCallback,
240
240
  onSubmit: function onSubmit(href) {
241
- var _options$cardOptions;
241
+ var _toolbarKey$getState$2, _toolbarKey$getState2;
242
242
  var title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
243
243
  var displayText = arguments.length > 2 ? arguments[2] : undefined;
244
244
  var inputMethod = arguments.length > 3 ? arguments[3] : undefined;
245
245
  var analytic = arguments.length > 4 ? arguments[4] : undefined;
246
246
  var isEdit = isEditLink(activeLinkMark);
247
247
  var action = isEdit ? _analytics.ACTION.UPDATED : _analytics.ACTION.INSERTED;
248
+ var skipAnalytics = (_toolbarKey$getState$2 = (_toolbarKey$getState2 = _toolbarButtons.toolbarKey.getState(state)) === null || _toolbarKey$getState2 === void 0 ? void 0 : _toolbarKey$getState2.skipAnalytics) !== null && _toolbarKey$getState$2 !== void 0 ? _toolbarKey$getState$2 : false;
248
249
  var command = isEdit ? (0, _card.commandWithMetadata)((0, _commands.updateLink)(href, displayText || title, activeLinkMark.pos), {
249
250
  action: action,
250
251
  inputMethod: inputMethod,
251
252
  sourceEvent: analytic
252
- }) : (0, _commands.insertLinkWithAnalytics)(inputMethod, activeLinkMark.from, activeLinkMark.to, href, editorAnalyticsApi, title, displayText, !!(options !== null && options !== void 0 && (_options$cardOptions = options.cardOptions) !== null && _options$cardOptions !== void 0 && _options$cardOptions.provider), analytic);
253
+ }) : (0, _commands.insertLinkWithAnalytics)(inputMethod, activeLinkMark.from, activeLinkMark.to, href, editorAnalyticsApi, title, displayText, skipAnalytics, analytic);
253
254
  command(view.state, view.dispatch, view);
254
255
  view.focus();
255
256
  }
@@ -24,11 +24,9 @@ var _Toolbar = require("./Toolbar");
24
24
  * from `@atlaskit/editor-core`.
25
25
  */
26
26
  var hyperlinkPlugin = exports.hyperlinkPlugin = function hyperlinkPlugin(_ref) {
27
- var _api$featureFlags;
28
27
  var _ref$config = _ref.config,
29
28
  options = _ref$config === void 0 ? {} : _ref$config,
30
29
  api = _ref.api;
31
- var featureFlags = (api === null || api === void 0 || (_api$featureFlags = api.featureFlags) === null || _api$featureFlags === void 0 ? void 0 : _api$featureFlags.sharedState.currentState()) || {};
32
30
  return {
33
31
  name: 'hyperlink',
34
32
  marks: function marks() {
@@ -63,10 +61,6 @@ var hyperlinkPlugin = exports.hyperlinkPlugin = function hyperlinkPlugin(_ref) {
63
61
  return _main.stateKey.getState(editorState);
64
62
  },
65
63
  pmPlugins: function pmPlugins() {
66
- var _options$cardOptions;
67
- // Skip analytics if card provider is available, as they will be
68
- // sent on handleRejected upon attempting to resolve smart link.
69
- var skipAnalytics = !!(options !== null && options !== void 0 && (_options$cardOptions = options.cardOptions) !== null && _options$cardOptions !== void 0 && _options$cardOptions.provider);
70
64
  return [{
71
65
  name: 'hyperlink',
72
66
  plugin: function plugin(_ref2) {
@@ -82,15 +76,14 @@ var hyperlinkPlugin = exports.hyperlinkPlugin = function hyperlinkPlugin(_ref) {
82
76
  name: 'hyperlinkInputRule',
83
77
  plugin: function plugin(_ref3) {
84
78
  var _api$analytics3;
85
- var schema = _ref3.schema,
86
- featureFlags = _ref3.featureFlags;
87
- return (0, _inputRule.createInputRulePlugin)(schema, skipAnalytics, featureFlags, api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions);
79
+ var schema = _ref3.schema;
80
+ return (0, _inputRule.createInputRulePlugin)(schema, api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions);
88
81
  }
89
82
  }, {
90
83
  name: 'hyperlinkKeymap',
91
84
  plugin: function plugin() {
92
85
  var _api$analytics4;
93
- return (0, _keymap.createKeymapPlugin)(skipAnalytics, api === null || api === void 0 || (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions);
86
+ return (0, _keymap.createKeymapPlugin)(api === null || api === void 0 || (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions);
94
87
  }
95
88
  }, {
96
89
  name: 'hyperlinkToolbarButtons',
@@ -130,7 +123,7 @@ var hyperlinkPlugin = exports.hyperlinkPlugin = function hyperlinkPlugin(_ref) {
130
123
  }
131
124
  }];
132
125
  },
133
- floatingToolbar: (0, _Toolbar.getToolbarConfig)(options, featureFlags, api)
126
+ floatingToolbar: (0, _Toolbar.getToolbarConfig)(options, api)
134
127
  }
135
128
  };
136
129
  };
@@ -12,11 +12,11 @@ var _analytics = require("@atlaskit/editor-common/analytics");
12
12
  var _card = require("@atlaskit/editor-common/card");
13
13
  var _utils = require("@atlaskit/editor-common/utils");
14
14
  var _prosemirrorInputRules = require("@atlaskit/prosemirror-input-rules");
15
- function createLinkInputRule(regexp) {
16
- var skipAnalytics = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
17
- var editorAnalyticsApi = arguments.length > 2 ? arguments[2] : undefined;
15
+ var _toolbarButtons = require("./toolbar-buttons");
16
+ function createLinkInputRule(regexp, editorAnalyticsApi) {
18
17
  // Plain typed text (eg, typing 'www.google.com') should convert to a hyperlink
19
18
  return (0, _prosemirrorInputRules.createRule)(regexp, function (state, match, start, end) {
19
+ var _toolbarKey$getState$, _toolbarKey$getState;
20
20
  var schema = state.schema;
21
21
  if (state.doc.rangeHasMark(start, end, schema.marks.link)) {
22
22
  return null;
@@ -52,6 +52,7 @@ function createLinkInputRule(regexp) {
52
52
  (0, _card.addLinkMetadata)(state.selection, tr, {
53
53
  inputMethod: _analytics.INPUT_METHOD.AUTO_DETECT
54
54
  });
55
+ var skipAnalytics = (_toolbarKey$getState$ = (_toolbarKey$getState = _toolbarButtons.toolbarKey.getState(state)) === null || _toolbarKey$getState === void 0 ? void 0 : _toolbarKey$getState.skipAnalytics) !== null && _toolbarKey$getState$ !== void 0 ? _toolbarKey$getState$ : false;
55
56
  if (skipAnalytics) {
56
57
  return tr;
57
58
  }
@@ -59,17 +60,15 @@ function createLinkInputRule(regexp) {
59
60
  return tr;
60
61
  });
61
62
  }
62
- function createInputRulePlugin(schema) {
63
- var skipAnalytics = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
64
- var featureFlags = arguments.length > 2 ? arguments[2] : undefined;
65
- var editorAnalyticsApi = arguments.length > 3 ? arguments[3] : undefined;
63
+ function createInputRulePlugin(schema, editorAnalyticsApi) {
66
64
  if (!schema.marks.link) {
67
65
  return;
68
66
  }
69
- var urlWithASpaceRule = createLinkInputRule(_utils.LinkMatcher.create(), skipAnalytics, editorAnalyticsApi);
67
+ var urlWithASpaceRule = createLinkInputRule(_utils.LinkMatcher.create(), editorAnalyticsApi);
70
68
 
71
69
  // [something](link) should convert to a hyperlink
72
70
  var markdownLinkRule = (0, _prosemirrorInputRules.createRule)(/(^|[^!])\[(.*?)\]\((\S+)\)$/, function (state, match, start, end) {
71
+ var _toolbarKey$getState$2, _toolbarKey$getState2;
73
72
  var schema = state.schema;
74
73
  var _match = (0, _slicedToArray2.default)(match, 4),
75
74
  prefix = _match[1],
@@ -83,6 +82,7 @@ function createInputRulePlugin(schema) {
83
82
  (0, _card.addLinkMetadata)(state.selection, tr, {
84
83
  inputMethod: _analytics.INPUT_METHOD.FORMATTING
85
84
  });
85
+ var skipAnalytics = (_toolbarKey$getState$2 = (_toolbarKey$getState2 = _toolbarButtons.toolbarKey.getState(state)) === null || _toolbarKey$getState2 === void 0 ? void 0 : _toolbarKey$getState2.skipAnalytics) !== null && _toolbarKey$getState$2 !== void 0 ? _toolbarKey$getState$2 : false;
86
86
  if (skipAnalytics) {
87
87
  return tr;
88
88
  }
@@ -13,13 +13,12 @@ var _utils = require("@atlaskit/editor-common/utils");
13
13
  var _keymap = require("@atlaskit/editor-prosemirror/keymap");
14
14
  var _commands = require("../commands");
15
15
  var _main = require("../pm-plugins/main");
16
- function createKeymapPlugin() {
17
- var skipAnalytics = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
18
- var editorAnalyticsApi = arguments.length > 1 ? arguments[1] : undefined;
16
+ var _toolbarButtons = require("./toolbar-buttons");
17
+ function createKeymapPlugin(editorAnalyticsApi) {
19
18
  var list = {};
20
19
  (0, _keymaps.bindKeymapWithEditorCommand)(_keymaps.addLink.common, (0, _commands.showLinkToolbar)(_analytics.INPUT_METHOD.SHORTCUT, editorAnalyticsApi), list);
21
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.enter.common, mayConvertLastWordToHyperlink(skipAnalytics, editorAnalyticsApi), list);
22
- (0, _keymaps.bindKeymapWithCommand)(_keymaps.insertNewLine.common, mayConvertLastWordToHyperlink(skipAnalytics, editorAnalyticsApi), list);
20
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.enter.common, mayConvertLastWordToHyperlink(editorAnalyticsApi), list);
21
+ (0, _keymaps.bindKeymapWithCommand)(_keymaps.insertNewLine.common, mayConvertLastWordToHyperlink(editorAnalyticsApi), list);
23
22
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.escape.common, function (state, dispatch, view) {
24
23
  var hyperlinkPlugin = _main.stateKey.getState(state);
25
24
  if (hyperlinkPlugin.activeLinkMark) {
@@ -33,8 +32,10 @@ function createKeymapPlugin() {
33
32
  }, list);
34
33
  return (0, _keymap.keymap)(list);
35
34
  }
36
- var mayConvertLastWordToHyperlink = function mayConvertLastWordToHyperlink(skipAnalytics, editorAnalyticsApi) {
35
+ var mayConvertLastWordToHyperlink = function mayConvertLastWordToHyperlink(editorAnalyticsApi) {
37
36
  return function (state, dispatch) {
37
+ var _toolbarKey$getState$, _toolbarKey$getState;
38
+ var skipAnalytics = (_toolbarKey$getState$ = (_toolbarKey$getState = _toolbarButtons.toolbarKey.getState(state)) === null || _toolbarKey$getState === void 0 ? void 0 : _toolbarKey$getState.skipAnalytics) !== null && _toolbarKey$getState$ !== void 0 ? _toolbarKey$getState$ : false;
38
39
  var nodeBefore = state.selection.$from.nodeBefore;
39
40
  if (!nodeBefore || !nodeBefore.isText || !nodeBefore.text) {
40
41
  return false;
@@ -11,13 +11,15 @@ var prependToolbarButtons = exports.prependToolbarButtons = function prependTool
11
11
  var items = _ref.items,
12
12
  onEscapeCallback = _ref.onEscapeCallback,
13
13
  onInsertLinkCallback = _ref.onInsertLinkCallback,
14
+ skipAnalytics = _ref.skipAnalytics,
14
15
  view = _ref.view;
15
16
  var tr = view.state.tr,
16
17
  dispatch = view.dispatch;
17
18
  tr.setMeta(toolbarKey, {
18
19
  items: items,
19
20
  onEscapeCallback: onEscapeCallback,
20
- onInsertLinkCallback: onInsertLinkCallback
21
+ onInsertLinkCallback: onInsertLinkCallback,
22
+ skipAnalytics: skipAnalytics
21
23
  });
22
24
  dispatch(tr);
23
25
  };
@@ -55,7 +55,7 @@ export function HyperlinkAddToolbarWithState({
55
55
  view,
56
56
  onCancel,
57
57
  invokeMethod,
58
- featureFlags,
58
+ lpLinkPicker,
59
59
  onClose,
60
60
  onEscapeCallback,
61
61
  onClickAwayCallback,
@@ -73,7 +73,7 @@ export function HyperlinkAddToolbarWithState({
73
73
  view: view,
74
74
  onCancel: onCancel,
75
75
  invokeMethod: invokeMethod,
76
- featureFlags: featureFlags,
76
+ lpLinkPicker: lpLinkPicker,
77
77
  onClose: onClose,
78
78
  onEscapeCallback: onEscapeCallback,
79
79
  onClickAwayCallback: onClickAwayCallback,
@@ -91,16 +91,14 @@ const getSettingsButtonGroup = (intl, editorAnalyticsApi) => [{
91
91
  href: 'https://id.atlassian.com/manage-profile/link-preferences',
92
92
  target: '_blank'
93
93
  }];
94
- export const getToolbarConfig = (options, featureFlags, pluginInjectionApi) => (state, intl, providerFactory) => {
95
- var _pluginInjectionApi$a;
94
+ export const getToolbarConfig = (options, pluginInjectionApi) => (state, intl, providerFactory) => {
95
+ var _pluginInjectionApi$a, _options$lpLinkPicker;
96
96
  const {
97
97
  formatMessage
98
98
  } = intl;
99
99
  const linkState = stateKey.getState(state);
100
100
  const editorAnalyticsApi = pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$a = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a === void 0 ? void 0 : _pluginInjectionApi$a.actions;
101
- const {
102
- lpLinkPicker
103
- } = featureFlags;
101
+ const lpLinkPicker = (_options$lpLinkPicker = options.lpLinkPicker) !== null && _options$lpLinkPicker !== void 0 ? _options$lpLinkPicker : true;
104
102
  if (linkState && linkState.activeLinkMark) {
105
103
  const {
106
104
  activeLinkMark
@@ -214,7 +212,7 @@ export const getToolbarConfig = (options, featureFlags, pluginInjectionApi) => (
214
212
  view: view,
215
213
  key: idx,
216
214
  linkPickerOptions: options === null || options === void 0 ? void 0 : options.linkPicker,
217
- featureFlags: featureFlags,
215
+ lpLinkPicker: lpLinkPicker,
218
216
  displayUrl: link,
219
217
  displayText: displayText || '',
220
218
  providerFactory: providerFactory,
@@ -222,14 +220,15 @@ export const getToolbarConfig = (options, featureFlags, pluginInjectionApi) => (
222
220
  onEscapeCallback: onEscapeCallback,
223
221
  onClickAwayCallback: onClickAwayCallback,
224
222
  onSubmit: (href, title = '', displayText, inputMethod, analytic) => {
225
- var _options$cardOptions;
223
+ var _toolbarKey$getState$2, _toolbarKey$getState2;
226
224
  const isEdit = isEditLink(activeLinkMark);
227
225
  const action = isEdit ? ACTION.UPDATED : ACTION.INSERTED;
226
+ const skipAnalytics = (_toolbarKey$getState$2 = (_toolbarKey$getState2 = toolbarKey.getState(state)) === null || _toolbarKey$getState2 === void 0 ? void 0 : _toolbarKey$getState2.skipAnalytics) !== null && _toolbarKey$getState$2 !== void 0 ? _toolbarKey$getState$2 : false;
228
227
  const command = isEdit ? commandWithMetadata(updateLink(href, displayText || title, activeLinkMark.pos), {
229
228
  action,
230
229
  inputMethod,
231
230
  sourceEvent: analytic
232
- }) : insertLinkWithAnalytics(inputMethod, activeLinkMark.from, activeLinkMark.to, href, editorAnalyticsApi, title, displayText, !!(options !== null && options !== void 0 && (_options$cardOptions = options.cardOptions) !== null && _options$cardOptions !== void 0 && _options$cardOptions.provider), analytic);
231
+ }) : insertLinkWithAnalytics(inputMethod, activeLinkMark.from, activeLinkMark.to, href, editorAnalyticsApi, title, displayText, skipAnalytics, analytic);
233
232
  command(view.state, view.dispatch, view);
234
233
  view.focus();
235
234
  }
@@ -20,8 +20,6 @@ export const hyperlinkPlugin = ({
20
20
  config: options = {},
21
21
  api
22
22
  }) => {
23
- var _api$featureFlags;
24
- const featureFlags = (api === null || api === void 0 ? void 0 : (_api$featureFlags = api.featureFlags) === null || _api$featureFlags === void 0 ? void 0 : _api$featureFlags.sharedState.currentState()) || {};
25
23
  return {
26
24
  name: 'hyperlink',
27
25
  marks() {
@@ -52,10 +50,6 @@ export const hyperlinkPlugin = ({
52
50
  return stateKey.getState(editorState);
53
51
  },
54
52
  pmPlugins() {
55
- var _options$cardOptions;
56
- // Skip analytics if card provider is available, as they will be
57
- // sent on handleRejected upon attempting to resolve smart link.
58
- const skipAnalytics = !!(options !== null && options !== void 0 && (_options$cardOptions = options.cardOptions) !== null && _options$cardOptions !== void 0 && _options$cardOptions.provider);
59
53
  return [{
60
54
  name: 'hyperlink',
61
55
  plugin: ({
@@ -67,17 +61,16 @@ export const hyperlinkPlugin = ({
67
61
  }, {
68
62
  name: 'hyperlinkInputRule',
69
63
  plugin: ({
70
- schema,
71
- featureFlags
64
+ schema
72
65
  }) => {
73
66
  var _api$analytics3;
74
- return createInputRulePlugin(schema, skipAnalytics, featureFlags, api === null || api === void 0 ? void 0 : (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions);
67
+ return createInputRulePlugin(schema, api === null || api === void 0 ? void 0 : (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions);
75
68
  }
76
69
  }, {
77
70
  name: 'hyperlinkKeymap',
78
71
  plugin: () => {
79
72
  var _api$analytics4;
80
- return createKeymapPlugin(skipAnalytics, api === null || api === void 0 ? void 0 : (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions);
73
+ return createKeymapPlugin(api === null || api === void 0 ? void 0 : (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions);
81
74
  }
82
75
  }, {
83
76
  name: 'hyperlinkToolbarButtons',
@@ -114,7 +107,7 @@ export const hyperlinkPlugin = ({
114
107
  return analyticsAttached !== false ? tr : false;
115
108
  }
116
109
  }],
117
- floatingToolbar: getToolbarConfig(options, featureFlags, api)
110
+ floatingToolbar: getToolbarConfig(options, api)
118
111
  }
119
112
  };
120
113
  };
@@ -2,9 +2,11 @@ import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
2
2
  import { addLinkMetadata } from '@atlaskit/editor-common/card';
3
3
  import { findFilepaths, getLinkCreationAnalyticsEvent, isLinkInMatches, LinkMatcher, normalizeUrl } from '@atlaskit/editor-common/utils';
4
4
  import { createPlugin, createRule } from '@atlaskit/prosemirror-input-rules';
5
- export function createLinkInputRule(regexp, skipAnalytics = false, editorAnalyticsApi) {
5
+ import { toolbarKey } from './toolbar-buttons';
6
+ export function createLinkInputRule(regexp, editorAnalyticsApi) {
6
7
  // Plain typed text (eg, typing 'www.google.com') should convert to a hyperlink
7
8
  return createRule(regexp, (state, match, start, end) => {
9
+ var _toolbarKey$getState$, _toolbarKey$getState;
8
10
  const {
9
11
  schema
10
12
  } = state;
@@ -42,6 +44,7 @@ export function createLinkInputRule(regexp, skipAnalytics = false, editorAnalyti
42
44
  addLinkMetadata(state.selection, tr, {
43
45
  inputMethod: INPUT_METHOD.AUTO_DETECT
44
46
  });
47
+ const skipAnalytics = (_toolbarKey$getState$ = (_toolbarKey$getState = toolbarKey.getState(state)) === null || _toolbarKey$getState === void 0 ? void 0 : _toolbarKey$getState.skipAnalytics) !== null && _toolbarKey$getState$ !== void 0 ? _toolbarKey$getState$ : false;
45
48
  if (skipAnalytics) {
46
49
  return tr;
47
50
  }
@@ -49,14 +52,15 @@ export function createLinkInputRule(regexp, skipAnalytics = false, editorAnalyti
49
52
  return tr;
50
53
  });
51
54
  }
52
- export function createInputRulePlugin(schema, skipAnalytics = false, featureFlags, editorAnalyticsApi) {
55
+ export function createInputRulePlugin(schema, editorAnalyticsApi) {
53
56
  if (!schema.marks.link) {
54
57
  return;
55
58
  }
56
- const urlWithASpaceRule = createLinkInputRule(LinkMatcher.create(), skipAnalytics, editorAnalyticsApi);
59
+ const urlWithASpaceRule = createLinkInputRule(LinkMatcher.create(), editorAnalyticsApi);
57
60
 
58
61
  // [something](link) should convert to a hyperlink
59
62
  const markdownLinkRule = createRule(/(^|[^!])\[(.*?)\]\((\S+)\)$/, (state, match, start, end) => {
63
+ var _toolbarKey$getState$2, _toolbarKey$getState2;
60
64
  const {
61
65
  schema
62
66
  } = state;
@@ -69,6 +73,7 @@ export function createInputRulePlugin(schema, skipAnalytics = false, featureFlag
69
73
  addLinkMetadata(state.selection, tr, {
70
74
  inputMethod: INPUT_METHOD.FORMATTING
71
75
  });
76
+ const skipAnalytics = (_toolbarKey$getState$2 = (_toolbarKey$getState2 = toolbarKey.getState(state)) === null || _toolbarKey$getState2 === void 0 ? void 0 : _toolbarKey$getState2.skipAnalytics) !== null && _toolbarKey$getState$2 !== void 0 ? _toolbarKey$getState$2 : false;
72
77
  if (skipAnalytics) {
73
78
  return tr;
74
79
  }
@@ -6,11 +6,12 @@ import { findFilepaths, getLinkCreationAnalyticsEvent, isLinkInMatches } from '@
6
6
  import { keymap } from '@atlaskit/editor-prosemirror/keymap';
7
7
  import { hideLinkToolbar, showLinkToolbar } from '../commands';
8
8
  import { stateKey } from '../pm-plugins/main';
9
- export function createKeymapPlugin(skipAnalytics = false, editorAnalyticsApi) {
9
+ import { toolbarKey } from './toolbar-buttons';
10
+ export function createKeymapPlugin(editorAnalyticsApi) {
10
11
  const list = {};
11
12
  bindKeymapWithEditorCommand(addLink.common, showLinkToolbar(INPUT_METHOD.SHORTCUT, editorAnalyticsApi), list);
12
- bindKeymapWithCommand(enter.common, mayConvertLastWordToHyperlink(skipAnalytics, editorAnalyticsApi), list);
13
- bindKeymapWithCommand(insertNewLine.common, mayConvertLastWordToHyperlink(skipAnalytics, editorAnalyticsApi), list);
13
+ bindKeymapWithCommand(enter.common, mayConvertLastWordToHyperlink(editorAnalyticsApi), list);
14
+ bindKeymapWithCommand(insertNewLine.common, mayConvertLastWordToHyperlink(editorAnalyticsApi), list);
14
15
  bindKeymapWithCommand(escape.common, (state, dispatch, view) => {
15
16
  const hyperlinkPlugin = stateKey.getState(state);
16
17
  if (hyperlinkPlugin.activeLinkMark) {
@@ -24,8 +25,10 @@ export function createKeymapPlugin(skipAnalytics = false, editorAnalyticsApi) {
24
25
  }, list);
25
26
  return keymap(list);
26
27
  }
27
- const mayConvertLastWordToHyperlink = (skipAnalytics, editorAnalyticsApi) => {
28
+ const mayConvertLastWordToHyperlink = editorAnalyticsApi => {
28
29
  return function (state, dispatch) {
30
+ var _toolbarKey$getState$, _toolbarKey$getState;
31
+ const skipAnalytics = (_toolbarKey$getState$ = (_toolbarKey$getState = toolbarKey.getState(state)) === null || _toolbarKey$getState === void 0 ? void 0 : _toolbarKey$getState.skipAnalytics) !== null && _toolbarKey$getState$ !== void 0 ? _toolbarKey$getState$ : false;
29
32
  const nodeBefore = state.selection.$from.nodeBefore;
30
33
  if (!nodeBefore || !nodeBefore.isText || !nodeBefore.text) {
31
34
  return false;
@@ -5,6 +5,7 @@ export const prependToolbarButtons = ({
5
5
  items,
6
6
  onEscapeCallback,
7
7
  onInsertLinkCallback,
8
+ skipAnalytics,
8
9
  view
9
10
  }) => {
10
11
  const {
@@ -16,7 +17,8 @@ export const prependToolbarButtons = ({
16
17
  tr.setMeta(toolbarKey, {
17
18
  items,
18
19
  onEscapeCallback,
19
- onInsertLinkCallback
20
+ onInsertLinkCallback,
21
+ skipAnalytics
20
22
  });
21
23
  dispatch(tr);
22
24
  };
@@ -64,7 +64,7 @@ export function HyperlinkAddToolbarWithState(_ref) {
64
64
  view = _ref.view,
65
65
  onCancel = _ref.onCancel,
66
66
  invokeMethod = _ref.invokeMethod,
67
- featureFlags = _ref.featureFlags,
67
+ lpLinkPicker = _ref.lpLinkPicker,
68
68
  onClose = _ref.onClose,
69
69
  onEscapeCallback = _ref.onEscapeCallback,
70
70
  onClickAwayCallback = _ref.onClickAwayCallback,
@@ -80,7 +80,7 @@ export function HyperlinkAddToolbarWithState(_ref) {
80
80
  view: view,
81
81
  onCancel: onCancel,
82
82
  invokeMethod: invokeMethod,
83
- featureFlags: featureFlags,
83
+ lpLinkPicker: lpLinkPicker,
84
84
  onClose: onClose,
85
85
  onEscapeCallback: onEscapeCallback,
86
86
  onClickAwayCallback: onClickAwayCallback,
@@ -100,13 +100,13 @@ var getSettingsButtonGroup = function getSettingsButtonGroup(intl, editorAnalyti
100
100
  target: '_blank'
101
101
  }];
102
102
  };
103
- export var getToolbarConfig = function getToolbarConfig(options, featureFlags, pluginInjectionApi) {
103
+ export var getToolbarConfig = function getToolbarConfig(options, pluginInjectionApi) {
104
104
  return function (state, intl, providerFactory) {
105
- var _pluginInjectionApi$a;
105
+ var _pluginInjectionApi$a, _options$lpLinkPicker;
106
106
  var formatMessage = intl.formatMessage;
107
107
  var linkState = stateKey.getState(state);
108
108
  var editorAnalyticsApi = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a === void 0 ? void 0 : _pluginInjectionApi$a.actions;
109
- var lpLinkPicker = featureFlags.lpLinkPicker;
109
+ var lpLinkPicker = (_options$lpLinkPicker = options.lpLinkPicker) !== null && _options$lpLinkPicker !== void 0 ? _options$lpLinkPicker : true;
110
110
  if (linkState && linkState.activeLinkMark) {
111
111
  var activeLinkMark = linkState.activeLinkMark;
112
112
  var hyperLinkToolbar = {
@@ -220,7 +220,7 @@ export var getToolbarConfig = function getToolbarConfig(options, featureFlags, p
220
220
  view: view,
221
221
  key: idx,
222
222
  linkPickerOptions: options === null || options === void 0 ? void 0 : options.linkPicker,
223
- featureFlags: featureFlags,
223
+ lpLinkPicker: lpLinkPicker,
224
224
  displayUrl: _link,
225
225
  displayText: displayText || '',
226
226
  providerFactory: providerFactory,
@@ -230,18 +230,19 @@ export var getToolbarConfig = function getToolbarConfig(options, featureFlags, p
230
230
  onEscapeCallback: onEscapeCallback,
231
231
  onClickAwayCallback: onClickAwayCallback,
232
232
  onSubmit: function onSubmit(href) {
233
- var _options$cardOptions;
233
+ var _toolbarKey$getState$2, _toolbarKey$getState2;
234
234
  var title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
235
235
  var displayText = arguments.length > 2 ? arguments[2] : undefined;
236
236
  var inputMethod = arguments.length > 3 ? arguments[3] : undefined;
237
237
  var analytic = arguments.length > 4 ? arguments[4] : undefined;
238
238
  var isEdit = isEditLink(activeLinkMark);
239
239
  var action = isEdit ? ACTION.UPDATED : ACTION.INSERTED;
240
+ var skipAnalytics = (_toolbarKey$getState$2 = (_toolbarKey$getState2 = toolbarKey.getState(state)) === null || _toolbarKey$getState2 === void 0 ? void 0 : _toolbarKey$getState2.skipAnalytics) !== null && _toolbarKey$getState$2 !== void 0 ? _toolbarKey$getState$2 : false;
240
241
  var command = isEdit ? commandWithMetadata(updateLink(href, displayText || title, activeLinkMark.pos), {
241
242
  action: action,
242
243
  inputMethod: inputMethod,
243
244
  sourceEvent: analytic
244
- }) : insertLinkWithAnalytics(inputMethod, activeLinkMark.from, activeLinkMark.to, href, editorAnalyticsApi, title, displayText, !!(options !== null && options !== void 0 && (_options$cardOptions = options.cardOptions) !== null && _options$cardOptions !== void 0 && _options$cardOptions.provider), analytic);
245
+ }) : insertLinkWithAnalytics(inputMethod, activeLinkMark.from, activeLinkMark.to, href, editorAnalyticsApi, title, displayText, skipAnalytics, analytic);
245
246
  command(view.state, view.dispatch, view);
246
247
  view.focus();
247
248
  }
@@ -17,11 +17,9 @@ import { getToolbarConfig } from './Toolbar';
17
17
  * from `@atlaskit/editor-core`.
18
18
  */
19
19
  export var hyperlinkPlugin = function hyperlinkPlugin(_ref) {
20
- var _api$featureFlags;
21
20
  var _ref$config = _ref.config,
22
21
  options = _ref$config === void 0 ? {} : _ref$config,
23
22
  api = _ref.api;
24
- var featureFlags = (api === null || api === void 0 || (_api$featureFlags = api.featureFlags) === null || _api$featureFlags === void 0 ? void 0 : _api$featureFlags.sharedState.currentState()) || {};
25
23
  return {
26
24
  name: 'hyperlink',
27
25
  marks: function marks() {
@@ -56,10 +54,6 @@ export var hyperlinkPlugin = function hyperlinkPlugin(_ref) {
56
54
  return stateKey.getState(editorState);
57
55
  },
58
56
  pmPlugins: function pmPlugins() {
59
- var _options$cardOptions;
60
- // Skip analytics if card provider is available, as they will be
61
- // sent on handleRejected upon attempting to resolve smart link.
62
- var skipAnalytics = !!(options !== null && options !== void 0 && (_options$cardOptions = options.cardOptions) !== null && _options$cardOptions !== void 0 && _options$cardOptions.provider);
63
57
  return [{
64
58
  name: 'hyperlink',
65
59
  plugin: function plugin(_ref2) {
@@ -75,15 +69,14 @@ export var hyperlinkPlugin = function hyperlinkPlugin(_ref) {
75
69
  name: 'hyperlinkInputRule',
76
70
  plugin: function plugin(_ref3) {
77
71
  var _api$analytics3;
78
- var schema = _ref3.schema,
79
- featureFlags = _ref3.featureFlags;
80
- return createInputRulePlugin(schema, skipAnalytics, featureFlags, api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions);
72
+ var schema = _ref3.schema;
73
+ return createInputRulePlugin(schema, api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions);
81
74
  }
82
75
  }, {
83
76
  name: 'hyperlinkKeymap',
84
77
  plugin: function plugin() {
85
78
  var _api$analytics4;
86
- return createKeymapPlugin(skipAnalytics, api === null || api === void 0 || (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions);
79
+ return createKeymapPlugin(api === null || api === void 0 || (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions);
87
80
  }
88
81
  }, {
89
82
  name: 'hyperlinkToolbarButtons',
@@ -123,7 +116,7 @@ export var hyperlinkPlugin = function hyperlinkPlugin(_ref) {
123
116
  }
124
117
  }];
125
118
  },
126
- floatingToolbar: getToolbarConfig(options, featureFlags, api)
119
+ floatingToolbar: getToolbarConfig(options, api)
127
120
  }
128
121
  };
129
122
  };
@@ -3,11 +3,11 @@ import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
3
3
  import { addLinkMetadata } from '@atlaskit/editor-common/card';
4
4
  import { findFilepaths, getLinkCreationAnalyticsEvent, isLinkInMatches, LinkMatcher, normalizeUrl } from '@atlaskit/editor-common/utils';
5
5
  import { createPlugin, createRule } from '@atlaskit/prosemirror-input-rules';
6
- export function createLinkInputRule(regexp) {
7
- var skipAnalytics = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
8
- var editorAnalyticsApi = arguments.length > 2 ? arguments[2] : undefined;
6
+ import { toolbarKey } from './toolbar-buttons';
7
+ export function createLinkInputRule(regexp, editorAnalyticsApi) {
9
8
  // Plain typed text (eg, typing 'www.google.com') should convert to a hyperlink
10
9
  return createRule(regexp, function (state, match, start, end) {
10
+ var _toolbarKey$getState$, _toolbarKey$getState;
11
11
  var schema = state.schema;
12
12
  if (state.doc.rangeHasMark(start, end, schema.marks.link)) {
13
13
  return null;
@@ -43,6 +43,7 @@ export function createLinkInputRule(regexp) {
43
43
  addLinkMetadata(state.selection, tr, {
44
44
  inputMethod: INPUT_METHOD.AUTO_DETECT
45
45
  });
46
+ var skipAnalytics = (_toolbarKey$getState$ = (_toolbarKey$getState = toolbarKey.getState(state)) === null || _toolbarKey$getState === void 0 ? void 0 : _toolbarKey$getState.skipAnalytics) !== null && _toolbarKey$getState$ !== void 0 ? _toolbarKey$getState$ : false;
46
47
  if (skipAnalytics) {
47
48
  return tr;
48
49
  }
@@ -50,17 +51,15 @@ export function createLinkInputRule(regexp) {
50
51
  return tr;
51
52
  });
52
53
  }
53
- export function createInputRulePlugin(schema) {
54
- var skipAnalytics = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
55
- var featureFlags = arguments.length > 2 ? arguments[2] : undefined;
56
- var editorAnalyticsApi = arguments.length > 3 ? arguments[3] : undefined;
54
+ export function createInputRulePlugin(schema, editorAnalyticsApi) {
57
55
  if (!schema.marks.link) {
58
56
  return;
59
57
  }
60
- var urlWithASpaceRule = createLinkInputRule(LinkMatcher.create(), skipAnalytics, editorAnalyticsApi);
58
+ var urlWithASpaceRule = createLinkInputRule(LinkMatcher.create(), editorAnalyticsApi);
61
59
 
62
60
  // [something](link) should convert to a hyperlink
63
61
  var markdownLinkRule = createRule(/(^|[^!])\[(.*?)\]\((\S+)\)$/, function (state, match, start, end) {
62
+ var _toolbarKey$getState$2, _toolbarKey$getState2;
64
63
  var schema = state.schema;
65
64
  var _match = _slicedToArray(match, 4),
66
65
  prefix = _match[1],
@@ -74,6 +73,7 @@ export function createInputRulePlugin(schema) {
74
73
  addLinkMetadata(state.selection, tr, {
75
74
  inputMethod: INPUT_METHOD.FORMATTING
76
75
  });
76
+ var skipAnalytics = (_toolbarKey$getState$2 = (_toolbarKey$getState2 = toolbarKey.getState(state)) === null || _toolbarKey$getState2 === void 0 ? void 0 : _toolbarKey$getState2.skipAnalytics) !== null && _toolbarKey$getState$2 !== void 0 ? _toolbarKey$getState$2 : false;
77
77
  if (skipAnalytics) {
78
78
  return tr;
79
79
  }
@@ -6,13 +6,12 @@ import { findFilepaths, getLinkCreationAnalyticsEvent, isLinkInMatches } from '@
6
6
  import { keymap } from '@atlaskit/editor-prosemirror/keymap';
7
7
  import { hideLinkToolbar, showLinkToolbar } from '../commands';
8
8
  import { stateKey } from '../pm-plugins/main';
9
- export function createKeymapPlugin() {
10
- var skipAnalytics = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
11
- var editorAnalyticsApi = arguments.length > 1 ? arguments[1] : undefined;
9
+ import { toolbarKey } from './toolbar-buttons';
10
+ export function createKeymapPlugin(editorAnalyticsApi) {
12
11
  var list = {};
13
12
  bindKeymapWithEditorCommand(addLink.common, showLinkToolbar(INPUT_METHOD.SHORTCUT, editorAnalyticsApi), list);
14
- bindKeymapWithCommand(enter.common, mayConvertLastWordToHyperlink(skipAnalytics, editorAnalyticsApi), list);
15
- bindKeymapWithCommand(insertNewLine.common, mayConvertLastWordToHyperlink(skipAnalytics, editorAnalyticsApi), list);
13
+ bindKeymapWithCommand(enter.common, mayConvertLastWordToHyperlink(editorAnalyticsApi), list);
14
+ bindKeymapWithCommand(insertNewLine.common, mayConvertLastWordToHyperlink(editorAnalyticsApi), list);
16
15
  bindKeymapWithCommand(escape.common, function (state, dispatch, view) {
17
16
  var hyperlinkPlugin = stateKey.getState(state);
18
17
  if (hyperlinkPlugin.activeLinkMark) {
@@ -26,8 +25,10 @@ export function createKeymapPlugin() {
26
25
  }, list);
27
26
  return keymap(list);
28
27
  }
29
- var mayConvertLastWordToHyperlink = function mayConvertLastWordToHyperlink(skipAnalytics, editorAnalyticsApi) {
28
+ var mayConvertLastWordToHyperlink = function mayConvertLastWordToHyperlink(editorAnalyticsApi) {
30
29
  return function (state, dispatch) {
30
+ var _toolbarKey$getState$, _toolbarKey$getState;
31
+ var skipAnalytics = (_toolbarKey$getState$ = (_toolbarKey$getState = toolbarKey.getState(state)) === null || _toolbarKey$getState === void 0 ? void 0 : _toolbarKey$getState.skipAnalytics) !== null && _toolbarKey$getState$ !== void 0 ? _toolbarKey$getState$ : false;
31
32
  var nodeBefore = state.selection.$from.nodeBefore;
32
33
  if (!nodeBefore || !nodeBefore.isText || !nodeBefore.text) {
33
34
  return false;
@@ -5,13 +5,15 @@ export var prependToolbarButtons = function prependToolbarButtons(_ref) {
5
5
  var items = _ref.items,
6
6
  onEscapeCallback = _ref.onEscapeCallback,
7
7
  onInsertLinkCallback = _ref.onInsertLinkCallback,
8
+ skipAnalytics = _ref.skipAnalytics,
8
9
  view = _ref.view;
9
10
  var tr = view.state.tr,
10
11
  dispatch = view.dispatch;
11
12
  tr.setMeta(toolbarKey, {
12
13
  items: items,
13
14
  onEscapeCallback: onEscapeCallback,
14
- onInsertLinkCallback: onInsertLinkCallback
15
+ onInsertLinkCallback: onInsertLinkCallback,
16
+ skipAnalytics: skipAnalytics
15
17
  });
16
18
  dispatch(tr);
17
19
  };
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import type { HyperlinkAddToolbarProps } from '@atlaskit/editor-common/link';
3
- import type { ExtractInjectionAPI, FeatureFlags, FloatingToolbarHandler, HyperlinkPluginOptions } from '@atlaskit/editor-common/types';
3
+ import type { ExtractInjectionAPI, FloatingToolbarHandler, HyperlinkPluginOptions } from '@atlaskit/editor-common/types';
4
4
  import type { hyperlinkPlugin } from './index';
5
- export declare function HyperlinkAddToolbarWithState({ linkPickerOptions, onSubmit, displayText, displayUrl, providerFactory, view, onCancel, invokeMethod, featureFlags, onClose, onEscapeCallback, onClickAwayCallback, pluginInjectionApi, }: HyperlinkAddToolbarProps & {
5
+ export declare function HyperlinkAddToolbarWithState({ linkPickerOptions, onSubmit, displayText, displayUrl, providerFactory, view, onCancel, invokeMethod, lpLinkPicker, onClose, onEscapeCallback, onClickAwayCallback, pluginInjectionApi, }: HyperlinkAddToolbarProps & {
6
6
  pluginInjectionApi: any;
7
7
  }): JSX.Element;
8
- export declare const getToolbarConfig: (options: HyperlinkPluginOptions, featureFlags: FeatureFlags, pluginInjectionApi: ExtractInjectionAPI<typeof hyperlinkPlugin> | undefined) => FloatingToolbarHandler;
8
+ export declare const getToolbarConfig: (options: HyperlinkPluginOptions, pluginInjectionApi: ExtractInjectionAPI<typeof hyperlinkPlugin> | undefined) => FloatingToolbarHandler;
@@ -1,15 +1,11 @@
1
1
  import type { HyperlinkState } from '@atlaskit/editor-common/link';
2
2
  import type { HyperlinkPluginOptions, NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
3
3
  import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
4
- import type { FeatureFlagsPlugin } from '@atlaskit/editor-plugin-feature-flags';
5
4
  import type { HideLinkToolbar, InsertLink, ShowLinkToolbar, UpdateLink } from './commands';
6
5
  import type { PrependToolbarButtons } from './pm-plugins/toolbar-buttons';
7
6
  export type HyperlinkPlugin = NextEditorPlugin<'hyperlink', {
8
7
  pluginConfiguration: HyperlinkPluginOptions | undefined;
9
- dependencies: [
10
- OptionalPlugin<FeatureFlagsPlugin>,
11
- OptionalPlugin<AnalyticsPlugin>
12
- ];
8
+ dependencies: [OptionalPlugin<AnalyticsPlugin>];
13
9
  actions: {
14
10
  /**
15
11
  * Add items to the left of the hyperlink floating toolbar
@@ -1,8 +1,7 @@
1
1
  import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
2
  import type { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
- import type { FeatureFlags } from '@atlaskit/editor-common/types';
4
3
  import type { Schema } from '@atlaskit/editor-prosemirror/model';
5
4
  import type { InputRuleWrapper } from '@atlaskit/prosemirror-input-rules';
6
- export declare function createLinkInputRule(regexp: RegExp, skipAnalytics: boolean | undefined, editorAnalyticsApi: EditorAnalyticsAPI | undefined): InputRuleWrapper;
7
- export declare function createInputRulePlugin(schema: Schema, skipAnalytics: boolean | undefined, featureFlags: FeatureFlags, editorAnalyticsApi: EditorAnalyticsAPI | undefined): SafePlugin | undefined;
5
+ export declare function createLinkInputRule(regexp: RegExp, editorAnalyticsApi: EditorAnalyticsAPI | undefined): InputRuleWrapper;
6
+ export declare function createInputRulePlugin(schema: Schema, editorAnalyticsApi: EditorAnalyticsAPI | undefined): SafePlugin | undefined;
8
7
  export default createInputRulePlugin;
@@ -1,4 +1,4 @@
1
1
  import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
2
  import type { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
- export declare function createKeymapPlugin(skipAnalytics: boolean | undefined, editorAnalyticsApi: EditorAnalyticsAPI | undefined): SafePlugin | undefined;
3
+ export declare function createKeymapPlugin(editorAnalyticsApi: EditorAnalyticsAPI | undefined): SafePlugin | undefined;
4
4
  export default createKeymapPlugin;
@@ -10,6 +10,12 @@ type HyperlinkToolbarItemsState = {
10
10
  items: GetToolbarItems;
11
11
  onEscapeCallback: ((tr: Transaction) => Transaction) | undefined;
12
12
  onInsertLinkCallback: QueueCardsFromTransactionAction | undefined;
13
+ /**
14
+ * If you are mounting your own items to the hyperlink toolbar you may decide
15
+ * you want to replace the hyperlink analytics with your own
16
+ * Defaults to false.
17
+ */
18
+ skipAnalytics?: boolean;
13
19
  };
14
20
  export declare const toolbarKey: PluginKey<HyperlinkToolbarItemsState | undefined>;
15
21
  type GetToolbarItems = (state: EditorState, intl: IntlShape, providerFactory: ProviderFactory, link: string) => FloatingToolbarItem<any>[];
@@ -17,6 +23,6 @@ interface PrependToolbarButtonsProps extends HyperlinkToolbarItemsState {
17
23
  view: EditorView;
18
24
  }
19
25
  export type PrependToolbarButtons = (props: PrependToolbarButtonsProps) => void;
20
- export declare const prependToolbarButtons: ({ items, onEscapeCallback, onInsertLinkCallback, view, }: PrependToolbarButtonsProps) => void;
26
+ export declare const prependToolbarButtons: ({ items, onEscapeCallback, onInsertLinkCallback, skipAnalytics, view, }: PrependToolbarButtonsProps) => void;
21
27
  export declare const toolbarButtonsPlugin: () => SafePlugin<undefined>;
22
28
  export {};
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import type { HyperlinkAddToolbarProps } from '@atlaskit/editor-common/link';
3
- import type { ExtractInjectionAPI, FeatureFlags, FloatingToolbarHandler, HyperlinkPluginOptions } from '@atlaskit/editor-common/types';
3
+ import type { ExtractInjectionAPI, FloatingToolbarHandler, HyperlinkPluginOptions } from '@atlaskit/editor-common/types';
4
4
  import type { hyperlinkPlugin } from './index';
5
- export declare function HyperlinkAddToolbarWithState({ linkPickerOptions, onSubmit, displayText, displayUrl, providerFactory, view, onCancel, invokeMethod, featureFlags, onClose, onEscapeCallback, onClickAwayCallback, pluginInjectionApi, }: HyperlinkAddToolbarProps & {
5
+ export declare function HyperlinkAddToolbarWithState({ linkPickerOptions, onSubmit, displayText, displayUrl, providerFactory, view, onCancel, invokeMethod, lpLinkPicker, onClose, onEscapeCallback, onClickAwayCallback, pluginInjectionApi, }: HyperlinkAddToolbarProps & {
6
6
  pluginInjectionApi: any;
7
7
  }): JSX.Element;
8
- export declare const getToolbarConfig: (options: HyperlinkPluginOptions, featureFlags: FeatureFlags, pluginInjectionApi: ExtractInjectionAPI<typeof hyperlinkPlugin> | undefined) => FloatingToolbarHandler;
8
+ export declare const getToolbarConfig: (options: HyperlinkPluginOptions, pluginInjectionApi: ExtractInjectionAPI<typeof hyperlinkPlugin> | undefined) => FloatingToolbarHandler;
@@ -1,13 +1,11 @@
1
1
  import type { HyperlinkState } from '@atlaskit/editor-common/link';
2
2
  import type { HyperlinkPluginOptions, NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
3
3
  import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
4
- import type { FeatureFlagsPlugin } from '@atlaskit/editor-plugin-feature-flags';
5
4
  import type { HideLinkToolbar, InsertLink, ShowLinkToolbar, UpdateLink } from './commands';
6
5
  import type { PrependToolbarButtons } from './pm-plugins/toolbar-buttons';
7
6
  export type HyperlinkPlugin = NextEditorPlugin<'hyperlink', {
8
7
  pluginConfiguration: HyperlinkPluginOptions | undefined;
9
8
  dependencies: [
10
- OptionalPlugin<FeatureFlagsPlugin>,
11
9
  OptionalPlugin<AnalyticsPlugin>
12
10
  ];
13
11
  actions: {
@@ -1,8 +1,7 @@
1
1
  import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
2
  import type { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
- import type { FeatureFlags } from '@atlaskit/editor-common/types';
4
3
  import type { Schema } from '@atlaskit/editor-prosemirror/model';
5
4
  import type { InputRuleWrapper } from '@atlaskit/prosemirror-input-rules';
6
- export declare function createLinkInputRule(regexp: RegExp, skipAnalytics: boolean | undefined, editorAnalyticsApi: EditorAnalyticsAPI | undefined): InputRuleWrapper;
7
- export declare function createInputRulePlugin(schema: Schema, skipAnalytics: boolean | undefined, featureFlags: FeatureFlags, editorAnalyticsApi: EditorAnalyticsAPI | undefined): SafePlugin | undefined;
5
+ export declare function createLinkInputRule(regexp: RegExp, editorAnalyticsApi: EditorAnalyticsAPI | undefined): InputRuleWrapper;
6
+ export declare function createInputRulePlugin(schema: Schema, editorAnalyticsApi: EditorAnalyticsAPI | undefined): SafePlugin | undefined;
8
7
  export default createInputRulePlugin;
@@ -1,4 +1,4 @@
1
1
  import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
2
  import type { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
3
- export declare function createKeymapPlugin(skipAnalytics: boolean | undefined, editorAnalyticsApi: EditorAnalyticsAPI | undefined): SafePlugin | undefined;
3
+ export declare function createKeymapPlugin(editorAnalyticsApi: EditorAnalyticsAPI | undefined): SafePlugin | undefined;
4
4
  export default createKeymapPlugin;
@@ -10,6 +10,12 @@ type HyperlinkToolbarItemsState = {
10
10
  items: GetToolbarItems;
11
11
  onEscapeCallback: ((tr: Transaction) => Transaction) | undefined;
12
12
  onInsertLinkCallback: QueueCardsFromTransactionAction | undefined;
13
+ /**
14
+ * If you are mounting your own items to the hyperlink toolbar you may decide
15
+ * you want to replace the hyperlink analytics with your own
16
+ * Defaults to false.
17
+ */
18
+ skipAnalytics?: boolean;
13
19
  };
14
20
  export declare const toolbarKey: PluginKey<HyperlinkToolbarItemsState | undefined>;
15
21
  type GetToolbarItems = (state: EditorState, intl: IntlShape, providerFactory: ProviderFactory, link: string) => FloatingToolbarItem<any>[];
@@ -17,6 +23,6 @@ interface PrependToolbarButtonsProps extends HyperlinkToolbarItemsState {
17
23
  view: EditorView;
18
24
  }
19
25
  export type PrependToolbarButtons = (props: PrependToolbarButtonsProps) => void;
20
- export declare const prependToolbarButtons: ({ items, onEscapeCallback, onInsertLinkCallback, view, }: PrependToolbarButtonsProps) => void;
26
+ export declare const prependToolbarButtons: ({ items, onEscapeCallback, onInsertLinkCallback, skipAnalytics, view, }: PrependToolbarButtonsProps) => void;
21
27
  export declare const toolbarButtonsPlugin: () => SafePlugin<undefined>;
22
28
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-hyperlink",
3
- "version": "0.6.11",
3
+ "version": "0.8.0",
4
4
  "description": "Hyperlink plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -34,9 +34,8 @@
34
34
  "dependencies": {
35
35
  "@atlaskit/adf-schema": "^35.3.0",
36
36
  "@atlaskit/analytics-next": "^9.1.0",
37
- "@atlaskit/editor-common": "^76.35.0",
37
+ "@atlaskit/editor-common": "^76.37.0",
38
38
  "@atlaskit/editor-plugin-analytics": "^0.4.0",
39
- "@atlaskit/editor-plugin-feature-flags": "^1.0.0",
40
39
  "@atlaskit/editor-prosemirror": "1.1.0",
41
40
  "@atlaskit/icon": "^22.0.0",
42
41
  "@atlaskit/prosemirror-input-rules": "^2.4.0",
@@ -54,7 +53,6 @@
54
53
  "@atlaskit/ssr": "*",
55
54
  "@atlaskit/util-data-test": "^17.8.0",
56
55
  "@atlaskit/visual-regression": "*",
57
- "@atlaskit/webdriver-runner": "*",
58
56
  "@atlassian/atlassian-frontend-prettier-config-1.0.0": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.0",
59
57
  "@testing-library/react": "^12.1.5",
60
58
  "raf-stub": "^2.0.1",