@atlaskit/editor-plugin-media 0.10.1 → 0.10.2

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/editor-plugin-media
2
2
 
3
+ ## 0.10.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#65194](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/65194) [`b17492206adc`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/b17492206adc) - ED-21544 able to insert inline image in panel with empty paragraph.
8
+
3
9
  ## 0.10.1
4
10
 
5
11
  ### Patch Changes
@@ -12,6 +12,7 @@ var _model = require("@atlaskit/editor-prosemirror/model");
12
12
  var _utils2 = require("@atlaskit/editor-prosemirror/utils");
13
13
  var _isType = require("./is-type");
14
14
  var _mediaCommon = require("./media-common");
15
+ var _mediaInline2 = require("./media-inline");
15
16
  var canInsertMediaInline = exports.canInsertMediaInline = function canInsertMediaInline(state) {
16
17
  var node = state.schema.nodes.mediaInline.create({});
17
18
  return (0, _utils2.canInsert)(state.selection.$to, _model.Fragment.from(node));
@@ -116,8 +117,8 @@ var insertMediaInlineNode = exports.insertMediaInlineNode = function insertMedia
116
117
  var space = state.schema.text(' ');
117
118
  var pos = state.selection.$to.pos;
118
119
 
119
- // If the selection is inside an empty list item set pos inside paragraph
120
- if ((0, _utils.isInListItem)(state) && (0, _mediaCommon.isInsidePotentialEmptyParagraph)(state)) {
120
+ // If the selection is inside an empty list item or panel set pos inside paragraph
121
+ if ((0, _mediaInline2.isInSupportedInlineImageParent)(state) && (0, _mediaCommon.isInsidePotentialEmptyParagraph)(state)) {
121
122
  pos = pos + 1;
122
123
  }
123
124
  var content = _model.Fragment.from([mediaInlineNode, space]);
@@ -3,16 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getMediaNodeInsertionType = void 0;
6
+ exports.isInSupportedInlineImageParent = exports.getMediaNodeInsertionType = void 0;
7
7
  var _utils = require("@atlaskit/editor-common/utils");
8
+ var _utils2 = require("@atlaskit/editor-prosemirror/utils");
8
9
  var _mediaCommon = require("@atlaskit/media-common");
9
10
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
11
  var _mediaFiles = require("../utils/media-files");
11
12
  var _mediaSingle = require("../utils/media-single");
12
13
  var _isType = require("./is-type");
13
14
  var _mediaCommon2 = require("./media-common");
15
+ var isInSupportedInlineImageParent = exports.isInSupportedInlineImageParent = function isInSupportedInlineImageParent(state) {
16
+ return (0, _utils2.hasParentNodeOfType)([state.schema.nodes.listItem, state.schema.nodes.panel])(state.selection);
17
+ };
14
18
  var getMediaNodeInsertionType = exports.getMediaNodeInsertionType = function getMediaNodeInsertionType(state, mediaFeatureFlags, fileMimeType) {
15
- var canInsertInlineNode = (0, _mediaCommon.getMediaFeatureFlag)('mediaInline', mediaFeatureFlags) && !(0, _utils.isInEmptyLine)(state) && (!(0, _mediaCommon2.isInsidePotentialEmptyParagraph)(state) || (0, _utils.isInListItem)(state)) && (0, _mediaFiles.canInsertMediaInline)(state);
19
+ var canInsertInlineNode = (0, _mediaCommon.getMediaFeatureFlag)('mediaInline', mediaFeatureFlags) && !(0, _utils.isInEmptyLine)(state) && (!(0, _mediaCommon2.isInsidePotentialEmptyParagraph)(state) || isInSupportedInlineImageParent(state)) && (0, _mediaFiles.canInsertMediaInline)(state);
16
20
  if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.media.inline-image.base-support')) {
17
21
  if (canInsertInlineNode && !(0, _isType.isVideo)(fileMimeType)) {
18
22
  return 'inline';
@@ -6,6 +6,7 @@ import { Fragment } from '@atlaskit/editor-prosemirror/model';
6
6
  import { canInsert, hasParentNode, safeInsert } from '@atlaskit/editor-prosemirror/utils';
7
7
  import { isImage } from './is-type';
8
8
  import { copyOptionalAttrsFromMediaState, isInsidePotentialEmptyParagraph, isSelectionNonMediaBlockNode, posOfMediaGroupNearby, posOfParentMediaGroup, posOfPrecedingMediaGroup } from './media-common';
9
+ import { isInSupportedInlineImageParent } from './media-inline';
9
10
  export const canInsertMediaInline = state => {
10
11
  const node = state.schema.nodes.mediaInline.create({});
11
12
  return canInsert(state.selection.$to, Fragment.from(node));
@@ -125,8 +126,8 @@ export const insertMediaInlineNode = editorAnalyticsAPI => (view, mediaState, co
125
126
  const space = state.schema.text(' ');
126
127
  let pos = state.selection.$to.pos;
127
128
 
128
- // If the selection is inside an empty list item set pos inside paragraph
129
- if (isInListItem(state) && isInsidePotentialEmptyParagraph(state)) {
129
+ // If the selection is inside an empty list item or panel set pos inside paragraph
130
+ if (isInSupportedInlineImageParent(state) && isInsidePotentialEmptyParagraph(state)) {
130
131
  pos = pos + 1;
131
132
  }
132
133
  let content = Fragment.from([mediaInlineNode, space]);
@@ -1,12 +1,16 @@
1
- import { isInEmptyLine, isInListItem } from '@atlaskit/editor-common/utils';
1
+ import { isInEmptyLine } from '@atlaskit/editor-common/utils';
2
+ import { hasParentNodeOfType } from '@atlaskit/editor-prosemirror/utils';
2
3
  import { getMediaFeatureFlag } from '@atlaskit/media-common';
3
4
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
4
5
  import { canInsertMediaInline } from '../utils/media-files';
5
6
  import { isMediaSingle } from '../utils/media-single';
6
7
  import { isVideo } from './is-type';
7
8
  import { isInsidePotentialEmptyParagraph } from './media-common';
9
+ export const isInSupportedInlineImageParent = state => {
10
+ return hasParentNodeOfType([state.schema.nodes.listItem, state.schema.nodes.panel])(state.selection);
11
+ };
8
12
  export const getMediaNodeInsertionType = (state, mediaFeatureFlags, fileMimeType) => {
9
- const canInsertInlineNode = getMediaFeatureFlag('mediaInline', mediaFeatureFlags) && !isInEmptyLine(state) && (!isInsidePotentialEmptyParagraph(state) || isInListItem(state)) && canInsertMediaInline(state);
13
+ const canInsertInlineNode = getMediaFeatureFlag('mediaInline', mediaFeatureFlags) && !isInEmptyLine(state) && (!isInsidePotentialEmptyParagraph(state) || isInSupportedInlineImageParent(state)) && canInsertMediaInline(state);
10
14
  if (getBooleanFF('platform.editor.media.inline-image.base-support')) {
11
15
  if (canInsertInlineNode && !isVideo(fileMimeType)) {
12
16
  return 'inline';
@@ -6,6 +6,7 @@ import { Fragment } from '@atlaskit/editor-prosemirror/model';
6
6
  import { canInsert, hasParentNode, safeInsert } from '@atlaskit/editor-prosemirror/utils';
7
7
  import { isImage } from './is-type';
8
8
  import { copyOptionalAttrsFromMediaState, isInsidePotentialEmptyParagraph, isSelectionNonMediaBlockNode, posOfMediaGroupNearby, posOfParentMediaGroup, posOfPrecedingMediaGroup } from './media-common';
9
+ import { isInSupportedInlineImageParent } from './media-inline';
9
10
  export var canInsertMediaInline = function canInsertMediaInline(state) {
10
11
  var node = state.schema.nodes.mediaInline.create({});
11
12
  return canInsert(state.selection.$to, Fragment.from(node));
@@ -110,8 +111,8 @@ export var insertMediaInlineNode = function insertMediaInlineNode(editorAnalytic
110
111
  var space = state.schema.text(' ');
111
112
  var pos = state.selection.$to.pos;
112
113
 
113
- // If the selection is inside an empty list item set pos inside paragraph
114
- if (isInListItem(state) && isInsidePotentialEmptyParagraph(state)) {
114
+ // If the selection is inside an empty list item or panel set pos inside paragraph
115
+ if (isInSupportedInlineImageParent(state) && isInsidePotentialEmptyParagraph(state)) {
115
116
  pos = pos + 1;
116
117
  }
117
118
  var content = Fragment.from([mediaInlineNode, space]);
@@ -1,12 +1,16 @@
1
- import { isInEmptyLine, isInListItem } from '@atlaskit/editor-common/utils';
1
+ import { isInEmptyLine } from '@atlaskit/editor-common/utils';
2
+ import { hasParentNodeOfType } from '@atlaskit/editor-prosemirror/utils';
2
3
  import { getMediaFeatureFlag } from '@atlaskit/media-common';
3
4
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
4
5
  import { canInsertMediaInline } from '../utils/media-files';
5
6
  import { isMediaSingle } from '../utils/media-single';
6
7
  import { isVideo } from './is-type';
7
8
  import { isInsidePotentialEmptyParagraph } from './media-common';
9
+ export var isInSupportedInlineImageParent = function isInSupportedInlineImageParent(state) {
10
+ return hasParentNodeOfType([state.schema.nodes.listItem, state.schema.nodes.panel])(state.selection);
11
+ };
8
12
  export var getMediaNodeInsertionType = function getMediaNodeInsertionType(state, mediaFeatureFlags, fileMimeType) {
9
- var canInsertInlineNode = getMediaFeatureFlag('mediaInline', mediaFeatureFlags) && !isInEmptyLine(state) && (!isInsidePotentialEmptyParagraph(state) || isInListItem(state)) && canInsertMediaInline(state);
13
+ var canInsertInlineNode = getMediaFeatureFlag('mediaInline', mediaFeatureFlags) && !isInEmptyLine(state) && (!isInsidePotentialEmptyParagraph(state) || isInSupportedInlineImageParent(state)) && canInsertMediaInline(state);
10
14
  if (getBooleanFF('platform.editor.media.inline-image.base-support')) {
11
15
  if (canInsertInlineNode && !isVideo(fileMimeType)) {
12
16
  return 'inline';
@@ -1,4 +1,5 @@
1
1
  import type { EditorState } from '@atlaskit/editor-prosemirror/state';
2
2
  import type { MediaFeatureFlags } from '@atlaskit/media-common';
3
3
  export type MediaNodeType = 'inline' | 'block' | 'group';
4
+ export declare const isInSupportedInlineImageParent: (state: EditorState) => boolean;
4
5
  export declare const getMediaNodeInsertionType: (state: EditorState, mediaFeatureFlags?: MediaFeatureFlags, fileMimeType?: string) => MediaNodeType;
@@ -1,4 +1,5 @@
1
1
  import type { EditorState } from '@atlaskit/editor-prosemirror/state';
2
2
  import type { MediaFeatureFlags } from '@atlaskit/media-common';
3
3
  export type MediaNodeType = 'inline' | 'block' | 'group';
4
+ export declare const isInSupportedInlineImageParent: (state: EditorState) => boolean;
4
5
  export declare const getMediaNodeInsertionType: (state: EditorState, mediaFeatureFlags?: MediaFeatureFlags, fileMimeType?: string) => MediaNodeType;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-media",
3
- "version": "0.10.1",
3
+ "version": "0.10.2",
4
4
  "description": "Media plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",