@lvce-editor/title-bar-worker 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,16 @@
1
1
  # Title Bar Worker
2
2
 
3
3
  Webworker for the title bar functionality in LVCE Editor.
4
+
5
+ ## Contributing
6
+
7
+ ```sh
8
+ git clone git@github.com:lvce-editor/title-bar-worker.git &&
9
+ cd text-search-worker &&
10
+ npm ci &&
11
+ npm test
12
+ ```
13
+
14
+ ## Gitpod
15
+
16
+ [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/lvce-editor/title-bar-worker)
@@ -868,6 +868,7 @@ const Menu$1 = 'menu';
868
868
  const MenuBar = 'menubar';
869
869
  const MenuItem$1 = 'menuitem';
870
870
  const MenuItemCheckBox = 'menuitemcheckbox';
871
+ const None$1 = 'none';
871
872
  const Separator$1 = 'separator';
872
873
 
873
874
  const Menu = 'Menu';
@@ -1184,9 +1185,12 @@ const parseKey = rawKey => {
1184
1185
  };
1185
1186
  };
1186
1187
 
1188
+ const Button = 1;
1187
1189
  const Div = 4;
1188
1190
  const Span = 8;
1189
1191
  const Text = 12;
1192
+ const I = 16;
1193
+ const Img = 17;
1190
1194
 
1191
1195
  const text = data => {
1192
1196
  return {
@@ -1455,9 +1459,11 @@ const File$1 = 'File';
1455
1459
  const Go$1 = 'Go';
1456
1460
  const Help$1 = 'Help';
1457
1461
  const MoreDot = 'More ...';
1462
+ const OpenProcessExplorer = 'Open Process Explorer';
1458
1463
  const Run$1 = 'Run';
1459
1464
  const Selection$1 = 'Selection';
1460
1465
  const Terminal$1 = 'Terminal';
1466
+ const ToggleDeveloperTools = 'Toggle Developer Tools';
1461
1467
  const View$1 = 'View';
1462
1468
 
1463
1469
  const moreDot = () => {
@@ -1637,98 +1643,6 @@ const getKeyBindings = () => {
1637
1643
  }];
1638
1644
  };
1639
1645
 
1640
- const getFontString = (fontWeight, fontSize, fontFamily) => {
1641
- return `${fontWeight} ${fontSize}px ${fontFamily}`;
1642
- };
1643
-
1644
- const state$1 = {
1645
- ctx: undefined
1646
- };
1647
- const getOrCreate = createCtx => {
1648
- if (state$1.ctx) {
1649
- return state$1.ctx;
1650
- }
1651
- state$1.ctx = createCtx();
1652
- return state$1.ctx;
1653
- };
1654
-
1655
- const createCtx = () => {
1656
- const canvas = new OffscreenCanvas(0, 0);
1657
- const ctx = /** @type {OffscreenCanvasRenderingContext2D} */canvas.getContext('2d');
1658
- if (!ctx) {
1659
- throw new Error('Failed to get canvas context 2d');
1660
- }
1661
- return ctx;
1662
- };
1663
- const getContext = () => {
1664
- const ctx = getOrCreate(createCtx);
1665
- return ctx;
1666
- };
1667
-
1668
- const px = value => {
1669
- return `${value}px`;
1670
- };
1671
-
1672
- const getLetterSpacingString = letterSpacing => {
1673
- return px(letterSpacing);
1674
- };
1675
- const measureTextWidth = (text, fontWeight, fontSize, fontFamily, letterSpacing, isMonoSpaceFont, charWidth) => {
1676
- string(text);
1677
- number(fontWeight);
1678
- number(fontSize);
1679
- string(fontFamily);
1680
- boolean(isMonoSpaceFont);
1681
- number(charWidth);
1682
- if (typeof letterSpacing !== 'number') {
1683
- throw new TypeError('letterSpacing must be of type number');
1684
- }
1685
- const letterSpacingString = getLetterSpacingString(letterSpacing);
1686
- const fontString = getFontString(fontWeight, fontSize, fontFamily);
1687
- const ctx = getContext();
1688
- // @ts-ignore
1689
- ctx.letterSpacing = letterSpacingString;
1690
- ctx.font = fontString;
1691
- const metrics = ctx.measureText(text);
1692
- const {
1693
- width
1694
- } = metrics;
1695
- return width;
1696
- };
1697
-
1698
- const measureTitleBarEntryWidth = (label, fontWeight, fontSize, fontFamily, letterSpacing) => {
1699
- const isMonospaceFont = false;
1700
- const charWidth = 0;
1701
- return measureTextWidth(label, fontWeight, fontSize, fontFamily, letterSpacing, isMonospaceFont, charWidth);
1702
- };
1703
-
1704
- const addWidths = (entries, labelPadding, fontWeight, fontSize, fontFamily, letterSpacing) => {
1705
- const withWidths = [];
1706
- for (const entry of entries) {
1707
- const textWidth = measureTitleBarEntryWidth(entry.label, fontWeight, fontSize, fontFamily, letterSpacing);
1708
- const width = textWidth + labelPadding * 2;
1709
- withWidths.push({
1710
- ...entry,
1711
- width
1712
- });
1713
- }
1714
- return withWidths;
1715
- };
1716
-
1717
- const loadContent = async (state, titleBarEntries) => {
1718
- const {
1719
- labelFontFamily,
1720
- labelFontSize,
1721
- labelFontWeight,
1722
- labelLetterSpacing,
1723
- labelPadding
1724
- } = state;
1725
- const withWidths = addWidths(titleBarEntries, labelPadding, labelFontWeight, labelFontSize, labelFontFamily, labelLetterSpacing);
1726
- return {
1727
- ...state,
1728
- titleBarEntries: withWidths
1729
- };
1730
- };
1731
-
1732
1646
  /**
1733
1647
  * @enum {string}
1734
1648
  */
@@ -1801,7 +1715,7 @@ const menuEntrySeparator = {
1801
1715
  };
1802
1716
 
1803
1717
  const id$9 = Edit;
1804
- const getMenuEntries$c = () => {
1718
+ const getMenuEntries$d = () => {
1805
1719
  return [{
1806
1720
  id: 'undo',
1807
1721
  label: undo(),
@@ -1842,7 +1756,7 @@ const getMenuEntries$c = () => {
1842
1756
 
1843
1757
  const MenuEntriesEdit = {
1844
1758
  __proto__: null,
1845
- getMenuEntries: getMenuEntries$c,
1759
+ getMenuEntries: getMenuEntries$d,
1846
1760
  id: id$9
1847
1761
  };
1848
1762
 
@@ -1855,6 +1769,7 @@ const UiStrings$1 = {
1855
1769
  OpenFile: 'Open File',
1856
1770
  OpenFolder: 'Open Folder',
1857
1771
  OpenRecent: 'Open Recent',
1772
+ Exit: 'Exit',
1858
1773
  Save: 'Save',
1859
1774
  SaveAll: 'Save All'
1860
1775
  };
@@ -1879,13 +1794,15 @@ const save = () => {
1879
1794
  const saveAll = () => {
1880
1795
  return i18nString(UiStrings$1.SaveAll);
1881
1796
  };
1882
-
1883
- const platform = 1;
1797
+ const exit = () => {
1798
+ return i18nString(UiStrings$1.Exit);
1799
+ };
1884
1800
 
1885
1801
  const Web = 1;
1802
+ const Electron = 2;
1886
1803
 
1887
1804
  const id$8 = File;
1888
- const getMenuEntries$b = () => {
1805
+ const getMenuEntries$c = platform => {
1889
1806
  const entries = [{
1890
1807
  id: 'newFile',
1891
1808
  label: newFile(),
@@ -1922,26 +1839,40 @@ const getMenuEntries$b = () => {
1922
1839
  flags: None,
1923
1840
  command: 'Main.saveAll'
1924
1841
  }];
1842
+ if (platform === Electron) {
1843
+ entries.push(menuEntrySeparator, {
1844
+ id: 'exit',
1845
+ label: exit(),
1846
+ flags: Ignore,
1847
+ command: 'Chrome.exit'
1848
+ });
1849
+ }
1925
1850
  return entries;
1926
1851
  };
1927
1852
 
1928
1853
  const MenuEntriesFile = {
1929
1854
  __proto__: null,
1930
- getMenuEntries: getMenuEntries$b,
1855
+ getMenuEntries: getMenuEntries$c,
1931
1856
  id: id$8
1932
1857
  };
1933
1858
 
1934
1859
  const id$7 = Go;
1935
- const getMenuEntries$a = () => {
1860
+ const getMenuEntries$b = () => {
1936
1861
  return [];
1937
1862
  };
1938
1863
 
1939
1864
  const MenuEntriesGo = {
1940
1865
  __proto__: null,
1941
- getMenuEntries: getMenuEntries$a,
1866
+ getMenuEntries: getMenuEntries$b,
1942
1867
  id: id$7
1943
1868
  };
1944
1869
 
1870
+ const toggleDeveloperTools = () => {
1871
+ return i18nString(ToggleDeveloperTools);
1872
+ };
1873
+ const openProcessExplorer = () => {
1874
+ return i18nString(OpenProcessExplorer);
1875
+ };
1945
1876
  const checkForUpdates = () => {
1946
1877
  return i18nString(CheckForUpdates);
1947
1878
  };
@@ -1949,16 +1880,30 @@ const about = () => {
1949
1880
  return i18nString(About);
1950
1881
  };
1951
1882
 
1952
- const isAutoUpdateSupported = () => {
1953
- {
1883
+ const isAutoUpdateSupported = platform => {
1884
+ if (platform !== Electron) {
1954
1885
  return false;
1955
1886
  }
1887
+ return false;
1956
1888
  };
1957
1889
 
1958
1890
  const id$6 = Help;
1959
- const getMenuEntries$9 = async () => {
1960
- const autoUpdateSupported = isAutoUpdateSupported();
1891
+ const getMenuEntries$a = async platform => {
1892
+ const autoUpdateSupported = isAutoUpdateSupported(platform);
1961
1893
  const entries = [];
1894
+ if (platform !== Web) {
1895
+ entries.push({
1896
+ id: 'toggleDeveloperTools',
1897
+ label: toggleDeveloperTools(),
1898
+ flags: None,
1899
+ command: 'Developer.toggleDeveloperTools'
1900
+ }, {
1901
+ id: 'openProcessExplorer',
1902
+ label: openProcessExplorer(),
1903
+ flags: RestoreFocus,
1904
+ command: 'Developer.openProcessExplorer'
1905
+ });
1906
+ }
1962
1907
  if (autoUpdateSupported) {
1963
1908
  entries.push(menuEntrySeparator, {
1964
1909
  id: 'checkForUpdates',
@@ -1981,22 +1926,26 @@ const getMenuEntries$9 = async () => {
1981
1926
 
1982
1927
  const MenuEntriesHelp = {
1983
1928
  __proto__: null,
1984
- getMenuEntries: getMenuEntries$9,
1929
+ getMenuEntries: getMenuEntries$a,
1985
1930
  id: id$6
1986
1931
  };
1987
1932
 
1988
- const state = {
1933
+ const state$1 = {
1989
1934
  rpc: undefined
1990
1935
  };
1991
1936
  const invoke = (method, ...params) => {
1992
1937
  const {
1993
1938
  rpc
1994
- } = state;
1939
+ } = state$1;
1995
1940
  // @ts-ignore
1996
1941
  return rpc.invoke(method, ...params);
1997
1942
  };
1998
1943
  const setRpc = rpc => {
1999
- state.rpc = rpc;
1944
+ state$1.rpc = rpc;
1945
+ };
1946
+
1947
+ const getRecentlyOpened = () => {
1948
+ return invoke(/* RecentlyOpened.getRecentlyOpened */'RecentlyOpened.getRecentlyOpened');
2000
1949
  };
2001
1950
 
2002
1951
  const getTitle = uri => {
@@ -2016,11 +1965,8 @@ const toMenuItem = folder => {
2016
1965
  args: [folder]
2017
1966
  };
2018
1967
  };
2019
- const getRecentlyOpened = () => {
2020
- return invoke(/* RecentlyOpened.getRecentlyOpened */'RecentlyOpened.getRecentlyOpened');
2021
- };
2022
1968
  const id$5 = OpenRecent;
2023
- const getMenuEntries$8 = async () => {
1969
+ const getMenuEntries$9 = async () => {
2024
1970
  const allItems = await getRecentlyOpened();
2025
1971
  const itemsToShow = allItems.slice(0, MAX_MENU_RECENT_ENTRIES);
2026
1972
  const items = [];
@@ -2043,23 +1989,23 @@ const getMenuEntries$8 = async () => {
2043
1989
 
2044
1990
  const MenuEntriesOpenRecent = {
2045
1991
  __proto__: null,
2046
- getMenuEntries: getMenuEntries$8,
1992
+ getMenuEntries: getMenuEntries$9,
2047
1993
  id: id$5
2048
1994
  };
2049
1995
 
2050
1996
  const id$4 = Run;
2051
- const getMenuEntries$7 = () => {
1997
+ const getMenuEntries$8 = () => {
2052
1998
  return [];
2053
1999
  };
2054
2000
 
2055
2001
  const MenuEntriesRun = {
2056
2002
  __proto__: null,
2057
- getMenuEntries: getMenuEntries$7,
2003
+ getMenuEntries: getMenuEntries$8,
2058
2004
  id: id$4
2059
2005
  };
2060
2006
 
2061
2007
  const id$3 = Selection;
2062
- const getMenuEntries$6 = () => {
2008
+ const getMenuEntries$7 = () => {
2063
2009
  return [{
2064
2010
  id: 'selectAll',
2065
2011
  label: selectAll(),
@@ -2090,7 +2036,7 @@ const getMenuEntries$6 = () => {
2090
2036
 
2091
2037
  const MenuEntriesSelection = {
2092
2038
  __proto__: null,
2093
- getMenuEntries: getMenuEntries$6,
2039
+ getMenuEntries: getMenuEntries$7,
2094
2040
  id: id$3
2095
2041
  };
2096
2042
 
@@ -2105,7 +2051,7 @@ const newTerminal = () => {
2105
2051
  };
2106
2052
 
2107
2053
  const id$2 = Terminal;
2108
- const getMenuEntries$5 = () => {
2054
+ const getMenuEntries$6 = () => {
2109
2055
  return [{
2110
2056
  id: 'newTerminal',
2111
2057
  label: newTerminal(),
@@ -2117,7 +2063,7 @@ const getMenuEntries$5 = () => {
2117
2063
 
2118
2064
  const MenuEntriesTerminal = {
2119
2065
  __proto__: null,
2120
- getMenuEntries: getMenuEntries$5,
2066
+ getMenuEntries: getMenuEntries$6,
2121
2067
  id: id$2
2122
2068
  };
2123
2069
 
@@ -2146,7 +2092,7 @@ const help = () => {
2146
2092
  return i18nString(Help$1);
2147
2093
  };
2148
2094
 
2149
- const getMenuEntries$4 = () => {
2095
+ const getMenuEntries$5 = () => {
2150
2096
  return [{
2151
2097
  id: File,
2152
2098
  label: file(),
@@ -2185,7 +2131,7 @@ const getMenuEntries$4 = () => {
2185
2131
  }];
2186
2132
  };
2187
2133
 
2188
- const getMenuEntries$3 = () => {
2134
+ const getMenuEntries$4 = () => {
2189
2135
  return [{
2190
2136
  id: File,
2191
2137
  label: file(),
@@ -2213,37 +2159,227 @@ const getMenuEntries$3 = () => {
2213
2159
  }];
2214
2160
  };
2215
2161
 
2216
- const getFn = () => {
2162
+ const getFn = platform => {
2217
2163
  switch (platform) {
2218
2164
  case Web:
2219
- return getMenuEntries$3;
2220
- default:
2221
2165
  return getMenuEntries$4;
2166
+ default:
2167
+ return getMenuEntries$5;
2222
2168
  }
2223
2169
  };
2224
2170
  const id$1 = TitleBar;
2225
- const getMenuEntries$2 = async () => {
2226
- const fn = getFn();
2171
+ const getMenuEntries$3 = async platform => {
2172
+ const fn = getFn(platform);
2227
2173
  return fn();
2228
2174
  };
2229
2175
 
2230
2176
  const MenuEntriesTitleBar = {
2231
2177
  __proto__: null,
2232
- getMenuEntries: getMenuEntries$2,
2178
+ getMenuEntries: getMenuEntries$3,
2233
2179
  id: id$1
2234
2180
  };
2235
2181
 
2236
2182
  const id = View;
2237
- const getMenuEntries$1 = () => {
2183
+ const getMenuEntries$2 = () => {
2238
2184
  return [];
2239
2185
  };
2240
2186
 
2241
2187
  const MenuEntriesView = {
2242
2188
  __proto__: null,
2243
- getMenuEntries: getMenuEntries$1,
2189
+ getMenuEntries: getMenuEntries$2,
2244
2190
  id
2245
2191
  };
2246
2192
 
2193
+ const menus$1 = [MenuEntriesEdit, MenuEntriesFile, MenuEntriesGo, MenuEntriesHelp, MenuEntriesRun, MenuEntriesSelection, MenuEntriesTerminal, MenuEntriesTitleBar, MenuEntriesView, MenuEntriesOpenRecent];
2194
+
2195
+ const getMenuIds = () => {
2196
+ return menus$1.map(menu => menu.id);
2197
+ };
2198
+ const getMenuEntries$1 = (id, platform) => {
2199
+ const menu = menus$1.find(item => item.id === id);
2200
+ if (!menu) {
2201
+ return [];
2202
+ }
2203
+ return menu.getMenuEntries(platform);
2204
+ };
2205
+
2206
+ const getIconVirtualDom = (icon, type = Div) => {
2207
+ return {
2208
+ type,
2209
+ className: `MaskIcon MaskIcon${icon}`,
2210
+ role: None$1,
2211
+ childCount: 0
2212
+ };
2213
+ };
2214
+
2215
+ const createTitleBarButton = button => {
2216
+ const {
2217
+ id,
2218
+ icon,
2219
+ label,
2220
+ onClick
2221
+ } = button;
2222
+ const dom = [{
2223
+ type: Button,
2224
+ className: `TitleBarButton TitleBarButton${id}`,
2225
+ ariaLabel: label,
2226
+ childCount: 1,
2227
+ onClick
2228
+ }, getIconVirtualDom(icon, I)];
2229
+ return dom;
2230
+ };
2231
+
2232
+ const getTitleBarButtonsVirtualDom = buttons => {
2233
+ const dom = [{
2234
+ type: Div,
2235
+ className: 'Viewlet TitleBarButtons',
2236
+ childCount: buttons.length
2237
+ }, ...buttons.flatMap(createTitleBarButton)];
2238
+ return dom;
2239
+ };
2240
+
2241
+ const getTitleBarIconVirtualDom = iconSrc => {
2242
+ return [{
2243
+ type: Div,
2244
+ className: 'Viewlet TitleBarIcon',
2245
+ childCount: 1
2246
+ }, {
2247
+ type: Img,
2248
+ className: 'TitleBarIconIcon',
2249
+ src: iconSrc,
2250
+ alt: '',
2251
+ childCount: 0
2252
+ }];
2253
+ };
2254
+
2255
+ const getTitleVirtualDom = title => {
2256
+ return [text(title)];
2257
+ };
2258
+
2259
+ const handleClickClose = async state => {
2260
+ await invoke('ElectronWindow.close');
2261
+ return state;
2262
+ };
2263
+
2264
+ const handleClickMinimize = async state => {
2265
+ await invoke('ElectronWindow.minimize');
2266
+ return state;
2267
+ };
2268
+
2269
+ const handleClickToggleMaximize = async state => {
2270
+ await (invoke('ElectronWindow.maximize'));
2271
+ return state;
2272
+ };
2273
+
2274
+ const handleClick$1 = (state, className) => {
2275
+ if (className.includes('Minimize')) {
2276
+ return handleClickMinimize(state);
2277
+ }
2278
+ if (className.includes('Maximize') || className.includes('Restore')) {
2279
+ return handleClickToggleMaximize(state);
2280
+ }
2281
+ if (className.includes('Close')) {
2282
+ return handleClickClose(state);
2283
+ }
2284
+ return state;
2285
+ };
2286
+
2287
+ const handleContextMenu = state => {
2288
+ return state;
2289
+ };
2290
+
2291
+ const getFontString = (fontWeight, fontSize, fontFamily) => {
2292
+ return `${fontWeight} ${fontSize}px ${fontFamily}`;
2293
+ };
2294
+
2295
+ const state = {
2296
+ ctx: undefined
2297
+ };
2298
+ const getOrCreate = createCtx => {
2299
+ if (state.ctx) {
2300
+ return state.ctx;
2301
+ }
2302
+ state.ctx = createCtx();
2303
+ return state.ctx;
2304
+ };
2305
+
2306
+ const createCtx = () => {
2307
+ const canvas = new OffscreenCanvas(0, 0);
2308
+ const ctx = /** @type {OffscreenCanvasRenderingContext2D} */canvas.getContext('2d');
2309
+ if (!ctx) {
2310
+ throw new Error('Failed to get canvas context 2d');
2311
+ }
2312
+ return ctx;
2313
+ };
2314
+ const getContext = () => {
2315
+ const ctx = getOrCreate(createCtx);
2316
+ return ctx;
2317
+ };
2318
+
2319
+ const px = value => {
2320
+ return `${value}px`;
2321
+ };
2322
+
2323
+ const getLetterSpacingString = letterSpacing => {
2324
+ return px(letterSpacing);
2325
+ };
2326
+ const measureTextWidth = (text, fontWeight, fontSize, fontFamily, letterSpacing, isMonoSpaceFont, charWidth) => {
2327
+ string(text);
2328
+ number(fontWeight);
2329
+ number(fontSize);
2330
+ string(fontFamily);
2331
+ boolean(isMonoSpaceFont);
2332
+ number(charWidth);
2333
+ if (typeof letterSpacing !== 'number') {
2334
+ throw new TypeError('letterSpacing must be of type number');
2335
+ }
2336
+ const letterSpacingString = getLetterSpacingString(letterSpacing);
2337
+ const fontString = getFontString(fontWeight, fontSize, fontFamily);
2338
+ const ctx = getContext();
2339
+ // @ts-ignore
2340
+ ctx.letterSpacing = letterSpacingString;
2341
+ ctx.font = fontString;
2342
+ const metrics = ctx.measureText(text);
2343
+ const {
2344
+ width
2345
+ } = metrics;
2346
+ return width;
2347
+ };
2348
+
2349
+ const measureTitleBarEntryWidth = (label, fontWeight, fontSize, fontFamily, letterSpacing) => {
2350
+ const isMonospaceFont = false;
2351
+ const charWidth = 0;
2352
+ return measureTextWidth(label, fontWeight, fontSize, fontFamily, letterSpacing, isMonospaceFont, charWidth);
2353
+ };
2354
+
2355
+ const addWidths = (entries, labelPadding, fontWeight, fontSize, fontFamily, letterSpacing) => {
2356
+ const withWidths = [];
2357
+ for (const entry of entries) {
2358
+ const textWidth = measureTitleBarEntryWidth(entry.label, fontWeight, fontSize, fontFamily, letterSpacing);
2359
+ const width = textWidth + labelPadding * 2;
2360
+ withWidths.push({
2361
+ ...entry,
2362
+ width
2363
+ });
2364
+ }
2365
+ return withWidths;
2366
+ };
2367
+
2368
+ const loadContent = async (state, titleBarEntries) => {
2369
+ const {
2370
+ labelFontFamily,
2371
+ labelFontSize,
2372
+ labelFontWeight,
2373
+ labelLetterSpacing,
2374
+ labelPadding
2375
+ } = state;
2376
+ const withWidths = addWidths(titleBarEntries, labelPadding, labelFontWeight, labelFontSize, labelFontFamily, labelLetterSpacing);
2377
+ return {
2378
+ ...state,
2379
+ titleBarEntries: withWidths
2380
+ };
2381
+ };
2382
+
2247
2383
  const menus = [MenuEntriesEdit, MenuEntriesFile, MenuEntriesGo, MenuEntriesHelp, MenuEntriesRun, MenuEntriesSelection, MenuEntriesTerminal, MenuEntriesTitleBar, MenuEntriesView, MenuEntriesOpenRecent];
2248
2384
  const getMenus = () => {
2249
2385
  return menus;
@@ -2268,6 +2404,19 @@ const getMenuEntries = async (id, ...args) => {
2268
2404
  }
2269
2405
  };
2270
2406
 
2407
+ const renderEventListeners = () => {
2408
+ return [{
2409
+ name: 'handleClickMinimize',
2410
+ params: ['handleClickMinimize']
2411
+ }, {
2412
+ name: 'handleClickClose',
2413
+ params: ['handleClickClose']
2414
+ }, {
2415
+ name: 'handleClickToggleMaximize',
2416
+ params: ['handleClickToggleMaximize']
2417
+ }];
2418
+ };
2419
+
2271
2420
  const saveState = uid => {
2272
2421
  return {};
2273
2422
  };
@@ -2336,14 +2485,9 @@ const getTotalWidth = entries => {
2336
2485
  };
2337
2486
 
2338
2487
  // TODO lazyload menuEntries and use Command.execute (maybe)
2339
- const MENU_WIDTH = 150;
2340
2488
  const CONTEXT_MENU_ITEM_HEIGHT = 26;
2341
2489
  const CONTEXT_MENU_SEPARATOR_HEIGHT = 11;
2342
2490
  const CONTEXT_MENU_PADDING = 8;
2343
- const CONTEXT_MENU_WIDTH = 250;
2344
- const getMenuWidth = () => {
2345
- return CONTEXT_MENU_WIDTH;
2346
- };
2347
2491
  const getMenuHeight = items => {
2348
2492
  let height = CONTEXT_MENU_PADDING;
2349
2493
  for (const item of items) {
@@ -2359,6 +2503,13 @@ const getMenuHeight = items => {
2359
2503
  return height;
2360
2504
  };
2361
2505
 
2506
+ // TODO lazyload menuEntries and use Command.execute (maybe)
2507
+ const MENU_WIDTH = 150;
2508
+ const CONTEXT_MENU_WIDTH = 250;
2509
+ const getMenuWidth = () => {
2510
+ return CONTEXT_MENU_WIDTH;
2511
+ };
2512
+
2362
2513
  // TODO difference between focusing with mouse or keyboard
2363
2514
  // with mouse -> open submenu
2364
2515
  // with keyboard -> don't open submenu, only focus
@@ -2955,6 +3106,14 @@ const wrapCommand = fn => {
2955
3106
  };
2956
3107
 
2957
3108
  const commandMap = {
3109
+ 'TitleBar.getButtonsVirtualDom': getTitleBarButtonsVirtualDom,
3110
+ 'TitleBar.handleContextMenu': handleContextMenu,
3111
+ 'TitleBar.getIconVirtualDom': getTitleBarIconVirtualDom,
3112
+ 'TitleBar.getMenuEntries': getMenuEntries$1,
3113
+ 'TitleBar.getMenuIds': getMenuIds,
3114
+ 'TitleBar.getTitleVirtualDom': getTitleVirtualDom,
3115
+ 'TitleBar.handleButtonsClick': handleClick$1,
3116
+ 'TitleBar.renderEventListeners': renderEventListeners,
2958
3117
  'TitleBarMenuBar.closeMenu': closeMenu,
2959
3118
  'TitleBarMenuBar.create': create,
2960
3119
  'TitleBarMenuBar.focus': wrapCommand(focus),
@@ -2976,7 +3135,6 @@ const commandMap = {
2976
3135
  'TitleBarMenuBar.handleKeyEnd': wrapCommand(handleKeyEnd),
2977
3136
  'TitleBarMenuBar.handleKeyEnter': wrapCommand(handleKeyEnter),
2978
3137
  'TitleBarMenuBar.handleKeyEscape': wrapCommand(handleKeyEscape),
2979
- 'TitleBarMenuBar.saveState': saveState,
2980
3138
  'TitleBarMenuBar.handleKeyHome': wrapCommand(handleKeyHome),
2981
3139
  'TitleBarMenuBar.handleKeySpace': wrapCommand(handleKeySpace),
2982
3140
  'TitleBarMenuBar.handleMenuClick': wrapCommand(handleMenuClick),
@@ -2985,9 +3143,10 @@ const commandMap = {
2985
3143
  'TitleBarMenuBar.handleMouseOver': wrapCommand(handleMouseOver),
2986
3144
  'TitleBarMenuBar.loadContent': wrapCommand(loadContent),
2987
3145
  'TitleBarMenuBar.render': doRender,
3146
+ 'TitleBarMenuBar.saveState': saveState,
3147
+ 'TitleBarMenuBar.terminate': terminate,
2988
3148
  'TitleBarMenuBar.toggleIndex': wrapCommand(toggleIndex),
2989
- 'TitleBarMenuBar.toggleMenu': wrapCommand(toggleMenu),
2990
- 'TitleBarMenuBar.terminate': terminate
3149
+ 'TitleBarMenuBar.toggleMenu': wrapCommand(toggleMenu)
2991
3150
  };
2992
3151
 
2993
3152
  const listen = async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/title-bar-worker",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "Title Bar Worker",
5
5
  "repository": {
6
6
  "type": "git",