@atlaskit/editor-plugin-media 3.2.0 → 4.1.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 +22 -0
- package/dist/cjs/nodeviews/mediaGroup.js +16 -323
- package/dist/cjs/nodeviews/mediaNodeView/media.js +15 -6
- package/dist/cjs/nodeviews/mediaSingle.js +47 -593
- package/dist/cjs/pm-plugins/alt-text/ui/AltTextEdit.js +2 -3
- package/dist/cjs/pm-plugins/pixel-resizing/ui/pixel-entry.js +1 -1
- package/dist/cjs/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +67 -649
- package/dist/cjs/ui/toolbar/alt-text.js +1 -2
- package/dist/cjs/ui/toolbar/index.js +7 -15
- package/dist/cjs/ui/toolbar/linking.js +3 -4
- package/dist/cjs/ui/toolbar/mediaInline.js +3 -7
- package/dist/cjs/ui/toolbar/pixel-resizing.js +1 -5
- package/dist/es2019/nodeviews/mediaGroup.js +1 -272
- package/dist/es2019/nodeviews/mediaNodeView/media.js +14 -5
- package/dist/es2019/nodeviews/mediaSingle.js +6 -477
- package/dist/es2019/pm-plugins/alt-text/ui/AltTextEdit.js +2 -3
- package/dist/es2019/pm-plugins/pixel-resizing/ui/pixel-entry.js +1 -1
- package/dist/es2019/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +2 -510
- package/dist/es2019/ui/toolbar/alt-text.js +1 -2
- package/dist/es2019/ui/toolbar/index.js +7 -15
- package/dist/es2019/ui/toolbar/linking.js +3 -4
- package/dist/es2019/ui/toolbar/mediaInline.js +3 -7
- package/dist/es2019/ui/toolbar/pixel-resizing.js +1 -5
- package/dist/esm/nodeviews/mediaGroup.js +15 -322
- package/dist/esm/nodeviews/mediaNodeView/media.js +15 -6
- package/dist/esm/nodeviews/mediaSingle.js +47 -593
- package/dist/esm/pm-plugins/alt-text/ui/AltTextEdit.js +2 -3
- package/dist/esm/pm-plugins/pixel-resizing/ui/pixel-entry.js +1 -1
- package/dist/esm/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +64 -650
- package/dist/esm/ui/toolbar/alt-text.js +1 -2
- package/dist/esm/ui/toolbar/index.js +7 -15
- package/dist/esm/ui/toolbar/linking.js +3 -4
- package/dist/esm/ui/toolbar/mediaInline.js +3 -7
- package/dist/esm/ui/toolbar/pixel-resizing.js +1 -5
- package/dist/types/nodeviews/__mocks__/mediaNodeUpdater.d.ts +1 -0
- package/dist/types/nodeviews/mediaGroup.d.ts +2 -23
- package/dist/types/nodeviews/mediaNodeView/media.d.ts +1 -0
- package/dist/types/nodeviews/mediaSingle.d.ts +2 -38
- package/dist/types/nodeviews/mediaSingleNext.d.ts +1 -2
- package/dist/types-ts4.5/nodeviews/__mocks__/mediaNodeUpdater.d.ts +1 -0
- package/dist/types-ts4.5/nodeviews/mediaGroup.d.ts +2 -23
- package/dist/types-ts4.5/nodeviews/mediaNodeView/media.d.ts +1 -0
- package/dist/types-ts4.5/nodeviews/mediaSingle.d.ts +2 -38
- package/dist/types-ts4.5/nodeviews/mediaSingleNext.d.ts +1 -2
- package/package.json +14 -23
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-media
|
|
2
2
|
|
|
3
|
+
## 4.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#172447](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/172447)
|
|
8
|
+
[`06e9b6904aff2`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/06e9b6904aff2) -
|
|
9
|
+
[https://product-fabric.atlassian.net/browse/ED-27984](ED-27984) - clean up
|
|
10
|
+
platform_editor_react18_phase2**media_single and platform_editor_react18_phase2**media_single_jira
|
|
11
|
+
FFs
|
|
12
|
+
|
|
13
|
+
## 4.0.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- [#169011](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/169011)
|
|
18
|
+
[`8b33fc800cc29`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8b33fc800cc29) -
|
|
19
|
+
Using viewAndUploadMediaClientConfig to enable Video Captions upload and delete from Media Card
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies
|
|
24
|
+
|
|
3
25
|
## 3.2.0
|
|
4
26
|
|
|
5
27
|
### Minor Changes
|
|
@@ -4,311 +4,21 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
7
|
+
exports.ReactMediaGroupNode = void 0;
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
10
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
11
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
12
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
13
|
var _react = _interopRequireDefault(require("react"));
|
|
17
|
-
var _reactIntlNext = require("react-intl-next");
|
|
18
14
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
19
|
-
var _media = require("@atlaskit/editor-common/media");
|
|
20
15
|
var _providerFactory = require("@atlaskit/editor-common/provider-factory");
|
|
21
16
|
var _reactNodeView = _interopRequireDefault(require("@atlaskit/editor-common/react-node-view"));
|
|
22
17
|
var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
|
|
23
|
-
var _utils = require("@atlaskit/editor-common/utils");
|
|
24
|
-
var _closeEditorClose = _interopRequireDefault(require("@atlaskit/icon/core/migration/close--editor-close"));
|
|
25
|
-
var _mediaCommon = require("@atlaskit/media-common");
|
|
26
|
-
var _mediaFilmstrip = require("@atlaskit/media-filmstrip");
|
|
27
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
28
|
-
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
29
|
-
var _pluginKey = require("../pm-plugins/plugin-key");
|
|
30
18
|
var _useMediaProvider = require("../ui/hooks/useMediaProvider");
|
|
31
19
|
var _mediaGroupNext = require("./mediaGroupNext");
|
|
32
|
-
var _mediaNodeUpdater = require("./mediaNodeUpdater");
|
|
33
|
-
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; }
|
|
34
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
35
20
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
36
21
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
37
|
-
var isMediaGroupSelectedFromProps = function isMediaGroupSelectedFromProps(props) {
|
|
38
|
-
/**
|
|
39
|
-
* ED-19831
|
|
40
|
-
* There is a getPos issue coming from this code. We need to apply this workaround for now and apply a patch
|
|
41
|
-
* directly to confluence since this bug is now in production.
|
|
42
|
-
*/
|
|
43
|
-
var pos;
|
|
44
|
-
try {
|
|
45
|
-
pos = props.getPos ? props.getPos() : undefined;
|
|
46
|
-
} catch (e) {
|
|
47
|
-
pos = undefined;
|
|
48
|
-
}
|
|
49
|
-
if (typeof pos !== 'number') {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
return (0, _utils.isNodeSelectedOrInRange)(props.anchorPos, props.headPos, pos, props.node.nodeSize);
|
|
53
|
-
};
|
|
54
|
-
var hasSelectionChanged = function hasSelectionChanged(oldProps, newProps) {
|
|
55
|
-
if (isMediaGroupSelectedFromProps(oldProps) !== isMediaGroupSelectedFromProps(newProps)) {
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
if (isMediaGroupSelectedFromProps(newProps) === _utils.SelectedState.selectedInside) {
|
|
59
|
-
return oldProps.anchorPos !== newProps.anchorPos;
|
|
60
|
-
}
|
|
61
|
-
return false;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// eslint-disable-next-line @repo/internal/react/no-class-components
|
|
65
|
-
var MediaGroup = /*#__PURE__*/function (_React$Component) {
|
|
66
|
-
function MediaGroup(_props) {
|
|
67
|
-
var _this;
|
|
68
|
-
(0, _classCallCheck2.default)(this, MediaGroup);
|
|
69
|
-
_this = _callSuper(this, MediaGroup, [_props]);
|
|
70
|
-
(0, _defineProperty2.default)(_this, "state", {
|
|
71
|
-
viewMediaClientConfig: undefined
|
|
72
|
-
});
|
|
73
|
-
(0, _defineProperty2.default)(_this, "updateNodeAttrs", function (props, node, getPos) {
|
|
74
|
-
var view = props.view,
|
|
75
|
-
mediaProvider = props.mediaProvider,
|
|
76
|
-
contextIdentifierProvider = props.contextIdentifierProvider;
|
|
77
|
-
var mediaNodeUpdater = new _mediaNodeUpdater.MediaNodeUpdater({
|
|
78
|
-
view: view,
|
|
79
|
-
mediaProvider: mediaProvider,
|
|
80
|
-
contextIdentifierProvider: contextIdentifierProvider,
|
|
81
|
-
node: node,
|
|
82
|
-
isMediaSingle: false
|
|
83
|
-
});
|
|
84
|
-
mediaNodeUpdater.updateNodeAttrs(getPos);
|
|
85
|
-
});
|
|
86
|
-
(0, _defineProperty2.default)(_this, "setMediaItems", function (props) {
|
|
87
|
-
var _this$mediaPluginStat;
|
|
88
|
-
var updatedAttrs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
89
|
-
var node = props.node;
|
|
90
|
-
var oldMediaNodes = _this.mediaNodes;
|
|
91
|
-
_this.mediaNodes = [];
|
|
92
|
-
node.forEach(function (item, childOffset) {
|
|
93
|
-
var getPos = function getPos() {
|
|
94
|
-
var pos = props.getPos();
|
|
95
|
-
if (typeof pos !== 'number') {
|
|
96
|
-
// That may seems weird, but the previous type wasn't match with the real ProseMirror code. And a lot of Media API was built expecting a number
|
|
97
|
-
// Because the original code would return NaN on runtime
|
|
98
|
-
// We are just make it explict now.
|
|
99
|
-
// We may run a deep investagation on Media code to figure out a better fix. But, for now, we want to keep the current behavior.
|
|
100
|
-
// TODO: ED-13910 - prosemirror-bump leftovers
|
|
101
|
-
return NaN;
|
|
102
|
-
}
|
|
103
|
-
return pos + childOffset + 1;
|
|
104
|
-
};
|
|
105
|
-
_this.mediaNodes.push(item);
|
|
106
|
-
if (updatedAttrs) {
|
|
107
|
-
_this.updateNodeAttrs(props, item, getPos);
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
(_this$mediaPluginStat = _this.mediaPluginState) === null || _this$mediaPluginStat === void 0 || _this$mediaPluginStat.handleMediaGroupUpdate(oldMediaNodes, _this.mediaNodes);
|
|
111
|
-
});
|
|
112
|
-
(0, _defineProperty2.default)(_this, "getIdentifier", function (item) {
|
|
113
|
-
if (item.attrs.type === 'external') {
|
|
114
|
-
return {
|
|
115
|
-
mediaItemType: 'external-image',
|
|
116
|
-
dataURI: item.attrs.url
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
return {
|
|
120
|
-
id: item.attrs.id,
|
|
121
|
-
mediaItemType: 'file',
|
|
122
|
-
collectionName: item.attrs.collection
|
|
123
|
-
};
|
|
124
|
-
});
|
|
125
|
-
(0, _defineProperty2.default)(_this, "isNodeSelected", function (nodePos) {
|
|
126
|
-
var selected = isMediaGroupSelectedFromProps(_this.props);
|
|
127
|
-
if (selected === _utils.SelectedState.selectedInRange) {
|
|
128
|
-
return true;
|
|
129
|
-
}
|
|
130
|
-
if (selected === _utils.SelectedState.selectedInside && _this.props.anchorPos === nodePos) {
|
|
131
|
-
return true;
|
|
132
|
-
}
|
|
133
|
-
return false;
|
|
134
|
-
});
|
|
135
|
-
(0, _defineProperty2.default)(_this, "renderChildNodes", function () {
|
|
136
|
-
var viewMediaClientConfig = _this.state.viewMediaClientConfig;
|
|
137
|
-
var _this$props = _this.props,
|
|
138
|
-
getPos = _this$props.getPos,
|
|
139
|
-
allowLazyLoading = _this$props.allowLazyLoading,
|
|
140
|
-
disabled = _this$props.disabled,
|
|
141
|
-
mediaOptions = _this$props.mediaOptions,
|
|
142
|
-
editorViewMode = _this$props.editorViewMode;
|
|
143
|
-
var items = _this.mediaNodes.map(function (item, idx) {
|
|
144
|
-
// We declared this to get a fresh position every time
|
|
145
|
-
var getNodePos = function getNodePos() {
|
|
146
|
-
var pos = getPos();
|
|
147
|
-
if (typeof pos !== 'number') {
|
|
148
|
-
// That may seems weird, but the previous type wasn't match with the real ProseMirror code. And a lot of Media API was built expecting a number
|
|
149
|
-
// Because the original code would return NaN on runtime
|
|
150
|
-
// We are just make it explict now.
|
|
151
|
-
// We may run a deep investagation on Media code to figure out a better fix. But, for now, we want to keep the current behavior.
|
|
152
|
-
// TODO: ED-13910 - prosemirror-bump leftovers
|
|
153
|
-
return NaN;
|
|
154
|
-
}
|
|
155
|
-
return pos + idx + 1;
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
// Media Inline creates a floating toolbar with the same options, excludes these options if enabled
|
|
159
|
-
var mediaInlineOptions = function mediaInlineOptions() {
|
|
160
|
-
var allowMediaInline = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
161
|
-
if (!allowMediaInline) {
|
|
162
|
-
return {
|
|
163
|
-
shouldEnableDownloadButton: mediaOptions.enableDownloadButton,
|
|
164
|
-
actions: [{
|
|
165
|
-
handler: disabled || !_this.mediaPluginState ? function () {} : _this.mediaPluginState.handleMediaNodeRemoval.bind(null, undefined, getNodePos),
|
|
166
|
-
icon: /*#__PURE__*/_react.default.createElement(_closeEditorClose.default, {
|
|
167
|
-
label: _this.props.intl.formatMessage(_media.nodeViewsMessages.mediaGroupDeleteLabel)
|
|
168
|
-
})
|
|
169
|
-
}]
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
return _objectSpread({
|
|
174
|
-
identifier: _this.getIdentifier(item),
|
|
175
|
-
isLazy: allowLazyLoading,
|
|
176
|
-
selected: _this.isNodeSelected(getNodePos()),
|
|
177
|
-
onClick: function onClick() {
|
|
178
|
-
(0, _utils.setNodeSelection)(_this.props.view, getNodePos());
|
|
179
|
-
}
|
|
180
|
-
}, mediaInlineOptions((0, _platformFeatureFlags.fg)('platform_editor_remove_media_inline_feature_flag') ? mediaOptions.allowMediaInlineImages : (0, _mediaCommon.getMediaFeatureFlag)('mediaInline', mediaOptions.featureFlags)));
|
|
181
|
-
});
|
|
182
|
-
return /*#__PURE__*/_react.default.createElement(_mediaFilmstrip.Filmstrip, {
|
|
183
|
-
items: items,
|
|
184
|
-
mediaClientConfig: viewMediaClientConfig,
|
|
185
|
-
featureFlags: mediaOptions.featureFlags,
|
|
186
|
-
shouldOpenMediaViewer: editorViewMode && (0, _experiments.editorExperiment)('platform_editor_controls', 'control')
|
|
187
|
-
});
|
|
188
|
-
});
|
|
189
|
-
_this.mediaNodes = [];
|
|
190
|
-
_this.mediaPluginState = _pluginKey.stateKey.getState(_props.view.state);
|
|
191
|
-
_this.setMediaItems(_props);
|
|
192
|
-
_this.state = {
|
|
193
|
-
viewMediaClientConfig: undefined
|
|
194
|
-
};
|
|
195
|
-
return _this;
|
|
196
|
-
}
|
|
197
|
-
(0, _inherits2.default)(MediaGroup, _React$Component);
|
|
198
|
-
return (0, _createClass2.default)(MediaGroup, [{
|
|
199
|
-
key: "componentDidMount",
|
|
200
|
-
value: function componentDidMount() {
|
|
201
|
-
var _this2 = this;
|
|
202
|
-
this.updateMediaClientConfig();
|
|
203
|
-
this.mediaNodes.forEach( /*#__PURE__*/function () {
|
|
204
|
-
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(node) {
|
|
205
|
-
var _this2$props, view, mediaProvider, contextIdentifierProvider, mediaNodeUpdater, getPos, contextId, shouldNodeBeDeepCopied;
|
|
206
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
207
|
-
while (1) switch (_context.prev = _context.next) {
|
|
208
|
-
case 0:
|
|
209
|
-
if (!(node.attrs.type === 'external')) {
|
|
210
|
-
_context.next = 2;
|
|
211
|
-
break;
|
|
212
|
-
}
|
|
213
|
-
return _context.abrupt("return");
|
|
214
|
-
case 2:
|
|
215
|
-
_this2$props = _this2.props, view = _this2$props.view, mediaProvider = _this2$props.mediaProvider, contextIdentifierProvider = _this2$props.contextIdentifierProvider;
|
|
216
|
-
mediaNodeUpdater = new _mediaNodeUpdater.MediaNodeUpdater({
|
|
217
|
-
view: view,
|
|
218
|
-
mediaProvider: mediaProvider,
|
|
219
|
-
contextIdentifierProvider: contextIdentifierProvider,
|
|
220
|
-
node: node,
|
|
221
|
-
isMediaSingle: false
|
|
222
|
-
});
|
|
223
|
-
getPos = function getPos() {
|
|
224
|
-
var pos = _this2.props.getPos();
|
|
225
|
-
if (typeof pos !== 'number') {
|
|
226
|
-
// That may seems weird, but the previous type wasn't match with the real ProseMirror code. And a lot of Media API was built expecting a number
|
|
227
|
-
// Because the original code would return NaN on runtime
|
|
228
|
-
// We are just make it explict now.
|
|
229
|
-
// We may run a deep investagation on Media code to figure out a better fix. But, for now, we want to keep the current behavior.
|
|
230
|
-
// TODO: ED-13910 - prosemirror-bump leftovers
|
|
231
|
-
return NaN;
|
|
232
|
-
}
|
|
233
|
-
return pos + 1;
|
|
234
|
-
};
|
|
235
|
-
contextId = mediaNodeUpdater.getNodeContextId();
|
|
236
|
-
if (contextId) {
|
|
237
|
-
_context.next = 9;
|
|
238
|
-
break;
|
|
239
|
-
}
|
|
240
|
-
_context.next = 9;
|
|
241
|
-
return mediaNodeUpdater.updateNodeContextId(getPos);
|
|
242
|
-
case 9:
|
|
243
|
-
_context.next = 11;
|
|
244
|
-
return mediaNodeUpdater.shouldNodeBeDeepCopied();
|
|
245
|
-
case 11:
|
|
246
|
-
shouldNodeBeDeepCopied = _context.sent;
|
|
247
|
-
if (!shouldNodeBeDeepCopied) {
|
|
248
|
-
_context.next = 15;
|
|
249
|
-
break;
|
|
250
|
-
}
|
|
251
|
-
_context.next = 15;
|
|
252
|
-
return mediaNodeUpdater.copyNodeFromPos(getPos, {
|
|
253
|
-
traceId: node.attrs.__mediaTraceId
|
|
254
|
-
});
|
|
255
|
-
case 15:
|
|
256
|
-
case "end":
|
|
257
|
-
return _context.stop();
|
|
258
|
-
}
|
|
259
|
-
}, _callee);
|
|
260
|
-
}));
|
|
261
|
-
return function (_x) {
|
|
262
|
-
return _ref.apply(this, arguments);
|
|
263
|
-
};
|
|
264
|
-
}());
|
|
265
|
-
}
|
|
266
|
-
}, {
|
|
267
|
-
key: "componentWillUnmount",
|
|
268
|
-
value: function componentWillUnmount() {
|
|
269
|
-
var _this$mediaPluginStat2;
|
|
270
|
-
(_this$mediaPluginStat2 = this.mediaPluginState) === null || _this$mediaPluginStat2 === void 0 || _this$mediaPluginStat2.handleMediaGroupUpdate(this.mediaNodes, []);
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
// Ignored via go/ees005
|
|
274
|
-
// eslint-disable-next-line react/no-unsafe
|
|
275
|
-
}, {
|
|
276
|
-
key: "UNSAFE_componentWillReceiveProps",
|
|
277
|
-
value: function UNSAFE_componentWillReceiveProps(props) {
|
|
278
|
-
this.updateMediaClientConfig();
|
|
279
|
-
this.setMediaItems(props, props.isCopyPasteEnabled || props.isCopyPasteEnabled === undefined);
|
|
280
|
-
}
|
|
281
|
-
}, {
|
|
282
|
-
key: "shouldComponentUpdate",
|
|
283
|
-
value: function shouldComponentUpdate(nextProps) {
|
|
284
|
-
var _this$mediaPluginStat3;
|
|
285
|
-
if (hasSelectionChanged(this.props, nextProps) || this.props.node !== nextProps.node || this.state.viewMediaClientConfig !== ((_this$mediaPluginStat3 = this.mediaPluginState) === null || _this$mediaPluginStat3 === void 0 ? void 0 : _this$mediaPluginStat3.mediaClientConfig)) {
|
|
286
|
-
return true;
|
|
287
|
-
}
|
|
288
|
-
return false;
|
|
289
|
-
}
|
|
290
|
-
}, {
|
|
291
|
-
key: "updateMediaClientConfig",
|
|
292
|
-
value: function updateMediaClientConfig() {
|
|
293
|
-
var viewMediaClientConfig = this.state.viewMediaClientConfig;
|
|
294
|
-
var _ref2 = this.mediaPluginState || {},
|
|
295
|
-
mediaClientConfig = _ref2.mediaClientConfig;
|
|
296
|
-
if (!viewMediaClientConfig && mediaClientConfig) {
|
|
297
|
-
this.setState({
|
|
298
|
-
viewMediaClientConfig: mediaClientConfig
|
|
299
|
-
});
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
}, {
|
|
303
|
-
key: "render",
|
|
304
|
-
value: function render() {
|
|
305
|
-
return this.renderChildNodes();
|
|
306
|
-
}
|
|
307
|
-
}]);
|
|
308
|
-
}(_react.default.Component);
|
|
309
|
-
(0, _defineProperty2.default)(MediaGroup, "displayName", 'MediaGroup');
|
|
310
|
-
var IntlMediaGroup = (0, _reactIntlNext.injectIntl)(MediaGroup);
|
|
311
|
-
var _default = exports.default = IntlMediaGroup;
|
|
312
22
|
var useSharedState = (0, _hooks.sharedPluginStateHookMigratorFactory)(function (pluginInjectionApi) {
|
|
313
23
|
var editorDisabled = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(pluginInjectionApi, 'editorDisabled.editorDisabled');
|
|
314
24
|
var editorViewMode = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(pluginInjectionApi, 'editorViewMode.mode');
|
|
@@ -325,9 +35,9 @@ var useSharedState = (0, _hooks.sharedPluginStateHookMigratorFactory)(function (
|
|
|
325
35
|
editorViewMode: editorViewModePlugin === null || editorViewModePlugin === void 0 ? void 0 : editorViewModePlugin.mode
|
|
326
36
|
};
|
|
327
37
|
});
|
|
328
|
-
function MediaGroupNodeViewInternal(
|
|
329
|
-
var renderFn =
|
|
330
|
-
pluginInjectionApi =
|
|
38
|
+
function MediaGroupNodeViewInternal(_ref) {
|
|
39
|
+
var renderFn = _ref.renderFn,
|
|
40
|
+
pluginInjectionApi = _ref.pluginInjectionApi;
|
|
331
41
|
var _useSharedState = useSharedState(pluginInjectionApi),
|
|
332
42
|
editorDisabled = _useSharedState.editorDisabled,
|
|
333
43
|
editorViewMode = _useSharedState.editorViewMode;
|
|
@@ -347,7 +57,7 @@ var MediaGroupNodeView = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
347
57
|
return (0, _createClass2.default)(MediaGroupNodeView, [{
|
|
348
58
|
key: "render",
|
|
349
59
|
value: function render(props, forwardRef) {
|
|
350
|
-
var
|
|
60
|
+
var _this = this;
|
|
351
61
|
var providerFactory = props.providerFactory,
|
|
352
62
|
mediaOptions = props.mediaOptions,
|
|
353
63
|
pluginInjectionApi = props.pluginInjectionApi;
|
|
@@ -355,45 +65,28 @@ var MediaGroupNodeView = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
355
65
|
return /*#__PURE__*/_react.default.createElement(_providerFactory.WithProviders, {
|
|
356
66
|
providers: ['contextIdentifierProvider'],
|
|
357
67
|
providerFactory: providerFactory,
|
|
358
|
-
renderNode: function renderNode(
|
|
359
|
-
var contextIdentifierProvider =
|
|
360
|
-
var renderFn = function renderFn(
|
|
361
|
-
var mediaProviderFromState =
|
|
362
|
-
editorDisabled =
|
|
363
|
-
editorViewMode =
|
|
68
|
+
renderNode: function renderNode(_ref2) {
|
|
69
|
+
var contextIdentifierProvider = _ref2.contextIdentifierProvider;
|
|
70
|
+
var renderFn = function renderFn(_ref3) {
|
|
71
|
+
var mediaProviderFromState = _ref3.mediaProvider,
|
|
72
|
+
editorDisabled = _ref3.editorDisabled,
|
|
73
|
+
editorViewMode = _ref3.editorViewMode;
|
|
364
74
|
var mediaProvider = mediaProviderFromState ? Promise.resolve(mediaProviderFromState) : undefined;
|
|
365
75
|
if (!mediaProvider) {
|
|
366
76
|
return null;
|
|
367
77
|
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
node: _this3.node,
|
|
371
|
-
getPos: getPos,
|
|
372
|
-
view: _this3.view,
|
|
373
|
-
forwardRef: forwardRef,
|
|
374
|
-
disabled: editorDisabled,
|
|
375
|
-
allowLazyLoading: mediaOptions.allowLazyLoading,
|
|
376
|
-
mediaProvider: mediaProvider,
|
|
377
|
-
contextIdentifierProvider: contextIdentifierProvider,
|
|
378
|
-
isCopyPasteEnabled: mediaOptions.isCopyPasteEnabled,
|
|
379
|
-
anchorPos: _this3.view.state.selection.$anchor.pos,
|
|
380
|
-
headPos: _this3.view.state.selection.$head.pos,
|
|
381
|
-
mediaOptions: mediaOptions,
|
|
382
|
-
editorViewMode: editorViewMode === 'view'
|
|
383
|
-
});
|
|
384
|
-
}
|
|
385
|
-
return /*#__PURE__*/_react.default.createElement(IntlMediaGroup, {
|
|
386
|
-
node: _this3.node,
|
|
78
|
+
return /*#__PURE__*/_react.default.createElement(_mediaGroupNext.MediaGroupNext, {
|
|
79
|
+
node: _this.node,
|
|
387
80
|
getPos: getPos,
|
|
388
|
-
view:
|
|
81
|
+
view: _this.view,
|
|
389
82
|
forwardRef: forwardRef,
|
|
390
83
|
disabled: editorDisabled,
|
|
391
84
|
allowLazyLoading: mediaOptions.allowLazyLoading,
|
|
392
85
|
mediaProvider: mediaProvider,
|
|
393
86
|
contextIdentifierProvider: contextIdentifierProvider,
|
|
394
87
|
isCopyPasteEnabled: mediaOptions.isCopyPasteEnabled,
|
|
395
|
-
anchorPos:
|
|
396
|
-
headPos:
|
|
88
|
+
anchorPos: _this.view.state.selection.$anchor.pos,
|
|
89
|
+
headPos: _this.view.state.selection.$head.pos,
|
|
397
90
|
mediaOptions: mediaOptions,
|
|
398
91
|
editorViewMode: editorViewMode === 'view'
|
|
399
92
|
});
|
|
@@ -41,7 +41,7 @@ var MediaNode = exports.MediaNode = /*#__PURE__*/function (_Component) {
|
|
|
41
41
|
(0, _defineProperty2.default)(_this, "videoControlsWrapperRef", /*#__PURE__*/_react.default.createRef());
|
|
42
42
|
(0, _defineProperty2.default)(_this, "unbindKeyDown", null);
|
|
43
43
|
(0, _defineProperty2.default)(_this, "setViewMediaClientConfig", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
44
|
-
var mediaProvider, viewMediaClientConfig;
|
|
44
|
+
var mediaProvider, viewMediaClientConfig, viewAndUploadMediaClientConfig;
|
|
45
45
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
46
46
|
while (1) switch (_context.prev = _context.next) {
|
|
47
47
|
case 0:
|
|
@@ -51,8 +51,10 @@ var MediaNode = exports.MediaNode = /*#__PURE__*/function (_Component) {
|
|
|
51
51
|
mediaProvider = _context.sent;
|
|
52
52
|
if (mediaProvider) {
|
|
53
53
|
viewMediaClientConfig = mediaProvider.viewMediaClientConfig;
|
|
54
|
+
viewAndUploadMediaClientConfig = mediaProvider.viewAndUploadMediaClientConfig;
|
|
54
55
|
_this.setState({
|
|
55
|
-
viewMediaClientConfig: viewMediaClientConfig
|
|
56
|
+
viewMediaClientConfig: viewMediaClientConfig,
|
|
57
|
+
viewAndUploadMediaClientConfig: viewAndUploadMediaClientConfig
|
|
56
58
|
});
|
|
57
59
|
}
|
|
58
60
|
case 4:
|
|
@@ -120,7 +122,8 @@ var MediaNode = exports.MediaNode = /*#__PURE__*/function (_Component) {
|
|
|
120
122
|
key: "shouldComponentUpdate",
|
|
121
123
|
value: function shouldComponentUpdate(nextProps, nextState) {
|
|
122
124
|
var hasNewViewMediaClientConfig = !this.state.viewMediaClientConfig && nextState.viewMediaClientConfig;
|
|
123
|
-
|
|
125
|
+
var hasNewViewAndUploadMediaClientConfig = !this.state.viewAndUploadMediaClientConfig && nextState.viewAndUploadMediaClientConfig;
|
|
126
|
+
if (this.props.selected !== nextProps.selected || this.props.node.attrs.id !== nextProps.node.attrs.id || this.props.node.attrs.collection !== nextProps.node.attrs.collection || this.props.maxDimensions.height !== nextProps.maxDimensions.height || this.props.maxDimensions.width !== nextProps.maxDimensions.width || this.props.contextIdentifierProvider !== nextProps.contextIdentifierProvider || this.props.isLoading !== nextProps.isLoading || this.props.mediaProvider !== nextProps.mediaProvider || hasNewViewMediaClientConfig || hasNewViewAndUploadMediaClientConfig) {
|
|
124
127
|
return true;
|
|
125
128
|
}
|
|
126
129
|
return false;
|
|
@@ -246,6 +249,7 @@ var MediaNode = exports.MediaNode = /*#__PURE__*/function (_Component) {
|
|
|
246
249
|
});
|
|
247
250
|
var _this$state = this.state,
|
|
248
251
|
viewMediaClientConfig = _this$state.viewMediaClientConfig,
|
|
252
|
+
viewAndUploadMediaClientConfig = _this$state.viewAndUploadMediaClientConfig,
|
|
249
253
|
contextIdentifierProvider = _this$state.contextIdentifierProvider;
|
|
250
254
|
var _node$attrs = node.attrs,
|
|
251
255
|
id = _node$attrs.id,
|
|
@@ -253,7 +257,8 @@ var MediaNode = exports.MediaNode = /*#__PURE__*/function (_Component) {
|
|
|
253
257
|
collection = _node$attrs.collection,
|
|
254
258
|
url = _node$attrs.url,
|
|
255
259
|
alt = _node$attrs.alt;
|
|
256
|
-
|
|
260
|
+
var hasNoMediaClientConfig = !viewMediaClientConfig && ((0, _platformFeatureFlags.fg)('platform_media_video_captions') ? !viewAndUploadMediaClientConfig : true);
|
|
261
|
+
if (isLoading || type !== 'external' && hasNoMediaClientConfig) {
|
|
257
262
|
return /*#__PURE__*/_react.default.createElement(_styles.MediaCardWrapper, {
|
|
258
263
|
dimensions: originalDimensions
|
|
259
264
|
}, /*#__PURE__*/_react.default.createElement(_mediaCard.CardLoading, {
|
|
@@ -274,11 +279,12 @@ var MediaNode = exports.MediaNode = /*#__PURE__*/function (_Component) {
|
|
|
274
279
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
275
280
|
collectionName: collection
|
|
276
281
|
};
|
|
282
|
+
var resolvedViewAndUploadMediaClientConfig = (0, _platformFeatureFlags.fg)('platform_media_video_captions') ? viewAndUploadMediaClientConfig : undefined;
|
|
277
283
|
|
|
278
284
|
// mediaClientConfig is not needed for "external" case. So we have to cheat here.
|
|
279
285
|
// there is a possibility mediaClientConfig will be part of a identifier,
|
|
280
286
|
// so this might be not an issue
|
|
281
|
-
var mediaClientConfig = viewMediaClientConfig || {
|
|
287
|
+
var mediaClientConfig = resolvedViewAndUploadMediaClientConfig || viewMediaClientConfig || {
|
|
282
288
|
// Ignored via go/ees005
|
|
283
289
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
284
290
|
authProvider: function authProvider() {
|
|
@@ -315,7 +321,10 @@ var MediaNode = exports.MediaNode = /*#__PURE__*/function (_Component) {
|
|
|
315
321
|
contextId: contextId,
|
|
316
322
|
alt: alt,
|
|
317
323
|
videoControlsWrapperRef: this.videoControlsWrapperRef,
|
|
318
|
-
ssr: ssr
|
|
324
|
+
ssr: ssr,
|
|
325
|
+
mediaSettings: {
|
|
326
|
+
canUpdateVideoCaptions: (0, _platformFeatureFlags.fg)('platform_media_video_captions') ? !!viewAndUploadMediaClientConfig : false
|
|
327
|
+
}
|
|
319
328
|
})));
|
|
320
329
|
}
|
|
321
330
|
}]);
|