@manuscripts/article-editor 4.3.3 → 4.3.4
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/dist/cjs/components/DocumentLanguageSelector.js +257 -0
- package/dist/cjs/components/DocumentLanguageSelector.js.map +1 -0
- package/dist/cjs/components/{VersionHistoryDropdown.js → DocumentOptionsDropdown.js} +11 -5
- package/dist/cjs/components/DocumentOptionsDropdown.js.map +1 -0
- package/dist/cjs/components/projects/Inspector.js +2 -2
- package/dist/cjs/components/projects/Inspector.js.map +1 -1
- package/dist/es/components/DocumentLanguageSelector.js +219 -0
- package/dist/es/components/DocumentLanguageSelector.js.map +1 -0
- package/dist/es/components/{VersionHistoryDropdown.js → DocumentOptionsDropdown.js} +11 -5
- package/dist/es/components/DocumentOptionsDropdown.js.map +1 -0
- package/dist/es/components/projects/Inspector.js +2 -2
- package/dist/es/components/projects/Inspector.js.map +1 -1
- package/dist/types/components/DocumentLanguageSelector.d.ts +17 -0
- package/dist/types/components/{VersionHistoryDropdown.d.ts → DocumentOptionsDropdown.d.ts} +2 -2
- package/package.json +2 -1
- package/dist/cjs/components/VersionHistoryDropdown.js.map +0 -1
- package/dist/es/components/VersionHistoryDropdown.js.map +0 -1
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
|
|
4
|
+
*
|
|
5
|
+
* Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
|
|
6
|
+
*
|
|
7
|
+
* The Original Code is manuscripts-frontend.
|
|
8
|
+
*
|
|
9
|
+
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
|
10
|
+
*
|
|
11
|
+
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
|
12
|
+
*/
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
+
var ownKeys = function(o) {
|
|
31
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
+
var ar = [];
|
|
33
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
+
return ar;
|
|
35
|
+
};
|
|
36
|
+
return ownKeys(o);
|
|
37
|
+
};
|
|
38
|
+
return function (mod) {
|
|
39
|
+
if (mod && mod.__esModule) return mod;
|
|
40
|
+
var result = {};
|
|
41
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
+
__setModuleDefault(result, mod);
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
})();
|
|
46
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
47
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
const i18n_iso_languages_1 = __importDefault(require("@cospired/i18n-iso-languages"));
|
|
51
|
+
const style_guide_1 = require("@manuscripts/style-guide");
|
|
52
|
+
const react_1 = __importStar(require("react"));
|
|
53
|
+
const styled_components_1 = __importDefault(require("styled-components"));
|
|
54
|
+
const useStore_1 = require("../store/useStore");
|
|
55
|
+
// Native names lookup for common languages
|
|
56
|
+
const NATIVE_NAMES = {
|
|
57
|
+
en: 'Default',
|
|
58
|
+
es: 'Español',
|
|
59
|
+
fr: 'Français',
|
|
60
|
+
de: 'Deutsch',
|
|
61
|
+
it: 'Italiano',
|
|
62
|
+
pt: 'Português',
|
|
63
|
+
ru: 'Русский',
|
|
64
|
+
ja: '日本語',
|
|
65
|
+
ko: '한국어',
|
|
66
|
+
zh: '中文',
|
|
67
|
+
ar: 'العربية',
|
|
68
|
+
};
|
|
69
|
+
const COMMON_LANGUAGES = Object.keys(NATIVE_NAMES);
|
|
70
|
+
// Fallback language object for English
|
|
71
|
+
const ENGLISH_FALLBACK = {
|
|
72
|
+
code: 'en',
|
|
73
|
+
name: 'English',
|
|
74
|
+
nativeName: 'English',
|
|
75
|
+
isCommon: true,
|
|
76
|
+
};
|
|
77
|
+
// Get display name for selected language
|
|
78
|
+
const getSelectedLanguageName = (selectedLanguage, allLanguages) => {
|
|
79
|
+
if (!allLanguages.length) {
|
|
80
|
+
return 'English (Default)';
|
|
81
|
+
}
|
|
82
|
+
const lang = allLanguages.find((l) => l.code === selectedLanguage) || ENGLISH_FALLBACK;
|
|
83
|
+
return lang.code === 'en'
|
|
84
|
+
? 'English (Default)'
|
|
85
|
+
: `${lang.name}${lang.nativeName ? ` (${lang.nativeName})` : ''}`;
|
|
86
|
+
};
|
|
87
|
+
const LanguageOptionItem = ({ language, isSelected, onSelect }) => (react_1.default.createElement(LanguageOption, { key: language.code, onClick: (event) => onSelect(event, language.code) },
|
|
88
|
+
language.name,
|
|
89
|
+
language.nativeName && ` (${language.nativeName})`,
|
|
90
|
+
isSelected && (react_1.default.createElement(TickIconWrapper, null,
|
|
91
|
+
react_1.default.createElement(style_guide_1.TickIcon, null)))));
|
|
92
|
+
const DocumentLanguageSelector = ({ onCloseParent, }) => {
|
|
93
|
+
const [storeState] = (0, useStore_1.useStore)((s) => ({
|
|
94
|
+
doc: s.doc,
|
|
95
|
+
view: s.view,
|
|
96
|
+
}));
|
|
97
|
+
// Get selected language from document's primaryLanguageCode or default to 'en'
|
|
98
|
+
const selectedLanguage = storeState.doc?.attrs?.primaryLanguageCode || 'en';
|
|
99
|
+
const [isSubmenuOpen, setIsSubmenuOpen] = (0, react_1.useState)(false);
|
|
100
|
+
const [allLanguages, setAllLanguages] = (0, react_1.useState)([]);
|
|
101
|
+
const submenuRef = (0, react_1.useRef)(null);
|
|
102
|
+
// Initialize language data and load all languages
|
|
103
|
+
(0, react_1.useEffect)(() => {
|
|
104
|
+
const loadLanguages = async () => {
|
|
105
|
+
try {
|
|
106
|
+
// Dynamically import the English language data
|
|
107
|
+
const englishLanguageData = await Promise.resolve().then(() => __importStar(require('@cospired/i18n-iso-languages/langs/en.json')));
|
|
108
|
+
i18n_iso_languages_1.default.registerLocale(englishLanguageData.default);
|
|
109
|
+
// Get all available language codes
|
|
110
|
+
const languageCodes = i18n_iso_languages_1.default.getAlpha2Codes();
|
|
111
|
+
const languagesList = Object.keys(languageCodes).map((code) => ({
|
|
112
|
+
code,
|
|
113
|
+
name: i18n_iso_languages_1.default.getName(code, 'en') || code,
|
|
114
|
+
nativeName: NATIVE_NAMES[code] || i18n_iso_languages_1.default.getName(code, code) || undefined,
|
|
115
|
+
isCommon: COMMON_LANGUAGES.includes(code),
|
|
116
|
+
}));
|
|
117
|
+
setAllLanguages(languagesList);
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
console.error('Failed to load language data:', error);
|
|
121
|
+
// Fallback to English only if loading fails
|
|
122
|
+
setAllLanguages([ENGLISH_FALLBACK]);
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
loadLanguages();
|
|
126
|
+
}, []);
|
|
127
|
+
// Prepare language options with common languages first
|
|
128
|
+
const languageOptions = (0, react_1.useMemo)(() => {
|
|
129
|
+
return [...allLanguages].sort((a, b) => {
|
|
130
|
+
// Sort common languages first
|
|
131
|
+
if (a.isCommon && !b.isCommon) {
|
|
132
|
+
return -1;
|
|
133
|
+
}
|
|
134
|
+
if (!a.isCommon && b.isCommon) {
|
|
135
|
+
return 1;
|
|
136
|
+
}
|
|
137
|
+
// Then sort alphabetically by name
|
|
138
|
+
return a.name.localeCompare(b.name);
|
|
139
|
+
});
|
|
140
|
+
}, [allLanguages]);
|
|
141
|
+
// Close submenu when clicking outside
|
|
142
|
+
(0, react_1.useEffect)(() => {
|
|
143
|
+
const handleClickOutside = (event) => {
|
|
144
|
+
if (submenuRef.current &&
|
|
145
|
+
!submenuRef.current.contains(event.target)) {
|
|
146
|
+
setIsSubmenuOpen(false);
|
|
147
|
+
onCloseParent?.();
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
if (isSubmenuOpen) {
|
|
151
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
152
|
+
}
|
|
153
|
+
return () => {
|
|
154
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
155
|
+
};
|
|
156
|
+
}, [isSubmenuOpen, onCloseParent]);
|
|
157
|
+
const handleLanguageButtonClick = (event) => {
|
|
158
|
+
event.stopPropagation();
|
|
159
|
+
setIsSubmenuOpen(!isSubmenuOpen);
|
|
160
|
+
};
|
|
161
|
+
const handleLanguageSelect = (event, languageCode) => {
|
|
162
|
+
event.stopPropagation();
|
|
163
|
+
if (storeState.view) {
|
|
164
|
+
const { state, dispatch } = storeState.view;
|
|
165
|
+
const tr = state.tr;
|
|
166
|
+
tr.setDocAttribute('primaryLanguageCode', languageCode);
|
|
167
|
+
dispatch(tr);
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
return (react_1.default.createElement(style_guide_1.DropdownContainer, { ref: submenuRef },
|
|
171
|
+
react_1.default.createElement(LanguageSelectorButton, { onClick: handleLanguageButtonClick },
|
|
172
|
+
react_1.default.createElement(LanguageHeader, null,
|
|
173
|
+
react_1.default.createElement(LanguageLabel, null,
|
|
174
|
+
"Document language ",
|
|
175
|
+
react_1.default.createElement(style_guide_1.TriangleCollapsedIcon, null)),
|
|
176
|
+
react_1.default.createElement(SelectedLanguageText, null, getSelectedLanguageName(selectedLanguage, allLanguages)))),
|
|
177
|
+
isSubmenuOpen && (react_1.default.createElement(StyledDropdownList, { direction: "right", width: 231, top: 18, height: 400 }, languageOptions.map((language) => (react_1.default.createElement(LanguageOptionItem, { key: language.code, language: language, isSelected: selectedLanguage === language.code, onSelect: handleLanguageSelect })))))));
|
|
178
|
+
};
|
|
179
|
+
exports.default = DocumentLanguageSelector;
|
|
180
|
+
const StyledDropdownList = (0, styled_components_1.default)(style_guide_1.DropdownList) `
|
|
181
|
+
overflow-y: auto;
|
|
182
|
+
overflow-x: hidden;
|
|
183
|
+
border-radius: 8px;
|
|
184
|
+
|
|
185
|
+
/* Custom scrollbar styling */
|
|
186
|
+
&::-webkit-scrollbar {
|
|
187
|
+
width: 6px;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
&::-webkit-scrollbar-track {
|
|
191
|
+
background: ${(props) => props.theme.colors.background.secondary};
|
|
192
|
+
border-radius: 3px;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
&::-webkit-scrollbar-thumb {
|
|
196
|
+
background: #6e6e6e;
|
|
197
|
+
border-radius: 3px;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
&::-webkit-scrollbar-thumb:hover {
|
|
201
|
+
background: #6e6e6e;
|
|
202
|
+
}
|
|
203
|
+
`;
|
|
204
|
+
const LanguageSelectorButton = styled_components_1.default.div `
|
|
205
|
+
display: flex;
|
|
206
|
+
align-items: center;
|
|
207
|
+
justify-content: space-between;
|
|
208
|
+
font-family: ${(props) => props.theme.font.family.Lato};
|
|
209
|
+
cursor: pointer;
|
|
210
|
+
font-size: 14px;
|
|
211
|
+
line-height: 24px;
|
|
212
|
+
color: ${(props) => props.theme.colors.text.primary};
|
|
213
|
+
padding: 10px 16px;
|
|
214
|
+
width: 100%;
|
|
215
|
+
|
|
216
|
+
&:hover {
|
|
217
|
+
background: ${(props) => props.theme.colors.background.fifth};
|
|
218
|
+
}
|
|
219
|
+
`;
|
|
220
|
+
const LanguageHeader = styled_components_1.default.span `
|
|
221
|
+
display: flex;
|
|
222
|
+
flex-direction: column;
|
|
223
|
+
align-items: flex-start;
|
|
224
|
+
`;
|
|
225
|
+
const LanguageLabel = styled_components_1.default.span `
|
|
226
|
+
display: flex;
|
|
227
|
+
align-items: center;
|
|
228
|
+
font-size: 16px;
|
|
229
|
+
|
|
230
|
+
svg {
|
|
231
|
+
top: 10px;
|
|
232
|
+
right: -10px;
|
|
233
|
+
position: relative;
|
|
234
|
+
}
|
|
235
|
+
`;
|
|
236
|
+
const SelectedLanguageText = styled_components_1.default.span `
|
|
237
|
+
font-size: 12px;
|
|
238
|
+
color: ${(props) => props.theme.colors.text.secondary};
|
|
239
|
+
margin-top: 2px;
|
|
240
|
+
`;
|
|
241
|
+
const LanguageOption = styled_components_1.default.div `
|
|
242
|
+
display: flex;
|
|
243
|
+
align-items: center;
|
|
244
|
+
justify-content: space-between;
|
|
245
|
+
font-family: ${(props) => props.theme.font.family.Lato};
|
|
246
|
+
cursor: pointer;
|
|
247
|
+
font-size: 14px;
|
|
248
|
+
line-height: 24px;
|
|
249
|
+
color: ${(props) => props.theme.colors.text.primary};
|
|
250
|
+
padding: 10px 16px;
|
|
251
|
+
`;
|
|
252
|
+
const TickIconWrapper = styled_components_1.default.div `
|
|
253
|
+
svg path {
|
|
254
|
+
fill: #6e6e6e;
|
|
255
|
+
}
|
|
256
|
+
`;
|
|
257
|
+
//# sourceMappingURL=DocumentLanguageSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentLanguageSelector.js","sourceRoot":"","sources":["../../../src/components/DocumentLanguageSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -19,16 +19,18 @@ const track_changes_plugin_1 = require("@manuscripts/track-changes-plugin");
|
|
|
19
19
|
const react_1 = __importDefault(require("react"));
|
|
20
20
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
21
21
|
const use_exec_cmd_1 = __importDefault(require("../hooks/use-exec-cmd"));
|
|
22
|
-
const
|
|
22
|
+
const DocumentLanguageSelector_1 = __importDefault(require("./DocumentLanguageSelector"));
|
|
23
|
+
const DocumentOptionsDropdown = () => {
|
|
23
24
|
const { isOpen, toggleOpen, wrapperRef } = (0, style_guide_1.useDropdown)();
|
|
24
25
|
const execCmd = (0, use_exec_cmd_1.default)();
|
|
25
26
|
return (react_1.default.createElement(style_guide_1.DropdownContainer, { ref: wrapperRef },
|
|
26
|
-
react_1.default.createElement(ToggleDropdownButton, { "data-cy": "
|
|
27
|
+
react_1.default.createElement(ToggleDropdownButton, { "data-cy": "document-options-button", title: "Document Options", onClick: toggleOpen },
|
|
27
28
|
react_1.default.createElement(style_guide_1.DotsIcon, null)),
|
|
28
29
|
isOpen && (react_1.default.createElement(HistoryDropdownList, { "data-cy": "history-dropdown", direction: "right", width: 192, top: 5, onClick: toggleOpen },
|
|
29
|
-
react_1.default.createElement(DropdownItem, { onClick: () => execCmd(track_changes_plugin_1.trackCommands.setTrackingStatus(track_changes_plugin_1.TrackChangesStatus.viewSnapshots)) }, "Version history")
|
|
30
|
+
react_1.default.createElement(DropdownItem, { "data-cy": "version-history-button", onClick: () => execCmd(track_changes_plugin_1.trackCommands.setTrackingStatus(track_changes_plugin_1.TrackChangesStatus.viewSnapshots)) }, "Version history"),
|
|
31
|
+
react_1.default.createElement(DocumentLanguageSelector_1.default, { onCloseParent: toggleOpen })))));
|
|
30
32
|
};
|
|
31
|
-
exports.default =
|
|
33
|
+
exports.default = DocumentOptionsDropdown;
|
|
32
34
|
const ToggleDropdownButton = styled_components_1.default.button `
|
|
33
35
|
border: none;
|
|
34
36
|
background: transparent;
|
|
@@ -45,10 +47,14 @@ const DropdownItem = styled_components_1.default.div `
|
|
|
45
47
|
line-height: 24px;
|
|
46
48
|
color: ${(props) => props.theme.colors.text.primary};
|
|
47
49
|
padding: 16px;
|
|
50
|
+
|
|
51
|
+
&:hover {
|
|
52
|
+
background: ${(props) => props.theme.colors.background.fifth};
|
|
53
|
+
}
|
|
48
54
|
`;
|
|
49
55
|
const HistoryDropdownList = (0, styled_components_1.default)(style_guide_1.DropdownList) `
|
|
50
56
|
top: 0;
|
|
51
57
|
right: 50%;
|
|
52
58
|
border-radius: 8px;
|
|
53
59
|
`;
|
|
54
|
-
//# sourceMappingURL=
|
|
60
|
+
//# sourceMappingURL=DocumentOptionsDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentOptionsDropdown.js","sourceRoot":"","sources":["../../../src/components/DocumentOptionsDropdown.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;AAEH,0DAKiC;AACjC,4EAG0C;AAC1C,kDAAyB;AACzB,0EAAsC;AAEtC,yEAA8C;AAC9C,0FAAiE;AAEjE,MAAM,uBAAuB,GAAa,GAAG,EAAE;IAC7C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAA,yBAAW,GAAE,CAAA;IACxD,MAAM,OAAO,GAAG,IAAA,sBAAU,GAAE,CAAA;IAE5B,OAAO,CACL,8BAAC,+BAAiB,IAAC,GAAG,EAAE,UAAU;QAChC,8BAAC,oBAAoB,eACX,yBAAyB,EACjC,KAAK,EAAC,kBAAkB,EACxB,OAAO,EAAE,UAAU;YAEnB,8BAAC,sBAAQ,OAAG,CACS;QAEtB,MAAM,IAAI,CACT,8BAAC,mBAAmB,eACV,kBAAkB,EAC1B,SAAS,EAAC,OAAO,EACjB,KAAK,EAAE,GAAG,EACV,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,UAAU;YAEnB,8BAAC,YAAY,eACH,wBAAwB,EAChC,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,CACL,oCAAa,CAAC,iBAAiB,CAC7B,yCAAkB,CAAC,aAAa,CACjC,CACF,sBAIU;YACf,8BAAC,kCAAwB,IAAC,aAAa,EAAE,UAAU,GAAI,CACnC,CACvB,CACiB,CACrB,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,uBAAuB,CAAA;AAEtC,MAAM,oBAAoB,GAAG,2BAAM,CAAC,MAAM,CAAA;;;;;;;;CAQzC,CAAA;AAED,MAAM,YAAY,GAAG,2BAAM,CAAC,GAAG,CAAA;iBACd,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;;;;WAI7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;;;;kBAInC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK;;CAE/D,CAAA;AAED,MAAM,mBAAmB,GAAG,IAAA,2BAAM,EAAC,0BAAY,CAAC,CAAA;;;;CAI/C,CAAA"}
|
|
@@ -53,6 +53,7 @@ const react_1 = __importStar(require("react"));
|
|
|
53
53
|
const use_inspector_tabs_context_1 = require("../../hooks/use-inspector-tabs-context");
|
|
54
54
|
const store_1 = require("../../store");
|
|
55
55
|
const CommentsPanel_1 = require("../comments/CommentsPanel");
|
|
56
|
+
const DocumentOptionsDropdown_1 = __importDefault(require("../DocumentOptionsDropdown"));
|
|
56
57
|
const FileManager_1 = require("../FileManager/FileManager");
|
|
57
58
|
const Inspector_1 = require("../Inspector");
|
|
58
59
|
const InspectorTab_1 = require("../inspector/InspectorTab");
|
|
@@ -61,7 +62,6 @@ const SnapshotsList_1 = require("../inspector/SnapshotsList");
|
|
|
61
62
|
const Panel_1 = __importDefault(require("../Panel"));
|
|
62
63
|
const ResizerButtons_1 = require("../ResizerButtons");
|
|
63
64
|
const TrackChangesPanel_1 = require("../track-changes/TrackChangesPanel");
|
|
64
|
-
const VersionHistoryDropdown_1 = __importDefault(require("../VersionHistoryDropdown"));
|
|
65
65
|
const Inspector = () => {
|
|
66
66
|
const [store] = (0, store_1.useStore)((store) => ({
|
|
67
67
|
selectedCommentKey: store.selectedCommentKey,
|
|
@@ -123,7 +123,7 @@ const Inspector = () => {
|
|
|
123
123
|
react_1.default.createElement(style_guide_1.DangerIcon, null),
|
|
124
124
|
store.inconsistencies.length > 0 && (react_1.default.createElement(Inspector_1.WarningBadge, null, store.inconsistencies.length))), isVisible: tabIndex === ISSUES_TAB_INDEX }, "Quality"),
|
|
125
125
|
react_1.default.createElement(Inspector_1.Spacer, null),
|
|
126
|
-
react_1.default.createElement(
|
|
126
|
+
react_1.default.createElement(DocumentOptionsDropdown_1.default, null)),
|
|
127
127
|
react_1.default.createElement(Inspector_1.PaddedInspectorTabPanels, null,
|
|
128
128
|
react_1.default.createElement(Inspector_1.InspectorTabPanel, { key: "Comments", "data-cy": "comments" }, tabIndex === COMMENTS_TAB_INDEX && (react_1.default.createElement(CommentsPanel_1.CommentsPanel, { key: "comments" }))),
|
|
129
129
|
!can.editWithoutTracking && (react_1.default.createElement(Inspector_1.InspectorTabPanel, { key: "History", "data-cy": "history" }, tabIndex === HISTORY_TAB_INDEX && (react_1.default.createElement(TrackChangesPanel_1.TrackChangesPanel, { key: "track-changes" })))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../../../src/components/projects/Inspector.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,0DAAuE;AACvE,0DAMiC;AACjC,+CAAkD;AAElD,uFAA6E;AAC7E,uCAAsC;AACtC,6DAAyD;AACzD,4DAAwD;AACxD,4CASqB;AACrB,4DAAwD;AACxD,0DAAsD;AACtD,8DAA0D;AAC1D,qDAA4B;AAC5B,sDAA2D;AAC3D,0EAAsE;
|
|
1
|
+
{"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../../../src/components/projects/Inspector.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,0DAAuE;AACvE,0DAMiC;AACjC,+CAAkD;AAElD,uFAA6E;AAC7E,uCAAsC;AACtC,6DAAyD;AACzD,yFAAgE;AAChE,4DAAwD;AACxD,4CASqB;AACrB,4DAAwD;AACxD,0DAAsD;AACtD,8DAA0D;AAC1D,qDAA4B;AAC5B,sDAA2D;AAC3D,0EAAsE;AAEtE,MAAM,SAAS,GAAa,GAAG,EAAE;IAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;QAC5C,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAC,CAAA;IAEH,MAAM,GAAG,GAAG,IAAA,4BAAc,GAAE,CAAA;IAE5B,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAA;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,oBAAoB,CAAA;IAC7C,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAA;IACjD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAA;IAE3C,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,MAAM,kBAAkB,GAAG,KAAK,EAAE,CAAA;IAClC,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,MAAM,eAAe,GAAG,KAAK,EAAE,CAAA;IAC/B,MAAM,gBAAgB,GAAG,KAAK,EAAE,CAAA;IAEhC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,WAAW,CAAC,kBAAkB,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAEjC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,CAAC,iBAAiB,CAAC,CAAA;QAChC,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAEnC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,iBAAiB,EAAE,UAAU,KAAK,iDAAoB,CAAC,KAAK,EAAE,CAAC;YACjE,WAAW,CAAC,eAAe,CAAC,CAAA;QAC9B,CAAC;aAAM,IAAI,iBAAiB,EAAE,UAAU,KAAK,iDAAoB,CAAC,OAAO,EAAE,CAAC;YAC1E,WAAW,CAAC,gBAAgB,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAE1D,mDAAmD;IACnD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;YAC9B,EAAE,CAAC,OAAO,CAAC,0CAA4B,EAAE,QAAQ,KAAK,gBAAgB,CAAC,CAAA;YACvE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACzB,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5C,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,OAAO,CACL,8BAAC,eAAK,IACJ,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,KAAK,EAChB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,EAAE,wCAAuB;YAEtC,8BAAC,8BAAkB,eAAS,WAAW;gBACrC,8BAAC,qCAAiB,IAAC,GAAG,EAAC,eAAe,GAAG,CACtB,CACf,CACT,CAAA;IACH,CAAC;IAED,OAAO,CACL,8BAAC,eAAK,IACJ,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,KAAK,EAChB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,EAAE,wCAAuB,IAErC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CACrB,8BAAC,6BAAa,OAAG,CAClB,CAAC,CAAC,CAAC,CACF,8BAAC,8BAAkB,eAAS,WAAW;QACrC,8BAAC,yBAAa,IAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW;YAC3D,8BAAC,0BAAc;gBACb,8BAAC,2BAAY,IACX,EAAE,EAAC,iBAAiB,EACpB,IAAI,EAAE,8BAAC,sBAAQ,OAAG,EAClB,SAAS,EAAE,QAAQ,KAAK,kBAAkB,eAG7B;gBACd,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAC3B,8BAAC,2BAAY,IACX,EAAE,EAAC,gBAAgB,EACnB,IAAI,EAAE,8BAAC,sBAAQ,OAAG,EAClB,SAAS,EAAE,QAAQ,KAAK,iBAAiB,cAG5B,CAChB;gBACD,8BAAC,2BAAY,IACX,EAAE,EAAC,cAAc,EACjB,IAAI,EAAE,8BAAC,4BAAc,OAAG,EACxB,SAAS,EAAE,QAAQ,KAAK,eAAe,YAG1B;gBACf,8BAAC,2BAAY,IACX,EAAE,EAAC,eAAe,EAClB,IAAI,EACF,8BAAC,uBAAW;wBACV,8BAAC,wBAAU,OAAG;wBACb,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CACnC,8BAAC,wBAAY,QACV,KAAK,CAAC,eAAe,CAAC,MAAM,CAChB,CAChB,CACW,EAEhB,SAAS,EAAE,QAAQ,KAAK,gBAAgB,cAG3B;gBACf,8BAAC,kBAAM,OAAG;gBACV,8BAAC,iCAAuB,OAAG,CACZ;YACjB,8BAAC,oCAAwB;gBACvB,8BAAC,6BAAiB,IAAC,GAAG,EAAC,UAAU,aAAS,UAAU,IACjD,QAAQ,KAAK,kBAAkB,IAAI,CAClC,8BAAC,6BAAa,IAAC,GAAG,EAAC,UAAU,GAAG,CACjC,CACiB;gBACnB,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAC3B,8BAAC,6BAAiB,IAAC,GAAG,EAAC,SAAS,aAAS,SAAS,IAC/C,QAAQ,KAAK,iBAAiB,IAAI,CACjC,8BAAC,qCAAiB,IAAC,GAAG,EAAC,eAAe,GAAG,CAC1C,CACiB,CACrB;gBACD,8BAAC,6BAAiB,IAAC,GAAG,EAAC,OAAO,aAAS,OAAO,IAC3C,QAAQ,KAAK,eAAe,IAAI,8BAAC,yBAAW,IAAC,GAAG,EAAC,OAAO,GAAG,CAC1C;gBACpB,8BAAC,6BAAiB,IAAC,GAAG,EAAC,QAAQ,aAAS,QAAQ,IAC7C,QAAQ,KAAK,gBAAgB,IAAI,8BAAC,yBAAW,IAAC,GAAG,EAAC,QAAQ,GAAG,CAC5C,CACK,CACb,CACG,CACtB,CACK,CACT,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
|
|
3
|
+
*
|
|
4
|
+
* Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
|
|
5
|
+
*
|
|
6
|
+
* The Original Code is manuscripts-frontend.
|
|
7
|
+
*
|
|
8
|
+
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
|
9
|
+
*
|
|
10
|
+
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
|
11
|
+
*/
|
|
12
|
+
import isoLanguages from '@cospired/i18n-iso-languages';
|
|
13
|
+
import { DropdownContainer, DropdownList, TickIcon, TriangleCollapsedIcon, } from '@manuscripts/style-guide';
|
|
14
|
+
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
|
15
|
+
import styled from 'styled-components';
|
|
16
|
+
import { useStore } from '../store/useStore';
|
|
17
|
+
// Native names lookup for common languages
|
|
18
|
+
const NATIVE_NAMES = {
|
|
19
|
+
en: 'Default',
|
|
20
|
+
es: 'Español',
|
|
21
|
+
fr: 'Français',
|
|
22
|
+
de: 'Deutsch',
|
|
23
|
+
it: 'Italiano',
|
|
24
|
+
pt: 'Português',
|
|
25
|
+
ru: 'Русский',
|
|
26
|
+
ja: '日本語',
|
|
27
|
+
ko: '한국어',
|
|
28
|
+
zh: '中文',
|
|
29
|
+
ar: 'العربية',
|
|
30
|
+
};
|
|
31
|
+
const COMMON_LANGUAGES = Object.keys(NATIVE_NAMES);
|
|
32
|
+
// Fallback language object for English
|
|
33
|
+
const ENGLISH_FALLBACK = {
|
|
34
|
+
code: 'en',
|
|
35
|
+
name: 'English',
|
|
36
|
+
nativeName: 'English',
|
|
37
|
+
isCommon: true,
|
|
38
|
+
};
|
|
39
|
+
// Get display name for selected language
|
|
40
|
+
const getSelectedLanguageName = (selectedLanguage, allLanguages) => {
|
|
41
|
+
if (!allLanguages.length) {
|
|
42
|
+
return 'English (Default)';
|
|
43
|
+
}
|
|
44
|
+
const lang = allLanguages.find((l) => l.code === selectedLanguage) || ENGLISH_FALLBACK;
|
|
45
|
+
return lang.code === 'en'
|
|
46
|
+
? 'English (Default)'
|
|
47
|
+
: `${lang.name}${lang.nativeName ? ` (${lang.nativeName})` : ''}`;
|
|
48
|
+
};
|
|
49
|
+
const LanguageOptionItem = ({ language, isSelected, onSelect }) => (React.createElement(LanguageOption, { key: language.code, onClick: (event) => onSelect(event, language.code) },
|
|
50
|
+
language.name,
|
|
51
|
+
language.nativeName && ` (${language.nativeName})`,
|
|
52
|
+
isSelected && (React.createElement(TickIconWrapper, null,
|
|
53
|
+
React.createElement(TickIcon, null)))));
|
|
54
|
+
const DocumentLanguageSelector = ({ onCloseParent, }) => {
|
|
55
|
+
const [storeState] = useStore((s) => ({
|
|
56
|
+
doc: s.doc,
|
|
57
|
+
view: s.view,
|
|
58
|
+
}));
|
|
59
|
+
// Get selected language from document's primaryLanguageCode or default to 'en'
|
|
60
|
+
const selectedLanguage = storeState.doc?.attrs?.primaryLanguageCode || 'en';
|
|
61
|
+
const [isSubmenuOpen, setIsSubmenuOpen] = useState(false);
|
|
62
|
+
const [allLanguages, setAllLanguages] = useState([]);
|
|
63
|
+
const submenuRef = useRef(null);
|
|
64
|
+
// Initialize language data and load all languages
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
const loadLanguages = async () => {
|
|
67
|
+
try {
|
|
68
|
+
// Dynamically import the English language data
|
|
69
|
+
const englishLanguageData = await import('@cospired/i18n-iso-languages/langs/en.json');
|
|
70
|
+
isoLanguages.registerLocale(englishLanguageData.default);
|
|
71
|
+
// Get all available language codes
|
|
72
|
+
const languageCodes = isoLanguages.getAlpha2Codes();
|
|
73
|
+
const languagesList = Object.keys(languageCodes).map((code) => ({
|
|
74
|
+
code,
|
|
75
|
+
name: isoLanguages.getName(code, 'en') || code,
|
|
76
|
+
nativeName: NATIVE_NAMES[code] || isoLanguages.getName(code, code) || undefined,
|
|
77
|
+
isCommon: COMMON_LANGUAGES.includes(code),
|
|
78
|
+
}));
|
|
79
|
+
setAllLanguages(languagesList);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
console.error('Failed to load language data:', error);
|
|
83
|
+
// Fallback to English only if loading fails
|
|
84
|
+
setAllLanguages([ENGLISH_FALLBACK]);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
loadLanguages();
|
|
88
|
+
}, []);
|
|
89
|
+
// Prepare language options with common languages first
|
|
90
|
+
const languageOptions = useMemo(() => {
|
|
91
|
+
return [...allLanguages].sort((a, b) => {
|
|
92
|
+
// Sort common languages first
|
|
93
|
+
if (a.isCommon && !b.isCommon) {
|
|
94
|
+
return -1;
|
|
95
|
+
}
|
|
96
|
+
if (!a.isCommon && b.isCommon) {
|
|
97
|
+
return 1;
|
|
98
|
+
}
|
|
99
|
+
// Then sort alphabetically by name
|
|
100
|
+
return a.name.localeCompare(b.name);
|
|
101
|
+
});
|
|
102
|
+
}, [allLanguages]);
|
|
103
|
+
// Close submenu when clicking outside
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
const handleClickOutside = (event) => {
|
|
106
|
+
if (submenuRef.current &&
|
|
107
|
+
!submenuRef.current.contains(event.target)) {
|
|
108
|
+
setIsSubmenuOpen(false);
|
|
109
|
+
onCloseParent?.();
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
if (isSubmenuOpen) {
|
|
113
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
114
|
+
}
|
|
115
|
+
return () => {
|
|
116
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
117
|
+
};
|
|
118
|
+
}, [isSubmenuOpen, onCloseParent]);
|
|
119
|
+
const handleLanguageButtonClick = (event) => {
|
|
120
|
+
event.stopPropagation();
|
|
121
|
+
setIsSubmenuOpen(!isSubmenuOpen);
|
|
122
|
+
};
|
|
123
|
+
const handleLanguageSelect = (event, languageCode) => {
|
|
124
|
+
event.stopPropagation();
|
|
125
|
+
if (storeState.view) {
|
|
126
|
+
const { state, dispatch } = storeState.view;
|
|
127
|
+
const tr = state.tr;
|
|
128
|
+
tr.setDocAttribute('primaryLanguageCode', languageCode);
|
|
129
|
+
dispatch(tr);
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
return (React.createElement(DropdownContainer, { ref: submenuRef },
|
|
133
|
+
React.createElement(LanguageSelectorButton, { onClick: handleLanguageButtonClick },
|
|
134
|
+
React.createElement(LanguageHeader, null,
|
|
135
|
+
React.createElement(LanguageLabel, null,
|
|
136
|
+
"Document language ",
|
|
137
|
+
React.createElement(TriangleCollapsedIcon, null)),
|
|
138
|
+
React.createElement(SelectedLanguageText, null, getSelectedLanguageName(selectedLanguage, allLanguages)))),
|
|
139
|
+
isSubmenuOpen && (React.createElement(StyledDropdownList, { direction: "right", width: 231, top: 18, height: 400 }, languageOptions.map((language) => (React.createElement(LanguageOptionItem, { key: language.code, language: language, isSelected: selectedLanguage === language.code, onSelect: handleLanguageSelect })))))));
|
|
140
|
+
};
|
|
141
|
+
export default DocumentLanguageSelector;
|
|
142
|
+
const StyledDropdownList = styled(DropdownList) `
|
|
143
|
+
overflow-y: auto;
|
|
144
|
+
overflow-x: hidden;
|
|
145
|
+
border-radius: 8px;
|
|
146
|
+
|
|
147
|
+
/* Custom scrollbar styling */
|
|
148
|
+
&::-webkit-scrollbar {
|
|
149
|
+
width: 6px;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
&::-webkit-scrollbar-track {
|
|
153
|
+
background: ${(props) => props.theme.colors.background.secondary};
|
|
154
|
+
border-radius: 3px;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
&::-webkit-scrollbar-thumb {
|
|
158
|
+
background: #6e6e6e;
|
|
159
|
+
border-radius: 3px;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
&::-webkit-scrollbar-thumb:hover {
|
|
163
|
+
background: #6e6e6e;
|
|
164
|
+
}
|
|
165
|
+
`;
|
|
166
|
+
const LanguageSelectorButton = styled.div `
|
|
167
|
+
display: flex;
|
|
168
|
+
align-items: center;
|
|
169
|
+
justify-content: space-between;
|
|
170
|
+
font-family: ${(props) => props.theme.font.family.Lato};
|
|
171
|
+
cursor: pointer;
|
|
172
|
+
font-size: 14px;
|
|
173
|
+
line-height: 24px;
|
|
174
|
+
color: ${(props) => props.theme.colors.text.primary};
|
|
175
|
+
padding: 10px 16px;
|
|
176
|
+
width: 100%;
|
|
177
|
+
|
|
178
|
+
&:hover {
|
|
179
|
+
background: ${(props) => props.theme.colors.background.fifth};
|
|
180
|
+
}
|
|
181
|
+
`;
|
|
182
|
+
const LanguageHeader = styled.span `
|
|
183
|
+
display: flex;
|
|
184
|
+
flex-direction: column;
|
|
185
|
+
align-items: flex-start;
|
|
186
|
+
`;
|
|
187
|
+
const LanguageLabel = styled.span `
|
|
188
|
+
display: flex;
|
|
189
|
+
align-items: center;
|
|
190
|
+
font-size: 16px;
|
|
191
|
+
|
|
192
|
+
svg {
|
|
193
|
+
top: 10px;
|
|
194
|
+
right: -10px;
|
|
195
|
+
position: relative;
|
|
196
|
+
}
|
|
197
|
+
`;
|
|
198
|
+
const SelectedLanguageText = styled.span `
|
|
199
|
+
font-size: 12px;
|
|
200
|
+
color: ${(props) => props.theme.colors.text.secondary};
|
|
201
|
+
margin-top: 2px;
|
|
202
|
+
`;
|
|
203
|
+
const LanguageOption = styled.div `
|
|
204
|
+
display: flex;
|
|
205
|
+
align-items: center;
|
|
206
|
+
justify-content: space-between;
|
|
207
|
+
font-family: ${(props) => props.theme.font.family.Lato};
|
|
208
|
+
cursor: pointer;
|
|
209
|
+
font-size: 14px;
|
|
210
|
+
line-height: 24px;
|
|
211
|
+
color: ${(props) => props.theme.colors.text.primary};
|
|
212
|
+
padding: 10px 16px;
|
|
213
|
+
`;
|
|
214
|
+
const TickIconWrapper = styled.div `
|
|
215
|
+
svg path {
|
|
216
|
+
fill: #6e6e6e;
|
|
217
|
+
}
|
|
218
|
+
`;
|
|
219
|
+
//# sourceMappingURL=DocumentLanguageSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentLanguageSelector.js","sourceRoot":"","sources":["../../../src/components/DocumentLanguageSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,16 +14,18 @@ import { TrackChangesStatus, trackCommands, } from '@manuscripts/track-changes-p
|
|
|
14
14
|
import React from 'react';
|
|
15
15
|
import styled from 'styled-components';
|
|
16
16
|
import useExecCmd from '../hooks/use-exec-cmd';
|
|
17
|
-
|
|
17
|
+
import DocumentLanguageSelector from './DocumentLanguageSelector';
|
|
18
|
+
const DocumentOptionsDropdown = () => {
|
|
18
19
|
const { isOpen, toggleOpen, wrapperRef } = useDropdown();
|
|
19
20
|
const execCmd = useExecCmd();
|
|
20
21
|
return (React.createElement(DropdownContainer, { ref: wrapperRef },
|
|
21
|
-
React.createElement(ToggleDropdownButton, { "data-cy": "
|
|
22
|
+
React.createElement(ToggleDropdownButton, { "data-cy": "document-options-button", title: "Document Options", onClick: toggleOpen },
|
|
22
23
|
React.createElement(DotsIcon, null)),
|
|
23
24
|
isOpen && (React.createElement(HistoryDropdownList, { "data-cy": "history-dropdown", direction: "right", width: 192, top: 5, onClick: toggleOpen },
|
|
24
|
-
React.createElement(DropdownItem, { onClick: () => execCmd(trackCommands.setTrackingStatus(TrackChangesStatus.viewSnapshots)) }, "Version history")
|
|
25
|
+
React.createElement(DropdownItem, { "data-cy": "version-history-button", onClick: () => execCmd(trackCommands.setTrackingStatus(TrackChangesStatus.viewSnapshots)) }, "Version history"),
|
|
26
|
+
React.createElement(DocumentLanguageSelector, { onCloseParent: toggleOpen })))));
|
|
25
27
|
};
|
|
26
|
-
export default
|
|
28
|
+
export default DocumentOptionsDropdown;
|
|
27
29
|
const ToggleDropdownButton = styled.button `
|
|
28
30
|
border: none;
|
|
29
31
|
background: transparent;
|
|
@@ -40,10 +42,14 @@ const DropdownItem = styled.div `
|
|
|
40
42
|
line-height: 24px;
|
|
41
43
|
color: ${(props) => props.theme.colors.text.primary};
|
|
42
44
|
padding: 16px;
|
|
45
|
+
|
|
46
|
+
&:hover {
|
|
47
|
+
background: ${(props) => props.theme.colors.background.fifth};
|
|
48
|
+
}
|
|
43
49
|
`;
|
|
44
50
|
const HistoryDropdownList = styled(DropdownList) `
|
|
45
51
|
top: 0;
|
|
46
52
|
right: 50%;
|
|
47
53
|
border-radius: 8px;
|
|
48
54
|
`;
|
|
49
|
-
//# sourceMappingURL=
|
|
55
|
+
//# sourceMappingURL=DocumentOptionsDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentOptionsDropdown.js","sourceRoot":"","sources":["../../../src/components/DocumentOptionsDropdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,WAAW,GACZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,kBAAkB,EAClB,aAAa,GACd,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,UAAU,MAAM,uBAAuB,CAAA;AAC9C,OAAO,wBAAwB,MAAM,4BAA4B,CAAA;AAEjE,MAAM,uBAAuB,GAAa,GAAG,EAAE;IAC7C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAA;IACxD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAE5B,OAAO,CACL,oBAAC,iBAAiB,IAAC,GAAG,EAAE,UAAU;QAChC,oBAAC,oBAAoB,eACX,yBAAyB,EACjC,KAAK,EAAC,kBAAkB,EACxB,OAAO,EAAE,UAAU;YAEnB,oBAAC,QAAQ,OAAG,CACS;QAEtB,MAAM,IAAI,CACT,oBAAC,mBAAmB,eACV,kBAAkB,EAC1B,SAAS,EAAC,OAAO,EACjB,KAAK,EAAE,GAAG,EACV,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,UAAU;YAEnB,oBAAC,YAAY,eACH,wBAAwB,EAChC,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,CACL,aAAa,CAAC,iBAAiB,CAC7B,kBAAkB,CAAC,aAAa,CACjC,CACF,sBAIU;YACf,oBAAC,wBAAwB,IAAC,aAAa,EAAE,UAAU,GAAI,CACnC,CACvB,CACiB,CACrB,CAAA;AACH,CAAC,CAAA;AAED,eAAe,uBAAuB,CAAA;AAEtC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;CAQzC,CAAA;AAED,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;iBACd,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;;;;WAI7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;;;;kBAInC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK;;CAE/D,CAAA;AAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;;;;CAI/C,CAAA"}
|
|
@@ -15,6 +15,7 @@ import React, { useEffect, useState } from 'react';
|
|
|
15
15
|
import { InspectorPrimaryTabs } from '../../hooks/use-inspector-tabs-context';
|
|
16
16
|
import { useStore } from '../../store';
|
|
17
17
|
import { CommentsPanel } from '../comments/CommentsPanel';
|
|
18
|
+
import DocumentOptionsDropdown from '../DocumentOptionsDropdown';
|
|
18
19
|
import { FileManager } from '../FileManager/FileManager';
|
|
19
20
|
import { IconWrapper, InspectorContainer, InspectorTabPanel, InspectorTabs, PaddedInspectorTabPanels, PrimaryTabList, Spacer, WarningBadge, } from '../Inspector';
|
|
20
21
|
import { InspectorTab } from '../inspector/InspectorTab';
|
|
@@ -23,7 +24,6 @@ import { SnapshotsList } from '../inspector/SnapshotsList';
|
|
|
23
24
|
import Panel from '../Panel';
|
|
24
25
|
import { ResizingInspectorButton } from '../ResizerButtons';
|
|
25
26
|
import { TrackChangesPanel } from '../track-changes/TrackChangesPanel';
|
|
26
|
-
import VersionHistoryDropdown from '../VersionHistoryDropdown';
|
|
27
27
|
const Inspector = () => {
|
|
28
28
|
const [store] = useStore((store) => ({
|
|
29
29
|
selectedCommentKey: store.selectedCommentKey,
|
|
@@ -85,7 +85,7 @@ const Inspector = () => {
|
|
|
85
85
|
React.createElement(DangerIcon, null),
|
|
86
86
|
store.inconsistencies.length > 0 && (React.createElement(WarningBadge, null, store.inconsistencies.length))), isVisible: tabIndex === ISSUES_TAB_INDEX }, "Quality"),
|
|
87
87
|
React.createElement(Spacer, null),
|
|
88
|
-
React.createElement(
|
|
88
|
+
React.createElement(DocumentOptionsDropdown, null)),
|
|
89
89
|
React.createElement(PaddedInspectorTabPanels, null,
|
|
90
90
|
React.createElement(InspectorTabPanel, { key: "Comments", "data-cy": "comments" }, tabIndex === COMMENTS_TAB_INDEX && (React.createElement(CommentsPanel, { key: "comments" }))),
|
|
91
91
|
!can.editWithoutTracking && (React.createElement(InspectorTabPanel, { key: "History", "data-cy": "history" }, tabIndex === HISTORY_TAB_INDEX && (React.createElement(TrackChangesPanel, { key: "track-changes" })))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../../../src/components/projects/Inspector.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,cAAc,EACd,cAAc,GACf,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,MAAM,EACN,YAAY,GACb,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../../../src/components/projects/Inspector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
|
|
3
|
+
*
|
|
4
|
+
* Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
|
|
5
|
+
*
|
|
6
|
+
* The Original Code is manuscripts-frontend.
|
|
7
|
+
*
|
|
8
|
+
* The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
|
|
9
|
+
*
|
|
10
|
+
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
|
11
|
+
*/
|
|
12
|
+
import React from 'react';
|
|
13
|
+
interface DocumentLanguageSelectorProps {
|
|
14
|
+
onCloseParent?: () => void;
|
|
15
|
+
}
|
|
16
|
+
declare const DocumentLanguageSelector: React.FC<DocumentLanguageSelectorProps>;
|
|
17
|
+
export default DocumentLanguageSelector;
|
|
@@ -10,5 +10,5 @@
|
|
|
10
10
|
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
|
|
11
11
|
*/
|
|
12
12
|
import React from 'react';
|
|
13
|
-
declare const
|
|
14
|
-
export default
|
|
13
|
+
declare const DocumentOptionsDropdown: React.FC;
|
|
14
|
+
export default DocumentOptionsDropdown;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@manuscripts/article-editor",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.4",
|
|
4
4
|
"license": "CPAL-1.0",
|
|
5
5
|
"description": "React components for editing and viewing manuscripts",
|
|
6
6
|
"repository": "github:Atypon-OpenSource/manuscripts-article-editor",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"unlink-all": "rm pnpm-workspace.yaml && pnpm install"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
+
"@cospired/i18n-iso-languages": "^4.2.0",
|
|
31
32
|
"@fontsource/lato": "5.2.5",
|
|
32
33
|
"@fontsource/pt-sans": "5.2.5",
|
|
33
34
|
"@fontsource/pt-serif": "5.2.5",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VersionHistoryDropdown.js","sourceRoot":"","sources":["../../../src/components/VersionHistoryDropdown.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;AAEH,0DAKiC;AACjC,4EAG0C;AAC1C,kDAAyB;AACzB,0EAAsC;AAEtC,yEAA8C;AAE9C,MAAM,sBAAsB,GAAa,GAAG,EAAE;IAC5C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAA,yBAAW,GAAE,CAAA;IACxD,MAAM,OAAO,GAAG,IAAA,sBAAU,GAAE,CAAA;IAE5B,OAAO,CACL,8BAAC,+BAAiB,IAAC,GAAG,EAAE,UAAU;QAChC,8BAAC,oBAAoB,eACX,wBAAwB,EAChC,KAAK,EAAC,iBAAiB,EACvB,OAAO,EAAE,UAAU;YAEnB,8BAAC,sBAAQ,OAAG,CACS;QAEtB,MAAM,IAAI,CACT,8BAAC,mBAAmB,eACV,kBAAkB,EAC1B,SAAS,EAAC,OAAO,EACjB,KAAK,EAAE,GAAG,EACV,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,UAAU;YAEnB,8BAAC,YAAY,IACX,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,CACL,oCAAa,CAAC,iBAAiB,CAC7B,yCAAkB,CAAC,aAAa,CACjC,CACF,sBAIU,CACK,CACvB,CACiB,CACrB,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,sBAAsB,CAAA;AAErC,MAAM,oBAAoB,GAAG,2BAAM,CAAC,MAAM,CAAA;;;;;;;;CAQzC,CAAA;AACD,MAAM,YAAY,GAAG,2BAAM,CAAC,GAAG,CAAA;iBACd,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;;;;WAI7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;;CAEpD,CAAA;AACD,MAAM,mBAAmB,GAAG,IAAA,2BAAM,EAAC,0BAAY,CAAC,CAAA;;;;CAI/C,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VersionHistoryDropdown.js","sourceRoot":"","sources":["../../../src/components/VersionHistoryDropdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,WAAW,GACZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,kBAAkB,EAClB,aAAa,GACd,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,UAAU,MAAM,uBAAuB,CAAA;AAE9C,MAAM,sBAAsB,GAAa,GAAG,EAAE;IAC5C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAA;IACxD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAE5B,OAAO,CACL,oBAAC,iBAAiB,IAAC,GAAG,EAAE,UAAU;QAChC,oBAAC,oBAAoB,eACX,wBAAwB,EAChC,KAAK,EAAC,iBAAiB,EACvB,OAAO,EAAE,UAAU;YAEnB,oBAAC,QAAQ,OAAG,CACS;QAEtB,MAAM,IAAI,CACT,oBAAC,mBAAmB,eACV,kBAAkB,EAC1B,SAAS,EAAC,OAAO,EACjB,KAAK,EAAE,GAAG,EACV,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,UAAU;YAEnB,oBAAC,YAAY,IACX,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,CACL,aAAa,CAAC,iBAAiB,CAC7B,kBAAkB,CAAC,aAAa,CACjC,CACF,sBAIU,CACK,CACvB,CACiB,CACrB,CAAA;AACH,CAAC,CAAA;AAED,eAAe,sBAAsB,CAAA;AAErC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;CAQzC,CAAA;AACD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;iBACd,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;;;;WAI7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;;CAEpD,CAAA;AACD,MAAM,mBAAmB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;;;;CAI/C,CAAA"}
|