@atlaskit/editor-plugin-card 2.13.5 → 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 +11 -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/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/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 +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-card
|
|
2
2
|
|
|
3
|
+
## 2.14.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`c4d2eb3f9f965`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c4d2eb3f9f965) -
|
|
8
|
+
[ux] Fix issue with card provider not updating asynchronously
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
|
|
3
14
|
## 2.13.5
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.cardPlugin = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
11
|
var _react = _interopRequireDefault(require("react"));
|
|
10
12
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
@@ -32,6 +34,7 @@ var cardPlugin = exports.cardPlugin = function cardPlugin(_ref) {
|
|
|
32
34
|
var _options$lpLinkPicker;
|
|
33
35
|
var options = _ref.config,
|
|
34
36
|
api = _ref.api;
|
|
37
|
+
var previousCardProvider;
|
|
35
38
|
var cardPluginEvents = (0, _createEventsQueue.createEventsQueue)();
|
|
36
39
|
return {
|
|
37
40
|
name: 'card',
|
|
@@ -111,6 +114,39 @@ var cardPlugin = exports.cardPlugin = function cardPlugin(_ref) {
|
|
|
111
114
|
}));
|
|
112
115
|
},
|
|
113
116
|
actions: {
|
|
117
|
+
setProvider: function () {
|
|
118
|
+
var _setProvider2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(providerPromise) {
|
|
119
|
+
var _api$core$actions$exe;
|
|
120
|
+
var provider;
|
|
121
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
122
|
+
while (1) switch (_context.prev = _context.next) {
|
|
123
|
+
case 0:
|
|
124
|
+
_context.next = 2;
|
|
125
|
+
return providerPromise;
|
|
126
|
+
case 2:
|
|
127
|
+
provider = _context.sent;
|
|
128
|
+
if (!(previousCardProvider === provider)) {
|
|
129
|
+
_context.next = 5;
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
return _context.abrupt("return", false);
|
|
133
|
+
case 5:
|
|
134
|
+
previousCardProvider = provider;
|
|
135
|
+
return _context.abrupt("return", (_api$core$actions$exe = api === null || api === void 0 ? void 0 : api.core.actions.execute(function (_ref4) {
|
|
136
|
+
var tr = _ref4.tr;
|
|
137
|
+
return (0, _actions.setProvider)(provider)(tr);
|
|
138
|
+
})) !== null && _api$core$actions$exe !== void 0 ? _api$core$actions$exe : false);
|
|
139
|
+
case 7:
|
|
140
|
+
case "end":
|
|
141
|
+
return _context.stop();
|
|
142
|
+
}
|
|
143
|
+
}, _callee);
|
|
144
|
+
}));
|
|
145
|
+
function setProvider(_x) {
|
|
146
|
+
return _setProvider2.apply(this, arguments);
|
|
147
|
+
}
|
|
148
|
+
return setProvider;
|
|
149
|
+
}(),
|
|
114
150
|
hideLinkToolbar: _actions.hideLinkToolbar,
|
|
115
151
|
queueCardsFromChangedTr: _doc.queueCardsFromChangedTr,
|
|
116
152
|
getStartingToolbarItems: (0, _toolbar.getStartingToolbarItems)(options, api),
|
|
@@ -118,8 +154,8 @@ var cardPlugin = exports.cardPlugin = function cardPlugin(_ref) {
|
|
|
118
154
|
},
|
|
119
155
|
pluginsOptions: {
|
|
120
156
|
floatingToolbar: (0, _toolbar.floatingToolbar)(options, (_options$lpLinkPicker = options.lpLinkPicker) !== null && _options$lpLinkPicker !== void 0 ? _options$lpLinkPicker : false, options.platform, options.linkPicker, api, options.disableFloatingToolbar),
|
|
121
|
-
quickInsert: function quickInsert(
|
|
122
|
-
var formatMessage =
|
|
157
|
+
quickInsert: function quickInsert(_ref5) {
|
|
158
|
+
var formatMessage = _ref5.formatMessage;
|
|
123
159
|
var quickInsertArray = [];
|
|
124
160
|
if (!options.allowDatasource) {
|
|
125
161
|
return quickInsertArray;
|
|
@@ -167,8 +167,10 @@ var createPlugin = exports.createPlugin = function createPlugin(options, pluginI
|
|
|
167
167
|
};
|
|
168
168
|
var domAtPos = _view.domAtPos.bind(_view);
|
|
169
169
|
var rafCancellationCallbacks = [];
|
|
170
|
-
if (
|
|
171
|
-
|
|
170
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_get_card_provider_from_config')) {
|
|
171
|
+
if (options.provider) {
|
|
172
|
+
(0, _resolve.handleProvider)('cardProvider', options.provider, _view);
|
|
173
|
+
}
|
|
172
174
|
} else {
|
|
173
175
|
pmPluginFactoryParams.providerFactory.subscribe('cardProvider', subscriptionHandler);
|
|
174
176
|
}
|
package/dist/cjs/toolbar.js
CHANGED
|
@@ -589,7 +589,8 @@ var getStartingToolbarItems = exports.getStartingToolbarItems = function getStar
|
|
|
589
589
|
cardOptions: options,
|
|
590
590
|
providerFactory: providerFactory,
|
|
591
591
|
platform: options === null || options === void 0 ? void 0 : options.platform,
|
|
592
|
-
editorAnalyticsApi: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions
|
|
592
|
+
editorAnalyticsApi: api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions,
|
|
593
|
+
editorPluginApi: api
|
|
593
594
|
});
|
|
594
595
|
}
|
|
595
596
|
}].concat(editLinkItem);
|
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.HyperlinkToolbarAppearance = void 0;
|
|
9
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
12
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
@@ -15,6 +14,8 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
|
|
|
15
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
16
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
17
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
18
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
18
19
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
20
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
20
21
|
var _ui = require("@atlaskit/editor-common/ui");
|
|
@@ -27,13 +28,157 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
|
|
|
27
28
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
28
29
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
29
30
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
31
|
+
function HyperlinkToolbarAppearanceFunctional(props) {
|
|
32
|
+
var _props$cardOptions3;
|
|
33
|
+
var _useState = (0, _react.useState)(new Map()),
|
|
34
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
35
|
+
supportedUrlsMap = _useState2[0],
|
|
36
|
+
setSupportedUrlsMap = _useState2[1];
|
|
37
|
+
var cardProvider = (0, _react.useRef)(undefined);
|
|
38
|
+
var url = props.url,
|
|
39
|
+
intl = props.intl,
|
|
40
|
+
editorView = props.editorView,
|
|
41
|
+
editorState = props.editorState,
|
|
42
|
+
cardOptions = props.cardOptions,
|
|
43
|
+
platform = props.platform,
|
|
44
|
+
editorAnalyticsApi = props.editorAnalyticsApi;
|
|
45
|
+
var getProvider = /*#__PURE__*/function () {
|
|
46
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
47
|
+
var _props$cardOptions;
|
|
48
|
+
var _props$cardOptions2;
|
|
49
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
50
|
+
while (1) switch (_context.prev = _context.next) {
|
|
51
|
+
case 0:
|
|
52
|
+
if (!((_props$cardOptions = props.cardOptions) !== null && _props$cardOptions !== void 0 && _props$cardOptions.provider)) {
|
|
53
|
+
_context.next = 2;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
return _context.abrupt("return", (_props$cardOptions2 = props.cardOptions) === null || _props$cardOptions2 === void 0 ? void 0 : _props$cardOptions2.provider);
|
|
57
|
+
case 2:
|
|
58
|
+
if (!cardProvider.current) {
|
|
59
|
+
_context.next = 4;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
return _context.abrupt("return", cardProvider.current);
|
|
63
|
+
case 4:
|
|
64
|
+
return _context.abrupt("return", new Promise(function (resolve) {
|
|
65
|
+
var _props$editorPluginAp;
|
|
66
|
+
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;
|
|
67
|
+
if (cardProvider) {
|
|
68
|
+
resolve(cardProvider);
|
|
69
|
+
}
|
|
70
|
+
}));
|
|
71
|
+
case 5:
|
|
72
|
+
case "end":
|
|
73
|
+
return _context.stop();
|
|
74
|
+
}
|
|
75
|
+
}, _callee);
|
|
76
|
+
}));
|
|
77
|
+
return function getProvider() {
|
|
78
|
+
return _ref.apply(this, arguments);
|
|
79
|
+
};
|
|
80
|
+
}();
|
|
81
|
+
var resolveUrl = /*#__PURE__*/function () {
|
|
82
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(url) {
|
|
83
|
+
var isUrlSupported, _yield$provider$findP, provider, newMap;
|
|
84
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
85
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
86
|
+
case 0:
|
|
87
|
+
if (!supportedUrlsMap.has(url)) {
|
|
88
|
+
_context2.next = 2;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
return _context2.abrupt("return");
|
|
92
|
+
case 2:
|
|
93
|
+
isUrlSupported = false;
|
|
94
|
+
_context2.prev = 3;
|
|
95
|
+
_context2.next = 6;
|
|
96
|
+
return getProvider();
|
|
97
|
+
case 6:
|
|
98
|
+
provider = _context2.sent;
|
|
99
|
+
_context2.next = 9;
|
|
100
|
+
return provider === null || provider === void 0 ? void 0 : provider.findPattern(url);
|
|
101
|
+
case 9:
|
|
102
|
+
_context2.t1 = _yield$provider$findP = _context2.sent;
|
|
103
|
+
_context2.t0 = _context2.t1 !== null;
|
|
104
|
+
if (!_context2.t0) {
|
|
105
|
+
_context2.next = 13;
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
_context2.t0 = _yield$provider$findP !== void 0;
|
|
109
|
+
case 13:
|
|
110
|
+
if (!_context2.t0) {
|
|
111
|
+
_context2.next = 17;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
_context2.t2 = _yield$provider$findP;
|
|
115
|
+
_context2.next = 18;
|
|
116
|
+
break;
|
|
117
|
+
case 17:
|
|
118
|
+
_context2.t2 = false;
|
|
119
|
+
case 18:
|
|
120
|
+
isUrlSupported = _context2.t2;
|
|
121
|
+
_context2.next = 24;
|
|
122
|
+
break;
|
|
123
|
+
case 21:
|
|
124
|
+
_context2.prev = 21;
|
|
125
|
+
_context2.t3 = _context2["catch"](3);
|
|
126
|
+
isUrlSupported = false;
|
|
127
|
+
case 24:
|
|
128
|
+
newMap = new Map(supportedUrlsMap);
|
|
129
|
+
newMap.set(url, isUrlSupported);
|
|
130
|
+
setSupportedUrlsMap(newMap);
|
|
131
|
+
case 27:
|
|
132
|
+
case "end":
|
|
133
|
+
return _context2.stop();
|
|
134
|
+
}
|
|
135
|
+
}, _callee2, null, [[3, 21]]);
|
|
136
|
+
}));
|
|
137
|
+
return function resolveUrl(_x) {
|
|
138
|
+
return _ref2.apply(this, arguments);
|
|
139
|
+
};
|
|
140
|
+
}();
|
|
141
|
+
(0, _react.useEffect)(function () {
|
|
142
|
+
resolveUrl(url);
|
|
143
|
+
// before migrating from a class to a functional component, we were only reacting to changes in the url
|
|
144
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
145
|
+
}, [url, (_props$cardOptions3 = props.cardOptions) === null || _props$cardOptions3 === void 0 ? void 0 : _props$cardOptions3.provider, props.editorPluginApi]);
|
|
146
|
+
if (!supportedUrlsMap.get(url)) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Flex, null, !(0, _platformFeatureFlags.fg)('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/_react.default.createElement(_EditDatasourceButton.EditDatasourceButton, {
|
|
150
|
+
url: url,
|
|
151
|
+
intl: intl,
|
|
152
|
+
editorView: editorView,
|
|
153
|
+
editorAnalyticsApi: editorAnalyticsApi,
|
|
154
|
+
currentAppearance: "url"
|
|
155
|
+
}), /*#__PURE__*/_react.default.createElement(_LinkToolbarAppearance.LinkToolbarAppearance, {
|
|
156
|
+
key: "link-appearance",
|
|
157
|
+
url: url,
|
|
158
|
+
intl: intl,
|
|
159
|
+
editorView: editorView,
|
|
160
|
+
editorState: editorState,
|
|
161
|
+
allowEmbeds: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowEmbeds,
|
|
162
|
+
allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
|
|
163
|
+
platform: platform,
|
|
164
|
+
editorAnalyticsApi: editorAnalyticsApi
|
|
165
|
+
}), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && (0, _platformFeatureFlags.fg)('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/_react.default.createElement(_DatasourceAppearanceButton.DatasourceAppearanceButton, {
|
|
166
|
+
intl: intl,
|
|
167
|
+
url: url,
|
|
168
|
+
editorState: editorState,
|
|
169
|
+
editorView: editorView,
|
|
170
|
+
editorAnalyticsApi: editorAnalyticsApi,
|
|
171
|
+
inputMethod: _analytics.INPUT_METHOD.FLOATING_TB
|
|
172
|
+
}), /*#__PURE__*/_react.default.createElement(_ui.FloatingToolbarSeparator, null));
|
|
173
|
+
}
|
|
174
|
+
|
|
30
175
|
// eslint-disable-next-line @repo/internal/react/no-class-components
|
|
31
|
-
var
|
|
32
|
-
(0, _inherits2.default)(
|
|
33
|
-
var _super = _createSuper(
|
|
34
|
-
function
|
|
176
|
+
var HyperlinkToolbarAppearanceClass = /*#__PURE__*/function (_Component) {
|
|
177
|
+
(0, _inherits2.default)(HyperlinkToolbarAppearanceClass, _Component);
|
|
178
|
+
var _super = _createSuper(HyperlinkToolbarAppearanceClass);
|
|
179
|
+
function HyperlinkToolbarAppearanceClass() {
|
|
35
180
|
var _this;
|
|
36
|
-
(0, _classCallCheck2.default)(this,
|
|
181
|
+
(0, _classCallCheck2.default)(this, HyperlinkToolbarAppearanceClass);
|
|
37
182
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
38
183
|
args[_key] = arguments[_key];
|
|
39
184
|
}
|
|
@@ -41,105 +186,97 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
|
|
|
41
186
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
|
|
42
187
|
supportedUrlsMap: new Map()
|
|
43
188
|
});
|
|
44
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getProvider", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
48
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
189
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getProvider", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
190
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
191
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
49
192
|
case 0:
|
|
50
|
-
if (!((_this$props$cardOptio = _this.props.cardOptions) !== null && _this$props$cardOptio !== void 0 && _this$props$cardOptio.provider && (0, _platformFeatureFlags.fg)('platform_editor_get_card_provider_from_config'))) {
|
|
51
|
-
_context2.next = 2;
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
return _context2.abrupt("return", (_this$props$cardOptio2 = _this.props.cardOptions) === null || _this$props$cardOptio2 === void 0 ? void 0 : _this$props$cardOptio2.provider);
|
|
55
|
-
case 2:
|
|
56
193
|
if (!_this.cardProvider) {
|
|
57
|
-
|
|
194
|
+
_context4.next = 2;
|
|
58
195
|
break;
|
|
59
196
|
}
|
|
60
|
-
return
|
|
61
|
-
case
|
|
62
|
-
return
|
|
197
|
+
return _context4.abrupt("return", _this.cardProvider);
|
|
198
|
+
case 2:
|
|
199
|
+
return _context4.abrupt("return", new Promise(function (resolve) {
|
|
63
200
|
var providerFactory = _this.props.providerFactory;
|
|
64
201
|
providerFactory.subscribe('cardProvider', /*#__PURE__*/function () {
|
|
65
|
-
var
|
|
66
|
-
return _regenerator.default.wrap(function
|
|
67
|
-
while (1) switch (
|
|
202
|
+
var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(_, cardProvider) {
|
|
203
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
204
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
68
205
|
case 0:
|
|
69
206
|
if (cardProvider) {
|
|
70
|
-
|
|
207
|
+
_context3.next = 2;
|
|
71
208
|
break;
|
|
72
209
|
}
|
|
73
|
-
return
|
|
210
|
+
return _context3.abrupt("return");
|
|
74
211
|
case 2:
|
|
75
|
-
|
|
212
|
+
_context3.next = 4;
|
|
76
213
|
return cardProvider;
|
|
77
214
|
case 4:
|
|
78
|
-
_this.cardProvider =
|
|
215
|
+
_this.cardProvider = _context3.sent;
|
|
79
216
|
resolve(_this.cardProvider);
|
|
80
217
|
case 6:
|
|
81
218
|
case "end":
|
|
82
|
-
return
|
|
219
|
+
return _context3.stop();
|
|
83
220
|
}
|
|
84
|
-
},
|
|
221
|
+
}, _callee3);
|
|
85
222
|
}));
|
|
86
|
-
return function (
|
|
87
|
-
return
|
|
223
|
+
return function (_x2, _x3) {
|
|
224
|
+
return _ref4.apply(this, arguments);
|
|
88
225
|
};
|
|
89
226
|
}());
|
|
90
227
|
}));
|
|
91
|
-
case
|
|
228
|
+
case 3:
|
|
92
229
|
case "end":
|
|
93
|
-
return
|
|
230
|
+
return _context4.stop();
|
|
94
231
|
}
|
|
95
|
-
},
|
|
232
|
+
}, _callee4);
|
|
96
233
|
})));
|
|
97
234
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resolveUrl", /*#__PURE__*/function () {
|
|
98
|
-
var
|
|
99
|
-
var supportedUrlsMap, isUrlSupported, _yield$provider$
|
|
100
|
-
return _regenerator.default.wrap(function
|
|
101
|
-
while (1) switch (
|
|
235
|
+
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(url) {
|
|
236
|
+
var supportedUrlsMap, isUrlSupported, _yield$provider$findP2, provider, newMap;
|
|
237
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
238
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
102
239
|
case 0:
|
|
103
240
|
supportedUrlsMap = _this.state.supportedUrlsMap;
|
|
104
241
|
if (!supportedUrlsMap.has(url)) {
|
|
105
|
-
|
|
242
|
+
_context5.next = 3;
|
|
106
243
|
break;
|
|
107
244
|
}
|
|
108
|
-
return
|
|
245
|
+
return _context5.abrupt("return");
|
|
109
246
|
case 3:
|
|
110
247
|
isUrlSupported = false;
|
|
111
|
-
|
|
112
|
-
|
|
248
|
+
_context5.prev = 4;
|
|
249
|
+
_context5.next = 7;
|
|
113
250
|
return _this.getProvider();
|
|
114
251
|
case 7:
|
|
115
|
-
provider =
|
|
116
|
-
|
|
252
|
+
provider = _context5.sent;
|
|
253
|
+
_context5.next = 10;
|
|
117
254
|
return provider === null || provider === void 0 ? void 0 : provider.findPattern(url);
|
|
118
255
|
case 10:
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
if (!
|
|
122
|
-
|
|
256
|
+
_context5.t1 = _yield$provider$findP2 = _context5.sent;
|
|
257
|
+
_context5.t0 = _context5.t1 !== null;
|
|
258
|
+
if (!_context5.t0) {
|
|
259
|
+
_context5.next = 14;
|
|
123
260
|
break;
|
|
124
261
|
}
|
|
125
|
-
|
|
262
|
+
_context5.t0 = _yield$provider$findP2 !== void 0;
|
|
126
263
|
case 14:
|
|
127
|
-
if (!
|
|
128
|
-
|
|
264
|
+
if (!_context5.t0) {
|
|
265
|
+
_context5.next = 18;
|
|
129
266
|
break;
|
|
130
267
|
}
|
|
131
|
-
|
|
132
|
-
|
|
268
|
+
_context5.t2 = _yield$provider$findP2;
|
|
269
|
+
_context5.next = 19;
|
|
133
270
|
break;
|
|
134
271
|
case 18:
|
|
135
|
-
|
|
272
|
+
_context5.t2 = false;
|
|
136
273
|
case 19:
|
|
137
|
-
isUrlSupported =
|
|
138
|
-
|
|
274
|
+
isUrlSupported = _context5.t2;
|
|
275
|
+
_context5.next = 25;
|
|
139
276
|
break;
|
|
140
277
|
case 22:
|
|
141
|
-
|
|
142
|
-
|
|
278
|
+
_context5.prev = 22;
|
|
279
|
+
_context5.t3 = _context5["catch"](4);
|
|
143
280
|
isUrlSupported = false;
|
|
144
281
|
case 25:
|
|
145
282
|
newMap = new Map(supportedUrlsMap);
|
|
@@ -149,12 +286,12 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
|
|
|
149
286
|
});
|
|
150
287
|
case 28:
|
|
151
288
|
case "end":
|
|
152
|
-
return
|
|
289
|
+
return _context5.stop();
|
|
153
290
|
}
|
|
154
|
-
},
|
|
291
|
+
}, _callee5, null, [[4, 22]]);
|
|
155
292
|
}));
|
|
156
|
-
return function (
|
|
157
|
-
return
|
|
293
|
+
return function (_x4) {
|
|
294
|
+
return _ref5.apply(this, arguments);
|
|
158
295
|
};
|
|
159
296
|
}());
|
|
160
297
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "componentDidMount", function () {
|
|
@@ -162,7 +299,7 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
|
|
|
162
299
|
});
|
|
163
300
|
return _this;
|
|
164
301
|
}
|
|
165
|
-
(0, _createClass2.default)(
|
|
302
|
+
(0, _createClass2.default)(HyperlinkToolbarAppearanceClass, [{
|
|
166
303
|
key: "UNSAFE_componentWillReceiveProps",
|
|
167
304
|
value:
|
|
168
305
|
// needed so we display the right state on the Toolbar while the same Toolbar
|
|
@@ -187,7 +324,7 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
|
|
|
187
324
|
if (!supportedUrlsMap.get(url)) {
|
|
188
325
|
return null;
|
|
189
326
|
}
|
|
190
|
-
return /*#__PURE__*/_react.default.createElement(_primitives.Flex, null, !(0, _platformFeatureFlags.
|
|
327
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Flex, null, !(0, _platformFeatureFlags.fg)('platform.linking-platform.enable-datasource-edit-dropdown-toolbar') && /*#__PURE__*/_react.default.createElement(_EditDatasourceButton.EditDatasourceButton, {
|
|
191
328
|
url: url,
|
|
192
329
|
intl: intl,
|
|
193
330
|
editorView: editorView,
|
|
@@ -203,7 +340,7 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
|
|
|
203
340
|
allowBlockCards: cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowBlockCards,
|
|
204
341
|
platform: platform,
|
|
205
342
|
editorAnalyticsApi: editorAnalyticsApi
|
|
206
|
-
}), (
|
|
343
|
+
}), (cardOptions === null || cardOptions === void 0 ? void 0 : cardOptions.allowDatasource) && (0, _platformFeatureFlags.fg)('platform.linking-platform.enable-datasource-appearance-toolbar') && /*#__PURE__*/_react.default.createElement(_DatasourceAppearanceButton.DatasourceAppearanceButton, {
|
|
207
344
|
intl: intl,
|
|
208
345
|
url: url,
|
|
209
346
|
editorState: editorState,
|
|
@@ -213,5 +350,11 @@ var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = /*#__PURE_
|
|
|
213
350
|
}), /*#__PURE__*/_react.default.createElement(_ui.FloatingToolbarSeparator, null));
|
|
214
351
|
}
|
|
215
352
|
}]);
|
|
216
|
-
return
|
|
217
|
-
}(_react.Component);
|
|
353
|
+
return HyperlinkToolbarAppearanceClass;
|
|
354
|
+
}(_react.Component);
|
|
355
|
+
var HyperlinkToolbarAppearance = exports.HyperlinkToolbarAppearance = function HyperlinkToolbarAppearance(props) {
|
|
356
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_get_card_provider_from_config')) {
|
|
357
|
+
return /*#__PURE__*/_react.default.createElement(HyperlinkToolbarAppearanceFunctional, props);
|
|
358
|
+
}
|
|
359
|
+
return /*#__PURE__*/_react.default.createElement(HyperlinkToolbarAppearanceClass, props);
|
|
360
|
+
};
|
package/dist/es2019/plugin.js
CHANGED
|
@@ -5,7 +5,7 @@ import { IconDatasourceAssetsObjects, IconDatasourceConfluenceSearch, IconDataso
|
|
|
5
5
|
import { canRenderDatasource } from '@atlaskit/editor-common/utils';
|
|
6
6
|
import { ASSETS_LIST_OF_LINKS_DATASOURCE_ID, CONFLUENCE_SEARCH_DATASOURCE_ID } from '@atlaskit/link-datasource';
|
|
7
7
|
import { createEventsQueue } from './analytics/create-events-queue';
|
|
8
|
-
import { hideLinkToolbar, showDatasourceModal } from './pm-plugins/actions';
|
|
8
|
+
import { hideLinkToolbar, setProvider, showDatasourceModal } from './pm-plugins/actions';
|
|
9
9
|
import { queueCardsFromChangedTr } from './pm-plugins/doc';
|
|
10
10
|
import { cardKeymap } from './pm-plugins/keymap';
|
|
11
11
|
import { createPlugin } from './pm-plugins/main';
|
|
@@ -23,6 +23,7 @@ export const cardPlugin = ({
|
|
|
23
23
|
api
|
|
24
24
|
}) => {
|
|
25
25
|
var _options$lpLinkPicker;
|
|
26
|
+
let previousCardProvider;
|
|
26
27
|
const cardPluginEvents = createEventsQueue();
|
|
27
28
|
return {
|
|
28
29
|
name: 'card',
|
|
@@ -105,6 +106,18 @@ export const cardPlugin = ({
|
|
|
105
106
|
}));
|
|
106
107
|
},
|
|
107
108
|
actions: {
|
|
109
|
+
setProvider: async providerPromise => {
|
|
110
|
+
var _api$core$actions$exe;
|
|
111
|
+
const provider = await providerPromise;
|
|
112
|
+
// Prevent someone trying to set the exact same provider twice for performance reasons
|
|
113
|
+
if (previousCardProvider === provider) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
previousCardProvider = provider;
|
|
117
|
+
return (_api$core$actions$exe = api === null || api === void 0 ? void 0 : api.core.actions.execute(({
|
|
118
|
+
tr
|
|
119
|
+
}) => setProvider(provider)(tr))) !== null && _api$core$actions$exe !== void 0 ? _api$core$actions$exe : false;
|
|
120
|
+
},
|
|
108
121
|
hideLinkToolbar,
|
|
109
122
|
queueCardsFromChangedTr,
|
|
110
123
|
getStartingToolbarItems: getStartingToolbarItems(options, api),
|
|
@@ -152,8 +152,10 @@ export const createPlugin = (options, pluginInjectionApi) => pmPluginFactoryPara
|
|
|
152
152
|
const subscriptionHandler = (name, provider) => handleProvider(name, provider, view);
|
|
153
153
|
const domAtPos = view.domAtPos.bind(view);
|
|
154
154
|
const rafCancellationCallbacks = [];
|
|
155
|
-
if (
|
|
156
|
-
|
|
155
|
+
if (fg('platform_editor_get_card_provider_from_config')) {
|
|
156
|
+
if (options.provider) {
|
|
157
|
+
handleProvider('cardProvider', options.provider, view);
|
|
158
|
+
}
|
|
157
159
|
} else {
|
|
158
160
|
pmPluginFactoryParams.providerFactory.subscribe('cardProvider', subscriptionHandler);
|
|
159
161
|
}
|
package/dist/es2019/toolbar.js
CHANGED
|
@@ -574,7 +574,8 @@ export const getStartingToolbarItems = (options, api) => {
|
|
|
574
574
|
cardOptions: options,
|
|
575
575
|
providerFactory: providerFactory,
|
|
576
576
|
platform: options === null || options === void 0 ? void 0 : options.platform,
|
|
577
|
-
editorAnalyticsApi: api === null || api === void 0 ? void 0 : (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions
|
|
577
|
+
editorAnalyticsApi: api === null || api === void 0 ? void 0 : (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions,
|
|
578
|
+
editorPluginApi: api
|
|
578
579
|
});
|
|
579
580
|
}
|
|
580
581
|
}, ...editLinkItem];
|
|
@@ -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
|
+
};
|
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
|
+
};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import type { IntlShape } from 'react-intl-next';
|
|
3
3
|
import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
|
|
4
4
|
import type { CardOptions } from '@atlaskit/editor-common/card';
|
|
5
|
-
import type {
|
|
5
|
+
import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
6
|
+
import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
|
|
6
7
|
import type { EditorState } from '@atlaskit/editor-prosemirror/state';
|
|
7
8
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
8
9
|
import type { CardPlatform } from '@atlaskit/smart-card';
|
|
10
|
+
import { type CardPlugin } from '../plugin';
|
|
9
11
|
export interface HyperlinkToolbarAppearanceProps {
|
|
10
12
|
intl: IntlShape;
|
|
11
13
|
editorState: EditorState;
|
|
@@ -15,16 +17,9 @@ export interface HyperlinkToolbarAppearanceProps {
|
|
|
15
17
|
platform?: CardPlatform;
|
|
16
18
|
cardOptions?: CardOptions;
|
|
17
19
|
editorAnalyticsApi: EditorAnalyticsAPI | undefined;
|
|
20
|
+
editorPluginApi: ExtractInjectionAPI<CardPlugin> | undefined;
|
|
18
21
|
}
|
|
19
22
|
export interface HyperlinkToolbarAppearanceState {
|
|
20
23
|
supportedUrlsMap: Map<string, boolean>;
|
|
21
24
|
}
|
|
22
|
-
export declare
|
|
23
|
-
state: HyperlinkToolbarAppearanceState;
|
|
24
|
-
cardProvider?: CardProvider;
|
|
25
|
-
private getProvider;
|
|
26
|
-
private resolveUrl;
|
|
27
|
-
componentDidMount: () => Promise<void>;
|
|
28
|
-
UNSAFE_componentWillReceiveProps(nextProps: HyperlinkToolbarAppearanceProps): void;
|
|
29
|
-
render(): JSX.Element | null;
|
|
30
|
-
}
|
|
25
|
+
export declare const HyperlinkToolbarAppearance: (props: HyperlinkToolbarAppearanceProps) => JSX.Element;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import type { IntlShape } from 'react-intl-next';
|
|
3
3
|
import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
|
|
4
4
|
import type { CardOptions } from '@atlaskit/editor-common/card';
|
|
5
|
-
import type {
|
|
5
|
+
import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
6
|
+
import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
|
|
6
7
|
import type { EditorState } from '@atlaskit/editor-prosemirror/state';
|
|
7
8
|
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
8
9
|
import type { CardPlatform } from '@atlaskit/smart-card';
|
|
10
|
+
import { type CardPlugin } from '../plugin';
|
|
9
11
|
export interface HyperlinkToolbarAppearanceProps {
|
|
10
12
|
intl: IntlShape;
|
|
11
13
|
editorState: EditorState;
|
|
@@ -15,16 +17,9 @@ export interface HyperlinkToolbarAppearanceProps {
|
|
|
15
17
|
platform?: CardPlatform;
|
|
16
18
|
cardOptions?: CardOptions;
|
|
17
19
|
editorAnalyticsApi: EditorAnalyticsAPI | undefined;
|
|
20
|
+
editorPluginApi: ExtractInjectionAPI<CardPlugin> | undefined;
|
|
18
21
|
}
|
|
19
22
|
export interface HyperlinkToolbarAppearanceState {
|
|
20
23
|
supportedUrlsMap: Map<string, boolean>;
|
|
21
24
|
}
|
|
22
|
-
export declare
|
|
23
|
-
state: HyperlinkToolbarAppearanceState;
|
|
24
|
-
cardProvider?: CardProvider;
|
|
25
|
-
private getProvider;
|
|
26
|
-
private resolveUrl;
|
|
27
|
-
componentDidMount: () => Promise<void>;
|
|
28
|
-
UNSAFE_componentWillReceiveProps(nextProps: HyperlinkToolbarAppearanceProps): void;
|
|
29
|
-
render(): JSX.Element | null;
|
|
30
|
-
}
|
|
25
|
+
export declare const HyperlinkToolbarAppearance: (props: HyperlinkToolbarAppearanceProps) => JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-card",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.14.0",
|
|
4
4
|
"description": "Card plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@atlaskit/adf-schema": "^40.9.0",
|
|
36
36
|
"@atlaskit/analytics-next": "^10.1.0",
|
|
37
37
|
"@atlaskit/custom-steps": "^0.7.0",
|
|
38
|
-
"@atlaskit/editor-common": "^88.
|
|
38
|
+
"@atlaskit/editor-common": "^88.4.0",
|
|
39
39
|
"@atlaskit/editor-plugin-analytics": "^1.8.0",
|
|
40
40
|
"@atlaskit/editor-plugin-decorations": "^1.3.0",
|
|
41
41
|
"@atlaskit/editor-plugin-editor-disabled": "^1.3.0",
|