@manuscripts/body-editor 3.3.2 → 3.3.3

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.
@@ -42,29 +42,23 @@ const react_1 = __importStar(require("react"));
42
42
  const styled_components_1 = __importDefault(require("styled-components"));
43
43
  const files_1 = require("../../lib/files");
44
44
  const get_media_type_1 = require("../../lib/get-media-type");
45
- function getSupplements(getFiles, getDoc, groupFiles, isEmbed, currentFileHref) {
45
+ function getSupplements(getFiles, getDoc, groupFiles, isEmbed) {
46
46
  return groupFiles(getDoc(), getFiles())
47
47
  .supplements.map((s) => s.file)
48
48
  .filter((f) => {
49
- if (currentFileHref && f.id === currentFileHref) {
50
- return false;
51
- }
52
49
  const mediaInfo = (0, get_media_type_1.getMediaTypeInfo)(f.name);
53
50
  return isEmbed
54
51
  ? mediaInfo.isVideo || mediaInfo.isAudio
55
52
  : mediaInfo.isImage;
56
53
  });
57
54
  }
58
- function getOtherFiles(getFiles, getDoc, groupFiles, isEmbed, currentFileHref) {
55
+ function getOtherFiles(getFiles, getDoc, groupFiles, isEmbed) {
59
56
  return groupFiles(getDoc(), getFiles()).others.filter((f) => {
60
- if (currentFileHref && f.id === currentFileHref) {
61
- return false;
62
- }
63
57
  const mediaInfo = (0, get_media_type_1.getMediaTypeInfo)(f.name);
64
58
  return isEmbed ? mediaInfo.isVideo || mediaInfo.isAudio : mediaInfo.isImage;
65
59
  });
66
60
  }
67
- const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onDetach, onReplace, onReplaceEmbed, onDelete, isEmbed, hasSiblings, container, currentFileHref, }) => {
61
+ const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onDetach, onReplace, onReplaceEmbed, onDelete, isEmbed, hasSiblings, container, }) => {
68
62
  const { isOpen, toggleOpen, wrapperRef } = (0, style_guide_1.useDropdown)();
69
63
  const showDownload = onDownload && can.downloadFiles;
70
64
  const showUpload = onUpload && can.uploadFile;
@@ -97,10 +91,10 @@ const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onDetach,
97
91
  isOpen && (react_1.default.createElement(OptionsDropdownList, { direction: 'right', width: 128, top: 5 },
98
92
  showReplace && isEmbedMode && (react_1.default.createElement(ListItemButton, { onClick: () => onReplaceEmbed && onReplaceEmbed() }, "Edit Link")),
99
93
  showReplace && !isEmbedMode && (react_1.default.createElement(NestedDropdown, { disabled: !showReplace, parentToggleOpen: toggleOpen, buttonText: replaceBtnText, moveLeft: true, list: react_1.default.createElement(react_1.default.Fragment, null,
100
- getSupplements(getFiles, getDoc, groupFiles, isEmbed, currentFileHref).map((file, index) => (react_1.default.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file, true) },
94
+ getSupplements(getFiles, getDoc, groupFiles, isEmbed).map((file, index) => (react_1.default.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file, true) },
101
95
  (0, style_guide_1.getFileIcon)(file.name),
102
96
  react_1.default.createElement(ListItemText, null, file.name)))),
103
- getOtherFiles(getFiles, getDoc, groupFiles, isEmbed, currentFileHref).map((file, index) => (react_1.default.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file) },
97
+ getOtherFiles(getFiles, getDoc, groupFiles, isEmbed).map((file, index) => (react_1.default.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file) },
104
98
  (0, style_guide_1.getFileIcon)(file.name),
105
99
  react_1.default.createElement(ListItemText, null, file.name)))),
106
100
  showUpload && (react_1.default.createElement(UploadButton, { onClick: onUpload, disabled: !showUpload },
@@ -13,6 +13,7 @@ const figureTypes = [
13
13
  transform_1.schema.nodes.figure_element,
14
14
  transform_1.schema.nodes.image_element,
15
15
  transform_1.schema.nodes.hero_image,
16
+ transform_1.schema.nodes.embed,
16
17
  ];
17
18
  function memoGroupFiles() {
18
19
  let prevFiles = [];
@@ -45,15 +46,26 @@ const groupFiles = (doc, files) => {
45
46
  };
46
47
  const getFigureElementFiles = (node, pos) => {
47
48
  const figureFiles = [];
48
- for (const figure of (0, prosemirror_utils_1.findChildrenByType)(node, transform_1.schema.nodes.figure)) {
49
- if ((0, track_changes_utils_1.isHidden)(figure.node)) {
50
- continue;
49
+ if (node.type === transform_1.schema.nodes.embed) {
50
+ if (node.attrs.href) {
51
+ figureFiles.push({
52
+ node,
53
+ pos,
54
+ file: getFile(node.attrs.href),
55
+ });
56
+ }
57
+ }
58
+ else {
59
+ for (const figure of (0, prosemirror_utils_1.findChildrenByType)(node, transform_1.schema.nodes.figure)) {
60
+ if ((0, track_changes_utils_1.isHidden)(figure.node)) {
61
+ continue;
62
+ }
63
+ figureFiles.push({
64
+ node: figure.node,
65
+ pos: pos + figure.pos + 1,
66
+ file: getFile(figure.node.attrs.src),
67
+ });
51
68
  }
52
- figureFiles.push({
53
- node: figure.node,
54
- pos: pos + figure.pos + 1,
55
- file: getFile(figure.node.attrs.src),
56
- });
57
69
  }
58
70
  return {
59
71
  node,
@@ -121,7 +121,6 @@ const createReactTools = (node, view, getPos, props, handlers, isEmbed, hasSibli
121
121
  return null;
122
122
  }
123
123
  const can = props.getCapabilities();
124
- const currentFileHref = node.attrs.href;
125
124
  const componentProps = {
126
125
  can,
127
126
  getDoc: () => view.state.doc,
@@ -134,7 +133,6 @@ const createReactTools = (node, view, getPos, props, handlers, isEmbed, hasSibli
134
133
  onDelete: handlers.handleDelete,
135
134
  isEmbed,
136
135
  hasSiblings,
137
- currentFileHref,
138
136
  };
139
137
  return (0, ReactSubView_1.default)(props, FigureDropdown_1.FigureOptions, componentProps, node, getPos, view);
140
138
  };
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MATHJAX_VERSION = exports.VERSION = void 0;
4
- exports.VERSION = '3.3.2';
4
+ exports.VERSION = '3.3.3';
5
5
  exports.MATHJAX_VERSION = '3.2.2';
@@ -3,29 +3,23 @@ import React, { useEffect } from 'react';
3
3
  import styled from 'styled-components';
4
4
  import { memoGroupFiles, } from '../../lib/files';
5
5
  import { getMediaTypeInfo } from '../../lib/get-media-type';
6
- function getSupplements(getFiles, getDoc, groupFiles, isEmbed, currentFileHref) {
6
+ function getSupplements(getFiles, getDoc, groupFiles, isEmbed) {
7
7
  return groupFiles(getDoc(), getFiles())
8
8
  .supplements.map((s) => s.file)
9
9
  .filter((f) => {
10
- if (currentFileHref && f.id === currentFileHref) {
11
- return false;
12
- }
13
10
  const mediaInfo = getMediaTypeInfo(f.name);
14
11
  return isEmbed
15
12
  ? mediaInfo.isVideo || mediaInfo.isAudio
16
13
  : mediaInfo.isImage;
17
14
  });
18
15
  }
19
- function getOtherFiles(getFiles, getDoc, groupFiles, isEmbed, currentFileHref) {
16
+ function getOtherFiles(getFiles, getDoc, groupFiles, isEmbed) {
20
17
  return groupFiles(getDoc(), getFiles()).others.filter((f) => {
21
- if (currentFileHref && f.id === currentFileHref) {
22
- return false;
23
- }
24
18
  const mediaInfo = getMediaTypeInfo(f.name);
25
19
  return isEmbed ? mediaInfo.isVideo || mediaInfo.isAudio : mediaInfo.isImage;
26
20
  });
27
21
  }
28
- export const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onDetach, onReplace, onReplaceEmbed, onDelete, isEmbed, hasSiblings, container, currentFileHref, }) => {
22
+ export const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onDetach, onReplace, onReplaceEmbed, onDelete, isEmbed, hasSiblings, container, }) => {
29
23
  const { isOpen, toggleOpen, wrapperRef } = useDropdown();
30
24
  const showDownload = onDownload && can.downloadFiles;
31
25
  const showUpload = onUpload && can.uploadFile;
@@ -58,10 +52,10 @@ export const FigureOptions = ({ can, getDoc, getFiles, onDownload, onUpload, onD
58
52
  isOpen && (React.createElement(OptionsDropdownList, { direction: 'right', width: 128, top: 5 },
59
53
  showReplace && isEmbedMode && (React.createElement(ListItemButton, { onClick: () => onReplaceEmbed && onReplaceEmbed() }, "Edit Link")),
60
54
  showReplace && !isEmbedMode && (React.createElement(NestedDropdown, { disabled: !showReplace, parentToggleOpen: toggleOpen, buttonText: replaceBtnText, moveLeft: true, list: React.createElement(React.Fragment, null,
61
- getSupplements(getFiles, getDoc, groupFiles, isEmbed, currentFileHref).map((file, index) => (React.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file, true) },
55
+ getSupplements(getFiles, getDoc, groupFiles, isEmbed).map((file, index) => (React.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file, true) },
62
56
  getFileIcon(file.name),
63
57
  React.createElement(ListItemText, null, file.name)))),
64
- getOtherFiles(getFiles, getDoc, groupFiles, isEmbed, currentFileHref).map((file, index) => (React.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file) },
58
+ getOtherFiles(getFiles, getDoc, groupFiles, isEmbed).map((file, index) => (React.createElement(ListItemButton, { key: file.id, id: index.toString(), onClick: () => onReplace && onReplace(file) },
65
59
  getFileIcon(file.name),
66
60
  React.createElement(ListItemText, null, file.name)))),
67
61
  showUpload && (React.createElement(UploadButton, { onClick: onUpload, disabled: !showUpload },
@@ -9,6 +9,7 @@ const figureTypes = [
9
9
  schema.nodes.figure_element,
10
10
  schema.nodes.image_element,
11
11
  schema.nodes.hero_image,
12
+ schema.nodes.embed,
12
13
  ];
13
14
  export function memoGroupFiles() {
14
15
  let prevFiles = [];
@@ -41,15 +42,26 @@ export const groupFiles = (doc, files) => {
41
42
  };
42
43
  const getFigureElementFiles = (node, pos) => {
43
44
  const figureFiles = [];
44
- for (const figure of findChildrenByType(node, schema.nodes.figure)) {
45
- if (isHidden(figure.node)) {
46
- continue;
45
+ if (node.type === schema.nodes.embed) {
46
+ if (node.attrs.href) {
47
+ figureFiles.push({
48
+ node,
49
+ pos,
50
+ file: getFile(node.attrs.href),
51
+ });
52
+ }
53
+ }
54
+ else {
55
+ for (const figure of findChildrenByType(node, schema.nodes.figure)) {
56
+ if (isHidden(figure.node)) {
57
+ continue;
58
+ }
59
+ figureFiles.push({
60
+ node: figure.node,
61
+ pos: pos + figure.pos + 1,
62
+ file: getFile(figure.node.attrs.src),
63
+ });
47
64
  }
48
- figureFiles.push({
49
- node: figure.node,
50
- pos: pos + figure.pos + 1,
51
- file: getFile(figure.node.attrs.src),
52
- });
53
65
  }
54
66
  return {
55
67
  node,
@@ -112,7 +112,6 @@ export const createReactTools = (node, view, getPos, props, handlers, isEmbed, h
112
112
  return null;
113
113
  }
114
114
  const can = props.getCapabilities();
115
- const currentFileHref = node.attrs.href;
116
115
  const componentProps = {
117
116
  can,
118
117
  getDoc: () => view.state.doc,
@@ -125,7 +124,6 @@ export const createReactTools = (node, view, getPos, props, handlers, isEmbed, h
125
124
  onDelete: handlers.handleDelete,
126
125
  isEmbed,
127
126
  hasSiblings,
128
- currentFileHref,
129
127
  };
130
128
  return ReactSubView(props, FigureOptions, componentProps, node, getPos, view);
131
129
  };
@@ -1,2 +1,2 @@
1
- export const VERSION = '3.3.2';
1
+ export const VERSION = '3.3.3';
2
2
  export const MATHJAX_VERSION = '3.2.2';
@@ -18,7 +18,6 @@ export interface FigureOptionsProps extends FigureDropdownProps {
18
18
  onDelete?: () => void;
19
19
  isEmbed: boolean;
20
20
  hasSiblings: () => boolean;
21
- currentFileHref?: string;
22
21
  }
23
22
  export interface FigureElementOptionsProps extends FigureDropdownProps {
24
23
  onAdd: (file: FileAttachment) => Promise<void>;
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "3.3.2";
1
+ export declare const VERSION = "3.3.3";
2
2
  export declare const MATHJAX_VERSION = "3.2.2";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@manuscripts/body-editor",
3
3
  "description": "Prosemirror components for editing and viewing manuscripts",
4
- "version": "3.3.2",
4
+ "version": "3.3.3",
5
5
  "repository": "github:Atypon-OpenSource/manuscripts-body-editor",
6
6
  "license": "Apache-2.0",
7
7
  "main": "dist/cjs",