@atlaskit/editor-plugin-card 1.15.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/cjs/plugin.js +2 -12
- package/dist/cjs/pm-plugins/doc.js +88 -2
- package/dist/cjs/toolbar.js +4 -7
- package/dist/cjs/ui/EditLinkToolbar.js +3 -15
- package/dist/cjs/ui/HyperlinkToolbarAppearance.js +3 -5
- package/dist/cjs/ui/LinkToolbarAppearance.js +6 -6
- package/dist/cjs/utils.js +1 -4
- package/dist/es2019/plugin.js +3 -11
- package/dist/es2019/pm-plugins/doc.js +84 -1
- package/dist/es2019/toolbar.js +18 -23
- package/dist/es2019/ui/EditLinkToolbar.js +3 -16
- package/dist/es2019/ui/HyperlinkToolbarAppearance.js +3 -5
- package/dist/es2019/ui/LinkToolbarAppearance.js +6 -6
- package/dist/es2019/utils.js +0 -3
- package/dist/esm/plugin.js +3 -13
- package/dist/esm/pm-plugins/doc.js +88 -1
- package/dist/esm/toolbar.js +5 -8
- package/dist/esm/ui/EditLinkToolbar.js +3 -15
- package/dist/esm/ui/HyperlinkToolbarAppearance.js +3 -5
- package/dist/esm/ui/LinkToolbarAppearance.js +6 -6
- package/dist/esm/utils.js +0 -3
- package/dist/types/plugin.d.ts +1 -7
- package/dist/types/pm-plugins/doc.d.ts +11 -4
- package/dist/types/ui/EditLinkToolbar.d.ts +4 -8
- package/dist/types/ui/HyperlinkToolbarAppearance.d.ts +1 -2
- package/dist/types/ui/LinkToolbarAppearance.d.ts +0 -2
- package/dist/types/utils.d.ts +0 -2
- package/dist/types-ts4.5/plugin.d.ts +1 -7
- package/dist/types-ts4.5/pm-plugins/doc.d.ts +11 -4
- package/dist/types-ts4.5/ui/EditLinkToolbar.d.ts +4 -8
- package/dist/types-ts4.5/ui/HyperlinkToolbarAppearance.d.ts +1 -2
- package/dist/types-ts4.5/ui/LinkToolbarAppearance.d.ts +0 -2
- package/dist/types-ts4.5/utils.d.ts +0 -2
- package/package.json +6 -7
- package/dist/cjs/pm-plugins/mountHyperlink.js +0 -84
- package/dist/es2019/pm-plugins/mountHyperlink.js +0 -72
- package/dist/esm/pm-plugins/mountHyperlink.js +0 -77
- package/dist/types/pm-plugins/mountHyperlink.d.ts +0 -5
- package/dist/types-ts4.5/pm-plugins/mountHyperlink.d.ts +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-card
|
|
2
2
|
|
|
3
|
+
## 2.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [#106543](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/106543)
|
|
8
|
+
[`2141b277161c`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/2141b277161c) -
|
|
9
|
+
Added API actions to retrieve toolbar items and removed `mountHyperlink` used to inject behavior
|
|
10
|
+
into hyperlink.
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
|
|
16
|
+
## 1.15.1
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
|
|
3
22
|
## 1.15.0
|
|
4
23
|
|
|
5
24
|
### Minor Changes
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -18,7 +18,6 @@ var _actions = require("./pm-plugins/actions");
|
|
|
18
18
|
var _doc = require("./pm-plugins/doc");
|
|
19
19
|
var _keymap = require("./pm-plugins/keymap");
|
|
20
20
|
var _main = require("./pm-plugins/main");
|
|
21
|
-
var _mountHyperlink = require("./pm-plugins/mountHyperlink");
|
|
22
21
|
var _pluginKey = require("./pm-plugins/plugin-key");
|
|
23
22
|
var _toolbar = require("./toolbar");
|
|
24
23
|
var _ModalWithState = _interopRequireDefault(require("./ui/DatasourceModal/ModalWithState"));
|
|
@@ -28,10 +27,6 @@ var _LayoutButton = _interopRequireDefault(require("./ui/LayoutButton"));
|
|
|
28
27
|
var _utils2 = require("./utils");
|
|
29
28
|
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
29
|
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
|
-
/**
|
|
32
|
-
* Card plugin to be added to an `EditorPresetBuilder` and used with `ComposableEditor`
|
|
33
|
-
* from `@atlaskit/editor-core`.
|
|
34
|
-
*/
|
|
35
30
|
var cardPlugin = exports.cardPlugin = function cardPlugin(_ref) {
|
|
36
31
|
var _options$lpLinkPicker;
|
|
37
32
|
var options = _ref.config,
|
|
@@ -82,11 +77,6 @@ var cardPlugin = exports.cardPlugin = function cardPlugin(_ref) {
|
|
|
82
77
|
cardPluginEvents: cardPluginEvents,
|
|
83
78
|
showUpgradeDiscoverability: showUpgradeDiscoverability
|
|
84
79
|
}), api)
|
|
85
|
-
}, {
|
|
86
|
-
name: 'cardHyperlink',
|
|
87
|
-
plugin: function plugin() {
|
|
88
|
-
return (0, _mountHyperlink.mountHyperlinkPlugin)(api, options);
|
|
89
|
-
}
|
|
90
80
|
}];
|
|
91
81
|
plugins.push({
|
|
92
82
|
name: 'cardKeymap',
|
|
@@ -122,8 +112,8 @@ var cardPlugin = exports.cardPlugin = function cardPlugin(_ref) {
|
|
|
122
112
|
actions: {
|
|
123
113
|
hideLinkToolbar: _actions.hideLinkToolbar,
|
|
124
114
|
queueCardsFromChangedTr: _doc.queueCardsFromChangedTr,
|
|
125
|
-
|
|
126
|
-
|
|
115
|
+
getStartingToolbarItems: (0, _doc.getStartingToolbarItems)(options, api),
|
|
116
|
+
getEndingToolbarItems: (0, _doc.getEndingToolbarItems)(options, api)
|
|
127
117
|
},
|
|
128
118
|
pluginsOptions: {
|
|
129
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,17 +4,23 @@ 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.getLinkNodeType = 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.getStartingToolbarItems = exports.getLinkNodeType = exports.getEndingToolbarItems = exports.getAttrsForAppearance = exports.editDatasource = 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"));
|
|
10
11
|
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
11
12
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
12
13
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
13
14
|
var _card = require("@atlaskit/editor-common/card");
|
|
15
|
+
var _messages = require("@atlaskit/editor-common/messages");
|
|
14
16
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
15
17
|
var _history = require("@atlaskit/editor-prosemirror/history");
|
|
16
18
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
17
19
|
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");
|
|
18
24
|
var _utils2 = require("../utils");
|
|
19
25
|
var _actions = require("./actions");
|
|
20
26
|
var _pluginKey = require("./plugin-key");
|
|
@@ -568,7 +574,7 @@ var updateDatasourceStash = function updateDatasourceStash(tr, selectedNode) {
|
|
|
568
574
|
}
|
|
569
575
|
}
|
|
570
576
|
};
|
|
571
|
-
var editDatasource = exports.editDatasource = function editDatasource(datasourceId,
|
|
577
|
+
var editDatasource = exports.editDatasource = function editDatasource(datasourceId, editorAnalyticsApi) {
|
|
572
578
|
return function (state, dispatch) {
|
|
573
579
|
var datasourceType = (0, _utils.getDatasourceType)(datasourceId);
|
|
574
580
|
if (dispatch && datasourceType) {
|
|
@@ -587,4 +593,84 @@ var editDatasource = exports.editDatasource = function editDatasource(datasource
|
|
|
587
593
|
}
|
|
588
594
|
return false;
|
|
589
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
|
+
return [{
|
|
627
|
+
type: 'custom',
|
|
628
|
+
fallback: [],
|
|
629
|
+
render: function render(editorView) {
|
|
630
|
+
return /*#__PURE__*/_react.default.createElement(_ToolbarViewedEvent.ToolbarViewedEvent, {
|
|
631
|
+
key: "edit.link.menu.viewed",
|
|
632
|
+
url: link,
|
|
633
|
+
display: "url",
|
|
634
|
+
editorView: editorView
|
|
635
|
+
});
|
|
636
|
+
}
|
|
637
|
+
}, {
|
|
638
|
+
type: 'custom',
|
|
639
|
+
fallback: [],
|
|
640
|
+
render: function render(editorView) {
|
|
641
|
+
var _api$analytics2;
|
|
642
|
+
if (!editorView) {
|
|
643
|
+
return null;
|
|
644
|
+
}
|
|
645
|
+
return /*#__PURE__*/_react.default.createElement(_HyperlinkToolbarAppearance.HyperlinkToolbarAppearance, {
|
|
646
|
+
key: "link-appearance",
|
|
647
|
+
url: link,
|
|
648
|
+
intl: intl,
|
|
649
|
+
editorView: editorView,
|
|
650
|
+
editorState: editorView.state,
|
|
651
|
+
cardOptions: options,
|
|
652
|
+
providerFactory: providerFactory,
|
|
653
|
+
platform: options === null || options === void 0 ? void 0 : options.platform,
|
|
654
|
+
editorAnalyticsApi: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
}].concat(editLinkItem);
|
|
658
|
+
};
|
|
659
|
+
};
|
|
660
|
+
var getEndingToolbarItems = exports.getEndingToolbarItems = function getEndingToolbarItems(options, api) {
|
|
661
|
+
return function (intl, link) {
|
|
662
|
+
if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.card.inject-settings-button')) {
|
|
663
|
+
/**
|
|
664
|
+
* Require either provider to be supplied (controls link preferences)
|
|
665
|
+
* Or explicit user preferences config in order to enable button
|
|
666
|
+
*/
|
|
667
|
+
if (options.provider || options.userPreferencesLink) {
|
|
668
|
+
var _api$analytics3;
|
|
669
|
+
return [{
|
|
670
|
+
type: 'separator'
|
|
671
|
+
}, (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)];
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
return [];
|
|
675
|
+
};
|
|
590
676
|
};
|
package/dist/cjs/toolbar.js
CHANGED
|
@@ -222,11 +222,11 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
|
|
|
222
222
|
lpLinkPicker: lpLinkPicker
|
|
223
223
|
})];
|
|
224
224
|
} else if (shouldRenderDatasourceToolbar) {
|
|
225
|
-
|
|
226
|
-
return getDatasourceButtonGroup(metadata, intl, editorAnalyticsApi, node, hoverDecoration, node.attrs.datasource.id, state, cardOptions, currentAppearance, platform, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c = pluginInjectionApi.card) === null || _pluginInjectionApi$c === void 0 ? void 0 : _pluginInjectionApi$c.actions);
|
|
225
|
+
return getDatasourceButtonGroup(metadata, intl, editorAnalyticsApi, node, hoverDecoration, node.attrs.datasource.id, state, cardOptions, currentAppearance, platform);
|
|
227
226
|
} else {
|
|
228
227
|
var inlineCard = state.schema.nodes.inlineCard;
|
|
229
|
-
var
|
|
228
|
+
var isEditDropdownEnabled = (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && platform !== 'mobile' && cardOptions.allowDatasource;
|
|
229
|
+
var toolbarItems = [isEditDropdownEnabled ? {
|
|
230
230
|
type: 'custom',
|
|
231
231
|
fallback: [],
|
|
232
232
|
render: function render(editorView) {
|
|
@@ -305,7 +305,6 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
|
|
|
305
305
|
type: 'custom',
|
|
306
306
|
fallback: [],
|
|
307
307
|
render: function render(editorView) {
|
|
308
|
-
var _pluginInjectionApi$c2;
|
|
309
308
|
return /*#__PURE__*/_react.default.createElement(_LinkToolbarAppearance.LinkToolbarAppearance, {
|
|
310
309
|
key: "link-appearance",
|
|
311
310
|
url: url,
|
|
@@ -317,7 +316,6 @@ var generateToolbarItems = function generateToolbarItems(state, intl, providerFa
|
|
|
317
316
|
allowBlockCards: allowBlockCards,
|
|
318
317
|
platform: platform,
|
|
319
318
|
editorAnalyticsApi: editorAnalyticsApi,
|
|
320
|
-
cardActions: pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c2 = pluginInjectionApi.card) === null || _pluginInjectionApi$c2 === void 0 ? void 0 : _pluginInjectionApi$c2.actions,
|
|
321
319
|
showUpgradeDiscoverability: showUpgradeDiscoverability
|
|
322
320
|
});
|
|
323
321
|
}
|
|
@@ -395,7 +393,7 @@ var getSettingsButtonGroup = exports.getSettingsButtonGroup = function getSettin
|
|
|
395
393
|
type: 'separator'
|
|
396
394
|
}];
|
|
397
395
|
};
|
|
398
|
-
var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl, editorAnalyticsApi, node, hoverDecoration, datasourceId, state, cardOptions, currentAppearance, platform
|
|
396
|
+
var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl, editorAnalyticsApi, node, hoverDecoration, datasourceId, state, cardOptions, currentAppearance, platform) {
|
|
399
397
|
var _node$attrs3;
|
|
400
398
|
var toolbarItems = [];
|
|
401
399
|
if ((0, _utils3.isDatasourceConfigEditable)(datasourceId) && !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.enable-datasource-edit-dropdown-toolbar')) {
|
|
@@ -462,7 +460,6 @@ var getDatasourceButtonGroup = function getDatasourceButtonGroup(metadata, intl,
|
|
|
462
460
|
allowBlockCards: allowBlockCards,
|
|
463
461
|
platform: platform,
|
|
464
462
|
editorAnalyticsApi: editorAnalyticsApi,
|
|
465
|
-
cardActions: cardActions,
|
|
466
463
|
showUpgradeDiscoverability: showUpgradeDiscoverability,
|
|
467
464
|
isDatasourceView: true
|
|
468
465
|
});
|
|
@@ -15,7 +15,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
15
15
|
var _react = _interopRequireDefault(require("react"));
|
|
16
16
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
17
17
|
var _card = require("@atlaskit/editor-common/card");
|
|
18
|
-
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
19
18
|
var _link = require("@atlaskit/editor-common/link");
|
|
20
19
|
var _messages = require("@atlaskit/editor-common/messages");
|
|
21
20
|
var _ui = require("@atlaskit/editor-common/ui");
|
|
@@ -38,10 +37,7 @@ function HyperlinkAddToolbarWithState(_ref) {
|
|
|
38
37
|
lpLinkPicker = _ref.lpLinkPicker,
|
|
39
38
|
onClose = _ref.onClose,
|
|
40
39
|
onEscapeCallback = _ref.onEscapeCallback,
|
|
41
|
-
onClickAwayCallback = _ref.onClickAwayCallback
|
|
42
|
-
pluginInjectionApi = _ref.pluginInjectionApi;
|
|
43
|
-
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['hyperlink']),
|
|
44
|
-
hyperlinkState = _useSharedPluginState.hyperlinkState;
|
|
40
|
+
onClickAwayCallback = _ref.onClickAwayCallback;
|
|
45
41
|
return /*#__PURE__*/_react.default.createElement(_link.HyperlinkAddToolbar, {
|
|
46
42
|
linkPickerOptions: linkPickerOptions,
|
|
47
43
|
onSubmit: onSubmit,
|
|
@@ -54,8 +50,7 @@ function HyperlinkAddToolbarWithState(_ref) {
|
|
|
54
50
|
lpLinkPicker: lpLinkPicker,
|
|
55
51
|
onClose: onClose,
|
|
56
52
|
onEscapeCallback: onEscapeCallback,
|
|
57
|
-
onClickAwayCallback: onClickAwayCallback
|
|
58
|
-
hyperlinkPluginState: hyperlinkState
|
|
53
|
+
onClickAwayCallback: onClickAwayCallback
|
|
59
54
|
});
|
|
60
55
|
}
|
|
61
56
|
|
|
@@ -96,11 +91,9 @@ var EditLinkToolbar = exports.EditLinkToolbar = /*#__PURE__*/function (_React$Co
|
|
|
96
91
|
text = _this$props.text,
|
|
97
92
|
view = _this$props.view,
|
|
98
93
|
_onSubmit = _this$props.onSubmit,
|
|
99
|
-
pluginInjectionApi = _this$props.pluginInjectionApi,
|
|
100
94
|
forceFocusSelector = _this$props.forceFocusSelector,
|
|
101
95
|
lpLinkPicker = _this$props.lpLinkPicker;
|
|
102
96
|
return /*#__PURE__*/_react.default.createElement(HyperlinkAddToolbarWithState, {
|
|
103
|
-
pluginInjectionApi: pluginInjectionApi,
|
|
104
97
|
view: view,
|
|
105
98
|
linkPickerOptions: linkPickerOptions,
|
|
106
99
|
providerFactory: providerFactory,
|
|
@@ -118,9 +111,7 @@ var EditLinkToolbar = exports.EditLinkToolbar = /*#__PURE__*/function (_React$Co
|
|
|
118
111
|
}
|
|
119
112
|
},
|
|
120
113
|
onEscapeCallback: function onEscapeCallback(state, dispatch) {
|
|
121
|
-
var _pluginInjectionApi$h;
|
|
122
114
|
var tr = state.tr;
|
|
123
|
-
pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$h = pluginInjectionApi.hyperlink) === null || _pluginInjectionApi$h === void 0 || _pluginInjectionApi$h.actions.hideLinkToolbar(tr);
|
|
124
115
|
(0, _actions.hideLinkToolbar)(tr);
|
|
125
116
|
forceFocusSelector === null || forceFocusSelector === void 0 || forceFocusSelector("[aria-label=\"".concat(_messages.linkToolbarMessages.editLink.defaultMessage, "\"]"))(tr);
|
|
126
117
|
if (dispatch) {
|
|
@@ -130,9 +121,7 @@ var EditLinkToolbar = exports.EditLinkToolbar = /*#__PURE__*/function (_React$Co
|
|
|
130
121
|
return false;
|
|
131
122
|
},
|
|
132
123
|
onClickAwayCallback: function onClickAwayCallback(state, dispatch) {
|
|
133
|
-
var _pluginInjectionApi$h2;
|
|
134
124
|
var tr = state.tr;
|
|
135
|
-
pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$h2 = pluginInjectionApi.hyperlink) === null || _pluginInjectionApi$h2 === void 0 || _pluginInjectionApi$h2.actions.hideLinkToolbar(tr);
|
|
136
125
|
if (dispatch) {
|
|
137
126
|
dispatch(tr);
|
|
138
127
|
return true;
|
|
@@ -163,8 +152,8 @@ var editLink = exports.editLink = function editLink(editorAnalyticsApi) {
|
|
|
163
152
|
var buildEditLinkToolbar = exports.buildEditLinkToolbar = function buildEditLinkToolbar(_ref2) {
|
|
164
153
|
var providerFactory = _ref2.providerFactory,
|
|
165
154
|
node = _ref2.node,
|
|
166
|
-
linkPicker = _ref2.linkPicker,
|
|
167
155
|
pluginInjectionApi = _ref2.pluginInjectionApi,
|
|
156
|
+
linkPicker = _ref2.linkPicker,
|
|
168
157
|
lpLinkPicker = _ref2.lpLinkPicker;
|
|
169
158
|
return {
|
|
170
159
|
type: 'custom',
|
|
@@ -177,7 +166,6 @@ var buildEditLinkToolbar = exports.buildEditLinkToolbar = function buildEditLink
|
|
|
177
166
|
}
|
|
178
167
|
var displayInfo = (0, _utils.displayInfoForCard)(node, (0, _utils.findCardInfo)(view.state));
|
|
179
168
|
return /*#__PURE__*/_react.default.createElement(EditLinkToolbar, {
|
|
180
|
-
pluginInjectionApi: pluginInjectionApi,
|
|
181
169
|
key: idx,
|
|
182
170
|
view: view,
|
|
183
171
|
linkPickerOptions: linkPicker,
|
|
@@ -155,13 +155,12 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
|
|
|
155
155
|
editorState = _this$props.editorState,
|
|
156
156
|
cardOptions = _this$props.cardOptions,
|
|
157
157
|
platform = _this$props.platform,
|
|
158
|
-
editorAnalyticsApi = _this$props.editorAnalyticsApi
|
|
159
|
-
cardActions = _this$props.cardActions;
|
|
158
|
+
editorAnalyticsApi = _this$props.editorAnalyticsApi;
|
|
160
159
|
var supportedUrlsMap = this.state.supportedUrlsMap;
|
|
161
160
|
if (!supportedUrlsMap.get(url)) {
|
|
162
161
|
return null;
|
|
163
162
|
}
|
|
164
|
-
return /*#__PURE__*/_react.default.createElement(_primitives.Flex, null, /*#__PURE__*/_react.default.createElement(_EditDatasourceButton.EditDatasourceButton, {
|
|
163
|
+
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
164
|
url: url,
|
|
166
165
|
intl: intl,
|
|
167
166
|
editorState: editorState,
|
|
@@ -176,8 +175,7 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
|
|
|
176
175
|
allowEmbeds: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowEmbeds,
|
|
177
176
|
allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
|
|
178
177
|
platform: platform,
|
|
179
|
-
editorAnalyticsApi: editorAnalyticsApi
|
|
180
|
-
cardActions: cardActions
|
|
178
|
+
editorAnalyticsApi: editorAnalyticsApi
|
|
181
179
|
}), (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.enable-datasource-appearance-toolbar') && (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && /*#__PURE__*/_react.default.createElement(_DatasourceAppearanceButton.DatasourceAppearanceButton, {
|
|
182
180
|
intl: intl,
|
|
183
181
|
url: url,
|
|
@@ -22,6 +22,7 @@ var _messages = _interopRequireWildcard(require("@atlaskit/editor-common/message
|
|
|
22
22
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
23
23
|
var _model = require("@atlaskit/editor-prosemirror/model");
|
|
24
24
|
var _localStorage = require("../common/local-storage");
|
|
25
|
+
var _doc = require("../pm-plugins/doc");
|
|
25
26
|
var _toolbar = require("../toolbar");
|
|
26
27
|
var _utils2 = require("../utils");
|
|
27
28
|
var _Pulse = require("./Pulse");
|
|
@@ -43,7 +44,7 @@ var LinkToolbarAppearance = exports.LinkToolbarAppearance = /*#__PURE__*/functio
|
|
|
43
44
|
}
|
|
44
45
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
45
46
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderDropdown", function (view, cardContext) {
|
|
46
|
-
var
|
|
47
|
+
var _setSelectedCardAppea, _setSelectedCardAppea2, _changeSelectedCardTo, _setSelectedCardAppea3, _cardContext$store2;
|
|
47
48
|
var _this$props = _this.props,
|
|
48
49
|
url = _this$props.url,
|
|
49
50
|
intl = _this$props.intl,
|
|
@@ -54,7 +55,6 @@ var LinkToolbarAppearance = exports.LinkToolbarAppearance = /*#__PURE__*/functio
|
|
|
54
55
|
allowBlockCards = _this$props$allowBloc === void 0 ? true : _this$props$allowBloc,
|
|
55
56
|
platform = _this$props.platform,
|
|
56
57
|
editorAnalyticsApi = _this$props.editorAnalyticsApi,
|
|
57
|
-
cardActions = _this$props.cardActions,
|
|
58
58
|
_this$props$showUpgra = _this$props.showUpgradeDiscoverability,
|
|
59
59
|
showUpgradeDiscoverability = _this$props$showUpgra === void 0 ? true : _this$props$showUpgra,
|
|
60
60
|
isDatasourceView = _this$props.isDatasourceView;
|
|
@@ -74,7 +74,7 @@ var LinkToolbarAppearance = exports.LinkToolbarAppearance = /*#__PURE__*/functio
|
|
|
74
74
|
var embedOption = allowEmbeds && preview && {
|
|
75
75
|
appearance: 'embed',
|
|
76
76
|
title: intl.formatMessage(_messages.cardMessages.embed),
|
|
77
|
-
onClick: (
|
|
77
|
+
onClick: (_setSelectedCardAppea = (0, _doc.setSelectedCardAppearance)('embed', editorAnalyticsApi)) !== null && _setSelectedCardAppea !== void 0 ? _setSelectedCardAppea : defaultCommand,
|
|
78
78
|
selected: currentAppearance === 'embed',
|
|
79
79
|
hidden: false,
|
|
80
80
|
testId: 'embed-appearance',
|
|
@@ -84,7 +84,7 @@ var LinkToolbarAppearance = exports.LinkToolbarAppearance = /*#__PURE__*/functio
|
|
|
84
84
|
var blockCardOption = allowBlockCards && {
|
|
85
85
|
appearance: 'block',
|
|
86
86
|
title: intl.formatMessage(_messages.cardMessages.block),
|
|
87
|
-
onClick: (
|
|
87
|
+
onClick: (_setSelectedCardAppea2 = (0, _doc.setSelectedCardAppearance)('block', editorAnalyticsApi)) !== null && _setSelectedCardAppea2 !== void 0 ? _setSelectedCardAppea2 : defaultCommand,
|
|
88
88
|
selected: currentAppearance === 'block' && !isDatasourceView,
|
|
89
89
|
testId: 'block-appearance',
|
|
90
90
|
disabled: !isBlockCardLinkSupportedInParent,
|
|
@@ -92,7 +92,7 @@ var LinkToolbarAppearance = exports.LinkToolbarAppearance = /*#__PURE__*/functio
|
|
|
92
92
|
};
|
|
93
93
|
var options = [{
|
|
94
94
|
title: intl.formatMessage(_messages.cardMessages.url),
|
|
95
|
-
onClick: (0, _card.commandWithMetadata)((
|
|
95
|
+
onClick: (0, _card.commandWithMetadata)((_changeSelectedCardTo = (0, _doc.changeSelectedCardToLink)(url, url, true, undefined, undefined, editorAnalyticsApi)) !== null && _changeSelectedCardTo !== void 0 ? _changeSelectedCardTo : defaultCommand, {
|
|
96
96
|
action: _analytics.ACTION.CHANGED_TYPE
|
|
97
97
|
}),
|
|
98
98
|
selected: !currentAppearance && !isDatasourceView,
|
|
@@ -100,7 +100,7 @@ var LinkToolbarAppearance = exports.LinkToolbarAppearance = /*#__PURE__*/functio
|
|
|
100
100
|
}, {
|
|
101
101
|
appearance: 'inline',
|
|
102
102
|
title: intl.formatMessage(_messages.cardMessages.inline),
|
|
103
|
-
onClick: (
|
|
103
|
+
onClick: (_setSelectedCardAppea3 = (0, _doc.setSelectedCardAppearance)('inline', editorAnalyticsApi)) !== null && _setSelectedCardAppea3 !== void 0 ? _setSelectedCardAppea3 : defaultCommand,
|
|
104
104
|
selected: currentAppearance === 'inline',
|
|
105
105
|
testId: 'inline-appearance'
|
|
106
106
|
}];
|
package/dist/cjs/utils.js
CHANGED
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.titleUrlPairFromNode = exports.selectedCardAppearance = exports.mergeCardInfo = exports.isEmbedSupportedAtPosition = exports.
|
|
7
|
+
exports.titleUrlPairFromNode = exports.selectedCardAppearance = exports.mergeCardInfo = exports.isEmbedSupportedAtPosition = exports.isDatasourceNode = exports.isDatasourceConfigEditable = exports.isDatasourceAdfAttributes = exports.isBlockSupportedAtPosition = exports.getResolvedAttributesFromStore = exports.findCardInfo = exports.displayInfoForCard = exports.appearanceForNodeType = void 0;
|
|
8
8
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
9
|
var _model = require("@atlaskit/editor-prosemirror/model");
|
|
10
10
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
@@ -87,9 +87,6 @@ var isDatasourceConfigEditable = exports.isDatasourceConfigEditable = function i
|
|
|
87
87
|
}
|
|
88
88
|
return datasourcesWithConfigModal.includes(datasourceId);
|
|
89
89
|
};
|
|
90
|
-
var isEditDropdownEnabled = exports.isEditDropdownEnabled = function isEditDropdownEnabled(platform) {
|
|
91
|
-
return (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && platform !== 'mobile';
|
|
92
|
-
};
|
|
93
90
|
|
|
94
91
|
/**
|
|
95
92
|
* Typeguard that checks node attributes are datasource node attributes
|
package/dist/es2019/plugin.js
CHANGED
|
@@ -7,10 +7,9 @@ import { ASSETS_LIST_OF_LINKS_DATASOURCE_ID, CONFLUENCE_SEARCH_DATASOURCE_ID } f
|
|
|
7
7
|
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
8
8
|
import { createEventsQueue } from './analytics/create-events-queue';
|
|
9
9
|
import { hideLinkToolbar, showDatasourceModal } from './pm-plugins/actions';
|
|
10
|
-
import {
|
|
10
|
+
import { getEndingToolbarItems, getStartingToolbarItems, queueCardsFromChangedTr } from './pm-plugins/doc';
|
|
11
11
|
import { cardKeymap } from './pm-plugins/keymap';
|
|
12
12
|
import { createPlugin } from './pm-plugins/main';
|
|
13
|
-
import { mountHyperlinkPlugin } from './pm-plugins/mountHyperlink';
|
|
14
13
|
import { pluginKey } from './pm-plugins/plugin-key';
|
|
15
14
|
import { floatingToolbar } from './toolbar';
|
|
16
15
|
import DatasourceModalWithState from './ui/DatasourceModal/ModalWithState';
|
|
@@ -18,10 +17,6 @@ import { EditorLinkingPlatformAnalytics } from './ui/EditorLinkingPlatformAnalyt
|
|
|
18
17
|
import { EditorSmartCardEvents } from './ui/EditorSmartCardEvents';
|
|
19
18
|
import LayoutButton from './ui/LayoutButton';
|
|
20
19
|
import { isDatasourceConfigEditable } from './utils';
|
|
21
|
-
/**
|
|
22
|
-
* Card plugin to be added to an `EditorPresetBuilder` and used with `ComposableEditor`
|
|
23
|
-
* from `@atlaskit/editor-core`.
|
|
24
|
-
*/
|
|
25
20
|
export const cardPlugin = ({
|
|
26
21
|
config: options,
|
|
27
22
|
api
|
|
@@ -74,9 +69,6 @@ export const cardPlugin = ({
|
|
|
74
69
|
cardPluginEvents,
|
|
75
70
|
showUpgradeDiscoverability
|
|
76
71
|
}, api)
|
|
77
|
-
}, {
|
|
78
|
-
name: 'cardHyperlink',
|
|
79
|
-
plugin: () => mountHyperlinkPlugin(api, options)
|
|
80
72
|
}];
|
|
81
73
|
plugins.push({
|
|
82
74
|
name: 'cardKeymap',
|
|
@@ -114,8 +106,8 @@ export const cardPlugin = ({
|
|
|
114
106
|
actions: {
|
|
115
107
|
hideLinkToolbar,
|
|
116
108
|
queueCardsFromChangedTr,
|
|
117
|
-
|
|
118
|
-
|
|
109
|
+
getStartingToolbarItems: getStartingToolbarItems(options, api),
|
|
110
|
+
getEndingToolbarItems: getEndingToolbarItems(options, api)
|
|
119
111
|
},
|
|
120
112
|
pluginsOptions: {
|
|
121
113
|
floatingToolbar: floatingToolbar(options, (_options$lpLinkPicker = options.lpLinkPicker) !== null && _options$lpLinkPicker !== void 0 ? _options$lpLinkPicker : false, options.platform, options.linkPicker, api, options.disableFloatingToolbar),
|
|
@@ -1,15 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import isEqual from 'lodash/isEqual';
|
|
2
3
|
import { isSafeUrl } from '@atlaskit/adf-schema';
|
|
3
4
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD, SMART_LINK_TYPE, unlinkPayload } from '@atlaskit/editor-common/analytics';
|
|
4
5
|
import { addLinkMetadata } from '@atlaskit/editor-common/card';
|
|
6
|
+
import { linkToolbarMessages } from '@atlaskit/editor-common/messages';
|
|
5
7
|
import { getDatasourceType, getLinkCreationAnalyticsEvent, isFromCurrentDomain, nodesBetweenChanged, processRawValue } from '@atlaskit/editor-common/utils';
|
|
6
8
|
import { closeHistory } from '@atlaskit/editor-prosemirror/history';
|
|
7
9
|
import { NodeSelection, TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
8
10
|
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
11
|
+
import { getHyperlinkToolbarSettingsButton } from '../toolbar';
|
|
12
|
+
import { EditToolbarButton } from '../ui/EditToolbarButton';
|
|
13
|
+
import { HyperlinkToolbarAppearance } from '../ui/HyperlinkToolbarAppearance';
|
|
14
|
+
import { ToolbarViewedEvent } from '../ui/ToolbarViewedEvent';
|
|
9
15
|
import { appearanceForNodeType, isDatasourceConfigEditable, isDatasourceNode, selectedCardAppearance } from '../utils';
|
|
10
16
|
import { hideDatasourceModal, queueCards, removeDatasourceStash, resolveCard, setDatasourceStash, showDatasourceModal } from './actions';
|
|
11
17
|
import { pluginKey } from './plugin-key';
|
|
12
18
|
import { shouldReplaceLink } from './shouldReplaceLink';
|
|
19
|
+
|
|
13
20
|
/**
|
|
14
21
|
* Attempt to replace the link into the respective card.
|
|
15
22
|
*/
|
|
@@ -555,7 +562,7 @@ const updateDatasourceStash = (tr, selectedNode) => {
|
|
|
555
562
|
}
|
|
556
563
|
}
|
|
557
564
|
};
|
|
558
|
-
export const editDatasource = (datasourceId,
|
|
565
|
+
export const editDatasource = (datasourceId, editorAnalyticsApi) => (state, dispatch) => {
|
|
559
566
|
const datasourceType = getDatasourceType(datasourceId);
|
|
560
567
|
if (dispatch && datasourceType) {
|
|
561
568
|
const {
|
|
@@ -574,4 +581,80 @@ export const editDatasource = (datasourceId, _editorAnalyticsApi) => (state, dis
|
|
|
574
581
|
return true;
|
|
575
582
|
}
|
|
576
583
|
return false;
|
|
584
|
+
};
|
|
585
|
+
export const getStartingToolbarItems = (options, api) => {
|
|
586
|
+
return (intl, link, providerFactory, onEditLink, metadata) => {
|
|
587
|
+
const isEditDropdownEnabled = getBooleanFF('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && options.platform !== 'mobile' && options.allowDatasource;
|
|
588
|
+
const editLinkItem = isEditDropdownEnabled ? [{
|
|
589
|
+
type: 'custom',
|
|
590
|
+
fallback: [],
|
|
591
|
+
render: editorView => {
|
|
592
|
+
var _api$analytics;
|
|
593
|
+
if (!editorView) {
|
|
594
|
+
return null;
|
|
595
|
+
}
|
|
596
|
+
return /*#__PURE__*/React.createElement(EditToolbarButton, {
|
|
597
|
+
key: "edit-toolbar-button",
|
|
598
|
+
intl: intl,
|
|
599
|
+
editorAnalyticsApi: api === null || api === void 0 ? void 0 : (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions,
|
|
600
|
+
url: link,
|
|
601
|
+
editorView: editorView,
|
|
602
|
+
onLinkEditClick: onEditLink
|
|
603
|
+
});
|
|
604
|
+
}
|
|
605
|
+
}] : [{
|
|
606
|
+
id: 'editor.link.edit',
|
|
607
|
+
testId: 'editor.link.edit',
|
|
608
|
+
type: 'button',
|
|
609
|
+
onClick: onEditLink,
|
|
610
|
+
title: intl.formatMessage(linkToolbarMessages.editLink),
|
|
611
|
+
showTitle: true,
|
|
612
|
+
metadata: metadata
|
|
613
|
+
}];
|
|
614
|
+
return [{
|
|
615
|
+
type: 'custom',
|
|
616
|
+
fallback: [],
|
|
617
|
+
render: editorView => /*#__PURE__*/React.createElement(ToolbarViewedEvent, {
|
|
618
|
+
key: "edit.link.menu.viewed",
|
|
619
|
+
url: link,
|
|
620
|
+
display: "url",
|
|
621
|
+
editorView: editorView
|
|
622
|
+
})
|
|
623
|
+
}, {
|
|
624
|
+
type: 'custom',
|
|
625
|
+
fallback: [],
|
|
626
|
+
render: editorView => {
|
|
627
|
+
var _api$analytics2;
|
|
628
|
+
if (!editorView) {
|
|
629
|
+
return null;
|
|
630
|
+
}
|
|
631
|
+
return /*#__PURE__*/React.createElement(HyperlinkToolbarAppearance, {
|
|
632
|
+
key: "link-appearance",
|
|
633
|
+
url: link,
|
|
634
|
+
intl: intl,
|
|
635
|
+
editorView: editorView,
|
|
636
|
+
editorState: editorView.state,
|
|
637
|
+
cardOptions: options,
|
|
638
|
+
providerFactory: providerFactory,
|
|
639
|
+
platform: options === null || options === void 0 ? void 0 : options.platform,
|
|
640
|
+
editorAnalyticsApi: api === null || api === void 0 ? void 0 : (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
}, ...editLinkItem];
|
|
644
|
+
};
|
|
645
|
+
};
|
|
646
|
+
export const getEndingToolbarItems = (options, api) => (intl, link) => {
|
|
647
|
+
if (getBooleanFF('platform.editor.card.inject-settings-button')) {
|
|
648
|
+
/**
|
|
649
|
+
* Require either provider to be supplied (controls link preferences)
|
|
650
|
+
* Or explicit user preferences config in order to enable button
|
|
651
|
+
*/
|
|
652
|
+
if (options.provider || options.userPreferencesLink) {
|
|
653
|
+
var _api$analytics3;
|
|
654
|
+
return [{
|
|
655
|
+
type: 'separator'
|
|
656
|
+
}, getHyperlinkToolbarSettingsButton(intl, api === null || api === void 0 ? void 0 : (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions, options.userPreferencesLink)];
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
return [];
|
|
577
660
|
};
|