@manuscripts/style-guide 1.13.9 → 1.13.11-LEAN-3771.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.
Files changed (61) hide show
  1. package/dist/cjs/index.js +0 -4
  2. package/dist/cjs/lib/files.js +125 -77
  3. package/dist/es/index.js +0 -4
  4. package/dist/es/lib/files.js +117 -73
  5. package/dist/types/index.d.ts +0 -4
  6. package/dist/types/lib/files.d.ts +19 -24
  7. package/package.json +1 -1
  8. package/dist/cjs/components/EditorHeader/EditorHeader.js +0 -210
  9. package/dist/cjs/components/EditorHeader/ProceedView.js +0 -195
  10. package/dist/cjs/components/FileManager/FileActions.js +0 -134
  11. package/dist/cjs/components/FileManager/FileContainer.js +0 -39
  12. package/dist/cjs/components/FileManager/FileCreatedDate.js +0 -25
  13. package/dist/cjs/components/FileManager/FileManager.js +0 -60
  14. package/dist/cjs/components/FileManager/FileManagerDragLayer.js +0 -55
  15. package/dist/cjs/components/FileManager/FileManagerProvider.js +0 -39
  16. package/dist/cjs/components/FileManager/FileName.js +0 -27
  17. package/dist/cjs/components/FileManager/FileSectionAlert.js +0 -170
  18. package/dist/cjs/components/FileManager/FileTypeIcon.js +0 -20
  19. package/dist/cjs/components/FileManager/FileUploader.js +0 -85
  20. package/dist/cjs/components/FileManager/InlineFilesSection.js +0 -133
  21. package/dist/cjs/components/FileManager/OtherFilesSection.js +0 -101
  22. package/dist/cjs/components/FileManager/SupplementsSection.js +0 -118
  23. package/dist/cjs/components/FileManager/index.js +0 -32
  24. package/dist/cjs/components/FileManager/util.js +0 -138
  25. package/dist/cjs/hooks/use-files.js +0 -39
  26. package/dist/es/components/EditorHeader/EditorHeader.js +0 -180
  27. package/dist/es/components/EditorHeader/ProceedView.js +0 -165
  28. package/dist/es/components/FileManager/FileActions.js +0 -104
  29. package/dist/es/components/FileManager/FileContainer.js +0 -33
  30. package/dist/es/components/FileManager/FileCreatedDate.js +0 -18
  31. package/dist/es/components/FileManager/FileManager.js +0 -33
  32. package/dist/es/components/FileManager/FileManagerDragLayer.js +0 -48
  33. package/dist/es/components/FileManager/FileManagerProvider.js +0 -12
  34. package/dist/es/components/FileManager/FileName.js +0 -20
  35. package/dist/es/components/FileManager/FileSectionAlert.js +0 -163
  36. package/dist/es/components/FileManager/FileTypeIcon.js +0 -13
  37. package/dist/es/components/FileManager/FileUploader.js +0 -58
  38. package/dist/es/components/FileManager/InlineFilesSection.js +0 -103
  39. package/dist/es/components/FileManager/OtherFilesSection.js +0 -74
  40. package/dist/es/components/FileManager/SupplementsSection.js +0 -91
  41. package/dist/es/components/FileManager/index.js +0 -16
  42. package/dist/es/components/FileManager/util.js +0 -128
  43. package/dist/es/hooks/use-files.js +0 -35
  44. package/dist/types/components/EditorHeader/EditorHeader.d.ts +0 -68
  45. package/dist/types/components/EditorHeader/ProceedView.d.ts +0 -22
  46. package/dist/types/components/FileManager/FileActions.d.ts +0 -19
  47. package/dist/types/components/FileManager/FileContainer.d.ts +0 -1
  48. package/dist/types/components/FileManager/FileCreatedDate.d.ts +0 -8
  49. package/dist/types/components/FileManager/FileManager.d.ts +0 -30
  50. package/dist/types/components/FileManager/FileManagerDragLayer.d.ts +0 -2
  51. package/dist/types/components/FileManager/FileManagerProvider.d.ts +0 -15
  52. package/dist/types/components/FileManager/FileName.d.ts +0 -6
  53. package/dist/types/components/FileManager/FileSectionAlert.d.ts +0 -13
  54. package/dist/types/components/FileManager/FileTypeIcon.d.ts +0 -5
  55. package/dist/types/components/FileManager/FileUploader.d.ts +0 -5
  56. package/dist/types/components/FileManager/InlineFilesSection.d.ts +0 -6
  57. package/dist/types/components/FileManager/OtherFilesSection.d.ts +0 -5
  58. package/dist/types/components/FileManager/SupplementsSection.d.ts +0 -5
  59. package/dist/types/components/FileManager/index.d.ts +0 -16
  60. package/dist/types/components/FileManager/util.d.ts +0 -25
  61. package/dist/types/hooks/use-files.d.ts +0 -8
package/dist/cjs/index.js CHANGED
@@ -42,8 +42,6 @@ __exportStar(require("./components/Avatar"), exports);
42
42
  __exportStar(require("./components/Dialog"), exports);
43
43
  __exportStar(require("./components/Checkbox"), exports);
44
44
  __exportStar(require("./components/Form"), exports);
45
- __exportStar(require("./components/FileManager"), exports);
46
- __exportStar(require("./components/FileManager/util"), exports);
47
45
  __exportStar(require("./components/Resizer"), exports);
48
46
  __exportStar(require("./components/SaveStatus"), exports);
49
47
  __exportStar(require("./components/StyledModal"), exports);
@@ -62,14 +60,12 @@ __exportStar(require("./components/Badge"), exports);
62
60
  __exportStar(require("./components/NavDropdown"), exports);
63
61
  __exportStar(require("./components/Dropdown"), exports);
64
62
  __exportStar(require("./components/LoadingOverlay"), exports);
65
- __exportStar(require("./components/EditorHeader/EditorHeader"), exports);
66
63
  __exportStar(require("./components/DatePicker"), exports);
67
64
  __exportStar(require("./components/Text"), exports);
68
65
  __exportStar(require("./components/RelativeDate"), exports);
69
66
  __exportStar(require("./components/Menus"), exports);
70
67
  __exportStar(require("./components/SelectField"), exports);
71
68
  __exportStar(require("./hooks/use-dropdown"), exports);
72
- __exportStar(require("./hooks/use-files"), exports);
73
69
  __exportStar(require("./hooks/use-menus"), exports);
74
70
  __exportStar(require("./hooks/use-scroll-detection"), exports);
75
71
  var use_deep_compare_1 = require("./hooks/use-deep-compare");
@@ -1,84 +1,132 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSupplements = exports.getInlineFiles = exports.isModelFile = void 0;
4
- const json_schema_1 = require("@manuscripts/json-schema");
5
- const util_1 = require("../components/FileManager/util");
6
- const isModelFile = (file) => {
7
- return file.modelId;
8
- };
9
- exports.isModelFile = isModelFile;
10
- const MISSING_FILE = {
11
- id: '',
12
- name: 'Missing file',
13
- type: {
14
- id: 'missing',
15
- },
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
4
  };
17
- const getFile = (files, id) => {
18
- return files.filter((f) => f.id === id)[0] || MISSING_FILE;
19
- };
20
- const getFigureFiles = (element, modelMap, files) => {
21
- const figureFiles = [];
22
- element.containedObjectIDs.map((id) => {
23
- const model = modelMap.get(id);
24
- if (model && model.objectType === json_schema_1.ObjectTypes.Figure) {
25
- const figure = model;
26
- if (figure.src) {
27
- figureFiles.push(Object.assign(Object.assign({}, getFile(files, figure.src)), { modelId: figure._id }));
28
- }
29
- }
30
- });
31
- return figureFiles;
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isImageFile = exports.getFileTypeIcon = exports.getFileIcon = exports.getFileType = exports.FileType = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const icons_1 = require("../components/icons");
9
+ var FileType;
10
+ (function (FileType) {
11
+ FileType[FileType["Image"] = 0] = "Image";
12
+ FileType[FileType["Audio"] = 1] = "Audio";
13
+ FileType[FileType["Video"] = 2] = "Video";
14
+ FileType[FileType["PlainDocument"] = 3] = "PlainDocument";
15
+ FileType[FileType["SheetsWorkbooks"] = 4] = "SheetsWorkbooks";
16
+ FileType[FileType["Latex"] = 5] = "Latex";
17
+ FileType[FileType["CodeFile"] = 6] = "CodeFile";
18
+ FileType[FileType["PdfFile"] = 7] = "PdfFile";
19
+ FileType[FileType["CompressedFile"] = 8] = "CompressedFile";
20
+ FileType[FileType["PlainText"] = 9] = "PlainText";
21
+ FileType[FileType["Figure"] = 10] = "Figure";
22
+ FileType[FileType["GraphicalAbstract"] = 11] = "GraphicalAbstract";
23
+ })(FileType = exports.FileType || (exports.FileType = {}));
24
+ const extension2type = new Map([
25
+ ['png', FileType.Image],
26
+ ['jpg', FileType.Image],
27
+ ['jpeg', FileType.Image],
28
+ ['jfif', FileType.Image],
29
+ ['gif', FileType.Image],
30
+ ['svg', FileType.Image],
31
+ ['tif', FileType.Image],
32
+ ['tiff', FileType.Image],
33
+ ['mp3', FileType.Audio],
34
+ ['wav', FileType.Audio],
35
+ ['wma', FileType.Audio],
36
+ ['flac', FileType.Audio],
37
+ ['avi', FileType.Video],
38
+ ['mp4', FileType.Video],
39
+ ['mov', FileType.Video],
40
+ ['wmv', FileType.Video],
41
+ ['doc', FileType.PlainDocument],
42
+ ['docx', FileType.PlainDocument],
43
+ ['rtf', FileType.PlainDocument],
44
+ ['xls', FileType.SheetsWorkbooks],
45
+ ['xlsx', FileType.SheetsWorkbooks],
46
+ ['xml', FileType.SheetsWorkbooks],
47
+ ['tex', FileType.Latex],
48
+ ['js', FileType.CodeFile],
49
+ ['py', FileType.CodeFile],
50
+ ['tsx', FileType.CodeFile],
51
+ ['html', FileType.CodeFile],
52
+ ['pdf', FileType.PdfFile],
53
+ ['zip', FileType.CompressedFile],
54
+ ['rar', FileType.CompressedFile],
55
+ ['arj', FileType.CompressedFile],
56
+ ['tar.gz', FileType.CompressedFile],
57
+ ['tgz', FileType.CompressedFile],
58
+ ['txt', FileType.PlainText],
59
+ ]);
60
+ const type2icon = new Map([
61
+ [
62
+ FileType.Audio,
63
+ react_1.default.createElement(icons_1.FileAudioIcon, { key: FileType.Audio, className: "file-icon" }),
64
+ ],
65
+ [
66
+ FileType.Video,
67
+ react_1.default.createElement(icons_1.FileVideoIcon, { key: FileType.Video, className: "file-icon" }),
68
+ ],
69
+ [
70
+ FileType.PlainDocument,
71
+ react_1.default.createElement(icons_1.FileDocumentIcon, { key: FileType.PlainDocument, color: "#1A9BC7", className: "file-icon" }),
72
+ ],
73
+ [
74
+ FileType.SheetsWorkbooks,
75
+ react_1.default.createElement(icons_1.FileTableIcon, { key: FileType.SheetsWorkbooks, className: "file-icon" }),
76
+ ],
77
+ [
78
+ FileType.Latex,
79
+ react_1.default.createElement(icons_1.FileLatexIcon, { key: FileType.Latex, color: "#1A9BC7", className: "file-icon" }),
80
+ ],
81
+ [
82
+ FileType.CodeFile,
83
+ react_1.default.createElement(icons_1.FileCodeIcon, { key: FileType.CodeFile, className: "file-icon" }),
84
+ ],
85
+ [
86
+ FileType.PdfFile,
87
+ react_1.default.createElement(icons_1.FilePdfIcon, { key: FileType.PdfFile, className: "file-icon" }),
88
+ ],
89
+ [
90
+ FileType.CompressedFile,
91
+ react_1.default.createElement(icons_1.FileCompressedIcon, { key: FileType.CompressedFile, className: "file-icon" }),
92
+ ],
93
+ [
94
+ FileType.PlainText,
95
+ react_1.default.createElement(icons_1.FileDocumentIcon, { key: FileType.PlainText, color: "#FFBD26", className: "file-icon" }),
96
+ ],
97
+ [
98
+ FileType.Image,
99
+ react_1.default.createElement(icons_1.FileImageIcon, { key: FileType.Image, className: "file-icon" }),
100
+ ],
101
+ [
102
+ FileType.Figure,
103
+ react_1.default.createElement(icons_1.FileFigureIcon, { key: FileType.Figure, className: "file-icon" }),
104
+ ],
105
+ [
106
+ FileType.GraphicalAbstract,
107
+ react_1.default.createElement(icons_1.FileGraphicalAbstractIcon, { key: FileType.GraphicalAbstract, className: "file-icon" }),
108
+ ],
109
+ [undefined, react_1.default.createElement(icons_1.FileUnknownIcon, { key: undefined, className: "file-icon" })],
110
+ ]);
111
+ const getFileType = (name) => {
112
+ const extension = getExtension(name);
113
+ return extension2type.get(extension.toLowerCase());
32
114
  };
33
- const getSupplementFiles = (supplement, files) => {
34
- if (supplement.href) {
35
- const href = supplement.href;
36
- if (href) {
37
- return [
38
- Object.assign(Object.assign({}, getFile(files, href)), { modelId: supplement._id }),
39
- ];
40
- }
41
- }
42
- return [];
115
+ exports.getFileType = getFileType;
116
+ const getFileIcon = (name) => {
117
+ const type = (0, exports.getFileType)(name);
118
+ return type2icon.get(type);
43
119
  };
44
- const getInlineFiles = (modelMap, files) => {
45
- var _a;
46
- const elements = [];
47
- const orders = getOrderByType(modelMap);
48
- const sections = (0, json_schema_1.getModelsByType)(modelMap, json_schema_1.ObjectTypes.Section);
49
- const graphicalAbstractElementIds = (_a = sections.filter((s) => s.category === 'MPSectionCategory:abstract-graphical')[0]) === null || _a === void 0 ? void 0 : _a.elementIDs;
50
- graphicalAbstractElementIds === null || graphicalAbstractElementIds === void 0 ? void 0 : graphicalAbstractElementIds.map((id) => {
51
- const figure = modelMap.get(id);
52
- if (figure) {
53
- elements.push({
54
- modelId: id,
55
- type: util_1.FileType.GraphicalAbstract,
56
- label: 'Graphical Abstract',
57
- files: getFigureFiles(figure, modelMap, files),
58
- });
59
- }
60
- });
61
- const figures = (0, json_schema_1.getModelsByType)(modelMap, json_schema_1.ObjectTypes.FigureElement);
62
- const figureOrder = orders.get(json_schema_1.ObjectTypes.FigureElement);
63
- if (figureOrder) {
64
- }
65
- figures === null || figures === void 0 ? void 0 : figures.filter((f) => !(graphicalAbstractElementIds === null || graphicalAbstractElementIds === void 0 ? void 0 : graphicalAbstractElementIds.includes(f._id))).map((figure, index) => ({
66
- modelId: figure._id,
67
- type: util_1.FileType.Figure,
68
- label: `Figure ${index + 1}`,
69
- files: getFigureFiles(figure, modelMap, files),
70
- })).forEach((e) => elements.push(e));
71
- return elements;
120
+ exports.getFileIcon = getFileIcon;
121
+ const getFileTypeIcon = (type) => {
122
+ return type2icon.get(type);
72
123
  };
73
- exports.getInlineFiles = getInlineFiles;
74
- const getSupplements = (modelMap, files) => {
75
- const supplements = (0, json_schema_1.getModelsByType)(modelMap, json_schema_1.ObjectTypes.Supplement);
76
- return supplements.flatMap((s) => getSupplementFiles(s, files));
124
+ exports.getFileTypeIcon = getFileTypeIcon;
125
+ const isImageFile = (name) => {
126
+ return (0, exports.getFileType)(name) === FileType.Image;
77
127
  };
78
- exports.getSupplements = getSupplements;
79
- const getOrderByType = (modelMap) => {
80
- const groups = new Map();
81
- const orders = (0, json_schema_1.getModelsByType)(modelMap, json_schema_1.ObjectTypes.ElementsOrder);
82
- orders.forEach((o) => groups.set(o.elementType, o));
83
- return groups;
128
+ exports.isImageFile = isImageFile;
129
+ const getExtension = (name) => {
130
+ const index = name.indexOf('.');
131
+ return index ? name.substring(index + 1) : '';
84
132
  };
package/dist/es/index.js CHANGED
@@ -22,8 +22,6 @@ export * from './components/Avatar';
22
22
  export * from './components/Dialog';
23
23
  export * from './components/Checkbox';
24
24
  export * from './components/Form';
25
- export * from './components/FileManager';
26
- export * from './components/FileManager/util';
27
25
  export * from './components/Resizer';
28
26
  export * from './components/SaveStatus';
29
27
  export * from './components/StyledModal';
@@ -42,14 +40,12 @@ export * from './components/Badge';
42
40
  export * from './components/NavDropdown';
43
41
  export * from './components/Dropdown';
44
42
  export * from './components/LoadingOverlay';
45
- export * from './components/EditorHeader/EditorHeader';
46
43
  export * from './components/DatePicker';
47
44
  export * from './components/Text';
48
45
  export * from './components/RelativeDate';
49
46
  export * from './components/Menus';
50
47
  export * from './components/SelectField';
51
48
  export * from './hooks/use-dropdown';
52
- export * from './hooks/use-files';
53
49
  export * from './hooks/use-menus';
54
50
  export * from './hooks/use-scroll-detection';
55
51
  export { useDeepCompareMemo, useDeepCompareCallback, } from './hooks/use-deep-compare';
@@ -1,78 +1,122 @@
1
- import { getModelsByType, ObjectTypes, } from '@manuscripts/json-schema';
2
- import { FileType } from '../components/FileManager/util';
3
- export const isModelFile = (file) => {
4
- return file.modelId;
1
+ import React from 'react';
2
+ import { FileAudioIcon, FileCodeIcon, FileCompressedIcon, FileDocumentIcon, FileFigureIcon, FileGraphicalAbstractIcon, FileImageIcon, FileLatexIcon, FilePdfIcon, FileTableIcon, FileUnknownIcon, FileVideoIcon, } from '../components/icons';
3
+ export var FileType;
4
+ (function (FileType) {
5
+ FileType[FileType["Image"] = 0] = "Image";
6
+ FileType[FileType["Audio"] = 1] = "Audio";
7
+ FileType[FileType["Video"] = 2] = "Video";
8
+ FileType[FileType["PlainDocument"] = 3] = "PlainDocument";
9
+ FileType[FileType["SheetsWorkbooks"] = 4] = "SheetsWorkbooks";
10
+ FileType[FileType["Latex"] = 5] = "Latex";
11
+ FileType[FileType["CodeFile"] = 6] = "CodeFile";
12
+ FileType[FileType["PdfFile"] = 7] = "PdfFile";
13
+ FileType[FileType["CompressedFile"] = 8] = "CompressedFile";
14
+ FileType[FileType["PlainText"] = 9] = "PlainText";
15
+ FileType[FileType["Figure"] = 10] = "Figure";
16
+ FileType[FileType["GraphicalAbstract"] = 11] = "GraphicalAbstract";
17
+ })(FileType || (FileType = {}));
18
+ const extension2type = new Map([
19
+ ['png', FileType.Image],
20
+ ['jpg', FileType.Image],
21
+ ['jpeg', FileType.Image],
22
+ ['jfif', FileType.Image],
23
+ ['gif', FileType.Image],
24
+ ['svg', FileType.Image],
25
+ ['tif', FileType.Image],
26
+ ['tiff', FileType.Image],
27
+ ['mp3', FileType.Audio],
28
+ ['wav', FileType.Audio],
29
+ ['wma', FileType.Audio],
30
+ ['flac', FileType.Audio],
31
+ ['avi', FileType.Video],
32
+ ['mp4', FileType.Video],
33
+ ['mov', FileType.Video],
34
+ ['wmv', FileType.Video],
35
+ ['doc', FileType.PlainDocument],
36
+ ['docx', FileType.PlainDocument],
37
+ ['rtf', FileType.PlainDocument],
38
+ ['xls', FileType.SheetsWorkbooks],
39
+ ['xlsx', FileType.SheetsWorkbooks],
40
+ ['xml', FileType.SheetsWorkbooks],
41
+ ['tex', FileType.Latex],
42
+ ['js', FileType.CodeFile],
43
+ ['py', FileType.CodeFile],
44
+ ['tsx', FileType.CodeFile],
45
+ ['html', FileType.CodeFile],
46
+ ['pdf', FileType.PdfFile],
47
+ ['zip', FileType.CompressedFile],
48
+ ['rar', FileType.CompressedFile],
49
+ ['arj', FileType.CompressedFile],
50
+ ['tar.gz', FileType.CompressedFile],
51
+ ['tgz', FileType.CompressedFile],
52
+ ['txt', FileType.PlainText],
53
+ ]);
54
+ const type2icon = new Map([
55
+ [
56
+ FileType.Audio,
57
+ React.createElement(FileAudioIcon, { key: FileType.Audio, className: "file-icon" }),
58
+ ],
59
+ [
60
+ FileType.Video,
61
+ React.createElement(FileVideoIcon, { key: FileType.Video, className: "file-icon" }),
62
+ ],
63
+ [
64
+ FileType.PlainDocument,
65
+ React.createElement(FileDocumentIcon, { key: FileType.PlainDocument, color: "#1A9BC7", className: "file-icon" }),
66
+ ],
67
+ [
68
+ FileType.SheetsWorkbooks,
69
+ React.createElement(FileTableIcon, { key: FileType.SheetsWorkbooks, className: "file-icon" }),
70
+ ],
71
+ [
72
+ FileType.Latex,
73
+ React.createElement(FileLatexIcon, { key: FileType.Latex, color: "#1A9BC7", className: "file-icon" }),
74
+ ],
75
+ [
76
+ FileType.CodeFile,
77
+ React.createElement(FileCodeIcon, { key: FileType.CodeFile, className: "file-icon" }),
78
+ ],
79
+ [
80
+ FileType.PdfFile,
81
+ React.createElement(FilePdfIcon, { key: FileType.PdfFile, className: "file-icon" }),
82
+ ],
83
+ [
84
+ FileType.CompressedFile,
85
+ React.createElement(FileCompressedIcon, { key: FileType.CompressedFile, className: "file-icon" }),
86
+ ],
87
+ [
88
+ FileType.PlainText,
89
+ React.createElement(FileDocumentIcon, { key: FileType.PlainText, color: "#FFBD26", className: "file-icon" }),
90
+ ],
91
+ [
92
+ FileType.Image,
93
+ React.createElement(FileImageIcon, { key: FileType.Image, className: "file-icon" }),
94
+ ],
95
+ [
96
+ FileType.Figure,
97
+ React.createElement(FileFigureIcon, { key: FileType.Figure, className: "file-icon" }),
98
+ ],
99
+ [
100
+ FileType.GraphicalAbstract,
101
+ React.createElement(FileGraphicalAbstractIcon, { key: FileType.GraphicalAbstract, className: "file-icon" }),
102
+ ],
103
+ [undefined, React.createElement(FileUnknownIcon, { key: undefined, className: "file-icon" })],
104
+ ]);
105
+ export const getFileType = (name) => {
106
+ const extension = getExtension(name);
107
+ return extension2type.get(extension.toLowerCase());
5
108
  };
6
- const MISSING_FILE = {
7
- id: '',
8
- name: 'Missing file',
9
- type: {
10
- id: 'missing',
11
- },
109
+ export const getFileIcon = (name) => {
110
+ const type = getFileType(name);
111
+ return type2icon.get(type);
12
112
  };
13
- const getFile = (files, id) => {
14
- return files.filter((f) => f.id === id)[0] || MISSING_FILE;
113
+ export const getFileTypeIcon = (type) => {
114
+ return type2icon.get(type);
15
115
  };
16
- const getFigureFiles = (element, modelMap, files) => {
17
- const figureFiles = [];
18
- element.containedObjectIDs.map((id) => {
19
- const model = modelMap.get(id);
20
- if (model && model.objectType === ObjectTypes.Figure) {
21
- const figure = model;
22
- if (figure.src) {
23
- figureFiles.push(Object.assign(Object.assign({}, getFile(files, figure.src)), { modelId: figure._id }));
24
- }
25
- }
26
- });
27
- return figureFiles;
116
+ export const isImageFile = (name) => {
117
+ return getFileType(name) === FileType.Image;
28
118
  };
29
- const getSupplementFiles = (supplement, files) => {
30
- if (supplement.href) {
31
- const href = supplement.href;
32
- if (href) {
33
- return [
34
- Object.assign(Object.assign({}, getFile(files, href)), { modelId: supplement._id }),
35
- ];
36
- }
37
- }
38
- return [];
39
- };
40
- export const getInlineFiles = (modelMap, files) => {
41
- var _a;
42
- const elements = [];
43
- const orders = getOrderByType(modelMap);
44
- const sections = getModelsByType(modelMap, ObjectTypes.Section);
45
- const graphicalAbstractElementIds = (_a = sections.filter((s) => s.category === 'MPSectionCategory:abstract-graphical')[0]) === null || _a === void 0 ? void 0 : _a.elementIDs;
46
- graphicalAbstractElementIds === null || graphicalAbstractElementIds === void 0 ? void 0 : graphicalAbstractElementIds.map((id) => {
47
- const figure = modelMap.get(id);
48
- if (figure) {
49
- elements.push({
50
- modelId: id,
51
- type: FileType.GraphicalAbstract,
52
- label: 'Graphical Abstract',
53
- files: getFigureFiles(figure, modelMap, files),
54
- });
55
- }
56
- });
57
- const figures = getModelsByType(modelMap, ObjectTypes.FigureElement);
58
- const figureOrder = orders.get(ObjectTypes.FigureElement);
59
- if (figureOrder) {
60
- }
61
- figures === null || figures === void 0 ? void 0 : figures.filter((f) => !(graphicalAbstractElementIds === null || graphicalAbstractElementIds === void 0 ? void 0 : graphicalAbstractElementIds.includes(f._id))).map((figure, index) => ({
62
- modelId: figure._id,
63
- type: FileType.Figure,
64
- label: `Figure ${index + 1}`,
65
- files: getFigureFiles(figure, modelMap, files),
66
- })).forEach((e) => elements.push(e));
67
- return elements;
68
- };
69
- export const getSupplements = (modelMap, files) => {
70
- const supplements = getModelsByType(modelMap, ObjectTypes.Supplement);
71
- return supplements.flatMap((s) => getSupplementFiles(s, files));
72
- };
73
- const getOrderByType = (modelMap) => {
74
- const groups = new Map();
75
- const orders = getModelsByType(modelMap, ObjectTypes.ElementsOrder);
76
- orders.forEach((o) => groups.set(o.elementType, o));
77
- return groups;
119
+ const getExtension = (name) => {
120
+ const index = name.indexOf('.');
121
+ return index ? name.substring(index + 1) : '';
78
122
  };
@@ -23,8 +23,6 @@ export * from './components/Avatar';
23
23
  export * from './components/Dialog';
24
24
  export * from './components/Checkbox';
25
25
  export * from './components/Form';
26
- export * from './components/FileManager';
27
- export * from './components/FileManager/util';
28
26
  export * from './components/Resizer';
29
27
  export * from './components/SaveStatus';
30
28
  export * from './components/StyledModal';
@@ -43,14 +41,12 @@ export * from './components/Badge';
43
41
  export * from './components/NavDropdown';
44
42
  export * from './components/Dropdown';
45
43
  export * from './components/LoadingOverlay';
46
- export * from './components/EditorHeader/EditorHeader';
47
44
  export * from './components/DatePicker';
48
45
  export * from './components/Text';
49
46
  export * from './components/RelativeDate';
50
47
  export * from './components/Menus';
51
48
  export * from './components/SelectField';
52
49
  export * from './hooks/use-dropdown';
53
- export * from './hooks/use-files';
54
50
  export * from './hooks/use-menus';
55
51
  export * from './hooks/use-scroll-detection';
56
52
  export { useDeepCompareMemo, useDeepCompareCallback, } from './hooks/use-deep-compare';
@@ -1,24 +1,19 @@
1
- import { Model } from '@manuscripts/json-schema';
2
- import { FileType } from '../components/FileManager/util';
3
- export type FileDesignation = {
4
- id: string;
5
- label?: string;
6
- };
7
- export type FileAttachment = {
8
- id: string;
9
- name: string;
10
- type: FileDesignation;
11
- createdDate?: Date;
12
- };
13
- export type ModelFile = FileAttachment & {
14
- modelId: string;
15
- };
16
- export type ElementFiles = {
17
- modelId: string;
18
- label: string;
19
- type: FileType;
20
- files: ModelFile[];
21
- };
22
- export declare const isModelFile: (file: FileAttachment) => file is ModelFile;
23
- export declare const getInlineFiles: (modelMap: Map<string, Model>, files: FileAttachment[]) => ElementFiles[];
24
- export declare const getSupplements: (modelMap: Map<string, Model>, files: FileAttachment[]) => ModelFile[];
1
+ /// <reference types="react" />
2
+ export declare enum FileType {
3
+ Image = 0,
4
+ Audio = 1,
5
+ Video = 2,
6
+ PlainDocument = 3,
7
+ SheetsWorkbooks = 4,
8
+ Latex = 5,
9
+ CodeFile = 6,
10
+ PdfFile = 7,
11
+ CompressedFile = 8,
12
+ PlainText = 9,
13
+ Figure = 10,
14
+ GraphicalAbstract = 11
15
+ }
16
+ export declare const getFileType: (name: string) => FileType | undefined;
17
+ export declare const getFileIcon: (name: string) => JSX.Element | undefined;
18
+ export declare const getFileTypeIcon: (type: FileType) => JSX.Element | undefined;
19
+ export declare const isImageFile: (name: string) => boolean;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@manuscripts/style-guide",
3
3
  "description": "Shared components for Manuscripts applications",
4
- "version": "1.13.9",
4
+ "version": "1.13.11-LEAN-3771.0",
5
5
  "repository": "github:Atypon-OpenSource/manuscripts-style-guide",
6
6
  "license": "Apache-2.0",
7
7
  "main": "dist/cjs",