react-science 0.27.0 → 0.27.1-pre.1696510245
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/lib/app/about/AboutDialogToolbarButton.js +3 -3
- package/lib/app/kinds/iv/plot-view/IvPlotView.js +5 -6
- package/lib/components/fullscreen/FullscreenToolbarButton.js +2 -3
- package/lib/components/modal/ConfirmModal.js +3 -1
- package/lib/components/root-layout/RootLayout.js +4 -2
- package/lib/components/split-pane/SplitPane.js +5 -4
- package/lib/components/split-pane/useSplitPaneSize.js +8 -8
- package/lib/components/tabs/Tabs.js +1 -0
- package/lib/components/toolbar/Toolbar.js +27 -83
- package/lib/components/toolbar/toolbarContext.js +13 -0
- package/lib-esm/app/about/AboutDialogToolbarButton.d.ts +2 -1
- package/lib-esm/app/about/AboutDialogToolbarButton.d.ts.map +1 -1
- package/lib-esm/app/about/AboutDialogToolbarButton.js +2 -2
- package/lib-esm/app/about/AboutDialogToolbarButton.js.map +1 -1
- package/lib-esm/app/kinds/iv/plot-view/IvPlotView.d.ts.map +1 -1
- package/lib-esm/app/kinds/iv/plot-view/IvPlotView.js +3 -4
- package/lib-esm/app/kinds/iv/plot-view/IvPlotView.js.map +1 -1
- package/lib-esm/components/fullscreen/FullscreenToolbarButton.d.ts.map +1 -1
- package/lib-esm/components/fullscreen/FullscreenToolbarButton.js +2 -3
- package/lib-esm/components/fullscreen/FullscreenToolbarButton.js.map +1 -1
- package/lib-esm/components/modal/ConfirmModal.d.ts.map +1 -1
- package/lib-esm/components/modal/ConfirmModal.js +3 -1
- package/lib-esm/components/modal/ConfirmModal.js.map +1 -1
- package/lib-esm/components/root-layout/RootLayout.d.ts +1 -1
- package/lib-esm/components/root-layout/RootLayout.d.ts.map +1 -1
- package/lib-esm/components/root-layout/RootLayout.js +4 -2
- package/lib-esm/components/root-layout/RootLayout.js.map +1 -1
- package/lib-esm/components/split-pane/SplitPane.js +5 -4
- package/lib-esm/components/split-pane/SplitPane.js.map +1 -1
- package/lib-esm/components/split-pane/useSplitPaneSize.d.ts +1 -1
- package/lib-esm/components/split-pane/useSplitPaneSize.js +8 -8
- package/lib-esm/components/split-pane/useSplitPaneSize.js.map +1 -1
- package/lib-esm/components/tabs/Tabs.js +1 -0
- package/lib-esm/components/tabs/Tabs.js.map +1 -1
- package/lib-esm/components/toolbar/Toolbar.d.ts +9 -7
- package/lib-esm/components/toolbar/Toolbar.d.ts.map +1 -1
- package/lib-esm/components/toolbar/Toolbar.js +29 -85
- package/lib-esm/components/toolbar/Toolbar.js.map +1 -1
- package/lib-esm/components/toolbar/toolbarContext.d.ts +11 -0
- package/lib-esm/components/toolbar/toolbarContext.d.ts.map +1 -0
- package/lib-esm/components/toolbar/toolbarContext.js +10 -0
- package/lib-esm/components/toolbar/toolbarContext.js.map +1 -0
- package/package.json +5 -1
- package/src/app/about/AboutDialogToolbarButton.tsx +4 -9
- package/src/app/kinds/iv/plot-view/IvPlotView.tsx +4 -7
- package/src/components/fullscreen/FullscreenToolbarButton.tsx +2 -6
- package/src/components/modal/ConfirmModal.tsx +3 -1
- package/src/components/root-layout/RootLayout.tsx +5 -2
- package/src/components/split-pane/SplitPane.tsx +13 -7
- package/src/components/split-pane/useSplitPaneSize.tsx +8 -8
- package/src/components/tabs/Tabs.tsx +1 -0
- package/src/components/toolbar/Toolbar.tsx +81 -122
- package/src/components/toolbar/toolbarContext.ts +21 -0
- package/lib/components/toolbar/ToolbarContext.js +0 -18
- package/lib-esm/components/toolbar/ToolbarContext.d.ts +0 -8
- package/lib-esm/components/toolbar/ToolbarContext.d.ts.map +0 -1
- package/lib-esm/components/toolbar/ToolbarContext.js +0 -14
- package/lib-esm/components/toolbar/ToolbarContext.js.map +0 -1
- package/src/components/toolbar/ToolbarContext.tsx +0 -25
|
@@ -6,14 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.AboutDialogToolbarButton = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
9
|
-
const
|
|
9
|
+
const components_1 = require("../../components");
|
|
10
10
|
const ModalBody = styled_1.default.div `
|
|
11
11
|
max-width: 600px;
|
|
12
12
|
padding: 10px;
|
|
13
13
|
`;
|
|
14
14
|
function AboutDialogToolbarButton(props) {
|
|
15
15
|
const { name, icon, body } = props;
|
|
16
|
-
const [isOpenDialog, openDialog, closeDialog] = (0,
|
|
17
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(
|
|
16
|
+
const [isOpenDialog, openDialog, closeDialog] = (0, components_1.useOnOff)(false);
|
|
17
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.Toolbar.Item, { title: `About ${name}`, onClick: openDialog, icon: icon }), (0, jsx_runtime_1.jsxs)(components_1.Modal, { isOpen: isOpenDialog, onRequestClose: closeDialog, children: [(0, jsx_runtime_1.jsx)(components_1.Modal.Header, { children: name }), (0, jsx_runtime_1.jsx)(components_1.Modal.Body, { children: (0, jsx_runtime_1.jsx)(ModalBody, { children: body }) })] })] }));
|
|
18
18
|
}
|
|
19
19
|
exports.AboutDialogToolbarButton = AboutDialogToolbarButton;
|
|
@@ -6,10 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.IvPlotView = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
9
|
-
const fa_1 = require("react-icons/fa");
|
|
10
9
|
const react_plot_1 = require("react-plot");
|
|
11
|
-
const
|
|
12
|
-
const
|
|
10
|
+
const app_data_1 = require("../../../../app-data");
|
|
11
|
+
const components_1 = require("../../../../components");
|
|
13
12
|
const IvMeasurementsPlot_1 = __importDefault(require("./IvMeasurementsPlot"));
|
|
14
13
|
const IvPlotVariablesSelector_1 = __importDefault(require("./IvPlotVariablesSelector"));
|
|
15
14
|
const IvPlotRoot = styled_1.default.div `
|
|
@@ -28,12 +27,12 @@ function IvPlotView() {
|
|
|
28
27
|
}
|
|
29
28
|
exports.IvPlotView = IvPlotView;
|
|
30
29
|
function VerticalToolbar() {
|
|
31
|
-
const dispatch = (0,
|
|
32
|
-
const { view: { selectedKind }, } = (0,
|
|
30
|
+
const dispatch = (0, app_data_1.useAppDispatch)();
|
|
31
|
+
const { view: { selectedKind }, } = (0, app_data_1.useAppState)();
|
|
33
32
|
function onZoomOut() {
|
|
34
33
|
if (selectedKind) {
|
|
35
34
|
dispatch({ type: 'PLOT_ZOOM_OUT', payload: { kind: selectedKind } });
|
|
36
35
|
}
|
|
37
36
|
}
|
|
38
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
37
|
+
return ((0, jsx_runtime_1.jsx)(components_1.Toolbar, { vertical: true, children: (0, jsx_runtime_1.jsx)(components_1.Toolbar.Item, { onClick: onZoomOut, title: "Zoom out", icon: "zoom-out" }) }));
|
|
39
38
|
}
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FullscreenToolbarButton = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const
|
|
6
|
-
const Toolbar_1 = require("../toolbar/Toolbar");
|
|
5
|
+
const toolbar_1 = require("../toolbar");
|
|
7
6
|
const FullscreenContext_1 = require("./FullscreenContext");
|
|
8
7
|
function FullscreenToolbarButton() {
|
|
9
8
|
const { toggle } = (0, FullscreenContext_1.useFullscreen)();
|
|
10
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
9
|
+
return ((0, jsx_runtime_1.jsx)(toolbar_1.Toolbar.Item, { icon: "fullscreen", title: "Full screen", onClick: toggle }));
|
|
11
10
|
}
|
|
12
11
|
exports.FullscreenToolbarButton = FullscreenToolbarButton;
|
|
@@ -13,7 +13,9 @@ const RootLayoutContext_1 = require("../root-layout/RootLayoutContext");
|
|
|
13
13
|
const useDialog_1 = require("./useDialog");
|
|
14
14
|
const ConfirmModalDialog = styled_1.default.dialog `
|
|
15
15
|
background-color: transparent;
|
|
16
|
-
|
|
16
|
+
:focus {
|
|
17
|
+
outline: none;
|
|
18
|
+
}
|
|
17
19
|
::backdrop {
|
|
18
20
|
background-color: rgba(113, 113, 122, 0.75);
|
|
19
21
|
}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RootLayout = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const core_1 = require("@blueprintjs/core");
|
|
5
6
|
const react_query_1 = require("@tanstack/react-query");
|
|
6
7
|
const react_1 = require("react");
|
|
7
|
-
const
|
|
8
|
+
const accordion_1 = require("../accordion");
|
|
8
9
|
const RootLayoutContext_1 = require("./RootLayoutContext");
|
|
9
10
|
const customPreflight_1 = require("./css-reset/customPreflight");
|
|
10
11
|
const queryClient_1 = require("./queryClient");
|
|
12
|
+
core_1.FocusStyleManager.onlyShowFocusOnTabs();
|
|
11
13
|
const style = {
|
|
12
14
|
width: '100%',
|
|
13
15
|
height: '100%',
|
|
@@ -20,6 +22,6 @@ function RootLayout(props) {
|
|
|
20
22
|
setRootRef(node);
|
|
21
23
|
}
|
|
22
24
|
}, []);
|
|
23
|
-
return ((0, jsx_runtime_1.jsx)("div", { style: { ...style, ...props.style }, children: (0, jsx_runtime_1.jsx)(customPreflight_1.CustomDivPreflight, { ref: ref, children: (0, jsx_runtime_1.jsx)(RootLayoutContext_1.RootLayoutProvider, { innerRef: rootRef, children: (0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: queryClient_1.queryClient, children: (0, jsx_runtime_1.jsx)(
|
|
25
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: { ...style, ...props.style }, children: (0, jsx_runtime_1.jsx)(customPreflight_1.CustomDivPreflight, { ref: ref, children: (0, jsx_runtime_1.jsx)(RootLayoutContext_1.RootLayoutProvider, { innerRef: rootRef, children: (0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: queryClient_1.queryClient, children: (0, jsx_runtime_1.jsx)(accordion_1.AccordionProvider, { children: props.children }) }) }) }) }));
|
|
24
26
|
}
|
|
25
27
|
exports.RootLayout = RootLayout;
|
|
@@ -39,7 +39,7 @@ function SplitPane(props) {
|
|
|
39
39
|
}
|
|
40
40
|
}, [closePane, closed, openPane]);
|
|
41
41
|
const splitterRef = (0, react_2.useRef)(null);
|
|
42
|
-
const {
|
|
42
|
+
const { onPointerDown } = (0, useSplitPaneSize_1.useSplitPaneSize)({
|
|
43
43
|
controlledSide,
|
|
44
44
|
direction,
|
|
45
45
|
splitterRef,
|
|
@@ -88,12 +88,12 @@ function SplitPane(props) {
|
|
|
88
88
|
width: '100%',
|
|
89
89
|
[direction === 'horizontal' ? 'minWidth' : 'minHeight']: 0,
|
|
90
90
|
flexDirection: direction === 'horizontal' ? 'row' : 'column',
|
|
91
|
-
}, children: [(0, jsx_runtime_1.jsx)(SplitSide, { style: getSplitSideStyle('start'), children: children[0] }), (0, jsx_runtime_1.jsx)(Splitter, { onDoubleClick: handleToggle,
|
|
91
|
+
}, children: [(0, jsx_runtime_1.jsx)(SplitSide, { style: getSplitSideStyle('start'), children: children[0] }), (0, jsx_runtime_1.jsx)(Splitter, { onDoubleClick: handleToggle, onPointerDown: isFinalClosed ? undefined : onPointerDown, isFinalClosed: isFinalClosed, direction: direction, splitterRef: splitterRef }), (0, jsx_runtime_1.jsx)(SplitSide, { style: getSplitSideStyle('end'), children: children[1] })] }));
|
|
92
92
|
}
|
|
93
93
|
exports.SplitPane = SplitPane;
|
|
94
94
|
function Splitter(props) {
|
|
95
|
-
const { onDoubleClick,
|
|
96
|
-
return ((0, jsx_runtime_1.jsx)("div", { onDoubleClick: onDoubleClick,
|
|
95
|
+
const { onDoubleClick, onPointerDown, direction, isFinalClosed, splitterRef, } = props;
|
|
96
|
+
return ((0, jsx_runtime_1.jsx)("div", { onDoubleClick: onDoubleClick, onPointerDown: onPointerDown, css: getSeparatorStyle(direction, !isFinalClosed), ref: splitterRef, children: (0, jsx_runtime_1.jsx)("div", { style: { fontSize: '0.875em' }, children: direction === 'horizontal' ? (0, jsx_runtime_1.jsx)("span", { children: "\u22EE" }) : (0, jsx_runtime_1.jsx)("span", { children: "\u22EF" }) }) }));
|
|
97
97
|
}
|
|
98
98
|
function SplitSide(props) {
|
|
99
99
|
const { style, children } = props;
|
|
@@ -159,6 +159,7 @@ function getSeparatorStyle(direction, enabled) {
|
|
|
159
159
|
alignItems: 'center',
|
|
160
160
|
userSelect: 'none',
|
|
161
161
|
minWidth: 11,
|
|
162
|
+
touchAction: 'none',
|
|
162
163
|
':hover': {
|
|
163
164
|
backgroundColor: 'rgb(223, 223, 223)',
|
|
164
165
|
},
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useSplitPaneSize = void 0;
|
|
4
4
|
function useSplitPaneSize(options) {
|
|
5
5
|
const { controlledSide, direction, splitterRef, sizeType, onSizeChange, onResize, } = options;
|
|
6
|
-
function
|
|
6
|
+
function downCallback() {
|
|
7
7
|
let lastSize = null;
|
|
8
|
-
function
|
|
8
|
+
function moveCallback(event) {
|
|
9
9
|
if (!splitterRef.current)
|
|
10
10
|
return;
|
|
11
11
|
const { clientX, clientY } = event;
|
|
@@ -39,18 +39,18 @@ function useSplitPaneSize(options) {
|
|
|
39
39
|
onSizeChange(lastSize);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
function
|
|
43
|
-
window.removeEventListener('
|
|
44
|
-
window.removeEventListener('
|
|
42
|
+
function upCallback() {
|
|
43
|
+
window.removeEventListener('pointermove', moveCallback);
|
|
44
|
+
window.removeEventListener('pointerup', upCallback);
|
|
45
45
|
if (lastSize && onResize) {
|
|
46
46
|
onResize(`${lastSize[0]}${lastSize[1]}`);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
window.addEventListener('
|
|
50
|
-
window.addEventListener('
|
|
49
|
+
window.addEventListener('pointermove', moveCallback);
|
|
50
|
+
window.addEventListener('pointerup', upCallback);
|
|
51
51
|
}
|
|
52
52
|
return {
|
|
53
|
-
|
|
53
|
+
onPointerDown: downCallback,
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
56
|
exports.useSplitPaneSize = useSplitPaneSize;
|
|
@@ -91,6 +91,7 @@ function TabsHorizontal(props) {
|
|
|
91
91
|
flexDirection: 'row',
|
|
92
92
|
borderBottom: '1px solid hsl(0deg, 0%, 80%)',
|
|
93
93
|
overflowX: 'auto',
|
|
94
|
+
overflowY: 'hidden',
|
|
94
95
|
}, css: styles.scroll, children: items.map((item) => ((0, jsx_runtime_1.jsx)(TabsItem, { orientation: "horizontal", id: item.id, title: item.title, onClick: () => {
|
|
95
96
|
onClick?.(item.id);
|
|
96
97
|
} }, item.id))) }), item && ((0, jsx_runtime_1.jsx)("div", { style: { flex: '1 1 0%', overflowX: 'auto' }, children: item.content }))] }));
|
|
@@ -3,82 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Toolbar = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
5
5
|
/** @jsxImportSource @emotion/react */
|
|
6
|
+
const core_1 = require("@blueprintjs/core");
|
|
6
7
|
const react_1 = require("@emotion/react");
|
|
7
8
|
const react_2 = require("react");
|
|
8
|
-
const
|
|
9
|
+
const toolbarContext_1 = require("./toolbarContext");
|
|
9
10
|
const border = '1px solid rgb(247, 247, 247)';
|
|
10
|
-
const styles = {
|
|
11
|
-
toolbar: (orientation) => {
|
|
12
|
-
return (0, react_1.css)([
|
|
13
|
-
{ display: 'flex', flexWrap: 'wrap' },
|
|
14
|
-
orientation === 'vertical'
|
|
15
|
-
? {
|
|
16
|
-
flexDirection: 'column',
|
|
17
|
-
minHeight: '100%',
|
|
18
|
-
borderRight: border,
|
|
19
|
-
}
|
|
20
|
-
: {
|
|
21
|
-
flexDirection: 'row',
|
|
22
|
-
minWidth: '100%',
|
|
23
|
-
},
|
|
24
|
-
]);
|
|
25
|
-
},
|
|
26
|
-
item: (active) => {
|
|
27
|
-
return (0, react_1.css)([
|
|
28
|
-
active && { backgroundColor: 'rgb(247, 247, 247)', borderRadius: 5 },
|
|
29
|
-
{
|
|
30
|
-
width: 30,
|
|
31
|
-
height: 30,
|
|
32
|
-
outline: 'none',
|
|
33
|
-
alignItems: 'center',
|
|
34
|
-
justifyContent: 'center',
|
|
35
|
-
display: 'flex',
|
|
36
|
-
'&:hover + .content': { display: 'flex' },
|
|
37
|
-
},
|
|
38
|
-
]);
|
|
39
|
-
},
|
|
40
|
-
tooltip: (orientation, itemOrientation) => {
|
|
41
|
-
const common = {
|
|
42
|
-
display: 'none',
|
|
43
|
-
position: 'absolute',
|
|
44
|
-
backgroundColor: 'gray',
|
|
45
|
-
borderRadius: '2px',
|
|
46
|
-
color: 'white',
|
|
47
|
-
bottom: '0px',
|
|
48
|
-
right: '0px',
|
|
49
|
-
width: 'fit-content',
|
|
50
|
-
height: '50%',
|
|
51
|
-
fontSize: '0.875em',
|
|
52
|
-
whiteSpace: 'nowrap',
|
|
53
|
-
paddingLeft: '3px',
|
|
54
|
-
paddingRight: '3px',
|
|
55
|
-
zIndex: 50,
|
|
56
|
-
};
|
|
57
|
-
if (itemOrientation === 'auto') {
|
|
58
|
-
return (0, react_1.css)([
|
|
59
|
-
common,
|
|
60
|
-
orientation === 'vertical' && { margin: 'auto', marginLeft: 5 },
|
|
61
|
-
orientation === 'horizontal'
|
|
62
|
-
? { top: '100%' }
|
|
63
|
-
: { top: '0px', left: '100%' },
|
|
64
|
-
]);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
return (0, react_1.css)([
|
|
68
|
-
common,
|
|
69
|
-
itemOrientation === 'horizontal' && { margin: 'auto', marginLeft: 5 },
|
|
70
|
-
itemOrientation === 'vertical'
|
|
71
|
-
? { top: '100%' }
|
|
72
|
-
: { top: '0px', left: '100%' },
|
|
73
|
-
]);
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
11
|
function Toolbar(props) {
|
|
78
|
-
const { children,
|
|
12
|
+
const { children, disabled, intent, large, vertical } = props;
|
|
13
|
+
const contextValue = (0, react_2.useMemo)(() => ({ intent, large, vertical, disabled }), [intent, large, vertical, disabled]);
|
|
79
14
|
const ref = (0, react_2.useRef)(null);
|
|
15
|
+
// Work around wrong width on vertical flex when wrapping
|
|
16
|
+
// In Chrome: recently fixed (https://bugs.chromium.org/p/chromium/issues/detail?id=507397)
|
|
17
|
+
// In Firefox: work-around needed (https://bugzilla.mozilla.org/show_bug.cgi?id=995020)
|
|
18
|
+
// In Safari: work-around needed
|
|
80
19
|
(0, react_2.useLayoutEffect)(() => {
|
|
81
|
-
if (
|
|
20
|
+
if (!vertical) {
|
|
82
21
|
return;
|
|
83
22
|
}
|
|
84
23
|
function update() {
|
|
@@ -100,20 +39,25 @@ function Toolbar(props) {
|
|
|
100
39
|
observer.observe(element);
|
|
101
40
|
return () => observer.unobserve(element);
|
|
102
41
|
}
|
|
103
|
-
}, [
|
|
104
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
42
|
+
}, [vertical]);
|
|
43
|
+
return ((0, jsx_runtime_1.jsx)(ToolbarProvider, { value: contextValue, children: (0, jsx_runtime_1.jsx)(core_1.ButtonGroup, { ref: ref, vertical: vertical, large: large, style: { flexWrap: 'wrap', borderRight: vertical ? border : undefined }, children: children }) }));
|
|
105
44
|
}
|
|
106
45
|
exports.Toolbar = Toolbar;
|
|
107
46
|
Toolbar.Item = function ToolbarItem(props) {
|
|
108
|
-
const
|
|
109
|
-
const {
|
|
110
|
-
return ((0, jsx_runtime_1.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
47
|
+
const { active = false, icon, onClick, title, id, ...other } = props;
|
|
48
|
+
const { intent, large, vertical, disabled } = (0, toolbarContext_1.useToolbarContext)();
|
|
49
|
+
return ((0, jsx_runtime_1.jsx)(core_1.Tooltip, { css: (0, react_1.css) `
|
|
50
|
+
flex-grow: 0 !important;
|
|
51
|
+
`, compact: !large, intent: intent, content: title, placement: vertical ? 'right' : 'bottom', children: (0, jsx_runtime_1.jsx)(core_1.Button, { minimal: true, disabled: disabled, css: (0, react_1.css) `
|
|
52
|
+
.${core_1.Classes.ICON} {
|
|
53
|
+
color: ${core_1.Colors.DARK_GRAY3};
|
|
54
|
+
}
|
|
55
|
+
`, intent: intent, style: { position: 'relative', fontSize: '1.25em' }, type: "button", active: active, icon: icon, onClick: () => {
|
|
56
|
+
if (onClick) {
|
|
57
|
+
onClick(props);
|
|
58
|
+
}
|
|
59
|
+
}, ...other }) }));
|
|
119
60
|
};
|
|
61
|
+
function ToolbarProvider(props) {
|
|
62
|
+
return ((0, jsx_runtime_1.jsx)(toolbarContext_1.toolbarContext.Provider, { value: props.value, children: props.children }));
|
|
63
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useToolbarContext = exports.toolbarContext = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
exports.toolbarContext = (0, react_1.createContext)(null);
|
|
6
|
+
function useToolbarContext() {
|
|
7
|
+
const ctx = (0, react_1.useContext)(exports.toolbarContext);
|
|
8
|
+
if (!ctx) {
|
|
9
|
+
throw new Error('useToolbarContext must be used within a ToolbarContextProvider');
|
|
10
|
+
}
|
|
11
|
+
return ctx;
|
|
12
|
+
}
|
|
13
|
+
exports.useToolbarContext = useToolbarContext;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { ButtonProps } from '@blueprintjs/core';
|
|
1
2
|
import { ReactNode } from 'react';
|
|
2
3
|
interface AboutDialogToolbarButtonProps {
|
|
3
4
|
name: string;
|
|
4
|
-
icon:
|
|
5
|
+
icon: ButtonProps['icon'];
|
|
5
6
|
body: ReactNode;
|
|
6
7
|
}
|
|
7
8
|
export declare function AboutDialogToolbarButton(props: AboutDialogToolbarButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AboutDialogToolbarButton.d.ts","sourceRoot":"","sources":["../../../src/app/about/AboutDialogToolbarButton.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AboutDialogToolbarButton.d.ts","sourceRoot":"","sources":["../../../src/app/about/AboutDialogToolbarButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIlC,UAAU,6BAA6B;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,EAAE,SAAS,CAAC;CACjB;AAOD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,2CAe5E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import styled from '@emotion/styled';
|
|
3
|
-
import { Modal, Toolbar, useOnOff } from '../../components
|
|
3
|
+
import { Modal, Toolbar, useOnOff } from '../../components';
|
|
4
4
|
const ModalBody = styled.div `
|
|
5
5
|
max-width: 600px;
|
|
6
6
|
padding: 10px;
|
|
@@ -8,6 +8,6 @@ const ModalBody = styled.div `
|
|
|
8
8
|
export function AboutDialogToolbarButton(props) {
|
|
9
9
|
const { name, icon, body } = props;
|
|
10
10
|
const [isOpenDialog, openDialog, closeDialog] = useOnOff(false);
|
|
11
|
-
return (_jsxs(_Fragment, { children: [_jsx(Toolbar.Item, {
|
|
11
|
+
return (_jsxs(_Fragment, { children: [_jsx(Toolbar.Item, { title: `About ${name}`, onClick: openDialog, icon: icon }), _jsxs(Modal, { isOpen: isOpenDialog, onRequestClose: closeDialog, children: [_jsx(Modal.Header, { children: name }), _jsx(Modal.Body, { children: _jsx(ModalBody, { children: body }) })] })] }));
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=AboutDialogToolbarButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AboutDialogToolbarButton.js","sourceRoot":"","sources":["../../../src/app/about/AboutDialogToolbarButton.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"AboutDialogToolbarButton.js","sourceRoot":"","sources":["../../../src/app/about/AboutDialogToolbarButton.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAGrC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQ5D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;;;CAG3B,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,KAAoC;IAC3E,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACnC,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,OAAO,CACL,8BACE,KAAC,OAAO,CAAC,IAAI,IAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAI,EACzE,MAAC,KAAK,IAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,aACtD,KAAC,KAAK,CAAC,MAAM,cAAE,IAAI,GAAgB,EACnC,KAAC,KAAK,CAAC,IAAI,cACT,KAAC,SAAS,cAAE,IAAI,GAAa,GAClB,IACP,IACP,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IvPlotView.d.ts","sourceRoot":"","sources":["../../../../../src/app/kinds/iv/plot-view/IvPlotView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IvPlotView.d.ts","sourceRoot":"","sources":["../../../../../src/app/kinds/iv/plot-view/IvPlotView.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,UAAU,4CAazB"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import styled from '@emotion/styled';
|
|
3
|
-
import { FaCompress } from 'react-icons/fa';
|
|
4
3
|
import { PlotController } from 'react-plot';
|
|
5
|
-
import { useAppDispatch, useAppState } from '../../../../app-data
|
|
6
|
-
import { Toolbar } from '../../../../components
|
|
4
|
+
import { useAppDispatch, useAppState } from '../../../../app-data';
|
|
5
|
+
import { Toolbar } from '../../../../components';
|
|
7
6
|
import IvMeasurementsPlot from './IvMeasurementsPlot';
|
|
8
7
|
import IvPlotVariablesSelector from './IvPlotVariablesSelector';
|
|
9
8
|
const IvPlotRoot = styled.div `
|
|
@@ -28,6 +27,6 @@ function VerticalToolbar() {
|
|
|
28
27
|
dispatch({ type: 'PLOT_ZOOM_OUT', payload: { kind: selectedKind } });
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
|
-
return (_jsx(Toolbar, {
|
|
30
|
+
return (_jsx(Toolbar, { vertical: true, children: _jsx(Toolbar.Item, { onClick: onZoomOut, title: "Zoom out", icon: "zoom-out" }) }));
|
|
32
31
|
}
|
|
33
32
|
//# sourceMappingURL=IvPlotView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IvPlotView.js","sourceRoot":"","sources":["../../../../../src/app/kinds/iv/plot-view/IvPlotView.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"IvPlotView.js","sourceRoot":"","sources":["../../../../../src/app/kinds/iv/plot-view/IvPlotView.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAI5B,CAAC;AAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAK1B,CAAC;AAEF,MAAM,UAAU,UAAU;IACxB,OAAO,CACL,MAAC,UAAU,eACT,KAAC,eAAe,KAAG,EACnB,MAAC,QAAQ,eACP,KAAC,cAAc,cACb,KAAC,kBAAkB,KAAG,GACP,EAEjB,KAAC,uBAAuB,KAAG,IAClB,IACA,CACd,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,EACJ,IAAI,EAAE,EAAE,YAAY,EAAE,GACvB,GAAG,WAAW,EAAE,CAAC;IAElB,SAAS,SAAS;QAChB,IAAI,YAAY,EAAE;YAChB,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;SACtE;IACH,CAAC;IAED,OAAO,CACL,KAAC,OAAO,IAAC,QAAQ,kBACf,KAAC,OAAO,CAAC,IAAI,IAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,GAAG,GAC7D,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullscreenToolbarButton.d.ts","sourceRoot":"","sources":["../../../src/components/fullscreen/FullscreenToolbarButton.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FullscreenToolbarButton.d.ts","sourceRoot":"","sources":["../../../src/components/fullscreen/FullscreenToolbarButton.tsx"],"names":[],"mappings":"AAIA,wBAAgB,uBAAuB,4CAKtC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { Toolbar } from '../toolbar/Toolbar';
|
|
2
|
+
import { Toolbar } from '../toolbar';
|
|
4
3
|
import { useFullscreen } from './FullscreenContext';
|
|
5
4
|
export function FullscreenToolbarButton() {
|
|
6
5
|
const { toggle } = useFullscreen();
|
|
7
|
-
return (_jsx(Toolbar.Item, { title: "Full screen", onClick: toggle
|
|
6
|
+
return (_jsx(Toolbar.Item, { icon: "fullscreen", title: "Full screen", onClick: toggle }));
|
|
8
7
|
}
|
|
9
8
|
//# sourceMappingURL=FullscreenToolbarButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullscreenToolbarButton.js","sourceRoot":"","sources":["../../../src/components/fullscreen/FullscreenToolbarButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"FullscreenToolbarButton.js","sourceRoot":"","sources":["../../../src/components/fullscreen/FullscreenToolbarButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,uBAAuB;IACrC,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;IACnC,OAAO,CACL,KAAC,OAAO,CAAC,IAAI,IAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,MAAM,GAAI,CACxE,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmModal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/ConfirmModal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"ConfirmModal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/ConfirmModal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA8CD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,kDA+EpD"}
|
|
@@ -7,7 +7,9 @@ import { RootLayoutProvider } from '../root-layout/RootLayoutContext';
|
|
|
7
7
|
import { useDialog } from './useDialog';
|
|
8
8
|
const ConfirmModalDialog = styled.dialog `
|
|
9
9
|
background-color: transparent;
|
|
10
|
-
|
|
10
|
+
:focus {
|
|
11
|
+
outline: none;
|
|
12
|
+
}
|
|
11
13
|
::backdrop {
|
|
12
14
|
background-color: rgba(113, 113, 122, 0.75);
|
|
13
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmModal.js","sourceRoot":"","sources":["../../../src/components/modal/ConfirmModal.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAgBxC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAA
|
|
1
|
+
{"version":3,"file":"ConfirmModal.js","sourceRoot":"","sources":["../../../src/components/modal/ConfirmModal.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAgBxC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;CAQvC,CAAC;AAEF,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAErC;;;;;;;;;;2BAUyB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW;CAC1D,CAAC;AAEF,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAyB;WACzD,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW;;;;;;CAM1C,CAAC;AAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMpC,CAAC;AAIF,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EACJ,MAAM,EACN,QAAQ,GAAG,MAAM,EACjB,UAAU,GAAG,QAAQ,EACrB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,GAAG,cAAc,EACzB,SAAS,EACT,sBAAsB,GAAG,IAAI,EAC7B,iBAAiB,GAAG,IAAI,EACxB,QAAQ,GACT,GAAG,KAAK,CAAC;IAEV,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAClD,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;QAC9C,SAAS;QACT,MAAM;QACN,iBAAiB;QACjB,sBAAsB;QACtB,cAAc;KACf,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GACrC,QAAQ,CAAyB,IAAI,CAAC,CAAC;IACzC,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,IAA4B,EAAE,EAAE;QACrE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,mBAAmB,CACjB,iBAAiB,EACjB,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CACxB,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,KAAC,MAAM,cACL,KAAC,kBAAkB,OAAK,WAAW,EAAE,GAAG,EAAE,SAAS,YAChD,YAAY,IAAI,CACf,KAAC,kBAAkB,IAAC,QAAQ,EAAE,aAAa,YACzC,MAAC,oBAAoB,IACnB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,EAAE,QAAQ,EAAE,aAEnB,KAAC,wBAAwB,IAAC,WAAW,EAAE,WAAW,YAC/C,QAAQ,GACgB,EAE3B,MAAC,kBAAkB,eACjB,KAAC,MAAM,IACL,OAAO,EAAE,SAAS,EAClB,eAAe,EAAE;wCACf,KAAK,EAAE,2BAA2B;wCAClC,KAAK,EAAE,2BAA2B;qCACnC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAExB,QAAQ,GACF,EACT,KAAC,MAAM,IACL,OAAO,EAAE,QAAQ,EACjB,eAAe,EAAE;wCACf,KAAK,EAAE,yBAAyB;wCAChC,KAAK,EAAE,yBAAyB;qCACjC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAExB,UAAU,GACJ,IACU,IACA,GACJ,CACtB,GACkB,GACd,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RootLayout.d.ts","sourceRoot":"","sources":["../../../src/components/root-layout/RootLayout.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RootLayout.d.ts","sourceRoot":"","sources":["../../../src/components/root-layout/RootLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAyB,MAAM,OAAO,CAAC;AAUxE,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAQD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CAsBhD"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { FocusStyleManager } from '@blueprintjs/core';
|
|
2
3
|
import { QueryClientProvider } from '@tanstack/react-query';
|
|
3
|
-
import {
|
|
4
|
-
import { AccordionProvider } from '../accordion
|
|
4
|
+
import { useCallback, useState } from 'react';
|
|
5
|
+
import { AccordionProvider } from '../accordion';
|
|
5
6
|
import { RootLayoutProvider } from './RootLayoutContext';
|
|
6
7
|
import { CustomDivPreflight } from './css-reset/customPreflight';
|
|
7
8
|
import { queryClient } from './queryClient';
|
|
9
|
+
FocusStyleManager.onlyShowFocusOnTabs();
|
|
8
10
|
const style = {
|
|
9
11
|
width: '100%',
|
|
10
12
|
height: '100%',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RootLayout.js","sourceRoot":"","sources":["../../../src/components/root-layout/RootLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAA4B,
|
|
1
|
+
{"version":3,"file":"RootLayout.js","sourceRoot":"","sources":["../../../src/components/root-layout/RootLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAA4B,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;AAOxC,MAAM,KAAK,GAAkB;IAC3B,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CACpC,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACvD,CAAC;IAEF,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,IAAoB,EAAE,EAAE;QAC/C,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,UAAU,CAAC,IAAI,CAAC,CAAC;SAClB;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,YACtC,KAAC,kBAAkB,IAAC,GAAG,EAAE,GAAG,YAC1B,KAAC,kBAAkB,IAAC,QAAQ,EAAE,OAAO,YACnC,KAAC,mBAAmB,IAAC,MAAM,EAAE,WAAW,YACtC,KAAC,iBAAiB,cAAE,KAAK,CAAC,QAAQ,GAAqB,GACnC,GACH,GACF,GACjB,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -32,7 +32,7 @@ export function SplitPane(props) {
|
|
|
32
32
|
}
|
|
33
33
|
}, [closePane, closed, openPane]);
|
|
34
34
|
const splitterRef = useRef(null);
|
|
35
|
-
const {
|
|
35
|
+
const { onPointerDown } = useSplitPaneSize({
|
|
36
36
|
controlledSide,
|
|
37
37
|
direction,
|
|
38
38
|
splitterRef,
|
|
@@ -81,11 +81,11 @@ export function SplitPane(props) {
|
|
|
81
81
|
width: '100%',
|
|
82
82
|
[direction === 'horizontal' ? 'minWidth' : 'minHeight']: 0,
|
|
83
83
|
flexDirection: direction === 'horizontal' ? 'row' : 'column',
|
|
84
|
-
}, children: [_jsx(SplitSide, { style: getSplitSideStyle('start'), children: children[0] }), _jsx(Splitter, { onDoubleClick: handleToggle,
|
|
84
|
+
}, children: [_jsx(SplitSide, { style: getSplitSideStyle('start'), children: children[0] }), _jsx(Splitter, { onDoubleClick: handleToggle, onPointerDown: isFinalClosed ? undefined : onPointerDown, isFinalClosed: isFinalClosed, direction: direction, splitterRef: splitterRef }), _jsx(SplitSide, { style: getSplitSideStyle('end'), children: children[1] })] }));
|
|
85
85
|
}
|
|
86
86
|
function Splitter(props) {
|
|
87
|
-
const { onDoubleClick,
|
|
88
|
-
return (_jsx("div", { onDoubleClick: onDoubleClick,
|
|
87
|
+
const { onDoubleClick, onPointerDown, direction, isFinalClosed, splitterRef, } = props;
|
|
88
|
+
return (_jsx("div", { onDoubleClick: onDoubleClick, onPointerDown: onPointerDown, css: getSeparatorStyle(direction, !isFinalClosed), ref: splitterRef, children: _jsx("div", { style: { fontSize: '0.875em' }, children: direction === 'horizontal' ? _jsx("span", { children: "\u22EE" }) : _jsx("span", { children: "\u22EF" }) }) }));
|
|
89
89
|
}
|
|
90
90
|
function SplitSide(props) {
|
|
91
91
|
const { style, children } = props;
|
|
@@ -151,6 +151,7 @@ function getSeparatorStyle(direction, enabled) {
|
|
|
151
151
|
alignItems: 'center',
|
|
152
152
|
userSelect: 'none',
|
|
153
153
|
minWidth: 11,
|
|
154
|
+
touchAction: 'none',
|
|
154
155
|
':hover': {
|
|
155
156
|
backgroundColor: 'rgb(223, 223, 223)',
|
|
156
157
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../src/components/split-pane/SplitPane.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAEL,aAAa,EAGb,UAAU,EACV,MAAM,EACN,QAAQ,EAER,UAAU,EACV,SAAS,GACV,MAAM,OAAO,CAAC;AACf,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAqDtD,MAAM,gBAAgB,GAAG,aAAa,CAAU,KAAK,CAAC,CAAC;AAEvD,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EACJ,SAAS,GAAG,YAAY,EACxB,cAAc,GAAG,OAAO,EACxB,IAAI,GAAG,KAAK,EACZ,MAAM,GAAG,KAAK,EACd,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/D,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAClD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAC7C,CAAC;IAEF,yDAAyD;IACzD,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE1D,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzE,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;YAC/B,IAAI,MAAM,EAAE;gBACV,SAAS,EAAE,CAAC;aACb;iBAAM;gBACL,QAAQ,EAAE,CAAC;aACZ;SACF;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACjD,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../src/components/split-pane/SplitPane.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAEL,aAAa,EAGb,UAAU,EACV,MAAM,EACN,QAAQ,EAER,UAAU,EACV,SAAS,GACV,MAAM,OAAO,CAAC;AACf,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAqDtD,MAAM,gBAAgB,GAAG,aAAa,CAAU,KAAK,CAAC,CAAC;AAEvD,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EACJ,SAAS,GAAG,YAAY,EACxB,cAAc,GAAG,OAAO,EACxB,IAAI,GAAG,KAAK,EACZ,MAAM,GAAG,KAAK,EACd,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/D,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAClD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAC7C,CAAC;IAEF,yDAAyD;IACzD,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE1D,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzE,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;YAC/B,IAAI,MAAM,EAAE;gBACV,SAAS,EAAE,CAAC;aACb;iBAAM;gBACL,QAAQ,EAAE,CAAC;aACZ;SACF;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACjD,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC;QACzC,cAAc;QACd,SAAS;QACT,WAAW;QACX,QAAQ;QACR,YAAY,CAAC,KAAK;YAChB,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,QAAQ;KACT,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,iBAAiB,EAAkB,CAAC;IAErD,IAAI,aAAa,GAAG,YAAY,CAAC;IACjC,IACE,CAAC,aAAa;QACd,WAAW,KAAK,IAAI;QACpB,CAAC,UAAU;QACX,QAAQ,CAAC,KAAK,KAAK,SAAS;QAC5B,QAAQ,CAAC,MAAM,KAAK,SAAS,EAC7B;QACA,IAAI,SAAS,KAAK,YAAY,EAAE;YAC9B,aAAa,GAAG,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC;SAC9C;aAAM;YACL,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC;SAC/C;KACF;IAED,SAAS,YAAY;QACnB,KAAK,EAAE,CAAC;QACR,IAAI,aAAa,EAAE;YACjB,QAAQ,EAAE,CAAC;YACX,IAAI,YAAY,IAAI,QAAQ,EAAE;gBAC5B,QAAQ,CAAC,KAAK,CAAC,CAAC;aACjB;SACF;aAAM;YACL,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,IAAI,QAAQ,EAAE;gBAC7B,QAAQ,CAAC,IAAI,CAAC,CAAC;aAChB;SACF;IACH,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAmB;QAC5C,OAAO,YAAY,CACjB,aAAa,EACb,cAAc,KAAK,IAAI,EACvB,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eACE,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,MAAM;YACb,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1D,aAAa,EAAE,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;SAC7D,aAED,KAAC,SAAS,IAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,YAAG,QAAQ,CAAC,CAAC,CAAC,GAAa,EAEvE,KAAC,QAAQ,IACP,aAAa,EAAE,YAAY,EAC3B,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EACxD,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,GACxB,EAEF,KAAC,SAAS,IAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,YAAG,QAAQ,CAAC,CAAC,CAAC,GAAa,IACjE,CACP,CAAC;AACJ,CAAC;AAUD,SAAS,QAAQ,CAAC,KAAoB;IACpC,MAAM,EACJ,aAAa,EACb,aAAa,EACb,SAAS,EACT,aAAa,EACb,WAAW,GACZ,GAAG,KAAK,CAAC;IACV,OAAO,CACL,cACE,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,EACjD,GAAG,EAAE,WAAW,YAEhB,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAChC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,oCAAc,CAAC,CAAC,CAAC,oCAAc,GACzD,GACF,CACP,CAAC;AACJ,CAAC;AAOD,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAElC,OAAO,cAAK,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAO,CAAC;AAC7C,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,0CAA0C;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAkB,CAAC;IAE7D,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,IAAI,GAAG,CAAC;IACf,OAAO,CAAC,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CACnB,QAAiB,EACjB,gBAAyB,EACzB,SAA6B,EAC7B,IAAY,EACZ,IAAmB;IAEnB,MAAM,YAAY,GAAG,SAAS,KAAK,YAAY,CAAC;IAChD,IAAI,QAAQ,EAAE;QACZ,OAAO,gBAAgB;YACrB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;YACrB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;KACzC;SAAM,IAAI,IAAI,KAAK,GAAG,EAAE;QACvB,OAAO,gBAAgB;YACrB,CAAC,CAAC;gBACE,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,MAAM;aAChB;YACH,CAAC,CAAC;gBACE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO;gBACnC,OAAO,EAAE,MAAM;gBACf,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aAC7C,CAAC;KACP;SAAM;QACL,OAAO,gBAAgB;YACrB,CAAC,CAAC;gBACE,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI;gBACzC,OAAO,EAAE,MAAM;aAChB;YACH,CAAC,CAAC;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;gBACf,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aAC7C,CAAC;KACP;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,SAA6B,EAAE,OAAgB;IACxE,OAAO,GAAG,CAAC;QACT,SAAS,KAAK,YAAY,IAAI;YAC5B,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACzC,KAAK,EAAE,MAAM;SACd;QACD,SAAS,KAAK,UAAU,IAAI;YAC1B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC1C;QACD;YACE,eAAe,EAAE,oBAAoB;YACrC,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE;gBACR,eAAe,EAAE,oBAAoB;aACtC;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -9,7 +9,7 @@ interface UseSplitPaneSizeOptions {
|
|
|
9
9
|
onResize?: (newSize: SplitPaneSize) => void;
|
|
10
10
|
}
|
|
11
11
|
export declare function useSplitPaneSize(options: UseSplitPaneSizeOptions): {
|
|
12
|
-
|
|
12
|
+
onPointerDown: () => void;
|
|
13
13
|
};
|
|
14
14
|
export {};
|
|
15
15
|
//# sourceMappingURL=useSplitPaneSize.d.ts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export function useSplitPaneSize(options) {
|
|
2
2
|
const { controlledSide, direction, splitterRef, sizeType, onSizeChange, onResize, } = options;
|
|
3
|
-
function
|
|
3
|
+
function downCallback() {
|
|
4
4
|
let lastSize = null;
|
|
5
|
-
function
|
|
5
|
+
function moveCallback(event) {
|
|
6
6
|
if (!splitterRef.current)
|
|
7
7
|
return;
|
|
8
8
|
const { clientX, clientY } = event;
|
|
@@ -36,18 +36,18 @@ export function useSplitPaneSize(options) {
|
|
|
36
36
|
onSizeChange(lastSize);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
function
|
|
40
|
-
window.removeEventListener('
|
|
41
|
-
window.removeEventListener('
|
|
39
|
+
function upCallback() {
|
|
40
|
+
window.removeEventListener('pointermove', moveCallback);
|
|
41
|
+
window.removeEventListener('pointerup', upCallback);
|
|
42
42
|
if (lastSize && onResize) {
|
|
43
43
|
onResize(`${lastSize[0]}${lastSize[1]}`);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
window.addEventListener('
|
|
47
|
-
window.addEventListener('
|
|
46
|
+
window.addEventListener('pointermove', moveCallback);
|
|
47
|
+
window.addEventListener('pointerup', upCallback);
|
|
48
48
|
}
|
|
49
49
|
return {
|
|
50
|
-
|
|
50
|
+
onPointerDown: downCallback,
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
function getValueFromSplitter(value, options) {
|