UNPKG

@atlaskit/editor-plugin-media

Version:

Media plugin for @atlaskit/editor-core

46 lines (45 loc) 2.51 kB
"use strict"; 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'; };