@atlaskit/editor-plugin-card 2.13.4 → 2.14.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/nodeviews/datasource.js +6 -0
- package/dist/cjs/plugin.js +38 -2
- package/dist/cjs/pm-plugins/main.js +4 -2
- package/dist/cjs/toolbar.js +2 -1
- package/dist/cjs/ui/HyperlinkToolbarAppearance.js +211 -68
- package/dist/es2019/nodeviews/datasource.js +6 -0
- package/dist/es2019/plugin.js +14 -1
- package/dist/es2019/pm-plugins/main.js +4 -2
- package/dist/es2019/toolbar.js +2 -1
- package/dist/es2019/ui/HyperlinkToolbarAppearance.js +94 -13
- package/dist/esm/nodeviews/datasource.js +6 -0
- package/dist/esm/plugin.js +39 -3
- package/dist/esm/pm-plugins/main.js +4 -2
- package/dist/esm/toolbar.js +2 -1
- package/dist/esm/ui/HyperlinkToolbarAppearance.js +214 -71
- package/dist/types/ui/HyperlinkToolbarAppearance.d.ts +6 -11
- package/dist/types-ts4.5/ui/HyperlinkToolbarAppearance.d.ts +6 -11
- package/package.json +3 -3
|
@@ -1,25 +1,100 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
import React, { Component } from 'react';
|
|
2
|
+
import React, { Component, useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
4
4
|
import { FloatingToolbarSeparator as Separator } from '@atlaskit/editor-common/ui';
|
|
5
|
-
import { fg
|
|
5
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
6
6
|
import { Flex } from '@atlaskit/primitives';
|
|
7
7
|
import { DatasourceAppearanceButton } from './DatasourceAppearanceButton';
|
|
8
8
|
import { EditDatasourceButton } from './EditDatasourceButton';
|
|
9
9
|
import { LinkToolbarAppearance } from './LinkToolbarAppearance';
|
|
10
|
+
function HyperlinkToolbarAppearanceFunctional(props) {
|
|
11
|
+
var _props$cardOptions3;
|
|
12
|
+
const [supportedUrlsMap, setSupportedUrlsMap] = useState(new Map());
|
|
13
|
+
const cardProvider = useRef(undefined);
|
|
14
|
+
const {
|
|
15
|
+
url,
|
|
16
|
+
intl,
|
|
17
|
+
editorView,
|
|
18
|
+
editorState,
|
|
19
|
+
cardOptions,
|
|
20
|
+
platform,
|
|
21
|
+
editorAnalyticsApi
|
|
22
|
+
} = props;
|
|
23
|
+
const getProvider = async () => {
|
|
24
|
+
var _props$cardOptions;
|
|
25
|
+
if ((_props$cardOptions = props.cardOptions) !== null && _props$cardOptions !== void 0 && _props$cardOptions.provider) {
|
|
26
|
+
var _props$cardOptions2;
|
|
27
|
+
return (_props$cardOptions2 = props.cardOptions) === null || _props$cardOptions2 === void 0 ? void 0 : _props$cardOptions2.provider;
|
|
28
|
+
}
|
|
29
|
+
if (cardProvider.current) {
|
|
30
|
+
return cardProvider.current;
|
|
31
|
+
}
|
|
32
|
+
return new Promise(resolve => {
|
|
33
|
+
var _props$editorPluginAp, _props$editorPluginAp2, _props$editorPluginAp3, _props$editorPluginAp4;
|
|
34
|
+
const cardProvider = (_props$editorPluginAp = props.editorPluginApi) === null || _props$editorPluginAp === void 0 ? void 0 : (_props$editorPluginAp2 = _props$editorPluginAp.card) === null || _props$editorPluginAp2 === void 0 ? void 0 : (_props$editorPluginAp3 = _props$editorPluginAp2.sharedState) === null || _props$editorPluginAp3 === void 0 ? void 0 : (_props$editorPluginAp4 = _props$editorPluginAp3.currentState()) === null || _props$editorPluginAp4 === void 0 ? void 0 : _props$editorPluginAp4.provider;
|
|
35
|
+
if (cardProvider) {
|
|
36
|
+
resolve(cardProvider);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
const resolveUrl = async url => {
|
|
41
|
+
if (supportedUrlsMap.has(url)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
let isUrlSupported = false;
|
|
45
|
+
try {
|
|
46
|
+
var _await$provider$findP;
|
|
47
|
+
const provider = await getProvider();
|
|
48
|
+
isUrlSupported = (_await$provider$findP = await (provider === null || provider === void 0 ? void 0 : provider.findPattern(url))) !== null && _await$provider$findP !== void 0 ? _await$provider$findP : false;
|
|
49
|
+
} catch (error) {
|
|
50
|
+
isUrlSupported = false;
|
|
51
|
+
}
|
|
52
|
+
const newMap = new Map(supportedUrlsMap);
|
|
53
|
+
newMap.set(url, isUrlSupported);
|
|
54
|
+
setSupportedUrlsMap(newMap);
|
|
55
|
+
};
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
resolveUrl(url);
|
|
58
|
+
// before migrating from a class to a functional component, we were only reacting to changes in the url
|
|
59
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
60
|
+
}, [url, (_props$cardOptions3 = props.cardOptions) === null || _props$cardOptions3 === void 0 ? void 0 : _props$cardOptions3.provider, props.editorPluginApi]);
|
|
61
|
+
if (!supportedUrlsMap.get(url)) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
return /*#__PURE__*/React.createElement(Flex, null, !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/React.createElement(EditDatasourceButton, {
|
|
65
|
+
url: url,
|
|
66
|
+
intl: intl,
|
|
67
|
+
editorView: editorView,
|
|
68
|
+
editorAnalyticsApi: editorAnalyticsApi,
|
|
69
|
+
currentAppearance: "url"
|
|
70
|
+
}), /*#__PURE__*/React.createElement(LinkToolbarAppearance, {
|
|
71
|
+
key: "link-appearance",
|
|
72
|
+
url: url,
|
|
73
|
+
intl: intl,
|
|
74
|
+
editorView: editorView,
|
|
75
|
+
editorState: editorState,
|
|
76
|
+
allowEmbeds: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowEmbeds,
|
|
77
|
+
allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
|
|
78
|
+
platform: platform,
|
|
79
|
+
editorAnalyticsApi: editorAnalyticsApi
|
|
80
|
+
}), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && fg('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/React.createElement(DatasourceAppearanceButton, {
|
|
81
|
+
intl: intl,
|
|
82
|
+
url: url,
|
|
83
|
+
editorState: editorState,
|
|
84
|
+
editorView: editorView,
|
|
85
|
+
editorAnalyticsApi: editorAnalyticsApi,
|
|
86
|
+
inputMethod: INPUT_METHOD.FLOATING_TB
|
|
87
|
+
}), /*#__PURE__*/React.createElement(Separator, null));
|
|
88
|
+
}
|
|
89
|
+
|
|
10
90
|
// eslint-disable-next-line @repo/internal/react/no-class-components
|
|
11
|
-
|
|
91
|
+
class HyperlinkToolbarAppearanceClass extends Component {
|
|
12
92
|
constructor(...args) {
|
|
13
93
|
super(...args);
|
|
14
94
|
_defineProperty(this, "state", {
|
|
15
95
|
supportedUrlsMap: new Map()
|
|
16
96
|
});
|
|
17
97
|
_defineProperty(this, "getProvider", async () => {
|
|
18
|
-
var _this$props$cardOptio;
|
|
19
|
-
if ((_this$props$cardOptio = this.props.cardOptions) !== null && _this$props$cardOptio !== void 0 && _this$props$cardOptio.provider && fg('platform_editor_get_card_provider_from_config')) {
|
|
20
|
-
var _this$props$cardOptio2;
|
|
21
|
-
return (_this$props$cardOptio2 = this.props.cardOptions) === null || _this$props$cardOptio2 === void 0 ? void 0 : _this$props$cardOptio2.provider;
|
|
22
|
-
}
|
|
23
98
|
if (this.cardProvider) {
|
|
24
99
|
return this.cardProvider;
|
|
25
100
|
}
|
|
@@ -45,9 +120,9 @@ export class HyperlinkToolbarAppearance extends Component {
|
|
|
45
120
|
}
|
|
46
121
|
let isUrlSupported = false;
|
|
47
122
|
try {
|
|
48
|
-
var _await$provider$
|
|
123
|
+
var _await$provider$findP2;
|
|
49
124
|
const provider = await this.getProvider();
|
|
50
|
-
isUrlSupported = (_await$provider$
|
|
125
|
+
isUrlSupported = (_await$provider$findP2 = await (provider === null || provider === void 0 ? void 0 : provider.findPattern(url))) !== null && _await$provider$findP2 !== void 0 ? _await$provider$findP2 : false;
|
|
51
126
|
} catch (error) {
|
|
52
127
|
isUrlSupported = false;
|
|
53
128
|
}
|
|
@@ -82,7 +157,7 @@ export class HyperlinkToolbarAppearance extends Component {
|
|
|
82
157
|
if (!supportedUrlsMap.get(url)) {
|
|
83
158
|
return null;
|
|
84
159
|
}
|
|
85
|
-
return /*#__PURE__*/React.createElement(Flex, null, !
|
|
160
|
+
return /*#__PURE__*/React.createElement(Flex, null, !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/React.createElement(EditDatasourceButton, {
|
|
86
161
|
url: url,
|
|
87
162
|
intl: intl,
|
|
88
163
|
editorView: editorView,
|
|
@@ -98,7 +173,7 @@ export class HyperlinkToolbarAppearance extends Component {
|
|
|
98
173
|
allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
|
|
99
174
|
platform: platform,
|
|
100
175
|
editorAnalyticsApi: editorAnalyticsApi
|
|
101
|
-
}),
|
|
176
|
+
}), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && fg('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/React.createElement(DatasourceAppearanceButton, {
|
|
102
177
|
intl: intl,
|
|
103
178
|
url: url,
|
|
104
179
|
editorState: editorState,
|
|
@@ -107,4 +182,10 @@ export class HyperlinkToolbarAppearance extends Component {
|
|
|
107
182
|
inputMethod: INPUT_METHOD.FLOATING_TB
|
|
108
183
|
}), /*#__PURE__*/React.createElement(Separator, null));
|
|
109
184
|
}
|
|
110
|
-
}
|
|
185
|
+
}
|
|
186
|
+
export const HyperlinkToolbarAppearance = props => {
|
|
187
|
+
if (fg('platform_editor_get_card_provider_from_config')) {
|
|
188
|
+
return /*#__PURE__*/React.createElement(HyperlinkToolbarAppearanceFunctional, props);
|
|
189
|
+
}
|
|
190
|
+
return /*#__PURE__*/React.createElement(HyperlinkToolbarAppearanceClass, props);
|
|
191
|
+
};
|
|
@@ -299,6 +299,12 @@ export var Datasource = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
299
299
|
value: function render() {
|
|
300
300
|
var _attrs$datasource;
|
|
301
301
|
var attrs = this.node.attrs;
|
|
302
|
+
if (fg('platform-datasources-enable-two-way-sync')) {
|
|
303
|
+
var _this$domRef;
|
|
304
|
+
// EDM-10607: Workaround to remove datasource table draggable attribute
|
|
305
|
+
// @ts-ignore TS2341: Property domRef is private
|
|
306
|
+
(_this$domRef = this.domRef) === null || _this$domRef === void 0 || _this$domRef.setAttribute('draggable', 'false');
|
|
307
|
+
}
|
|
302
308
|
return jsx(DatasourceErrorBoundary, {
|
|
303
309
|
unsupportedComponent: UnsupportedInline,
|
|
304
310
|
view: this.view,
|
package/dist/esm/plugin.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
1
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
4
|
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; }
|
|
3
5
|
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) { _defineProperty(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; }
|
|
4
6
|
import React from 'react';
|
|
@@ -8,7 +10,7 @@ import { IconDatasourceAssetsObjects, IconDatasourceConfluenceSearch, IconDataso
|
|
|
8
10
|
import { canRenderDatasource } from '@atlaskit/editor-common/utils';
|
|
9
11
|
import { ASSETS_LIST_OF_LINKS_DATASOURCE_ID, CONFLUENCE_SEARCH_DATASOURCE_ID } from '@atlaskit/link-datasource';
|
|
10
12
|
import { createEventsQueue } from './analytics/create-events-queue';
|
|
11
|
-
import { hideLinkToolbar, showDatasourceModal } from './pm-plugins/actions';
|
|
13
|
+
import { hideLinkToolbar, setProvider as _setProvider, showDatasourceModal } from './pm-plugins/actions';
|
|
12
14
|
import { queueCardsFromChangedTr } from './pm-plugins/doc';
|
|
13
15
|
import { cardKeymap } from './pm-plugins/keymap';
|
|
14
16
|
import { createPlugin } from './pm-plugins/main';
|
|
@@ -25,6 +27,7 @@ export var cardPlugin = function cardPlugin(_ref) {
|
|
|
25
27
|
var _options$lpLinkPicker;
|
|
26
28
|
var options = _ref.config,
|
|
27
29
|
api = _ref.api;
|
|
30
|
+
var previousCardProvider;
|
|
28
31
|
var cardPluginEvents = createEventsQueue();
|
|
29
32
|
return {
|
|
30
33
|
name: 'card',
|
|
@@ -104,6 +107,39 @@ export var cardPlugin = function cardPlugin(_ref) {
|
|
|
104
107
|
}));
|
|
105
108
|
},
|
|
106
109
|
actions: {
|
|
110
|
+
setProvider: function () {
|
|
111
|
+
var _setProvider2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(providerPromise) {
|
|
112
|
+
var _api$core$actions$exe;
|
|
113
|
+
var provider;
|
|
114
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
115
|
+
while (1) switch (_context.prev = _context.next) {
|
|
116
|
+
case 0:
|
|
117
|
+
_context.next = 2;
|
|
118
|
+
return providerPromise;
|
|
119
|
+
case 2:
|
|
120
|
+
provider = _context.sent;
|
|
121
|
+
if (!(previousCardProvider === provider)) {
|
|
122
|
+
_context.next = 5;
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
return _context.abrupt("return", false);
|
|
126
|
+
case 5:
|
|
127
|
+
previousCardProvider = provider;
|
|
128
|
+
return _context.abrupt("return", (_api$core$actions$exe = api === null || api === void 0 ? void 0 : api.core.actions.execute(function (_ref4) {
|
|
129
|
+
var tr = _ref4.tr;
|
|
130
|
+
return _setProvider(provider)(tr);
|
|
131
|
+
})) !== null && _api$core$actions$exe !== void 0 ? _api$core$actions$exe : false);
|
|
132
|
+
case 7:
|
|
133
|
+
case "end":
|
|
134
|
+
return _context.stop();
|
|
135
|
+
}
|
|
136
|
+
}, _callee);
|
|
137
|
+
}));
|
|
138
|
+
function setProvider(_x) {
|
|
139
|
+
return _setProvider2.apply(this, arguments);
|
|
140
|
+
}
|
|
141
|
+
return setProvider;
|
|
142
|
+
}(),
|
|
107
143
|
hideLinkToolbar: hideLinkToolbar,
|
|
108
144
|
queueCardsFromChangedTr: queueCardsFromChangedTr,
|
|
109
145
|
getStartingToolbarItems: getStartingToolbarItems(options, api),
|
|
@@ -111,8 +147,8 @@ export var cardPlugin = function cardPlugin(_ref) {
|
|
|
111
147
|
},
|
|
112
148
|
pluginsOptions: {
|
|
113
149
|
floatingToolbar: floatingToolbar(options, (_options$lpLinkPicker = options.lpLinkPicker) !== null && _options$lpLinkPicker !== void 0 ? _options$lpLinkPicker : false, options.platform, options.linkPicker, api, options.disableFloatingToolbar),
|
|
114
|
-
quickInsert: function quickInsert(
|
|
115
|
-
var formatMessage =
|
|
150
|
+
quickInsert: function quickInsert(_ref5) {
|
|
151
|
+
var formatMessage = _ref5.formatMessage;
|
|
116
152
|
var quickInsertArray = [];
|
|
117
153
|
if (!options.allowDatasource) {
|
|
118
154
|
return quickInsertArray;
|
|
@@ -154,8 +154,10 @@ export var createPlugin = function createPlugin(options, pluginInjectionApi) {
|
|
|
154
154
|
};
|
|
155
155
|
var domAtPos = _view.domAtPos.bind(_view);
|
|
156
156
|
var rafCancellationCallbacks = [];
|
|
157
|
-
if (
|
|
158
|
-
|
|
157
|
+
if (fg('platform_editor_get_card_provider_from_config')) {
|
|
158
|
+
if (options.provider) {
|
|
159
|
+
handleProvider('cardProvider', options.provider, _view);
|
|
160
|
+
}
|
|
159
161
|
} else {
|
|
160
162
|
pmPluginFactoryParams.providerFactory.subscribe('cardProvider', subscriptionHandler);
|
|
161
163
|
}
|
package/dist/esm/toolbar.js
CHANGED
|
@@ -579,7 +579,8 @@ export var getStartingToolbarItems = function getStartingToolbarItems(options, a
|
|
|
579
579
|
cardOptions: options,
|
|
580
580
|
providerFactory: providerFactory,
|
|
581
581
|
platform: options === null || options === void 0 ? void 0 : options.platform,
|
|
582
|
-
editorAnalyticsApi: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions
|
|
582
|
+
editorAnalyticsApi: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions,
|
|
583
|
+
editorPluginApi: api
|
|
583
584
|
});
|
|
584
585
|
}
|
|
585
586
|
}].concat(editLinkItem);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
1
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
2
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
3
|
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
@@ -6,24 +5,170 @@ import _inherits from "@babel/runtime/helpers/inherits";
|
|
|
6
5
|
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
7
6
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
8
7
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
|
-
import
|
|
8
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
9
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
10
10
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
11
11
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
12
|
-
import
|
|
12
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
13
|
+
import React, { Component, useEffect, useRef, useState } from 'react';
|
|
13
14
|
import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
14
15
|
import { FloatingToolbarSeparator as Separator } from '@atlaskit/editor-common/ui';
|
|
15
|
-
import { fg
|
|
16
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
16
17
|
import { Flex } from '@atlaskit/primitives';
|
|
17
18
|
import { DatasourceAppearanceButton } from './DatasourceAppearanceButton';
|
|
18
19
|
import { EditDatasourceButton } from './EditDatasourceButton';
|
|
19
20
|
import { LinkToolbarAppearance } from './LinkToolbarAppearance';
|
|
21
|
+
function HyperlinkToolbarAppearanceFunctional(props) {
|
|
22
|
+
var _props$cardOptions3;
|
|
23
|
+
var _useState = useState(new Map()),
|
|
24
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
25
|
+
supportedUrlsMap = _useState2[0],
|
|
26
|
+
setSupportedUrlsMap = _useState2[1];
|
|
27
|
+
var cardProvider = useRef(undefined);
|
|
28
|
+
var url = props.url,
|
|
29
|
+
intl = props.intl,
|
|
30
|
+
editorView = props.editorView,
|
|
31
|
+
editorState = props.editorState,
|
|
32
|
+
cardOptions = props.cardOptions,
|
|
33
|
+
platform = props.platform,
|
|
34
|
+
editorAnalyticsApi = props.editorAnalyticsApi;
|
|
35
|
+
var getProvider = /*#__PURE__*/function () {
|
|
36
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
37
|
+
var _props$cardOptions;
|
|
38
|
+
var _props$cardOptions2;
|
|
39
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
40
|
+
while (1) switch (_context.prev = _context.next) {
|
|
41
|
+
case 0:
|
|
42
|
+
if (!((_props$cardOptions = props.cardOptions) !== null && _props$cardOptions !== void 0 && _props$cardOptions.provider)) {
|
|
43
|
+
_context.next = 2;
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
return _context.abrupt("return", (_props$cardOptions2 = props.cardOptions) === null || _props$cardOptions2 === void 0 ? void 0 : _props$cardOptions2.provider);
|
|
47
|
+
case 2:
|
|
48
|
+
if (!cardProvider.current) {
|
|
49
|
+
_context.next = 4;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
return _context.abrupt("return", cardProvider.current);
|
|
53
|
+
case 4:
|
|
54
|
+
return _context.abrupt("return", new Promise(function (resolve) {
|
|
55
|
+
var _props$editorPluginAp;
|
|
56
|
+
var cardProvider = (_props$editorPluginAp = props.editorPluginApi) === null || _props$editorPluginAp === void 0 || (_props$editorPluginAp = _props$editorPluginAp.card) === null || _props$editorPluginAp === void 0 || (_props$editorPluginAp = _props$editorPluginAp.sharedState) === null || _props$editorPluginAp === void 0 || (_props$editorPluginAp = _props$editorPluginAp.currentState()) === null || _props$editorPluginAp === void 0 ? void 0 : _props$editorPluginAp.provider;
|
|
57
|
+
if (cardProvider) {
|
|
58
|
+
resolve(cardProvider);
|
|
59
|
+
}
|
|
60
|
+
}));
|
|
61
|
+
case 5:
|
|
62
|
+
case "end":
|
|
63
|
+
return _context.stop();
|
|
64
|
+
}
|
|
65
|
+
}, _callee);
|
|
66
|
+
}));
|
|
67
|
+
return function getProvider() {
|
|
68
|
+
return _ref.apply(this, arguments);
|
|
69
|
+
};
|
|
70
|
+
}();
|
|
71
|
+
var resolveUrl = /*#__PURE__*/function () {
|
|
72
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(url) {
|
|
73
|
+
var isUrlSupported, _yield$provider$findP, provider, newMap;
|
|
74
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
75
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
76
|
+
case 0:
|
|
77
|
+
if (!supportedUrlsMap.has(url)) {
|
|
78
|
+
_context2.next = 2;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
return _context2.abrupt("return");
|
|
82
|
+
case 2:
|
|
83
|
+
isUrlSupported = false;
|
|
84
|
+
_context2.prev = 3;
|
|
85
|
+
_context2.next = 6;
|
|
86
|
+
return getProvider();
|
|
87
|
+
case 6:
|
|
88
|
+
provider = _context2.sent;
|
|
89
|
+
_context2.next = 9;
|
|
90
|
+
return provider === null || provider === void 0 ? void 0 : provider.findPattern(url);
|
|
91
|
+
case 9:
|
|
92
|
+
_context2.t1 = _yield$provider$findP = _context2.sent;
|
|
93
|
+
_context2.t0 = _context2.t1 !== null;
|
|
94
|
+
if (!_context2.t0) {
|
|
95
|
+
_context2.next = 13;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
_context2.t0 = _yield$provider$findP !== void 0;
|
|
99
|
+
case 13:
|
|
100
|
+
if (!_context2.t0) {
|
|
101
|
+
_context2.next = 17;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
_context2.t2 = _yield$provider$findP;
|
|
105
|
+
_context2.next = 18;
|
|
106
|
+
break;
|
|
107
|
+
case 17:
|
|
108
|
+
_context2.t2 = false;
|
|
109
|
+
case 18:
|
|
110
|
+
isUrlSupported = _context2.t2;
|
|
111
|
+
_context2.next = 24;
|
|
112
|
+
break;
|
|
113
|
+
case 21:
|
|
114
|
+
_context2.prev = 21;
|
|
115
|
+
_context2.t3 = _context2["catch"](3);
|
|
116
|
+
isUrlSupported = false;
|
|
117
|
+
case 24:
|
|
118
|
+
newMap = new Map(supportedUrlsMap);
|
|
119
|
+
newMap.set(url, isUrlSupported);
|
|
120
|
+
setSupportedUrlsMap(newMap);
|
|
121
|
+
case 27:
|
|
122
|
+
case "end":
|
|
123
|
+
return _context2.stop();
|
|
124
|
+
}
|
|
125
|
+
}, _callee2, null, [[3, 21]]);
|
|
126
|
+
}));
|
|
127
|
+
return function resolveUrl(_x) {
|
|
128
|
+
return _ref2.apply(this, arguments);
|
|
129
|
+
};
|
|
130
|
+
}();
|
|
131
|
+
useEffect(function () {
|
|
132
|
+
resolveUrl(url);
|
|
133
|
+
// before migrating from a class to a functional component, we were only reacting to changes in the url
|
|
134
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
135
|
+
}, [url, (_props$cardOptions3 = props.cardOptions) === null || _props$cardOptions3 === void 0 ? void 0 : _props$cardOptions3.provider, props.editorPluginApi]);
|
|
136
|
+
if (!supportedUrlsMap.get(url)) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
return /*#__PURE__*/React.createElement(Flex, null, !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/React.createElement(EditDatasourceButton, {
|
|
140
|
+
url: url,
|
|
141
|
+
intl: intl,
|
|
142
|
+
editorView: editorView,
|
|
143
|
+
editorAnalyticsApi: editorAnalyticsApi,
|
|
144
|
+
currentAppearance: "url"
|
|
145
|
+
}), /*#__PURE__*/React.createElement(LinkToolbarAppearance, {
|
|
146
|
+
key: "link-appearance",
|
|
147
|
+
url: url,
|
|
148
|
+
intl: intl,
|
|
149
|
+
editorView: editorView,
|
|
150
|
+
editorState: editorState,
|
|
151
|
+
allowEmbeds: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowEmbeds,
|
|
152
|
+
allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
|
|
153
|
+
platform: platform,
|
|
154
|
+
editorAnalyticsApi: editorAnalyticsApi
|
|
155
|
+
}), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && fg('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/React.createElement(DatasourceAppearanceButton, {
|
|
156
|
+
intl: intl,
|
|
157
|
+
url: url,
|
|
158
|
+
editorState: editorState,
|
|
159
|
+
editorView: editorView,
|
|
160
|
+
editorAnalyticsApi: editorAnalyticsApi,
|
|
161
|
+
inputMethod: INPUT_METHOD.FLOATING_TB
|
|
162
|
+
}), /*#__PURE__*/React.createElement(Separator, null));
|
|
163
|
+
}
|
|
164
|
+
|
|
20
165
|
// eslint-disable-next-line @repo/internal/react/no-class-components
|
|
21
|
-
|
|
22
|
-
_inherits(
|
|
23
|
-
var _super = _createSuper(
|
|
24
|
-
function
|
|
166
|
+
var HyperlinkToolbarAppearanceClass = /*#__PURE__*/function (_Component) {
|
|
167
|
+
_inherits(HyperlinkToolbarAppearanceClass, _Component);
|
|
168
|
+
var _super = _createSuper(HyperlinkToolbarAppearanceClass);
|
|
169
|
+
function HyperlinkToolbarAppearanceClass() {
|
|
25
170
|
var _this;
|
|
26
|
-
_classCallCheck(this,
|
|
171
|
+
_classCallCheck(this, HyperlinkToolbarAppearanceClass);
|
|
27
172
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
28
173
|
args[_key] = arguments[_key];
|
|
29
174
|
}
|
|
@@ -31,105 +176,97 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
|
|
|
31
176
|
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
32
177
|
supportedUrlsMap: new Map()
|
|
33
178
|
});
|
|
34
|
-
_defineProperty(_assertThisInitialized(_this), "getProvider", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
38
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
179
|
+
_defineProperty(_assertThisInitialized(_this), "getProvider", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
180
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
181
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
39
182
|
case 0:
|
|
40
|
-
if (!((_this$props$cardOptio = _this.props.cardOptions) !== null && _this$props$cardOptio !== void 0 && _this$props$cardOptio.provider && fg('platform_editor_get_card_provider_from_config'))) {
|
|
41
|
-
_context2.next = 2;
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
return _context2.abrupt("return", (_this$props$cardOptio2 = _this.props.cardOptions) === null || _this$props$cardOptio2 === void 0 ? void 0 : _this$props$cardOptio2.provider);
|
|
45
|
-
case 2:
|
|
46
183
|
if (!_this.cardProvider) {
|
|
47
|
-
|
|
184
|
+
_context4.next = 2;
|
|
48
185
|
break;
|
|
49
186
|
}
|
|
50
|
-
return
|
|
51
|
-
case
|
|
52
|
-
return
|
|
187
|
+
return _context4.abrupt("return", _this.cardProvider);
|
|
188
|
+
case 2:
|
|
189
|
+
return _context4.abrupt("return", new Promise(function (resolve) {
|
|
53
190
|
var providerFactory = _this.props.providerFactory;
|
|
54
191
|
providerFactory.subscribe('cardProvider', /*#__PURE__*/function () {
|
|
55
|
-
var
|
|
56
|
-
return _regeneratorRuntime.wrap(function
|
|
57
|
-
while (1) switch (
|
|
192
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_, cardProvider) {
|
|
193
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
194
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
58
195
|
case 0:
|
|
59
196
|
if (cardProvider) {
|
|
60
|
-
|
|
197
|
+
_context3.next = 2;
|
|
61
198
|
break;
|
|
62
199
|
}
|
|
63
|
-
return
|
|
200
|
+
return _context3.abrupt("return");
|
|
64
201
|
case 2:
|
|
65
|
-
|
|
202
|
+
_context3.next = 4;
|
|
66
203
|
return cardProvider;
|
|
67
204
|
case 4:
|
|
68
|
-
_this.cardProvider =
|
|
205
|
+
_this.cardProvider = _context3.sent;
|
|
69
206
|
resolve(_this.cardProvider);
|
|
70
207
|
case 6:
|
|
71
208
|
case "end":
|
|
72
|
-
return
|
|
209
|
+
return _context3.stop();
|
|
73
210
|
}
|
|
74
|
-
},
|
|
211
|
+
}, _callee3);
|
|
75
212
|
}));
|
|
76
|
-
return function (
|
|
77
|
-
return
|
|
213
|
+
return function (_x2, _x3) {
|
|
214
|
+
return _ref4.apply(this, arguments);
|
|
78
215
|
};
|
|
79
216
|
}());
|
|
80
217
|
}));
|
|
81
|
-
case
|
|
218
|
+
case 3:
|
|
82
219
|
case "end":
|
|
83
|
-
return
|
|
220
|
+
return _context4.stop();
|
|
84
221
|
}
|
|
85
|
-
},
|
|
222
|
+
}, _callee4);
|
|
86
223
|
})));
|
|
87
224
|
_defineProperty(_assertThisInitialized(_this), "resolveUrl", /*#__PURE__*/function () {
|
|
88
|
-
var
|
|
89
|
-
var supportedUrlsMap, isUrlSupported, _yield$provider$
|
|
90
|
-
return _regeneratorRuntime.wrap(function
|
|
91
|
-
while (1) switch (
|
|
225
|
+
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(url) {
|
|
226
|
+
var supportedUrlsMap, isUrlSupported, _yield$provider$findP2, provider, newMap;
|
|
227
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
228
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
92
229
|
case 0:
|
|
93
230
|
supportedUrlsMap = _this.state.supportedUrlsMap;
|
|
94
231
|
if (!supportedUrlsMap.has(url)) {
|
|
95
|
-
|
|
232
|
+
_context5.next = 3;
|
|
96
233
|
break;
|
|
97
234
|
}
|
|
98
|
-
return
|
|
235
|
+
return _context5.abrupt("return");
|
|
99
236
|
case 3:
|
|
100
237
|
isUrlSupported = false;
|
|
101
|
-
|
|
102
|
-
|
|
238
|
+
_context5.prev = 4;
|
|
239
|
+
_context5.next = 7;
|
|
103
240
|
return _this.getProvider();
|
|
104
241
|
case 7:
|
|
105
|
-
provider =
|
|
106
|
-
|
|
242
|
+
provider = _context5.sent;
|
|
243
|
+
_context5.next = 10;
|
|
107
244
|
return provider === null || provider === void 0 ? void 0 : provider.findPattern(url);
|
|
108
245
|
case 10:
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (!
|
|
112
|
-
|
|
246
|
+
_context5.t1 = _yield$provider$findP2 = _context5.sent;
|
|
247
|
+
_context5.t0 = _context5.t1 !== null;
|
|
248
|
+
if (!_context5.t0) {
|
|
249
|
+
_context5.next = 14;
|
|
113
250
|
break;
|
|
114
251
|
}
|
|
115
|
-
|
|
252
|
+
_context5.t0 = _yield$provider$findP2 !== void 0;
|
|
116
253
|
case 14:
|
|
117
|
-
if (!
|
|
118
|
-
|
|
254
|
+
if (!_context5.t0) {
|
|
255
|
+
_context5.next = 18;
|
|
119
256
|
break;
|
|
120
257
|
}
|
|
121
|
-
|
|
122
|
-
|
|
258
|
+
_context5.t2 = _yield$provider$findP2;
|
|
259
|
+
_context5.next = 19;
|
|
123
260
|
break;
|
|
124
261
|
case 18:
|
|
125
|
-
|
|
262
|
+
_context5.t2 = false;
|
|
126
263
|
case 19:
|
|
127
|
-
isUrlSupported =
|
|
128
|
-
|
|
264
|
+
isUrlSupported = _context5.t2;
|
|
265
|
+
_context5.next = 25;
|
|
129
266
|
break;
|
|
130
267
|
case 22:
|
|
131
|
-
|
|
132
|
-
|
|
268
|
+
_context5.prev = 22;
|
|
269
|
+
_context5.t3 = _context5["catch"](4);
|
|
133
270
|
isUrlSupported = false;
|
|
134
271
|
case 25:
|
|
135
272
|
newMap = new Map(supportedUrlsMap);
|
|
@@ -139,12 +276,12 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
|
|
|
139
276
|
});
|
|
140
277
|
case 28:
|
|
141
278
|
case "end":
|
|
142
|
-
return
|
|
279
|
+
return _context5.stop();
|
|
143
280
|
}
|
|
144
|
-
},
|
|
281
|
+
}, _callee5, null, [[4, 22]]);
|
|
145
282
|
}));
|
|
146
|
-
return function (
|
|
147
|
-
return
|
|
283
|
+
return function (_x4) {
|
|
284
|
+
return _ref5.apply(this, arguments);
|
|
148
285
|
};
|
|
149
286
|
}());
|
|
150
287
|
_defineProperty(_assertThisInitialized(_this), "componentDidMount", function () {
|
|
@@ -152,7 +289,7 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
|
|
|
152
289
|
});
|
|
153
290
|
return _this;
|
|
154
291
|
}
|
|
155
|
-
_createClass(
|
|
292
|
+
_createClass(HyperlinkToolbarAppearanceClass, [{
|
|
156
293
|
key: "UNSAFE_componentWillReceiveProps",
|
|
157
294
|
value:
|
|
158
295
|
// needed so we display the right state on the Toolbar while the same Toolbar
|
|
@@ -177,7 +314,7 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
|
|
|
177
314
|
if (!supportedUrlsMap.get(url)) {
|
|
178
315
|
return null;
|
|
179
316
|
}
|
|
180
|
-
return /*#__PURE__*/React.createElement(Flex, null, !
|
|
317
|
+
return /*#__PURE__*/React.createElement(Flex, null, !fg('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/React.createElement(EditDatasourceButton, {
|
|
181
318
|
url: url,
|
|
182
319
|
intl: intl,
|
|
183
320
|
editorView: editorView,
|
|
@@ -193,7 +330,7 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
|
|
|
193
330
|
allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
|
|
194
331
|
platform: platform,
|
|
195
332
|
editorAnalyticsApi: editorAnalyticsApi
|
|
196
|
-
}),
|
|
333
|
+
}), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && fg('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/React.createElement(DatasourceAppearanceButton, {
|
|
197
334
|
intl: intl,
|
|
198
335
|
url: url,
|
|
199
336
|
editorState: editorState,
|
|
@@ -203,5 +340,11 @@ export var HyperlinkToolbarAppearance = /*#__PURE__*/function (_Component) {
|
|
|
203
340
|
}), /*#__PURE__*/React.createElement(Separator, null));
|
|
204
341
|
}
|
|
205
342
|
}]);
|
|
206
|
-
return
|
|
207
|
-
}(Component);
|
|
343
|
+
return HyperlinkToolbarAppearanceClass;
|
|
344
|
+
}(Component);
|
|
345
|
+
export var HyperlinkToolbarAppearance = function HyperlinkToolbarAppearance(props) {
|
|
346
|
+
if (fg('platform_editor_get_card_provider_from_config')) {
|
|
347
|
+
return /*#__PURE__*/React.createElement(HyperlinkToolbarAppearanceFunctional, props);
|
|
348
|
+
}
|
|
349
|
+
return /*#__PURE__*/React.createElement(HyperlinkToolbarAppearanceClass, props);
|
|
350
|
+
};
|