@atlaskit/editor-plugin-card 2.6.2 → 2.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/nodeviews/genericCard.js +5 -3
- package/dist/cjs/nodeviews/inlineCard.js +15 -10
- package/dist/cjs/pm-plugins/main.js +9 -6
- package/dist/cjs/toolbar.js +1 -0
- package/dist/cjs/ui/{EditToolbarButton.js → EditToolbarButton/EditToolbarButtonPresentation.js} +15 -65
- package/dist/cjs/ui/EditToolbarButton/index.js +286 -0
- package/dist/cjs/ui/EditToolbarButton/types.js +5 -0
- package/dist/cjs/ui/useFetchDatasourceDataInfo.js +75 -0
- package/dist/es2019/nodeviews/genericCard.js +5 -3
- package/dist/es2019/nodeviews/inlineCard.js +16 -10
- package/dist/es2019/pm-plugins/main.js +10 -5
- package/dist/es2019/toolbar.js +1 -0
- package/dist/es2019/ui/{EditToolbarButton.js → EditToolbarButton/EditToolbarButtonPresentation.js} +14 -67
- package/dist/es2019/ui/EditToolbarButton/index.js +278 -0
- package/dist/es2019/ui/EditToolbarButton/types.js +1 -0
- package/dist/es2019/ui/useFetchDatasourceDataInfo.js +41 -0
- package/dist/esm/nodeviews/genericCard.js +5 -3
- package/dist/esm/nodeviews/inlineCard.js +15 -10
- package/dist/esm/pm-plugins/main.js +9 -6
- package/dist/esm/toolbar.js +1 -0
- package/dist/esm/ui/EditToolbarButton/EditToolbarButtonPresentation.js +116 -0
- package/dist/esm/ui/{EditToolbarButton.js → EditToolbarButton/index.js} +116 -4
- package/dist/esm/ui/EditToolbarButton/types.js +1 -0
- package/dist/esm/ui/useFetchDatasourceDataInfo.js +67 -0
- package/dist/types/nodeviews/genericCard.d.ts +1 -0
- package/dist/types/nodeviews/inlineCard.d.ts +1 -1
- package/dist/types/ui/EditToolbarButton/EditToolbarButtonPresentation.d.ts +9 -0
- package/dist/types/ui/EditToolbarButton/index.d.ts +3 -0
- package/dist/types/ui/EditToolbarButton/types.d.ts +29 -0
- package/dist/types/ui/useFetchDatasourceDataInfo.d.ts +10 -0
- package/dist/types-ts4.5/nodeviews/genericCard.d.ts +1 -0
- package/dist/types-ts4.5/nodeviews/inlineCard.d.ts +1 -1
- package/dist/types-ts4.5/ui/EditToolbarButton/EditToolbarButtonPresentation.d.ts +9 -0
- package/dist/types-ts4.5/ui/EditToolbarButton/index.d.ts +3 -0
- package/dist/types-ts4.5/ui/EditToolbarButton/types.d.ts +29 -0
- package/dist/types-ts4.5/ui/useFetchDatasourceDataInfo.d.ts +10 -0
- package/package.json +5 -2
- package/dist/types/ui/EditToolbarButton.d.ts +0 -18
- package/dist/types-ts4.5/ui/EditToolbarButton.d.ts +0 -18
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-card
|
|
2
2
|
|
|
3
|
+
## 2.6.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#122063](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/122063)
|
|
8
|
+
[`c136e556d086d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c136e556d086d) -
|
|
9
|
+
[ux] Apply live page and check for live view in card and hyperlink plugin
|
|
10
|
+
|
|
11
|
+
## 2.6.3
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [#121784](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/121784)
|
|
16
|
+
[`a6117088af0ad`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a6117088af0ad) -
|
|
17
|
+
The edit toolbar button is retrieving metadata from /data endpoint for analytics metadata.
|
|
18
|
+
|
|
3
19
|
## 2.6.2
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -32,7 +32,8 @@ var WithClickHandler = function WithClickHandler(_ref) {
|
|
|
32
32
|
var pluginInjectionApi = _ref.pluginInjectionApi,
|
|
33
33
|
url = _ref.url,
|
|
34
34
|
onClickCallback = _ref.onClickCallback,
|
|
35
|
-
children = _ref.children
|
|
35
|
+
children = _ref.children,
|
|
36
|
+
__livePage = _ref.__livePage;
|
|
36
37
|
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['editorViewMode']),
|
|
37
38
|
editorViewModeState = _useSharedPluginState.editorViewModeState;
|
|
38
39
|
var onClick = (0, _react.useCallback)(function (event) {
|
|
@@ -53,7 +54,7 @@ var WithClickHandler = function WithClickHandler(_ref) {
|
|
|
53
54
|
*
|
|
54
55
|
* const allowNavigation = isLivePage && !onClickCallback;
|
|
55
56
|
*/
|
|
56
|
-
var _allowNavigation = !onClickCallback;
|
|
57
|
+
var _allowNavigation = __livePage && !onClickCallback;
|
|
57
58
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children({
|
|
58
59
|
onClick: _allowNavigation ? undefined : onClick
|
|
59
60
|
}));
|
|
@@ -122,7 +123,8 @@ function Card(SmartCardComponent, UnsupportedComponent) {
|
|
|
122
123
|
}, /*#__PURE__*/_react.default.createElement(WithClickHandler, {
|
|
123
124
|
pluginInjectionApi: pluginInjectionApi,
|
|
124
125
|
onClickCallback: onClickCallback,
|
|
125
|
-
url: url
|
|
126
|
+
url: url,
|
|
127
|
+
__livePage: this.props.__livePage
|
|
126
128
|
}, function (_ref2) {
|
|
127
129
|
var onClick = _ref2.onClick;
|
|
128
130
|
return /*#__PURE__*/_react.default.createElement(SmartCardComponent, (0, _extends2.default)({
|
|
@@ -103,7 +103,7 @@ var InlineCard = exports.InlineCard = /*#__PURE__*/(0, _react.memo)(function (_r
|
|
|
103
103
|
var WrappedInlineCardWithAwareness = (0, _genericCard.Card)(_inlineCardWithAwareness.InlineCardWithAwareness, _ui.UnsupportedInline);
|
|
104
104
|
var WrappedInlineCard = (0, _genericCard.Card)(InlineCard, _ui.UnsupportedInline);
|
|
105
105
|
function InlineCardNodeView(props) {
|
|
106
|
-
var
|
|
106
|
+
var _floatingToolbarState;
|
|
107
107
|
var useAlternativePreloader = props.useAlternativePreloader,
|
|
108
108
|
node = props.node,
|
|
109
109
|
view = props.view,
|
|
@@ -114,20 +114,20 @@ function InlineCardNodeView(props) {
|
|
|
114
114
|
allowBlockCards = props.allowBlockCards,
|
|
115
115
|
enableInlineUpgradeFeatures = props.enableInlineUpgradeFeatures,
|
|
116
116
|
pluginInjectionApi = props.pluginInjectionApi,
|
|
117
|
-
onClickCallback = props.onClickCallback
|
|
117
|
+
onClickCallback = props.onClickCallback,
|
|
118
|
+
__livePage = props.__livePage;
|
|
118
119
|
var _useState = (0, _react.useState)(false),
|
|
119
120
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
120
121
|
isOverlayHovered = _useState2[0],
|
|
121
122
|
setIsOverlayHovered = _useState2[1];
|
|
122
|
-
var
|
|
123
|
-
|
|
123
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['floatingToolbar', 'editorViewMode']),
|
|
124
|
+
editorViewModeState = _useSharedPluginState.editorViewModeState,
|
|
125
|
+
floatingToolbarState = _useSharedPluginState.floatingToolbarState;
|
|
126
|
+
var floatingToolbarNode = floatingToolbarState === null || floatingToolbarState === void 0 || (_floatingToolbarState = floatingToolbarState.configWithNodeInfo) === null || _floatingToolbarState === void 0 ? void 0 : _floatingToolbarState.node;
|
|
127
|
+
if (__livePage && (0, _platformFeatureFlags.fg)('platform.linking-platform.smart-links-in-live-pages')) {
|
|
124
128
|
var showHoverPreview = floatingToolbarNode !== node;
|
|
125
129
|
var livePagesHoverCardFadeInDelay = 800;
|
|
126
|
-
|
|
127
|
-
targetElementPos: getPos(),
|
|
128
|
-
view: view,
|
|
129
|
-
isHoveredCallback: setIsOverlayHovered
|
|
130
|
-
}, /*#__PURE__*/_react.default.createElement(WrappedInlineCard, {
|
|
130
|
+
var inlineCard = /*#__PURE__*/_react.default.createElement(WrappedInlineCard, {
|
|
131
131
|
isHovered: isOverlayHovered,
|
|
132
132
|
node: node,
|
|
133
133
|
view: view,
|
|
@@ -140,7 +140,12 @@ function InlineCardNodeView(props) {
|
|
|
140
140
|
hoverPreviewOptions: {
|
|
141
141
|
fadeInDelay: livePagesHoverCardFadeInDelay
|
|
142
142
|
}
|
|
143
|
-
})
|
|
143
|
+
});
|
|
144
|
+
return (editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode) === 'view' ? inlineCard : /*#__PURE__*/_react.default.createElement(_ConfigureOverlay.default, {
|
|
145
|
+
targetElementPos: getPos(),
|
|
146
|
+
view: view,
|
|
147
|
+
isHoveredCallback: setIsOverlayHovered
|
|
148
|
+
}, inlineCard);
|
|
144
149
|
}
|
|
145
150
|
return /*#__PURE__*/_react.default.createElement(WrappedInlineCardWithAwareness, (0, _extends2.default)({
|
|
146
151
|
node: node,
|
|
@@ -12,8 +12,8 @@ Object.defineProperty(exports, "pluginKey", {
|
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
14
|
exports.stopEvent = void 0;
|
|
15
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
15
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
17
|
var _rafSchd = _interopRequireDefault(require("raf-schd"));
|
|
18
18
|
var _reactNodeView = require("@atlaskit/editor-common/react-node-view");
|
|
19
19
|
var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
@@ -76,9 +76,10 @@ var createPlugin = exports.createPlugin = function createPlugin(options, pluginI
|
|
|
76
76
|
showUpgradeDiscoverability = options.showUpgradeDiscoverability,
|
|
77
77
|
allowEmbeds = options.allowEmbeds,
|
|
78
78
|
allowBlockCards = options.allowBlockCards,
|
|
79
|
-
onClickCallback = options.onClickCallback
|
|
79
|
+
onClickCallback = options.onClickCallback,
|
|
80
|
+
__livePage = options.__livePage;
|
|
80
81
|
var enableInlineUpgradeFeatures = !!showUpgradeDiscoverability && platform !== 'mobile';
|
|
81
|
-
var inlineCardViewProducer = (0, _reactNodeView.getInlineNodeViewProducer)({
|
|
82
|
+
var inlineCardViewProducer = (0, _reactNodeView.getInlineNodeViewProducer)(_objectSpread({
|
|
82
83
|
pmPluginFactoryParams: pmPluginFactoryParams,
|
|
83
84
|
Component: _inlineCard.InlineCardNodeView,
|
|
84
85
|
extraComponentProps: {
|
|
@@ -89,12 +90,14 @@ var createPlugin = exports.createPlugin = function createPlugin(options, pluginI
|
|
|
89
90
|
allowEmbeds: allowEmbeds,
|
|
90
91
|
allowBlockCards: allowBlockCards,
|
|
91
92
|
pluginInjectionApi: pluginInjectionApi,
|
|
92
|
-
onClickCallback: onClickCallback
|
|
93
|
-
|
|
93
|
+
onClickCallback: onClickCallback,
|
|
94
|
+
__livePage: __livePage
|
|
95
|
+
}
|
|
96
|
+
}, __livePage && (0, _platformFeatureFlags.fg)('platform.linking-platform.smart-links-in-live-pages') && {
|
|
94
97
|
extraNodeViewProps: {
|
|
95
98
|
stopEvent: stopEvent
|
|
96
99
|
}
|
|
97
|
-
});
|
|
100
|
+
}));
|
|
98
101
|
return new _safePlugin.SafePlugin({
|
|
99
102
|
state: {
|
|
100
103
|
init: function init() {
|
package/dist/cjs/toolbar.js
CHANGED
|
@@ -476,6 +476,7 @@ var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl,
|
|
|
476
476
|
render: function render(editorView) {
|
|
477
477
|
return /*#__PURE__*/_react.default.createElement(_EditToolbarButton.EditToolbarButton, {
|
|
478
478
|
datasourceId: datasourceId,
|
|
479
|
+
node: node,
|
|
479
480
|
key: "edit-toolbar-item",
|
|
480
481
|
url: metadata.url,
|
|
481
482
|
intl: intl,
|
package/dist/cjs/ui/{EditToolbarButton.js → EditToolbarButton/EditToolbarButtonPresentation.js}
RENAMED
|
@@ -4,9 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.default = void 0;
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
9
|
var _react = require("react");
|
|
11
10
|
var _react2 = require("@emotion/react");
|
|
12
11
|
var _reactIntlNext = require("react-intl-next");
|
|
@@ -16,33 +15,24 @@ var _uiMenu = require("@atlaskit/editor-common/ui-menu");
|
|
|
16
15
|
var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
|
|
17
16
|
var _menu = require("@atlaskit/menu");
|
|
18
17
|
var _primitives = require("@atlaskit/primitives");
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
var _CardContextProvider = require("./CardContextProvider");
|
|
22
|
-
var _useFetchDatasourceInfo = require("./useFetchDatasourceInfo");
|
|
23
|
-
var _excluded = ["extensionKey"];
|
|
18
|
+
var _utils = require("../../utils");
|
|
19
|
+
var _EditDatasourceButton = require("../EditDatasourceButton");
|
|
24
20
|
/** @jsx jsx */
|
|
21
|
+
|
|
25
22
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
23
|
+
|
|
26
24
|
var dropdownExpandContainer = (0, _react2.css)({
|
|
27
25
|
margin: "0px ".concat("var(--ds-space-negative-050, -4px)")
|
|
28
26
|
});
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
editorView =
|
|
35
|
-
|
|
36
|
-
onLinkEditClick =
|
|
37
|
-
|
|
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);
|
|
45
|
-
var datasourceId = (_response$datasourceI = response.datasourceId) !== null && _response$datasourceI !== void 0 ? _response$datasourceI : props.datasourceId;
|
|
27
|
+
var EditToolbarButtonPresentation = function EditToolbarButtonPresentation(_ref) {
|
|
28
|
+
var datasourceId = _ref.datasourceId,
|
|
29
|
+
currentAppearance = _ref.currentAppearance,
|
|
30
|
+
editorAnalyticsApi = _ref.editorAnalyticsApi,
|
|
31
|
+
editVariant = _ref.editVariant,
|
|
32
|
+
editorView = _ref.editorView,
|
|
33
|
+
extensionKey = _ref.extensionKey,
|
|
34
|
+
onLinkEditClick = _ref.onLinkEditClick,
|
|
35
|
+
intl = _ref.intl;
|
|
46
36
|
var _useState = (0, _react.useState)(false),
|
|
47
37
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
48
38
|
isOpen = _useState2[0],
|
|
@@ -62,25 +52,6 @@ var EditToolbarButtonWithCardContext = function EditToolbarButtonWithCardContext
|
|
|
62
52
|
(0, _utils.focusEditorView)(editorView);
|
|
63
53
|
}
|
|
64
54
|
}, [editorView, onLinkEditClick]);
|
|
65
|
-
var editVariant = (0, _react.useMemo)(function () {
|
|
66
|
-
var hasUrl = url !== null && url !== undefined;
|
|
67
|
-
if (!datasourceId || !(0, _utils.isDatasourceConfigEditable)(datasourceId)) {
|
|
68
|
-
if (hasUrl) {
|
|
69
|
-
return 'edit-link';
|
|
70
|
-
}
|
|
71
|
-
return 'none';
|
|
72
|
-
}
|
|
73
|
-
if (hasUrl) {
|
|
74
|
-
var _cardContext$store, _urlState$error;
|
|
75
|
-
var urlState = cardContext === null || cardContext === void 0 || (_cardContext$store = cardContext.store) === null || _cardContext$store === void 0 ? void 0 : _cardContext$store.getState()[url];
|
|
76
|
-
if ((urlState === null || urlState === void 0 || (_urlState$error = urlState.error) === null || _urlState$error === void 0 ? void 0 : _urlState$error.kind) === 'fatal') {
|
|
77
|
-
return 'edit-link';
|
|
78
|
-
}
|
|
79
|
-
return 'edit-dropdown';
|
|
80
|
-
} else {
|
|
81
|
-
return 'edit-datasource';
|
|
82
|
-
}
|
|
83
|
-
}, [cardContext === null || cardContext === void 0 ? void 0 : cardContext.store, datasourceId, url]);
|
|
84
55
|
var onEditDatasource = (0, _react.useCallback)(function () {
|
|
85
56
|
if (editorView && datasourceId) {
|
|
86
57
|
(0, _EditDatasourceButton.editDatasource)(datasourceId, editorAnalyticsApi, currentAppearance, extensionKey)(editorView.state, editorView.dispatch);
|
|
@@ -150,25 +121,4 @@ var EditToolbarButtonWithCardContext = function EditToolbarButtonWithCardContext
|
|
|
150
121
|
return null;
|
|
151
122
|
}
|
|
152
123
|
};
|
|
153
|
-
var
|
|
154
|
-
var currentAppearance = props.currentAppearance,
|
|
155
|
-
datasourceId = props.datasourceId,
|
|
156
|
-
editorAnalyticsApi = props.editorAnalyticsApi,
|
|
157
|
-
editorView = props.editorView,
|
|
158
|
-
intl = props.intl,
|
|
159
|
-
onLinkEditClick = props.onLinkEditClick,
|
|
160
|
-
url = props.url;
|
|
161
|
-
return (0, _react2.jsx)(_CardContextProvider.CardContextProvider, null, function (_ref) {
|
|
162
|
-
var cardContext = _ref.cardContext;
|
|
163
|
-
return (0, _react2.jsx)(EditToolbarButtonWithCardContext, {
|
|
164
|
-
datasourceId: datasourceId,
|
|
165
|
-
url: url,
|
|
166
|
-
intl: intl,
|
|
167
|
-
editorAnalyticsApi: editorAnalyticsApi,
|
|
168
|
-
editorView: editorView,
|
|
169
|
-
cardContext: cardContext,
|
|
170
|
-
onLinkEditClick: onLinkEditClick,
|
|
171
|
-
currentAppearance: currentAppearance
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
};
|
|
124
|
+
var _default = exports.default = EditToolbarButtonPresentation;
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.EditToolbarButton = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var _react2 = require("@emotion/react");
|
|
12
|
+
var _reactIntlNext = require("react-intl-next");
|
|
13
|
+
var _messages = require("@atlaskit/editor-common/messages");
|
|
14
|
+
var _ui = require("@atlaskit/editor-common/ui");
|
|
15
|
+
var _uiMenu = require("@atlaskit/editor-common/ui-menu");
|
|
16
|
+
var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
|
|
17
|
+
var _menu = require("@atlaskit/menu");
|
|
18
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
19
|
+
var _primitives = require("@atlaskit/primitives");
|
|
20
|
+
var _EditDatasourceButton = require("../../ui/EditDatasourceButton");
|
|
21
|
+
var _utils = require("../../utils");
|
|
22
|
+
var _CardContextProvider = require("../CardContextProvider");
|
|
23
|
+
var _useFetchDatasourceDataInfo = require("../useFetchDatasourceDataInfo");
|
|
24
|
+
var _useFetchDatasourceInfo = require("../useFetchDatasourceInfo");
|
|
25
|
+
var _EditToolbarButtonPresentation = _interopRequireDefault(require("./EditToolbarButtonPresentation"));
|
|
26
|
+
var _excluded = ["extensionKey"];
|
|
27
|
+
/** @jsx jsx */
|
|
28
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
29
|
+
var dropdownExpandContainer = (0, _react2.css)({
|
|
30
|
+
margin: "0px ".concat("var(--ds-space-negative-050, -4px)")
|
|
31
|
+
});
|
|
32
|
+
var EditToolbarButtonWithCardContext = function EditToolbarButtonWithCardContext(props) {
|
|
33
|
+
var _response$datasourceI;
|
|
34
|
+
var cardContext = props.cardContext,
|
|
35
|
+
currentAppearance = props.currentAppearance,
|
|
36
|
+
editorAnalyticsApi = props.editorAnalyticsApi,
|
|
37
|
+
editorView = props.editorView,
|
|
38
|
+
intl = props.intl,
|
|
39
|
+
onLinkEditClick = props.onLinkEditClick,
|
|
40
|
+
url = props.url;
|
|
41
|
+
var _useFetchDatasourceIn = (0, _useFetchDatasourceInfo.useFetchDatasourceInfo)({
|
|
42
|
+
isRegularCardNode: true,
|
|
43
|
+
url: url,
|
|
44
|
+
cardContext: cardContext
|
|
45
|
+
}),
|
|
46
|
+
extensionKey = _useFetchDatasourceIn.extensionKey,
|
|
47
|
+
response = (0, _objectWithoutProperties2.default)(_useFetchDatasourceIn, _excluded);
|
|
48
|
+
var datasourceId = (_response$datasourceI = response.datasourceId) !== null && _response$datasourceI !== void 0 ? _response$datasourceI : props.datasourceId;
|
|
49
|
+
var _useState = (0, _react.useState)(false),
|
|
50
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
51
|
+
isOpen = _useState2[0],
|
|
52
|
+
setIsOpen = _useState2[1];
|
|
53
|
+
var containerRef = (0, _react.useRef)();
|
|
54
|
+
var toggleOpen = function toggleOpen() {
|
|
55
|
+
return setIsOpen(function (open) {
|
|
56
|
+
return !open;
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
var onClose = function onClose() {
|
|
60
|
+
return setIsOpen(false);
|
|
61
|
+
};
|
|
62
|
+
var onEditLink = (0, _react.useCallback)(function () {
|
|
63
|
+
if (editorView) {
|
|
64
|
+
onLinkEditClick(editorView.state, editorView.dispatch);
|
|
65
|
+
(0, _utils.focusEditorView)(editorView);
|
|
66
|
+
}
|
|
67
|
+
}, [editorView, onLinkEditClick]);
|
|
68
|
+
var editVariant = (0, _react.useMemo)(function () {
|
|
69
|
+
var hasUrl = url !== null && url !== undefined;
|
|
70
|
+
if (!datasourceId || !(0, _utils.isDatasourceConfigEditable)(datasourceId)) {
|
|
71
|
+
if (hasUrl) {
|
|
72
|
+
return 'edit-link';
|
|
73
|
+
}
|
|
74
|
+
return 'none';
|
|
75
|
+
}
|
|
76
|
+
if (hasUrl) {
|
|
77
|
+
var _cardContext$store, _urlState$error;
|
|
78
|
+
var urlState = cardContext === null || cardContext === void 0 || (_cardContext$store = cardContext.store) === null || _cardContext$store === void 0 ? void 0 : _cardContext$store.getState()[url];
|
|
79
|
+
if ((urlState === null || urlState === void 0 || (_urlState$error = urlState.error) === null || _urlState$error === void 0 ? void 0 : _urlState$error.kind) === 'fatal') {
|
|
80
|
+
return 'edit-link';
|
|
81
|
+
}
|
|
82
|
+
return 'edit-dropdown';
|
|
83
|
+
} else {
|
|
84
|
+
return 'edit-datasource';
|
|
85
|
+
}
|
|
86
|
+
}, [cardContext === null || cardContext === void 0 ? void 0 : cardContext.store, datasourceId, url]);
|
|
87
|
+
var onEditDatasource = (0, _react.useCallback)(function () {
|
|
88
|
+
if (editorView && datasourceId) {
|
|
89
|
+
(0, _EditDatasourceButton.editDatasource)(datasourceId, editorAnalyticsApi, currentAppearance, extensionKey)(editorView.state, editorView.dispatch);
|
|
90
|
+
(0, _utils.focusEditorView)(editorView);
|
|
91
|
+
}
|
|
92
|
+
}, [currentAppearance, datasourceId, editorAnalyticsApi, editorView, extensionKey]);
|
|
93
|
+
switch (editVariant) {
|
|
94
|
+
case 'edit-link':
|
|
95
|
+
{
|
|
96
|
+
return (0, _react2.jsx)(_primitives.Flex, {
|
|
97
|
+
gap: "space.050"
|
|
98
|
+
}, (0, _react2.jsx)(_ui.FloatingToolbarButton, {
|
|
99
|
+
testId: "edit-link",
|
|
100
|
+
onClick: onEditLink
|
|
101
|
+
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.linkToolbarMessages.editLink)), (0, _react2.jsx)(_ui.FloatingToolbarSeparator, null));
|
|
102
|
+
}
|
|
103
|
+
case 'edit-datasource':
|
|
104
|
+
{
|
|
105
|
+
return (0, _react2.jsx)(_primitives.Flex, {
|
|
106
|
+
gap: "space.050"
|
|
107
|
+
}, (0, _react2.jsx)(_ui.FloatingToolbarButton, {
|
|
108
|
+
testId: "edit-datasource",
|
|
109
|
+
tooltipContent: intl.formatMessage(_messages.linkToolbarMessages.editDatasourceStandaloneTooltip),
|
|
110
|
+
onClick: onEditDatasource
|
|
111
|
+
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.linkToolbarMessages.editDatasourceStandalone)), (0, _react2.jsx)(_ui.FloatingToolbarSeparator, null));
|
|
112
|
+
}
|
|
113
|
+
case 'edit-dropdown':
|
|
114
|
+
{
|
|
115
|
+
var trigger = (0, _react2.jsx)(_primitives.Flex, {
|
|
116
|
+
gap: "space.050"
|
|
117
|
+
}, (0, _react2.jsx)(_ui.FloatingToolbarButton, {
|
|
118
|
+
testId: "edit-dropdown-trigger",
|
|
119
|
+
iconAfter: (0, _react2.jsx)("span", {
|
|
120
|
+
css: dropdownExpandContainer
|
|
121
|
+
}, (0, _react2.jsx)(_chevronDown.default, {
|
|
122
|
+
label: intl.formatMessage(_messages.cardMessages.editDropdownTriggerTitle)
|
|
123
|
+
})),
|
|
124
|
+
onClick: toggleOpen,
|
|
125
|
+
selected: isOpen,
|
|
126
|
+
disabled: false,
|
|
127
|
+
ariaHasPopup: true
|
|
128
|
+
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.cardMessages.editDropdownTriggerTitle)), (0, _react2.jsx)(_ui.FloatingToolbarSeparator, null));
|
|
129
|
+
return (0, _react2.jsx)(_primitives.Flex, {
|
|
130
|
+
ref: containerRef
|
|
131
|
+
}, (0, _react2.jsx)(_uiMenu.DropdownContainer, {
|
|
132
|
+
mountTo: containerRef.current,
|
|
133
|
+
isOpen: isOpen,
|
|
134
|
+
handleClickOutside: onClose,
|
|
135
|
+
handleEscapeKeydown: onClose,
|
|
136
|
+
trigger: trigger,
|
|
137
|
+
scrollableElement: containerRef.current,
|
|
138
|
+
arrowKeyNavigationProviderOptions: {
|
|
139
|
+
type: _uiMenu.ArrowKeyNavigationType.MENU
|
|
140
|
+
}
|
|
141
|
+
}, (0, _react2.jsx)(_menu.ButtonItem, {
|
|
142
|
+
key: "edit.link",
|
|
143
|
+
onClick: onEditLink,
|
|
144
|
+
testId: "edit-dropdown-edit-link-item"
|
|
145
|
+
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.cardMessages.editDropdownEditLinkTitle)), (0, _react2.jsx)(_menu.ButtonItem, {
|
|
146
|
+
key: "edit.datasource",
|
|
147
|
+
onClick: onEditDatasource,
|
|
148
|
+
testId: "edit-dropdown-edit-datasource-item"
|
|
149
|
+
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.cardMessages.editDropdownEditDatasourceTitle))));
|
|
150
|
+
}
|
|
151
|
+
case 'none':
|
|
152
|
+
default:
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
var EditToolbarButtonWithUrl = function EditToolbarButtonWithUrl(props) {
|
|
157
|
+
var cardContext = props.cardContext,
|
|
158
|
+
currentAppearance = props.currentAppearance,
|
|
159
|
+
editorAnalyticsApi = props.editorAnalyticsApi,
|
|
160
|
+
editorView = props.editorView,
|
|
161
|
+
intl = props.intl,
|
|
162
|
+
onLinkEditClick = props.onLinkEditClick,
|
|
163
|
+
url = props.url;
|
|
164
|
+
var _useFetchDatasourceIn2 = (0, _useFetchDatasourceInfo.useFetchDatasourceInfo)({
|
|
165
|
+
isRegularCardNode: true,
|
|
166
|
+
url: url,
|
|
167
|
+
cardContext: cardContext
|
|
168
|
+
}),
|
|
169
|
+
extensionKey = _useFetchDatasourceIn2.extensionKey,
|
|
170
|
+
datasourceId = _useFetchDatasourceIn2.datasourceId;
|
|
171
|
+
var editVariant = (0, _react.useMemo)(function () {
|
|
172
|
+
var _cardContext$store2, _urlState$error2;
|
|
173
|
+
if (!datasourceId || !(0, _utils.isDatasourceConfigEditable)(datasourceId)) {
|
|
174
|
+
return 'edit-link';
|
|
175
|
+
}
|
|
176
|
+
var urlState = cardContext === null || cardContext === void 0 || (_cardContext$store2 = cardContext.store) === null || _cardContext$store2 === void 0 ? void 0 : _cardContext$store2.getState()[url];
|
|
177
|
+
if ((urlState === null || urlState === void 0 || (_urlState$error2 = urlState.error) === null || _urlState$error2 === void 0 ? void 0 : _urlState$error2.kind) === 'fatal') {
|
|
178
|
+
return 'edit-link';
|
|
179
|
+
}
|
|
180
|
+
return 'edit-dropdown';
|
|
181
|
+
}, [cardContext === null || cardContext === void 0 ? void 0 : cardContext.store, datasourceId, url]);
|
|
182
|
+
return (0, _react2.jsx)(_EditToolbarButtonPresentation.default, {
|
|
183
|
+
datasourceId: datasourceId,
|
|
184
|
+
currentAppearance: currentAppearance,
|
|
185
|
+
editorAnalyticsApi: editorAnalyticsApi,
|
|
186
|
+
editVariant: editVariant,
|
|
187
|
+
editorView: editorView,
|
|
188
|
+
extensionKey: extensionKey,
|
|
189
|
+
onLinkEditClick: onLinkEditClick,
|
|
190
|
+
intl: intl
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
var EditToolbarButtonWithDatasourceId = function EditToolbarButtonWithDatasourceId(props) {
|
|
194
|
+
var currentAppearance = props.currentAppearance,
|
|
195
|
+
editorAnalyticsApi = props.editorAnalyticsApi,
|
|
196
|
+
editorView = props.editorView,
|
|
197
|
+
intl = props.intl,
|
|
198
|
+
onLinkEditClick = props.onLinkEditClick,
|
|
199
|
+
datasourceId = props.datasourceId,
|
|
200
|
+
node = props.node;
|
|
201
|
+
var fetchData = (0, _react.useMemo)(function () {
|
|
202
|
+
try {
|
|
203
|
+
var _attrs$datasource$vie;
|
|
204
|
+
var attrs = node.attrs;
|
|
205
|
+
var parameters = attrs.datasource.parameters;
|
|
206
|
+
var visibleColumnKeys = (_attrs$datasource$vie = attrs.datasource.views[0]) === null || _attrs$datasource$vie === void 0 || (_attrs$datasource$vie = _attrs$datasource$vie.properties) === null || _attrs$datasource$vie === void 0 ? void 0 : _attrs$datasource$vie.columns.map(function (c) {
|
|
207
|
+
return c.key;
|
|
208
|
+
});
|
|
209
|
+
return {
|
|
210
|
+
parameters: parameters,
|
|
211
|
+
visibleColumnKeys: visibleColumnKeys
|
|
212
|
+
};
|
|
213
|
+
} catch (e) {
|
|
214
|
+
// eslint-disable-next-line no-console
|
|
215
|
+
console.error(e);
|
|
216
|
+
}
|
|
217
|
+
}, [node.attrs]);
|
|
218
|
+
var _useFetchDatasourceDa = (0, _useFetchDatasourceDataInfo.useFetchDatasourceDataInfo)({
|
|
219
|
+
datasourceId: datasourceId,
|
|
220
|
+
parameters: fetchData === null || fetchData === void 0 ? void 0 : fetchData.parameters,
|
|
221
|
+
visibleColumnKeys: fetchData === null || fetchData === void 0 ? void 0 : fetchData.visibleColumnKeys
|
|
222
|
+
}),
|
|
223
|
+
extensionKey = _useFetchDatasourceDa.extensionKey;
|
|
224
|
+
var editVariant = (0, _react.useMemo)(function () {
|
|
225
|
+
if (!datasourceId || !(0, _utils.isDatasourceConfigEditable)(datasourceId)) {
|
|
226
|
+
return 'none';
|
|
227
|
+
}
|
|
228
|
+
return 'edit-datasource';
|
|
229
|
+
}, [datasourceId]);
|
|
230
|
+
return (0, _react2.jsx)(_EditToolbarButtonPresentation.default, {
|
|
231
|
+
datasourceId: datasourceId,
|
|
232
|
+
currentAppearance: currentAppearance,
|
|
233
|
+
editorAnalyticsApi: editorAnalyticsApi,
|
|
234
|
+
editVariant: editVariant,
|
|
235
|
+
editorView: editorView,
|
|
236
|
+
extensionKey: extensionKey,
|
|
237
|
+
onLinkEditClick: onLinkEditClick,
|
|
238
|
+
intl: intl
|
|
239
|
+
});
|
|
240
|
+
};
|
|
241
|
+
var EditToolbarButton = exports.EditToolbarButton = function EditToolbarButton(props) {
|
|
242
|
+
var currentAppearance = props.currentAppearance,
|
|
243
|
+
datasourceId = props.datasourceId,
|
|
244
|
+
editorAnalyticsApi = props.editorAnalyticsApi,
|
|
245
|
+
editorView = props.editorView,
|
|
246
|
+
intl = props.intl,
|
|
247
|
+
onLinkEditClick = props.onLinkEditClick,
|
|
248
|
+
url = props.url;
|
|
249
|
+
return (0, _react2.jsx)(_CardContextProvider.CardContextProvider, null, function (_ref) {
|
|
250
|
+
var cardContext = _ref.cardContext;
|
|
251
|
+
if ((0, _platformFeatureFlags.fg)('enable_datasource_nourl_edit_dropdown_datafetch')) {
|
|
252
|
+
if (props.url) {
|
|
253
|
+
return (0, _react2.jsx)(EditToolbarButtonWithUrl, {
|
|
254
|
+
url: props.url,
|
|
255
|
+
intl: intl,
|
|
256
|
+
editorAnalyticsApi: editorAnalyticsApi,
|
|
257
|
+
editorView: editorView,
|
|
258
|
+
cardContext: cardContext,
|
|
259
|
+
onLinkEditClick: onLinkEditClick,
|
|
260
|
+
currentAppearance: currentAppearance
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
if (props.datasourceId && props.node) {
|
|
264
|
+
return (0, _react2.jsx)(EditToolbarButtonWithDatasourceId, {
|
|
265
|
+
datasourceId: props.datasourceId,
|
|
266
|
+
node: props.node,
|
|
267
|
+
intl: intl,
|
|
268
|
+
editorAnalyticsApi: editorAnalyticsApi,
|
|
269
|
+
editorView: editorView,
|
|
270
|
+
onLinkEditClick: onLinkEditClick,
|
|
271
|
+
currentAppearance: currentAppearance
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return (0, _react2.jsx)(EditToolbarButtonWithCardContext, {
|
|
276
|
+
datasourceId: datasourceId,
|
|
277
|
+
url: url,
|
|
278
|
+
intl: intl,
|
|
279
|
+
editorAnalyticsApi: editorAnalyticsApi,
|
|
280
|
+
editorView: editorView,
|
|
281
|
+
cardContext: cardContext,
|
|
282
|
+
onLinkEditClick: onLinkEditClick,
|
|
283
|
+
currentAppearance: currentAppearance
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useFetchDatasourceDataInfo = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _react = require("react");
|
|
12
|
+
var _linkClientExtension = require("@atlaskit/link-client-extension");
|
|
13
|
+
/** @jsx jsx */
|
|
14
|
+
|
|
15
|
+
var useFetchDatasourceDataInfo = exports.useFetchDatasourceDataInfo = function useFetchDatasourceDataInfo(_ref) {
|
|
16
|
+
var datasourceId = _ref.datasourceId,
|
|
17
|
+
parameters = _ref.parameters,
|
|
18
|
+
visibleColumnKeys = _ref.visibleColumnKeys;
|
|
19
|
+
var _useState = (0, _react.useState)(undefined),
|
|
20
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
21
|
+
extensionKey = _useState2[0],
|
|
22
|
+
setExtensionKey = _useState2[1];
|
|
23
|
+
var _useDatasourceClientE = (0, _linkClientExtension.useDatasourceClientExtension)(),
|
|
24
|
+
getDatasourceData = _useDatasourceClientE.getDatasourceData;
|
|
25
|
+
(0, _react.useEffect)(function () {
|
|
26
|
+
var fetchDatasource = /*#__PURE__*/function () {
|
|
27
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
28
|
+
var datasourceDataRequest, _yield$getDatasourceD, meta;
|
|
29
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
30
|
+
while (1) switch (_context.prev = _context.next) {
|
|
31
|
+
case 0:
|
|
32
|
+
_context.prev = 0;
|
|
33
|
+
if (!(!datasourceId || !parameters || !visibleColumnKeys)) {
|
|
34
|
+
_context.next = 3;
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
return _context.abrupt("return");
|
|
38
|
+
case 3:
|
|
39
|
+
datasourceDataRequest = {
|
|
40
|
+
parameters: parameters,
|
|
41
|
+
pageSize: _linkClientExtension.DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE,
|
|
42
|
+
pageCursor: undefined,
|
|
43
|
+
fields: visibleColumnKeys,
|
|
44
|
+
includeSchema: true
|
|
45
|
+
};
|
|
46
|
+
_context.next = 6;
|
|
47
|
+
return getDatasourceData(datasourceId, datasourceDataRequest, false);
|
|
48
|
+
case 6:
|
|
49
|
+
_yield$getDatasourceD = _context.sent;
|
|
50
|
+
meta = _yield$getDatasourceD.meta;
|
|
51
|
+
setExtensionKey(meta.extensionKey);
|
|
52
|
+
_context.next = 15;
|
|
53
|
+
break;
|
|
54
|
+
case 11:
|
|
55
|
+
_context.prev = 11;
|
|
56
|
+
_context.t0 = _context["catch"](0);
|
|
57
|
+
// eslint-disable-next-line no-console
|
|
58
|
+
console.error(_context.t0);
|
|
59
|
+
setExtensionKey(undefined);
|
|
60
|
+
case 15:
|
|
61
|
+
case "end":
|
|
62
|
+
return _context.stop();
|
|
63
|
+
}
|
|
64
|
+
}, _callee, null, [[0, 11]]);
|
|
65
|
+
}));
|
|
66
|
+
return function fetchDatasource() {
|
|
67
|
+
return _ref2.apply(this, arguments);
|
|
68
|
+
};
|
|
69
|
+
}();
|
|
70
|
+
void fetchDatasource();
|
|
71
|
+
}, [getDatasourceData, visibleColumnKeys, parameters, datasourceId]);
|
|
72
|
+
return {
|
|
73
|
+
extensionKey: extensionKey
|
|
74
|
+
};
|
|
75
|
+
};
|
|
@@ -14,7 +14,8 @@ const WithClickHandler = ({
|
|
|
14
14
|
pluginInjectionApi,
|
|
15
15
|
url,
|
|
16
16
|
onClickCallback,
|
|
17
|
-
children
|
|
17
|
+
children,
|
|
18
|
+
__livePage
|
|
18
19
|
}) => {
|
|
19
20
|
const {
|
|
20
21
|
editorViewModeState
|
|
@@ -37,7 +38,7 @@ const WithClickHandler = ({
|
|
|
37
38
|
*
|
|
38
39
|
* const allowNavigation = isLivePage && !onClickCallback;
|
|
39
40
|
*/
|
|
40
|
-
const allowNavigation = !onClickCallback;
|
|
41
|
+
const allowNavigation = __livePage && !onClickCallback;
|
|
41
42
|
return /*#__PURE__*/React.createElement(React.Fragment, null, children({
|
|
42
43
|
onClick: allowNavigation ? undefined : onClick
|
|
43
44
|
}));
|
|
@@ -97,7 +98,8 @@ export function Card(SmartCardComponent, UnsupportedComponent) {
|
|
|
97
98
|
}, /*#__PURE__*/React.createElement(WithClickHandler, {
|
|
98
99
|
pluginInjectionApi: pluginInjectionApi,
|
|
99
100
|
onClickCallback: onClickCallback,
|
|
100
|
-
url: url
|
|
101
|
+
url: url,
|
|
102
|
+
__livePage: this.props.__livePage
|
|
101
103
|
}, ({
|
|
102
104
|
onClick
|
|
103
105
|
}) => /*#__PURE__*/React.createElement(SmartCardComponent, _extends({
|