@atlaskit/editor-plugin-card 2.13.5 → 2.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @atlaskit/editor-plugin-card
2
2
 
3
+ ## 2.14.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#136348](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/136348)
8
+ [`fb4fb56f1da7c`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/fb4fb56f1da7c) -
9
+ Use optimised entry-points on editor-common for browser.
10
+ - Updated dependencies
11
+
12
+ ## 2.14.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [`c4d2eb3f9f965`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c4d2eb3f9f965) -
17
+ [ux] Fix issue with card provider not updating asynchronously
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies
22
+
3
23
  ## 2.13.5
4
24
 
5
25
  ### Patch Changes
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.cardPlugin = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
11
  var _react = _interopRequireDefault(require("react"));
10
12
  var _adfSchema = require("@atlaskit/adf-schema");
@@ -32,6 +34,7 @@ var cardPlugin = exports.cardPlugin = function cardPlugin(_ref) {
32
34
  var _options$lpLinkPicker;
33
35
  var options = _ref.config,
34
36
  api = _ref.api;
37
+ var previousCardProvider;
35
38
  var cardPluginEvents = (0, _createEventsQueue.createEventsQueue)();
36
39
  return {
37
40
  name: 'card',
@@ -111,6 +114,39 @@ var cardPlugin = exports.cardPlugin = function cardPlugin(_ref) {
111
114
  }));
112
115
  },
113
116
  actions: {
117
+ setProvider: function () {
118
+ var _setProvider2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(providerPromise) {
119
+ var _api$core$actions$exe;
120
+ var provider;
121
+ return _regenerator.default.wrap(function _callee$(_context) {
122
+ while (1) switch (_context.prev = _context.next) {
123
+ case 0:
124
+ _context.next = 2;
125
+ return providerPromise;
126
+ case 2:
127
+ provider = _context.sent;
128
+ if (!(previousCardProvider === provider)) {
129
+ _context.next = 5;
130
+ break;
131
+ }
132
+ return _context.abrupt("return", false);
133
+ case 5:
134
+ previousCardProvider = provider;
135
+ return _context.abrupt("return", (_api$core$actions$exe = api === null || api === void 0 ? void 0 : api.core.actions.execute(function (_ref4) {
136
+ var tr = _ref4.tr;
137
+ return (0, _actions.setProvider)(provider)(tr);
138
+ })) !== null && _api$core$actions$exe !== void 0 ? _api$core$actions$exe : false);
139
+ case 7:
140
+ case "end":
141
+ return _context.stop();
142
+ }
143
+ }, _callee);
144
+ }));
145
+ function setProvider(_x) {
146
+ return _setProvider2.apply(this, arguments);
147
+ }
148
+ return setProvider;
149
+ }(),
114
150
  hideLinkToolbar: _actions.hideLinkToolbar,
115
151
  queueCardsFromChangedTr: _doc.queueCardsFromChangedTr,
116
152
  getStartingToolbarItems: (0, _toolbar.getStartingToolbarItems)(options, api),
@@ -118,8 +154,8 @@ var cardPlugin = exports.cardPlugin = function cardPlugin(_ref) {
118
154
  },
119
155
  pluginsOptions: {
120
156
  floatingToolbar: (0, _toolbar.floatingToolbar)(options, (_options$lpLinkPicker = options.lpLinkPicker) !== null && _options$lpLinkPicker !== void 0 ? _options$lpLinkPicker : false, options.platform, options.linkPicker, api, options.disableFloatingToolbar),
121
- quickInsert: function quickInsert(_ref4) {
122
- var formatMessage = _ref4.formatMessage;
157
+ quickInsert: function quickInsert(_ref5) {
158
+ var formatMessage = _ref5.formatMessage;
123
159
  var quickInsertArray = [];
124
160
  if (!options.allowDatasource) {
125
161
  return quickInsertArray;
@@ -4,18 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.cardKeymap = cardKeymap;
7
+ var _browser = require("@atlaskit/editor-common/browser");
7
8
  var _keymaps = require("@atlaskit/editor-common/keymaps");
8
- var _utils = require("@atlaskit/editor-common/utils");
9
9
  var _keymap = require("@atlaskit/editor-prosemirror/keymap");
10
10
  var _state = require("@atlaskit/editor-prosemirror/state");
11
- var _utils2 = require("@atlaskit/editor-prosemirror/utils");
11
+ var _utils = require("@atlaskit/editor-prosemirror/utils");
12
12
  var lookupPixel = 10;
13
13
  var getClosestInlineCardPos = function getClosestInlineCardPos(state, editorView, direction) {
14
14
  var _editorView$posAtCoor;
15
15
  var selection = state.selection;
16
16
  var parent = selection.$from.parent;
17
17
  var inlineCardType = state.schema.nodes.inlineCard;
18
- if (!(0, _utils2.flatten)(parent, false).some(function (_ref) {
18
+ if (!(0, _utils.flatten)(parent, false).some(function (_ref) {
19
19
  var node = _ref.node;
20
20
  return node.type === inlineCardType;
21
21
  })) {
@@ -29,7 +29,7 @@ var getClosestInlineCardPos = function getClosestInlineCardPos(state, editorView
29
29
  if (typeof nearPos === 'number' && nearPos > -1) {
30
30
  var newNode = state.doc.nodeAt(nearPos);
31
31
  if (newNode) {
32
- if (newNode.type !== inlineCardType || (0, _utils2.findChildren)(parent, function (node) {
32
+ if (newNode.type !== inlineCardType || (0, _utils.findChildren)(parent, function (node) {
33
33
  return node === newNode;
34
34
  }, false).length === 0 || newNode === selection.node) {
35
35
  return null;
@@ -56,7 +56,7 @@ function cardKeymap(featureFlags) {
56
56
  var list = {};
57
57
 
58
58
  // https://bugs.chromium.org/p/chromium/issues/detail?id=1227468 introduced since Chrome 91
59
- if (_utils.browser.chrome && _utils.browser.chrome_version > 90) {
59
+ if (_browser.browser.chrome && _browser.browser.chrome_version > 90) {
60
60
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.moveUp.common, selectAboveBelowInlineCard('up'), list);
61
61
  (0, _keymaps.bindKeymapWithCommand)(_keymaps.moveDown.common, selectAboveBelowInlineCard('down'), list);
62
62
  }
@@ -167,8 +167,10 @@ var createPlugin = exports.createPlugin = function createPlugin(options, pluginI
167
167
  };
168
168
  var domAtPos = _view.domAtPos.bind(_view);
169
169
  var rafCancellationCallbacks = [];
170
- if (options.provider && (0, _platformFeatureFlags.fg)('platform_editor_get_card_provider_from_config')) {
171
- (0, _resolve.handleProvider)('cardProvider', options.provider, _view);
170
+ if ((0, _platformFeatureFlags.fg)('platform_editor_get_card_provider_from_config')) {
171
+ if (options.provider) {
172
+ (0, _resolve.handleProvider)('cardProvider', options.provider, _view);
173
+ }
172
174
  } else {
173
175
  pmPluginFactoryParams.providerFactory.subscribe('cardProvider', subscriptionHandler);
174
176
  }
@@ -589,7 +589,8 @@ var getStartingToolbarItems = exports.getStartingToolbarItems = function getStar
589
589
  cardOptions: options,
590
590
  providerFactory: providerFactory,
591
591
  platform: options === null || options === void 0 ? void 0 : options.platform,
592
- editorAnalyticsApi: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions
592
+ editorAnalyticsApi: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions,
593
+ editorPluginApi: api
593
594
  });
594
595
  }
595
596
  }].concat(editLinkItem);
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.HyperlinkToolbarAppearance = void 0;
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
12
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
@@ -15,6 +14,8 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
15
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
18
19
  var _react = _interopRequireWildcard(require("react"));
19
20
  var _analytics = require("@atlaskit/editor-common/analytics");
20
21
  var _ui = require("@atlaskit/editor-common/ui");
@@ -27,13 +28,157 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
27
28
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
29
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
29
30
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
31
+ function HyperlinkToolbarAppearanceFunctional(props) {
32
+ var _props$cardOptions3;
33
+ var _useState = (0, _react.useState)(new Map()),
34
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
35
+ supportedUrlsMap = _useState2[0],
36
+ setSupportedUrlsMap = _useState2[1];
37
+ var cardProvider = (0, _react.useRef)(undefined);
38
+ var url = props.url,
39
+ intl = props.intl,
40
+ editorView = props.editorView,
41
+ editorState = props.editorState,
42
+ cardOptions = props.cardOptions,
43
+ platform = props.platform,
44
+ editorAnalyticsApi = props.editorAnalyticsApi;
45
+ var getProvider = /*#__PURE__*/function () {
46
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
47
+ var _props$cardOptions;
48
+ var _props$cardOptions2;
49
+ return _regenerator.default.wrap(function _callee$(_context) {
50
+ while (1) switch (_context.prev = _context.next) {
51
+ case 0:
52
+ if (!((_props$cardOptions = props.cardOptions) !== null && _props$cardOptions !== void 0 && _props$cardOptions.provider)) {
53
+ _context.next = 2;
54
+ break;
55
+ }
56
+ return _context.abrupt("return", (_props$cardOptions2 = props.cardOptions) === null || _props$cardOptions2 === void 0 ? void 0 : _props$cardOptions2.provider);
57
+ case 2:
58
+ if (!cardProvider.current) {
59
+ _context.next = 4;
60
+ break;
61
+ }
62
+ return _context.abrupt("return", cardProvider.current);
63
+ case 4:
64
+ return _context.abrupt("return", new Promise(function (resolve) {
65
+ var _props$editorPluginAp;
66
+ var cardProvider = (_props$editorPluginAp = props.editorPluginApi) === null || _props$editorPluginAp === void 0 || (_props$editorPluginAp = _props$editorPluginAp.card) === null || _props$editorPluginAp === void 0 || (_props$editorPluginAp = _props$editorPluginAp.sharedState) === null || _props$editorPluginAp === void 0 || (_props$editorPluginAp = _props$editorPluginAp.currentState()) === null || _props$editorPluginAp === void 0 ? void 0 : _props$editorPluginAp.provider;
67
+ if (cardProvider) {
68
+ resolve(cardProvider);
69
+ }
70
+ }));
71
+ case 5:
72
+ case "end":
73
+ return _context.stop();
74
+ }
75
+ }, _callee);
76
+ }));
77
+ return function getProvider() {
78
+ return _ref.apply(this, arguments);
79
+ };
80
+ }();
81
+ var resolveUrl = /*#__PURE__*/function () {
82
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(url) {
83
+ var isUrlSupported, _yield$provider$findP, provider, newMap;
84
+ return _regenerator.default.wrap(function _callee2$(_context2) {
85
+ while (1) switch (_context2.prev = _context2.next) {
86
+ case 0:
87
+ if (!supportedUrlsMap.has(url)) {
88
+ _context2.next = 2;
89
+ break;
90
+ }
91
+ return _context2.abrupt("return");
92
+ case 2:
93
+ isUrlSupported = false;
94
+ _context2.prev = 3;
95
+ _context2.next = 6;
96
+ return getProvider();
97
+ case 6:
98
+ provider = _context2.sent;
99
+ _context2.next = 9;
100
+ return provider === null || provider === void 0 ? void 0 : provider.findPattern(url);
101
+ case 9:
102
+ _context2.t1 = _yield$provider$findP = _context2.sent;
103
+ _context2.t0 = _context2.t1 !== null;
104
+ if (!_context2.t0) {
105
+ _context2.next = 13;
106
+ break;
107
+ }
108
+ _context2.t0 = _yield$provider$findP !== void 0;
109
+ case 13:
110
+ if (!_context2.t0) {
111
+ _context2.next = 17;
112
+ break;
113
+ }
114
+ _context2.t2 = _yield$provider$findP;
115
+ _context2.next = 18;
116
+ break;
117
+ case 17:
118
+ _context2.t2 = false;
119
+ case 18:
120
+ isUrlSupported = _context2.t2;
121
+ _context2.next = 24;
122
+ break;
123
+ case 21:
124
+ _context2.prev = 21;
125
+ _context2.t3 = _context2["catch"](3);
126
+ isUrlSupported = false;
127
+ case 24:
128
+ newMap = new Map(supportedUrlsMap);
129
+ newMap.set(url, isUrlSupported);
130
+ setSupportedUrlsMap(newMap);
131
+ case 27:
132
+ case "end":
133
+ return _context2.stop();
134
+ }
135
+ }, _callee2, null, [[3, 21]]);
136
+ }));
137
+ return function resolveUrl(_x) {
138
+ return _ref2.apply(this, arguments);
139
+ };
140
+ }();
141
+ (0, _react.useEffect)(function () {
142
+ resolveUrl(url);
143
+ // before migrating from a class to a functional component, we were only reacting to changes in the url
144
+ // eslint-disable-next-line react-hooks/exhaustive-deps
145
+ }, [url, (_props$cardOptions3 = props.cardOptions) === null || _props$cardOptions3 === void 0 ? void 0 : _props$cardOptions3.provider, props.editorPluginApi]);
146
+ if (!supportedUrlsMap.get(url)) {
147
+ return null;
148
+ }
149
+ return /*#__PURE__*/_react.default.createElement(_primitives.Flex, null, !(0, _platformFeatureFlags.fg)('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/_react.default.createElement(_EditDatasourceButton.EditDatasourceButton, {
150
+ url: url,
151
+ intl: intl,
152
+ editorView: editorView,
153
+ editorAnalyticsApi: editorAnalyticsApi,
154
+ currentAppearance: "url"
155
+ }), /*#__PURE__*/_react.default.createElement(_LinkToolbarAppearance.LinkToolbarAppearance, {
156
+ key: "link-appearance",
157
+ url: url,
158
+ intl: intl,
159
+ editorView: editorView,
160
+ editorState: editorState,
161
+ allowEmbeds: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowEmbeds,
162
+ allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
163
+ platform: platform,
164
+ editorAnalyticsApi: editorAnalyticsApi
165
+ }), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && (0, _platformFeatureFlags.fg)('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/_react.default.createElement(_DatasourceAppearanceButton.DatasourceAppearanceButton, {
166
+ intl: intl,
167
+ url: url,
168
+ editorState: editorState,
169
+ editorView: editorView,
170
+ editorAnalyticsApi: editorAnalyticsApi,
171
+ inputMethod: _analytics.INPUT_METHOD.FLOATING_TB
172
+ }), /*#__PURE__*/_react.default.createElement(_ui.FloatingToolbarSeparator, null));
173
+ }
174
+
30
175
  // eslint-disable-next-line @repo/internal/react/no-class-components
31
- var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
32
- (0, _inherits2.default)(HyperlinkToolbarAppearance, _Component);
33
- var _super = _createSuper(HyperlinkToolbarAppearance);
34
- function HyperlinkToolbarAppearance() {
176
+ var HyperlinkToolbarAppearanceClass = /*#__PURE__*/function (_Component) {
177
+ (0, _inherits2.default)(HyperlinkToolbarAppearanceClass, _Component);
178
+ var _super = _createSuper(HyperlinkToolbarAppearanceClass);
179
+ function HyperlinkToolbarAppearanceClass() {
35
180
  var _this;
36
- (0, _classCallCheck2.default)(this, HyperlinkToolbarAppearance);
181
+ (0, _classCallCheck2.default)(this, HyperlinkToolbarAppearanceClass);
37
182
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
38
183
  args[_key] = arguments[_key];
39
184
  }
@@ -41,105 +186,97 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
41
186
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
42
187
  supportedUrlsMap: new Map()
43
188
  });
44
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getProvider", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
45
- var _this$props$cardOptio;
46
- var _this$props$cardOptio2;
47
- return _regenerator.default.wrap(function _callee2$(_context2) {
48
- while (1) switch (_context2.prev = _context2.next) {
189
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getProvider", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
190
+ return _regenerator.default.wrap(function _callee4$(_context4) {
191
+ while (1) switch (_context4.prev = _context4.next) {
49
192
  case 0:
50
- if (!((_this$props$cardOptio = _this.props.cardOptions) !== null && _this$props$cardOptio !== void 0 && _this$props$cardOptio.provider && (0, _platformFeatureFlags.fg)('platform_editor_get_card_provider_from_config'))) {
51
- _context2.next = 2;
52
- break;
53
- }
54
- return _context2.abrupt("return", (_this$props$cardOptio2 = _this.props.cardOptions) === null || _this$props$cardOptio2 === void 0 ? void 0 : _this$props$cardOptio2.provider);
55
- case 2:
56
193
  if (!_this.cardProvider) {
57
- _context2.next = 4;
194
+ _context4.next = 2;
58
195
  break;
59
196
  }
60
- return _context2.abrupt("return", _this.cardProvider);
61
- case 4:
62
- return _context2.abrupt("return", new Promise(function (resolve) {
197
+ return _context4.abrupt("return", _this.cardProvider);
198
+ case 2:
199
+ return _context4.abrupt("return", new Promise(function (resolve) {
63
200
  var providerFactory = _this.props.providerFactory;
64
201
  providerFactory.subscribe('cardProvider', /*#__PURE__*/function () {
65
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_, cardProvider) {
66
- return _regenerator.default.wrap(function _callee$(_context) {
67
- while (1) switch (_context.prev = _context.next) {
202
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(_, cardProvider) {
203
+ return _regenerator.default.wrap(function _callee3$(_context3) {
204
+ while (1) switch (_context3.prev = _context3.next) {
68
205
  case 0:
69
206
  if (cardProvider) {
70
- _context.next = 2;
207
+ _context3.next = 2;
71
208
  break;
72
209
  }
73
- return _context.abrupt("return");
210
+ return _context3.abrupt("return");
74
211
  case 2:
75
- _context.next = 4;
212
+ _context3.next = 4;
76
213
  return cardProvider;
77
214
  case 4:
78
- _this.cardProvider = _context.sent;
215
+ _this.cardProvider = _context3.sent;
79
216
  resolve(_this.cardProvider);
80
217
  case 6:
81
218
  case "end":
82
- return _context.stop();
219
+ return _context3.stop();
83
220
  }
84
- }, _callee);
221
+ }, _callee3);
85
222
  }));
86
- return function (_x, _x2) {
87
- return _ref2.apply(this, arguments);
223
+ return function (_x2, _x3) {
224
+ return _ref4.apply(this, arguments);
88
225
  };
89
226
  }());
90
227
  }));
91
- case 5:
228
+ case 3:
92
229
  case "end":
93
- return _context2.stop();
230
+ return _context4.stop();
94
231
  }
95
- }, _callee2);
232
+ }, _callee4);
96
233
  })));
97
234
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resolveUrl", /*#__PURE__*/function () {
98
- var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(url) {
99
- var supportedUrlsMap, isUrlSupported, _yield$provider$findP, provider, newMap;
100
- return _regenerator.default.wrap(function _callee3$(_context3) {
101
- while (1) switch (_context3.prev = _context3.next) {
235
+ var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(url) {
236
+ var supportedUrlsMap, isUrlSupported, _yield$provider$findP2, provider, newMap;
237
+ return _regenerator.default.wrap(function _callee5$(_context5) {
238
+ while (1) switch (_context5.prev = _context5.next) {
102
239
  case 0:
103
240
  supportedUrlsMap = _this.state.supportedUrlsMap;
104
241
  if (!supportedUrlsMap.has(url)) {
105
- _context3.next = 3;
242
+ _context5.next = 3;
106
243
  break;
107
244
  }
108
- return _context3.abrupt("return");
245
+ return _context5.abrupt("return");
109
246
  case 3:
110
247
  isUrlSupported = false;
111
- _context3.prev = 4;
112
- _context3.next = 7;
248
+ _context5.prev = 4;
249
+ _context5.next = 7;
113
250
  return _this.getProvider();
114
251
  case 7:
115
- provider = _context3.sent;
116
- _context3.next = 10;
252
+ provider = _context5.sent;
253
+ _context5.next = 10;
117
254
  return provider === null || provider === void 0 ? void 0 : provider.findPattern(url);
118
255
  case 10:
119
- _context3.t1 = _yield$provider$findP = _context3.sent;
120
- _context3.t0 = _context3.t1 !== null;
121
- if (!_context3.t0) {
122
- _context3.next = 14;
256
+ _context5.t1 = _yield$provider$findP2 = _context5.sent;
257
+ _context5.t0 = _context5.t1 !== null;
258
+ if (!_context5.t0) {
259
+ _context5.next = 14;
123
260
  break;
124
261
  }
125
- _context3.t0 = _yield$provider$findP !== void 0;
262
+ _context5.t0 = _yield$provider$findP2 !== void 0;
126
263
  case 14:
127
- if (!_context3.t0) {
128
- _context3.next = 18;
264
+ if (!_context5.t0) {
265
+ _context5.next = 18;
129
266
  break;
130
267
  }
131
- _context3.t2 = _yield$provider$findP;
132
- _context3.next = 19;
268
+ _context5.t2 = _yield$provider$findP2;
269
+ _context5.next = 19;
133
270
  break;
134
271
  case 18:
135
- _context3.t2 = false;
272
+ _context5.t2 = false;
136
273
  case 19:
137
- isUrlSupported = _context3.t2;
138
- _context3.next = 25;
274
+ isUrlSupported = _context5.t2;
275
+ _context5.next = 25;
139
276
  break;
140
277
  case 22:
141
- _context3.prev = 22;
142
- _context3.t3 = _context3["catch"](4);
278
+ _context5.prev = 22;
279
+ _context5.t3 = _context5["catch"](4);
143
280
  isUrlSupported = false;
144
281
  case 25:
145
282
  newMap = new Map(supportedUrlsMap);
@@ -149,12 +286,12 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
149
286
  });
150
287
  case 28:
151
288
  case "end":
152
- return _context3.stop();
289
+ return _context5.stop();
153
290
  }
154
- }, _callee3, null, [[4, 22]]);
291
+ }, _callee5, null, [[4, 22]]);
155
292
  }));
156
- return function (_x3) {
157
- return _ref3.apply(this, arguments);
293
+ return function (_x4) {
294
+ return _ref5.apply(this, arguments);
158
295
  };
159
296
  }());
160
297
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "componentDidMount", function () {
@@ -162,7 +299,7 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
162
299
  });
163
300
  return _this;
164
301
  }
165
- (0, _createClass2.default)(HyperlinkToolbarAppearance, [{
302
+ (0, _createClass2.default)(HyperlinkToolbarAppearanceClass, [{
166
303
  key: "UNSAFE_componentWillReceiveProps",
167
304
  value:
168
305
  // needed so we display the right state on the Toolbar while the same Toolbar
@@ -187,7 +324,7 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
187
324
  if (!supportedUrlsMap.get(url)) {
188
325
  return null;
189
326
  }
190
- return /*#__PURE__*/_react.default.createElement(_primitives.Flex, null, !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/_react.default.createElement(_EditDatasourceButton.EditDatasourceButton, {
327
+ return /*#__PURE__*/_react.default.createElement(_primitives.Flex, null, !(0, _platformFeatureFlags.fg)('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/_react.default.createElement(_EditDatasourceButton.EditDatasourceButton, {
191
328
  url: url,
192
329
  intl: intl,
193
330
  editorView: editorView,
@@ -203,7 +340,7 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
203
340
  allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
204
341
  platform: platform,
205
342
  editorAnalyticsApi: editorAnalyticsApi
206
- }), (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.enable-datasource-appearance-toolbar') && (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && /*#__PURE__*/_react.default.createElement(_DatasourceAppearanceButton.DatasourceAppearanceButton, {
343
+ }), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && (0, _platformFeatureFlags.fg)('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/_react.default.createElement(_DatasourceAppearanceButton.DatasourceAppearanceButton, {
207
344
  intl: intl,
208
345
  url: url,
209
346
  editorState: editorState,
@@ -213,5 +350,11 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
213
350
  }), /*#__PURE__*/_react.default.createElement(_ui.FloatingToolbarSeparator, null));
214
351
  }
215
352
  }]);
216
- return HyperlinkToolbarAppearance;
217
- }(_react.Component);
353
+ return HyperlinkToolbarAppearanceClass;
354
+ }(_react.Component);
355
+ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = function HyperlinkToolbarAppearance(props) {
356
+ if ((0, _platformFeatureFlags.fg)('platform_editor_get_card_provider_from_config')) {
357
+ return /*#__PURE__*/_react.default.createElement(HyperlinkToolbarAppearanceFunctional, props);
358
+ }
359
+ return /*#__PURE__*/_react.default.createElement(HyperlinkToolbarAppearanceClass, props);
360
+ };
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.DiscoveryPulse = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
- var _analyticsNext = require("@atlaskit/analytics-next");
9
+ var _useAnalyticsEvents2 = require("@atlaskit/analytics-next/useAnalyticsEvents");
10
10
  var _linkingCommon = require("@atlaskit/linking-common");
11
11
  var _localStorage = require("../../common/local-storage");
12
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -21,7 +21,7 @@ var DiscoveryPulse = exports.DiscoveryPulse = function DiscoveryPulse(_ref) {
21
21
  testId = _ref.testId;
22
22
  var discovered = (0, _localStorage.isLocalStorageKeyDiscovered)(localStorageKey);
23
23
  var showPulse = shouldShowPulse !== null && shouldShowPulse !== void 0 ? shouldShowPulse : !discovered;
24
- var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
24
+ var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
25
25
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
26
26
  (0, _react.useEffect)(function () {
27
27
  if (showPulse) {
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.ToolbarViewedEvent = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
- var _analyticsNext = require("@atlaskit/analytics-next");
11
+ var _useAnalyticsEvents2 = require("@atlaskit/analytics-next/useAnalyticsEvents");
12
12
  var _utils = require("../utils");
13
13
  var _CardContextProvider = require("./CardContextProvider");
14
14
  var _EditorAnalyticsContext = require("./EditorAnalyticsContext");
@@ -23,7 +23,7 @@ var ToolbarViewedEventBase = function ToolbarViewedEventBase(_ref) {
23
23
  var url = _ref.url,
24
24
  display = _ref.display,
25
25
  cardContext = _ref.cardContext;
26
- var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
26
+ var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
27
27
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
28
28
  var store = cardContext === null || cardContext === void 0 ? void 0 : cardContext.store;
29
29
  (0, _react.useEffect)(function () {
@@ -5,7 +5,7 @@ import { IconDatasourceAssetsObjects, IconDatasourceConfluenceSearch, IconDataso
5
5
  import { canRenderDatasource } from '@atlaskit/editor-common/utils';
6
6
  import { ASSETS_LIST_OF_LINKS_DATASOURCE_ID, CONFLUENCE_SEARCH_DATASOURCE_ID } from '@atlaskit/link-datasource';
7
7
  import { createEventsQueue } from './analytics/create-events-queue';
8
- import { hideLinkToolbar, showDatasourceModal } from './pm-plugins/actions';
8
+ import { hideLinkToolbar, setProvider, showDatasourceModal } from './pm-plugins/actions';
9
9
  import { queueCardsFromChangedTr } from './pm-plugins/doc';
10
10
  import { cardKeymap } from './pm-plugins/keymap';
11
11
  import { createPlugin } from './pm-plugins/main';
@@ -23,6 +23,7 @@ export const cardPlugin = ({
23
23
  api
24
24
  }) => {
25
25
  var _options$lpLinkPicker;
26
+ let previousCardProvider;
26
27
  const cardPluginEvents = createEventsQueue();
27
28
  return {
28
29
  name: 'card',
@@ -105,6 +106,18 @@ export const cardPlugin = ({
105
106
  }));
106
107
  },
107
108
  actions: {
109
+ setProvider: async providerPromise => {
110
+ var _api$core$actions$exe;
111
+ const provider = await providerPromise;
112
+ // Prevent someone trying to set the exact same provider twice for performance reasons
113
+ if (previousCardProvider === provider) {
114
+ return false;
115
+ }
116
+ previousCardProvider = provider;
117
+ return (_api$core$actions$exe = api === null || api === void 0 ? void 0 : api.core.actions.execute(({
118
+ tr
119
+ }) => setProvider(provider)(tr))) !== null && _api$core$actions$exe !== void 0 ? _api$core$actions$exe : false;
120
+ },
108
121
  hideLinkToolbar,
109
122
  queueCardsFromChangedTr,
110
123
  getStartingToolbarItems: getStartingToolbarItems(options, api),
@@ -1,5 +1,5 @@
1
+ import { browser } from '@atlaskit/editor-common/browser';
1
2
  import { bindKeymapWithCommand, moveDown, moveUp } from '@atlaskit/editor-common/keymaps';
2
- import { browser } from '@atlaskit/editor-common/utils';
3
3
  import { keymap } from '@atlaskit/editor-prosemirror/keymap';
4
4
  import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
5
5
  import { findChildren, flatten } from '@atlaskit/editor-prosemirror/utils';
@@ -152,8 +152,10 @@ export const createPlugin = (options, pluginInjectionApi) => pmPluginFactoryPara
152
152
  const subscriptionHandler = (name, provider) => handleProvider(name, provider, view);
153
153
  const domAtPos = view.domAtPos.bind(view);
154
154
  const rafCancellationCallbacks = [];
155
- if (options.provider && fg('platform_editor_get_card_provider_from_config')) {
156
- handleProvider('cardProvider', options.provider, view);
155
+ if (fg('platform_editor_get_card_provider_from_config')) {
156
+ if (options.provider) {
157
+ handleProvider('cardProvider', options.provider, view);
158
+ }
157
159
  } else {
158
160
  pmPluginFactoryParams.providerFactory.subscribe('cardProvider', subscriptionHandler);
159
161
  }