@lvce-editor/panel-worker 2.13.2 → 2.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/panelWorkerMain.js +179 -13
- package/package.json +1 -1
package/dist/panelWorkerMain.js
CHANGED
|
@@ -96,6 +96,12 @@ const object = value => {
|
|
|
96
96
|
throw new AssertionError('expected value to be of type object');
|
|
97
97
|
}
|
|
98
98
|
};
|
|
99
|
+
const number = value => {
|
|
100
|
+
const type = getType(value);
|
|
101
|
+
if (type !== Number$1) {
|
|
102
|
+
throw new AssertionError('expected value to be of type number');
|
|
103
|
+
}
|
|
104
|
+
};
|
|
99
105
|
const string = value => {
|
|
100
106
|
const type = getType(value);
|
|
101
107
|
if (type !== String$1) {
|
|
@@ -1111,12 +1117,12 @@ const create$2 = rpcId => {
|
|
|
1111
1117
|
};
|
|
1112
1118
|
};
|
|
1113
1119
|
|
|
1114
|
-
const Tab = 'tab';
|
|
1120
|
+
const Tab$1 = 'tab';
|
|
1115
1121
|
const TabList = 'tablist';
|
|
1116
1122
|
const ToolBar = 'toolbar';
|
|
1117
1123
|
|
|
1118
1124
|
const Audio = 0;
|
|
1119
|
-
const Button = 1;
|
|
1125
|
+
const Button$1 = 1;
|
|
1120
1126
|
const Col = 2;
|
|
1121
1127
|
const ColGroup = 3;
|
|
1122
1128
|
const Div = 4;
|
|
@@ -1207,7 +1213,7 @@ const VirtualDomElements = {
|
|
|
1207
1213
|
Audio,
|
|
1208
1214
|
BlockQuote,
|
|
1209
1215
|
Br,
|
|
1210
|
-
Button,
|
|
1216
|
+
Button: Button$1,
|
|
1211
1217
|
Canvas,
|
|
1212
1218
|
Circle,
|
|
1213
1219
|
Cite,
|
|
@@ -1284,8 +1290,18 @@ const VirtualDomElements = {
|
|
|
1284
1290
|
Video
|
|
1285
1291
|
};
|
|
1286
1292
|
|
|
1293
|
+
const Button = 'event.button';
|
|
1294
|
+
const ClientX = 'event.clientX';
|
|
1295
|
+
const ClientY = 'event.clientY';
|
|
1287
1296
|
const TargetName = 'event.target.name';
|
|
1288
1297
|
|
|
1298
|
+
const Tab = 13;
|
|
1299
|
+
|
|
1300
|
+
const Separator = 1;
|
|
1301
|
+
const None = 0;
|
|
1302
|
+
const Checked = 2;
|
|
1303
|
+
const Unchecked = 3;
|
|
1304
|
+
|
|
1289
1305
|
const RendererProcess = 1670;
|
|
1290
1306
|
const RendererWorker = 1;
|
|
1291
1307
|
|
|
@@ -1300,6 +1316,13 @@ const {
|
|
|
1300
1316
|
invoke: invoke$1,
|
|
1301
1317
|
set: set$2
|
|
1302
1318
|
} = create$2(RendererWorker);
|
|
1319
|
+
const showContextMenu2 = async (uid, menuId, x, y, args) => {
|
|
1320
|
+
number(uid);
|
|
1321
|
+
number(menuId);
|
|
1322
|
+
number(x);
|
|
1323
|
+
number(y);
|
|
1324
|
+
await invoke$1('ContextMenu.show2', uid, menuId, x, y, args);
|
|
1325
|
+
};
|
|
1303
1326
|
|
|
1304
1327
|
const toCommandId = key => {
|
|
1305
1328
|
const dotIndex = key.indexOf('.');
|
|
@@ -1560,12 +1583,14 @@ const create = (uid, uri, x, y, width, height, platform, assetDir) => {
|
|
|
1560
1583
|
const state = {
|
|
1561
1584
|
actionsUid: 0,
|
|
1562
1585
|
assetDir,
|
|
1586
|
+
availableViews: [],
|
|
1563
1587
|
badgeCounts: {},
|
|
1564
1588
|
childUid: 0,
|
|
1565
1589
|
currentViewletId: '',
|
|
1566
1590
|
errorCount: 0,
|
|
1567
1591
|
headerHeight: 35,
|
|
1568
1592
|
height,
|
|
1593
|
+
hiddenViews: [],
|
|
1569
1594
|
initial: true,
|
|
1570
1595
|
maximized: false,
|
|
1571
1596
|
platform,
|
|
@@ -1632,6 +1657,57 @@ const getCurrentViewletId = state => {
|
|
|
1632
1657
|
return currentViewletId;
|
|
1633
1658
|
};
|
|
1634
1659
|
|
|
1660
|
+
const menuEntrySeparator = {
|
|
1661
|
+
command: '',
|
|
1662
|
+
flags: Separator,
|
|
1663
|
+
id: 'separator',
|
|
1664
|
+
label: ''
|
|
1665
|
+
};
|
|
1666
|
+
|
|
1667
|
+
const getViewMenuItemFlags = (state, view) => {
|
|
1668
|
+
const {
|
|
1669
|
+
views
|
|
1670
|
+
} = state;
|
|
1671
|
+
return views.includes(view) ? Checked : Unchecked;
|
|
1672
|
+
};
|
|
1673
|
+
const getViewMenuEntry = (state, view) => {
|
|
1674
|
+
return {
|
|
1675
|
+
args: [view],
|
|
1676
|
+
command: 'Panel.toggleViewVisibility',
|
|
1677
|
+
flags: getViewMenuItemFlags(state, view),
|
|
1678
|
+
id: `panelTab.${view}`,
|
|
1679
|
+
label: view
|
|
1680
|
+
};
|
|
1681
|
+
};
|
|
1682
|
+
const getTabMenuEntries = state => {
|
|
1683
|
+
const {
|
|
1684
|
+
availableViews
|
|
1685
|
+
} = state;
|
|
1686
|
+
return [...availableViews.map(view => getViewMenuEntry(state, view)), menuEntrySeparator, {
|
|
1687
|
+
command: 'Layout.maximizePanel',
|
|
1688
|
+
flags: None,
|
|
1689
|
+
id: 'panel.maximize',
|
|
1690
|
+
label: 'Maximize Panel'
|
|
1691
|
+
}, {
|
|
1692
|
+
command: 'Layout.hidePanel',
|
|
1693
|
+
flags: None,
|
|
1694
|
+
id: 'panel.hide',
|
|
1695
|
+
label: 'Hide Panel'
|
|
1696
|
+
}];
|
|
1697
|
+
};
|
|
1698
|
+
const getMenuEntries = (state, props) => {
|
|
1699
|
+
switch (props.menuId) {
|
|
1700
|
+
case Tab:
|
|
1701
|
+
return getTabMenuEntries(state);
|
|
1702
|
+
default:
|
|
1703
|
+
return [];
|
|
1704
|
+
}
|
|
1705
|
+
};
|
|
1706
|
+
|
|
1707
|
+
const getMenuIds = () => {
|
|
1708
|
+
return [Tab];
|
|
1709
|
+
};
|
|
1710
|
+
|
|
1635
1711
|
const state = {
|
|
1636
1712
|
connected: false
|
|
1637
1713
|
};
|
|
@@ -1713,6 +1789,22 @@ const handleProblemsSummaryChange = (state, summary) => {
|
|
|
1713
1789
|
return setBadgeCount(state, Problems, count);
|
|
1714
1790
|
};
|
|
1715
1791
|
|
|
1792
|
+
const show2 = async (uid, menuId, x, y, args) => {
|
|
1793
|
+
await showContextMenu2(uid, menuId, x, y, args);
|
|
1794
|
+
};
|
|
1795
|
+
|
|
1796
|
+
const handleTabContextMenu = async (state, _button, x, y) => {
|
|
1797
|
+
number(x);
|
|
1798
|
+
number(y);
|
|
1799
|
+
const {
|
|
1800
|
+
uid
|
|
1801
|
+
} = state;
|
|
1802
|
+
await show2(uid, Tab, x, y, {
|
|
1803
|
+
menuId: Tab
|
|
1804
|
+
});
|
|
1805
|
+
return state;
|
|
1806
|
+
};
|
|
1807
|
+
|
|
1716
1808
|
const handleClickClose = async state => {
|
|
1717
1809
|
await invoke$1('Layout.hidePanel');
|
|
1718
1810
|
return state;
|
|
@@ -1862,14 +1954,21 @@ const loadContent = (state, savedState, workspaceUri = '') => {
|
|
|
1862
1954
|
currentViewletId: activeViewletId
|
|
1863
1955
|
} = state;
|
|
1864
1956
|
const savedViewletId = getSavedViewletId(savedState);
|
|
1865
|
-
const
|
|
1957
|
+
const availableViews = getPanelViews(workspaceUri);
|
|
1958
|
+
const hiddenViews = (savedState?.hiddenViews || []).filter(view => availableViews.includes(view));
|
|
1959
|
+
let views = availableViews.filter(view => !hiddenViews.includes(view));
|
|
1960
|
+
if (views.length === 0 && availableViews.length > 0) {
|
|
1961
|
+
views = [availableViews[0]];
|
|
1962
|
+
}
|
|
1866
1963
|
let currentViewletId = savedViewletId;
|
|
1867
1964
|
if (!views.includes(currentViewletId)) {
|
|
1868
1965
|
currentViewletId = views.includes(activeViewletId) ? activeViewletId : views[0];
|
|
1869
1966
|
}
|
|
1870
1967
|
const loaded = {
|
|
1871
1968
|
...state,
|
|
1969
|
+
availableViews,
|
|
1872
1970
|
currentViewletId,
|
|
1971
|
+
hiddenViews: availableViews.filter(view => !views.includes(view)),
|
|
1873
1972
|
views
|
|
1874
1973
|
};
|
|
1875
1974
|
return openViewlet(loaded, currentViewletId);
|
|
@@ -1891,13 +1990,24 @@ const selectRaw = async (state, rawIndex) => {
|
|
|
1891
1990
|
|
|
1892
1991
|
const toggleView = async (state, name, uri = '') => {
|
|
1893
1992
|
const {
|
|
1993
|
+
availableViews,
|
|
1894
1994
|
currentViewletId,
|
|
1995
|
+
hiddenViews,
|
|
1895
1996
|
views
|
|
1896
1997
|
} = state;
|
|
1897
|
-
|
|
1898
|
-
if (index === -1) {
|
|
1998
|
+
if (!availableViews.includes(name)) {
|
|
1899
1999
|
return state;
|
|
1900
2000
|
}
|
|
2001
|
+
if (!views.includes(name)) {
|
|
2002
|
+
const nextHiddenViews = hiddenViews.filter(view => view !== name);
|
|
2003
|
+
const nextViews = availableViews.filter(view => !nextHiddenViews.includes(view));
|
|
2004
|
+
return selectIndex({
|
|
2005
|
+
...state,
|
|
2006
|
+
hiddenViews: nextHiddenViews,
|
|
2007
|
+
views: nextViews
|
|
2008
|
+
}, nextViews.indexOf(name), uri);
|
|
2009
|
+
}
|
|
2010
|
+
const index = views.indexOf(name);
|
|
1901
2011
|
if (name === currentViewletId) {
|
|
1902
2012
|
return state;
|
|
1903
2013
|
}
|
|
@@ -2217,6 +2327,7 @@ const HandleClickMaximize = 'handleClickMaximize';
|
|
|
2217
2327
|
const HandleClickUnmaximize = 'handleClickUnmaximize';
|
|
2218
2328
|
const HandleClickSelectTab = 'HandleClickSelectTab';
|
|
2219
2329
|
const HandleClickTab = 'HandleClickTab';
|
|
2330
|
+
const HandleTabContextMenu = 'HandleTabContextMenu';
|
|
2220
2331
|
|
|
2221
2332
|
const emptyObject = {};
|
|
2222
2333
|
const i18nString = (key, placeholders = emptyObject) => {
|
|
@@ -2268,7 +2379,7 @@ const getGlobalActionsDom = state => {
|
|
|
2268
2379
|
className: IconButton,
|
|
2269
2380
|
onClick: maximizeOnClick,
|
|
2270
2381
|
title: maximizeLabel,
|
|
2271
|
-
type: Button
|
|
2382
|
+
type: Button$1
|
|
2272
2383
|
}, {
|
|
2273
2384
|
childCount: 0,
|
|
2274
2385
|
className: mergeClassNames(MaskIcon, maximizeIcon),
|
|
@@ -2279,7 +2390,7 @@ const getGlobalActionsDom = state => {
|
|
|
2279
2390
|
className: IconButton,
|
|
2280
2391
|
onClick: HandleClickClose,
|
|
2281
2392
|
title: close(),
|
|
2282
|
-
type: Button
|
|
2393
|
+
type: Button$1
|
|
2283
2394
|
}, closeIconNode];
|
|
2284
2395
|
};
|
|
2285
2396
|
|
|
@@ -2306,8 +2417,9 @@ const createPanelTab = (tab, badgeCount, isSelected) => {
|
|
|
2306
2417
|
className,
|
|
2307
2418
|
name: tab,
|
|
2308
2419
|
onClick: HandleClickTab,
|
|
2309
|
-
|
|
2310
|
-
|
|
2420
|
+
onContextMenu: HandleTabContextMenu,
|
|
2421
|
+
role: Tab$1,
|
|
2422
|
+
type: Button$1
|
|
2311
2423
|
};
|
|
2312
2424
|
const dom = [tabDom, text(label)];
|
|
2313
2425
|
if (badgeCount) {
|
|
@@ -2452,6 +2564,10 @@ const renderEventListeners = () => {
|
|
|
2452
2564
|
}, {
|
|
2453
2565
|
name: HandleClickTab,
|
|
2454
2566
|
params: ['selectName', TargetName]
|
|
2567
|
+
}, {
|
|
2568
|
+
name: HandleTabContextMenu,
|
|
2569
|
+
params: ['handleTabContextMenu', Button, ClientX, ClientY],
|
|
2570
|
+
preventDefault: true
|
|
2455
2571
|
}];
|
|
2456
2572
|
};
|
|
2457
2573
|
|
|
@@ -2480,11 +2596,13 @@ const resize = async (state, dimensions) => {
|
|
|
2480
2596
|
const saveState = async state => {
|
|
2481
2597
|
const {
|
|
2482
2598
|
childUid,
|
|
2483
|
-
currentViewletId
|
|
2599
|
+
currentViewletId,
|
|
2600
|
+
hiddenViews
|
|
2484
2601
|
} = state;
|
|
2485
2602
|
await saveViewletState(childUid, currentViewletId);
|
|
2486
2603
|
return {
|
|
2487
|
-
currentViewletId
|
|
2604
|
+
currentViewletId,
|
|
2605
|
+
hiddenViews
|
|
2488
2606
|
};
|
|
2489
2607
|
};
|
|
2490
2608
|
|
|
@@ -2519,6 +2637,49 @@ const applyComponentState = (currentState, state) => {
|
|
|
2519
2637
|
};
|
|
2520
2638
|
const setComponentState = wrapCommand(applyComponentState);
|
|
2521
2639
|
|
|
2640
|
+
const toggleViewVisibility = async (state, name) => {
|
|
2641
|
+
const {
|
|
2642
|
+
availableViews,
|
|
2643
|
+
currentViewletId,
|
|
2644
|
+
hiddenViews,
|
|
2645
|
+
views
|
|
2646
|
+
} = state;
|
|
2647
|
+
if (!availableViews.includes(name)) {
|
|
2648
|
+
return state;
|
|
2649
|
+
}
|
|
2650
|
+
if (!views.includes(name)) {
|
|
2651
|
+
const nextHiddenViews = hiddenViews.filter(view => view !== name);
|
|
2652
|
+
const nextViews = availableViews.filter(view => !nextHiddenViews.includes(view));
|
|
2653
|
+
const nextState = {
|
|
2654
|
+
...state,
|
|
2655
|
+
hiddenViews: nextHiddenViews,
|
|
2656
|
+
selectedIndex: nextViews.indexOf(currentViewletId),
|
|
2657
|
+
views: nextViews
|
|
2658
|
+
};
|
|
2659
|
+
if (views.length === 0) {
|
|
2660
|
+
return openViewlet(nextState, name);
|
|
2661
|
+
}
|
|
2662
|
+
return nextState;
|
|
2663
|
+
}
|
|
2664
|
+
if (views.length <= 1) {
|
|
2665
|
+
return state;
|
|
2666
|
+
}
|
|
2667
|
+
const nextViews = views.filter(view => view !== name);
|
|
2668
|
+
const nextHiddenViews = availableViews.filter(view => !nextViews.includes(view));
|
|
2669
|
+
const nextState = {
|
|
2670
|
+
...state,
|
|
2671
|
+
hiddenViews: nextHiddenViews,
|
|
2672
|
+
selectedIndex: nextViews.indexOf(currentViewletId),
|
|
2673
|
+
views: nextViews
|
|
2674
|
+
};
|
|
2675
|
+
if (currentViewletId !== name) {
|
|
2676
|
+
return nextState;
|
|
2677
|
+
}
|
|
2678
|
+
const index = views.indexOf(name);
|
|
2679
|
+
const nextView = nextViews[Math.min(index, nextViews.length - 1)];
|
|
2680
|
+
return openViewlet(nextState, nextView);
|
|
2681
|
+
};
|
|
2682
|
+
|
|
2522
2683
|
const handleDirectMessagePort = (port, setAsRendererProcess = true) => handleMessagePort(port, commandMap, setAsRendererProcess);
|
|
2523
2684
|
const commandMap = {
|
|
2524
2685
|
'Panel.create': create,
|
|
@@ -2526,6 +2687,9 @@ const commandMap = {
|
|
|
2526
2687
|
'Panel.getCommandIds': getCommandIds,
|
|
2527
2688
|
'Panel.getComponentState': getComponentState,
|
|
2528
2689
|
'Panel.getCurrentViewletId': wrapGetter(getCurrentViewletId),
|
|
2690
|
+
'Panel.getMenuEntries': wrapGetter(getMenuEntries),
|
|
2691
|
+
'Panel.getMenuEntries2': wrapGetter(getMenuEntries),
|
|
2692
|
+
'Panel.getMenuIds': getMenuIds,
|
|
2529
2693
|
'Panel.handleBlur': wrapCommand(handleBlur),
|
|
2530
2694
|
'Panel.handleClickClose': wrapCommand(handleClickClose),
|
|
2531
2695
|
'Panel.handleClickMaximize': wrapCommand(handleClickMaximize),
|
|
@@ -2534,6 +2698,7 @@ const commandMap = {
|
|
|
2534
2698
|
'Panel.handleMessagePort': handleDirectMessagePort,
|
|
2535
2699
|
'Panel.handlePanelLayoutChanged': wrapCommand(handlePanelLayoutChanged),
|
|
2536
2700
|
'Panel.handleProblemsSummaryChange': wrapCommand(handleProblemsSummaryChange),
|
|
2701
|
+
'Panel.handleTabContextMenu': wrapCommand(handleTabContextMenu),
|
|
2537
2702
|
'Panel.loadContent': wrapCommand(loadContent),
|
|
2538
2703
|
'Panel.openViewlet': wrapCommand(openViewlet),
|
|
2539
2704
|
'Panel.render2': render2,
|
|
@@ -2546,7 +2711,8 @@ const commandMap = {
|
|
|
2546
2711
|
'Panel.setBadgeCount': wrapCommand(setBadgeCount),
|
|
2547
2712
|
'Panel.setComponentState': setComponentState,
|
|
2548
2713
|
'Panel.terminate': terminate,
|
|
2549
|
-
'Panel.toggleView': wrapCommand(toggleView)
|
|
2714
|
+
'Panel.toggleView': wrapCommand(toggleView),
|
|
2715
|
+
'Panel.toggleViewVisibility': wrapCommand(toggleViewVisibility)
|
|
2550
2716
|
};
|
|
2551
2717
|
|
|
2552
2718
|
const listen = async () => {
|