@atlaskit/editor-core 150.0.0 → 151.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/dist/cjs/actions/index.js +5 -23
- package/dist/cjs/create-editor/ErrorBoundary.js +113 -79
- package/dist/cjs/create-editor/ReactEditorView.js +145 -31
- package/dist/cjs/create-editor/create-plugins-list.js +4 -2
- package/dist/cjs/editor.js +101 -40
- package/dist/cjs/labs/next/presets/cxhtml.js +2 -1
- package/dist/cjs/plugins/analytics/types/enums.js +3 -1
- package/dist/cjs/plugins/base/index.js +4 -3
- package/dist/cjs/plugins/base/pm-plugins/frozen-editor.js +66 -36
- package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/styled.js +3 -1
- package/dist/cjs/plugins/card/index.js +13 -2
- package/dist/cjs/plugins/card/nodeviews/embedCard.js +1 -0
- package/dist/cjs/plugins/card/pm-plugins/main.js +7 -2
- package/dist/cjs/plugins/card/pm-plugins/util/resolve.js +10 -3
- package/dist/cjs/plugins/code-block/toolbar.js +1 -1
- package/dist/cjs/plugins/collab-edit/ui/to-avatar.js +4 -8
- package/dist/cjs/plugins/emoji/styles.js +1 -1
- package/dist/cjs/plugins/extension/pm-plugins/main.js +1 -4
- package/dist/cjs/plugins/extension/toolbar.js +28 -23
- package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +8 -3
- package/dist/cjs/plugins/find-replace/ui/Find.js +27 -7
- package/dist/cjs/plugins/hyperlink/pm-plugins/keymap.js +3 -3
- package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +7 -4
- package/dist/cjs/plugins/hyperlink/utils.js +6 -69
- package/dist/cjs/plugins/media/index.js +14 -3
- package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +24 -10
- package/dist/cjs/plugins/media/nodeviews/mediaInline.js +179 -0
- package/dist/cjs/plugins/media/pm-plugins/main.js +18 -9
- package/dist/cjs/plugins/media/toolbar/index.js +49 -17
- package/dist/cjs/plugins/media/toolbar/utils.js +20 -2
- package/dist/cjs/plugins/media/utils/media-files.js +67 -1
- package/dist/cjs/plugins/mentions/type-ahead/index.js +39 -3
- package/dist/cjs/plugins/panel/index.js +2 -3
- package/dist/cjs/plugins/panel/message.js +47 -0
- package/dist/cjs/plugins/panel/toolbar.js +64 -84
- package/dist/cjs/plugins/panel/utils.js +2 -2
- package/dist/cjs/plugins/paste/linkify-md-plugin.js +3 -3
- package/dist/cjs/plugins/status/styles.js +1 -1
- package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +18 -2
- package/dist/cjs/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +20 -3
- package/dist/cjs/profiler/render-count.js +82 -0
- package/dist/cjs/ui/Appearance/Comment/Comment.js +6 -5
- package/dist/cjs/utils/react-hooks/use-component-renderer-tracking/index.js +55 -19
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/actions/index.js +6 -28
- package/dist/es2019/create-editor/ErrorBoundary.js +73 -60
- package/dist/es2019/create-editor/ReactEditorView.js +130 -23
- package/dist/es2019/create-editor/create-plugins-list.js +4 -2
- package/dist/es2019/editor.js +74 -35
- package/dist/es2019/labs/next/presets/cxhtml.js +2 -1
- package/dist/es2019/plugins/analytics/types/enums.js +3 -1
- package/dist/es2019/plugins/base/index.js +4 -3
- package/dist/es2019/plugins/base/pm-plugins/frozen-editor.js +63 -35
- package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/styled.js +2 -1
- package/dist/es2019/plugins/card/index.js +7 -2
- package/dist/es2019/plugins/card/nodeviews/embedCard.js +1 -0
- package/dist/es2019/plugins/card/pm-plugins/main.js +9 -2
- package/dist/es2019/plugins/card/pm-plugins/util/resolve.js +12 -5
- package/dist/es2019/plugins/code-block/toolbar.js +1 -1
- package/dist/es2019/plugins/collab-edit/ui/to-avatar.js +2 -6
- package/dist/es2019/plugins/emoji/styles.js +2 -0
- package/dist/es2019/plugins/extension/pm-plugins/main.js +1 -4
- package/dist/es2019/plugins/extension/toolbar.js +30 -25
- package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +8 -4
- package/dist/es2019/plugins/find-replace/ui/Find.js +27 -6
- package/dist/es2019/plugins/hyperlink/pm-plugins/keymap.js +1 -1
- package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +7 -4
- package/dist/es2019/plugins/hyperlink/utils.js +3 -59
- package/dist/es2019/plugins/media/index.js +13 -4
- package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +16 -7
- package/dist/es2019/plugins/media/nodeviews/mediaInline.js +88 -0
- package/dist/es2019/plugins/media/pm-plugins/main.js +20 -11
- package/dist/es2019/plugins/media/toolbar/index.js +44 -15
- package/dist/es2019/plugins/media/toolbar/utils.js +16 -0
- package/dist/es2019/plugins/media/utils/media-files.js +68 -2
- package/dist/es2019/plugins/mentions/type-ahead/index.js +21 -2
- package/dist/es2019/plugins/panel/index.js +3 -4
- package/dist/es2019/plugins/panel/message.js +38 -0
- package/dist/es2019/plugins/panel/toolbar.js +52 -71
- package/dist/es2019/plugins/panel/utils.js +2 -2
- package/dist/es2019/plugins/paste/linkify-md-plugin.js +2 -2
- package/dist/es2019/plugins/status/styles.js +2 -0
- package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +18 -2
- package/dist/es2019/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +20 -3
- package/dist/es2019/profiler/render-count.js +60 -0
- package/dist/es2019/ui/Appearance/Comment/Comment.js +4 -2
- package/dist/es2019/utils/react-hooks/use-component-renderer-tracking/index.js +51 -18
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/actions/index.js +6 -24
- package/dist/esm/create-editor/ErrorBoundary.js +113 -78
- package/dist/esm/create-editor/ReactEditorView.js +146 -31
- package/dist/esm/create-editor/create-plugins-list.js +4 -2
- package/dist/esm/editor.js +100 -40
- package/dist/esm/labs/next/presets/cxhtml.js +2 -1
- package/dist/esm/plugins/analytics/types/enums.js +3 -1
- package/dist/esm/plugins/base/index.js +4 -3
- package/dist/esm/plugins/base/pm-plugins/frozen-editor.js +64 -36
- package/dist/esm/plugins/block-type/ui/ToolbarBlockType/styled.js +3 -1
- package/dist/esm/plugins/card/index.js +13 -2
- package/dist/esm/plugins/card/nodeviews/embedCard.js +1 -0
- package/dist/esm/plugins/card/pm-plugins/main.js +7 -2
- package/dist/esm/plugins/card/pm-plugins/util/resolve.js +12 -5
- package/dist/esm/plugins/code-block/toolbar.js +1 -1
- package/dist/esm/plugins/collab-edit/ui/to-avatar.js +4 -8
- package/dist/esm/plugins/emoji/styles.js +1 -1
- package/dist/esm/plugins/extension/pm-plugins/main.js +1 -4
- package/dist/esm/plugins/extension/toolbar.js +28 -23
- package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +8 -4
- package/dist/esm/plugins/find-replace/ui/Find.js +27 -7
- package/dist/esm/plugins/hyperlink/pm-plugins/keymap.js +1 -1
- package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +7 -4
- package/dist/esm/plugins/hyperlink/utils.js +3 -59
- package/dist/esm/plugins/media/index.js +14 -4
- package/dist/esm/plugins/media/nodeviews/mediaGroup.js +24 -10
- package/dist/esm/plugins/media/nodeviews/mediaInline.js +147 -0
- package/dist/esm/plugins/media/pm-plugins/main.js +19 -11
- package/dist/esm/plugins/media/toolbar/index.js +47 -19
- package/dist/esm/plugins/media/toolbar/utils.js +15 -1
- package/dist/esm/plugins/media/utils/media-files.js +60 -2
- package/dist/esm/plugins/mentions/type-ahead/index.js +39 -3
- package/dist/esm/plugins/panel/index.js +3 -4
- package/dist/esm/plugins/panel/message.js +38 -0
- package/dist/esm/plugins/panel/toolbar.js +57 -77
- package/dist/esm/plugins/panel/utils.js +2 -2
- package/dist/esm/plugins/paste/linkify-md-plugin.js +2 -2
- package/dist/esm/plugins/status/styles.js +1 -1
- package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +18 -2
- package/dist/esm/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +20 -3
- package/dist/esm/profiler/render-count.js +57 -0
- package/dist/esm/ui/Appearance/Comment/Comment.js +6 -5
- package/dist/esm/utils/react-hooks/use-component-renderer-tracking/index.js +53 -20
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/create-editor/ErrorBoundary.d.ts +6 -6
- package/dist/types/create-editor/ReactEditorView.d.ts +15 -3
- package/dist/types/editor.d.ts +3 -1
- package/dist/types/plugins/analytics/analytics-queue.d.ts +1 -1
- package/dist/types/plugins/analytics/index.d.ts +1 -1
- package/dist/types/plugins/analytics/types/enums.d.ts +4 -2
- package/dist/types/plugins/analytics/types/events.d.ts +7 -2
- package/dist/types/plugins/analytics/types/general-events.d.ts +4 -1
- package/dist/types/plugins/analytics/types/index.d.ts +1 -1
- package/dist/types/plugins/analytics/types/insert-events.d.ts +6 -1
- package/dist/types/plugins/analytics/types/link-tool-bar-events.d.ts +1 -0
- package/dist/types/plugins/base/index.d.ts +1 -0
- package/dist/types/plugins/base/pm-plugins/frozen-editor.d.ts +3 -2
- package/dist/types/plugins/card/pm-plugins/main.d.ts +2 -3
- package/dist/types/plugins/card/pm-plugins/util/resolve.d.ts +2 -1
- package/dist/types/plugins/card/types.d.ts +6 -0
- package/dist/types/plugins/collab-edit/ui/to-avatar.d.ts +1 -1
- package/dist/types/plugins/extension/types.d.ts +0 -2
- package/dist/types/plugins/extension/ui/Extension/ExtensionComponent.d.ts +2 -2
- package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -1
- package/dist/types/plugins/floating-toolbar/types.d.ts +1 -1
- package/dist/types/plugins/floating-toolbar/ui/Select.d.ts +1 -1
- package/dist/types/plugins/hyperlink/utils.d.ts +0 -21
- package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/create-items.d.ts +1 -1
- package/dist/types/plugins/media/nodeviews/mediaInline.d.ts +27 -0
- package/dist/types/plugins/media/pm-plugins/main.d.ts +2 -2
- package/dist/types/plugins/media/toolbar/utils.d.ts +2 -0
- package/dist/types/plugins/media/utils/media-files.d.ts +8 -0
- package/dist/types/plugins/panel/message.d.ts +37 -0
- package/dist/types/plugins/panel/toolbar.d.ts +4 -37
- package/dist/types/plugins/panel/types.d.ts +1 -0
- package/dist/types/plugins/quick-insert/index.d.ts +1 -1
- package/dist/types/profiler/render-count.d.ts +14 -0
- package/dist/types/types/feature-flags.d.ts +8 -0
- package/dist/types/ui/LinkSearch/types.d.ts +1 -0
- package/dist/types/utils/react-hooks/use-component-renderer-tracking/index.d.ts +17 -1
- package/package.json +20 -17
- package/dist/cjs/plugins/caption/nodeviews/index.test.js +0 -135
- package/dist/cjs/plugins/caption/pm-plugins/keymap.test.js +0 -203
- package/dist/cjs/plugins/caption/pm-plugins/main.test.js +0 -141
- package/dist/cjs/plugins/code-block/language-list.test.js +0 -74
- package/dist/cjs/plugins/extension/ui/SaveIndicator/SaveIndicator.test.js +0 -101
- package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.test.js +0 -98
- package/dist/cjs/plugins/media/commands/captions.test.js +0 -149
- package/dist/cjs/plugins/media/commands/linking.test.js +0 -296
- package/dist/cjs/plugins/media/ui/CaptionPlaceholder/index.test.js +0 -50
- package/dist/cjs/plugins/panel/toolbar.test.js +0 -250
- package/dist/cjs/ui/ColorPickerButton/index.test.js +0 -123
- package/dist/cjs/ui/PortalProvider/index.test.js +0 -139
- package/dist/es2019/plugins/caption/nodeviews/index.test.js +0 -122
- package/dist/es2019/plugins/caption/pm-plugins/keymap.test.js +0 -193
- package/dist/es2019/plugins/caption/pm-plugins/main.test.js +0 -132
- package/dist/es2019/plugins/code-block/language-list.test.js +0 -69
- package/dist/es2019/plugins/extension/ui/SaveIndicator/SaveIndicator.test.js +0 -83
- package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.test.js +0 -85
- package/dist/es2019/plugins/media/commands/captions.test.js +0 -126
- package/dist/es2019/plugins/media/commands/linking.test.js +0 -208
- package/dist/es2019/plugins/media/ui/CaptionPlaceholder/index.test.js +0 -41
- package/dist/es2019/plugins/panel/toolbar.test.js +0 -200
- package/dist/es2019/ui/ColorPickerButton/index.test.js +0 -88
- package/dist/es2019/ui/PortalProvider/index.test.js +0 -115
- package/dist/esm/plugins/caption/nodeviews/index.test.js +0 -125
- package/dist/esm/plugins/caption/pm-plugins/keymap.test.js +0 -195
- package/dist/esm/plugins/caption/pm-plugins/main.test.js +0 -124
- package/dist/esm/plugins/code-block/language-list.test.js +0 -71
- package/dist/esm/plugins/extension/ui/SaveIndicator/SaveIndicator.test.js +0 -92
- package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.test.js +0 -85
- package/dist/esm/plugins/media/commands/captions.test.js +0 -135
- package/dist/esm/plugins/media/commands/linking.test.js +0 -268
- package/dist/esm/plugins/media/ui/CaptionPlaceholder/index.test.js +0 -41
- package/dist/esm/plugins/panel/toolbar.test.js +0 -230
- package/dist/esm/ui/ColorPickerButton/index.test.js +0 -107
- package/dist/esm/ui/PortalProvider/index.test.js +0 -129
|
@@ -5,52 +5,25 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.getLinkMatch = getLinkMatch;
|
|
9
8
|
exports.normalizeUrl = normalizeUrl;
|
|
10
9
|
exports.linkifyContent = linkifyContent;
|
|
11
10
|
exports.getLinkDomain = getLinkDomain;
|
|
12
11
|
exports.isFromCurrentDomain = isFromCurrentDomain;
|
|
13
|
-
exports.
|
|
12
|
+
exports.LinkMatcher = void 0;
|
|
14
13
|
|
|
15
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
16
15
|
|
|
17
16
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
18
17
|
|
|
19
|
-
var _linkifyIt = _interopRequireDefault(require("linkify-it"));
|
|
20
|
-
|
|
21
18
|
var _slice = require("../../utils/slice");
|
|
22
19
|
|
|
23
20
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
24
21
|
|
|
25
|
-
var LINK_REGEXP = /(https?|ftp):\/\/[^\s]+/;
|
|
26
|
-
exports.LINK_REGEXP = LINK_REGEXP;
|
|
27
|
-
var linkify = (0, _linkifyIt.default)();
|
|
28
|
-
linkify.add('sourcetree:', 'http:');
|
|
29
|
-
var tlds = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');
|
|
30
|
-
var tlds2Char = 'a[cdefgilmnoqrtuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrtuvwxyz]|n[acefgilopruz]|om|p[aefghkmnrtw]|qa|r[eosuw]|s[abcdegijklmnrtuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';
|
|
31
|
-
tlds.push(tlds2Char);
|
|
32
|
-
linkify.tlds(tlds, false);
|
|
33
|
-
|
|
34
|
-
function getLinkMatch(str) {
|
|
35
|
-
if (!str) {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
var match = linkifyMatch(str);
|
|
40
|
-
|
|
41
|
-
if (!match.length) {
|
|
42
|
-
match = linkify.match(str);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return match && match[0];
|
|
46
|
-
}
|
|
47
22
|
/**
|
|
48
23
|
* Instance of class LinkMatcher are used in autoformatting in place of Regex.
|
|
49
24
|
* Hence it has been made similar to regex with an exec method.
|
|
50
25
|
* Extending it directly from class Regex was introducing some issues, thus that has been avoided.
|
|
51
26
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
27
|
var LinkMatcher = /*#__PURE__*/function () {
|
|
55
28
|
function LinkMatcher() {
|
|
56
29
|
(0, _classCallCheck2.default)(this, LinkMatcher);
|
|
@@ -75,7 +48,7 @@ var LinkMatcher = /*#__PURE__*/function () {
|
|
|
75
48
|
return null;
|
|
76
49
|
}
|
|
77
50
|
|
|
78
|
-
var links = linkify.match(lastStringBeforeSpace);
|
|
51
|
+
var links = _adfSchema.linkify.match(lastStringBeforeSpace);
|
|
79
52
|
|
|
80
53
|
if (!links || links.length === 0) {
|
|
81
54
|
return null;
|
|
@@ -122,8 +95,7 @@ function normalizeUrl(url) {
|
|
|
122
95
|
return url;
|
|
123
96
|
}
|
|
124
97
|
|
|
125
|
-
|
|
126
|
-
return match && match.url || '';
|
|
98
|
+
return (0, _adfSchema.normalizeUrl)(url);
|
|
127
99
|
}
|
|
128
100
|
|
|
129
101
|
function linkifyContent(schema) {
|
|
@@ -180,7 +152,8 @@ function isFromCurrentDomain(url) {
|
|
|
180
152
|
|
|
181
153
|
function findLinkMatches(text) {
|
|
182
154
|
var matches = [];
|
|
183
|
-
|
|
155
|
+
|
|
156
|
+
var linkMatches = text && _adfSchema.linkify.match(text);
|
|
184
157
|
|
|
185
158
|
if (linkMatches && linkMatches.length > 0) {
|
|
186
159
|
linkMatches.forEach(function (match) {
|
|
@@ -194,40 +167,4 @@ function findLinkMatches(text) {
|
|
|
194
167
|
}
|
|
195
168
|
|
|
196
169
|
return matches;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
var linkifyMatch = function linkifyMatch(text) {
|
|
200
|
-
var matches = [];
|
|
201
|
-
|
|
202
|
-
if (!LINK_REGEXP.test(text)) {
|
|
203
|
-
return matches;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
var startpos = 0;
|
|
207
|
-
var substr;
|
|
208
|
-
|
|
209
|
-
while (substr = text.substr(startpos)) {
|
|
210
|
-
var link = (substr.match(LINK_REGEXP) || [''])[0];
|
|
211
|
-
|
|
212
|
-
if (link) {
|
|
213
|
-
var index = substr.search(LINK_REGEXP);
|
|
214
|
-
var start = index >= 0 ? index + startpos : index;
|
|
215
|
-
var end = start + link.length;
|
|
216
|
-
matches.push({
|
|
217
|
-
index: start,
|
|
218
|
-
lastIndex: end,
|
|
219
|
-
raw: link,
|
|
220
|
-
url: link,
|
|
221
|
-
text: link,
|
|
222
|
-
schema: ''
|
|
223
|
-
});
|
|
224
|
-
startpos += end;
|
|
225
|
-
} else {
|
|
226
|
-
break;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
return matches;
|
|
231
|
-
};
|
|
232
|
-
|
|
233
|
-
exports.linkifyMatch = linkifyMatch;
|
|
170
|
+
}
|
|
@@ -59,6 +59,8 @@ var _messages = require("../insert-block/ui/ToolbarInsertBlock/messages");
|
|
|
59
59
|
|
|
60
60
|
var _mediaNodeView = require("./nodeviews/mediaNodeView");
|
|
61
61
|
|
|
62
|
+
var _mediaInline = require("./nodeviews/mediaInline");
|
|
63
|
+
|
|
62
64
|
var _mediaSingle2 = require("./utils/media-single");
|
|
63
65
|
|
|
64
66
|
var mediaPlugin = function mediaPlugin(options) {
|
|
@@ -70,6 +72,8 @@ var mediaPlugin = function mediaPlugin(options) {
|
|
|
70
72
|
allowMediaGroup = _ref$allowMediaGroup === void 0 ? true : _ref$allowMediaGroup,
|
|
71
73
|
_ref$allowMediaSingle = _ref.allowMediaSingle,
|
|
72
74
|
allowMediaSingle = _ref$allowMediaSingle === void 0 ? false : _ref$allowMediaSingle,
|
|
75
|
+
_ref$allowMediaInline = _ref.allowMediaInline,
|
|
76
|
+
allowMediaInline = _ref$allowMediaInline === void 0 ? false : _ref$allowMediaInline,
|
|
73
77
|
featureFlags = _ref.featureFlags;
|
|
74
78
|
|
|
75
79
|
var captions = (0, _mediaCommon.getMediaFeatureFlag)('captions', featureFlags);
|
|
@@ -83,6 +87,9 @@ var mediaPlugin = function mediaPlugin(options) {
|
|
|
83
87
|
}, {
|
|
84
88
|
name: 'media',
|
|
85
89
|
node: _adfSchema.media
|
|
90
|
+
}, {
|
|
91
|
+
name: 'mediaInline',
|
|
92
|
+
node: _adfSchema.mediaInline
|
|
86
93
|
}].filter(function (node) {
|
|
87
94
|
if (node.name === 'mediaGroup') {
|
|
88
95
|
return allowMediaGroup;
|
|
@@ -92,6 +99,10 @@ var mediaPlugin = function mediaPlugin(options) {
|
|
|
92
99
|
return allowMediaSingle;
|
|
93
100
|
}
|
|
94
101
|
|
|
102
|
+
if (node.name === 'mediaInline') {
|
|
103
|
+
return allowMediaInline;
|
|
104
|
+
}
|
|
105
|
+
|
|
95
106
|
return true;
|
|
96
107
|
});
|
|
97
108
|
},
|
|
@@ -112,7 +123,8 @@ var mediaPlugin = function mediaPlugin(options) {
|
|
|
112
123
|
nodeViews: {
|
|
113
124
|
mediaGroup: (0, _mediaGroup.ReactMediaGroupNode)(portalProviderAPI, eventDispatcher, providerFactory, options),
|
|
114
125
|
mediaSingle: (0, _mediaSingle.ReactMediaSingleNode)(portalProviderAPI, eventDispatcher, providerFactory, dispatchAnalyticsEvent, options),
|
|
115
|
-
media: (0, _mediaNodeView.ReactMediaNode)(portalProviderAPI, eventDispatcher, providerFactory, options)
|
|
126
|
+
media: (0, _mediaNodeView.ReactMediaNode)(portalProviderAPI, eventDispatcher, providerFactory, options),
|
|
127
|
+
mediaInline: (0, _mediaInline.ReactMediaInlineNode)(portalProviderAPI, eventDispatcher, providerFactory)
|
|
116
128
|
},
|
|
117
129
|
errorReporter: errorReporter,
|
|
118
130
|
uploadErrorHandler: options && options.uploadErrorHandler,
|
|
@@ -242,8 +254,7 @@ var mediaPlugin = function mediaPlugin(options) {
|
|
|
242
254
|
var pluginState = _main.stateKey.getState(state);
|
|
243
255
|
|
|
244
256
|
pluginState.showMediaPicker();
|
|
245
|
-
|
|
246
|
-
return (0, _analytics.addAnalytics)(state, tr, {
|
|
257
|
+
return (0, _analytics.addAnalytics)(state, insert(''), {
|
|
247
258
|
action: _analytics.ACTION.OPENED,
|
|
248
259
|
actionSubject: _analytics.ACTION_SUBJECT.PICKER,
|
|
249
260
|
actionSubjectId: _analytics.ACTION_SUBJECT_ID.PICKER_CLOUD,
|
|
@@ -49,6 +49,10 @@ var _pluginKey = require("../pm-plugins/plugin-key");
|
|
|
49
49
|
|
|
50
50
|
var _mediaNodeUpdater = require("./mediaNodeUpdater");
|
|
51
51
|
|
|
52
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
53
|
+
|
|
54
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
55
|
+
|
|
52
56
|
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); }; }
|
|
53
57
|
|
|
54
58
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -151,23 +155,33 @@ var MediaGroup = /*#__PURE__*/function (_React$Component) {
|
|
|
151
155
|
// We declared this to get a fresh position every time
|
|
152
156
|
var getNodePos = function getNodePos() {
|
|
153
157
|
return getPos() + idx + 1;
|
|
158
|
+
}; // Media Inline creates a floating toolbar with the same options, excludes these options if enabled
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
var mediaInlineOptions = function mediaInlineOptions() {
|
|
162
|
+
var allowMediaInline = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
163
|
+
|
|
164
|
+
if (!allowMediaInline) {
|
|
165
|
+
return {
|
|
166
|
+
shouldEnableDownloadButton: mediaOptions.enableDownloadButton,
|
|
167
|
+
actions: [{
|
|
168
|
+
handler: disabled ? function () {} : _this.mediaPluginState.handleMediaNodeRemoval.bind(null, undefined, getNodePos),
|
|
169
|
+
icon: /*#__PURE__*/_react.default.createElement(_close.default, {
|
|
170
|
+
label: "delete"
|
|
171
|
+
})
|
|
172
|
+
}]
|
|
173
|
+
};
|
|
174
|
+
}
|
|
154
175
|
};
|
|
155
176
|
|
|
156
|
-
return {
|
|
177
|
+
return _objectSpread({
|
|
157
178
|
identifier: _this.getIdentifier(item),
|
|
158
179
|
isLazy: allowLazyLoading,
|
|
159
180
|
selected: _this.isNodeSelected(getNodePos()),
|
|
160
181
|
onClick: function onClick() {
|
|
161
182
|
(0, _utils.setNodeSelection)(_this.props.view, getNodePos());
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
actions: [{
|
|
165
|
-
handler: disabled ? function () {} : _this.mediaPluginState.handleMediaNodeRemoval.bind(null, undefined, getNodePos),
|
|
166
|
-
icon: /*#__PURE__*/_react.default.createElement(_close.default, {
|
|
167
|
-
label: "delete"
|
|
168
|
-
})
|
|
169
|
-
}]
|
|
170
|
-
};
|
|
183
|
+
}
|
|
184
|
+
}, mediaInlineOptions(mediaOptions.allowMediaInline));
|
|
171
185
|
});
|
|
172
186
|
|
|
173
187
|
return /*#__PURE__*/_react.default.createElement(_mediaFilmstrip.Filmstrip, {
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.ReactMediaInlineNode = exports.MediaInlineNodeView = exports.MediaInline = void 0;
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
23
|
+
|
|
24
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
25
|
+
|
|
26
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
27
|
+
|
|
28
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
29
|
+
|
|
30
|
+
var _nodeviews = require("../../../nodeviews/");
|
|
31
|
+
|
|
32
|
+
var _mediaCard = require("@atlaskit/media-card");
|
|
33
|
+
|
|
34
|
+
var _editorCommon = require("@atlaskit/editor-common");
|
|
35
|
+
|
|
36
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
|
+
|
|
38
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
39
|
+
|
|
40
|
+
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); }; }
|
|
41
|
+
|
|
42
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
43
|
+
|
|
44
|
+
var MediaInline = function MediaInline(props) {
|
|
45
|
+
var _useState = (0, _react.useState)({}),
|
|
46
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
47
|
+
viewMediaClientConfig = _useState2[0],
|
|
48
|
+
setViewMediaClientConfig = _useState2[1];
|
|
49
|
+
|
|
50
|
+
(0, _react.useEffect)(function () {
|
|
51
|
+
updateViewMediaClientConfig(props);
|
|
52
|
+
}, [props]);
|
|
53
|
+
|
|
54
|
+
var updateViewMediaClientConfig = /*#__PURE__*/function () {
|
|
55
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(props) {
|
|
56
|
+
var mediaProvider, _viewMediaClientConfig;
|
|
57
|
+
|
|
58
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
59
|
+
while (1) {
|
|
60
|
+
switch (_context.prev = _context.next) {
|
|
61
|
+
case 0:
|
|
62
|
+
_context.next = 2;
|
|
63
|
+
return props.mediaProvider;
|
|
64
|
+
|
|
65
|
+
case 2:
|
|
66
|
+
mediaProvider = _context.sent;
|
|
67
|
+
|
|
68
|
+
if (mediaProvider) {
|
|
69
|
+
_viewMediaClientConfig = mediaProvider.viewMediaClientConfig;
|
|
70
|
+
setViewMediaClientConfig(_viewMediaClientConfig);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
case 4:
|
|
74
|
+
case "end":
|
|
75
|
+
return _context.stop();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}, _callee);
|
|
79
|
+
}));
|
|
80
|
+
|
|
81
|
+
return function updateViewMediaClientConfig(_x) {
|
|
82
|
+
return _ref.apply(this, arguments);
|
|
83
|
+
};
|
|
84
|
+
}();
|
|
85
|
+
|
|
86
|
+
var _props$node$attrs = props.node.attrs,
|
|
87
|
+
id = _props$node$attrs.id,
|
|
88
|
+
collection = _props$node$attrs.collection;
|
|
89
|
+
var identifier = {
|
|
90
|
+
id: id,
|
|
91
|
+
mediaItemType: 'file',
|
|
92
|
+
collectionName: collection
|
|
93
|
+
};
|
|
94
|
+
return /*#__PURE__*/_react.default.createElement(_mediaCard.MediaInlineCard, {
|
|
95
|
+
identifier: identifier,
|
|
96
|
+
mediaClientConfig: viewMediaClientConfig
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
exports.MediaInline = MediaInline;
|
|
101
|
+
|
|
102
|
+
var MediaInlineNodeView = /*#__PURE__*/function (_ReactNodeView) {
|
|
103
|
+
(0, _inherits2.default)(MediaInlineNodeView, _ReactNodeView);
|
|
104
|
+
|
|
105
|
+
var _super = _createSuper(MediaInlineNodeView);
|
|
106
|
+
|
|
107
|
+
function MediaInlineNodeView() {
|
|
108
|
+
(0, _classCallCheck2.default)(this, MediaInlineNodeView);
|
|
109
|
+
return _super.apply(this, arguments);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
(0, _createClass2.default)(MediaInlineNodeView, [{
|
|
113
|
+
key: "createDomRef",
|
|
114
|
+
value: function createDomRef() {
|
|
115
|
+
var domRef = document.createElement('span');
|
|
116
|
+
domRef.contentEditable = 'false';
|
|
117
|
+
return domRef;
|
|
118
|
+
}
|
|
119
|
+
}, {
|
|
120
|
+
key: "getContentDOM",
|
|
121
|
+
value: function getContentDOM() {
|
|
122
|
+
var dom = document.createElement('span');
|
|
123
|
+
return {
|
|
124
|
+
dom: dom
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}, {
|
|
128
|
+
key: "ignoreMutation",
|
|
129
|
+
value: function ignoreMutation() {
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
}, {
|
|
133
|
+
key: "viewShouldUpdate",
|
|
134
|
+
value: function viewShouldUpdate(nextNode) {
|
|
135
|
+
if (this.node.attrs !== nextNode.attrs) {
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
}, {
|
|
142
|
+
key: "render",
|
|
143
|
+
value: function render(props) {
|
|
144
|
+
var _this = this;
|
|
145
|
+
|
|
146
|
+
var providerFactory = props.providerFactory;
|
|
147
|
+
return /*#__PURE__*/_react.default.createElement(_editorCommon.WithProviders, {
|
|
148
|
+
providers: ['mediaProvider'],
|
|
149
|
+
providerFactory: providerFactory,
|
|
150
|
+
renderNode: function renderNode(_ref2) {
|
|
151
|
+
var mediaProvider = _ref2.mediaProvider;
|
|
152
|
+
|
|
153
|
+
if (!mediaProvider) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return /*#__PURE__*/_react.default.createElement(MediaInline, {
|
|
158
|
+
identifier: _this.node.attrs.id,
|
|
159
|
+
mediaProvider: mediaProvider,
|
|
160
|
+
node: _this.node
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}]);
|
|
166
|
+
return MediaInlineNodeView;
|
|
167
|
+
}(_nodeviews.ReactNodeView);
|
|
168
|
+
|
|
169
|
+
exports.MediaInlineNodeView = MediaInlineNodeView;
|
|
170
|
+
|
|
171
|
+
var ReactMediaInlineNode = function ReactMediaInlineNode(portalProviderAPI, eventDispatcher, providerFactory) {
|
|
172
|
+
return function (node, view, getPos) {
|
|
173
|
+
return new MediaInlineNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
|
|
174
|
+
providerFactory: providerFactory
|
|
175
|
+
}).init();
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
exports.ReactMediaInlineNode = ReactMediaInlineNode;
|
|
@@ -59,6 +59,8 @@ var _types = require("../../analytics/types");
|
|
|
59
59
|
|
|
60
60
|
var _isImage = require("../utils/is-image");
|
|
61
61
|
|
|
62
|
+
var _document = require("../../../utils/document");
|
|
63
|
+
|
|
62
64
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
63
65
|
|
|
64
66
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -100,7 +102,7 @@ var MediaPluginStateImplementation = /*#__PURE__*/function () {
|
|
|
100
102
|
(0, _defineProperty2.default)(this, "pendingTask", Promise.resolve(null));
|
|
101
103
|
(0, _defineProperty2.default)(this, "destroyed", false);
|
|
102
104
|
(0, _defineProperty2.default)(this, "removeOnCloseListener", function () {});
|
|
103
|
-
(0, _defineProperty2.default)(this, "
|
|
105
|
+
(0, _defineProperty2.default)(this, "onPopupToggleCallback", function () {});
|
|
104
106
|
(0, _defineProperty2.default)(this, "pickers", []);
|
|
105
107
|
(0, _defineProperty2.default)(this, "pickerPromises", []);
|
|
106
108
|
(0, _defineProperty2.default)(this, "onContextIdentifierProvider", /*#__PURE__*/function () {
|
|
@@ -259,11 +261,12 @@ var MediaPluginStateImplementation = /*#__PURE__*/function () {
|
|
|
259
261
|
|
|
260
262
|
var type = _ref3.type;
|
|
261
263
|
var _this$view$state$sche = _this.view.state.schema.nodes,
|
|
264
|
+
mediaInline = _this$view$state$sche.mediaInline,
|
|
262
265
|
mediaSingle = _this$view$state$sche.mediaSingle,
|
|
263
266
|
media = _this$view$state$sche.media;
|
|
264
267
|
|
|
265
268
|
if ((_this$mediaOptions = _this.mediaOptions) !== null && _this$mediaOptions !== void 0 && _this$mediaOptions.allowMediaInline) {
|
|
266
|
-
return type === mediaSingle || type === media;
|
|
269
|
+
return type === mediaSingle || type === media || type === mediaInline;
|
|
267
270
|
}
|
|
268
271
|
|
|
269
272
|
return type === mediaSingle;
|
|
@@ -272,6 +275,10 @@ var MediaPluginStateImplementation = /*#__PURE__*/function () {
|
|
|
272
275
|
return !!_this.uploadMediaClientConfig && !!_this.uploadMediaClientConfig.userAuthProvider;
|
|
273
276
|
});
|
|
274
277
|
(0, _defineProperty2.default)(this, "insertFile", function (mediaState, onMediaStateChanged, pickerType) {
|
|
278
|
+
var _this$mediaOptions2;
|
|
279
|
+
|
|
280
|
+
var state = _this.view.state;
|
|
281
|
+
|
|
275
282
|
var mediaStateWithContext = _objectSpread(_objectSpread({}, mediaState), {}, {
|
|
276
283
|
contextId: _this.contextIdentifierProvider ? _this.contextIdentifierProvider.objectId : undefined
|
|
277
284
|
});
|
|
@@ -293,8 +300,10 @@ var MediaPluginStateImplementation = /*#__PURE__*/function () {
|
|
|
293
300
|
});
|
|
294
301
|
}
|
|
295
302
|
|
|
296
|
-
if ((0, _mediaSingle.isMediaSingle)(
|
|
303
|
+
if ((0, _mediaSingle.isMediaSingle)(state.schema, mediaStateWithContext.fileMimeType)) {
|
|
297
304
|
(0, _mediaSingle.insertMediaSingleNode)(_this.view, mediaStateWithContext, _this.getInputMethod(pickerType), collection, _this.mediaOptions && _this.mediaOptions.alignLeftOnInsert);
|
|
305
|
+
} else if ((_this$mediaOptions2 = _this.mediaOptions) !== null && _this$mediaOptions2 !== void 0 && _this$mediaOptions2.allowMediaInline && !(0, _document.isInEmptyLine)(state) && !(0, _mediaCommon.isInsidePotentialEmptyParagraph)(state) && (0, _mediaFiles.canInsertMediaInline)(state)) {
|
|
306
|
+
(0, _mediaFiles.insertMediaInlineNode)(_this.view, mediaStateWithContext, collection, _this.getInputMethod(pickerType));
|
|
298
307
|
} else {
|
|
299
308
|
(0, _mediaFiles.insertMediaGroupNode)(_this.view, [mediaStateWithContext], collection, _this.getInputMethod(pickerType));
|
|
300
309
|
} // do events when media state changes
|
|
@@ -344,7 +353,7 @@ var MediaPluginStateImplementation = /*#__PURE__*/function () {
|
|
|
344
353
|
return (0, _mediaCommon.splitMediaGroup)(_this.view);
|
|
345
354
|
});
|
|
346
355
|
(0, _defineProperty2.default)(this, "onPopupPickerClose", function () {
|
|
347
|
-
_this.
|
|
356
|
+
_this.onPopupToggleCallback(false);
|
|
348
357
|
});
|
|
349
358
|
(0, _defineProperty2.default)(this, "shouldUseMediaPickerPopup", function () {
|
|
350
359
|
if (!_this.mediaOptions || _this.mediaOptions && _this.mediaOptions.useMediaPickerPopup === undefined) {
|
|
@@ -364,13 +373,13 @@ var MediaPluginStateImplementation = /*#__PURE__*/function () {
|
|
|
364
373
|
|
|
365
374
|
_this.popupPicker.show();
|
|
366
375
|
|
|
367
|
-
_this.
|
|
376
|
+
_this.onPopupToggleCallback(true);
|
|
368
377
|
});
|
|
369
378
|
(0, _defineProperty2.default)(this, "setBrowseFn", function (browseFn) {
|
|
370
379
|
_this.openMediaPickerBrowser = browseFn;
|
|
371
380
|
});
|
|
372
|
-
(0, _defineProperty2.default)(this, "onPopupToggle", function (
|
|
373
|
-
_this.
|
|
381
|
+
(0, _defineProperty2.default)(this, "onPopupToggle", function (onPopupToggleCallback) {
|
|
382
|
+
_this.onPopupToggleCallback = onPopupToggleCallback;
|
|
374
383
|
});
|
|
375
384
|
(0, _defineProperty2.default)(this, "waitForPendingTasks", function (timeout, lastTask) {
|
|
376
385
|
if (lastTask && _this.pendingTask === lastTask) {
|
|
@@ -578,7 +587,7 @@ var MediaPluginStateImplementation = /*#__PURE__*/function () {
|
|
|
578
587
|
}, {
|
|
579
588
|
key: "getDomElement",
|
|
580
589
|
value: function getDomElement(domAtPos) {
|
|
581
|
-
var _this$
|
|
590
|
+
var _this$mediaOptions3;
|
|
582
591
|
|
|
583
592
|
var selection = this.view.state.selection;
|
|
584
593
|
|
|
@@ -590,7 +599,7 @@ var MediaPluginStateImplementation = /*#__PURE__*/function () {
|
|
|
590
599
|
return;
|
|
591
600
|
}
|
|
592
601
|
|
|
593
|
-
var position = (_this$
|
|
602
|
+
var position = (_this$mediaOptions3 = this.mediaOptions) !== null && _this$mediaOptions3 !== void 0 && _this$mediaOptions3.allowMediaInline ? selection.from + 1 : selection.from;
|
|
594
603
|
var node = (0, _prosemirrorUtils.findDomRefAtPos)(position, domAtPos);
|
|
595
604
|
|
|
596
605
|
if (node) {
|
|
@@ -13,6 +13,8 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
|
13
13
|
|
|
14
14
|
var _react = _interopRequireDefault(require("react"));
|
|
15
15
|
|
|
16
|
+
var _prosemirrorState = require("prosemirror-state");
|
|
17
|
+
|
|
16
18
|
var _prosemirrorUtils = require("prosemirror-utils");
|
|
17
19
|
|
|
18
20
|
var _remove = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/remove"));
|
|
@@ -53,6 +55,8 @@ var _filePreviewItem = require("./filePreviewItem");
|
|
|
53
55
|
|
|
54
56
|
var _utils = require("./utils");
|
|
55
57
|
|
|
58
|
+
var _prosemirrorModel = require("prosemirror-model");
|
|
59
|
+
|
|
56
60
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
57
61
|
|
|
58
62
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
@@ -65,13 +69,44 @@ var remove = function remove(state, dispatch) {
|
|
|
65
69
|
return true;
|
|
66
70
|
};
|
|
67
71
|
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
var handleRemoveMediaGroup = function handleRemoveMediaGroup(state, dispatch) {
|
|
73
|
+
var tr = (0, _utils.removeMediaGroupNode)(state);
|
|
74
|
+
|
|
75
|
+
if (dispatch) {
|
|
76
|
+
dispatch(tr);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return true;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
var changeMediaCardToInline = function changeMediaCardToInline(state, dispatch) {
|
|
83
|
+
var _state$schema$nodes = state.schema.nodes,
|
|
84
|
+
media = _state$schema$nodes.media,
|
|
85
|
+
mediaInline = _state$schema$nodes.mediaInline,
|
|
86
|
+
paragraph = _state$schema$nodes.paragraph;
|
|
87
|
+
var selectedNode = state.selection instanceof _prosemirrorState.NodeSelection && state.selection.node;
|
|
88
|
+
|
|
89
|
+
if (!selectedNode || !selectedNode.type === media) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
var mediaInlineNode = mediaInline.create({
|
|
94
|
+
id: selectedNode.attrs.id,
|
|
95
|
+
collection: selectedNode.attrs.collection
|
|
96
|
+
});
|
|
97
|
+
var space = state.schema.text(' ');
|
|
98
|
+
|
|
99
|
+
var content = _prosemirrorModel.Fragment.from([mediaInlineNode, space]);
|
|
100
|
+
|
|
101
|
+
var node = paragraph.createChecked({}, content);
|
|
102
|
+
var nodePos = state.tr.doc.resolve(state.selection.from).start() - 1;
|
|
103
|
+
var tr = (0, _utils.removeMediaGroupNode)(state);
|
|
104
|
+
tr = (0, _prosemirrorUtils.safeInsert)(node, nodePos, true)(tr);
|
|
105
|
+
|
|
106
|
+
if (dispatch) {
|
|
107
|
+
dispatch(tr);
|
|
108
|
+
}
|
|
73
109
|
|
|
74
|
-
mediaPluginState.handleMediaNodeRemoval(undefined, getPos);
|
|
75
110
|
return true;
|
|
76
111
|
};
|
|
77
112
|
|
|
@@ -83,9 +118,7 @@ var generateMediaCardFloatingToolbar = function generateMediaCardFloatingToolbar
|
|
|
83
118
|
options: [{
|
|
84
119
|
title: intl.formatMessage(_messages2.messages.inline),
|
|
85
120
|
selected: false,
|
|
86
|
-
onClick:
|
|
87
|
-
return true;
|
|
88
|
-
},
|
|
121
|
+
onClick: changeMediaCardToInline,
|
|
89
122
|
testId: 'inline-appearance'
|
|
90
123
|
}, {
|
|
91
124
|
title: intl.formatMessage(_mediaUi.messages.displayThumbnail),
|
|
@@ -129,9 +162,7 @@ var generateMediaCardFloatingToolbar = function generateMediaCardFloatingToolbar
|
|
|
129
162
|
onFocus: (0, _decoration.hoverDecoration)(mediaGroup, true),
|
|
130
163
|
onBlur: (0, _decoration.hoverDecoration)(mediaGroup, false),
|
|
131
164
|
title: intl.formatMessage(_messages.default.remove),
|
|
132
|
-
onClick:
|
|
133
|
-
return removeMediaCard(state, mediaPluginState);
|
|
134
|
-
},
|
|
165
|
+
onClick: handleRemoveMediaGroup,
|
|
135
166
|
testId: 'media-toolbar-remove-button'
|
|
136
167
|
}];
|
|
137
168
|
return items;
|
|
@@ -236,10 +267,11 @@ var generateMediaSingleFloatingToolbar = function generateMediaSingleFloatingToo
|
|
|
236
267
|
|
|
237
268
|
var floatingToolbar = function floatingToolbar(state, intl) {
|
|
238
269
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
239
|
-
var _state$schema$
|
|
240
|
-
media = _state$schema$
|
|
241
|
-
|
|
242
|
-
|
|
270
|
+
var _state$schema$nodes2 = state.schema.nodes,
|
|
271
|
+
media = _state$schema$nodes2.media,
|
|
272
|
+
mediaInline = _state$schema$nodes2.mediaInline,
|
|
273
|
+
mediaSingle = _state$schema$nodes2.mediaSingle,
|
|
274
|
+
mediaGroup = _state$schema$nodes2.mediaGroup;
|
|
243
275
|
var altTextValidator = options.altTextValidator,
|
|
244
276
|
allowLinking = options.allowLinking,
|
|
245
277
|
allowAltTextOnImages = options.allowAltTextOnImages,
|
|
@@ -254,7 +286,7 @@ var floatingToolbar = function floatingToolbar(state, intl) {
|
|
|
254
286
|
return;
|
|
255
287
|
}
|
|
256
288
|
|
|
257
|
-
var nodeType = allowMediaInline ? [mediaSingle, media] : [mediaSingle];
|
|
289
|
+
var nodeType = allowMediaInline ? [mediaInline, mediaSingle, media] : [mediaSingle];
|
|
258
290
|
var baseToolbar = {
|
|
259
291
|
title: 'Media floating controls',
|
|
260
292
|
nodeType: nodeType,
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.downloadMedia = exports.getSelectedMediaContainerNodeAttrs = void 0;
|
|
8
|
+
exports.removeMediaGroupNode = exports.downloadMedia = exports.getSelectedMediaContainerNodeAttrs = void 0;
|
|
9
9
|
|
|
10
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
11
|
|
|
@@ -13,6 +13,8 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
13
13
|
|
|
14
14
|
var _mediaClient = require("@atlaskit/media-client");
|
|
15
15
|
|
|
16
|
+
var _prosemirrorUtils = require("prosemirror-utils");
|
|
17
|
+
|
|
16
18
|
var getSelectedMediaContainerNodeAttrs = function getSelectedMediaContainerNodeAttrs(mediaPluginState) {
|
|
17
19
|
var selectedNode = mediaPluginState.selectedMediaContainerNode();
|
|
18
20
|
|
|
@@ -74,4 +76,20 @@ var downloadMedia = /*#__PURE__*/function () {
|
|
|
74
76
|
};
|
|
75
77
|
}();
|
|
76
78
|
|
|
77
|
-
exports.downloadMedia = downloadMedia;
|
|
79
|
+
exports.downloadMedia = downloadMedia;
|
|
80
|
+
|
|
81
|
+
var removeMediaGroupNode = function removeMediaGroupNode(state) {
|
|
82
|
+
var mediaGroup = state.schema.nodes.mediaGroup;
|
|
83
|
+
var mediaGroupParent = (0, _prosemirrorUtils.findParentNodeOfType)(mediaGroup)(state.selection);
|
|
84
|
+
var tr = state.tr; // If it is the last media group in filmstrip, remove the entire filmstrip
|
|
85
|
+
|
|
86
|
+
if (mediaGroupParent && mediaGroupParent.node.childCount === 1) {
|
|
87
|
+
tr = (0, _prosemirrorUtils.removeParentNodeOfType)(mediaGroup)(tr);
|
|
88
|
+
} else {
|
|
89
|
+
tr = (0, _prosemirrorUtils.removeSelectedNode)(tr);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return tr;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
exports.removeMediaGroupNode = removeMediaGroupNode;
|