@atlaskit/editor-plugin-card 2.13.5 → 2.14.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,16 @@
1
1
  # @atlaskit/editor-plugin-card
2
2
 
3
+ ## 2.14.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`c4d2eb3f9f965`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c4d2eb3f9f965) -
8
+ [ux] Fix issue with card provider not updating asynchronously
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies
13
+
3
14
  ## 2.13.5
4
15
 
5
16
  ### 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;
@@ -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
+ };
@@ -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),
@@ -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
  }
@@ -574,7 +574,8 @@ export const getStartingToolbarItems = (options, api) => {
574
574
  cardOptions: options,
575
575
  providerFactory: providerFactory,
576
576
  platform: options === null || options === void 0 ? void 0 : options.platform,
577
- editorAnalyticsApi: api === null || api === void 0 ? void 0 : (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions
577
+ editorAnalyticsApi: api === null || api === void 0 ? void 0 : (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions,
578
+ editorPluginApi: api
578
579
  });
579
580
  }
580
581
  }, ...editLinkItem];
@@ -1,25 +1,100 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import React, { Component } from 'react';
2
+ import React, { Component, useEffect, useRef, useState } from 'react';
3
3
  import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
4
4
  import { FloatingToolbarSeparator as Separator } from '@atlaskit/editor-common/ui';
5
- import { fg, getBooleanFF } from '@atlaskit/platform-feature-flags';
5
+ import { fg } from '@atlaskit/platform-feature-flags';
6
6
  import { Flex } from '@atlaskit/primitives';
7
7
  import { DatasourceAppearanceButton } from './DatasourceAppearanceButton';
8
8
  import { EditDatasourceButton } from './EditDatasourceButton';
9
9
  import { LinkToolbarAppearance } from './LinkToolbarAppearance';
10
+ function HyperlinkToolbarAppearanceFunctional(props) {
11
+ var _props$cardOptions3;
12
+ const [supportedUrlsMap, setSupportedUrlsMap] = useState(new Map());
13
+ const cardProvider = useRef(undefined);
14
+ const {
15
+ url,
16
+ intl,
17
+ editorView,
18
+ editorState,
19
+ cardOptions,
20
+ platform,
21
+ editorAnalyticsApi
22
+ } = props;
23
+ const getProvider = async () => {
24
+ var _props$cardOptions;
25
+ if ((_props$cardOptions = props.cardOptions) !== null && _props$cardOptions !== void 0 && _props$cardOptions.provider) {
26
+ var _props$cardOptions2;
27
+ return (_props$cardOptions2 = props.cardOptions) === null || _props$cardOptions2 === void 0 ? void 0 : _props$cardOptions2.provider;
28
+ }
29
+ if (cardProvider.current) {
30
+ return cardProvider.current;
31
+ }
32
+ return new Promise(resolve => {
33
+ var _props$editorPluginAp, _props$editorPluginAp2, _props$editorPluginAp3, _props$editorPluginAp4;
34
+ const cardProvider = (_props$editorPluginAp = props.editorPluginApi) === null || _props$editorPluginAp === void 0 ? void 0 : (_props$editorPluginAp2 = _props$editorPluginAp.card) === null || _props$editorPluginAp2 === void 0 ? void 0 : (_props$editorPluginAp3 = _props$editorPluginAp2.sharedState) === null || _props$editorPluginAp3 === void 0 ? void 0 : (_props$editorPluginAp4 = _props$editorPluginAp3.currentState()) === null || _props$editorPluginAp4 === void 0 ? void 0 : _props$editorPluginAp4.provider;
35
+ if (cardProvider) {
36
+ resolve(cardProvider);
37
+ }
38
+ });
39
+ };
40
+ const resolveUrl = async url => {
41
+ if (supportedUrlsMap.has(url)) {
42
+ return;
43
+ }
44
+ let isUrlSupported = false;
45
+ try {
46
+ var _await$provider$findP;
47
+ const provider = await getProvider();
48
+ isUrlSupported = (_await$provider$findP = await (provider === null || provider === void 0 ? void 0 : provider.findPattern(url))) !== null && _await$provider$findP !== void 0 ? _await$provider$findP : false;
49
+ } catch (error) {
50
+ isUrlSupported = false;
51
+ }
52
+ const newMap = new Map(supportedUrlsMap);
53
+ newMap.set(url, isUrlSupported);
54
+ setSupportedUrlsMap(newMap);
55
+ };
56
+ useEffect(() => {
57
+ resolveUrl(url);
58
+ // before migrating from a class to a functional component, we were only reacting to changes in the url
59
+ // eslint-disable-next-line react-hooks/exhaustive-deps
60
+ }, [url, (_props$cardOptions3 = props.cardOptions) === null || _props$cardOptions3 === void 0 ? void 0 : _props$cardOptions3.provider, props.editorPluginApi]);
61
+ if (!supportedUrlsMap.get(url)) {
62
+ return null;
63
+ }
64
+ return /*#__PURE__*/React.createElement(Flex, null, !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/React.createElement(EditDatasourceButton, {
65
+ url: url,
66
+ intl: intl,
67
+ editorView: editorView,
68
+ editorAnalyticsApi: editorAnalyticsApi,
69
+ currentAppearance: "url"
70
+ }), /*#__PURE__*/React.createElement(LinkToolbarAppearance, {
71
+ key: "link-appearance",
72
+ url: url,
73
+ intl: intl,
74
+ editorView: editorView,
75
+ editorState: editorState,
76
+ allowEmbeds: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowEmbeds,
77
+ allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
78
+ platform: platform,
79
+ editorAnalyticsApi: editorAnalyticsApi
80
+ }), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && fg('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/React.createElement(DatasourceAppearanceButton, {
81
+ intl: intl,
82
+ url: url,
83
+ editorState: editorState,
84
+ editorView: editorView,
85
+ editorAnalyticsApi: editorAnalyticsApi,
86
+ inputMethod: INPUT_METHOD.FLOATING_TB
87
+ }), /*#__PURE__*/React.createElement(Separator, null));
88
+ }
89
+
10
90
  // eslint-disable-next-line @repo/internal/react/no-class-components
11
- export class HyperlinkToolbarAppearance extends Component {
91
+ class HyperlinkToolbarAppearanceClass extends Component {
12
92
  constructor(...args) {
13
93
  super(...args);
14
94
  _defineProperty(this, "state", {
15
95
  supportedUrlsMap: new Map()
16
96
  });
17
97
  _defineProperty(this, "getProvider", async () => {
18
- var _this$props$cardOptio;
19
- if ((_this$props$cardOptio = this.props.cardOptions) !== null && _this$props$cardOptio !== void 0 && _this$props$cardOptio.provider && fg('platform_editor_get_card_provider_from_config')) {
20
- var _this$props$cardOptio2;
21
- return (_this$props$cardOptio2 = this.props.cardOptions) === null || _this$props$cardOptio2 === void 0 ? void 0 : _this$props$cardOptio2.provider;
22
- }
23
98
  if (this.cardProvider) {
24
99
  return this.cardProvider;
25
100
  }
@@ -45,9 +120,9 @@ export class HyperlinkToolbarAppearance extends Component {
45
120
  }
46
121
  let isUrlSupported = false;
47
122
  try {
48
- var _await$provider$findP;
123
+ var _await$provider$findP2;
49
124
  const provider = await this.getProvider();
50
- isUrlSupported = (_await$provider$findP = await (provider === null || provider === void 0 ? void 0 : provider.findPattern(url))) !== null && _await$provider$findP !== void 0 ? _await$provider$findP : false;
125
+ isUrlSupported = (_await$provider$findP2 = await (provider === null || provider === void 0 ? void 0 : provider.findPattern(url))) !== null && _await$provider$findP2 !== void 0 ? _await$provider$findP2 : false;
51
126
  } catch (error) {
52
127
  isUrlSupported = false;
53
128
  }
@@ -82,7 +157,7 @@ export class HyperlinkToolbarAppearance extends Component {
82
157
  if (!supportedUrlsMap.get(url)) {
83
158
  return null;
84
159
  }
85
- return /*#__PURE__*/React.createElement(Flex, null, !getBooleanFF('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/React.createElement(EditDatasourceButton, {
160
+ return /*#__PURE__*/React.createElement(Flex, null, !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/React.createElement(EditDatasourceButton, {
86
161
  url: url,
87
162
  intl: intl,
88
163
  editorView: editorView,
@@ -98,7 +173,7 @@ export class HyperlinkToolbarAppearance extends Component {
98
173
  allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
99
174
  platform: platform,
100
175
  editorAnalyticsApi: editorAnalyticsApi
101
- }), getBooleanFF('platform.linking-platform.enable-datasource-appearance-toolbar') && (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && /*#__PURE__*/React.createElement(DatasourceAppearanceButton, {
176
+ }), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && fg('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/React.createElement(DatasourceAppearanceButton, {
102
177
  intl: intl,
103
178
  url: url,
104
179
  editorState: editorState,
@@ -107,4 +182,10 @@ export class HyperlinkToolbarAppearance extends Component {
107
182
  inputMethod: INPUT_METHOD.FLOATING_TB
108
183
  }), /*#__PURE__*/React.createElement(Separator, null));
109
184
  }
110
- }
185
+ }
186
+ export const HyperlinkToolbarAppearance = props => {
187
+ if (fg('platform_editor_get_card_provider_from_config')) {
188
+ return /*#__PURE__*/React.createElement(HyperlinkToolbarAppearanceFunctional, props);
189
+ }
190
+ return /*#__PURE__*/React.createElement(HyperlinkToolbarAppearanceClass, props);
191
+ };
@@ -1,4 +1,6 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
1
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
2
4
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
6
  import React from 'react';
@@ -8,7 +10,7 @@ import { IconDatasourceAssetsObjects, IconDatasourceConfluenceSearch, IconDataso
8
10
  import { canRenderDatasource } from '@atlaskit/editor-common/utils';
9
11
  import { ASSETS_LIST_OF_LINKS_DATASOURCE_ID, CONFLUENCE_SEARCH_DATASOURCE_ID } from '@atlaskit/link-datasource';
10
12
  import { createEventsQueue } from './analytics/create-events-queue';
11
- import { hideLinkToolbar, showDatasourceModal } from './pm-plugins/actions';
13
+ import { hideLinkToolbar, setProvider as _setProvider, showDatasourceModal } from './pm-plugins/actions';
12
14
  import { queueCardsFromChangedTr } from './pm-plugins/doc';
13
15
  import { cardKeymap } from './pm-plugins/keymap';
14
16
  import { createPlugin } from './pm-plugins/main';
@@ -25,6 +27,7 @@ export var cardPlugin = function cardPlugin(_ref) {
25
27
  var _options$lpLinkPicker;
26
28
  var options = _ref.config,
27
29
  api = _ref.api;
30
+ var previousCardProvider;
28
31
  var cardPluginEvents = createEventsQueue();
29
32
  return {
30
33
  name: 'card',
@@ -104,6 +107,39 @@ export var cardPlugin = function cardPlugin(_ref) {
104
107
  }));
105
108
  },
106
109
  actions: {
110
+ setProvider: function () {
111
+ var _setProvider2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(providerPromise) {
112
+ var _api$core$actions$exe;
113
+ var provider;
114
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
115
+ while (1) switch (_context.prev = _context.next) {
116
+ case 0:
117
+ _context.next = 2;
118
+ return providerPromise;
119
+ case 2:
120
+ provider = _context.sent;
121
+ if (!(previousCardProvider === provider)) {
122
+ _context.next = 5;
123
+ break;
124
+ }
125
+ return _context.abrupt("return", false);
126
+ case 5:
127
+ previousCardProvider = provider;
128
+ return _context.abrupt("return", (_api$core$actions$exe = api === null || api === void 0 ? void 0 : api.core.actions.execute(function (_ref4) {
129
+ var tr = _ref4.tr;
130
+ return _setProvider(provider)(tr);
131
+ })) !== null && _api$core$actions$exe !== void 0 ? _api$core$actions$exe : false);
132
+ case 7:
133
+ case "end":
134
+ return _context.stop();
135
+ }
136
+ }, _callee);
137
+ }));
138
+ function setProvider(_x) {
139
+ return _setProvider2.apply(this, arguments);
140
+ }
141
+ return setProvider;
142
+ }(),
107
143
  hideLinkToolbar: hideLinkToolbar,
108
144
  queueCardsFromChangedTr: queueCardsFromChangedTr,
109
145
  getStartingToolbarItems: getStartingToolbarItems(options, api),
@@ -111,8 +147,8 @@ export var cardPlugin = function cardPlugin(_ref) {
111
147
  },
112
148
  pluginsOptions: {
113
149
  floatingToolbar: floatingToolbar(options, (_options$lpLinkPicker = options.lpLinkPicker) !== null && _options$lpLinkPicker !== void 0 ? _options$lpLinkPicker : false, options.platform, options.linkPicker, api, options.disableFloatingToolbar),
114
- quickInsert: function quickInsert(_ref4) {
115
- var formatMessage = _ref4.formatMessage;
150
+ quickInsert: function quickInsert(_ref5) {
151
+ var formatMessage = _ref5.formatMessage;
116
152
  var quickInsertArray = [];
117
153
  if (!options.allowDatasource) {
118
154
  return quickInsertArray;
@@ -154,8 +154,10 @@ export var createPlugin = function createPlugin(options, pluginInjectionApi) {
154
154
  };
155
155
  var domAtPos = _view.domAtPos.bind(_view);
156
156
  var rafCancellationCallbacks = [];
157
- if (options.provider && fg('platform_editor_get_card_provider_from_config')) {
158
- handleProvider('cardProvider', options.provider, _view);
157
+ if (fg('platform_editor_get_card_provider_from_config')) {
158
+ if (options.provider) {
159
+ handleProvider('cardProvider', options.provider, _view);
160
+ }
159
161
  } else {
160
162
  pmPluginFactoryParams.providerFactory.subscribe('cardProvider', subscriptionHandler);
161
163
  }
@@ -579,7 +579,8 @@ export var getStartingToolbarItems = function getStartingToolbarItems(options, a
579
579
  cardOptions: options,
580
580
  providerFactory: providerFactory,
581
581
  platform: options === null || options === void 0 ? void 0 : options.platform,
582
- editorAnalyticsApi: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions
582
+ editorAnalyticsApi: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions,
583
+ editorPluginApi: api
583
584
  });
584
585
  }
585
586
  }].concat(editLinkItem);
@@ -1,4 +1,3 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
1
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
2
  import _createClass from "@babel/runtime/helpers/createClass";
4
3
  import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
@@ -6,24 +5,170 @@ import _inherits from "@babel/runtime/helpers/inherits";
6
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
7
6
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
8
7
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
- import _regeneratorRuntime from "@babel/runtime/regenerator";
8
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
9
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
10
10
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11
11
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
12
- import React, { Component } from 'react';
12
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
13
+ import React, { Component, useEffect, useRef, useState } from 'react';
13
14
  import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
14
15
  import { FloatingToolbarSeparator as Separator } from '@atlaskit/editor-common/ui';
15
- import { fg, getBooleanFF } from '@atlaskit/platform-feature-flags';
16
+ import { fg } from '@atlaskit/platform-feature-flags';
16
17
  import { Flex } from '@atlaskit/primitives';
17
18
  import { DatasourceAppearanceButton } from './DatasourceAppearanceButton';
18
19
  import { EditDatasourceButton } from './EditDatasourceButton';
19
20
  import { LinkToolbarAppearance } from './LinkToolbarAppearance';
21
+ function HyperlinkToolbarAppearanceFunctional(props) {
22
+ var _props$cardOptions3;
23
+ var _useState = useState(new Map()),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ supportedUrlsMap = _useState2[0],
26
+ setSupportedUrlsMap = _useState2[1];
27
+ var cardProvider = useRef(undefined);
28
+ var url = props.url,
29
+ intl = props.intl,
30
+ editorView = props.editorView,
31
+ editorState = props.editorState,
32
+ cardOptions = props.cardOptions,
33
+ platform = props.platform,
34
+ editorAnalyticsApi = props.editorAnalyticsApi;
35
+ var getProvider = /*#__PURE__*/function () {
36
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
37
+ var _props$cardOptions;
38
+ var _props$cardOptions2;
39
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
40
+ while (1) switch (_context.prev = _context.next) {
41
+ case 0:
42
+ if (!((_props$cardOptions = props.cardOptions) !== null && _props$cardOptions !== void 0 && _props$cardOptions.provider)) {
43
+ _context.next = 2;
44
+ break;
45
+ }
46
+ return _context.abrupt("return", (_props$cardOptions2 = props.cardOptions) === null || _props$cardOptions2 === void 0 ? void 0 : _props$cardOptions2.provider);
47
+ case 2:
48
+ if (!cardProvider.current) {
49
+ _context.next = 4;
50
+ break;
51
+ }
52
+ return _context.abrupt("return", cardProvider.current);
53
+ case 4:
54
+ return _context.abrupt("return", new Promise(function (resolve) {
55
+ var _props$editorPluginAp;
56
+ 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;
57
+ if (cardProvider) {
58
+ resolve(cardProvider);
59
+ }
60
+ }));
61
+ case 5:
62
+ case "end":
63
+ return _context.stop();
64
+ }
65
+ }, _callee);
66
+ }));
67
+ return function getProvider() {
68
+ return _ref.apply(this, arguments);
69
+ };
70
+ }();
71
+ var resolveUrl = /*#__PURE__*/function () {
72
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(url) {
73
+ var isUrlSupported, _yield$provider$findP, provider, newMap;
74
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
75
+ while (1) switch (_context2.prev = _context2.next) {
76
+ case 0:
77
+ if (!supportedUrlsMap.has(url)) {
78
+ _context2.next = 2;
79
+ break;
80
+ }
81
+ return _context2.abrupt("return");
82
+ case 2:
83
+ isUrlSupported = false;
84
+ _context2.prev = 3;
85
+ _context2.next = 6;
86
+ return getProvider();
87
+ case 6:
88
+ provider = _context2.sent;
89
+ _context2.next = 9;
90
+ return provider === null || provider === void 0 ? void 0 : provider.findPattern(url);
91
+ case 9:
92
+ _context2.t1 = _yield$provider$findP = _context2.sent;
93
+ _context2.t0 = _context2.t1 !== null;
94
+ if (!_context2.t0) {
95
+ _context2.next = 13;
96
+ break;
97
+ }
98
+ _context2.t0 = _yield$provider$findP !== void 0;
99
+ case 13:
100
+ if (!_context2.t0) {
101
+ _context2.next = 17;
102
+ break;
103
+ }
104
+ _context2.t2 = _yield$provider$findP;
105
+ _context2.next = 18;
106
+ break;
107
+ case 17:
108
+ _context2.t2 = false;
109
+ case 18:
110
+ isUrlSupported = _context2.t2;
111
+ _context2.next = 24;
112
+ break;
113
+ case 21:
114
+ _context2.prev = 21;
115
+ _context2.t3 = _context2["catch"](3);
116
+ isUrlSupported = false;
117
+ case 24:
118
+ newMap = new Map(supportedUrlsMap);
119
+ newMap.set(url, isUrlSupported);
120
+ setSupportedUrlsMap(newMap);
121
+ case 27:
122
+ case "end":
123
+ return _context2.stop();
124
+ }
125
+ }, _callee2, null, [[3, 21]]);
126
+ }));
127
+ return function resolveUrl(_x) {
128
+ return _ref2.apply(this, arguments);
129
+ };
130
+ }();
131
+ useEffect(function () {
132
+ resolveUrl(url);
133
+ // before migrating from a class to a functional component, we were only reacting to changes in the url
134
+ // eslint-disable-next-line react-hooks/exhaustive-deps
135
+ }, [url, (_props$cardOptions3 = props.cardOptions) === null || _props$cardOptions3 === void 0 ? void 0 : _props$cardOptions3.provider, props.editorPluginApi]);
136
+ if (!supportedUrlsMap.get(url)) {
137
+ return null;
138
+ }
139
+ return /*#__PURE__*/React.createElement(Flex, null, !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/React.createElement(EditDatasourceButton, {
140
+ url: url,
141
+ intl: intl,
142
+ editorView: editorView,
143
+ editorAnalyticsApi: editorAnalyticsApi,
144
+ currentAppearance: "url"
145
+ }), /*#__PURE__*/React.createElement(LinkToolbarAppearance, {
146
+ key: "link-appearance",
147
+ url: url,
148
+ intl: intl,
149
+ editorView: editorView,
150
+ editorState: editorState,
151
+ allowEmbeds: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowEmbeds,
152
+ allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
153
+ platform: platform,
154
+ editorAnalyticsApi: editorAnalyticsApi
155
+ }), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && fg('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/React.createElement(DatasourceAppearanceButton, {
156
+ intl: intl,
157
+ url: url,
158
+ editorState: editorState,
159
+ editorView: editorView,
160
+ editorAnalyticsApi: editorAnalyticsApi,
161
+ inputMethod: INPUT_METHOD.FLOATING_TB
162
+ }), /*#__PURE__*/React.createElement(Separator, null));
163
+ }
164
+
20
165
  // eslint-disable-next-line @repo/internal/react/no-class-components
21
- export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
22
- _inherits(HyperlinkToolbarAppearance, _Component);
23
- var _super = _createSuper(HyperlinkToolbarAppearance);
24
- function HyperlinkToolbarAppearance() {
166
+ var HyperlinkToolbarAppearanceClass = /*#__PURE__*/function (_Component) {
167
+ _inherits(HyperlinkToolbarAppearanceClass, _Component);
168
+ var _super = _createSuper(HyperlinkToolbarAppearanceClass);
169
+ function HyperlinkToolbarAppearanceClass() {
25
170
  var _this;
26
- _classCallCheck(this, HyperlinkToolbarAppearance);
171
+ _classCallCheck(this, HyperlinkToolbarAppearanceClass);
27
172
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
28
173
  args[_key] = arguments[_key];
29
174
  }
@@ -31,105 +176,97 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
31
176
  _defineProperty(_assertThisInitialized(_this), "state", {
32
177
  supportedUrlsMap: new Map()
33
178
  });
34
- _defineProperty(_assertThisInitialized(_this), "getProvider", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
35
- var _this$props$cardOptio;
36
- var _this$props$cardOptio2;
37
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
38
- while (1) switch (_context2.prev = _context2.next) {
179
+ _defineProperty(_assertThisInitialized(_this), "getProvider", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
180
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
181
+ while (1) switch (_context4.prev = _context4.next) {
39
182
  case 0:
40
- if (!((_this$props$cardOptio = _this.props.cardOptions) !== null && _this$props$cardOptio !== void 0 && _this$props$cardOptio.provider && fg('platform_editor_get_card_provider_from_config'))) {
41
- _context2.next = 2;
42
- break;
43
- }
44
- return _context2.abrupt("return", (_this$props$cardOptio2 = _this.props.cardOptions) === null || _this$props$cardOptio2 === void 0 ? void 0 : _this$props$cardOptio2.provider);
45
- case 2:
46
183
  if (!_this.cardProvider) {
47
- _context2.next = 4;
184
+ _context4.next = 2;
48
185
  break;
49
186
  }
50
- return _context2.abrupt("return", _this.cardProvider);
51
- case 4:
52
- return _context2.abrupt("return", new Promise(function (resolve) {
187
+ return _context4.abrupt("return", _this.cardProvider);
188
+ case 2:
189
+ return _context4.abrupt("return", new Promise(function (resolve) {
53
190
  var providerFactory = _this.props.providerFactory;
54
191
  providerFactory.subscribe('cardProvider', /*#__PURE__*/function () {
55
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_, cardProvider) {
56
- return _regeneratorRuntime.wrap(function _callee$(_context) {
57
- while (1) switch (_context.prev = _context.next) {
192
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_, cardProvider) {
193
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
194
+ while (1) switch (_context3.prev = _context3.next) {
58
195
  case 0:
59
196
  if (cardProvider) {
60
- _context.next = 2;
197
+ _context3.next = 2;
61
198
  break;
62
199
  }
63
- return _context.abrupt("return");
200
+ return _context3.abrupt("return");
64
201
  case 2:
65
- _context.next = 4;
202
+ _context3.next = 4;
66
203
  return cardProvider;
67
204
  case 4:
68
- _this.cardProvider = _context.sent;
205
+ _this.cardProvider = _context3.sent;
69
206
  resolve(_this.cardProvider);
70
207
  case 6:
71
208
  case "end":
72
- return _context.stop();
209
+ return _context3.stop();
73
210
  }
74
- }, _callee);
211
+ }, _callee3);
75
212
  }));
76
- return function (_x, _x2) {
77
- return _ref2.apply(this, arguments);
213
+ return function (_x2, _x3) {
214
+ return _ref4.apply(this, arguments);
78
215
  };
79
216
  }());
80
217
  }));
81
- case 5:
218
+ case 3:
82
219
  case "end":
83
- return _context2.stop();
220
+ return _context4.stop();
84
221
  }
85
- }, _callee2);
222
+ }, _callee4);
86
223
  })));
87
224
  _defineProperty(_assertThisInitialized(_this), "resolveUrl", /*#__PURE__*/function () {
88
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(url) {
89
- var supportedUrlsMap, isUrlSupported, _yield$provider$findP, provider, newMap;
90
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
91
- while (1) switch (_context3.prev = _context3.next) {
225
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(url) {
226
+ var supportedUrlsMap, isUrlSupported, _yield$provider$findP2, provider, newMap;
227
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
228
+ while (1) switch (_context5.prev = _context5.next) {
92
229
  case 0:
93
230
  supportedUrlsMap = _this.state.supportedUrlsMap;
94
231
  if (!supportedUrlsMap.has(url)) {
95
- _context3.next = 3;
232
+ _context5.next = 3;
96
233
  break;
97
234
  }
98
- return _context3.abrupt("return");
235
+ return _context5.abrupt("return");
99
236
  case 3:
100
237
  isUrlSupported = false;
101
- _context3.prev = 4;
102
- _context3.next = 7;
238
+ _context5.prev = 4;
239
+ _context5.next = 7;
103
240
  return _this.getProvider();
104
241
  case 7:
105
- provider = _context3.sent;
106
- _context3.next = 10;
242
+ provider = _context5.sent;
243
+ _context5.next = 10;
107
244
  return provider === null || provider === void 0 ? void 0 : provider.findPattern(url);
108
245
  case 10:
109
- _context3.t1 = _yield$provider$findP = _context3.sent;
110
- _context3.t0 = _context3.t1 !== null;
111
- if (!_context3.t0) {
112
- _context3.next = 14;
246
+ _context5.t1 = _yield$provider$findP2 = _context5.sent;
247
+ _context5.t0 = _context5.t1 !== null;
248
+ if (!_context5.t0) {
249
+ _context5.next = 14;
113
250
  break;
114
251
  }
115
- _context3.t0 = _yield$provider$findP !== void 0;
252
+ _context5.t0 = _yield$provider$findP2 !== void 0;
116
253
  case 14:
117
- if (!_context3.t0) {
118
- _context3.next = 18;
254
+ if (!_context5.t0) {
255
+ _context5.next = 18;
119
256
  break;
120
257
  }
121
- _context3.t2 = _yield$provider$findP;
122
- _context3.next = 19;
258
+ _context5.t2 = _yield$provider$findP2;
259
+ _context5.next = 19;
123
260
  break;
124
261
  case 18:
125
- _context3.t2 = false;
262
+ _context5.t2 = false;
126
263
  case 19:
127
- isUrlSupported = _context3.t2;
128
- _context3.next = 25;
264
+ isUrlSupported = _context5.t2;
265
+ _context5.next = 25;
129
266
  break;
130
267
  case 22:
131
- _context3.prev = 22;
132
- _context3.t3 = _context3["catch"](4);
268
+ _context5.prev = 22;
269
+ _context5.t3 = _context5["catch"](4);
133
270
  isUrlSupported = false;
134
271
  case 25:
135
272
  newMap = new Map(supportedUrlsMap);
@@ -139,12 +276,12 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
139
276
  });
140
277
  case 28:
141
278
  case "end":
142
- return _context3.stop();
279
+ return _context5.stop();
143
280
  }
144
- }, _callee3, null, [[4, 22]]);
281
+ }, _callee5, null, [[4, 22]]);
145
282
  }));
146
- return function (_x3) {
147
- return _ref3.apply(this, arguments);
283
+ return function (_x4) {
284
+ return _ref5.apply(this, arguments);
148
285
  };
149
286
  }());
150
287
  _defineProperty(_assertThisInitialized(_this), "componentDidMount", function () {
@@ -152,7 +289,7 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
152
289
  });
153
290
  return _this;
154
291
  }
155
- _createClass(HyperlinkToolbarAppearance, [{
292
+ _createClass(HyperlinkToolbarAppearanceClass, [{
156
293
  key: "UNSAFE_componentWillReceiveProps",
157
294
  value:
158
295
  // needed so we display the right state on the Toolbar while the same Toolbar
@@ -177,7 +314,7 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
177
314
  if (!supportedUrlsMap.get(url)) {
178
315
  return null;
179
316
  }
180
- return /*#__PURE__*/React.createElement(Flex, null, !getBooleanFF('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/React.createElement(EditDatasourceButton, {
317
+ return /*#__PURE__*/React.createElement(Flex, null, !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/React.createElement(EditDatasourceButton, {
181
318
  url: url,
182
319
  intl: intl,
183
320
  editorView: editorView,
@@ -193,7 +330,7 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
193
330
  allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
194
331
  platform: platform,
195
332
  editorAnalyticsApi: editorAnalyticsApi
196
- }), getBooleanFF('platform.linking-platform.enable-datasource-appearance-toolbar') && (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && /*#__PURE__*/React.createElement(DatasourceAppearanceButton, {
333
+ }), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && fg('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/React.createElement(DatasourceAppearanceButton, {
197
334
  intl: intl,
198
335
  url: url,
199
336
  editorState: editorState,
@@ -203,5 +340,11 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
203
340
  }), /*#__PURE__*/React.createElement(Separator, null));
204
341
  }
205
342
  }]);
206
- return HyperlinkToolbarAppearance;
207
- }(Component);
343
+ return HyperlinkToolbarAppearanceClass;
344
+ }(Component);
345
+ export var HyperlinkToolbarAppearance = function HyperlinkToolbarAppearance(props) {
346
+ if (fg('platform_editor_get_card_provider_from_config')) {
347
+ return /*#__PURE__*/React.createElement(HyperlinkToolbarAppearanceFunctional, props);
348
+ }
349
+ return /*#__PURE__*/React.createElement(HyperlinkToolbarAppearanceClass, props);
350
+ };
@@ -1,11 +1,13 @@
1
- import { Component } from 'react';
1
+ /// <reference types="react" />
2
2
  import type { IntlShape } from 'react-intl-next';
3
3
  import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
4
4
  import type { CardOptions } from '@atlaskit/editor-common/card';
5
- import type { CardProvider, ProviderFactory } from '@atlaskit/editor-common/provider-factory';
5
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
6
+ import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
6
7
  import type { EditorState } from '@atlaskit/editor-prosemirror/state';
7
8
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
8
9
  import type { CardPlatform } from '@atlaskit/smart-card';
10
+ import { type CardPlugin } from '../plugin';
9
11
  export interface HyperlinkToolbarAppearanceProps {
10
12
  intl: IntlShape;
11
13
  editorState: EditorState;
@@ -15,16 +17,9 @@ export interface HyperlinkToolbarAppearanceProps {
15
17
  platform?: CardPlatform;
16
18
  cardOptions?: CardOptions;
17
19
  editorAnalyticsApi: EditorAnalyticsAPI | undefined;
20
+ editorPluginApi: ExtractInjectionAPI<CardPlugin> | undefined;
18
21
  }
19
22
  export interface HyperlinkToolbarAppearanceState {
20
23
  supportedUrlsMap: Map<string, boolean>;
21
24
  }
22
- export declare class HyperlinkToolbarAppearance extends Component<HyperlinkToolbarAppearanceProps, HyperlinkToolbarAppearanceState> {
23
- state: HyperlinkToolbarAppearanceState;
24
- cardProvider?: CardProvider;
25
- private getProvider;
26
- private resolveUrl;
27
- componentDidMount: () => Promise<void>;
28
- UNSAFE_componentWillReceiveProps(nextProps: HyperlinkToolbarAppearanceProps): void;
29
- render(): JSX.Element | null;
30
- }
25
+ export declare const HyperlinkToolbarAppearance: (props: HyperlinkToolbarAppearanceProps) => JSX.Element;
@@ -1,11 +1,13 @@
1
- import { Component } from 'react';
1
+ /// <reference types="react" />
2
2
  import type { IntlShape } from 'react-intl-next';
3
3
  import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
4
4
  import type { CardOptions } from '@atlaskit/editor-common/card';
5
- import type { CardProvider, ProviderFactory } from '@atlaskit/editor-common/provider-factory';
5
+ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
6
+ import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
6
7
  import type { EditorState } from '@atlaskit/editor-prosemirror/state';
7
8
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
8
9
  import type { CardPlatform } from '@atlaskit/smart-card';
10
+ import { type CardPlugin } from '../plugin';
9
11
  export interface HyperlinkToolbarAppearanceProps {
10
12
  intl: IntlShape;
11
13
  editorState: EditorState;
@@ -15,16 +17,9 @@ export interface HyperlinkToolbarAppearanceProps {
15
17
  platform?: CardPlatform;
16
18
  cardOptions?: CardOptions;
17
19
  editorAnalyticsApi: EditorAnalyticsAPI | undefined;
20
+ editorPluginApi: ExtractInjectionAPI<CardPlugin> | undefined;
18
21
  }
19
22
  export interface HyperlinkToolbarAppearanceState {
20
23
  supportedUrlsMap: Map<string, boolean>;
21
24
  }
22
- export declare class HyperlinkToolbarAppearance extends Component<HyperlinkToolbarAppearanceProps, HyperlinkToolbarAppearanceState> {
23
- state: HyperlinkToolbarAppearanceState;
24
- cardProvider?: CardProvider;
25
- private getProvider;
26
- private resolveUrl;
27
- componentDidMount: () => Promise<void>;
28
- UNSAFE_componentWillReceiveProps(nextProps: HyperlinkToolbarAppearanceProps): void;
29
- render(): JSX.Element | null;
30
- }
25
+ export declare const HyperlinkToolbarAppearance: (props: HyperlinkToolbarAppearanceProps) => JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-card",
3
- "version": "2.13.5",
3
+ "version": "2.14.0",
4
4
  "description": "Card plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -35,7 +35,7 @@
35
35
  "@atlaskit/adf-schema": "^40.9.0",
36
36
  "@atlaskit/analytics-next": "^10.1.0",
37
37
  "@atlaskit/custom-steps": "^0.7.0",
38
- "@atlaskit/editor-common": "^88.3.0",
38
+ "@atlaskit/editor-common": "^88.4.0",
39
39
  "@atlaskit/editor-plugin-analytics": "^1.8.0",
40
40
  "@atlaskit/editor-plugin-decorations": "^1.3.0",
41
41
  "@atlaskit/editor-plugin-editor-disabled": "^1.3.0",