@atlaskit/editor-plugin-media
Version:
Media plugin for @atlaskit/editor-core
747 lines (746 loc) • 32.1 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.MediaNodeUpdater = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _v = _interopRequireDefault(require("uuid/v4"));
var _analytics = require("@atlaskit/editor-common/analytics");
var _mediaSingle = require("@atlaskit/editor-common/media-single");
var _mediaClient = require("@atlaskit/media-client");
var _mediaClientReact = require("@atlaskit/media-client-react");
var _helpers = require("../commands/helpers");
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; }
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; }
var MediaNodeUpdater = exports.MediaNodeUpdater = /*#__PURE__*/function () {
function MediaNodeUpdater(props) {
var _this = this;
(0, _classCallCheck2.default)(this, MediaNodeUpdater);
// Updates the node with contextId if it doesn't have one already
// TODO [MS-2258]: remove updateContextId in order to only use updateMediaSingleFileAttrs
(0, _defineProperty2.default)(this, "updateContextId", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
var attrs, id, objectId;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
attrs = _this.getAttrs();
if (!(!attrs || attrs.type !== 'file')) {
_context.next = 3;
break;
}
return _context.abrupt("return");
case 3:
id = attrs.id;
_context.next = 6;
return _this.getObjectId();
case 6:
objectId = _context.sent;
(0, _helpers.updateAllMediaSingleNodesAttrs)(id, {
__contextId: objectId
})(_this.props.view.state, _this.props.view.dispatch);
case 8:
case "end":
return _context.stop();
}
}, _callee);
})));
(0, _defineProperty2.default)(this, "updateNodeContextId", /*#__PURE__*/function () {
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(getPos) {
var attrs, objectId;
return _regenerator.default.wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
attrs = _this.getAttrs();
if (!((attrs === null || attrs === void 0 ? void 0 : attrs.type) !== 'file')) {
_context2.next = 3;
break;
}
return _context2.abrupt("return");
case 3:
_context2.next = 5;
return _this.getObjectId();
case 5:
objectId = _context2.sent;
(0, _helpers.updateCurrentMediaNodeAttrs)({
__contextId: objectId
}, {
node: _this.props.node,
getPos: getPos
})(_this.props.view.state, _this.props.view.dispatch);
case 7:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function (_x) {
return _ref2.apply(this, arguments);
};
}());
(0, _defineProperty2.default)(this, "hasFileAttributesDefined", function (attrs) {
return attrs && attrs.type === 'file' && attrs.__fileName && attrs.__fileMimeType && attrs.__fileSize && attrs.__contextId;
});
(0, _defineProperty2.default)(this, "getNewFileAttrsForNode", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
var attrs, mediaProvider, mediaClientConfig, mediaClient, fileState, id, collectionName, contextId, _fileState, name, mimeType, size, newAttrs;
return _regenerator.default.wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
attrs = _this.getAttrs();
_context3.next = 3;
return _this.props.mediaProvider;
case 3:
mediaProvider = _context3.sent;
if (!(!mediaProvider || !mediaProvider.uploadParams || !attrs || attrs.type !== 'file' || _this.hasFileAttributesDefined(attrs))) {
_context3.next = 6;
break;
}
return _context3.abrupt("return");
case 6:
mediaClientConfig = mediaProvider.viewMediaClientConfig;
mediaClient = (0, _mediaClientReact.getMediaClient)(mediaClientConfig);
id = attrs.id, collectionName = attrs.collection;
_context3.prev = 9;
_context3.next = 12;
return mediaClient.file.getCurrentState(id, {
collectionName: collectionName
});
case 12:
fileState = _context3.sent;
if (!(fileState.status === 'error')) {
_context3.next = 15;
break;
}
return _context3.abrupt("return");
case 15:
_context3.next = 20;
break;
case 17:
_context3.prev = 17;
_context3.t0 = _context3["catch"](9);
return _context3.abrupt("return");
case 20:
_context3.t1 = _this.getNodeContextId();
if (_context3.t1) {
_context3.next = 25;
break;
}
_context3.next = 24;
return _this.getObjectId();
case 24:
_context3.t1 = _context3.sent;
case 25:
contextId = _context3.t1;
_fileState = fileState, name = _fileState.name, mimeType = _fileState.mimeType, size = _fileState.size;
newAttrs = {
__fileName: name,
__fileMimeType: mimeType,
__fileSize: size,
__contextId: contextId
};
if (hasPrivateAttrsChanged(attrs, newAttrs)) {
_context3.next = 30;
break;
}
return _context3.abrupt("return");
case 30:
return _context3.abrupt("return", newAttrs);
case 31:
case "end":
return _context3.stop();
}
}, _callee3, null, [[9, 17]]);
})));
(0, _defineProperty2.default)(this, "updateMediaSingleFileAttrs", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
var newAttrs, _ref5, id;
return _regenerator.default.wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return _this.getNewFileAttrsForNode();
case 2:
newAttrs = _context4.sent;
_ref5 = _this.getAttrs(), id = _ref5.id;
if (id && newAttrs) {
(0, _helpers.updateAllMediaSingleNodesAttrs)(id, newAttrs)(_this.props.view.state, _this.props.view.dispatch);
}
case 5:
case "end":
return _context4.stop();
}
}, _callee4);
})));
(0, _defineProperty2.default)(this, "updateNodeAttrs", /*#__PURE__*/function () {
var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(getPos) {
var newAttrs;
return _regenerator.default.wrap(function _callee5$(_context5) {
while (1) switch (_context5.prev = _context5.next) {
case 0:
_context5.next = 2;
return _this.getNewFileAttrsForNode();
case 2:
newAttrs = _context5.sent;
if (newAttrs) {
(0, _helpers.updateCurrentMediaNodeAttrs)(newAttrs, {
node: _this.props.node,
getPos: getPos
})(_this.props.view.state, _this.props.view.dispatch);
}
case 4:
case "end":
return _context5.stop();
}
}, _callee5);
}));
return function (_x2) {
return _ref6.apply(this, arguments);
};
}());
(0, _defineProperty2.default)(this, "getAttrs", function () {
var attrs = _this.props.node.attrs;
if (attrs) {
return attrs;
}
return undefined;
});
(0, _defineProperty2.default)(this, "getObjectId", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
var contextIdentifierProvider;
return _regenerator.default.wrap(function _callee6$(_context6) {
while (1) switch (_context6.prev = _context6.next) {
case 0:
_context6.next = 2;
return _this.props.contextIdentifierProvider;
case 2:
contextIdentifierProvider = _context6.sent;
return _context6.abrupt("return", (contextIdentifierProvider === null || contextIdentifierProvider === void 0 ? void 0 : contextIdentifierProvider.objectId) || null);
case 4:
case "end":
return _context6.stop();
}
}, _callee6);
})));
(0, _defineProperty2.default)(this, "uploadExternalMedia", /*#__PURE__*/function () {
var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(getPos) {
var node, mediaProvider, uploadMediaClientConfig, mediaClient, collection, uploader, uploadableFileUpfrontIds, dimensions, pos;
return _regenerator.default.wrap(function _callee7$(_context7) {
while (1) switch (_context7.prev = _context7.next) {
case 0:
node = _this.props.node;
_context7.next = 3;
return _this.props.mediaProvider;
case 3:
mediaProvider = _context7.sent;
if (!(node && mediaProvider)) {
_context7.next = 24;
break;
}
uploadMediaClientConfig = mediaProvider.uploadMediaClientConfig;
if (!(!uploadMediaClientConfig || !node.attrs.url)) {
_context7.next = 8;
break;
}
return _context7.abrupt("return");
case 8:
mediaClient = (0, _mediaClientReact.getMediaClient)(uploadMediaClientConfig);
collection = mediaProvider.uploadParams && mediaProvider.uploadParams.collection;
_context7.prev = 10;
_context7.next = 13;
return mediaClient.file.uploadExternal(node.attrs.url, collection);
case 13:
uploader = _context7.sent;
uploadableFileUpfrontIds = uploader.uploadableFileUpfrontIds, dimensions = uploader.dimensions;
pos = getPos();
if (!(typeof pos !== 'number')) {
_context7.next = 18;
break;
}
return _context7.abrupt("return");
case 18:
(0, _helpers.replaceExternalMedia)(pos + 1, {
id: uploadableFileUpfrontIds.id,
collection: collection,
height: dimensions.height,
width: dimensions.width,
occurrenceKey: uploadableFileUpfrontIds.occurrenceKey
})(_this.props.view.state, _this.props.view.dispatch);
_context7.next = 24;
break;
case 21:
_context7.prev = 21;
_context7.t0 = _context7["catch"](10);
//keep it as external media
if (_this.props.dispatchAnalyticsEvent) {
_this.props.dispatchAnalyticsEvent({
action: _analytics.ACTION.UPLOAD_EXTERNAL_FAIL,
actionSubject: _analytics.ACTION_SUBJECT.EDITOR,
eventType: _analytics.EVENT_TYPE.OPERATIONAL
});
}
case 24:
case "end":
return _context7.stop();
}
}, _callee7, null, [[10, 21]]);
}));
return function (_x3) {
return _ref8.apply(this, arguments);
};
}());
(0, _defineProperty2.default)(this, "getNodeContextId", function () {
var attrs = _this.getAttrs();
if (!attrs || attrs.type !== 'file') {
return null;
}
return attrs.__contextId || null;
});
(0, _defineProperty2.default)(this, "updateDimensions", function (dimensions) {
(0, _helpers.updateAllMediaSingleNodesAttrs)(dimensions.id, {
height: dimensions.height,
width: dimensions.width
})(_this.props.view.state, _this.props.view.dispatch);
});
(0, _defineProperty2.default)(this, "hasDifferentContextId", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
var nodeContextId, currentContextId;
return _regenerator.default.wrap(function _callee8$(_context8) {
while (1) switch (_context8.prev = _context8.next) {
case 0:
nodeContextId = _this.getNodeContextId();
_context8.next = 3;
return _this.getObjectId();
case 3:
currentContextId = _context8.sent;
if (!(nodeContextId && currentContextId && nodeContextId !== currentContextId)) {
_context8.next = 6;
break;
}
return _context8.abrupt("return", true);
case 6:
return _context8.abrupt("return", false);
case 7:
case "end":
return _context8.stop();
}
}, _callee8);
})));
(0, _defineProperty2.default)(this, "isNodeFromDifferentCollection", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
var mediaProvider, currentCollectionName, attrs, nodeCollection, __contextId, contextId;
return _regenerator.default.wrap(function _callee9$(_context9) {
while (1) switch (_context9.prev = _context9.next) {
case 0:
_context9.next = 2;
return _this.props.mediaProvider;
case 2:
mediaProvider = _context9.sent;
if (!(!mediaProvider || !mediaProvider.uploadParams)) {
_context9.next = 5;
break;
}
return _context9.abrupt("return", false);
case 5:
currentCollectionName = mediaProvider.uploadParams.collection;
attrs = _this.getAttrs();
if (!(!attrs || attrs.type !== 'file')) {
_context9.next = 9;
break;
}
return _context9.abrupt("return", false);
case 9:
nodeCollection = attrs.collection, __contextId = attrs.__contextId;
_context9.t0 = __contextId;
if (_context9.t0) {
_context9.next = 15;
break;
}
_context9.next = 14;
return _this.getObjectId();
case 14:
_context9.t0 = _context9.sent;
case 15:
contextId = _context9.t0;
if (!(contextId && currentCollectionName !== nodeCollection)) {
_context9.next = 18;
break;
}
return _context9.abrupt("return", true);
case 18:
return _context9.abrupt("return", false);
case 19:
case "end":
return _context9.stop();
}
}, _callee9);
})));
(0, _defineProperty2.default)(this, "copyNodeFromBlobUrl", /*#__PURE__*/function () {
var _ref11 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(getPos) {
var attrs, url, mediaAttrs, mediaProvider, currentCollectionName, contextId, id, collection, height, width, mimeType, name, size, uploadMediaClientConfig, mediaClient, auth, source, destination, mediaFile, pos;
return _regenerator.default.wrap(function _callee10$(_context10) {
while (1) switch (_context10.prev = _context10.next) {
case 0:
attrs = _this.getAttrs();
if (!(!attrs || attrs.type !== 'external')) {
_context10.next = 3;
break;
}
return _context10.abrupt("return");
case 3:
url = attrs.url;
mediaAttrs = (0, _mediaClient.getAttrsFromUrl)(url);
if (mediaAttrs) {
_context10.next = 7;
break;
}
return _context10.abrupt("return");
case 7:
_context10.next = 9;
return _this.props.mediaProvider;
case 9:
mediaProvider = _context10.sent;
if (!(!mediaProvider || !mediaProvider.uploadParams)) {
_context10.next = 12;
break;
}
return _context10.abrupt("return");
case 12:
currentCollectionName = mediaProvider.uploadParams.collection;
contextId = mediaAttrs.contextId, id = mediaAttrs.id, collection = mediaAttrs.collection, height = mediaAttrs.height, width = mediaAttrs.width, mimeType = mediaAttrs.mimeType, name = mediaAttrs.name, size = mediaAttrs.size;
uploadMediaClientConfig = mediaProvider.uploadMediaClientConfig;
if (!(!uploadMediaClientConfig || !uploadMediaClientConfig.getAuthFromContext)) {
_context10.next = 17;
break;
}
return _context10.abrupt("return");
case 17:
mediaClient = (0, _mediaClientReact.getMediaClient)(uploadMediaClientConfig);
_context10.next = 20;
return uploadMediaClientConfig.getAuthFromContext(contextId);
case 20:
auth = _context10.sent;
source = {
id: id,
collection: collection,
authProvider: function authProvider() {
return Promise.resolve(auth);
}
};
destination = {
collection: currentCollectionName,
authProvider: uploadMediaClientConfig.authProvider,
occurrenceKey: (0, _v.default)()
};
_context10.next = 25;
return mediaClient.file.copyFile(source, destination);
case 25:
mediaFile = _context10.sent;
pos = getPos();
if (!(typeof pos !== 'number')) {
_context10.next = 29;
break;
}
return _context10.abrupt("return");
case 29:
(0, _helpers.replaceExternalMedia)(pos + 1, {
id: mediaFile.id,
collection: currentCollectionName,
height: height,
width: width,
__fileName: name,
__fileMimeType: mimeType,
__fileSize: size
})(_this.props.view.state, _this.props.view.dispatch);
case 30:
case "end":
return _context10.stop();
}
}, _callee10);
}));
return function (_x4) {
return _ref11.apply(this, arguments);
};
}());
// Copies the pasted node into the current collection using a getPos handler
(0, _defineProperty2.default)(this, "copyNodeFromPos", /*#__PURE__*/function () {
var _ref12 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(getPos, traceContext) {
var attrs, copiedAttrs;
return _regenerator.default.wrap(function _callee11$(_context11) {
while (1) switch (_context11.prev = _context11.next) {
case 0:
attrs = _this.getAttrs();
if (!((attrs === null || attrs === void 0 ? void 0 : attrs.type) !== 'file')) {
_context11.next = 3;
break;
}
return _context11.abrupt("return");
case 3:
_context11.next = 5;
return _this.copyFile(attrs.id, attrs.collection, traceContext);
case 5:
copiedAttrs = _context11.sent;
if (copiedAttrs) {
_context11.next = 8;
break;
}
return _context11.abrupt("return");
case 8:
(0, _helpers.updateCurrentMediaNodeAttrs)(copiedAttrs, {
node: _this.props.node,
getPos: getPos
})(_this.props.view.state, _this.props.view.dispatch);
case 9:
case "end":
return _context11.stop();
}
}, _callee11);
}));
return function (_x5, _x6) {
return _ref12.apply(this, arguments);
};
}());
// Copies the pasted node into the current collection
(0, _defineProperty2.default)(this, "copyNode", /*#__PURE__*/function () {
var _ref13 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(traceContext) {
var attrs, view, copiedAttrs;
return _regenerator.default.wrap(function _callee12$(_context12) {
while (1) switch (_context12.prev = _context12.next) {
case 0:
attrs = _this.getAttrs();
view = _this.props.view;
if (!((attrs === null || attrs === void 0 ? void 0 : attrs.type) !== 'file')) {
_context12.next = 4;
break;
}
return _context12.abrupt("return");
case 4:
_context12.next = 6;
return _this.copyFile(attrs.id, attrs.collection, traceContext);
case 6:
copiedAttrs = _context12.sent;
if (copiedAttrs) {
_context12.next = 9;
break;
}
return _context12.abrupt("return");
case 9:
(0, _helpers.updateMediaSingleNodeAttrs)(attrs.id, copiedAttrs)(view.state, view.dispatch);
case 10:
case "end":
return _context12.stop();
}
}, _callee12);
}));
return function (_x7) {
return _ref13.apply(this, arguments);
};
}());
(0, _defineProperty2.default)(this, "copyFile", /*#__PURE__*/function () {
var _ref14 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(id, collection, traceContext) {
var mediaProvider, nodeContextId, uploadMediaClientConfig, mediaClient, auth, objectId, source, currentCollectionName, destination, mediaFile;
return _regenerator.default.wrap(function _callee13$(_context13) {
while (1) switch (_context13.prev = _context13.next) {
case 0:
_context13.next = 2;
return _this.props.mediaProvider;
case 2:
mediaProvider = _context13.sent;
if (mediaProvider !== null && mediaProvider !== void 0 && mediaProvider.uploadParams) {
_context13.next = 5;
break;
}
return _context13.abrupt("return");
case 5:
nodeContextId = _this.getNodeContextId();
uploadMediaClientConfig = mediaProvider.uploadMediaClientConfig;
if (!(!(uploadMediaClientConfig !== null && uploadMediaClientConfig !== void 0 && uploadMediaClientConfig.getAuthFromContext) || !nodeContextId)) {
_context13.next = 9;
break;
}
return _context13.abrupt("return");
case 9:
mediaClient = (0, _mediaClientReact.getMediaClient)(uploadMediaClientConfig);
_context13.next = 12;
return uploadMediaClientConfig.getAuthFromContext(nodeContextId);
case 12:
auth = _context13.sent;
_context13.next = 15;
return _this.getObjectId();
case 15:
objectId = _context13.sent;
source = {
id: id,
collection: collection,
authProvider: function authProvider() {
return Promise.resolve(auth);
}
};
currentCollectionName = mediaProvider.uploadParams.collection;
destination = {
collection: currentCollectionName,
authProvider: uploadMediaClientConfig.authProvider,
occurrenceKey: (0, _v.default)()
};
_context13.next = 21;
return mediaClient.file.copyFile(source, destination, undefined, traceContext);
case 21:
mediaFile = _context13.sent;
return _context13.abrupt("return", {
id: mediaFile.id,
collection: currentCollectionName,
__contextId: objectId
});
case 23:
case "end":
return _context13.stop();
}
}, _callee13);
}));
return function (_x8, _x9, _x10) {
return _ref14.apply(this, arguments);
};
}());
this.props = props;
}
(0, _createClass2.default)(MediaNodeUpdater, [{
key: "setProps",
value: function setProps(newComponentProps) {
this.props = _objectSpread(_objectSpread({}, this.props), newComponentProps);
}
}, {
key: "isMediaBlobUrl",
value: function isMediaBlobUrl() {
var attrs = this.getAttrs();
return !!(attrs && attrs.type === 'external' && (0, _mediaClient.isMediaBlobUrl)(attrs.url));
}
}, {
key: "getRemoteDimensions",
value: function () {
var _getRemoteDimensions = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14() {
var mediaProvider, mediaOptions, attrs, height, width, id, collection, viewMediaClientConfig, mediaClient, currentState, imageMetadata;
return _regenerator.default.wrap(function _callee14$(_context14) {
while (1) switch (_context14.prev = _context14.next) {
case 0:
_context14.next = 2;
return this.props.mediaProvider;
case 2:
mediaProvider = _context14.sent;
mediaOptions = this.props.mediaOptions;
attrs = this.getAttrs();
if (!(!mediaProvider || !attrs)) {
_context14.next = 7;
break;
}
return _context14.abrupt("return", false);
case 7:
height = attrs.height, width = attrs.width;
if (!(attrs.type === 'external' || !attrs.id)) {
_context14.next = 10;
break;
}
return _context14.abrupt("return", false);
case 10:
id = attrs.id, collection = attrs.collection;
if (!(height && width)) {
_context14.next = 13;
break;
}
return _context14.abrupt("return", false);
case 13:
if (!(mediaOptions && !mediaOptions.allowRemoteDimensionsFetch)) {
_context14.next = 15;
break;
}
return _context14.abrupt("return", {
id: id,
height: _mediaSingle.DEFAULT_IMAGE_HEIGHT,
width: _mediaSingle.DEFAULT_IMAGE_WIDTH
});
case 15:
viewMediaClientConfig = mediaProvider.viewMediaClientConfig;
mediaClient = (0, _mediaClientReact.getMediaClient)(viewMediaClientConfig);
_context14.next = 19;
return mediaClient.file.getCurrentState(id, {
collectionName: collection
});
case 19:
currentState = _context14.sent;
if ((0, _mediaClient.isImageRepresentationReady)(currentState)) {
_context14.next = 22;
break;
}
return _context14.abrupt("return", false);
case 22:
_context14.next = 24;
return mediaClient.getImageMetadata(id, {
collection: collection
});
case 24:
imageMetadata = _context14.sent;
if (!(!imageMetadata || !imageMetadata.original)) {
_context14.next = 27;
break;
}
return _context14.abrupt("return", false);
case 27:
return _context14.abrupt("return", {
id: id,
height: imageMetadata.original.height || _mediaSingle.DEFAULT_IMAGE_HEIGHT,
width: imageMetadata.original.width || _mediaSingle.DEFAULT_IMAGE_WIDTH
});
case 28:
case "end":
return _context14.stop();
}
}, _callee14, this);
}));
function getRemoteDimensions() {
return _getRemoteDimensions.apply(this, arguments);
}
return getRemoteDimensions;
}()
}, {
key: "handleExternalMedia",
value: function () {
var _handleExternalMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(getPos) {
return _regenerator.default.wrap(function _callee15$(_context15) {
while (1) switch (_context15.prev = _context15.next) {
case 0:
if (!this.isMediaBlobUrl()) {
_context15.next = 12;
break;
}
_context15.prev = 1;
_context15.next = 4;
return this.copyNodeFromBlobUrl(getPos);
case 4:
_context15.next = 10;
break;
case 6:
_context15.prev = 6;
_context15.t0 = _context15["catch"](1);
_context15.next = 10;
return this.uploadExternalMedia(getPos);
case 10:
_context15.next = 14;
break;
case 12:
_context15.next = 14;
return this.uploadExternalMedia(getPos);
case 14:
case "end":
return _context15.stop();
}
}, _callee15, this, [[1, 6]]);
}));
function handleExternalMedia(_x11) {
return _handleExternalMedia.apply(this, arguments);
}
return handleExternalMedia;
}()
}]);
return MediaNodeUpdater;
}();
var hasPrivateAttrsChanged = function hasPrivateAttrsChanged(currentAttrs, newAttrs) {
return currentAttrs.__fileName !== newAttrs.__fileName || currentAttrs.__fileMimeType !== newAttrs.__fileMimeType || currentAttrs.__fileSize !== newAttrs.__fileSize || currentAttrs.__contextId !== newAttrs.__contextId;
};