@manuscripts/body-editor 2.2.12 → 2.2.13-LEAN-2165.0

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.
@@ -7,23 +7,24 @@ exports.FigureOptions = exports.FigureElementOptions = void 0;
7
7
  const style_guide_1 = require("@manuscripts/style-guide");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const styled_components_1 = __importDefault(require("styled-components"));
10
- const FigureElementOptions = ({ can, files, onAdd, onUpload, }) => {
10
+ const FigureElementOptions = ({ can, files, onAdd, onUpload, onAddNewFile, }) => {
11
11
  const { isOpen, toggleOpen, wrapperRef } = (0, style_guide_1.useDropdown)();
12
12
  const supplements = files.supplements
13
13
  .map((s) => s.file)
14
14
  .filter((f) => (0, style_guide_1.isImageFile)(f.name));
15
15
  const others = files.others.filter((f) => (0, style_guide_1.isImageFile)(f.name));
16
+ const showAddFile = onAddNewFile ? onAddNewFile() : true;
16
17
  return (react_1.default.createElement(FilesDropdownWrapper, { onClick: toggleOpen, ref: wrapperRef },
17
18
  react_1.default.createElement(FilesButton, null,
18
19
  react_1.default.createElement(style_guide_1.AttachIcon, null)),
19
20
  isOpen && (react_1.default.createElement(style_guide_1.DropdownList, { direction: 'left', width: 208, height: 187, onClick: toggleOpen, top: 7 },
20
- react_1.default.createElement(NestedDropdown, { disabled: !can.replaceFile || supplements.length < 1, parentToggleOpen: toggleOpen, buttonText: 'Supplements', list: react_1.default.createElement(react_1.default.Fragment, null, supplements.map((file) => (react_1.default.createElement(ListItemButton, { key: file.id, onClick: () => onAdd(file) },
21
+ react_1.default.createElement(NestedDropdown, { disabled: !can.replaceFile || supplements.length < 1 || !showAddFile, parentToggleOpen: toggleOpen, buttonText: 'Supplements', list: react_1.default.createElement(react_1.default.Fragment, null, supplements.map((file) => (react_1.default.createElement(ListItemButton, { key: file.id, onClick: () => onAdd(file) },
21
22
  (0, style_guide_1.getFileIcon)(file.name),
22
23
  react_1.default.createElement(ListItemText, null, file.name))))) }),
23
- react_1.default.createElement(NestedDropdown, { disabled: !can.replaceFile || others.length < 1, parentToggleOpen: toggleOpen, buttonText: 'Other files', list: react_1.default.createElement(react_1.default.Fragment, null, others.map((file) => (react_1.default.createElement(ListItemButton, { key: file.id, onClick: () => onAdd(file) },
24
+ react_1.default.createElement(NestedDropdown, { disabled: !can.replaceFile || others.length < 1 || !showAddFile, parentToggleOpen: toggleOpen, buttonText: 'Other files', list: react_1.default.createElement(react_1.default.Fragment, null, others.map((file) => (react_1.default.createElement(ListItemButton, { key: file.id, onClick: () => onAdd(file) },
24
25
  (0, style_guide_1.getFileIcon)(file.name),
25
26
  react_1.default.createElement(ListItemText, null, file.name))))) }),
26
- react_1.default.createElement(UploadButton, { onClick: onUpload, disabled: !can.uploadFile },
27
+ react_1.default.createElement(UploadButton, { onClick: onUpload, disabled: !can.uploadFile || !showAddFile },
27
28
  react_1.default.createElement(style_guide_1.AddIcon, null),
28
29
  " New file...")))));
29
30
  };
@@ -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 = '2.2.12';
4
+ exports.VERSION = '2.2.13-LEAN-2165.0';
5
5
  exports.MATHJAX_VERSION = '3.2.2';
@@ -78,6 +78,15 @@ class FigureElementView extends block_view_1.default {
78
78
  const can = this.props.getCapabilities();
79
79
  let handleUpload = () => {
80
80
  };
81
+ const handleNewFile = () => {
82
+ let figureUploaded = true;
83
+ this.node.content.forEach((file) => {
84
+ if (file.attrs.src) {
85
+ figureUploaded = false;
86
+ }
87
+ });
88
+ return figureUploaded;
89
+ };
81
90
  const handleAdd = (file) => __awaiter(this, void 0, void 0, function* () {
82
91
  const { state: { tr, schema, selection }, dispatch, } = this.view;
83
92
  const src = file.id;
@@ -115,6 +124,7 @@ class FigureElementView extends block_view_1.default {
115
124
  files: (0, files_1.groupFiles)(doc, files),
116
125
  onUpload: handleUpload,
117
126
  onAdd: handleAdd,
127
+ onAddNewFile: handleNewFile,
118
128
  };
119
129
  this.reactTools = (0, ReactSubView_1.default)(this.props, FigureDropdown_1.FigureElementOptions, componentProps, this.node, this.getPos, this.view);
120
130
  (_b = this.reactTools) === null || _b === void 0 ? void 0 : _b.remove();
@@ -1,23 +1,24 @@
1
1
  import { AddIcon, AttachIcon, DotsIcon, DropdownList, getFileIcon, IconButton, IconTextButton, isImageFile, RoundIconButton, TriangleCollapsedIcon, UploadIcon, useDropdown, } from '@manuscripts/style-guide';
2
2
  import React from 'react';
3
3
  import styled from 'styled-components';
4
- export const FigureElementOptions = ({ can, files, onAdd, onUpload, }) => {
4
+ export const FigureElementOptions = ({ can, files, onAdd, onUpload, onAddNewFile, }) => {
5
5
  const { isOpen, toggleOpen, wrapperRef } = useDropdown();
6
6
  const supplements = files.supplements
7
7
  .map((s) => s.file)
8
8
  .filter((f) => isImageFile(f.name));
9
9
  const others = files.others.filter((f) => isImageFile(f.name));
10
+ const showAddFile = onAddNewFile ? onAddNewFile() : true;
10
11
  return (React.createElement(FilesDropdownWrapper, { onClick: toggleOpen, ref: wrapperRef },
11
12
  React.createElement(FilesButton, null,
12
13
  React.createElement(AttachIcon, null)),
13
14
  isOpen && (React.createElement(DropdownList, { direction: 'left', width: 208, height: 187, onClick: toggleOpen, top: 7 },
14
- React.createElement(NestedDropdown, { disabled: !can.replaceFile || supplements.length < 1, parentToggleOpen: toggleOpen, buttonText: 'Supplements', list: React.createElement(React.Fragment, null, supplements.map((file) => (React.createElement(ListItemButton, { key: file.id, onClick: () => onAdd(file) },
15
+ React.createElement(NestedDropdown, { disabled: !can.replaceFile || supplements.length < 1 || !showAddFile, parentToggleOpen: toggleOpen, buttonText: 'Supplements', list: React.createElement(React.Fragment, null, supplements.map((file) => (React.createElement(ListItemButton, { key: file.id, onClick: () => onAdd(file) },
15
16
  getFileIcon(file.name),
16
17
  React.createElement(ListItemText, null, file.name))))) }),
17
- React.createElement(NestedDropdown, { disabled: !can.replaceFile || others.length < 1, parentToggleOpen: toggleOpen, buttonText: 'Other files', list: React.createElement(React.Fragment, null, others.map((file) => (React.createElement(ListItemButton, { key: file.id, onClick: () => onAdd(file) },
18
+ React.createElement(NestedDropdown, { disabled: !can.replaceFile || others.length < 1 || !showAddFile, parentToggleOpen: toggleOpen, buttonText: 'Other files', list: React.createElement(React.Fragment, null, others.map((file) => (React.createElement(ListItemButton, { key: file.id, onClick: () => onAdd(file) },
18
19
  getFileIcon(file.name),
19
20
  React.createElement(ListItemText, null, file.name))))) }),
20
- React.createElement(UploadButton, { onClick: onUpload, disabled: !can.uploadFile },
21
+ React.createElement(UploadButton, { onClick: onUpload, disabled: !can.uploadFile || !showAddFile },
21
22
  React.createElement(AddIcon, null),
22
23
  " New file...")))));
23
24
  };
@@ -1,2 +1,2 @@
1
- export const VERSION = '2.2.12';
1
+ export const VERSION = '2.2.13-LEAN-2165.0';
2
2
  export const MATHJAX_VERSION = '3.2.2';
@@ -72,6 +72,15 @@ export class FigureElementView extends BlockView {
72
72
  const can = this.props.getCapabilities();
73
73
  let handleUpload = () => {
74
74
  };
75
+ const handleNewFile = () => {
76
+ let figureUploaded = true;
77
+ this.node.content.forEach((file) => {
78
+ if (file.attrs.src) {
79
+ figureUploaded = false;
80
+ }
81
+ });
82
+ return figureUploaded;
83
+ };
75
84
  const handleAdd = (file) => __awaiter(this, void 0, void 0, function* () {
76
85
  const { state: { tr, schema, selection }, dispatch, } = this.view;
77
86
  const src = file.id;
@@ -109,6 +118,7 @@ export class FigureElementView extends BlockView {
109
118
  files: groupFiles(doc, files),
110
119
  onUpload: handleUpload,
111
120
  onAdd: handleAdd,
121
+ onAddNewFile: handleNewFile,
112
122
  };
113
123
  this.reactTools = ReactSubView(this.props, FigureElementOptions, componentProps, this.node, this.getPos, this.view);
114
124
  (_b = this.reactTools) === null || _b === void 0 ? void 0 : _b.remove();
@@ -14,6 +14,7 @@ export interface FigureOptionsProps extends FigureDropdownProps {
14
14
  export interface FigureElementOptionsProps extends FigureDropdownProps {
15
15
  onAdd: (file: FileAttachment) => Promise<void>;
16
16
  onUpload: () => void;
17
+ onAddNewFile?: () => boolean;
17
18
  }
18
19
  export declare const FigureElementOptions: React.FC<FigureElementOptionsProps>;
19
20
  export declare const FigureOptions: React.FC<FigureOptionsProps>;
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "2.2.12";
1
+ export declare const VERSION = "2.2.13-LEAN-2165.0";
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": "2.2.12",
4
+ "version": "2.2.13-LEAN-2165.0",
5
5
  "repository": "github:Atypon-OpenSource/manuscripts-body-editor",
6
6
  "license": "Apache-2.0",
7
7
  "main": "dist/cjs",