react-cheminfo 0.55.1 → 0.57.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.
- package/bin/check-deploy.mjs +7 -1
- package/lib/credits/core/credits.d.ts +30 -0
- package/lib/credits/core/credits.d.ts.map +1 -1
- package/lib/credits/core/credits.js +35 -0
- package/lib/credits/core/credits.js.map +1 -1
- package/lib/deploy/core/checkDeploy.d.ts.map +1 -1
- package/lib/deploy/core/checkDeploy.js +4 -1
- package/lib/deploy/core/checkDeploy.js.map +1 -1
- package/lib/deploy/core/types.d.ts +7 -0
- package/lib/deploy/core/types.d.ts.map +1 -1
- package/lib/deploy/core/types.js.map +1 -1
- package/lib/ecosystem/core/types.d.ts +1 -1
- package/lib/ecosystem/core/types.d.ts.map +1 -1
- package/lib/ecosystem/core/unlistedSites.d.ts.map +1 -1
- package/lib/ecosystem/core/unlistedSites.js +16 -0
- package/lib/ecosystem/core/unlistedSites.js.map +1 -1
- package/lib/ecosystem/ui/glyphs.d.ts.map +1 -1
- package/lib/ecosystem/ui/glyphs.js +4 -0
- package/lib/ecosystem/ui/glyphs.js.map +1 -1
- package/lib/i18n/core/chromeCatalog.d.ts +1 -1
- package/lib/i18n/core/chromeCatalog.d.ts.map +1 -1
- package/lib/locales/de.json +1 -0
- package/lib/locales/en.json +1 -0
- package/lib/locales/es.json +1 -0
- package/lib/locales/fr.json +1 -0
- package/lib/locales/it.json +1 -0
- package/lib/molecule3d/core/settings.d.ts +6 -0
- package/lib/molecule3d/core/settings.d.ts.map +1 -1
- package/lib/molecule3d/core/settings.js +1 -0
- package/lib/molecule3d/core/settings.js.map +1 -1
- package/lib/molecule3d/ui/Molecule3DStage.d.ts +29 -0
- package/lib/molecule3d/ui/Molecule3DStage.d.ts.map +1 -0
- package/lib/molecule3d/ui/Molecule3DStage.js +40 -0
- package/lib/molecule3d/ui/Molecule3DStage.js.map +1 -0
- package/lib/molecule3d/ui/Molecule3DToolbar.d.ts +14 -1
- package/lib/molecule3d/ui/Molecule3DToolbar.d.ts.map +1 -1
- package/lib/molecule3d/ui/Molecule3DToolbar.js +5 -3
- package/lib/molecule3d/ui/Molecule3DToolbar.js.map +1 -1
- package/lib/molecule3d/ui/MoleculeCanvas3D.d.ts +2 -1
- package/lib/molecule3d/ui/MoleculeCanvas3D.d.ts.map +1 -1
- package/lib/molecule3d/ui/MoleculeCanvas3D.js +7 -6
- package/lib/molecule3d/ui/MoleculeCanvas3D.js.map +1 -1
- package/lib/molecule3d/ui/MoleculeViewer3D.d.ts +2 -1
- package/lib/molecule3d/ui/MoleculeViewer3D.d.ts.map +1 -1
- package/lib/molecule3d/ui/MoleculeViewer3D.js +2 -1
- package/lib/molecule3d/ui/MoleculeViewer3D.js.map +1 -1
- package/lib/molecule3d/ui/index.d.ts +1 -1
- package/lib/molecule3d/ui/index.d.ts.map +1 -1
- package/lib/molecule3d/ui/index.js.map +1 -1
- package/package.json +1 -1
- package/src/credits/core/credits.ts +38 -0
- package/src/deploy/core/checkDeploy.ts +4 -1
- package/src/deploy/core/types.ts +7 -0
- package/src/ecosystem/core/types.ts +2 -1
- package/src/ecosystem/core/unlistedSites.ts +16 -0
- package/src/ecosystem/ui/glyphs.tsx +16 -0
- package/src/locales/de.json +1 -0
- package/src/locales/en.json +1 -0
- package/src/locales/es.json +1 -0
- package/src/locales/fr.json +1 -0
- package/src/locales/it.json +1 -0
- package/src/molecule3d/core/settings.ts +7 -0
- package/src/molecule3d/ui/Molecule3DStage.tsx +80 -0
- package/src/molecule3d/ui/Molecule3DToolbar.tsx +28 -1
- package/src/molecule3d/ui/MoleculeCanvas3D.tsx +48 -37
- package/src/molecule3d/ui/MoleculeViewer3D.tsx +2 -1
- package/src/molecule3d/ui/index.ts +4 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The toolbars floating over the molecule canvas: the view — reset, spin,
|
|
3
|
-
* surface,
|
|
3
|
+
* surface, the options and export popovers, full screen and help — in one vertical
|
|
4
4
|
* react-science `Toolbar`, and the measuring tools with their own clear button
|
|
5
5
|
* in a second one under it.
|
|
6
6
|
*/
|
|
@@ -26,6 +26,14 @@ import {
|
|
|
26
26
|
SurfaceIcon,
|
|
27
27
|
} from './molecule3dIcons.tsx';
|
|
28
28
|
|
|
29
|
+
/** Whether the canvas fills the screen, and how to change that. */
|
|
30
|
+
export interface Molecule3DFullscreen {
|
|
31
|
+
/** Whether the canvas and its toolbars fill the screen. */
|
|
32
|
+
active: boolean;
|
|
33
|
+
/** Fill the screen, or leave it. */
|
|
34
|
+
toggle: () => void;
|
|
35
|
+
}
|
|
36
|
+
|
|
29
37
|
/** Props of {@link Molecule3DToolbar}. */
|
|
30
38
|
export interface Molecule3DToolbarProps {
|
|
31
39
|
/** Which tools to show; every one it does not name is on. */
|
|
@@ -44,6 +52,12 @@ export interface Molecule3DToolbarProps {
|
|
|
44
52
|
options?: ReactElement;
|
|
45
53
|
/** Content of the export popover; its tool is left out without one. */
|
|
46
54
|
exportPanel?: ReactElement;
|
|
55
|
+
/**
|
|
56
|
+
* Whether the canvas fills the screen, and the toggle; its tool is left out
|
|
57
|
+
* without one, which is what a browser that cannot fill the screen gets.
|
|
58
|
+
* @default undefined
|
|
59
|
+
*/
|
|
60
|
+
fullscreen?: Molecule3DFullscreen;
|
|
47
61
|
}
|
|
48
62
|
|
|
49
63
|
/**
|
|
@@ -65,18 +79,21 @@ export function Molecule3DToolbar(props: Molecule3DToolbarProps): ReactElement {
|
|
|
65
79
|
onResetView,
|
|
66
80
|
options,
|
|
67
81
|
exportPanel,
|
|
82
|
+
fullscreen,
|
|
68
83
|
} = props;
|
|
69
84
|
const t = useChromeT();
|
|
70
85
|
const tools = resolveMolecule3DTools(toolsProp);
|
|
71
86
|
const showOptions = tools.options && options !== undefined;
|
|
72
87
|
const showSurfaceTool = tools.surface && onShowSurfaceChange !== undefined;
|
|
73
88
|
const showExport = tools.export && exportPanel !== undefined;
|
|
89
|
+
const showFullscreen = tools.fullscreen && fullscreen !== undefined;
|
|
74
90
|
const hasView =
|
|
75
91
|
tools.spin ||
|
|
76
92
|
tools.surface ||
|
|
77
93
|
tools.reset ||
|
|
78
94
|
showOptions ||
|
|
79
95
|
showExport ||
|
|
96
|
+
showFullscreen ||
|
|
80
97
|
tools.help;
|
|
81
98
|
|
|
82
99
|
return (
|
|
@@ -141,6 +158,16 @@ export function Molecule3DToolbar(props: Molecule3DToolbarProps): ReactElement {
|
|
|
141
158
|
}}
|
|
142
159
|
/>
|
|
143
160
|
)}
|
|
161
|
+
{showFullscreen && (
|
|
162
|
+
<Toolbar.Item
|
|
163
|
+
icon={fullscreen.active ? 'minimize' : 'fullscreen'}
|
|
164
|
+
active={fullscreen.active}
|
|
165
|
+
aria-label={t('molecule3d.fullScreen')}
|
|
166
|
+
tooltip={t('molecule3d.fullScreen')}
|
|
167
|
+
tooltipProps={TOOLTIP_PROPS}
|
|
168
|
+
onClick={fullscreen.toggle}
|
|
169
|
+
/>
|
|
170
|
+
)}
|
|
144
171
|
{tools.help && (
|
|
145
172
|
<Toolbar.PopoverItem
|
|
146
173
|
placement="right-start"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The molstar canvas of `MoleculeViewer3D`, with its toolbars over it
|
|
2
|
+
* The molstar canvas of `MoleculeViewer3D`, with its toolbars over it, in a
|
|
3
|
+
* box that can fill the screen.
|
|
3
4
|
*
|
|
4
5
|
* Reached through `React.lazy`, so a page that never shows a molecule never
|
|
5
6
|
* downloads molstar.
|
|
@@ -17,6 +18,7 @@ import {
|
|
|
17
18
|
|
|
18
19
|
import { Molecule3DExport } from './Molecule3DExport.tsx';
|
|
19
20
|
import { Molecule3DOptions } from './Molecule3DOptions.tsx';
|
|
21
|
+
import { Molecule3DStage } from './Molecule3DStage.tsx';
|
|
20
22
|
import { Molecule3DToolbar } from './Molecule3DToolbar.tsx';
|
|
21
23
|
import { createMolecule3DViewer } from './createViewer.ts';
|
|
22
24
|
import type { MoleculeViewer3DProps } from './moleculeViewer3DProps.ts';
|
|
@@ -150,44 +152,53 @@ export function MoleculeCanvas3D(props: MoleculeCanvas3DProps): ReactElement {
|
|
|
150
152
|
);
|
|
151
153
|
|
|
152
154
|
return (
|
|
153
|
-
<
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
onMeasureKindChange={setMeasureKind}
|
|
161
|
-
measurementCount={measurements.length}
|
|
162
|
-
onClearMeasurements={() => {
|
|
163
|
-
setMeasurements(NO_MEASUREMENTS);
|
|
164
|
-
}}
|
|
165
|
-
spinning={spinning}
|
|
166
|
-
onSpinningChange={setSpinning}
|
|
167
|
-
showSurface={settings.showSurface}
|
|
168
|
-
onShowSurfaceChange={(showSurface) => {
|
|
169
|
-
setSettings({ ...settings, showSurface });
|
|
170
|
-
}}
|
|
171
|
-
onResetView={resetView}
|
|
172
|
-
options={
|
|
173
|
-
<Molecule3DOptions
|
|
174
|
-
settings={settings}
|
|
175
|
-
onChange={setSettings}
|
|
176
|
-
polarSurfaceArea={polarSurfaceArea}
|
|
177
|
-
defaults={initialSettings}
|
|
178
|
-
/>
|
|
179
|
-
}
|
|
180
|
-
exportPanel={
|
|
181
|
-
<Molecule3DExport
|
|
182
|
-
getSize={canvasSize}
|
|
183
|
-
onExport={exportImage}
|
|
184
|
-
onCopy={copyImage}
|
|
185
|
-
/>
|
|
186
|
-
}
|
|
155
|
+
<Molecule3DStage style={{ ...STAGE_STYLE, minHeight }}>
|
|
156
|
+
{(fullscreen) => (
|
|
157
|
+
<>
|
|
158
|
+
<div
|
|
159
|
+
ref={setContainer}
|
|
160
|
+
style={CANVAS_STYLE}
|
|
161
|
+
data-testid="molecule3d"
|
|
187
162
|
/>
|
|
188
|
-
|
|
163
|
+
{molfile !== null && (
|
|
164
|
+
<div style={OVERLAY_STYLE}>
|
|
165
|
+
<Molecule3DToolbar
|
|
166
|
+
tools={tools}
|
|
167
|
+
fullscreen={fullscreen}
|
|
168
|
+
measureKind={measureKind}
|
|
169
|
+
onMeasureKindChange={setMeasureKind}
|
|
170
|
+
measurementCount={measurements.length}
|
|
171
|
+
onClearMeasurements={() => {
|
|
172
|
+
setMeasurements(NO_MEASUREMENTS);
|
|
173
|
+
}}
|
|
174
|
+
spinning={spinning}
|
|
175
|
+
onSpinningChange={setSpinning}
|
|
176
|
+
showSurface={settings.showSurface}
|
|
177
|
+
onShowSurfaceChange={(showSurface) => {
|
|
178
|
+
setSettings({ ...settings, showSurface });
|
|
179
|
+
}}
|
|
180
|
+
onResetView={resetView}
|
|
181
|
+
options={
|
|
182
|
+
<Molecule3DOptions
|
|
183
|
+
settings={settings}
|
|
184
|
+
onChange={setSettings}
|
|
185
|
+
polarSurfaceArea={polarSurfaceArea}
|
|
186
|
+
defaults={initialSettings}
|
|
187
|
+
/>
|
|
188
|
+
}
|
|
189
|
+
exportPanel={
|
|
190
|
+
<Molecule3DExport
|
|
191
|
+
getSize={canvasSize}
|
|
192
|
+
onExport={exportImage}
|
|
193
|
+
onCopy={copyImage}
|
|
194
|
+
/>
|
|
195
|
+
}
|
|
196
|
+
/>
|
|
197
|
+
</div>
|
|
198
|
+
)}
|
|
199
|
+
</>
|
|
189
200
|
)}
|
|
190
|
-
</
|
|
201
|
+
</Molecule3DStage>
|
|
191
202
|
);
|
|
192
203
|
}
|
|
193
204
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A molecule in three dimensions, with a toolbar to measure it, turn it, wrap
|
|
3
|
-
* it in its surface and
|
|
3
|
+
* it in its surface, restyle it and fill the screen with it — and what to say
|
|
4
|
+
* when there cannot be one.
|
|
4
5
|
*
|
|
5
6
|
* The WebGL probe runs before molstar is touched, so a machine without WebGL
|
|
6
7
|
* gets an explanation instead of a blank rectangle, and the canvas sits behind
|
|
@@ -11,7 +11,10 @@ export { Molecule3DExport } from './Molecule3DExport.tsx';
|
|
|
11
11
|
export type { Molecule3DExportProps } from './Molecule3DExport.tsx';
|
|
12
12
|
export { Molecule3DHelp } from './Molecule3DHelp.tsx';
|
|
13
13
|
export { Molecule3DToolbar } from './Molecule3DToolbar.tsx';
|
|
14
|
-
export type {
|
|
14
|
+
export type {
|
|
15
|
+
Molecule3DFullscreen,
|
|
16
|
+
Molecule3DToolbarProps,
|
|
17
|
+
} from './Molecule3DToolbar.tsx';
|
|
15
18
|
export type {
|
|
16
19
|
MoleculeImageRequest,
|
|
17
20
|
SceneCapture,
|