@atlaskit/editor-plugin-card 4.4.13 → 4.5.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.
Files changed (64) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/nodeviews/blockCard.js +0 -4
  3. package/dist/cjs/nodeviews/datasource.js +14 -26
  4. package/dist/cjs/nodeviews/embedCard.js +4 -15
  5. package/dist/cjs/nodeviews/genericCard.js +17 -19
  6. package/dist/cjs/plugin.js +4 -0
  7. package/dist/cjs/toolbar.js +30 -4
  8. package/dist/cjs/ui/DatasourceAppearanceButton.js +11 -13
  9. package/dist/cjs/ui/DatasourceModal/ModalWithState.js +16 -10
  10. package/dist/cjs/ui/EditToolbarButton/index.js +26 -28
  11. package/dist/cjs/ui/EditorLinkingPlatformAnalytics/index.js +5 -25
  12. package/dist/cjs/ui/LinkToolbarAppearance.js +5 -6
  13. package/dist/cjs/ui/ToolbarViewedEvent.js +7 -9
  14. package/dist/cjs/ui/WithCardContext.js +14 -0
  15. package/dist/es2019/nodeviews/blockCard.js +0 -4
  16. package/dist/es2019/nodeviews/datasource.js +14 -26
  17. package/dist/es2019/nodeviews/embedCard.js +4 -16
  18. package/dist/es2019/nodeviews/genericCard.js +5 -9
  19. package/dist/es2019/plugin.js +5 -0
  20. package/dist/es2019/toolbar.js +31 -5
  21. package/dist/es2019/ui/DatasourceAppearanceButton.js +4 -5
  22. package/dist/es2019/ui/DatasourceModal/ModalWithState.js +14 -6
  23. package/dist/es2019/ui/EditToolbarButton/index.js +26 -29
  24. package/dist/es2019/ui/EditorLinkingPlatformAnalytics/index.js +4 -23
  25. package/dist/es2019/ui/LinkToolbarAppearance.js +3 -6
  26. package/dist/es2019/ui/ToolbarViewedEvent.js +4 -5
  27. package/dist/es2019/ui/WithCardContext.js +8 -0
  28. package/dist/esm/nodeviews/blockCard.js +0 -4
  29. package/dist/esm/nodeviews/datasource.js +14 -26
  30. package/dist/esm/nodeviews/embedCard.js +4 -15
  31. package/dist/esm/nodeviews/genericCard.js +17 -19
  32. package/dist/esm/plugin.js +5 -0
  33. package/dist/esm/toolbar.js +31 -5
  34. package/dist/esm/ui/DatasourceAppearanceButton.js +11 -13
  35. package/dist/esm/ui/DatasourceModal/ModalWithState.js +16 -10
  36. package/dist/esm/ui/EditToolbarButton/index.js +26 -28
  37. package/dist/esm/ui/EditorLinkingPlatformAnalytics/index.js +5 -25
  38. package/dist/esm/ui/LinkToolbarAppearance.js +6 -6
  39. package/dist/esm/ui/ToolbarViewedEvent.js +7 -9
  40. package/dist/esm/ui/WithCardContext.js +7 -0
  41. package/dist/types/nodeviews/blockCard.d.ts +0 -4
  42. package/dist/types/nodeviews/datasource.d.ts +0 -5
  43. package/dist/types/nodeviews/embedCard.d.ts +0 -5
  44. package/dist/types/plugin.d.ts +12 -2
  45. package/dist/types/ui/DatasourceAppearanceButton.d.ts +1 -1
  46. package/dist/types/ui/DatasourceModal/ModalWithState.d.ts +4 -3
  47. package/dist/types/ui/EditorLinkingPlatformAnalytics/index.d.ts +1 -6
  48. package/dist/types/ui/LinkToolbarAppearance.d.ts +1 -6
  49. package/dist/types/ui/WithCardContext.d.ts +5 -0
  50. package/dist/types-ts4.5/nodeviews/blockCard.d.ts +0 -4
  51. package/dist/types-ts4.5/nodeviews/datasource.d.ts +0 -5
  52. package/dist/types-ts4.5/nodeviews/embedCard.d.ts +0 -5
  53. package/dist/types-ts4.5/plugin.d.ts +12 -2
  54. package/dist/types-ts4.5/ui/DatasourceAppearanceButton.d.ts +1 -1
  55. package/dist/types-ts4.5/ui/DatasourceModal/ModalWithState.d.ts +4 -3
  56. package/dist/types-ts4.5/ui/EditorLinkingPlatformAnalytics/index.d.ts +1 -6
  57. package/dist/types-ts4.5/ui/LinkToolbarAppearance.d.ts +1 -6
  58. package/dist/types-ts4.5/ui/WithCardContext.d.ts +5 -0
  59. package/package.json +9 -6
  60. package/dist/cjs/ui/CardContextProvider.js +0 -47
  61. package/dist/es2019/ui/CardContextProvider.js +0 -22
  62. package/dist/esm/ui/CardContextProvider.js +0 -40
  63. package/dist/types/ui/CardContextProvider.d.ts +0 -20
  64. package/dist/types-ts4.5/ui/CardContextProvider.d.ts +0 -20
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @atlaskit/editor-plugin-card
2
2
 
3
+ ## 4.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#176132](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/176132)
8
+ [`738d9aeecf5e1`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/738d9aeecf5e1) -
9
+ [ED-24119] Replace Legacy React Context with proper React Context
10
+
11
+ ## 4.5.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [#175540](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/175540)
16
+ [`fa908f67c5dba`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/fa908f67c5dba) -
17
+ [ux] ED-25903 support comment on smart links floating toolbar
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies
22
+
3
23
  ## 4.4.13
4
24
 
5
25
  ### Patch Changes
@@ -14,7 +14,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
14
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
16
  var _react = _interopRequireDefault(require("react"));
17
- var _propTypes = _interopRequireDefault(require("prop-types"));
18
17
  var _rafSchd = _interopRequireDefault(require("raf-schd"));
19
18
  var _reactNodeView = _interopRequireDefault(require("@atlaskit/editor-common/react-node-view"));
20
19
  var _ui = require("@atlaskit/editor-common/ui");
@@ -112,9 +111,6 @@ var BlockCardComponent = exports.BlockCardComponent = /*#__PURE__*/function (_Re
112
111
  }]);
113
112
  return BlockCardComponent;
114
113
  }(_react.default.PureComponent);
115
- (0, _defineProperty2.default)(BlockCardComponent, "contextTypes", {
116
- contextAdapter: _propTypes.default.object
117
- });
118
114
  var WrappedBlockCard = (0, _genericCard.Card)(BlockCardComponent, _ui.UnsupportedBlock);
119
115
  var BlockCard = exports.BlockCard = /*#__PURE__*/function (_ReactNodeView) {
120
116
  (0, _inherits2.default)(BlockCard, _ReactNodeView);
@@ -16,12 +16,12 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
17
  var _react = _interopRequireDefault(require("react"));
18
18
  var _react2 = require("@emotion/react");
19
- var _propTypes = _interopRequireDefault(require("prop-types"));
20
19
  var _reactNodeView = _interopRequireDefault(require("@atlaskit/editor-common/react-node-view"));
21
20
  var _styles = require("@atlaskit/editor-common/styles");
22
21
  var _ui = require("@atlaskit/editor-common/ui");
23
22
  var _utils = require("@atlaskit/editor-common/utils");
24
23
  var _linkDatasource = require("@atlaskit/link-datasource");
24
+ var _linkProvider = require("@atlaskit/link-provider");
25
25
  var _linkingCommon = require("@atlaskit/linking-common");
26
26
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
27
27
  var _datasourceErrorBoundary = require("../datasourceErrorBoundary");
@@ -47,8 +47,6 @@ var getPosSafely = function getPosSafely(pos) {
47
47
  var DatasourceComponent = exports.DatasourceComponent = /*#__PURE__*/function (_React$PureComponent) {
48
48
  (0, _inherits2.default)(DatasourceComponent, _React$PureComponent);
49
49
  var _super = _createSuper(DatasourceComponent);
50
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
-
52
50
  function DatasourceComponent(props) {
53
51
  var _this;
54
52
  (0, _classCallCheck2.default)(this, DatasourceComponent);
@@ -184,7 +182,6 @@ var DatasourceComponent = exports.DatasourceComponent = /*#__PURE__*/function (_
184
182
  }, {
185
183
  key: "render",
186
184
  value: function render() {
187
- var cardContext = this.context.contextAdapter ? this.context.contextAdapter.card : undefined;
188
185
  var datasource = this.getDatasource();
189
186
  var attrs = this.props.node.attrs;
190
187
  var tableView = this.getTableView();
@@ -193,34 +190,25 @@ var DatasourceComponent = exports.DatasourceComponent = /*#__PURE__*/function (_
193
190
  visibleColumnKeys = _this$getColumnsInfo10.visibleColumnKeys,
194
191
  columnCustomSizes = _this$getColumnsInfo10.columnCustomSizes,
195
192
  wrappedColumnKeys = _this$getColumnsInfo10.wrappedColumnKeys;
196
-
197
- // [WS-2307]: we only render card wrapped into a Provider when the value is ready
198
- if (cardContext && cardContext.value) {
199
- return (0, _react2.jsx)(_EditorAnalyticsContext.EditorAnalyticsContext, {
200
- editorView: this.props.view
201
- }, (0, _react2.jsx)(cardContext.Provider, {
202
- value: cardContext.value
203
- }, (0, _react2.jsx)(_linkDatasource.DatasourceTableView, {
204
- datasourceId: datasource.id,
205
- parameters: datasource.parameters,
206
- visibleColumnKeys: visibleColumnKeys,
207
- onVisibleColumnKeysChange: this.handleColumnChange,
208
- url: attrs === null || attrs === void 0 ? void 0 : attrs.url,
209
- onColumnResize: this.handleColumnResize,
210
- columnCustomSizes: columnCustomSizes,
211
- onWrappedColumnChange: this.handleWrappedColumnChange,
212
- wrappedColumnKeys: wrappedColumnKeys
213
- })));
214
- }
193
+ return (0, _react2.jsx)(_linkProvider.EditorSmartCardProviderValueGuard, null, (0, _react2.jsx)(_EditorAnalyticsContext.EditorAnalyticsContext, {
194
+ editorView: this.props.view
195
+ }, (0, _react2.jsx)(_linkProvider.EditorSmartCardProvider, null, (0, _react2.jsx)(_linkDatasource.DatasourceTableView, {
196
+ datasourceId: datasource.id,
197
+ parameters: datasource.parameters,
198
+ visibleColumnKeys: visibleColumnKeys,
199
+ onVisibleColumnKeysChange: this.handleColumnChange,
200
+ url: attrs === null || attrs === void 0 ? void 0 : attrs.url,
201
+ onColumnResize: this.handleColumnResize,
202
+ columnCustomSizes: columnCustomSizes,
203
+ onWrappedColumnChange: this.handleWrappedColumnChange,
204
+ wrappedColumnKeys: wrappedColumnKeys
205
+ }))));
215
206
  }
216
207
  return null;
217
208
  }
218
209
  }]);
219
210
  return DatasourceComponent;
220
211
  }(_react.default.PureComponent);
221
- (0, _defineProperty2.default)(DatasourceComponent, "contextTypes", {
222
- contextAdapter: _propTypes.default.object
223
- });
224
212
  var Datasource = exports.Datasource = /*#__PURE__*/function (_ReactNodeView) {
225
213
  (0, _inherits2.default)(Datasource, _ReactNodeView);
226
214
  var _super2 = _createSuper(Datasource);
@@ -15,7 +15,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
15
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
16
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
17
  var _react = _interopRequireDefault(require("react"));
18
- var _propTypes = _interopRequireDefault(require("prop-types"));
19
18
  var _rafSchd = _interopRequireDefault(require("raf-schd"));
20
19
  var _steps = require("@atlaskit/adf-schema/steps");
21
20
  var _hooks = require("@atlaskit/editor-common/hooks");
@@ -156,8 +155,9 @@ var EmbedCardComponent = exports.EmbedCardComponent = /*#__PURE__*/function (_Re
156
155
  })(view.state.tr));
157
156
  })();
158
157
  try {
159
- var cardContext = _this.context.contextAdapter ? _this.context.contextAdapter.card : undefined;
160
- var hasPreview = cardContext && cardContext.value.extractors.getPreview(url, 'web');
158
+ var _this$props$cardConte, _this$props$cardConte2;
159
+ var cardContext = (_this$props$cardConte = _this.props.cardContext) !== null && _this$props$cardConte !== void 0 && _this$props$cardConte.value ? (_this$props$cardConte2 = _this.props.cardContext) === null || _this$props$cardConte2 === void 0 ? void 0 : _this$props$cardConte2.value : undefined;
160
+ var hasPreview = url && cardContext && cardContext.extractors.getPreview(url, 'web');
161
161
  if (!hasPreview) {
162
162
  _this.setState({
163
163
  hasPreview: false
@@ -249,14 +249,11 @@ var EmbedCardComponent = exports.EmbedCardComponent = /*#__PURE__*/function (_Re
249
249
  _this.scrollContainer = (0, _ui.findOverflowScrollParent)(props.view.dom) || undefined;
250
250
  return _this;
251
251
  }
252
-
253
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
254
252
  (0, _createClass2.default)(EmbedCardComponent, [{
255
253
  key: "render",
256
254
  value: function render() {
257
255
  var _this$props = this.props,
258
256
  node = _this$props.node,
259
- cardContext = _this$props.cardContext,
260
257
  allowResizing = _this$props.allowResizing,
261
258
  fullWidthMode = _this$props.fullWidthMode,
262
259
  view = _this$props.view,
@@ -305,7 +302,7 @@ var EmbedCardComponent = exports.EmbedCardComponent = /*#__PURE__*/function (_Re
305
302
  embedIframeRef: this.embedIframeRef,
306
303
  actionOptions: actionOptions
307
304
  });
308
- var cardInner = /*#__PURE__*/_react.default.createElement(_smartCard.EmbedResizeMessageListener, {
305
+ return /*#__PURE__*/_react.default.createElement(_smartCard.EmbedResizeMessageListener, {
309
306
  embedIframeRef: this.embedIframeRef,
310
307
  onHeightUpdate: this.onHeightUpdate
311
308
  }, /*#__PURE__*/_react.default.createElement(CardInner, {
@@ -324,18 +321,10 @@ var EmbedCardComponent = exports.EmbedCardComponent = /*#__PURE__*/function (_Re
324
321
  cardProps: cardProps,
325
322
  dispatchAnalyticsEvent: dispatchAnalyticsEvent
326
323
  }));
327
-
328
- // [WS-2307]: we only render card wrapped into a Provider when the value is ready
329
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, cardContext && cardContext.value ? /*#__PURE__*/_react.default.createElement(cardContext.Provider, {
330
- value: cardContext.value
331
- }, cardInner) : null);
332
324
  }
333
325
  }]);
334
326
  return EmbedCardComponent;
335
327
  }(_react.default.PureComponent);
336
- (0, _defineProperty2.default)(EmbedCardComponent, "contextTypes", {
337
- contextAdapter: _propTypes.default.object
338
- });
339
328
  var WrappedBlockCard = (0, _genericCard.Card)(EmbedCardComponent, _ui.UnsupportedBlock);
340
329
  var EmbedCard = exports.EmbedCard = /*#__PURE__*/function (_ReactNodeView) {
341
330
  (0, _inherits2.default)(EmbedCard, _ReactNodeView);
@@ -15,7 +15,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
15
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
17
  var _react = _interopRequireWildcard(require("react"));
18
- var _propTypes = _interopRequireDefault(require("prop-types"));
19
18
  var _adfSchema = require("@atlaskit/adf-schema");
20
19
  var _analyticsNext = require("@atlaskit/analytics-next");
21
20
  var _hooks = require("@atlaskit/editor-common/hooks");
@@ -23,6 +22,7 @@ var _utils = require("@atlaskit/editor-common/utils");
23
22
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
24
23
  var _doc = require("../pm-plugins/doc");
25
24
  var _state = require("../pm-plugins/util/state");
25
+ var _WithCardContext = require("../ui/WithCardContext");
26
26
  var _utils2 = require("../utils");
27
27
  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); }
28
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 && {}.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; }
@@ -68,13 +68,12 @@ var WithClickHandler = function WithClickHandler(_ref) {
68
68
  }));
69
69
  };
70
70
  function Card(SmartCardComponent, UnsupportedComponent) {
71
- var _class;
72
- return _class = /*#__PURE__*/function (_React$Component) {
73
- (0, _inherits2.default)(_class, _React$Component);
74
- var _super = _createSuper(_class);
75
- function _class() {
71
+ return /*#__PURE__*/function (_React$Component) {
72
+ (0, _inherits2.default)(_class2, _React$Component);
73
+ var _super = _createSuper(_class2);
74
+ function _class2() {
76
75
  var _this;
77
- (0, _classCallCheck2.default)(this, _class);
76
+ (0, _classCallCheck2.default)(this, _class2);
78
77
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
79
78
  args[_key] = arguments[_key];
80
79
  }
@@ -84,7 +83,7 @@ function Card(SmartCardComponent, UnsupportedComponent) {
84
83
  });
85
84
  return _this;
86
85
  }
87
- (0, _createClass2.default)(_class, [{
86
+ (0, _createClass2.default)(_class2, [{
88
87
  key: "render",
89
88
  value: function render() {
90
89
  var _getPluginState,
@@ -109,7 +108,6 @@ function Card(SmartCardComponent, UnsupportedComponent) {
109
108
  return /*#__PURE__*/_react.default.createElement(UnsupportedComponent, null);
110
109
  }
111
110
  }
112
- var cardContext = this.context.contextAdapter ? this.context.contextAdapter.card : undefined;
113
111
  var editorAppearance = (_getPluginState = (0, _state.getPluginState)(this.props.view.state)) === null || _getPluginState === void 0 ? void 0 : _getPluginState.editorAppearance;
114
112
  var analyticsEditorAppearance = (0, _utils.getAnalyticsEditorAppearance)(editorAppearance);
115
113
  return /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
@@ -127,12 +125,14 @@ function Card(SmartCardComponent, UnsupportedComponent) {
127
125
  __livePage: this.props.__livePage
128
126
  }, function (_ref2) {
129
127
  var onClick = _ref2.onClick;
130
- return /*#__PURE__*/_react.default.createElement(SmartCardComponent, (0, _extends2.default)({
131
- key: url,
132
- cardContext: cardContext
133
- }, _this2.props, {
134
- onClick: onClick
135
- }));
128
+ return /*#__PURE__*/_react.default.createElement(_WithCardContext.WithCardContext, null, function (cardContext) {
129
+ return /*#__PURE__*/_react.default.createElement(SmartCardComponent, (0, _extends2.default)({
130
+ key: url,
131
+ cardContext: cardContext
132
+ }, _this2.props, {
133
+ onClick: onClick
134
+ }));
135
+ });
136
136
  }));
137
137
  }
138
138
  }, {
@@ -169,8 +169,6 @@ function Card(SmartCardComponent, UnsupportedComponent) {
169
169
  }
170
170
  }
171
171
  }]);
172
- return _class;
173
- }(_react.default.Component), (0, _defineProperty2.default)(_class, "contextTypes", {
174
- contextAdapter: _propTypes.default.object
175
- }), _class;
172
+ return _class2;
173
+ }(_react.default.Component);
176
174
  }
@@ -30,6 +30,10 @@ var _LayoutButton = _interopRequireDefault(require("./ui/LayoutButton"));
30
30
  var _utils2 = require("./utils");
31
31
  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; }
32
32
  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) { (0, _defineProperty2.default)(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; }
33
+ // Dummpy type of AnnotationPlugin
34
+ // This is used to avoid editor universal preset's inferred type maximum length error
35
+ // TODO: Remove this when the issue is fixed
36
+
33
37
  var cardPlugin = exports.cardPlugin = function cardPlugin(_ref) {
34
38
  var _options$lpLinkPicker;
35
39
  var _ref$config = _ref.config,
@@ -18,10 +18,12 @@ var _styles = require("@atlaskit/editor-common/styles");
18
18
  var _utils = require("@atlaskit/editor-common/utils");
19
19
  var _state = require("@atlaskit/editor-prosemirror/state");
20
20
  var _utils2 = require("@atlaskit/editor-prosemirror/utils");
21
+ var _comment = _interopRequireDefault(require("@atlaskit/icon/core/comment"));
21
22
  var _delete = _interopRequireDefault(require("@atlaskit/icon/core/delete"));
22
23
  var _linkBroken = _interopRequireDefault(require("@atlaskit/icon/core/link-broken"));
23
24
  var _linkExternal = _interopRequireDefault(require("@atlaskit/icon/core/link-external"));
24
25
  var _settings = _interopRequireDefault(require("@atlaskit/icon/core/settings"));
26
+ var _comment2 = _interopRequireDefault(require("@atlaskit/icon/glyph/comment"));
25
27
  var _remove = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/remove"));
26
28
  var _settings2 = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/settings"));
27
29
  var _unlink = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/unlink"));
@@ -189,7 +191,7 @@ var getToolbarViewedItem = function getToolbarViewedItem(url, display) {
189
191
  };
190
192
  var generateToolbarItems = function generateToolbarItems(state, intl, providerFactory, cardOptions, lpLinkPicker, linkPicker, pluginInjectionApi) {
191
193
  return function (node) {
192
- var _pluginInjectionApi$a, _pluginInjectionApi$d, _pluginInjectionApi$d2, _node$attrs;
194
+ var _pluginInjectionApi$a, _pluginInjectionApi$d, _pluginInjectionApi$d2, _pluginInjectionApi$a2, _node$attrs;
193
195
  var _titleUrlPairFromNode2 = (0, _utils3.titleUrlPairFromNode)(node),
194
196
  url = _titleUrlPairFromNode2.url;
195
197
  var _ref = (_pluginInjectionApi$a = pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : pluginInjectionApi.analytics) !== null && _pluginInjectionApi$a !== void 0 ? _pluginInjectionApi$a : {},
@@ -210,6 +212,19 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
210
212
  hoverDecoration = _ref2.hoverDecoration;
211
213
  var isDatasource = (0, _utils3.isDatasourceNode)(node);
212
214
  var pluginState = _main.pluginKey.getState(state);
215
+ var annotationApiState = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a2 = pluginInjectionApi.annotation) === null || _pluginInjectionApi$a2 === void 0 ? void 0 : _pluginInjectionApi$a2.sharedState.currentState();
216
+ var activeCommentMark = node.marks.find(function (mark) {
217
+ return mark.type.name === 'annotation' && (annotationApiState === null || annotationApiState === void 0 ? void 0 : annotationApiState.annotations[mark.attrs.id]) === false;
218
+ });
219
+ var isCommentEnabled = annotationApiState && annotationApiState.isVisible && !annotationApiState.bookmark && !annotationApiState.mouseData.isSelecting && !activeCommentMark && node.type === state.schema.nodes.inlineCard && (0, _platformFeatureFlags.fg)('platform_inline_node_as_valid_annotation_selection');
220
+ var onCommentButtonClick = function onCommentButtonClick(state, dispatch) {
221
+ if (!(pluginInjectionApi !== null && pluginInjectionApi !== void 0 && pluginInjectionApi.annotation) || !isCommentEnabled) {
222
+ return false;
223
+ }
224
+ var setInlineCommentDraftState = pluginInjectionApi.annotation.actions.setInlineCommentDraftState;
225
+ var command = setInlineCommentDraftState(true, _analytics.INPUT_METHOD.FLOATING_TB);
226
+ return command(state, dispatch);
227
+ };
213
228
  var shouldRenderDatasourceToolbar = isDatasource && cardOptions.allowDatasource && (0, _utils.canRenderDatasource)(node === null || node === void 0 || (_node$attrs = node.attrs) === null || _node$attrs === void 0 || (_node$attrs = _node$attrs.datasource) === null || _node$attrs === void 0 ? void 0 : _node$attrs.id);
214
229
  if (pluginState !== null && pluginState !== void 0 && pluginState.showLinkingToolbar) {
215
230
  return [(0, _EditLinkToolbar.buildEditLinkToolbar)({
@@ -249,7 +264,18 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
249
264
  }, {
250
265
  type: 'separator'
251
266
  }];
252
- var toolbarItems = [].concat(editItems, [{
267
+ var commentItems = isCommentEnabled ? [{
268
+ id: 'editor.link.commentLink',
269
+ type: 'button',
270
+ icon: _comment.default,
271
+ testId: 'inline-card-toolbar-comment-button',
272
+ iconFallback: _comment2.default,
273
+ title: intl.formatMessage(_messages.annotationMessages.createComment),
274
+ onClick: onCommentButtonClick
275
+ }, {
276
+ type: 'separator'
277
+ }] : [];
278
+ var toolbarItems = [].concat(editItems, commentItems, [{
253
279
  id: 'editor.link.openLink',
254
280
  type: 'button',
255
281
  icon: _linkExternal.default,
@@ -287,8 +313,8 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
287
313
  onClick: withToolbarMetadata(removeCard(editorAnalyticsApi))
288
314
  }]);
289
315
  if (currentAppearance === 'embed') {
290
- var _pluginInjectionApi$a2;
291
- var alignmentOptions = buildAlignmentOptions(state, intl, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : pluginInjectionApi.width, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a2 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a2 === void 0 ? void 0 : _pluginInjectionApi$a2.actions, cardOptions);
316
+ var _pluginInjectionApi$a3;
317
+ var alignmentOptions = buildAlignmentOptions(state, intl, pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : pluginInjectionApi.width, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a3 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a3 === void 0 ? void 0 : _pluginInjectionApi$a3.actions, cardOptions);
292
318
  if (alignmentOptions.length) {
293
319
  alignmentOptions.push({
294
320
  type: 'separator'
@@ -11,10 +11,10 @@ var _ui = require("@atlaskit/editor-common/ui");
11
11
  var _utils = require("@atlaskit/editor-common/utils");
12
12
  var _state = require("@atlaskit/editor-prosemirror/state");
13
13
  var _linkDatasource = require("@atlaskit/link-datasource");
14
+ var _linkProvider = require("@atlaskit/link-provider");
14
15
  var _primitives = require("@atlaskit/primitives");
15
16
  var _doc = require("../pm-plugins/doc");
16
17
  var _pluginKey = require("../pm-plugins/plugin-key");
17
- var _CardContextProvider = require("./CardContextProvider");
18
18
  var _DatasourceIcon = require("./DatasourceIcon");
19
19
  var _useFetchDatasourceInfo = require("./useFetchDatasourceInfo");
20
20
  /**
@@ -112,17 +112,15 @@ var DatasourceAppearanceButton = exports.DatasourceAppearanceButton = function D
112
112
  editorState = _ref2.editorState,
113
113
  selected = _ref2.selected,
114
114
  inputMethod = _ref2.inputMethod;
115
- return (0, _react2.jsx)(_CardContextProvider.CardContextProvider, null, function (_ref3) {
116
- var cardContext = _ref3.cardContext;
117
- return (0, _react2.jsx)(DatasourceAppearanceButtonWithCardContext, {
118
- url: url,
119
- intl: intl,
120
- editorAnalyticsApi: editorAnalyticsApi,
121
- editorView: editorView,
122
- editorState: editorState,
123
- cardContext: cardContext,
124
- selected: selected,
125
- inputMethod: inputMethod
126
- });
115
+ var cardContext = (0, _linkProvider.useSmartLinkContext)();
116
+ return (0, _react2.jsx)(DatasourceAppearanceButtonWithCardContext, {
117
+ url: url,
118
+ intl: intl,
119
+ editorAnalyticsApi: editorAnalyticsApi,
120
+ editorView: editorView,
121
+ editorState: editorState,
122
+ cardContext: cardContext,
123
+ selected: selected,
124
+ inputMethod: inputMethod
127
125
  });
128
126
  };
@@ -8,12 +8,13 @@ exports.modalTypeToComponentMap = exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _hooks = require("@atlaskit/editor-common/hooks");
10
10
  var _linkDatasource = require("@atlaskit/link-datasource");
11
+ var _linkProvider = require("@atlaskit/link-provider");
11
12
  var _datasourceErrorBoundary = require("../../datasourceErrorBoundary");
12
- var _CardContextProvider = require("../CardContextProvider");
13
13
  var _index = require("./index");
14
14
  var ModalWithState = function ModalWithState(_ref) {
15
15
  var api = _ref.api,
16
16
  editorView = _ref.editorView;
17
+ var cardContext = (0, _linkProvider.useSmartLinkContext)();
17
18
  var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['card']),
18
19
  cardState = _useSharedPluginState.cardState;
19
20
  if (!cardState) {
@@ -30,16 +31,21 @@ var ModalWithState = function ModalWithState(_ref) {
30
31
  return /*#__PURE__*/_react.default.createElement(_datasourceErrorBoundary.DatasourceErrorBoundary, {
31
32
  view: editorView,
32
33
  datasourceModalType: datasourceModalType
33
- }, /*#__PURE__*/_react.default.createElement(_CardContextProvider.CardContextProvider, null, function (_ref2) {
34
- var cardContext = _ref2.cardContext;
35
- return /*#__PURE__*/_react.default.createElement(_index.DatasourceModal, {
36
- view: editorView,
37
- cardContext: cardContext,
38
- datasourceId: datasourceId,
39
- componentType: componentType
40
- });
34
+ }, /*#__PURE__*/_react.default.createElement(_index.DatasourceModal, {
35
+ view: editorView,
36
+ cardContext: cardContext,
37
+ datasourceId: datasourceId,
38
+ componentType: componentType
41
39
  }));
42
40
  };
41
+ var SafeModalWithState = /*#__PURE__*/_react.default.memo(function (_ref2) {
42
+ var api = _ref2.api,
43
+ editorView = _ref2.editorView;
44
+ return /*#__PURE__*/_react.default.createElement(_linkProvider.EditorSmartCardProviderValueGuard, null, /*#__PURE__*/_react.default.createElement(ModalWithState, {
45
+ api: api,
46
+ editorView: editorView
47
+ }));
48
+ });
43
49
  var modalTypeToComponentMap = exports.modalTypeToComponentMap = {
44
50
  jira: {
45
51
  componentType: _linkDatasource.JiraIssuesConfigModal,
@@ -54,4 +60,4 @@ var modalTypeToComponentMap = exports.modalTypeToComponentMap = {
54
60
  datasourceId: _linkDatasource.ASSETS_LIST_OF_LINKS_DATASOURCE_ID
55
61
  }
56
62
  };
57
- var _default = exports.default = ModalWithState;
63
+ var _default = exports.default = SafeModalWithState;
@@ -14,10 +14,10 @@ var _messages = require("@atlaskit/editor-common/messages");
14
14
  var _ui = require("@atlaskit/editor-common/ui");
15
15
  var _uiMenu = require("@atlaskit/editor-common/ui-menu");
16
16
  var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
17
+ var _linkProvider = require("@atlaskit/link-provider");
17
18
  var _menu = require("@atlaskit/menu");
18
19
  var _primitives = require("@atlaskit/primitives");
19
20
  var _utils = require("../../utils");
20
- var _CardContextProvider = require("../CardContextProvider");
21
21
  var _editDatasourceAction = require("../editDatasourceAction");
22
22
  var _useFetchDatasourceDataInfo = require("../useFetchDatasourceDataInfo");
23
23
  var _useFetchDatasourceInfo = require("../useFetchDatasourceInfo");
@@ -250,34 +250,11 @@ var EditToolbarButton = exports.EditToolbarButton = function EditToolbarButton(p
250
250
  intl = props.intl,
251
251
  onLinkEditClick = props.onLinkEditClick,
252
252
  url = props.url;
253
- return (0, _react2.jsx)(_CardContextProvider.CardContextProvider, null, function (_ref) {
254
- var cardContext = _ref.cardContext;
255
- if (props.url) {
256
- return (0, _react2.jsx)(EditToolbarButtonWithUrl, {
257
- datasourceId: datasourceId,
258
- url: props.url,
259
- intl: intl,
260
- editorAnalyticsApi: editorAnalyticsApi,
261
- editorView: editorView,
262
- cardContext: cardContext,
263
- onLinkEditClick: onLinkEditClick,
264
- currentAppearance: currentAppearance
265
- });
266
- }
267
- if (props.datasourceId && props.node) {
268
- return (0, _react2.jsx)(EditToolbarButtonWithDatasourceId, {
269
- datasourceId: props.datasourceId,
270
- node: props.node,
271
- intl: intl,
272
- editorAnalyticsApi: editorAnalyticsApi,
273
- editorView: editorView,
274
- onLinkEditClick: onLinkEditClick,
275
- currentAppearance: currentAppearance
276
- });
277
- }
278
- return (0, _react2.jsx)(EditToolbarButtonWithCardContext, {
253
+ var cardContext = (0, _linkProvider.useSmartLinkContext)();
254
+ if (props.url) {
255
+ return (0, _react2.jsx)(EditToolbarButtonWithUrl, {
279
256
  datasourceId: datasourceId,
280
- url: url,
257
+ url: props.url,
281
258
  intl: intl,
282
259
  editorAnalyticsApi: editorAnalyticsApi,
283
260
  editorView: editorView,
@@ -285,5 +262,26 @@ var EditToolbarButton = exports.EditToolbarButton = function EditToolbarButton(p
285
262
  onLinkEditClick: onLinkEditClick,
286
263
  currentAppearance: currentAppearance
287
264
  });
265
+ }
266
+ if (props.datasourceId && props.node) {
267
+ return (0, _react2.jsx)(EditToolbarButtonWithDatasourceId, {
268
+ datasourceId: props.datasourceId,
269
+ node: props.node,
270
+ intl: intl,
271
+ editorAnalyticsApi: editorAnalyticsApi,
272
+ editorView: editorView,
273
+ onLinkEditClick: onLinkEditClick,
274
+ currentAppearance: currentAppearance
275
+ });
276
+ }
277
+ return (0, _react2.jsx)(EditToolbarButtonWithCardContext, {
278
+ datasourceId: datasourceId,
279
+ url: url,
280
+ intl: intl,
281
+ editorAnalyticsApi: editorAnalyticsApi,
282
+ editorView: editorView,
283
+ cardContext: cardContext,
284
+ onLinkEditClick: onLinkEditClick,
285
+ currentAppearance: currentAppearance
288
286
  });
289
287
  };
@@ -10,9 +10,8 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
10
10
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
11
11
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
13
  var _react = _interopRequireDefault(require("react"));
15
- var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _linkProvider = require("@atlaskit/link-provider");
16
15
  var _EditorAnalyticsContext = require("../EditorAnalyticsContext");
17
16
  var _DatasourceEvents = require("./DatasourceEvents");
18
17
  var _LinkEvents = require("./LinkEvents");
@@ -28,30 +27,11 @@ var EditorLinkingPlatformAnalytics = exports.EditorLinkingPlatformAnalytics = /*
28
27
  }
29
28
  (0, _createClass2.default)(EditorLinkingPlatformAnalytics, [{
30
29
  key: "render",
31
- value:
32
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
-
34
- function render() {
35
- var _this$context;
36
- var cardContext = (_this$context = this.context) === null || _this$context === void 0 || (_this$context = _this$context.contextAdapter) === null || _this$context === void 0 ? void 0 : _this$context.card;
37
-
38
- /**
39
- * The analytics hook needs to be able to communicate with the card context
40
- * If we can't access it, don't mount the event bindings
41
- * This effectively entirely disables all tracking behaviour
42
- */
43
- if (!(cardContext !== null && cardContext !== void 0 && cardContext.value)) {
44
- return null;
45
- }
46
- return /*#__PURE__*/_react.default.createElement(cardContext.Provider, {
47
- value: cardContext.value
48
- }, /*#__PURE__*/_react.default.createElement(_EditorAnalyticsContext.EditorAnalyticsContext, {
30
+ value: function render() {
31
+ return /*#__PURE__*/_react.default.createElement(_linkProvider.EditorSmartCardProvider, null, /*#__PURE__*/_react.default.createElement(_linkProvider.EditorSmartCardProviderValueGuard, null, /*#__PURE__*/_react.default.createElement(_EditorAnalyticsContext.EditorAnalyticsContext, {
49
32
  editorView: this.props.editorView
50
- }, /*#__PURE__*/_react.default.createElement(_LinkEvents.LinkEventsBinding, this.props), /*#__PURE__*/_react.default.createElement(_DatasourceEvents.DatasourceEventsBinding, this.props)));
33
+ }, /*#__PURE__*/_react.default.createElement(_LinkEvents.LinkEventsBinding, this.props), /*#__PURE__*/_react.default.createElement(_DatasourceEvents.DatasourceEventsBinding, this.props))));
51
34
  }
52
35
  }]);
53
36
  return EditorLinkingPlatformAnalytics;
54
- }(_react.default.PureComponent);
55
- (0, _defineProperty2.default)(EditorLinkingPlatformAnalytics, "contextTypes", {
56
- contextAdapter: _propTypes.default.object
57
- });
37
+ }(_react.default.PureComponent);
@@ -14,7 +14,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
14
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
16
  var _react = _interopRequireDefault(require("react"));
17
- var _propTypes = _interopRequireDefault(require("prop-types"));
18
17
  var _analyticsNext = require("@atlaskit/analytics-next");
19
18
  var _analytics = require("@atlaskit/editor-common/analytics");
20
19
  var _card = require("@atlaskit/editor-common/card");
@@ -26,6 +25,7 @@ var _doc = require("../pm-plugins/doc");
26
25
  var _toolbar = require("../toolbar");
27
26
  var _utils2 = require("../utils");
28
27
  var _Pulse = require("./Pulse");
28
+ var _WithCardContext = require("./WithCardContext");
29
29
  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); }
30
30
  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 && {}.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; }
31
31
  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; }
@@ -146,16 +146,15 @@ var LinkToolbarAppearance = exports.LinkToolbarAppearance = /*#__PURE__*/functio
146
146
  (0, _createClass2.default)(LinkToolbarAppearance, [{
147
147
  key: "render",
148
148
  value: function render() {
149
- var cardContext = this.context.contextAdapter ? this.context.contextAdapter.card : undefined;
149
+ var _this2 = this;
150
150
  var editorView = this.props.editorView;
151
- return this.renderDropdown(editorView, cardContext && cardContext.value);
151
+ return /*#__PURE__*/_react.default.createElement(_WithCardContext.WithCardContext, null, function (cardContext) {
152
+ return _this2.renderDropdown(editorView, cardContext && cardContext.value);
153
+ });
152
154
  }
153
155
  }]);
154
156
  return LinkToolbarAppearance;
155
157
  }(_react.default.Component);
156
- (0, _defineProperty2.default)(LinkToolbarAppearance, "contextTypes", {
157
- contextAdapter: _propTypes.default.object
158
- });
159
158
  var getUnavailableMessage = function getUnavailableMessage(state, intl) {
160
159
  try {
161
160
  var parentNode = state.selection.$from.node(1);