@atlaskit/editor-plugin-card 4.3.5 → 4.3.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 (29) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/toolbar.js +25 -64
  3. package/dist/cjs/ui/EditLinkToolbar.js +2 -2
  4. package/dist/cjs/ui/EditToolbarButton/EditToolbarButtonPresentation.js +2 -2
  5. package/dist/cjs/ui/EditToolbarButton/index.js +2 -2
  6. package/dist/cjs/ui/HyperlinkToolbarAppearance.js +1 -9
  7. package/dist/cjs/ui/editDatasourceAction.js +31 -0
  8. package/dist/es2019/toolbar.js +25 -62
  9. package/dist/es2019/ui/EditLinkToolbar.js +1 -1
  10. package/dist/es2019/ui/EditToolbarButton/EditToolbarButtonPresentation.js +1 -1
  11. package/dist/es2019/ui/EditToolbarButton/index.js +1 -1
  12. package/dist/es2019/ui/HyperlinkToolbarAppearance.js +1 -9
  13. package/dist/es2019/ui/editDatasourceAction.js +25 -0
  14. package/dist/esm/toolbar.js +27 -66
  15. package/dist/esm/ui/EditLinkToolbar.js +1 -1
  16. package/dist/esm/ui/EditToolbarButton/EditToolbarButtonPresentation.js +1 -1
  17. package/dist/esm/ui/EditToolbarButton/index.js +1 -1
  18. package/dist/esm/ui/HyperlinkToolbarAppearance.js +1 -9
  19. package/dist/esm/ui/editDatasourceAction.js +25 -0
  20. package/dist/types/ui/EditLinkToolbar.d.ts +1 -1
  21. package/dist/types/ui/editDatasourceAction.d.ts +4 -0
  22. package/dist/types-ts4.5/ui/EditLinkToolbar.d.ts +1 -1
  23. package/dist/types-ts4.5/ui/editDatasourceAction.d.ts +4 -0
  24. package/package.json +5 -8
  25. package/dist/cjs/ui/EditDatasourceButton.js +0 -113
  26. package/dist/es2019/ui/EditDatasourceButton.js +0 -108
  27. package/dist/esm/ui/EditDatasourceButton.js +0 -106
  28. package/dist/types/ui/EditDatasourceButton.d.ts +0 -18
  29. package/dist/types-ts4.5/ui/EditDatasourceButton.d.ts +0 -18
@@ -9,7 +9,6 @@ import { buildLayoutButtons, commandWithMetadata } from '@atlaskit/editor-common
9
9
  import { getLinkPreferencesURLFromENV } from '@atlaskit/editor-common/link';
10
10
  import commonMessages, { linkMessages, linkToolbarMessages, cardMessages as messages } from '@atlaskit/editor-common/messages';
11
11
  import { FLOATING_TOOLBAR_LINKPICKER_CLASSNAME, richMediaClassName } from '@atlaskit/editor-common/styles';
12
- import { SmallerEditIcon } from '@atlaskit/editor-common/ui';
13
12
  import { canRenderDatasource } from '@atlaskit/editor-common/utils';
14
13
  import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
15
14
  import { findDomRefAtPos, removeSelectedNode } from '@atlaskit/editor-prosemirror/utils';
@@ -21,17 +20,15 @@ import RemoveIcon from '@atlaskit/icon/glyph/editor/remove';
21
20
  import CogIcon from '@atlaskit/icon/glyph/editor/settings';
22
21
  import UnlinkIcon from '@atlaskit/icon/glyph/editor/unlink';
23
22
  import OpenIcon from '@atlaskit/icon/glyph/shortcut';
24
- import { fg } from '@atlaskit/platform-feature-flags';
25
23
  import { changeSelectedCardToText } from './pm-plugins/doc';
26
24
  import { pluginKey } from './pm-plugins/main';
27
25
  import { DatasourceAppearanceButton } from './ui/DatasourceAppearanceButton';
28
- import { editDatasource, EditDatasourceButton } from './ui/EditDatasourceButton';
29
- import { buildEditLinkToolbar, editLink, editLinkToolbarConfig } from './ui/EditLinkToolbar';
26
+ import { buildEditLinkToolbar, editLinkToolbarConfig, getEditLinkCallback } from './ui/EditLinkToolbar';
30
27
  import { EditToolbarButton } from './ui/EditToolbarButton';
31
28
  import { HyperlinkToolbarAppearance } from './ui/HyperlinkToolbarAppearance';
32
29
  import { LinkToolbarAppearance } from './ui/LinkToolbarAppearance';
33
30
  import { ToolbarViewedEvent } from './ui/ToolbarViewedEvent';
34
- import { appearanceForNodeType, displayInfoForCard, findCardInfo, isDatasourceConfigEditable, isDatasourceNode, titleUrlPairFromNode } from './utils';
31
+ import { appearanceForNodeType, displayInfoForCard, findCardInfo, isDatasourceNode, titleUrlPairFromNode } from './utils';
35
32
  export var removeCard = function removeCard(editorAnalyticsApi) {
36
33
  return commandWithMetadata(function (state, dispatch) {
37
34
  if (!(state.selection instanceof NodeSelection)) {
@@ -182,7 +179,7 @@ var getToolbarViewedItem = function getToolbarViewedItem(url, display) {
182
179
  };
183
180
  var generateToolbarItems = function generateToolbarItems(state, intl, providerFactory, cardOptions, lpLinkPicker, linkPicker, pluginInjectionApi) {
184
181
  return function (node) {
185
- var _pluginInjectionApi$a, _pluginInjectionApi$d, _pluginInjectionApi$d2, _node$attrs, _node$attrs2;
182
+ var _pluginInjectionApi$a, _pluginInjectionApi$d, _pluginInjectionApi$d2, _node$attrs;
186
183
  var _titleUrlPairFromNode2 = titleUrlPairFromNode(node),
187
184
  url = _titleUrlPairFromNode2.url;
188
185
  var _ref = (_pluginInjectionApi$a = pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : pluginInjectionApi.analytics) !== null && _pluginInjectionApi$a !== void 0 ? _pluginInjectionApi$a : {},
@@ -202,9 +199,8 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
202
199
  var _ref2 = (_pluginInjectionApi$d = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$d2 = pluginInjectionApi.decorations) === null || _pluginInjectionApi$d2 === void 0 ? void 0 : _pluginInjectionApi$d2.actions) !== null && _pluginInjectionApi$d !== void 0 ? _pluginInjectionApi$d : {},
203
200
  hoverDecoration = _ref2.hoverDecoration;
204
201
  var isDatasource = isDatasourceNode(node);
205
- var datasourceId = 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;
206
202
  var pluginState = pluginKey.getState(state);
207
- var shouldRenderDatasourceToolbar = isDatasource && cardOptions.allowDatasource && canRenderDatasource(node === null || node === void 0 || (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2.datasource) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.id);
203
+ var shouldRenderDatasourceToolbar = isDatasource && cardOptions.allowDatasource && 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);
208
204
  if (pluginState !== null && pluginState !== void 0 && pluginState.showLinkingToolbar) {
209
205
  return [buildEditLinkToolbar({
210
206
  providerFactory: providerFactory,
@@ -217,8 +213,7 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
217
213
  return getDatasourceButtonGroup(metadata, intl, editorAnalyticsApi, node, hoverDecoration, node.attrs.datasource.id, state, cardOptions, currentAppearance);
218
214
  } else {
219
215
  var inlineCard = state.schema.nodes.inlineCard;
220
- var isEditDropdownEnabled = cardOptions.allowDatasource && fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar');
221
- var editItems = isEditDropdownEnabled ? [{
216
+ var editItems = cardOptions.allowDatasource ? [{
222
217
  type: 'custom',
223
218
  fallback: [],
224
219
  render: function render(editorView) {
@@ -228,7 +223,7 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
228
223
  intl: intl,
229
224
  editorAnalyticsApi: editorAnalyticsApi,
230
225
  editorView: editorView,
231
- onLinkEditClick: editLink(editorAnalyticsApi, true),
226
+ onLinkEditClick: getEditLinkCallback(editorAnalyticsApi, true),
232
227
  currentAppearance: currentAppearance
233
228
  });
234
229
  }
@@ -240,7 +235,7 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
240
235
  title: intl.formatMessage(linkToolbarMessages.editLink),
241
236
  showTitle: true,
242
237
  testId: 'link-toolbar-edit-link-button',
243
- onClick: editLink(editorAnalyticsApi, true)
238
+ onClick: getEditLinkCallback(editorAnalyticsApi, true)
244
239
  }, {
245
240
  type: 'separator'
246
241
  }];
@@ -333,23 +328,6 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
333
328
  type: 'separator'
334
329
  }]));
335
330
  }
336
- var shouldShowDatasourceEditButton = allowDatasource && !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar');
337
- if (shouldShowDatasourceEditButton) {
338
- toolbarItems.unshift({
339
- type: 'custom',
340
- fallback: [],
341
- render: function render(editorView) {
342
- return /*#__PURE__*/React.createElement(EditDatasourceButton, {
343
- datasourceId: datasourceId,
344
- intl: intl,
345
- editorAnalyticsApi: editorAnalyticsApi,
346
- url: url,
347
- editorView: editorView,
348
- currentAppearance: currentAppearance
349
- });
350
- }
351
- });
352
- }
353
331
  return toolbarItems;
354
332
  }
355
333
  };
@@ -380,22 +358,8 @@ export var getSettingsButton = function getSettingsButton(intl, editorAnalyticsA
380
358
  };
381
359
  };
382
360
  var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl, editorAnalyticsApi, node, hoverDecoration, datasourceId, state, cardOptions, currentAppearance) {
383
- var _node$attrs3;
361
+ var _node$attrs2;
384
362
  var toolbarItems = [];
385
- if (isDatasourceConfigEditable(datasourceId) && !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar')) {
386
- toolbarItems.push({
387
- id: 'editor.edit.datasource',
388
- type: 'button',
389
- icon: SmallerEditIcon,
390
- metadata: metadata,
391
- className: 'datasource-edit',
392
- title: intl.formatMessage(linkToolbarMessages.editDatasource),
393
- onClick: editDatasource(datasourceId, editorAnalyticsApi, 'datasource'),
394
- testId: 'datasource-edit-button'
395
- }, {
396
- type: 'separator'
397
- });
398
- }
399
363
  var canShowAppearanceSwitch = function canShowAppearanceSwitch() {
400
364
  // we do not show smart-link or the datasource icons when the node does not have a url to resolve
401
365
  if (!metadata.url) {
@@ -444,26 +408,24 @@ var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl,
444
408
  type: 'separator'
445
409
  });
446
410
  }
447
- if (fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar')) {
448
- toolbarItems.push({
449
- type: 'custom',
450
- fallback: [],
451
- render: function render(editorView) {
452
- return /*#__PURE__*/React.createElement(EditToolbarButton, {
453
- datasourceId: datasourceId,
454
- node: node,
455
- key: "edit-toolbar-item",
456
- url: metadata.url,
457
- intl: intl,
458
- editorAnalyticsApi: editorAnalyticsApi,
459
- editorView: editorView,
460
- onLinkEditClick: editLink(editorAnalyticsApi, false),
461
- currentAppearance: "datasource"
462
- });
463
- }
464
- });
465
- }
466
- if (node !== null && node !== void 0 && (_node$attrs3 = node.attrs) !== null && _node$attrs3 !== void 0 && _node$attrs3.url) {
411
+ toolbarItems.push({
412
+ type: 'custom',
413
+ fallback: [],
414
+ render: function render(editorView) {
415
+ return /*#__PURE__*/React.createElement(EditToolbarButton, {
416
+ datasourceId: datasourceId,
417
+ node: node,
418
+ key: "edit-toolbar-item",
419
+ url: metadata.url,
420
+ intl: intl,
421
+ editorAnalyticsApi: editorAnalyticsApi,
422
+ editorView: editorView,
423
+ onLinkEditClick: getEditLinkCallback(editorAnalyticsApi, false),
424
+ currentAppearance: "datasource"
425
+ });
426
+ }
427
+ });
428
+ if (node !== null && node !== void 0 && (_node$attrs2 = node.attrs) !== null && _node$attrs2 !== void 0 && _node$attrs2.url) {
467
429
  toolbarItems.push({
468
430
  id: 'editor.link.openLink',
469
431
  type: 'button',
@@ -509,8 +471,7 @@ export var shouldRenderToolbarPulse = function shouldRenderToolbarPulse(embedEna
509
471
  };
510
472
  export var getStartingToolbarItems = function getStartingToolbarItems(options, api) {
511
473
  return function (intl, link, onEditLink, metadata) {
512
- var isEditDropdownEnabled = options.allowDatasource && fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar');
513
- var editLinkItem = isEditDropdownEnabled ? [{
474
+ var editLinkItem = options.allowDatasource ? [{
514
475
  type: 'custom',
515
476
  fallback: [],
516
477
  render: function render(editorView) {
@@ -124,7 +124,7 @@ export var EditLinkToolbar = /*#__PURE__*/function (_React$Component) {
124
124
  }]);
125
125
  return EditLinkToolbar;
126
126
  }(React.Component);
127
- export var editLink = function editLink(editorAnalyticsApi, scrollIntoView) {
127
+ export var getEditLinkCallback = function getEditLinkCallback(editorAnalyticsApi, scrollIntoView) {
128
128
  return function (state, dispatch) {
129
129
  var type = 'hyperlink';
130
130
  if (state.selection instanceof NodeSelection) {
@@ -15,7 +15,7 @@ import ExpandIcon from '@atlaskit/icon/glyph/chevron-down';
15
15
  import { ButtonItem } from '@atlaskit/menu';
16
16
  import { Flex } from '@atlaskit/primitives';
17
17
  import { focusEditorView } from '../../utils';
18
- import { editDatasource } from '../EditDatasourceButton';
18
+ import { editDatasource } from '../editDatasourceAction';
19
19
  var dropdownExpandContainer = css({
20
20
  margin: "0px ".concat("var(--ds-space-negative-050, -4px)")
21
21
  });
@@ -17,9 +17,9 @@ import ExpandIcon from '@atlaskit/icon/glyph/chevron-down';
17
17
  import { ButtonItem } from '@atlaskit/menu';
18
18
  import { fg } from '@atlaskit/platform-feature-flags';
19
19
  import { Flex } from '@atlaskit/primitives';
20
- import { editDatasource } from '../../ui/EditDatasourceButton';
21
20
  import { focusEditorView, isDatasourceConfigEditable } from '../../utils';
22
21
  import { CardContextProvider } from '../CardContextProvider';
22
+ import { editDatasource } from '../editDatasourceAction';
23
23
  import { useFetchDatasourceDataInfo } from '../useFetchDatasourceDataInfo';
24
24
  import { useFetchDatasourceInfo } from '../useFetchDatasourceInfo';
25
25
  import EditToolbarButtonPresentation from './EditToolbarButtonPresentation';
@@ -4,10 +4,8 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
4
  import React, { useEffect, useRef, useState } from 'react';
5
5
  import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
6
6
  import { FloatingToolbarSeparator as Separator } from '@atlaskit/editor-common/ui';
7
- import { fg } from '@atlaskit/platform-feature-flags';
8
7
  import { Flex } from '@atlaskit/primitives';
9
8
  import { DatasourceAppearanceButton } from './DatasourceAppearanceButton';
10
- import { EditDatasourceButton } from './EditDatasourceButton';
11
9
  import { LinkToolbarAppearance } from './LinkToolbarAppearance';
12
10
  export function HyperlinkToolbarAppearance(props) {
13
11
  var _props$cardOptions3;
@@ -126,13 +124,7 @@ export function HyperlinkToolbarAppearance(props) {
126
124
  if (!supportedUrlsMap.get(url)) {
127
125
  return null;
128
126
  }
129
- return /*#__PURE__*/React.createElement(Flex, null, !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/React.createElement(EditDatasourceButton, {
130
- url: url,
131
- intl: intl,
132
- editorView: editorView,
133
- editorAnalyticsApi: editorAnalyticsApi,
134
- currentAppearance: "url"
135
- }), /*#__PURE__*/React.createElement(LinkToolbarAppearance, {
127
+ return /*#__PURE__*/React.createElement(Flex, null, /*#__PURE__*/React.createElement(LinkToolbarAppearance, {
136
128
  key: "link-appearance",
137
129
  url: url,
138
130
  intl: intl,
@@ -0,0 +1,25 @@
1
+ import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
2
+ import { getDatasourceType } from '@atlaskit/editor-common/utils';
3
+ import { showDatasourceModal } from '../pm-plugins/actions';
4
+ export var editDatasource = function editDatasource(datasourceId, editorAnalyticsApi, appearance, extensionKey) {
5
+ return function (state, dispatch) {
6
+ var datasourceType = getDatasourceType(datasourceId);
7
+ if (dispatch && datasourceType) {
8
+ var tr = state.tr;
9
+ showDatasourceModal(datasourceType)(tr);
10
+ editorAnalyticsApi === null || editorAnalyticsApi === void 0 || editorAnalyticsApi.attachAnalyticsEvent({
11
+ action: ACTION.CLICKED,
12
+ actionSubject: ACTION_SUBJECT.BUTTON,
13
+ actionSubjectId: ACTION_SUBJECT_ID.EDIT_DATASOURCE,
14
+ eventType: EVENT_TYPE.UI,
15
+ attributes: {
16
+ extensionKey: extensionKey,
17
+ appearance: appearance
18
+ }
19
+ })(tr);
20
+ dispatch(tr);
21
+ return true;
22
+ }
23
+ return false;
24
+ };
25
+ };
@@ -26,7 +26,7 @@ export declare class EditLinkToolbar extends React.Component<EditLinkToolbarProp
26
26
  private hideLinkToolbar;
27
27
  render(): JSX.Element;
28
28
  }
29
- export declare const editLink: (editorAnalyticsApi: EditorAnalyticsAPI | undefined, scrollIntoView: boolean) => Command;
29
+ export declare const getEditLinkCallback: (editorAnalyticsApi: EditorAnalyticsAPI | undefined, scrollIntoView: boolean) => Command;
30
30
  export declare const buildEditLinkToolbar: ({ providerFactory, node, pluginInjectionApi, linkPicker, lpLinkPicker, }: {
31
31
  providerFactory: ProviderFactory;
32
32
  node: Node;
@@ -0,0 +1,4 @@
1
+ import { type EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
+ import { type Command } from '@atlaskit/editor-common/types';
3
+ import { type CardType } from '../types';
4
+ export declare const editDatasource: (datasourceId: string, editorAnalyticsApi?: EditorAnalyticsAPI, appearance?: CardType, extensionKey?: string) => Command;
@@ -26,7 +26,7 @@ export declare class EditLinkToolbar extends React.Component<EditLinkToolbarProp
26
26
  private hideLinkToolbar;
27
27
  render(): JSX.Element;
28
28
  }
29
- export declare const editLink: (editorAnalyticsApi: EditorAnalyticsAPI | undefined, scrollIntoView: boolean) => Command;
29
+ export declare const getEditLinkCallback: (editorAnalyticsApi: EditorAnalyticsAPI | undefined, scrollIntoView: boolean) => Command;
30
30
  export declare const buildEditLinkToolbar: ({ providerFactory, node, pluginInjectionApi, linkPicker, lpLinkPicker, }: {
31
31
  providerFactory: ProviderFactory;
32
32
  node: Node;
@@ -0,0 +1,4 @@
1
+ import { type EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
2
+ import { type Command } from '@atlaskit/editor-common/types';
3
+ import { type CardType } from '../types';
4
+ export declare const editDatasource: (datasourceId: string, editorAnalyticsApi?: EditorAnalyticsAPI, appearance?: CardType, extensionKey?: string) => Command;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-card",
3
- "version": "4.3.5",
3
+ "version": "4.3.7",
4
4
  "description": "Card plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -31,10 +31,10 @@
31
31
  ".": "./src/index.ts"
32
32
  },
33
33
  "dependencies": {
34
- "@atlaskit/adf-schema": "^42.0.2",
34
+ "@atlaskit/adf-schema": "^42.3.1",
35
35
  "@atlaskit/analytics-next": "^10.1.0",
36
36
  "@atlaskit/custom-steps": "^0.8.0",
37
- "@atlaskit/editor-common": "^93.6.0",
37
+ "@atlaskit/editor-common": "^94.2.0",
38
38
  "@atlaskit/editor-plugin-analytics": "^1.10.0",
39
39
  "@atlaskit/editor-plugin-decorations": "^1.3.0",
40
40
  "@atlaskit/editor-plugin-editor-disabled": "^1.3.0",
@@ -46,7 +46,7 @@
46
46
  "@atlaskit/editor-prosemirror": "6.0.0",
47
47
  "@atlaskit/editor-shared-styles": "^3.0.0",
48
48
  "@atlaskit/frontend-utilities": "^2.7.0",
49
- "@atlaskit/icon": "^22.22.0",
49
+ "@atlaskit/icon": "^22.23.0",
50
50
  "@atlaskit/link-analytics": "^8.5.0",
51
51
  "@atlaskit/link-client-extension": "^2.4.0",
52
52
  "@atlaskit/link-datasource": "^3.6.0",
@@ -57,7 +57,7 @@
57
57
  "@atlaskit/primitives": "^12.2.0",
58
58
  "@atlaskit/smart-card": "^30.1.0",
59
59
  "@atlaskit/theme": "^14.0.0",
60
- "@atlaskit/tmp-editor-statsig": "^2.6.0",
60
+ "@atlaskit/tmp-editor-statsig": "^2.8.0",
61
61
  "@atlaskit/tokens": "^2.0.0",
62
62
  "@babel/runtime": "^7.0.0",
63
63
  "@emotion/react": "^11.7.1",
@@ -114,9 +114,6 @@
114
114
  "platform-datasources-enable-two-way-sync": {
115
115
  "type": "boolean"
116
116
  },
117
- "platform.linking-platform.enable-datasource-edit-dropdown-toolbar": {
118
- "type": "boolean"
119
- },
120
117
  "linking-platform-contenteditable-false-live-view": {
121
118
  "type": "boolean"
122
119
  },
@@ -1,113 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
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");
10
- var _messages = require("@atlaskit/editor-common/messages");
11
- var _ui = require("@atlaskit/editor-common/ui");
12
- var _utils = require("@atlaskit/editor-common/utils");
13
- var _primitives = require("@atlaskit/primitives");
14
- var _actions = require("../pm-plugins/actions");
15
- var _utils2 = require("../utils");
16
- var _CardContextProvider = require("./CardContextProvider");
17
- var _useFetchDatasourceInfo = require("./useFetchDatasourceInfo");
18
- /**
19
- * @jsxRuntime classic
20
- * @jsx jsx
21
- */
22
-
23
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
24
-
25
- var buttonStyles = (0, _react2.css)({
26
- pointerEvents: 'auto'
27
- });
28
-
29
- // Edit button in toolbar to open datasource modal. This button is shown for inline, block, and embed cards
30
- // if they can resolve into a datasource.
31
- var EditDatasourceButtonWithCardContext = function EditDatasourceButtonWithCardContext(_ref) {
32
- var cardContext = _ref.cardContext,
33
- datasourceIdFromAdf = _ref.datasourceId,
34
- intl = _ref.intl,
35
- editorAnalyticsApi = _ref.editorAnalyticsApi,
36
- url = _ref.url,
37
- editorView = _ref.editorView,
38
- currentAppearance = _ref.currentAppearance;
39
- var _useFetchDatasourceIn = (0, _useFetchDatasourceInfo.useFetchDatasourceInfo)({
40
- isRegularCardNode: true,
41
- url: url,
42
- cardContext: cardContext
43
- }),
44
- datasourceIdFromUrl = _useFetchDatasourceIn.datasourceId,
45
- extensionKey = _useFetchDatasourceIn.extensionKey;
46
- var datasourceId = datasourceIdFromUrl !== null && datasourceIdFromUrl !== void 0 ? datasourceIdFromUrl : datasourceIdFromAdf;
47
- var onEditDatasource = (0, _react.useCallback)(function () {
48
- if (editorView && datasourceId) {
49
- editDatasource(datasourceId, editorAnalyticsApi, currentAppearance, extensionKey)(editorView.state, editorView.dispatch);
50
- (0, _utils2.focusEditorView)(editorView);
51
- }
52
- }, [currentAppearance, datasourceId, editorAnalyticsApi, editorView, extensionKey]);
53
- if (!datasourceId || !(0, _utils2.isDatasourceConfigEditable)(datasourceId)) {
54
- return null;
55
- }
56
- if (url) {
57
- var _cardContext$store, _urlState$error;
58
- var urlState = cardContext === null || cardContext === void 0 || (_cardContext$store = cardContext.store) === null || _cardContext$store === void 0 ? void 0 : _cardContext$store.getState()[url];
59
- if ((urlState === null || urlState === void 0 || (_urlState$error = urlState.error) === null || _urlState$error === void 0 ? void 0 : _urlState$error.kind) === 'fatal') {
60
- return null;
61
- }
62
- }
63
- return (0, _react2.jsx)(_primitives.Flex, null, (0, _react2.jsx)(_ui.FloatingToolbarButton, {
64
- css: buttonStyles,
65
- title: intl.formatMessage(_messages.cardMessages.datasourceTitle),
66
- icon: (0, _react2.jsx)(_ui.SmallerEditIcon, null),
67
- selected: false,
68
- onClick: onEditDatasource,
69
- testId: 'card-edit-datasource-button'
70
- }), (0, _react2.jsx)(_ui.FloatingToolbarSeparator, null));
71
- };
72
- var EditDatasourceButton = exports.EditDatasourceButton = function EditDatasourceButton(_ref2) {
73
- var datasourceId = _ref2.datasourceId,
74
- intl = _ref2.intl,
75
- editorAnalyticsApi = _ref2.editorAnalyticsApi,
76
- url = _ref2.url,
77
- editorView = _ref2.editorView,
78
- currentAppearance = _ref2.currentAppearance;
79
- return (0, _react2.jsx)(_CardContextProvider.CardContextProvider, null, function (_ref3) {
80
- var cardContext = _ref3.cardContext;
81
- return (0, _react2.jsx)(EditDatasourceButtonWithCardContext, {
82
- datasourceId: datasourceId,
83
- url: url,
84
- intl: intl,
85
- editorAnalyticsApi: editorAnalyticsApi,
86
- editorView: editorView,
87
- cardContext: cardContext,
88
- currentAppearance: currentAppearance
89
- });
90
- });
91
- };
92
- var editDatasource = exports.editDatasource = function editDatasource(datasourceId, editorAnalyticsApi, appearance, extensionKey) {
93
- return function (state, dispatch) {
94
- var datasourceType = (0, _utils.getDatasourceType)(datasourceId);
95
- if (dispatch && datasourceType) {
96
- var tr = state.tr;
97
- (0, _actions.showDatasourceModal)(datasourceType)(tr);
98
- editorAnalyticsApi === null || editorAnalyticsApi === void 0 || editorAnalyticsApi.attachAnalyticsEvent({
99
- action: _analytics.ACTION.CLICKED,
100
- actionSubject: _analytics.ACTION_SUBJECT.BUTTON,
101
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.EDIT_DATASOURCE,
102
- eventType: _analytics.EVENT_TYPE.UI,
103
- attributes: {
104
- extensionKey: extensionKey,
105
- appearance: appearance
106
- }
107
- })(tr);
108
- dispatch(tr);
109
- return true;
110
- }
111
- return false;
112
- };
113
- };
@@ -1,108 +0,0 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
5
- import { useCallback } from 'react';
6
-
7
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
8
- import { css, jsx } from '@emotion/react';
9
- import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
10
- import { cardMessages as messages } from '@atlaskit/editor-common/messages';
11
- import { FloatingToolbarButton as Button, FloatingToolbarSeparator as Separator, SmallerEditIcon } from '@atlaskit/editor-common/ui';
12
- import { getDatasourceType } from '@atlaskit/editor-common/utils';
13
- import { Flex } from '@atlaskit/primitives';
14
- import { showDatasourceModal } from '../pm-plugins/actions';
15
- import { focusEditorView, isDatasourceConfigEditable } from '../utils';
16
- import { CardContextProvider } from './CardContextProvider';
17
- import { useFetchDatasourceInfo } from './useFetchDatasourceInfo';
18
- const buttonStyles = css({
19
- pointerEvents: 'auto'
20
- });
21
-
22
- // Edit button in toolbar to open datasource modal. This button is shown for inline, block, and embed cards
23
- // if they can resolve into a datasource.
24
- const EditDatasourceButtonWithCardContext = ({
25
- cardContext,
26
- datasourceId: datasourceIdFromAdf,
27
- intl,
28
- editorAnalyticsApi,
29
- url,
30
- editorView,
31
- currentAppearance
32
- }) => {
33
- const {
34
- datasourceId: datasourceIdFromUrl,
35
- extensionKey
36
- } = useFetchDatasourceInfo({
37
- isRegularCardNode: true,
38
- url,
39
- cardContext
40
- });
41
- const datasourceId = datasourceIdFromUrl !== null && datasourceIdFromUrl !== void 0 ? datasourceIdFromUrl : datasourceIdFromAdf;
42
- const onEditDatasource = useCallback(() => {
43
- if (editorView && datasourceId) {
44
- editDatasource(datasourceId, editorAnalyticsApi, currentAppearance, extensionKey)(editorView.state, editorView.dispatch);
45
- focusEditorView(editorView);
46
- }
47
- }, [currentAppearance, datasourceId, editorAnalyticsApi, editorView, extensionKey]);
48
- if (!datasourceId || !isDatasourceConfigEditable(datasourceId)) {
49
- return null;
50
- }
51
- if (url) {
52
- var _cardContext$store, _urlState$error;
53
- const urlState = cardContext === null || cardContext === void 0 ? void 0 : (_cardContext$store = cardContext.store) === null || _cardContext$store === void 0 ? void 0 : _cardContext$store.getState()[url];
54
- if ((urlState === null || urlState === void 0 ? void 0 : (_urlState$error = urlState.error) === null || _urlState$error === void 0 ? void 0 : _urlState$error.kind) === 'fatal') {
55
- return null;
56
- }
57
- }
58
- return jsx(Flex, null, jsx(Button, {
59
- css: buttonStyles,
60
- title: intl.formatMessage(messages.datasourceTitle),
61
- icon: jsx(SmallerEditIcon, null),
62
- selected: false,
63
- onClick: onEditDatasource,
64
- testId: 'card-edit-datasource-button'
65
- }), jsx(Separator, null));
66
- };
67
- export const EditDatasourceButton = ({
68
- datasourceId,
69
- intl,
70
- editorAnalyticsApi,
71
- url,
72
- editorView,
73
- currentAppearance
74
- }) => {
75
- return jsx(CardContextProvider, null, ({
76
- cardContext
77
- }) => jsx(EditDatasourceButtonWithCardContext, {
78
- datasourceId: datasourceId,
79
- url: url,
80
- intl: intl,
81
- editorAnalyticsApi: editorAnalyticsApi,
82
- editorView: editorView,
83
- cardContext: cardContext,
84
- currentAppearance: currentAppearance
85
- }));
86
- };
87
- export const editDatasource = (datasourceId, editorAnalyticsApi, appearance, extensionKey) => (state, dispatch) => {
88
- const datasourceType = getDatasourceType(datasourceId);
89
- if (dispatch && datasourceType) {
90
- const {
91
- tr
92
- } = state;
93
- showDatasourceModal(datasourceType)(tr);
94
- editorAnalyticsApi === null || editorAnalyticsApi === void 0 ? void 0 : editorAnalyticsApi.attachAnalyticsEvent({
95
- action: ACTION.CLICKED,
96
- actionSubject: ACTION_SUBJECT.BUTTON,
97
- actionSubjectId: ACTION_SUBJECT_ID.EDIT_DATASOURCE,
98
- eventType: EVENT_TYPE.UI,
99
- attributes: {
100
- extensionKey,
101
- appearance
102
- }
103
- })(tr);
104
- dispatch(tr);
105
- return true;
106
- }
107
- return false;
108
- };