@atlaskit/editor-plugin-media
Version:
Media plugin for @atlaskit/editor-core
46 lines (45 loc) • 2.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isInSupportedInlineImageParent = exports.getMediaNodeInsertionType = void 0;
var _mediaInline = require("@atlaskit/editor-common/media-inline");
var _utils = require("@atlaskit/editor-common/utils");
var _utils2 = require("@atlaskit/editor-prosemirror/utils");
var _mediaCommon = require("@atlaskit/media-common");
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
var _mediaFiles = require("../utils/media-files");
var _mediaSingle = require("../utils/media-single");
var _isType = require("./is-type");
var _mediaCommon2 = require("./media-common");
var isInSupportedInlineImageParent = exports.isInSupportedInlineImageParent = function isInSupportedInlineImageParent(state) {
return (0, _utils2.hasParentNodeOfType)([state.schema.nodes.listItem])(state.selection);
};
var getMediaNodeInsertionType = exports.getMediaNodeInsertionType = function getMediaNodeInsertionType(state, mediaOptions, fileMimeType) {
if ((0, _isType.isImage)(fileMimeType) && (0, _platformFeatureFlags.fg)('platform_editor_media_block_default')) {
if ((0, _mediaSingle.isMediaSingle)(state.schema, fileMimeType)) {
return 'block';
}
return 'group';
}
var canInsertInlineNode = (0, _mediaCommon.getMediaFeatureFlag)('mediaInline', mediaOptions === null || mediaOptions === void 0 ? void 0 : mediaOptions.featureFlags) && !(0, _utils.isInEmptyLine)(state) && (!(0, _mediaCommon2.isInsidePotentialEmptyParagraph)(state) || isInSupportedInlineImageParent(state)) && (0, _mediaFiles.canInsertMediaInline)(state);
if ((0, _platformFeatureFlags.fg)('platform_editor_remove_media_inline_feature_flag')) {
if (mediaOptions !== null && mediaOptions !== void 0 && mediaOptions.allowMediaInlineImages) {
if (canInsertInlineNode && !(0, _isType.isVideo)(fileMimeType)) {
return 'inline';
}
}
} else {
if ((0, _mediaInline.mediaInlineImagesEnabled)((0, _mediaCommon.getMediaFeatureFlag)('mediaInline', mediaOptions === null || mediaOptions === void 0 ? void 0 : mediaOptions.featureFlags), mediaOptions === null || mediaOptions === void 0 ? void 0 : mediaOptions.allowMediaInlineImages)) {
if (canInsertInlineNode && !(0, _isType.isVideo)(fileMimeType)) {
return 'inline';
}
}
}
if ((0, _mediaSingle.isMediaSingle)(state.schema, fileMimeType)) {
return 'block';
} else if (canInsertInlineNode) {
return 'inline';
}
return 'group';
};