@atlaskit/editor-plugin-card 2.0.5 → 2.0.7

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 (63) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/nodeviews/datasource.js +1 -1
  3. package/dist/cjs/plugin.js +3 -3
  4. package/dist/cjs/pm-plugins/doc.js +1 -109
  5. package/dist/cjs/toolbar.js +92 -6
  6. package/dist/cjs/ui/AwarenessWrapper/index.js +2 -0
  7. package/dist/cjs/ui/DatasourceAppearanceButton.js +2 -0
  8. package/dist/cjs/ui/EditDatasourceButton.js +51 -25
  9. package/dist/cjs/ui/EditToolbarButton.js +31 -28
  10. package/dist/cjs/ui/HyperlinkToolbarAppearance.js +2 -2
  11. package/dist/cjs/ui/InlineCardOverlay/index.js +1 -0
  12. package/dist/cjs/ui/LayoutButton/index.js +1 -1
  13. package/dist/cjs/ui/LeftIconOverlay/index.js +1 -0
  14. package/dist/cjs/ui/ResizableEmbedCard.js +1 -1
  15. package/dist/cjs/ui/useFetchDatasourceInfo.js +13 -6
  16. package/dist/cjs/utils.js +11 -1
  17. package/dist/es2019/nodeviews/datasource.js +2 -0
  18. package/dist/es2019/plugin.js +2 -2
  19. package/dist/es2019/pm-plugins/doc.js +2 -106
  20. package/dist/es2019/toolbar.js +88 -6
  21. package/dist/es2019/ui/AwarenessWrapper/index.js +2 -0
  22. package/dist/es2019/ui/DatasourceAppearanceButton.js +2 -0
  23. package/dist/es2019/ui/EditDatasourceButton.js +42 -14
  24. package/dist/es2019/ui/EditToolbarButton.js +26 -22
  25. package/dist/es2019/ui/HyperlinkToolbarAppearance.js +2 -2
  26. package/dist/es2019/ui/InlineCardOverlay/index.js +2 -0
  27. package/dist/es2019/ui/LayoutButton/index.js +2 -0
  28. package/dist/es2019/ui/LeftIconOverlay/index.js +2 -0
  29. package/dist/es2019/ui/ResizableEmbedCard.js +2 -0
  30. package/dist/es2019/ui/useFetchDatasourceInfo.js +5 -1
  31. package/dist/es2019/utils.js +10 -0
  32. package/dist/esm/nodeviews/datasource.js +2 -0
  33. package/dist/esm/plugin.js +2 -2
  34. package/dist/esm/pm-plugins/doc.js +2 -110
  35. package/dist/esm/toolbar.js +92 -6
  36. package/dist/esm/ui/AwarenessWrapper/index.js +2 -0
  37. package/dist/esm/ui/DatasourceAppearanceButton.js +2 -0
  38. package/dist/esm/ui/EditDatasourceButton.js +42 -16
  39. package/dist/esm/ui/EditToolbarButton.js +33 -28
  40. package/dist/esm/ui/HyperlinkToolbarAppearance.js +2 -2
  41. package/dist/esm/ui/InlineCardOverlay/index.js +2 -0
  42. package/dist/esm/ui/LayoutButton/index.js +2 -0
  43. package/dist/esm/ui/LeftIconOverlay/index.js +2 -0
  44. package/dist/esm/ui/ResizableEmbedCard.js +2 -0
  45. package/dist/esm/ui/useFetchDatasourceInfo.js +13 -6
  46. package/dist/esm/utils.js +10 -0
  47. package/dist/types/pm-plugins/doc.d.ts +3 -11
  48. package/dist/types/toolbar.d.ts +7 -0
  49. package/dist/types/types.d.ts +1 -0
  50. package/dist/types/ui/EditDatasourceButton.d.ts +6 -5
  51. package/dist/types/ui/EditLinkToolbar.d.ts +1 -1
  52. package/dist/types/ui/EditToolbarButton.d.ts +3 -1
  53. package/dist/types/ui/useFetchDatasourceInfo.d.ts +1 -0
  54. package/dist/types/utils.d.ts +6 -0
  55. package/dist/types-ts4.5/pm-plugins/doc.d.ts +3 -11
  56. package/dist/types-ts4.5/toolbar.d.ts +7 -0
  57. package/dist/types-ts4.5/types.d.ts +1 -0
  58. package/dist/types-ts4.5/ui/EditDatasourceButton.d.ts +6 -5
  59. package/dist/types-ts4.5/ui/EditLinkToolbar.d.ts +1 -1
  60. package/dist/types-ts4.5/ui/EditToolbarButton.d.ts +3 -1
  61. package/dist/types-ts4.5/ui/useFetchDatasourceInfo.d.ts +1 -0
  62. package/dist/types-ts4.5/utils.d.ts +6 -0
  63. package/package.json +37 -19
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/editor-plugin-card
2
2
 
3
+ ## 2.0.7
4
+
5
+ ### Patch Changes
6
+
7
+ - [#111799](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/111799)
8
+ [`8da4e04d627d5`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/8da4e04d627d5) -
9
+ Adds analytic events for toolbar edit dropdown for datasources
10
+
11
+ ## 2.0.6
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies
16
+
3
17
  ## 2.0.5
4
18
 
5
19
  ### Patch Changes
@@ -29,7 +29,7 @@ var _EditorAnalyticsContext = require("../ui/EditorAnalyticsContext");
29
29
  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; }
30
30
  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; }
31
31
  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); }; }
32
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @jsx jsx */
32
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
33
33
  var getPosSafely = function getPosSafely(pos) {
34
34
  if (!pos || typeof pos === 'boolean') {
35
35
  return;
@@ -13,9 +13,9 @@ var _quickInsert = require("@atlaskit/editor-common/quick-insert");
13
13
  var _utils = require("@atlaskit/editor-common/utils");
14
14
  var _linkDatasource = require("@atlaskit/link-datasource");
15
15
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
+ var _doc = require("../src/pm-plugins/doc");
16
17
  var _createEventsQueue = require("./analytics/create-events-queue");
17
18
  var _actions = require("./pm-plugins/actions");
18
- var _doc = require("./pm-plugins/doc");
19
19
  var _keymap = require("./pm-plugins/keymap");
20
20
  var _main = require("./pm-plugins/main");
21
21
  var _pluginKey = require("./pm-plugins/plugin-key");
@@ -112,8 +112,8 @@ var cardPlugin = exports.cardPlugin = function cardPlugin(_ref) {
112
112
  actions: {
113
113
  hideLinkToolbar: _actions.hideLinkToolbar,
114
114
  queueCardsFromChangedTr: _doc.queueCardsFromChangedTr,
115
- getStartingToolbarItems: (0, _doc.getStartingToolbarItems)(options, api),
116
- getEndingToolbarItems: (0, _doc.getEndingToolbarItems)(options, api)
115
+ getStartingToolbarItems: (0, _toolbar.getStartingToolbarItems)(options, api),
116
+ getEndingToolbarItems: (0, _toolbar.getEndingToolbarItems)(options, api)
117
117
  },
118
118
  pluginsOptions: {
119
119
  floatingToolbar: (0, _toolbar.floatingToolbar)(options, (_options$lpLinkPicker = options.lpLinkPicker) !== null && _options$lpLinkPicker !== void 0 ? _options$lpLinkPicker : false, options.platform, options.linkPicker, api, options.disableFloatingToolbar),
@@ -4,23 +4,17 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.updateCardViaDatasource = exports.updateCard = exports.setSelectedCardAppearance = exports.replaceQueuedUrlWithCard = exports.queueCardsFromChangedTr = exports.queueCardFromChangedTr = exports.insertDatasource = exports.handleFallbackWithAnalytics = exports.getStartingToolbarItems = exports.getLinkNodeType = exports.getEndingToolbarItems = exports.getAttrsForAppearance = exports.editDatasource = exports.convertHyperlinkToSmartCard = exports.changeSelectedCardToText = exports.changeSelectedCardToLinkFallback = exports.changeSelectedCardToLink = void 0;
7
+ exports.updateCardViaDatasource = exports.updateCard = exports.setSelectedCardAppearance = exports.replaceQueuedUrlWithCard = exports.queueCardsFromChangedTr = exports.queueCardFromChangedTr = exports.insertDatasource = exports.handleFallbackWithAnalytics = exports.getLinkNodeType = exports.getAttrsForAppearance = exports.convertHyperlinkToSmartCard = exports.changeSelectedCardToText = exports.changeSelectedCardToLinkFallback = exports.changeSelectedCardToLink = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var _react = _interopRequireDefault(require("react"));
11
10
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
12
11
  var _adfSchema = require("@atlaskit/adf-schema");
13
12
  var _analytics = require("@atlaskit/editor-common/analytics");
14
13
  var _card = require("@atlaskit/editor-common/card");
15
- var _messages = require("@atlaskit/editor-common/messages");
16
14
  var _utils = require("@atlaskit/editor-common/utils");
17
15
  var _history = require("@atlaskit/editor-prosemirror/history");
18
16
  var _state = require("@atlaskit/editor-prosemirror/state");
19
17
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
20
- var _toolbar = require("../toolbar");
21
- var _EditToolbarButton = require("../ui/EditToolbarButton");
22
- var _HyperlinkToolbarAppearance = require("../ui/HyperlinkToolbarAppearance");
23
- var _ToolbarViewedEvent = require("../ui/ToolbarViewedEvent");
24
18
  var _utils2 = require("../utils");
25
19
  var _actions = require("./actions");
26
20
  var _pluginKey = require("./plugin-key");
@@ -573,106 +567,4 @@ var updateDatasourceStash = function updateDatasourceStash(tr, selectedNode) {
573
567
  }
574
568
  }
575
569
  }
576
- };
577
- var editDatasource = exports.editDatasource = function editDatasource(datasourceId, editorAnalyticsApi) {
578
- return function (state, dispatch) {
579
- var datasourceType = (0, _utils.getDatasourceType)(datasourceId);
580
- if (dispatch && datasourceType) {
581
- var tr = state.tr;
582
- (0, _actions.showDatasourceModal)(datasourceType)(tr);
583
- // editorAnalyticsApi?.attachAnalyticsEvent(
584
- // buildEditLinkPayload(
585
- // type as
586
- // | ACTION_SUBJECT_ID.CARD_INLINE
587
- // | ACTION_SUBJECT_ID.CARD_BLOCK
588
- // | ACTION_SUBJECT_ID.EMBEDS,
589
- // ),
590
- // )(tr);
591
- dispatch(tr);
592
- return true;
593
- }
594
- return false;
595
- };
596
- };
597
- var getStartingToolbarItems = exports.getStartingToolbarItems = function getStartingToolbarItems(options, api) {
598
- return function (intl, link, providerFactory, onEditLink, metadata) {
599
- var isEditDropdownEnabled = (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && options.platform !== 'mobile' && options.allowDatasource;
600
- var editLinkItem = isEditDropdownEnabled ? [{
601
- type: 'custom',
602
- fallback: [],
603
- render: function render(editorView) {
604
- var _api$analytics;
605
- if (!editorView) {
606
- return null;
607
- }
608
- return /*#__PURE__*/_react.default.createElement(_EditToolbarButton.EditToolbarButton, {
609
- key: "edit-toolbar-button",
610
- intl: intl,
611
- editorAnalyticsApi: api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions,
612
- url: link,
613
- editorView: editorView,
614
- onLinkEditClick: onEditLink
615
- });
616
- }
617
- }] : [{
618
- id: 'editor.link.edit',
619
- testId: 'editor.link.edit',
620
- type: 'button',
621
- onClick: onEditLink,
622
- title: intl.formatMessage(_messages.linkToolbarMessages.editLink),
623
- showTitle: true,
624
- metadata: metadata
625
- }, {
626
- type: 'separator'
627
- }];
628
- return [{
629
- type: 'custom',
630
- fallback: [],
631
- render: function render(editorView) {
632
- return /*#__PURE__*/_react.default.createElement(_ToolbarViewedEvent.ToolbarViewedEvent, {
633
- key: "edit.link.menu.viewed",
634
- url: link,
635
- display: "url",
636
- editorView: editorView
637
- });
638
- }
639
- }, {
640
- type: 'custom',
641
- fallback: [],
642
- render: function render(editorView) {
643
- var _api$analytics2;
644
- if (!editorView) {
645
- return null;
646
- }
647
- return /*#__PURE__*/_react.default.createElement(_HyperlinkToolbarAppearance.HyperlinkToolbarAppearance, {
648
- key: "link-appearance",
649
- url: link,
650
- intl: intl,
651
- editorView: editorView,
652
- editorState: editorView.state,
653
- cardOptions: options,
654
- providerFactory: providerFactory,
655
- platform: options === null || options === void 0 ? void 0 : options.platform,
656
- editorAnalyticsApi: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions
657
- });
658
- }
659
- }].concat(editLinkItem);
660
- };
661
- };
662
- var getEndingToolbarItems = exports.getEndingToolbarItems = function getEndingToolbarItems(options, api) {
663
- return function (intl, link) {
664
- if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.card.inject-settings-button')) {
665
- /**
666
- * Require either provider to be supplied (controls link preferences)
667
- * Or explicit user preferences config in order to enable button
668
- */
669
- if (options.provider || options.userPreferencesLink) {
670
- var _api$analytics3;
671
- return [{
672
- type: 'separator'
673
- }, (0, _toolbar.getHyperlinkToolbarSettingsButton)(intl, api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions, options.userPreferencesLink)];
674
- }
675
- }
676
- return [];
677
- };
678
570
  };
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.visitCardLink = exports.shouldRenderToolbarPulse = exports.removeCard = exports.openLinkSettings = exports.getSettingsButtonGroup = exports.getSettingsButton = exports.getHyperlinkToolbarSettingsButton = exports.floatingToolbar = void 0;
8
+ exports.visitCardLink = exports.shouldRenderToolbarPulse = exports.removeCard = exports.openLinkSettings = exports.getStartingToolbarItems = exports.getSettingsButtonGroup = exports.getSettingsButton = exports.getHyperlinkToolbarSettingsButton = exports.getEndingToolbarItems = exports.floatingToolbar = void 0;
9
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _react = _interopRequireDefault(require("react"));
@@ -24,12 +24,13 @@ var _settings = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/sett
24
24
  var _unlink = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/unlink"));
25
25
  var _shortcut = _interopRequireDefault(require("@atlaskit/icon/glyph/shortcut"));
26
26
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
27
- var _doc = require("./pm-plugins/doc");
27
+ var _doc = require("../src/pm-plugins/doc");
28
28
  var _main = require("./pm-plugins/main");
29
29
  var _DatasourceAppearanceButton = require("./ui/DatasourceAppearanceButton");
30
30
  var _EditDatasourceButton = require("./ui/EditDatasourceButton");
31
31
  var _EditLinkToolbar = require("./ui/EditLinkToolbar");
32
32
  var _EditToolbarButton = require("./ui/EditToolbarButton");
33
+ var _HyperlinkToolbarAppearance = require("./ui/HyperlinkToolbarAppearance");
33
34
  var _LinkToolbarAppearance = require("./ui/LinkToolbarAppearance");
34
35
  var _ToolbarViewedEvent = require("./ui/ToolbarViewedEvent");
35
36
  var _utils3 = require("./utils");
@@ -236,7 +237,8 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
236
237
  intl: intl,
237
238
  editorAnalyticsApi: editorAnalyticsApi,
238
239
  editorView: editorView,
239
- onLinkEditClick: (0, _EditLinkToolbar.editLink)(editorAnalyticsApi, true)
240
+ onLinkEditClick: (0, _EditLinkToolbar.editLink)(editorAnalyticsApi, true),
241
+ currentAppearance: currentAppearance
240
242
  });
241
243
  }
242
244
  }] : [{
@@ -348,7 +350,7 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
348
350
  editorAnalyticsApi: editorAnalyticsApi,
349
351
  url: url,
350
352
  editorView: editorView,
351
- editorState: state
353
+ currentAppearance: currentAppearance
352
354
  });
353
355
  }
354
356
  });
@@ -405,7 +407,7 @@ var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl,
405
407
  metadata: metadata,
406
408
  className: 'datasource-edit',
407
409
  title: intl.formatMessage(_messages.linkToolbarMessages.editDatasource),
408
- onClick: (0, _doc.editDatasource)(datasourceId, editorAnalyticsApi),
410
+ onClick: (0, _EditDatasourceButton.editDatasource)(datasourceId, editorAnalyticsApi, 'datasource'),
409
411
  testId: 'datasource-edit-button'
410
412
  }, {
411
413
  type: 'separator'
@@ -479,7 +481,8 @@ var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl,
479
481
  intl: intl,
480
482
  editorAnalyticsApi: editorAnalyticsApi,
481
483
  editorView: editorView,
482
- onLinkEditClick: (0, _EditLinkToolbar.editLink)(editorAnalyticsApi, false)
484
+ onLinkEditClick: (0, _EditLinkToolbar.editLink)(editorAnalyticsApi, false),
485
+ currentAppearance: "datasource"
483
486
  });
484
487
  }
485
488
  });
@@ -524,4 +527,87 @@ var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl,
524
527
  };
525
528
  var shouldRenderToolbarPulse = exports.shouldRenderToolbarPulse = function shouldRenderToolbarPulse(embedEnabled, appearance, status, isDiscoverabilityEnabled) {
526
529
  return embedEnabled && appearance === 'inline' && status === 'resolved' && isDiscoverabilityEnabled;
530
+ };
531
+ var getStartingToolbarItems = exports.getStartingToolbarItems = function getStartingToolbarItems(options, api) {
532
+ return function (intl, link, providerFactory, onEditLink, metadata) {
533
+ var isEditDropdownEnabled = (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && options.platform !== 'mobile' && options.allowDatasource;
534
+ var editLinkItem = isEditDropdownEnabled ? [{
535
+ type: 'custom',
536
+ fallback: [],
537
+ render: function render(editorView) {
538
+ var _api$analytics;
539
+ if (!editorView) {
540
+ return null;
541
+ }
542
+ return /*#__PURE__*/_react.default.createElement(_EditToolbarButton.EditToolbarButton, {
543
+ key: "edit-toolbar-button",
544
+ intl: intl,
545
+ editorAnalyticsApi: api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions,
546
+ url: link,
547
+ editorView: editorView,
548
+ onLinkEditClick: onEditLink,
549
+ currentAppearance: "url"
550
+ });
551
+ }
552
+ }] : [{
553
+ id: 'editor.link.edit',
554
+ testId: 'editor.link.edit',
555
+ type: 'button',
556
+ onClick: onEditLink,
557
+ title: intl.formatMessage(_messages.linkToolbarMessages.editLink),
558
+ showTitle: true,
559
+ metadata: metadata
560
+ }, {
561
+ type: 'separator'
562
+ }];
563
+ return [{
564
+ type: 'custom',
565
+ fallback: [],
566
+ render: function render(editorView) {
567
+ return /*#__PURE__*/_react.default.createElement(_ToolbarViewedEvent.ToolbarViewedEvent, {
568
+ key: "edit.link.menu.viewed",
569
+ url: link,
570
+ display: "url",
571
+ editorView: editorView
572
+ });
573
+ }
574
+ }, {
575
+ type: 'custom',
576
+ fallback: [],
577
+ render: function render(editorView) {
578
+ var _api$analytics2;
579
+ if (!editorView) {
580
+ return null;
581
+ }
582
+ return /*#__PURE__*/_react.default.createElement(_HyperlinkToolbarAppearance.HyperlinkToolbarAppearance, {
583
+ key: "link-appearance",
584
+ url: link,
585
+ intl: intl,
586
+ editorView: editorView,
587
+ editorState: editorView.state,
588
+ cardOptions: options,
589
+ providerFactory: providerFactory,
590
+ platform: options === null || options === void 0 ? void 0 : options.platform,
591
+ editorAnalyticsApi: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions
592
+ });
593
+ }
594
+ }].concat(editLinkItem);
595
+ };
596
+ };
597
+ var getEndingToolbarItems = exports.getEndingToolbarItems = function getEndingToolbarItems(options, api) {
598
+ return function (intl, link) {
599
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.card.inject-settings-button')) {
600
+ /**
601
+ * Require either provider to be supplied (controls link preferences)
602
+ * Or explicit user preferences config in order to enable button
603
+ */
604
+ if (options.provider || options.userPreferencesLink) {
605
+ var _api$analytics3;
606
+ return [{
607
+ type: 'separator'
608
+ }, getHyperlinkToolbarSettingsButton(intl, api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions, options.userPreferencesLink)];
609
+ }
610
+ }
611
+ return [];
612
+ };
527
613
  };
@@ -18,6 +18,8 @@ var _LeftIconOverlay = _interopRequireDefault(require("../LeftIconOverlay"));
18
18
  var _Pulse = require("../Pulse");
19
19
  /** @jsx jsx */
20
20
 
21
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
22
+
21
23
  // editor adds a standard line-height that is bigger than an inline smart link
22
24
  // due to that the link has a bit of white space around it, which doesn't look right when there is pulse around it
23
25
  var loaderWrapperStyles = (0, _react2.css)({
@@ -20,6 +20,8 @@ var _DatasourceIcon = require("./DatasourceIcon");
20
20
  var _useFetchDatasourceInfo = require("./useFetchDatasourceInfo");
21
21
  /** @jsx jsx */
22
22
 
23
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
24
+
23
25
  var buttonStyles = (0, _react2.css)({
24
26
  pointerEvents: 'auto'
25
27
  });
@@ -3,18 +3,23 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.EditDatasourceButton = void 0;
7
- var _react = require("@emotion/react");
6
+ exports.editDatasource = exports.EditDatasourceButton = void 0;
7
+ var _react = require("react");
8
+ var _react2 = require("@emotion/react");
9
+ var _analytics = require("@atlaskit/editor-common/analytics");
8
10
  var _messages = require("@atlaskit/editor-common/messages");
9
11
  var _ui = require("@atlaskit/editor-common/ui");
12
+ var _utils = require("@atlaskit/editor-common/utils");
10
13
  var _primitives = require("@atlaskit/primitives");
11
- var _doc = require("../pm-plugins/doc");
12
- var _utils = require("../utils");
14
+ var _actions = require("../pm-plugins/actions");
15
+ var _utils2 = require("../utils");
13
16
  var _CardContextProvider = require("./CardContextProvider");
14
17
  var _useFetchDatasourceInfo = require("./useFetchDatasourceInfo");
15
18
  /** @jsx jsx */
16
19
 
17
- var buttonStyles = (0, _react.css)({
20
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
21
+
22
+ var buttonStyles = (0, _react2.css)({
18
23
  pointerEvents: 'auto'
19
24
  });
20
25
 
@@ -26,14 +31,21 @@ var EditDatasourceButtonWithCardContext = function EditDatasourceButtonWithCardC
26
31
  editorAnalyticsApi = _ref.editorAnalyticsApi,
27
32
  url = _ref.url,
28
33
  editorView = _ref.editorView,
29
- editorState = _ref.editorState;
34
+ currentAppearance = _ref.currentAppearance;
30
35
  var _useFetchDatasourceIn = (0, _useFetchDatasourceInfo.useFetchDatasourceInfo)({
31
36
  isRegularCardNode: true,
32
37
  url: url,
33
38
  cardContext: cardContext
34
39
  }),
35
- datasourceId = _useFetchDatasourceIn.datasourceId;
36
- if (!datasourceId || !(0, _utils.isDatasourceConfigEditable)(datasourceId)) {
40
+ datasourceId = _useFetchDatasourceIn.datasourceId,
41
+ extensionKey = _useFetchDatasourceIn.extensionKey;
42
+ var onEditDatasource = (0, _react.useCallback)(function () {
43
+ if (editorView && datasourceId) {
44
+ editDatasource(datasourceId, editorAnalyticsApi, currentAppearance, extensionKey)(editorView.state, editorView.dispatch);
45
+ (0, _utils2.focusEditorView)(editorView);
46
+ }
47
+ }, [currentAppearance, datasourceId, editorAnalyticsApi, editorView, extensionKey]);
48
+ if (!datasourceId || !(0, _utils2.isDatasourceConfigEditable)(datasourceId)) {
37
49
  return null;
38
50
  }
39
51
  if (url) {
@@ -43,38 +55,52 @@ var EditDatasourceButtonWithCardContext = function EditDatasourceButtonWithCardC
43
55
  return null;
44
56
  }
45
57
  }
46
- var dispatchCommand = function dispatchCommand(fn) {
47
- fn && fn(editorState, editorView && editorView.dispatch);
48
- if (editorView && !editorView.hasFocus()) {
49
- editorView.focus();
50
- }
51
- };
52
- return (0, _react.jsx)(_primitives.Flex, null, (0, _react.jsx)(_ui.FloatingToolbarButton, {
58
+ return (0, _react2.jsx)(_primitives.Flex, null, (0, _react2.jsx)(_ui.FloatingToolbarButton, {
53
59
  css: buttonStyles,
54
60
  title: intl.formatMessage(_messages.cardMessages.datasourceTitle),
55
- icon: (0, _react.jsx)(_ui.SmallerEditIcon, null),
61
+ icon: (0, _react2.jsx)(_ui.SmallerEditIcon, null),
56
62
  selected: false,
57
- onClick: function onClick() {
58
- return dispatchCommand((0, _doc.editDatasource)(datasourceId, editorAnalyticsApi));
59
- },
63
+ onClick: onEditDatasource,
60
64
  testId: 'card-edit-datasource-button'
61
- }), (0, _react.jsx)(_ui.FloatingToolbarSeparator, null));
65
+ }), (0, _react2.jsx)(_ui.FloatingToolbarSeparator, null));
62
66
  };
63
67
  var EditDatasourceButton = exports.EditDatasourceButton = function EditDatasourceButton(_ref2) {
64
68
  var intl = _ref2.intl,
65
69
  editorAnalyticsApi = _ref2.editorAnalyticsApi,
66
70
  url = _ref2.url,
67
71
  editorView = _ref2.editorView,
68
- editorState = _ref2.editorState;
69
- return (0, _react.jsx)(_CardContextProvider.CardContextProvider, null, function (_ref3) {
72
+ currentAppearance = _ref2.currentAppearance;
73
+ return (0, _react2.jsx)(_CardContextProvider.CardContextProvider, null, function (_ref3) {
70
74
  var cardContext = _ref3.cardContext;
71
- return (0, _react.jsx)(EditDatasourceButtonWithCardContext, {
75
+ return (0, _react2.jsx)(EditDatasourceButtonWithCardContext, {
72
76
  url: url,
73
77
  intl: intl,
74
78
  editorAnalyticsApi: editorAnalyticsApi,
75
79
  editorView: editorView,
76
- editorState: editorState,
77
- cardContext: cardContext
80
+ cardContext: cardContext,
81
+ currentAppearance: currentAppearance
78
82
  });
79
83
  });
84
+ };
85
+ var editDatasource = exports.editDatasource = function editDatasource(datasourceId, editorAnalyticsApi, appearance, extensionKey) {
86
+ return function (state, dispatch) {
87
+ var datasourceType = (0, _utils.getDatasourceType)(datasourceId);
88
+ if (dispatch && datasourceType) {
89
+ var tr = state.tr;
90
+ (0, _actions.showDatasourceModal)(datasourceType)(tr);
91
+ editorAnalyticsApi === null || editorAnalyticsApi === void 0 || editorAnalyticsApi.attachAnalyticsEvent({
92
+ action: _analytics.ACTION.CLICKED,
93
+ actionSubject: _analytics.ACTION_SUBJECT.BUTTON,
94
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.EDIT_DATASOURCE,
95
+ eventType: _analytics.EVENT_TYPE.UI,
96
+ attributes: {
97
+ extensionKey: extensionKey,
98
+ appearance: appearance
99
+ }
100
+ })(tr);
101
+ dispatch(tr);
102
+ return true;
103
+ }
104
+ return false;
105
+ };
80
106
  };
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.EditToolbarButton = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
10
  var _react = require("react");
10
11
  var _react2 = require("@emotion/react");
11
12
  var _reactIntlNext = require("react-intl-next");
@@ -15,28 +16,32 @@ var _uiMenu = require("@atlaskit/editor-common/ui-menu");
15
16
  var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
16
17
  var _menu = require("@atlaskit/menu");
17
18
  var _primitives = require("@atlaskit/primitives");
18
- var _doc = require("../pm-plugins/doc");
19
+ var _EditDatasourceButton = require("../ui/EditDatasourceButton");
19
20
  var _utils = require("../utils");
20
21
  var _CardContextProvider = require("./CardContextProvider");
21
22
  var _useFetchDatasourceInfo = require("./useFetchDatasourceInfo");
23
+ var _excluded = ["extensionKey"];
22
24
  /** @jsx jsx */
23
-
25
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
24
26
  var dropdownExpandContainer = (0, _react2.css)({
25
27
  margin: "0px ".concat("var(--ds-space-negative-050, -4px)")
26
28
  });
27
29
  var EditToolbarButtonWithCardContext = function EditToolbarButtonWithCardContext(props) {
28
30
  var _response$datasourceI;
29
- var url = props.url,
30
- cardContext = props.cardContext,
31
- intl = props.intl,
31
+ var cardContext = props.cardContext,
32
+ currentAppearance = props.currentAppearance,
32
33
  editorAnalyticsApi = props.editorAnalyticsApi,
33
34
  editorView = props.editorView,
34
- onLinkEditClick = props.onLinkEditClick;
35
- var response = (0, _useFetchDatasourceInfo.useFetchDatasourceInfo)({
36
- isRegularCardNode: true,
37
- url: url,
38
- cardContext: cardContext
39
- });
35
+ intl = props.intl,
36
+ onLinkEditClick = props.onLinkEditClick,
37
+ url = props.url;
38
+ var _useFetchDatasourceIn = (0, _useFetchDatasourceInfo.useFetchDatasourceInfo)({
39
+ isRegularCardNode: true,
40
+ url: url,
41
+ cardContext: cardContext
42
+ }),
43
+ extensionKey = _useFetchDatasourceIn.extensionKey,
44
+ response = (0, _objectWithoutProperties2.default)(_useFetchDatasourceIn, _excluded);
40
45
  var datasourceId = (_response$datasourceI = response.datasourceId) !== null && _response$datasourceI !== void 0 ? _response$datasourceI : props.datasourceId;
41
46
  var _useState = (0, _react.useState)(false),
42
47
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -51,17 +56,12 @@ var EditToolbarButtonWithCardContext = function EditToolbarButtonWithCardContext
51
56
  var onClose = function onClose() {
52
57
  return setIsOpen(false);
53
58
  };
54
- var dispatchCommand = (0, _react.useCallback)(function (fn) {
59
+ var onEditLink = (0, _react.useCallback)(function () {
55
60
  if (editorView) {
56
- fn === null || fn === void 0 || fn(editorView.state, editorView.dispatch);
57
- if (!editorView.hasFocus()) {
58
- editorView.focus();
59
- }
61
+ onLinkEditClick(editorView.state, editorView.dispatch);
62
+ (0, _utils.focusEditorView)(editorView);
60
63
  }
61
- }, [editorView]);
62
- var onEditLink = (0, _react.useCallback)(function () {
63
- dispatchCommand(onLinkEditClick);
64
- }, [dispatchCommand, onLinkEditClick]);
64
+ }, [editorView, onLinkEditClick]);
65
65
  var editVariant = (0, _react.useMemo)(function () {
66
66
  var hasUrl = url !== null && url !== undefined;
67
67
  if (!datasourceId || !(0, _utils.isDatasourceConfigEditable)(datasourceId)) {
@@ -82,10 +82,11 @@ var EditToolbarButtonWithCardContext = function EditToolbarButtonWithCardContext
82
82
  }
83
83
  }, [cardContext === null || cardContext === void 0 ? void 0 : cardContext.store, datasourceId, url]);
84
84
  var onEditDatasource = (0, _react.useCallback)(function () {
85
- if (datasourceId) {
86
- dispatchCommand((0, _doc.editDatasource)(datasourceId, editorAnalyticsApi));
85
+ if (editorView && datasourceId) {
86
+ (0, _EditDatasourceButton.editDatasource)(datasourceId, editorAnalyticsApi, currentAppearance, extensionKey)(editorView.state, editorView.dispatch);
87
+ (0, _utils.focusEditorView)(editorView);
87
88
  }
88
- }, [dispatchCommand, datasourceId, editorAnalyticsApi]);
89
+ }, [currentAppearance, datasourceId, editorAnalyticsApi, editorView, extensionKey]);
89
90
  switch (editVariant) {
90
91
  case 'edit-link':
91
92
  {
@@ -150,12 +151,13 @@ var EditToolbarButtonWithCardContext = function EditToolbarButtonWithCardContext
150
151
  }
151
152
  };
152
153
  var EditToolbarButton = exports.EditToolbarButton = function EditToolbarButton(props) {
153
- var datasourceId = props.datasourceId,
154
- intl = props.intl,
154
+ var currentAppearance = props.currentAppearance,
155
+ datasourceId = props.datasourceId,
155
156
  editorAnalyticsApi = props.editorAnalyticsApi,
156
- url = props.url,
157
157
  editorView = props.editorView,
158
- onLinkEditClick = props.onLinkEditClick;
158
+ intl = props.intl,
159
+ onLinkEditClick = props.onLinkEditClick,
160
+ url = props.url;
159
161
  return (0, _react2.jsx)(_CardContextProvider.CardContextProvider, null, function (_ref) {
160
162
  var cardContext = _ref.cardContext;
161
163
  return (0, _react2.jsx)(EditToolbarButtonWithCardContext, {
@@ -165,7 +167,8 @@ var EditToolbarButton = exports.EditToolbarButton = function EditToolbarButton(p
165
167
  editorAnalyticsApi: editorAnalyticsApi,
166
168
  editorView: editorView,
167
169
  cardContext: cardContext,
168
- onLinkEditClick: onLinkEditClick
170
+ onLinkEditClick: onLinkEditClick,
171
+ currentAppearance: currentAppearance
169
172
  });
170
173
  });
171
174
  };
@@ -164,9 +164,9 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
164
164
  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, {
165
165
  url: url,
166
166
  intl: intl,
167
- editorState: editorState,
168
167
  editorView: editorView,
169
- editorAnalyticsApi: editorAnalyticsApi
168
+ editorAnalyticsApi: editorAnalyticsApi,
169
+ currentAppearance: "url"
170
170
  }), /*#__PURE__*/_react.default.createElement(_LinkToolbarAppearance.LinkToolbarAppearance, {
171
171
  key: "link-appearance",
172
172
  url: url,
@@ -24,6 +24,7 @@ var _active;
24
24
  /* eslint-disable @atlaskit/design-system/no-nested-styles */
25
25
  /* eslint-disable @atlaskit/design-system/prefer-primitives */
26
26
  /** @jsx jsx */
27
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
27
28
  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
29
  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; }
29
30
  var DEBOUNCE_IN_MS = 5;
@@ -22,7 +22,7 @@ var _actions = require("../../pm-plugins/actions");
22
22
  var _utils2 = require("../../utils");
23
23
  var _utils3 = require("./utils");
24
24
  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; }
25
- 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; } /** @jsx jsx */
25
+ 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; } /** @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
26
  var toolbarButtonWrapperStyles = (0, _react2.css)({
27
27
  background: "".concat("var(--ds-background-neutral, ".concat(_colors.N20A, ")")),
28
28
  color: "".concat("var(--ds-icon, ".concat(_colors.N300, ")")),
@@ -23,6 +23,7 @@ var _excluded = ["children", "isSelected", "isVisible", "testId"];
23
23
  /* eslint-disable @atlaskit/design-system/no-nested-styles */
24
24
  /* eslint-disable @atlaskit/design-system/prefer-primitives */
25
25
  /** @jsx jsx */
26
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
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); }
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
  var DEBOUNCE_IN_MS = 5;