@gen3/workspaces 0.12.47 → 0.12.49
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/dts/components/CompactDictionaryPanel/CompactDictionaryPanel.d.ts.map +1 -1
- package/dist/dts/components/CompactDictionaryPanel/CompactDictionaryPanel.js +6 -2
- package/dist/dts/components/CompactDictionaryPanel/CompactDictionaryPanel.js.map +1 -1
- package/dist/dts/components/CompactDictionaryPanel/data/large_dictionary.d.ts +11168 -0
- package/dist/dts/components/CompactDictionaryPanel/data/large_dictionary.d.ts.map +1 -0
- package/dist/dts/components/CompactDictionaryPanel/data/large_dictionary.js +13055 -0
- package/dist/dts/components/CompactDictionaryPanel/data/large_dictionary.js.map +1 -0
- package/dist/dts/components/DataToolsPanel.js +1 -1
- package/dist/dts/components/DataToolsPanel.js.map +1 -1
- package/dist/dts/components/KernelLifecyclePanel/KernelSelector.js +2 -2
- package/dist/dts/components/KernelLifecyclePanel/KernelSelector.js.map +1 -1
- package/dist/dts/config.d.ts +0 -2
- package/dist/dts/config.d.ts.map +1 -1
- package/dist/dts/config.js +0 -34
- package/dist/dts/config.js.map +1 -1
- package/dist/dts/core/hatcheryApi.d.ts +20 -20
- package/dist/dts/core/jegGatewayApi.d.ts +8 -8
- package/dist/dts/core/kernelApi.d.ts +12 -12
- package/dist/dts/pages/WorkspacesCenter/data.d.ts.map +1 -1
- package/dist/dts/pages/WorkspacesCenter/data.js +42 -3
- package/dist/dts/pages/WorkspacesCenter/data.js.map +1 -1
- package/dist/dts/server/workspaceAssetsHandler.d.ts.map +1 -1
- package/dist/dts/server/workspaceAssetsHandler.js +0 -1
- package/dist/dts/server/workspaceAssetsHandler.js.map +1 -1
- package/dist/dts/workspace/WorkspaceCenter.js +2 -2
- package/dist/dts/workspace/WorkspaceCenter.js.map +1 -1
- package/dist/dts/workspace/WorkspaceLayout/SettingsPanel.d.ts +1 -1
- package/dist/dts/workspace/WorkspaceLayout/SettingsPanel.d.ts.map +1 -1
- package/dist/dts/workspace/WorkspaceLayout/SettingsPanel.js +2 -2
- package/dist/dts/workspace/WorkspaceLayout/SettingsPanel.js.map +1 -1
- package/dist/dts/workspace/WorkspaceLayout/ToolsPanel.d.ts +2 -1
- package/dist/dts/workspace/WorkspaceLayout/ToolsPanel.d.ts.map +1 -1
- package/dist/dts/workspace/WorkspaceLayout/ToolsPanel.js +2 -2
- package/dist/dts/workspace/WorkspaceLayout/ToolsPanel.js.map +1 -1
- package/dist/dts/workspace/WorkspaceLayout/WorkspaceLayout.d.ts +3 -1
- package/dist/dts/workspace/WorkspaceLayout/WorkspaceLayout.d.ts.map +1 -1
- package/dist/dts/workspace/WorkspaceLayout/WorkspaceLayout.js +17 -4
- package/dist/dts/workspace/WorkspaceLayout/WorkspaceLayout.js.map +1 -1
- package/dist/dts/workspace/WorkspaceLayout/WorkspaceToolbar.d.ts +2 -1
- package/dist/dts/workspace/WorkspaceLayout/WorkspaceToolbar.d.ts.map +1 -1
- package/dist/dts/workspace/WorkspaceLayout/WorkspaceToolbar.js +10 -5
- package/dist/dts/workspace/WorkspaceLayout/WorkspaceToolbar.js.map +1 -1
- package/dist/dts/workspace/tiers/types.d.ts +4 -2
- package/dist/dts/workspace/tiers/types.d.ts.map +1 -1
- package/dist/dts/workspace/types.d.ts +1 -0
- package/dist/dts/workspace/types.d.ts.map +1 -1
- package/dist/index/cjs/index.js +122 -76
- package/dist/index/cjs/index.js.map +1 -1
- package/dist/index/esm/index.js +124 -78
- package/dist/index/esm/index.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/server/cjs/server.js +0 -1
- package/dist/server/cjs/server.js.map +1 -1
- package/dist/server/esm/server.js +0 -1
- package/dist/server/esm/server.js.map +1 -1
- package/package.json +4 -4
- package/dist/dts/api/utils.d.ts +0 -2
- package/dist/dts/api/utils.d.ts.map +0 -1
- package/dist/dts/api/utils.js +0 -13
- package/dist/dts/api/utils.js.map +0 -1
package/dist/index/esm/index.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import React, { useCallback, useMemo, useState, useRef, useEffect, createContext, useImperativeHandle } from 'react';
|
|
2
|
+
import React, { useCallback, useMemo, useState, useRef, useEffect, createContext, useImperativeHandle, forwardRef } from 'react';
|
|
3
3
|
import { mergeDefaultTailwindClassnames, ACTIVITY_CHANNEL, convertSecondsToMilliseconds, InfoRolloverButton, OverflowTooltippedLabel, PanelErrorBoundary, ProtectedContent, NavPageLayout, ContentSource, getNavPageLayoutPropsFromConfig } from '@gen3/frontend';
|
|
4
4
|
import { Card, Stack, Badge, Text, List, Group, Tooltip, Button, LoadingOverlay, Alert, Loader, Divider, Select, ActionIcon, TextInput, Textarea, Table, Scroller, Tabs, Center } from '@mantine/core';
|
|
5
5
|
import { Icon } from '@iconify-icon/react';
|
|
6
6
|
import { GEN3_API, GEN3_WORKSPACE_API, gen3Api, useCoreSelector, selectJEGActiveWorkspaceStatus, useCoreDispatch, setJEGActiveWorkspaceStatus, WorkspaceStatus, setJEGRequestedWorkspaceStatus, RequestedWorkspaceStatus, setJEGActiveWorkspaceId, isFetchBaseQueryError, selectJEGRequestedWorkspaceStatus, selectJEGRequestedWorkspaceStatusTimestamp, isTimeGreaterThan, formatUptimeInMinutes, selectJEGKernelIds, removeManyJEGActiveKernels, upsertManyJEGActiveKernels, normalizeRtkError, selectAllJEGKernels, addJEGActiveKernel, selectWorkspaceTier, setWorkspaceTier, selectWorkspaceFullscreen, setWorkspaceFullscreen, useGetDictionaryFromUrlQuery, useUserAuth, GEN3_COMMONS_NAME } from '@gen3/core';
|
|
7
7
|
import { useDeepCompareEffect } from 'use-deep-compare';
|
|
8
8
|
import { notifications } from '@mantine/notifications';
|
|
9
|
-
import { useDisclosure } from '@mantine/hooks';
|
|
9
|
+
import { useElementSize, useDisclosure, useResizeObserver } from '@mantine/hooks';
|
|
10
10
|
import { IoSettingsSharp } from 'react-icons/io5';
|
|
11
11
|
import { BsFillInfoCircleFill } from 'react-icons/bs';
|
|
12
12
|
import { MdKeyboardArrowDown, MdKeyboardArrowRight } from 'react-icons/md';
|
|
13
|
+
import { merge } from 'lodash';
|
|
13
14
|
|
|
14
15
|
const WorkspaceTierCard = ({ label, description, tier, features = [], tooltip = 'Launch workspace', buttonLabel = 'Launch', onSelectTier, baseColor })=>{
|
|
15
16
|
const handleClick = useCallback(()=>onSelectTier(tier), [
|
|
@@ -1848,7 +1849,7 @@ const KernelSelector = ({ handleLaunchKernel, isLaunchingLoading, onKernelSelect
|
|
|
1848
1849
|
id: "klp-kernel-spec",
|
|
1849
1850
|
value: selectedKernelName,
|
|
1850
1851
|
onChange: (value)=>setSelectedKernelName(value),
|
|
1851
|
-
disabled: disabled,
|
|
1852
|
+
disabled: disabled || isError,
|
|
1852
1853
|
data: kernelSpecs?.length === 0 ? [
|
|
1853
1854
|
{
|
|
1854
1855
|
value: 'python3',
|
|
@@ -1889,7 +1890,7 @@ const KernelSelector = ({ handleLaunchKernel, isLaunchingLoading, onKernelSelect
|
|
|
1889
1890
|
onClick: ()=>handleLaunchKernel(selectedKernelName || 'python3'),
|
|
1890
1891
|
loading: isLaunchingLoading,
|
|
1891
1892
|
fullWidth: true,
|
|
1892
|
-
disabled: disabled,
|
|
1893
|
+
disabled: disabled || isError,
|
|
1893
1894
|
children: isLaunchingLoading ? 'Working...' : 'Launch Kernel'
|
|
1894
1895
|
})
|
|
1895
1896
|
]
|
|
@@ -2200,7 +2201,7 @@ function HorizontalAccordion({ label, expanded, setExpanded, children, expandedW
|
|
|
2200
2201
|
});
|
|
2201
2202
|
}
|
|
2202
2203
|
|
|
2203
|
-
const SettingsPanel = ({ showKernels, expanded, setExpanded })=>{
|
|
2204
|
+
const SettingsPanel = ({ showKernels, expanded, setExpanded, width = 380 })=>{
|
|
2204
2205
|
const currentTier = useCoreSelector(selectWorkspaceTier);
|
|
2205
2206
|
const coreDispatch = useCoreDispatch();
|
|
2206
2207
|
const onUpgradeToRemote = useCallback(()=>{
|
|
@@ -2213,7 +2214,7 @@ const SettingsPanel = ({ showKernels, expanded, setExpanded })=>{
|
|
|
2213
2214
|
expanded: expanded,
|
|
2214
2215
|
setExpanded: setExpanded,
|
|
2215
2216
|
rightSide: true,
|
|
2216
|
-
expandedWidth:
|
|
2217
|
+
expandedWidth: width,
|
|
2217
2218
|
children: /*#__PURE__*/ jsxs(Stack, {
|
|
2218
2219
|
gap: "sm",
|
|
2219
2220
|
className: PanelStyle,
|
|
@@ -2228,7 +2229,7 @@ const SettingsPanel = ({ showKernels, expanded, setExpanded })=>{
|
|
|
2228
2229
|
});
|
|
2229
2230
|
};
|
|
2230
2231
|
|
|
2231
|
-
const WorkspaceToolbar = ({ toolbarConfiguration })=>{
|
|
2232
|
+
const WorkspaceToolbar = /*#__PURE__*/ forwardRef(({ toolbarConfiguration }, ref)=>{
|
|
2232
2233
|
const workspaceTier = useCoreSelector((state)=>selectWorkspaceTier(state));
|
|
2233
2234
|
const workspaceStatus = useCoreSelector((state)=>selectJEGActiveWorkspaceStatus(state));
|
|
2234
2235
|
const isFullscreen = useCoreSelector((state)=>selectWorkspaceFullscreen(state));
|
|
@@ -2247,6 +2248,7 @@ const WorkspaceToolbar = ({ toolbarConfiguration })=>{
|
|
|
2247
2248
|
const fullscreenLabel = isFullscreen ? 'Exit Fullscreen' : 'Fullscreen View';
|
|
2248
2249
|
const statusLabel = workspaceStatus === WorkspaceStatus.NotFound ? 'Not Running' : workspaceStatus;
|
|
2249
2250
|
return /*#__PURE__*/ jsxs("div", {
|
|
2251
|
+
ref: ref,
|
|
2250
2252
|
role: "toolbar",
|
|
2251
2253
|
"aria-label": "Workspace toolbar",
|
|
2252
2254
|
className: "flex items-center justify-between px-4 border-b-2 border-base-lighter pb-4",
|
|
@@ -2360,42 +2362,8 @@ const WorkspaceToolbar = ({ toolbarConfiguration })=>{
|
|
|
2360
2362
|
})
|
|
2361
2363
|
]
|
|
2362
2364
|
});
|
|
2363
|
-
};
|
|
2364
|
-
|
|
2365
|
-
const WORKSPACE_TIER_INFORMATION = {
|
|
2366
|
-
free: {
|
|
2367
|
-
tier: 'free',
|
|
2368
|
-
toolbar: {
|
|
2369
|
-
label: 'JupyterLite',
|
|
2370
|
-
description: 'Running via JupyterLite',
|
|
2371
|
-
showStop: false,
|
|
2372
|
-
showStatus: false
|
|
2373
|
-
},
|
|
2374
|
-
settings: {
|
|
2375
|
-
showKernels: false
|
|
2376
|
-
},
|
|
2377
|
-
dataAndTools: {
|
|
2378
|
-
enabled: true,
|
|
2379
|
-
tabs: []
|
|
2380
|
-
}
|
|
2381
|
-
},
|
|
2382
|
-
remote: {
|
|
2383
|
-
tier: 'remote',
|
|
2384
|
-
toolbar: {
|
|
2385
|
-
label: 'Remote Compute Environment',
|
|
2386
|
-
description: 'Running with Remote Kernels',
|
|
2387
|
-
showStop: true,
|
|
2388
|
-
showStatus: true
|
|
2389
|
-
},
|
|
2390
|
-
settings: {
|
|
2391
|
-
showKernels: true
|
|
2392
|
-
},
|
|
2393
|
-
dataAndTools: {
|
|
2394
|
-
enabled: true,
|
|
2395
|
-
tabs: []
|
|
2396
|
-
}
|
|
2397
|
-
}
|
|
2398
|
-
};
|
|
2365
|
+
});
|
|
2366
|
+
WorkspaceToolbar.displayName = 'WorkspaceToolbar';
|
|
2399
2367
|
|
|
2400
2368
|
// Streaming LLM client — OpenAI, Anthropic, Gemini, Ollama
|
|
2401
2369
|
// All requests go directly from the browser to provider APIs (no backend proxy).
|
|
@@ -3551,6 +3519,9 @@ const FieldLinkCountBadge = ({ fieldsCount, linksCount })=>{
|
|
|
3551
3519
|
};
|
|
3552
3520
|
|
|
3553
3521
|
const CompactDictionaryPanel = ({ schemaUrl = '_dictionary/_all' })=>{
|
|
3522
|
+
const { ref, width } = useElementSize();
|
|
3523
|
+
const isNarrow = width > 0 && width < 280;
|
|
3524
|
+
const isCompact = width > 0 && width < 360;
|
|
3554
3525
|
const [nodes, setNodes] = useState([]);
|
|
3555
3526
|
const [search, setSearch] = useState('');
|
|
3556
3527
|
const [expandedId, setExpandedId] = useState(null);
|
|
@@ -3583,7 +3554,8 @@ const CompactDictionaryPanel = ({ schemaUrl = '_dictionary/_all' })=>{
|
|
|
3583
3554
|
});
|
|
3584
3555
|
}
|
|
3585
3556
|
return /*#__PURE__*/ jsxs("div", {
|
|
3586
|
-
|
|
3557
|
+
ref: ref,
|
|
3558
|
+
className: "relative flex flex-col gap-2 bg-base-lightest p-2 h-full",
|
|
3587
3559
|
children: [
|
|
3588
3560
|
/*#__PURE__*/ jsx(LoadingOverlay, {
|
|
3589
3561
|
visible: isFetching
|
|
@@ -3603,7 +3575,7 @@ const CompactDictionaryPanel = ({ schemaUrl = '_dictionary/_all' })=>{
|
|
|
3603
3575
|
]
|
|
3604
3576
|
}),
|
|
3605
3577
|
/*#__PURE__*/ jsx("div", {
|
|
3606
|
-
className: "flex flex-col gap-0.5",
|
|
3578
|
+
className: "flex h-full flex-1 flex-col gap-0.5 overflow-y-auto",
|
|
3607
3579
|
children: filtered.map((node)=>{
|
|
3608
3580
|
const isExpanded = expandedId === node.id;
|
|
3609
3581
|
const propCount = Object.keys(node.properties).length;
|
|
@@ -3614,27 +3586,39 @@ const CompactDictionaryPanel = ({ schemaUrl = '_dictionary/_all' })=>{
|
|
|
3614
3586
|
/*#__PURE__*/ jsxs("button", {
|
|
3615
3587
|
type: "button",
|
|
3616
3588
|
onClick: ()=>setExpandedId(isExpanded ? null : node.id),
|
|
3617
|
-
className: "flex w-full
|
|
3589
|
+
className: "flex w-full flex-col px-2.5 py-2 text-left hover:bg-base-lightest hover:bg-opacity-50",
|
|
3618
3590
|
"aria-label": `Expand description for ${node.title}`,
|
|
3619
3591
|
"aria-expanded": isExpanded,
|
|
3620
3592
|
children: [
|
|
3621
|
-
isExpanded ? /*#__PURE__*/ jsx(MdKeyboardArrowDown, {}) : /*#__PURE__*/ jsx(MdKeyboardArrowRight, {}),
|
|
3622
3593
|
/*#__PURE__*/ jsxs("div", {
|
|
3623
|
-
className: "
|
|
3594
|
+
className: "flex w-full items-center gap-2",
|
|
3624
3595
|
children: [
|
|
3625
|
-
/*#__PURE__*/ jsx(
|
|
3626
|
-
|
|
3627
|
-
|
|
3596
|
+
isExpanded ? /*#__PURE__*/ jsx(MdKeyboardArrowDown, {}) : /*#__PURE__*/ jsx(MdKeyboardArrowRight, {}),
|
|
3597
|
+
/*#__PURE__*/ jsxs("div", {
|
|
3598
|
+
className: "min-w-0 flex-1",
|
|
3599
|
+
children: [
|
|
3600
|
+
/*#__PURE__*/ jsx("div", {
|
|
3601
|
+
className: "truncate text-xs font-semibold text-base-darkest",
|
|
3602
|
+
children: node.title
|
|
3603
|
+
}),
|
|
3604
|
+
!isNarrow && node.category && /*#__PURE__*/ jsx("div", {
|
|
3605
|
+
className: "truncate text-sm text-base-darker",
|
|
3606
|
+
children: node.category
|
|
3607
|
+
})
|
|
3608
|
+
]
|
|
3628
3609
|
}),
|
|
3629
|
-
|
|
3630
|
-
|
|
3631
|
-
|
|
3610
|
+
!isNarrow && /*#__PURE__*/ jsx(FieldLinkCountBadge, {
|
|
3611
|
+
fieldsCount: propCount,
|
|
3612
|
+
linksCount: linkCount
|
|
3632
3613
|
})
|
|
3633
3614
|
]
|
|
3634
3615
|
}),
|
|
3635
|
-
/*#__PURE__*/ jsx(
|
|
3636
|
-
|
|
3637
|
-
|
|
3616
|
+
isNarrow && /*#__PURE__*/ jsx("div", {
|
|
3617
|
+
className: "flex w-full items-center justify-between pl-5 pt-0.5",
|
|
3618
|
+
children: node.category && /*#__PURE__*/ jsx("span", {
|
|
3619
|
+
className: "truncate text-xs text-base-darker",
|
|
3620
|
+
children: node.category
|
|
3621
|
+
})
|
|
3638
3622
|
})
|
|
3639
3623
|
]
|
|
3640
3624
|
}),
|
|
@@ -3656,7 +3640,7 @@ const CompactDictionaryPanel = ({ schemaUrl = '_dictionary/_all' })=>{
|
|
|
3656
3640
|
/*#__PURE__*/ jsx(Table.Th, {
|
|
3657
3641
|
children: "Type"
|
|
3658
3642
|
}),
|
|
3659
|
-
/*#__PURE__*/ jsx(Table.Th, {})
|
|
3643
|
+
!isCompact && /*#__PURE__*/ jsx(Table.Th, {})
|
|
3660
3644
|
]
|
|
3661
3645
|
})
|
|
3662
3646
|
}),
|
|
@@ -3677,8 +3661,9 @@ const CompactDictionaryPanel = ({ schemaUrl = '_dictionary/_all' })=>{
|
|
|
3677
3661
|
children: info.type
|
|
3678
3662
|
})
|
|
3679
3663
|
}),
|
|
3680
|
-
/*#__PURE__*/ jsx(Table.Td, {
|
|
3664
|
+
!isCompact && /*#__PURE__*/ jsx(Table.Td, {
|
|
3681
3665
|
children: info.enum && /*#__PURE__*/ jsx(Scroller, {
|
|
3666
|
+
draggable: true,
|
|
3682
3667
|
children: /*#__PURE__*/ jsx(Group, {
|
|
3683
3668
|
gap: "xs",
|
|
3684
3669
|
wrap: "nowrap",
|
|
@@ -3690,6 +3675,7 @@ const CompactDictionaryPanel = ({ schemaUrl = '_dictionary/_all' })=>{
|
|
|
3690
3675
|
label: value,
|
|
3691
3676
|
className: "font-bold text-secondary-contrast",
|
|
3692
3677
|
color: "accent-light",
|
|
3678
|
+
noTruncate: true,
|
|
3693
3679
|
children: value
|
|
3694
3680
|
})
|
|
3695
3681
|
}, value))
|
|
@@ -3763,12 +3749,12 @@ const TABS = [
|
|
|
3763
3749
|
];
|
|
3764
3750
|
const DataToolsPanel = ({ schemaUrl = DEFAULT_DICTIONARY_SCHEMA_URL, kbUrl })=>{
|
|
3765
3751
|
return /*#__PURE__*/ jsx("div", {
|
|
3766
|
-
className: "flex
|
|
3752
|
+
className: "flex flex-col h-full",
|
|
3767
3753
|
children: /*#__PURE__*/ jsxs(Tabs, {
|
|
3768
3754
|
defaultValue: "dictionary",
|
|
3769
3755
|
variant: "outline",
|
|
3770
3756
|
classNames: {
|
|
3771
|
-
root: 'p-2'
|
|
3757
|
+
root: 'flex flex-col p-2'
|
|
3772
3758
|
},
|
|
3773
3759
|
keepMounted: true,
|
|
3774
3760
|
children: [
|
|
@@ -3781,7 +3767,7 @@ const DataToolsPanel = ({ schemaUrl = DEFAULT_DICTIONARY_SCHEMA_URL, kbUrl })=>{
|
|
|
3781
3767
|
}, tab.id))
|
|
3782
3768
|
}),
|
|
3783
3769
|
/*#__PURE__*/ jsx("div", {
|
|
3784
|
-
className: "min-h-0
|
|
3770
|
+
className: "flex-1 min-h-0 h-full pt-4",
|
|
3785
3771
|
children: /*#__PURE__*/ jsxs(PanelErrorBoundary, {
|
|
3786
3772
|
children: [
|
|
3787
3773
|
/*#__PURE__*/ jsx(Tabs.Panel, {
|
|
@@ -3805,40 +3791,60 @@ const DataToolsPanel = ({ schemaUrl = DEFAULT_DICTIONARY_SCHEMA_URL, kbUrl })=>{
|
|
|
3805
3791
|
});
|
|
3806
3792
|
};
|
|
3807
3793
|
|
|
3808
|
-
const ToolsPanel = ({ expanded = true, setExpanded = ()=>{} })=>{
|
|
3794
|
+
const ToolsPanel = ({ expanded = true, setExpanded = ()=>{}, width = 310 })=>{
|
|
3809
3795
|
return /*#__PURE__*/ jsx(HorizontalAccordion, {
|
|
3810
3796
|
label: "Data & Tools",
|
|
3811
3797
|
expanded: expanded,
|
|
3812
3798
|
setExpanded: setExpanded,
|
|
3813
|
-
expandedWidth:
|
|
3799
|
+
expandedWidth: width,
|
|
3814
3800
|
children: /*#__PURE__*/ jsx(DataToolsPanel, {})
|
|
3815
3801
|
});
|
|
3816
3802
|
};
|
|
3817
3803
|
|
|
3818
|
-
const WorkspaceLayout = ({ children })=>{
|
|
3804
|
+
const WorkspaceLayout = ({ children, tierConfiguration })=>{
|
|
3819
3805
|
const workspaceTier = useCoreSelector((state)=>selectWorkspaceTier(state));
|
|
3820
3806
|
const [toolsExpanded, { set: setToolsExpanded }] = useDisclosure(true);
|
|
3821
3807
|
const [settingsExpanded, { set: setSettingsExpanded }] = useDisclosure(true);
|
|
3808
|
+
const [toolbarRef, toolbarRect] = useResizeObserver();
|
|
3822
3809
|
const isFullScreen = useCoreSelector((state)=>selectWorkspaceFullscreen(state));
|
|
3810
|
+
useEffect(()=>{
|
|
3811
|
+
if (isFullScreen) {
|
|
3812
|
+
setToolsExpanded(false);
|
|
3813
|
+
setSettingsExpanded(false);
|
|
3814
|
+
} else {
|
|
3815
|
+
setToolsExpanded(true);
|
|
3816
|
+
setSettingsExpanded(true);
|
|
3817
|
+
}
|
|
3818
|
+
}, [
|
|
3819
|
+
isFullScreen,
|
|
3820
|
+
setSettingsExpanded,
|
|
3821
|
+
setToolsExpanded
|
|
3822
|
+
]);
|
|
3823
3823
|
if (!workspaceTier) return null;
|
|
3824
3824
|
return /*#__PURE__*/ jsxs("div", {
|
|
3825
3825
|
className: "flex flex-col w-full grow",
|
|
3826
3826
|
children: [
|
|
3827
3827
|
/*#__PURE__*/ jsx(WorkspaceToolbar, {
|
|
3828
|
-
toolbarConfiguration:
|
|
3828
|
+
toolbarConfiguration: tierConfiguration.toolbar,
|
|
3829
|
+
ref: toolbarRef
|
|
3829
3830
|
}),
|
|
3830
3831
|
/*#__PURE__*/ jsxs("div", {
|
|
3831
|
-
className: "flex w-full
|
|
3832
|
+
className: "flex w-full nowrap",
|
|
3833
|
+
style: {
|
|
3834
|
+
height: `calc(100% - ${toolbarRect?.height ?? 0}px`
|
|
3835
|
+
},
|
|
3832
3836
|
children: [
|
|
3833
|
-
|
|
3834
|
-
expanded: toolsExpanded
|
|
3835
|
-
setExpanded: setToolsExpanded
|
|
3837
|
+
tierConfiguration.dataAndTools.enabled && /*#__PURE__*/ jsx(ToolsPanel, {
|
|
3838
|
+
expanded: toolsExpanded,
|
|
3839
|
+
setExpanded: setToolsExpanded,
|
|
3840
|
+
width: tierConfiguration.dataAndTools.width
|
|
3836
3841
|
}),
|
|
3837
3842
|
children,
|
|
3838
3843
|
/*#__PURE__*/ jsx(SettingsPanel, {
|
|
3839
|
-
showKernels:
|
|
3840
|
-
expanded: settingsExpanded
|
|
3841
|
-
setExpanded: setSettingsExpanded
|
|
3844
|
+
showKernels: tierConfiguration.settings.showKernels,
|
|
3845
|
+
expanded: settingsExpanded,
|
|
3846
|
+
setExpanded: setSettingsExpanded,
|
|
3847
|
+
width: tierConfiguration.settings.width
|
|
3842
3848
|
})
|
|
3843
3849
|
]
|
|
3844
3850
|
})
|
|
@@ -3892,6 +3898,7 @@ const WorkspaceCenter = ({ workspaces, landingPage, tierConfiguration })=>{
|
|
|
3892
3898
|
}
|
|
3893
3899
|
if (workspaceTier === 'free') {
|
|
3894
3900
|
return /*#__PURE__*/ jsx(WorkspaceLayout, {
|
|
3901
|
+
tierConfiguration: tierConfiguration.free,
|
|
3895
3902
|
children: /*#__PURE__*/ jsx(FreeWorkspace, {})
|
|
3896
3903
|
});
|
|
3897
3904
|
}
|
|
@@ -3900,6 +3907,7 @@ const WorkspaceCenter = ({ workspaces, landingPage, tierConfiguration })=>{
|
|
|
3900
3907
|
children: /*#__PURE__*/ jsx(MicroContainerReduxProvider, {
|
|
3901
3908
|
enabled: true,
|
|
3902
3909
|
children: /*#__PURE__*/ jsx(WorkspaceLayout, {
|
|
3910
|
+
tierConfiguration: tierConfiguration.remote,
|
|
3903
3911
|
children: /*#__PURE__*/ jsx(RemoteComputeWorkspace, {
|
|
3904
3912
|
tenantId: authContext?.tenantId || 'default',
|
|
3905
3913
|
workspaceId: authContext?.workspaceId || 'workspace-default',
|
|
@@ -3943,22 +3951,60 @@ const DEFAULT_WORKSPACES_CONFIGURATION = {
|
|
|
3943
3951
|
workspaces: {},
|
|
3944
3952
|
tierConfiguration: {
|
|
3945
3953
|
free: {
|
|
3946
|
-
baseUrl: process.env.FREE_WORKSPACE_ASSETS_BASE_URL ?? '/api/workspace-assets/free'
|
|
3954
|
+
baseUrl: process.env.FREE_WORKSPACE_ASSETS_BASE_URL ?? '/api/workspace-assets/free',
|
|
3955
|
+
toolbar: {
|
|
3956
|
+
label: 'JupyterLite',
|
|
3957
|
+
description: 'Running via JupyterLite',
|
|
3958
|
+
showStop: false,
|
|
3959
|
+
showStatus: false
|
|
3960
|
+
},
|
|
3961
|
+
settings: {
|
|
3962
|
+
showKernels: false
|
|
3963
|
+
},
|
|
3964
|
+
dataAndTools: {
|
|
3965
|
+
enabled: true,
|
|
3966
|
+
tabs: [
|
|
3967
|
+
{
|
|
3968
|
+
label: 'Dictionary',
|
|
3969
|
+
description: 'Data Dictionary',
|
|
3970
|
+
app: 'dictionary'
|
|
3971
|
+
}
|
|
3972
|
+
],
|
|
3973
|
+
width: 300
|
|
3974
|
+
}
|
|
3947
3975
|
},
|
|
3948
3976
|
remote: {
|
|
3949
|
-
baseUrl: process.env.REMOTE_COMPUTE_WORKSPACE_ASSETS_BASE_URL ?? '/api/workspace-assets/remote'
|
|
3977
|
+
baseUrl: process.env.REMOTE_COMPUTE_WORKSPACE_ASSETS_BASE_URL ?? '/api/workspace-assets/remote',
|
|
3978
|
+
toolbar: {
|
|
3979
|
+
label: 'Remote Compute Environment',
|
|
3980
|
+
description: 'Running with Remote Kernels',
|
|
3981
|
+
showStop: true,
|
|
3982
|
+
showStatus: true
|
|
3983
|
+
},
|
|
3984
|
+
settings: {
|
|
3985
|
+
showKernels: true
|
|
3986
|
+
},
|
|
3987
|
+
dataAndTools: {
|
|
3988
|
+
enabled: true,
|
|
3989
|
+
tabs: [
|
|
3990
|
+
{
|
|
3991
|
+
label: 'Dictionary',
|
|
3992
|
+
description: 'Data Dictionary',
|
|
3993
|
+
app: 'dictionary'
|
|
3994
|
+
}
|
|
3995
|
+
]
|
|
3996
|
+
}
|
|
3950
3997
|
}
|
|
3951
3998
|
}
|
|
3952
3999
|
};
|
|
3953
4000
|
const WorkspacesCenterPageGetServerSideProps = async ()=>{
|
|
3954
4001
|
try {
|
|
3955
4002
|
const workspacesCenterConfiguration = await ContentSource.getContentDatabase().get(`${GEN3_COMMONS_NAME}/workspaces.json`);
|
|
4003
|
+
const mergedConfiguration = merge({}, DEFAULT_WORKSPACES_CONFIGURATION, workspacesCenterConfiguration);
|
|
3956
4004
|
return {
|
|
3957
4005
|
props: {
|
|
3958
4006
|
...await getNavPageLayoutPropsFromConfig(),
|
|
3959
|
-
configuration:
|
|
3960
|
-
...workspacesCenterConfiguration
|
|
3961
|
-
}
|
|
4007
|
+
configuration: mergedConfiguration
|
|
3962
4008
|
}
|
|
3963
4009
|
};
|
|
3964
4010
|
} catch (error) {
|