@openbraininstitute/morphoviewer 0.24.21 → 0.24.22
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/README.md +12 -0
- package/lib/dist/components/controls-layer/controls-layout.d.ts +9 -0
- package/lib/dist/components/controls-layer/controls-layout.d.ts.map +1 -0
- package/lib/dist/components/controls-layer/controls-layout.js +39 -0
- package/lib/dist/components/controls-layer/controls-layout.module.css +53 -0
- package/lib/dist/components/controls-layer/index.d.ts +2 -0
- package/lib/dist/components/controls-layer/index.d.ts.map +1 -0
- package/lib/dist/components/controls-layer/index.js +2 -0
- package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.d.ts.map +1 -1
- package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.js +28 -7
- package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts +3 -0
- package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts.map +1 -1
- package/lib/dist/package.json +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -32,6 +32,18 @@ Copyright (c) 2025 Open Brain Institute
|
|
|
32
32
|
|
|
33
33
|
## Release notes
|
|
34
34
|
|
|
35
|
+
### v0.24.22
|
|
36
|
+
|
|
37
|
+
- Add new `ControlsLayout` component (`lib/src/components/controls-layer/`) for configurable viewer header controls
|
|
38
|
+
- Supports built-in actions: `fullscreen`, `reset-camera`, `minimize`, `close`
|
|
39
|
+
- Accepts arbitrary `React.ReactNode` elements alongside named actions
|
|
40
|
+
- Groups can be nested in arrays for flex-based layout with `space-between` justification
|
|
41
|
+
- Add `controls` prop to `MorphoViewerSmallCircuit` to allow custom header control layouts
|
|
42
|
+
- Falls back to a default layout (`reset-camera`, `fullscreen`, `close`, `minimize`) when not provided
|
|
43
|
+
- Add `onMinimize` callback prop to `MorphoViewerSmallCircuit`
|
|
44
|
+
- Replace hardcoded `<header>` markup in `MorphoViewerSmallCircuit` with the new `ControlsLayout` component
|
|
45
|
+
- Update `MorphoViewerSmallCircuit` doc page to demonstrate the configurable controls
|
|
46
|
+
|
|
35
47
|
### v0.24.21
|
|
36
48
|
|
|
37
49
|
- Add optional `gizmo` prop to `MorphoViewerSmallCircuit` for displaying an axes orientation controller
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type ControlAction = "fullscreen" | "reset-camera" | "minimize" | "close";
|
|
3
|
+
export interface ControlsLayoutProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
content: (ControlAction | React.ReactNode | (ControlAction | React.ReactNode)[])[];
|
|
6
|
+
onClick?(action: ControlAction): void;
|
|
7
|
+
}
|
|
8
|
+
export default function ControlsLayout({ className, content, onClick, }: ControlsLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=controls-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controls-layout.d.ts","sourceRoot":"","sources":["../../../src/components/controls-layer/controls-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,MAAM,MAAM,aAAa,GACtB,YAAY,GACZ,cAAc,GACd,UAAU,GACV,OAAO,CAAC;AAEX,MAAM,WAAW,mBAAmB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CACN,aAAa,GACb,KAAK,CAAC,SAAS,GACf,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,CACrC,EAAE,CAAC;IACJ,OAAO,CAAC,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACtC,SAAS,EACT,OAAO,EACP,OAAO,GACP,EAAE,mBAAmB,2CAMrB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { classNames } from "./../../utils.js";
|
|
3
|
+
import { IconCenter } from "../icons/center.js";
|
|
4
|
+
import { IconClose } from "../icons/close.js";
|
|
5
|
+
import { IconFullscreen } from "../icons/fullscreen.js";
|
|
6
|
+
import { IconMinimize } from "../icons/minimize.js";
|
|
7
|
+
import styles from "./controls-layout.module.css";
|
|
8
|
+
export default function ControlsLayout({ className, content, onClick, }) {
|
|
9
|
+
return (_jsx("div", { className: classNames(className, styles.controlsLayout), children: renderContent(content, onClick) }));
|
|
10
|
+
}
|
|
11
|
+
function renderContent(content, onClick) {
|
|
12
|
+
return content.map((action, index) => {
|
|
13
|
+
if (Array.isArray(action)) {
|
|
14
|
+
return (_jsx("div", { className: styles.group, children: renderContent(action, onClick) }, index));
|
|
15
|
+
}
|
|
16
|
+
switch (action) {
|
|
17
|
+
case "close":
|
|
18
|
+
case "fullscreen":
|
|
19
|
+
case "minimize":
|
|
20
|
+
case "reset-camera":
|
|
21
|
+
return renderButton(action, onClick, index);
|
|
22
|
+
default:
|
|
23
|
+
return action;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function renderButton(action, onClick, index) {
|
|
28
|
+
const Icon = ICONS[action];
|
|
29
|
+
if (!Icon)
|
|
30
|
+
return null;
|
|
31
|
+
return (_jsx("button", { className: styles.button, type: "button", "aria-label": action, onClick: () => onClick === null || onClick === void 0 ? void 0 : onClick(action), children: _jsx(Icon, {}) }, index));
|
|
32
|
+
}
|
|
33
|
+
const ICONS = {
|
|
34
|
+
"reset-camera": IconCenter,
|
|
35
|
+
close: IconClose,
|
|
36
|
+
fullscreen: IconFullscreen,
|
|
37
|
+
minimize: IconMinimize,
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHMtbGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY29udHJvbHMtbGF5ZXIvY29udHJvbHMtbGF5b3V0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxNQUFNLE1BQU0sOEJBQThCLENBQUM7QUFrQmxELE1BQU0sQ0FBQyxPQUFPLFVBQVUsY0FBYyxDQUFDLEVBQ3RDLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxHQUNjO0lBQ3JCLE9BQU8sQ0FDTixjQUFLLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFDMUQsYUFBYSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FDM0IsQ0FDTixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUNyQixPQUF1QyxFQUN2QyxPQUF5QztJQUV6QyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDcEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxDQUNOLGNBQWlCLFNBQVMsRUFBRSxNQUFNLENBQUMsS0FBSyxZQUN0QyxhQUFhLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUR0QixLQUFLLENBRVQsQ0FDTixDQUFDO1FBQ0gsQ0FBQztRQUNELFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDaEIsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLFlBQVksQ0FBQztZQUNsQixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLGNBQWM7Z0JBQ2xCLE9BQU8sWUFBWSxDQUFDLE1BQXVCLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzlEO2dCQUNDLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7SUFDRixDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FDcEIsTUFBcUIsRUFDckIsT0FBc0QsRUFDdEQsS0FBYTtJQUViLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXZCLE9BQU8sQ0FDTixpQkFFQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFDeEIsSUFBSSxFQUFDLFFBQVEsZ0JBQ0QsTUFBTSxFQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFHLE1BQU0sQ0FBQyxZQUVoQyxLQUFDLElBQUksS0FBRyxJQU5ILEtBQUssQ0FPRixDQUNULENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxLQUFLLEdBQW9DO0lBQzlDLGNBQWMsRUFBRSxVQUFVO0lBQzFCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFVBQVUsRUFBRSxjQUFjO0lBQzFCLFFBQVEsRUFBRSxZQUFZO0NBQ3RCLENBQUMifQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
.controlsLayout {
|
|
2
|
+
position: absolute;
|
|
3
|
+
left: 0;
|
|
4
|
+
top: 0;
|
|
5
|
+
width: 100%;
|
|
6
|
+
padding: 0.5em;
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-wrap: wrap;
|
|
9
|
+
flex-direction: row;
|
|
10
|
+
justify-content: space-between;
|
|
11
|
+
align-items: center;
|
|
12
|
+
gap: 1em;
|
|
13
|
+
|
|
14
|
+
div.group {
|
|
15
|
+
padding: 0;
|
|
16
|
+
margin: 0;
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-wrap: nowrap;
|
|
19
|
+
flex-direction: row;
|
|
20
|
+
justify-content: flex-start;
|
|
21
|
+
align-items: center;
|
|
22
|
+
gap: .25em;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
button,
|
|
26
|
+
button {
|
|
27
|
+
font: inherit;
|
|
28
|
+
width: 2.5em;
|
|
29
|
+
height: 2.5em;
|
|
30
|
+
display: grid;
|
|
31
|
+
place-items: center;
|
|
32
|
+
flex: 0 0 auto;
|
|
33
|
+
cursor: pointer;
|
|
34
|
+
color: #fff;
|
|
35
|
+
border: 2px solid #000;
|
|
36
|
+
border-radius: 2px;
|
|
37
|
+
background: #3a3a3a;
|
|
38
|
+
margin: 0;
|
|
39
|
+
box-sizing: border-box;
|
|
40
|
+
transition: all 0.3s;
|
|
41
|
+
|
|
42
|
+
&:hover {
|
|
43
|
+
background-color: #adf;
|
|
44
|
+
color: #000;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&:active {
|
|
48
|
+
background-color: rgb(0, 153, 255);
|
|
49
|
+
color: #000;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/controls-layer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { default } from "./controls-layout.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jb250cm9scy1sYXllci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUEifQ==
|
package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morpho-viewer-small-circuit.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"morpho-viewer-small-circuit.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,GAAG,CAAC;AAyCvD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,2CA0C5E"}
|
|
@@ -2,13 +2,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { tgdFullscreenToggle } from "@tolokoban/tgd";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { classNames } from "./../../utils.js";
|
|
5
|
-
import
|
|
6
|
-
import { IconClose } from "../icons/close.js";
|
|
7
|
-
import { IconFullscreen } from "../icons/fullscreen.js";
|
|
8
|
-
import { usePainterManager } from "./painter/index.js";
|
|
5
|
+
import ControlsLayout from "../controls-layer/index.js";
|
|
9
6
|
import styles from "./morpho-viewer-small-circuit.module.css";
|
|
7
|
+
import { usePainterManager } from "./painter/index.js";
|
|
10
8
|
export function MorphoViewerSmallCircuit(props) {
|
|
11
|
-
var _a;
|
|
9
|
+
var _a, _b;
|
|
12
10
|
const ref = React.useRef(null);
|
|
13
11
|
const manager = usePainterManager(props);
|
|
14
12
|
const handleToggleFullscreen = () => {
|
|
@@ -17,9 +15,26 @@ export function MorphoViewerSmallCircuit(props) {
|
|
|
17
15
|
return;
|
|
18
16
|
tgdFullscreenToggle(div);
|
|
19
17
|
};
|
|
18
|
+
const handleControls = (action) => {
|
|
19
|
+
var _a, _b;
|
|
20
|
+
switch (action) {
|
|
21
|
+
case "fullscreen":
|
|
22
|
+
handleToggleFullscreen();
|
|
23
|
+
break;
|
|
24
|
+
case "reset-camera":
|
|
25
|
+
manager.cameraReset();
|
|
26
|
+
break;
|
|
27
|
+
case "close":
|
|
28
|
+
(_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
29
|
+
break;
|
|
30
|
+
case "minimize":
|
|
31
|
+
(_b = props.onMinimize) === null || _b === void 0 ? void 0 : _b.call(props);
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
20
35
|
return (_jsxs("div", { ref: ref, className: classNames(props.className, styles.morphoViewerSmallCircuit), style: {
|
|
21
36
|
background: (_a = props.backgroundColor) !== null && _a !== void 0 ? _a : "#000",
|
|
22
|
-
}, children: [_jsx(Canvas, { painterManager: manager }),
|
|
37
|
+
}, children: [_jsx(Canvas, { painterManager: manager }), _jsx(ControlsLayout, { content: (_b = props.controls) !== null && _b !== void 0 ? _b : getDefaultControls(props), onClick: handleControls })] }));
|
|
23
38
|
}
|
|
24
39
|
const Canvas = React.memo(({ painterManager }) => {
|
|
25
40
|
return (_jsx("canvas", { ref: (canvas) => {
|
|
@@ -29,4 +44,10 @@ const Canvas = React.memo(({ painterManager }) => {
|
|
|
29
44
|
};
|
|
30
45
|
} }, "canvas"));
|
|
31
46
|
});
|
|
32
|
-
|
|
47
|
+
function getDefaultControls(props) {
|
|
48
|
+
return [
|
|
49
|
+
"reset-camera",
|
|
50
|
+
["fullscreen", props.onClose && "close", props.onMinimize && "minimize"],
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0L21vcnBoby12aWV3ZXItc21hbGwtY2lyY3VpdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR3JDLE9BQU8sY0FBYyxNQUFNLG1CQUFtQixDQUFDO0FBSy9DLE9BQU8sTUFBTSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlELE9BQU8sRUFBdUIsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUF1Q25FLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFvQzs7SUFDNUUsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBd0IsSUFBSSxDQUFDLENBQUM7SUFDdEQsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLEVBQUU7UUFDbkMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsR0FBRztZQUFFLE9BQU87UUFFakIsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFxQixFQUFRLEVBQUU7O1FBQ3RELFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDaEIsS0FBSyxZQUFZO2dCQUNoQixzQkFBc0IsRUFBRSxDQUFDO2dCQUN6QixNQUFNO1lBQ1AsS0FBSyxjQUFjO2dCQUNsQixPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3RCLE1BQU07WUFDUCxLQUFLLE9BQU87Z0JBQ1gsTUFBQSxLQUFLLENBQUMsT0FBTyxxREFBSSxDQUFDO2dCQUNsQixNQUFNO1lBQ1AsS0FBSyxVQUFVO2dCQUNkLE1BQUEsS0FBSyxDQUFDLFVBQVUscURBQUksQ0FBQztnQkFDckIsTUFBTTtRQUNSLENBQUM7SUFDRixDQUFDLENBQUM7SUFFRixPQUFPLENBQ04sZUFDQyxHQUFHLEVBQUUsR0FBRyxFQUNSLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsd0JBQXdCLENBQUMsRUFDdkUsS0FBSyxFQUFFO1lBQ04sVUFBVSxFQUFFLE1BQUEsS0FBSyxDQUFDLGVBQWUsbUNBQUksTUFBTTtTQUMzQyxhQUVELEtBQUMsTUFBTSxJQUFDLGNBQWMsRUFBRSxPQUFPLEdBQUksRUFDbkMsS0FBQyxjQUFjLElBQ2QsT0FBTyxFQUFFLE1BQUEsS0FBSyxDQUFDLFFBQVEsbUNBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQ3BELE9BQU8sRUFBRSxjQUFjLEdBQ3RCLElBQ0csQ0FDTixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQ3hCLENBQUMsRUFBRSxjQUFjLEVBQXNDLEVBQUUsRUFBRTtJQUMxRCxPQUFPLENBQ04saUJBRUMsR0FBRyxFQUFFLENBQUMsTUFBZ0MsRUFBRSxFQUFFO1lBQ3pDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQy9CLE9BQU8sR0FBRyxFQUFFO2dCQUNYLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzlCLENBQUMsQ0FBQztRQUNILENBQUMsSUFORyxRQUFRLENBT1gsQ0FDRixDQUFDO0FBQ0gsQ0FBQyxDQUNELENBQUM7QUFFRixTQUFTLGtCQUFrQixDQUFDLEtBQW9DO0lBQy9ELE9BQU87UUFDTixjQUFjO1FBQ2QsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUM7S0FDeEUsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TgdPainterGizmoOptions } from "@tolokoban/tgd";
|
|
2
|
+
import { ControlsLayoutProps } from "../controls-layer/controls-layout";
|
|
2
3
|
import type { MorphoViewerTree } from "../morpho-viewer-simul";
|
|
3
4
|
export interface MorphoViewerSmallCircuitCell {
|
|
4
5
|
id: string;
|
|
@@ -19,8 +20,10 @@ export interface MorphoViewerSmallCircuitProps {
|
|
|
19
20
|
onCellHover?(cell: MorphoViewerSmallCircuitCell | undefined): void;
|
|
20
21
|
onCellClick?(cell: MorphoViewerSmallCircuitCell | undefined): void;
|
|
21
22
|
onClose?(): void;
|
|
23
|
+
onMinimize?(): void;
|
|
22
24
|
loadCell(id: string): Promise<MorphoViewerSmallCircuitCellData | null>;
|
|
23
25
|
onLoadProgress?(progress: number): void;
|
|
24
26
|
gizmo?: boolean | TgdPainterGizmoOptions;
|
|
27
|
+
controls?: ControlsLayoutProps["content"];
|
|
25
28
|
}
|
|
26
29
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,MAAM,WAAW,4BAA4B;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;IACzC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;IACzD,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,gBAAgB,CAAA;CACzB,CAAA;AAED,MAAM,WAAW,6BAA6B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,4BAA4B,EAAE,CAAA;IAIvC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,WAAW,CAAC,CAAC,IAAI,EAAE,4BAA4B,GAAG,SAAS,GAAG,IAAI,CAAA;IAClE,WAAW,CAAC,CAAC,IAAI,EAAE,4BAA4B,GAAG,SAAS,GAAG,IAAI,CAAA;IAClE,OAAO,CAAC,IAAI,IAAI,CAAA;IAChB,UAAU,CAAC,IAAI,IAAI,CAAA;IAKnB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAA;IAOtE,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAWvC,KAAK,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAA;IAUxC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAA;CAC5C"}
|
package/lib/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openbraininstitute/morphoviewer",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.22",
|
|
4
4
|
"description": "Class to display SWC morphology files in 3D",
|
|
5
5
|
"main": "./lib/dist/index.js",
|
|
6
6
|
"module": "./lib/dist/index.js",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
],
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/
|
|
13
|
+
"url": "git+https://github.com/openbraininstitute/morphoviewer.git"
|
|
14
14
|
},
|
|
15
15
|
"keywords": [
|
|
16
16
|
"SWC",
|
|
@@ -41,4 +41,4 @@
|
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@biomejs/biome": "^2.4.13"
|
|
43
43
|
}
|
|
44
|
-
}
|
|
44
|
+
}
|