@lvce-editor/extension-detail-view 5.4.0 → 5.7.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
@@ -11,10 +11,6 @@ npm ci &&
11
11
  npm test
12
12
  ```
13
13
 
14
- ## Gitpod
15
-
16
- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/lvce-editor/extension-detail-view)
17
-
18
14
  ## Credits
19
15
 
20
16
  The extension detail view is based on VSCode's extension detail view.
@@ -126,7 +126,7 @@ const schema = () => {
126
126
  const status = () => {
127
127
  return i18nString(Status);
128
128
  };
129
- const setColorTheme$3 = () => {
129
+ const setColorTheme$2 = () => {
130
130
  return i18nString(SetColorTheme$1);
131
131
  };
132
132
  const enable = () => {
@@ -326,16 +326,19 @@ const ClientY = 'event.clientY';
326
326
  const TargetHref = 'event.target.href';
327
327
  const TargetName = 'event.target.name';
328
328
 
329
+ const Script$1 = 2;
330
+
329
331
  const ExtensionDetailReadme = 20;
330
332
  const ExtensionDetailIconContextMenu$3 = 4091;
331
333
 
332
334
  const None$2 = 0;
333
335
 
334
- const DebugWorker = 55;
336
+ const Web$1 = 1;
337
+
335
338
  const ExtensionHostWorker = 44;
336
339
  const FileSystemWorker$1 = 209;
337
340
  const MarkdownWorker$1 = 300;
338
- const RendererWorker$1 = 1;
341
+ const RendererWorker = 1;
339
342
 
340
343
  const mergeClassNames = (...classNames) => {
341
344
  return classNames.filter(Boolean).join(' ');
@@ -358,8 +361,11 @@ const ButtonPrimary = 'ButtonPrimary';
358
361
  const Categories = 'Categories';
359
362
  const Category = 'Category';
360
363
  const Changelog$1 = 'Changelog';
364
+ const MaskIcon = 'MaskIcon';
365
+ const ResourceIcon = 'ResourceIcon';
361
366
  const Code$1 = 'Code';
362
367
  const DefaultMarkdown = 'DefaultMarkdown';
368
+ const MaskIconChevronUp = 'MaskIconChevronUp';
363
369
  const DefinitionListItem = 'DefinitionListItem';
364
370
  const DefinitionListItemHeading = 'DefinitionListItemHeading';
365
371
  const DefinitionListItemValue = 'DefinitionListItemValue';
@@ -567,15 +573,21 @@ const getCellCodeVirtualDom = (value, props) => {
567
573
  }, text(value)];
568
574
  };
569
575
 
576
+ const getTitleProps = title => {
577
+ if (title) {
578
+ return {
579
+ title
580
+ };
581
+ }
582
+ return {};
583
+ };
570
584
  const getCellLinkVirtualDom = (value, props) => {
571
585
  const tdClassName = props?.className ? `${TableCell} ${props.className}` : TableCell;
572
586
  return [{
573
587
  type: Td,
574
588
  className: tdClassName,
575
589
  childCount: 1,
576
- ...(props?.title ? {
577
- title: props.title
578
- } : {})
590
+ ...getTitleProps(props?.title)
579
591
  }, {
580
592
  type: A,
581
593
  className: Link$1,
@@ -1015,7 +1027,7 @@ const getFeatureVirtualDomHandler = featureName => {
1015
1027
  };
1016
1028
 
1017
1029
  const rpcs = Object.create(null);
1018
- const set$b = (id, rpc) => {
1030
+ const set$a = (id, rpc) => {
1019
1031
  rpcs[id] = rpc;
1020
1032
  };
1021
1033
  const get$3 = id => {
@@ -1037,7 +1049,7 @@ const create$7 = rpcId => {
1037
1049
  return rpc.invokeAndTransfer(method, ...params);
1038
1050
  },
1039
1051
  set(rpc) {
1040
- set$b(rpcId, rpc);
1052
+ set$a(rpcId, rpc);
1041
1053
  },
1042
1054
  async dispose() {
1043
1055
  const rpc = get$3(rpcId);
@@ -1563,7 +1575,7 @@ const create$4 = (method, params) => {
1563
1575
  };
1564
1576
  };
1565
1577
  const callbacks = Object.create(null);
1566
- const set$a = (id, fn) => {
1578
+ const set$9 = (id, fn) => {
1567
1579
  callbacks[id] = fn;
1568
1580
  };
1569
1581
  const get$2 = id => {
@@ -1582,7 +1594,7 @@ const registerPromise = () => {
1582
1594
  resolve,
1583
1595
  promise
1584
1596
  } = Promise.withResolvers();
1585
- set$a(id, resolve);
1597
+ set$9(id, resolve);
1586
1598
  return {
1587
1599
  id,
1588
1600
  promise
@@ -1927,7 +1939,7 @@ const send = (transport, method, ...params) => {
1927
1939
  const message = create$4(method, params);
1928
1940
  transport.send(message);
1929
1941
  };
1930
- const invoke$6 = (ipc, method, ...params) => {
1942
+ const invoke$5 = (ipc, method, ...params) => {
1931
1943
  return invokeHelper(ipc, method, params, false);
1932
1944
  };
1933
1945
  const invokeAndTransfer$4 = (ipc, method, ...params) => {
@@ -1966,7 +1978,7 @@ const createRpc = ipc => {
1966
1978
  send(ipc, method, ...params);
1967
1979
  },
1968
1980
  invoke(method, ...params) {
1969
- return invoke$6(ipc, method, ...params);
1981
+ return invoke$5(ipc, method, ...params);
1970
1982
  },
1971
1983
  invokeAndTransfer(method, ...params) {
1972
1984
  return invokeAndTransfer$4(ipc, method, ...params);
@@ -2076,104 +2088,104 @@ const createMockRpc = ({
2076
2088
  };
2077
2089
 
2078
2090
  const {
2079
- invoke: invoke$5,
2091
+ invoke: invoke$4,
2080
2092
  invokeAndTransfer: invokeAndTransfer$3,
2081
- set: set$9,
2082
- dispose: dispose$5
2093
+ set: set$8,
2094
+ dispose: dispose$4
2083
2095
  } = create$7(ExtensionHostWorker);
2084
2096
  const executeReferenceProvider = async (id, offset) => {
2085
2097
  // @ts-ignore
2086
- return invoke$5('ExtensionHostReference.executeReferenceProvider', id, offset);
2098
+ return invoke$4('ExtensionHostReference.executeReferenceProvider', id, offset);
2087
2099
  };
2088
2100
  const executeFileReferenceProvider = async id => {
2089
2101
  // @ts-ignore
2090
- return invoke$5('ExtensionHostReference.executeFileReferenceProvider', id);
2102
+ return invoke$4('ExtensionHostReference.executeFileReferenceProvider', id);
2091
2103
  };
2092
2104
  const getRuntimeStatus$2 = async extensionId => {
2093
2105
  // @ts-ignore
2094
- return invoke$5('ExtensionHost.getRuntimeStatus', extensionId);
2106
+ return invoke$4('ExtensionHost.getRuntimeStatus', extensionId);
2095
2107
  };
2096
- const registerMockRpc$3 = commandMap => {
2108
+ const registerMockRpc$2 = commandMap => {
2097
2109
  const mockRpc = createMockRpc({
2098
2110
  commandMap
2099
2111
  });
2100
- set$9(mockRpc);
2112
+ set$8(mockRpc);
2101
2113
  return mockRpc;
2102
2114
  };
2103
2115
 
2104
2116
  const ExtensionHost = {
2105
2117
  __proto__: null,
2106
- dispose: dispose$5,
2118
+ dispose: dispose$4,
2107
2119
  executeFileReferenceProvider,
2108
2120
  executeReferenceProvider,
2109
2121
  getRuntimeStatus: getRuntimeStatus$2,
2110
- invoke: invoke$5,
2122
+ invoke: invoke$4,
2111
2123
  invokeAndTransfer: invokeAndTransfer$3,
2112
- registerMockRpc: registerMockRpc$3,
2113
- set: set$9
2124
+ registerMockRpc: registerMockRpc$2,
2125
+ set: set$8
2114
2126
  };
2115
2127
 
2116
2128
  const {
2117
- invoke: invoke$4,
2129
+ invoke: invoke$3,
2118
2130
  invokeAndTransfer: invokeAndTransfer$2,
2119
- set: set$8,
2120
- dispose: dispose$4
2131
+ set: set$7,
2132
+ dispose: dispose$3
2121
2133
  } = create$7(FileSystemWorker$1);
2122
2134
  const remove = async dirent => {
2123
- return invoke$4('FileSystem.remove', dirent);
2135
+ return invoke$3('FileSystem.remove', dirent);
2124
2136
  };
2125
2137
  const readDirWithFileTypes = async uri => {
2126
- return invoke$4('FileSystem.readDirWithFileTypes', uri);
2138
+ return invoke$3('FileSystem.readDirWithFileTypes', uri);
2127
2139
  };
2128
2140
  const getPathSeparator = async root => {
2129
2141
  // @ts-ignore
2130
- return invoke$4('FileSystem.getPathSeparator', root);
2142
+ return invoke$3('FileSystem.getPathSeparator', root);
2131
2143
  };
2132
2144
  const getRealPath = async path => {
2133
- return invoke$4('FileSystem.getRealPath', path);
2145
+ return invoke$3('FileSystem.getRealPath', path);
2134
2146
  };
2135
2147
  const stat = async dirent => {
2136
- return invoke$4('FileSystem.stat', dirent);
2148
+ return invoke$3('FileSystem.stat', dirent);
2137
2149
  };
2138
2150
  const createFile = async uri => {
2139
- return invoke$4('FileSystem.writeFile', uri, '');
2151
+ return invoke$3('FileSystem.writeFile', uri, '');
2140
2152
  };
2141
- const readFile$3 = async uri => {
2142
- return invoke$4('FileSystem.readFile', uri);
2153
+ const readFile$2 = async uri => {
2154
+ return invoke$3('FileSystem.readFile', uri);
2143
2155
  };
2144
2156
  const writeFile = async (uri, content) => {
2145
- return invoke$4('FileSystem.writeFile', uri, content);
2157
+ return invoke$3('FileSystem.writeFile', uri, content);
2146
2158
  };
2147
2159
  const mkdir = async uri => {
2148
- return invoke$4('FileSystem.mkdir', uri);
2160
+ return invoke$3('FileSystem.mkdir', uri);
2149
2161
  };
2150
2162
  const rename = async (oldUri, newUri) => {
2151
- return invoke$4('FileSystem.rename', oldUri, newUri);
2163
+ return invoke$3('FileSystem.rename', oldUri, newUri);
2152
2164
  };
2153
2165
  const copy = async (oldUri, newUri) => {
2154
- return invoke$4('FileSystem.copy', oldUri, newUri);
2166
+ return invoke$3('FileSystem.copy', oldUri, newUri);
2155
2167
  };
2156
2168
  const exists$1 = async uri => {
2157
2169
  // @ts-ignore
2158
- return invoke$4('FileSystem.exists', uri);
2170
+ return invoke$3('FileSystem.exists', uri);
2159
2171
  };
2160
- const getFolderSize$2 = async uri => {
2172
+ const getFolderSize$1 = async uri => {
2161
2173
  // @ts-ignore
2162
- return invoke$4('FileSystem.getFolderSize', uri);
2174
+ return invoke$3('FileSystem.getFolderSize', uri);
2163
2175
  };
2164
2176
  const readFileAsBlob$1 = async uri => {
2165
2177
  // @ts-ignore
2166
- return invoke$4('FileSystem.readFileAsBlob', uri);
2178
+ return invoke$3('FileSystem.readFileAsBlob', uri);
2167
2179
  };
2168
2180
  const appendFile = async (uri, text) => {
2169
2181
  // @ts-ignore
2170
- return invoke$4('FileSystem.appendFile', uri, text);
2182
+ return invoke$3('FileSystem.appendFile', uri, text);
2171
2183
  };
2172
- const registerMockRpc$2 = commandMap => {
2184
+ const registerMockRpc$1 = commandMap => {
2173
2185
  const mockRpc = createMockRpc({
2174
2186
  commandMap
2175
2187
  });
2176
- set$8(mockRpc);
2188
+ set$7(mockRpc);
2177
2189
  return mockRpc;
2178
2190
  };
2179
2191
 
@@ -2182,417 +2194,131 @@ const FileSystemWorker = {
2182
2194
  appendFile,
2183
2195
  copy,
2184
2196
  createFile,
2185
- dispose: dispose$4,
2197
+ dispose: dispose$3,
2186
2198
  exists: exists$1,
2187
- getFolderSize: getFolderSize$2,
2199
+ getFolderSize: getFolderSize$1,
2188
2200
  getPathSeparator,
2189
2201
  getRealPath,
2190
- invoke: invoke$4,
2202
+ invoke: invoke$3,
2191
2203
  invokeAndTransfer: invokeAndTransfer$2,
2192
2204
  mkdir,
2193
2205
  readDirWithFileTypes,
2194
- readFile: readFile$3,
2206
+ readFile: readFile$2,
2195
2207
  readFileAsBlob: readFileAsBlob$1,
2196
- registerMockRpc: registerMockRpc$2,
2208
+ registerMockRpc: registerMockRpc$1,
2197
2209
  remove,
2198
2210
  rename,
2199
- set: set$8,
2211
+ set: set$7,
2200
2212
  stat,
2201
2213
  writeFile
2202
2214
  };
2203
2215
 
2204
2216
  const {
2205
- invoke: invoke$3,
2217
+ invoke: invoke$2,
2206
2218
  invokeAndTransfer: invokeAndTransfer$1,
2207
- set: set$7,
2208
- dispose: dispose$3
2219
+ set: set$6,
2220
+ dispose: dispose$2
2209
2221
  } = create$7(MarkdownWorker$1);
2210
2222
  const getVirtualDom$1 = async html => {
2211
2223
  // @ts-ignore
2212
- return invoke$3('Markdown.getVirtualDom', html);
2224
+ return invoke$2('Markdown.getVirtualDom', html);
2213
2225
  };
2214
2226
  const render$1 = async (markdown, options) => {
2215
2227
  // @ts-ignore
2216
- return invoke$3('Markdown.render', markdown, options);
2228
+ return invoke$2('Markdown.render', markdown, options);
2217
2229
  };
2218
- const registerMockRpc$1 = commandMap => {
2230
+ const registerMockRpc = commandMap => {
2219
2231
  const mockRpc = createMockRpc({
2220
2232
  commandMap
2221
2233
  });
2222
- set$7(mockRpc);
2234
+ set$6(mockRpc);
2223
2235
  return mockRpc;
2224
2236
  };
2225
2237
 
2226
2238
  const MarkdownWorker = {
2227
2239
  __proto__: null,
2228
- dispose: dispose$3,
2240
+ dispose: dispose$2,
2229
2241
  getVirtualDom: getVirtualDom$1,
2230
- invoke: invoke$3,
2242
+ invoke: invoke$2,
2231
2243
  invokeAndTransfer: invokeAndTransfer$1,
2232
- registerMockRpc: registerMockRpc$1,
2244
+ registerMockRpc,
2233
2245
  render: render$1,
2234
- set: set$7
2246
+ set: set$6
2235
2247
  };
2236
2248
 
2237
2249
  const {
2238
- invoke: invoke$2,
2250
+ invoke: invoke$1,
2239
2251
  invokeAndTransfer,
2240
- set: set$6,
2241
- dispose: dispose$2
2242
- } = create$7(RendererWorker$1);
2243
- const searchFileHtml = async uri => {
2244
- return invoke$2('ExtensionHost.searchFileWithHtml', uri);
2245
- };
2246
- const getFilePathElectron = async file => {
2247
- return invoke$2('FileSystemHandle.getFilePathElectron', file);
2248
- };
2249
- const showContextMenu = async (x, y, id, ...args) => {
2250
- return invoke$2('ContextMenu.show', x, y, id, ...args);
2251
- };
2252
- const getElectronVersion = async () => {
2253
- return invoke$2('Process.getElectronVersion');
2254
- };
2255
- const applyBulkReplacement = async bulkEdits => {
2256
- await invoke$2('BulkReplacement.applyBulkReplacement', bulkEdits);
2257
- };
2258
- const setColorTheme$2 = async id => {
2252
+ set: set$5} = create$7(RendererWorker);
2253
+ const setColorTheme$1 = async id => {
2259
2254
  // @ts-ignore
2260
- return invoke$2(/* ColorTheme.setColorTheme */'ColorTheme.setColorTheme', /* colorThemeId */id);
2261
- };
2262
- const getNodeVersion = async () => {
2263
- return invoke$2('Process.getNodeVersion');
2264
- };
2265
- const getChromeVersion = async () => {
2266
- return invoke$2('Process.getChromeVersion');
2267
- };
2268
- const getV8Version = async () => {
2269
- return invoke$2('Process.getV8Version');
2270
- };
2271
- const getFileHandles = async fileIds => {
2272
- const files = await invoke$2('FileSystemHandle.getFileHandles', fileIds);
2273
- return files;
2255
+ return invoke$1(/* ColorTheme.setColorTheme */'ColorTheme.setColorTheme', /* colorThemeId */id);
2274
2256
  };
2275
- const setWorkspacePath = async path => {
2276
- await invoke$2('Workspace.setPath', path);
2277
- };
2278
- const registerWebViewInterceptor = async (id, port) => {
2279
- await invokeAndTransfer('WebView.registerInterceptor', id, port);
2280
- };
2281
- const unregisterWebViewInterceptor = async id => {
2282
- await invoke$2('WebView.unregisterInterceptor', id);
2283
- };
2284
- const sendMessagePortToEditorWorker = async (port, rpcId) => {
2285
- const command = 'HandleMessagePort.handleMessagePort';
2286
- // @ts-ignore
2287
- await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToEditorWorker', port, command, rpcId);
2288
- };
2289
- const sendMessagePortToErrorWorker = async (port, rpcId) => {
2290
- const command = 'Errors.handleMessagePort';
2291
- // @ts-ignore
2292
- await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToErrorWorker', port, command, rpcId);
2293
- };
2294
- const sendMessagePortToMarkdownWorker$2 = async (port, rpcId) => {
2257
+ const sendMessagePortToMarkdownWorker$1 = async (port, rpcId) => {
2295
2258
  const command = 'Markdown.handleMessagePort';
2296
2259
  // @ts-ignore
2297
2260
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToMarkdownWorker', port, command, rpcId);
2298
2261
  };
2299
- const sendMessagePortToIconThemeWorker = async (port, rpcId) => {
2300
- const command = 'IconTheme.handleMessagePort';
2301
- // @ts-ignore
2302
- await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToIconThemeWorker', port, command, rpcId);
2303
- };
2304
- const sendMessagePortToFileSystemWorker$2 = async (port, rpcId) => {
2262
+ const sendMessagePortToFileSystemWorker$1 = async (port, rpcId) => {
2305
2263
  const command = 'FileSystem.handleMessagePort';
2306
2264
  // @ts-ignore
2307
2265
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToFileSystemWorker', port, command, rpcId);
2308
2266
  };
2309
- const readFile$2 = async uri => {
2310
- return invoke$2('FileSystem.readFile', uri);
2311
- };
2312
- const getWebViewSecret = async key => {
2267
+ const disableExtension$1 = async id => {
2313
2268
  // @ts-ignore
2314
- return invoke$2('WebView.getSecret', key);
2315
- };
2316
- const setWebViewPort = async (uid, port, origin, portType) => {
2317
- return invokeAndTransfer('WebView.setPort', uid, port, origin, portType);
2318
- };
2319
- const setFocus = key => {
2320
- return invoke$2('Focus.setFocus', key);
2321
- };
2322
- const getFileIcon = async options => {
2323
- return invoke$2('IconTheme.getFileIcon', options);
2269
+ return invoke$1('ExtensionManagement.disable', id);
2324
2270
  };
2325
- const getColorThemeNames = async () => {
2326
- return invoke$2('ColorTheme.getColorThemeNames');
2327
- };
2328
- const disableExtension$2 = async id => {
2329
- // @ts-ignore
2330
- return invoke$2('ExtensionManagement.disable', id);
2331
- };
2332
- const enableExtension$2 = async id => {
2333
- // @ts-ignore
2334
- return invoke$2('ExtensionManagement.enable', id);
2335
- };
2336
- const handleDebugChange = async params => {
2271
+ const enableExtension$1 = async id => {
2337
2272
  // @ts-ignore
2338
- return invoke$2('Run And Debug.handleChange', params);
2273
+ return invoke$1('ExtensionManagement.enable', id);
2339
2274
  };
2340
- const getFolderIcon = async options => {
2341
- return invoke$2('IconTheme.getFolderIcon', options);
2342
- };
2343
- const closeWidget = async widgetId => {
2344
- return invoke$2('Viewlet.closeWidget', widgetId);
2345
- };
2346
- const sendMessagePortToExtensionHostWorker$2 = async (port, rpcId = 0) => {
2275
+ const sendMessagePortToExtensionHostWorker$1 = async (port, rpcId = 0) => {
2347
2276
  const command = 'HandleMessagePort.handleMessagePort2';
2348
2277
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
2349
2278
  };
2350
- const sendMessagePortToSearchProcess = async port => {
2351
- await invokeAndTransfer('SendMessagePortToElectron.sendMessagePortToElectron', port, 'HandleMessagePortForSearchProcess.handleMessagePortForSearchProcess');
2352
- };
2353
2279
  const confirm = async (message, options) => {
2354
2280
  // @ts-ignore
2355
- const result = await invoke$2('ConfirmPrompt.prompt', message, options);
2281
+ const result = await invoke$1('ConfirmPrompt.prompt', message, options);
2356
2282
  return result;
2357
2283
  };
2358
- const getRecentlyOpened = async () => {
2359
- return invoke$2(/* RecentlyOpened.getRecentlyOpened */'RecentlyOpened.getRecentlyOpened');
2360
- };
2361
- const getKeyBindings = async () => {
2362
- return invoke$2('KeyBindingsInitial.getKeyBindings');
2284
+ const writeClipBoardText = async text => {
2285
+ await invoke$1('ClipBoard.writeText', /* text */text);
2363
2286
  };
2364
- const writeClipBoardText$1 = async text => {
2365
- await invoke$2('ClipBoard.writeText', /* text */text);
2366
- };
2367
- const writeClipBoardImage$1 = async blob => {
2368
- // @ts-ignore
2369
- await invoke$2('ClipBoard.writeImage', /* text */blob);
2370
- };
2371
- const searchFileMemory = async uri => {
2287
+ const writeClipBoardImage = async blob => {
2372
2288
  // @ts-ignore
2373
- return invoke$2('ExtensionHost.searchFileWithMemory', uri);
2374
- };
2375
- const searchFileFetch = async uri => {
2376
- return invoke$2('ExtensionHost.searchFileWithFetch', uri);
2377
- };
2378
- const showMessageBox = async options => {
2379
- return invoke$2('ElectronDialog.showMessageBox', options);
2380
- };
2381
- const handleDebugResumed = async params => {
2382
- await invoke$2('Run And Debug.handleResumed', params);
2383
- };
2384
- const openWidget = async name => {
2385
- await invoke$2('Viewlet.openWidget', name);
2386
- };
2387
- const getIcons = async requests => {
2388
- const icons = await invoke$2('IconTheme.getIcons', requests);
2389
- return icons;
2390
- };
2391
- const activateByEvent = event => {
2392
- return invoke$2('ExtensionHostManagement.activateByEvent', event);
2289
+ await invoke$1('ClipBoard.writeImage', /* text */blob);
2393
2290
  };
2394
- const setAdditionalFocus = focusKey => {
2395
- // @ts-ignore
2396
- return invoke$2('Focus.setAdditionalFocus', focusKey);
2291
+ const getAllExtensions$1 = async () => {
2292
+ return invoke$1('ExtensionManagement.getAllExtensions');
2397
2293
  };
2398
- const getActiveEditorId = () => {
2294
+ const getExtension$2 = async id => {
2399
2295
  // @ts-ignore
2400
- return invoke$2('GetActiveEditor.getActiveEditorId');
2401
- };
2402
- const getWorkspacePath = () => {
2403
- return invoke$2('Workspace.getPath');
2296
+ return invoke$1('ExtensionManagement.getExtension', id);
2404
2297
  };
2405
- const sendMessagePortToRendererProcess = async port => {
2406
- const command = 'HandleMessagePort.handleMessagePort';
2298
+ const openNativeFolder = async uri => {
2407
2299
  // @ts-ignore
2408
- await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToRendererProcess', port, command, DebugWorker);
2409
- };
2410
- const getPreference = async key => {
2411
- return await invoke$2('Preferences.get', key);
2300
+ await invoke$1('OpenNativeFolder.openNativeFolder', uri);
2412
2301
  };
2413
- const getAllExtensions$2 = async () => {
2414
- return invoke$2('ExtensionManagement.getAllExtensions');
2302
+ const uninstallExtension = async id => {
2303
+ return invoke$1('ExtensionManagement.uninstall', id);
2415
2304
  };
2416
- const rerenderEditor = async key => {
2305
+ const openExtensionSearch$1 = async () => {
2417
2306
  // @ts-ignore
2418
- return invoke$2('Editor.rerender', key);
2419
- };
2420
- const handleDebugPaused = async params => {
2421
- await invoke$2('Run And Debug.handlePaused', params);
2422
- };
2423
- const openUri = async (uri, focus, options) => {
2424
- await invoke$2('Main.openUri', uri, focus, options);
2307
+ return invoke$1('SideBar.openViewlet', 'Extensions');
2425
2308
  };
2426
- const sendMessagePortToSyntaxHighlightingWorker = async port => {
2427
- await invokeAndTransfer(
2309
+ const setExtensionsSearchValue = async searchValue => {
2428
2310
  // @ts-ignore
2429
- 'SendMessagePortToSyntaxHighlightingWorker.sendMessagePortToSyntaxHighlightingWorker', port, 'HandleMessagePort.handleMessagePort2');
2311
+ return invoke$1('Extensions.handleInput', searchValue, Script$1);
2430
2312
  };
2431
- const handleDebugScriptParsed = async script => {
2432
- await invoke$2('Run And Debug.handleScriptParsed', script);
2433
- };
2434
- const getWindowId = async () => {
2435
- return invoke$2('GetWindowId.getWindowId');
2436
- };
2437
- const getBlob = async uri => {
2313
+ const openUrl$1 = async uri => {
2438
2314
  // @ts-ignore
2439
- return invoke$2('FileSystem.getBlob', uri);
2440
- };
2441
- const getExtensionCommands = async () => {
2442
- return invoke$2('ExtensionHost.getCommands');
2443
- };
2444
- const showErrorDialog = async errorInfo => {
2445
- // @ts-ignore
2446
- await invoke$2('ErrorHandling.showErrorDialog', errorInfo);
2447
- };
2448
- const getFolderSize$1 = async uri => {
2449
- // @ts-ignore
2450
- return await invoke$2('FileSystem.getFolderSize', uri);
2451
- };
2452
- const getExtension$3 = async id => {
2453
- // @ts-ignore
2454
- return invoke$2('ExtensionManagement.getExtension', id);
2455
- };
2456
- const getMarkdownDom = async html => {
2457
- // @ts-ignore
2458
- return invoke$2('Markdown.getVirtualDom', html);
2459
- };
2460
- const renderMarkdown$1 = async (markdown, options) => {
2461
- // @ts-ignore
2462
- return invoke$2('Markdown.renderMarkdown', markdown, options);
2463
- };
2464
- const openNativeFolder$1 = async uri => {
2465
- // @ts-ignore
2466
- await invoke$2('OpenNativeFolder.openNativeFolder', uri);
2467
- };
2468
- const uninstallExtension$1 = async id => {
2469
- return invoke$2('ExtensionManagement.uninstall', id);
2470
- };
2471
- const installExtension = async id => {
2472
- // @ts-ignore
2473
- return invoke$2('ExtensionManagement.install', id);
2474
- };
2475
- const openExtensionSearch$2 = async () => {
2476
- // @ts-ignore
2477
- return invoke$2('SideBar.openViewlet', 'Extensions');
2478
- };
2479
- const setExtensionsSearchValue$1 = async searchValue => {
2480
- // @ts-ignore
2481
- return invoke$2('Extensions.handleInput', searchValue);
2482
- };
2483
- const openExternal = async uri => {
2484
- // @ts-ignore
2485
- await invoke$2('Open.openExternal', uri);
2486
- };
2487
- const openUrl$2 = async uri => {
2488
- // @ts-ignore
2489
- await invoke$2('Open.openUrl', uri);
2490
- };
2491
- const getAllPreferences = async () => {
2492
- // @ts-ignore
2493
- return invoke$2('Preferences.getAll');
2494
- };
2495
- const showSaveFilePicker = async () => {
2496
- // @ts-ignore
2497
- return invoke$2('FilePicker.showSaveFilePicker');
2498
- };
2499
- const getLogsDir = async () => {
2500
- // @ts-ignore
2501
- return invoke$2('PlatformPaths.getLogsDir');
2502
- };
2503
- const registerMockRpc = commandMap => {
2504
- const mockRpc = createMockRpc({
2505
- commandMap
2506
- });
2507
- set$6(mockRpc);
2508
- return mockRpc;
2509
- };
2510
-
2511
- const RendererWorker = {
2512
- __proto__: null,
2513
- activateByEvent,
2514
- applyBulkReplacement,
2515
- closeWidget,
2516
- confirm,
2517
- disableExtension: disableExtension$2,
2518
- dispose: dispose$2,
2519
- enableExtension: enableExtension$2,
2520
- getActiveEditorId,
2521
- getAllExtensions: getAllExtensions$2,
2522
- getAllPreferences,
2523
- getBlob,
2524
- getChromeVersion,
2525
- getColorThemeNames,
2526
- getElectronVersion,
2527
- getExtension: getExtension$3,
2528
- getExtensionCommands,
2529
- getFileHandles,
2530
- getFileIcon,
2531
- getFilePathElectron,
2532
- getFolderIcon,
2533
- getFolderSize: getFolderSize$1,
2534
- getIcons,
2535
- getKeyBindings,
2536
- getLogsDir,
2537
- getMarkdownDom,
2538
- getNodeVersion,
2539
- getPreference,
2540
- getRecentlyOpened,
2541
- getV8Version,
2542
- getWebViewSecret,
2543
- getWindowId,
2544
- getWorkspacePath,
2545
- handleDebugChange,
2546
- handleDebugPaused,
2547
- handleDebugResumed,
2548
- handleDebugScriptParsed,
2549
- installExtension,
2550
- invoke: invoke$2,
2551
- invokeAndTransfer,
2552
- openExtensionSearch: openExtensionSearch$2,
2553
- openExternal,
2554
- openNativeFolder: openNativeFolder$1,
2555
- openUri,
2556
- openUrl: openUrl$2,
2557
- openWidget,
2558
- readFile: readFile$2,
2559
- registerMockRpc,
2560
- registerWebViewInterceptor,
2561
- renderMarkdown: renderMarkdown$1,
2562
- rerenderEditor,
2563
- searchFileFetch,
2564
- searchFileHtml,
2565
- searchFileMemory,
2566
- sendMessagePortToEditorWorker,
2567
- sendMessagePortToErrorWorker,
2568
- sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$2,
2569
- sendMessagePortToFileSystemWorker: sendMessagePortToFileSystemWorker$2,
2570
- sendMessagePortToIconThemeWorker,
2571
- sendMessagePortToMarkdownWorker: sendMessagePortToMarkdownWorker$2,
2572
- sendMessagePortToRendererProcess,
2573
- sendMessagePortToSearchProcess,
2574
- sendMessagePortToSyntaxHighlightingWorker,
2575
- set: set$6,
2576
- setAdditionalFocus,
2577
- setColorTheme: setColorTheme$2,
2578
- setExtensionsSearchValue: setExtensionsSearchValue$1,
2579
- setFocus,
2580
- setWebViewPort,
2581
- setWorkspacePath,
2582
- showContextMenu,
2583
- showErrorDialog,
2584
- showMessageBox,
2585
- showSaveFilePicker,
2586
- uninstallExtension: uninstallExtension$1,
2587
- unregisterWebViewInterceptor,
2588
- writeClipBoardImage: writeClipBoardImage$1,
2589
- writeClipBoardText: writeClipBoardText$1
2315
+ await invoke$1('Open.openUrl', uri);
2590
2316
  };
2591
2317
 
2592
2318
  /* eslint-disable unicorn/prefer-export-from */
2593
2319
 
2594
2320
  const {
2595
- set: set$5,
2321
+ set: set$4,
2596
2322
  getRuntimeStatus: getRuntimeStatus$1} = ExtensionHost;
2597
2323
 
2598
2324
  const getRuntimeStatus = async extensionId => {
@@ -2816,7 +2542,7 @@ const getScrollToTopVirtualDom = scrollToTopButtonEnabled => {
2816
2542
  name: ScrollToTop
2817
2543
  }, {
2818
2544
  type: Div,
2819
- className: 'MaskIcon MaskIconChevronUp',
2545
+ className: mergeClassNames(MaskIcon, MaskIconChevronUp),
2820
2546
  childCount: 0,
2821
2547
  role: None$3
2822
2548
  }];
@@ -2825,7 +2551,7 @@ const getScrollToTopVirtualDom = scrollToTopButtonEnabled => {
2825
2551
  /* eslint-disable unicorn/prefer-export-from */
2826
2552
 
2827
2553
  const {
2828
- set: set$4,
2554
+ set: set$3,
2829
2555
  getVirtualDom,
2830
2556
  render} = MarkdownWorker;
2831
2557
 
@@ -2954,7 +2680,7 @@ const get$1 = async key => {
2954
2680
  const text = await response?.text();
2955
2681
  return text || '';
2956
2682
  };
2957
- const set$3 = async (key, value) => {
2683
+ const set$2 = async (key, value) => {
2958
2684
  const cache = await getCache(cacheName);
2959
2685
  await cache.put(key, new Response(value, {
2960
2686
  headers: {
@@ -2972,7 +2698,7 @@ const renderMarkdownCached = async (markdown, options) => {
2972
2698
  return value; // TODO validate if it's valid
2973
2699
  }
2974
2700
  const html = await render(markdown, options);
2975
- await set$3(cacheKey, html);
2701
+ await set$2(cacheKey, html);
2976
2702
  return html;
2977
2703
  };
2978
2704
 
@@ -3280,27 +3006,6 @@ const terminate = () => {
3280
3006
  globalThis.close();
3281
3007
  };
3282
3008
 
3283
- /* eslint-disable unicorn/prefer-export-from */
3284
-
3285
- const {
3286
- disableExtension: disableExtension$1,
3287
- enableExtension: enableExtension$1,
3288
- getAllExtensions: getAllExtensions$1,
3289
- getExtension: getExtension$2,
3290
- invoke: invoke$1,
3291
- openExtensionSearch: openExtensionSearch$1,
3292
- openNativeFolder,
3293
- openUrl: openUrl$1,
3294
- sendMessagePortToExtensionHostWorker: sendMessagePortToExtensionHostWorker$1,
3295
- sendMessagePortToFileSystemWorker: sendMessagePortToFileSystemWorker$1,
3296
- sendMessagePortToMarkdownWorker: sendMessagePortToMarkdownWorker$1,
3297
- set: set$2,
3298
- setColorTheme: setColorTheme$1,
3299
- setExtensionsSearchValue,
3300
- uninstallExtension,
3301
- writeClipBoardImage,
3302
- writeClipBoardText} = RendererWorker;
3303
-
3304
3009
  const writeClipboardImage = async blob => {
3305
3010
  await writeClipBoardImage(blob);
3306
3011
  };
@@ -3365,13 +3070,9 @@ const {
3365
3070
 
3366
3071
  const create = (uid, uri, x, y, width, height, platform, assetDir) => {
3367
3072
  const state = {
3368
- wasActivatedByEvent: '',
3369
- activationTime: 0,
3370
- importTime: 0,
3371
- disabled: false,
3372
- status: 0,
3373
- uid,
3073
+ activationEntries: [],
3374
3074
  activationEvents: [],
3075
+ activationTime: 0,
3375
3076
  assetDir: assetDir || '',
3376
3077
  badge: '',
3377
3078
  baseUrl: '',
@@ -3380,52 +3081,57 @@ const create = (uid, uri, x, y, width, height, platform, assetDir) => {
3380
3081
  categories: [],
3381
3082
  changelogScrollTop: 0,
3382
3083
  changelogVirtualDom: [],
3383
- extensionUri: '',
3384
3084
  commands: [],
3385
- hasReadme: false,
3386
3085
  description: '',
3387
3086
  detailsVirtualDom: [],
3087
+ disabled: false,
3388
3088
  displaySize: '',
3389
3089
  downloadCount: 'n/a',
3390
- installationEntries: [],
3391
3090
  extension: {},
3392
3091
  extensionId: '',
3092
+ extensionUri: '',
3393
3093
  extensionVersion: '',
3394
3094
  features: [],
3395
3095
  featuresVirtualDom: [],
3396
3096
  focus: 0,
3397
3097
  folderSize: 0,
3398
3098
  hasColorTheme: false,
3099
+ hasReadme: false,
3399
3100
  iconSrc: '',
3101
+ importTime: 0,
3102
+ installationEntries: [],
3400
3103
  jsonValidation: [],
3104
+ locationProtocol: '',
3105
+ marketplaceEntries: [],
3401
3106
  name: '',
3107
+ paddingLeft: 0,
3108
+ paddingRight: 0,
3402
3109
  platform,
3403
3110
  programmingLanguages: [],
3404
3111
  rating: 'n/a',
3405
3112
  readmeScrollTop: 0,
3113
+ readmeUrl: '',
3406
3114
  resources: [],
3407
3115
  scrollSource: 0,
3408
3116
  scrollToTopButtonEnabled: false,
3409
- marketplaceEntries: [],
3410
3117
  selectedFeature: '',
3411
3118
  selectedTab: '',
3412
3119
  settings: [],
3413
3120
  settingsButtonEnabled: false,
3414
3121
  showAdditionalDetailsBreakpoint: 700,
3122
+ showSideBar: true,
3123
+ sideBarWidth: 0,
3415
3124
  sizeOnDisk: 0,
3416
3125
  sizeValue: 0,
3126
+ status: 0,
3417
3127
  tabs: [],
3418
3128
  themesMarkdownDom: [],
3129
+ uid,
3419
3130
  uri,
3131
+ wasActivatedByEvent: '',
3420
3132
  webViews: [],
3421
3133
  width,
3422
- readmeUrl: '',
3423
- paddingLeft: 0,
3424
- paddingRight: 0,
3425
- showSideBar: true,
3426
- sideBarWidth: 0,
3427
- locationProtocol: '',
3428
- activationEntries: []
3134
+ showSizeLink: false
3429
3135
  };
3430
3136
  set(uid, state, state);
3431
3137
  };
@@ -3439,7 +3145,7 @@ const isEqual$2 = (oldState, newState) => {
3439
3145
  };
3440
3146
 
3441
3147
  const isEqual$1 = (oldState, newState) => {
3442
- return oldState.activationEvents === newState.activationEvents && oldState.badge === newState.badge && oldState.buttons === newState.buttons && oldState.categories === newState.categories && oldState.changelogVirtualDom === newState.changelogVirtualDom && oldState.commands === newState.commands && oldState.description === newState.description && oldState.detailsVirtualDom === newState.detailsVirtualDom && oldState.disabled === newState.disabled && oldState.displaySize === newState.displaySize && oldState.extensionId === newState.extensionId && oldState.extensionVersion === newState.extensionVersion && oldState.features === newState.features && oldState.jsonValidation === newState.jsonValidation && oldState.resources === newState.resources && oldState.selectedFeature === newState.selectedFeature && oldState.selectedTab === newState.selectedTab && oldState.settings === newState.settings && oldState.showSideBar === newState.showSideBar && oldState.sizeValue === newState.sizeValue && oldState.themesMarkdownDom === newState.themesMarkdownDom && oldState.webViews === newState.webViews;
3148
+ return oldState.activationEvents === newState.activationEvents && oldState.badge === newState.badge && oldState.buttons === newState.buttons && oldState.categories === newState.categories && oldState.changelogVirtualDom === newState.changelogVirtualDom && oldState.commands === newState.commands && oldState.description === newState.description && oldState.detailsVirtualDom === newState.detailsVirtualDom && oldState.disabled === newState.disabled && oldState.displaySize === newState.displaySize && oldState.extensionId === newState.extensionId && oldState.extensionVersion === newState.extensionVersion && oldState.features === newState.features && oldState.installationEntries === newState.installationEntries && oldState.jsonValidation === newState.jsonValidation && oldState.resources === newState.resources && oldState.selectedFeature === newState.selectedFeature && oldState.selectedTab === newState.selectedTab && oldState.settings === newState.settings && oldState.showSideBar === newState.showSideBar && oldState.sizeValue === newState.sizeValue && oldState.themesMarkdownDom === newState.themesMarkdownDom && oldState.webViews === newState.webViews;
3443
3149
  };
3444
3150
 
3445
3151
  const User = 1;
@@ -3601,6 +3307,10 @@ const handleAdditionalDetailContextMenu = state => {
3601
3307
  return state;
3602
3308
  };
3603
3309
 
3310
+ const getCategorySearchValue = categoryId => {
3311
+ return `@category:"${categoryId}"`;
3312
+ };
3313
+
3604
3314
  const openExtensionSearch = async searchValue => {
3605
3315
  await openExtensionSearch$1();
3606
3316
  await setExtensionsSearchValue(searchValue);
@@ -3610,7 +3320,7 @@ const handleClickCategory = async (state, categoryId) => {
3610
3320
  if (!categoryId) {
3611
3321
  return state;
3612
3322
  }
3613
- const searchValue = `@category:"${categoryId}"`;
3323
+ const searchValue = getCategorySearchValue(categoryId);
3614
3324
  await openExtensionSearch(searchValue);
3615
3325
  return state;
3616
3326
  };
@@ -3654,7 +3364,7 @@ const getExtension = async (id, platform) => {
3654
3364
 
3655
3365
  const getExtensionDetailButtons = (hasColorTheme, isBuiltin, isDisabled) => {
3656
3366
  const allActions = [{
3657
- label: setColorTheme$3(),
3367
+ label: setColorTheme$2(),
3658
3368
  onClick: HandleClickSetColorTheme,
3659
3369
  enabled: hasColorTheme,
3660
3370
  name: SetColorTheme
@@ -3864,7 +3574,7 @@ const handleReadmeClick = async (state, nodeName, href) => {
3864
3574
  }
3865
3575
  // TODO what to do about relative links? open them in editor?
3866
3576
  // TODO what to do about mail links?
3867
- await openUrl$2(href);
3577
+ await openUrl$1(href);
3868
3578
  // TODO check node name and href
3869
3579
  return state;
3870
3580
  };
@@ -4057,6 +3767,53 @@ const handleTabsClick = (state, name) => {
4057
3767
  return selectTab(state, name);
4058
3768
  };
4059
3769
 
3770
+ const getSizeEntries = (showSizeLink, displaySize, extensionUri) => {
3771
+ if (!showSizeLink) {
3772
+ return [];
3773
+ }
3774
+ return [{
3775
+ key: size(),
3776
+ value: displaySize,
3777
+ onClick: HandleClickSize,
3778
+ title: extensionUri
3779
+ }];
3780
+ };
3781
+
3782
+ const getInstallationEntries = (displaySize, extensionId, extensionVersion, extensionUri, showSizeLink) => {
3783
+ const entries = [{
3784
+ key: identifier(),
3785
+ value: extensionId,
3786
+ odd: true,
3787
+ code: true
3788
+ }, {
3789
+ key: version(),
3790
+ value: extensionVersion,
3791
+ code: true
3792
+ }, {
3793
+ key: lastUpdated(),
3794
+ value: 'n/a',
3795
+ // TODO get this from somewhere
3796
+ odd: true
3797
+ }, ...getSizeEntries(showSizeLink, displaySize, extensionUri)];
3798
+ return entries;
3799
+ };
3800
+
3801
+ const hideSizeLink = state => {
3802
+ const {
3803
+ displaySize,
3804
+ extensionId,
3805
+ extensionVersion,
3806
+ extensionUri
3807
+ } = state;
3808
+ const newShowSizeLink = false;
3809
+ const installationEntries = getInstallationEntries(displaySize, extensionId, extensionVersion, extensionUri, newShowSizeLink);
3810
+ return {
3811
+ ...state,
3812
+ installationEntries,
3813
+ showSizeLink: newShowSizeLink
3814
+ };
3815
+ };
3816
+
4060
3817
  const sendMessagePortToExtensionHostWorker = async port => {
4061
3818
  await sendMessagePortToExtensionHostWorker$1(port, 0);
4062
3819
  };
@@ -4075,7 +3832,7 @@ const createExtensionHostWorkerRpc = async () => {
4075
3832
 
4076
3833
  const initializeExtensionHostWorker = async () => {
4077
3834
  const rpc = await createExtensionHostWorkerRpc();
4078
- set$5(rpc);
3835
+ set$4(rpc);
4079
3836
  };
4080
3837
 
4081
3838
  const sendMessagePortToFileSystemWorker = async port => {
@@ -4117,7 +3874,7 @@ const createMarkdownWorkerRpc = async () => {
4117
3874
 
4118
3875
  const initializeMarkdownWorker = async () => {
4119
3876
  const rpc = await createMarkdownWorkerRpc();
4120
- set$4(rpc);
3877
+ set$3(rpc);
4121
3878
  };
4122
3879
 
4123
3880
  const initialize = async () => {
@@ -4508,30 +4265,6 @@ const getFolderSize = async uri => {
4508
4265
  }
4509
4266
  };
4510
4267
 
4511
- const getInstallationEntries = (displaySize, extensionId, extensionVersion, extensionUri) => {
4512
- const entries = [{
4513
- key: identifier(),
4514
- value: extensionId,
4515
- odd: true,
4516
- code: true
4517
- }, {
4518
- key: version(),
4519
- value: extensionVersion,
4520
- code: true
4521
- }, {
4522
- key: lastUpdated(),
4523
- value: 'n/a',
4524
- // TODO get this from somewhere
4525
- odd: true
4526
- }, {
4527
- key: size(),
4528
- value: displaySize,
4529
- onClick: HandleClickSize,
4530
- title: extensionUri
4531
- }];
4532
- return entries;
4533
- };
4534
-
4535
4268
  const getMarketplaceEntries = isBuiltin => {
4536
4269
  if (isBuiltin) {
4537
4270
  return [];
@@ -4546,6 +4279,11 @@ const getMarketplaceEntries = isBuiltin => {
4546
4279
  }];
4547
4280
  };
4548
4281
 
4282
+ const getLicenseLink = extension => {
4283
+ // TODO
4284
+ return '#';
4285
+ };
4286
+
4549
4287
  const getRepositoryLinkRaw = extension => {
4550
4288
  if (extension && hasProperty(extension, 'repository') && typeof extension.repository === 'string') {
4551
4289
  return extension.repository; // TODO watch out for javascript: or other invalid links or path traversal
@@ -4573,36 +4311,41 @@ const getResources = (isBuiltin, extension) => {
4573
4311
  return [];
4574
4312
  }
4575
4313
  const repositoryLink = getRepositoryLink(extension);
4314
+ const licenseLink = getLicenseLink();
4576
4315
  // TODO
4577
4316
  return [{
4578
4317
  label: marketplace(),
4579
- url: '#'
4318
+ url: '#',
4319
+ icon: 'LinkExternal'
4580
4320
  }, {
4581
4321
  label: issues(),
4582
- url: '#'
4322
+ url: '#',
4323
+ icon: 'LinkExternal'
4583
4324
  }, {
4584
4325
  label: repository(),
4585
- url: repositoryLink
4326
+ url: repositoryLink,
4327
+ icon: 'Repo'
4586
4328
  }, {
4587
4329
  label: license(),
4588
- url: '#'
4330
+ url: licenseLink,
4331
+ icon: 'LinkExternal'
4589
4332
  }];
4590
4333
  };
4591
4334
 
4592
- const loadSideBarContent = async (extensionId, extensionVersion, extensionUri, isBuiltin, extension) => {
4335
+ const loadSideBarContent = async (extensionId, extensionVersion, extensionUri, isBuiltin, extension, showSizeLink) => {
4593
4336
  const folderSize = await getFolderSize(extensionUri);
4594
4337
  const displaySize = getDisplaySize(folderSize);
4595
- const installationEntries = getInstallationEntries(displaySize, extensionId, extensionVersion, extensionUri);
4338
+ const installationEntries = getInstallationEntries(displaySize, extensionId, extensionVersion, extensionUri, showSizeLink);
4596
4339
  const marketplaceEntries = getMarketplaceEntries(isBuiltin);
4597
4340
  const categories = getCategories(extension);
4598
4341
  const resources = getResources(isBuiltin, extension);
4599
4342
  return {
4343
+ categories,
4344
+ displaySize,
4345
+ folderSize,
4600
4346
  installationEntries,
4601
4347
  marketplaceEntries,
4602
- displaySize,
4603
- categories,
4604
- resources,
4605
- folderSize
4348
+ resources
4606
4349
  };
4607
4350
  };
4608
4351
 
@@ -4702,6 +4445,7 @@ const loadContent = async (state, platform, savedState, isTest = false) => {
4702
4445
  const tabs = getTabs(selectedTab, hasReadme, hasFeatures, hasChangelog);
4703
4446
  const enabledTabs = tabs.filter(tab => tab.enabled);
4704
4447
  const sizeValue = getViewletSize(width || 0);
4448
+ const showSizeLink = platform !== Web$1;
4705
4449
  const {
4706
4450
  installationEntries,
4707
4451
  marketplaceEntries,
@@ -4709,7 +4453,7 @@ const loadContent = async (state, platform, savedState, isTest = false) => {
4709
4453
  categories,
4710
4454
  resources,
4711
4455
  folderSize
4712
- } = await loadSideBarContent(extensionId, extensionVersion, extensionUri, isBuiltin, extension);
4456
+ } = await loadSideBarContent(extensionId, extensionVersion, extensionUri, isBuiltin, extension, showSizeLink);
4713
4457
  const padding = getPadding(width);
4714
4458
  const sideBarWidth = getSideBarWidth(width);
4715
4459
  const showSideBar = sideBarWidth > 0;
@@ -4735,6 +4479,7 @@ const loadContent = async (state, platform, savedState, isTest = false) => {
4735
4479
  hasReadme,
4736
4480
  iconSrc,
4737
4481
  installationEntries,
4482
+ locationProtocol,
4738
4483
  marketplaceEntries,
4739
4484
  name,
4740
4485
  paddingLeft: padding,
@@ -4747,11 +4492,11 @@ const loadContent = async (state, platform, savedState, isTest = false) => {
4747
4492
  scrollToTopButtonEnabled: true,
4748
4493
  selectedTab,
4749
4494
  showSideBar,
4495
+ showSizeLink,
4750
4496
  sideBarWidth,
4751
4497
  sizeOnDisk: size,
4752
4498
  sizeValue,
4753
- tabs: enabledTabs,
4754
- locationProtocol
4499
+ tabs: enabledTabs
4755
4500
  };
4756
4501
  };
4757
4502
 
@@ -4927,6 +4672,38 @@ const getMoreInfoVirtualDom = items => {
4927
4672
  }, ...items.flatMap(getMoreInfoEntryVirtualDom)];
4928
4673
  };
4929
4674
 
4675
+ const getIconDom = icon => {
4676
+ if (!icon) {
4677
+ return [];
4678
+ }
4679
+ return [{
4680
+ type: Div,
4681
+ className: ResourceIcon,
4682
+ childCount: 1
4683
+ }, {
4684
+ type: Div,
4685
+ className: mergeClassNames(MaskIcon, `MaskIcon${icon}`),
4686
+ childCount: 0
4687
+ }];
4688
+ };
4689
+ const getResourceLinkVirtualDom = resource => {
4690
+ const {
4691
+ label,
4692
+ url,
4693
+ icon
4694
+ } = resource;
4695
+ const iconDom = getIconDom(icon);
4696
+ const iconDomCount = iconDom.length > 0 ? 1 : 0;
4697
+ return [{
4698
+ type: A,
4699
+ className: Resource,
4700
+ childCount: 1 + iconDomCount,
4701
+ target: '_blank',
4702
+ rel: 'noopener noreferrer',
4703
+ href: url
4704
+ }, ...iconDom, text(label)];
4705
+ };
4706
+
4930
4707
  const resourceNode = {
4931
4708
  // TODO use link with url
4932
4709
  type: Div,
@@ -4939,14 +4716,7 @@ const getResourceVirtualDom = resource => {
4939
4716
  url
4940
4717
  } = resource;
4941
4718
  if (url && url !== '#') {
4942
- return [{
4943
- type: A,
4944
- className: Resource,
4945
- childCount: 1,
4946
- target: '_blank',
4947
- rel: 'noopener noreferrer',
4948
- href: url
4949
- }, text(label)];
4719
+ return getResourceLinkVirtualDom(resource);
4950
4720
  }
4951
4721
  return [resourceNode, text(label)];
4952
4722
  };
@@ -5439,6 +5209,7 @@ const commandMap = {
5439
5209
  'ExtensionDetail.handleTabsClick': wrapCommand(handleTabsClick),
5440
5210
  'ExtensionDetail.handleWheel': wrapCommand(handleScroll),
5441
5211
  // deprecated
5212
+ 'ExtensionDetail.hideSizeLink': wrapCommand(hideSizeLink),
5442
5213
  'ExtensionDetail.initialize': initialize,
5443
5214
  'ExtensionDetail.loadContent2': wrapCommand(loadContent2),
5444
5215
  'ExtensionDetail.openImageInNewTab': wrapCommand(openImageInNewTab),
@@ -5455,7 +5226,7 @@ const listen = async () => {
5455
5226
  const rpc = await WebWorkerRpcClient.create({
5456
5227
  commandMap: commandMap
5457
5228
  });
5458
- set$2(rpc);
5229
+ set$5(rpc);
5459
5230
  };
5460
5231
 
5461
5232
  const main = async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/extension-detail-view",
3
- "version": "5.4.0",
3
+ "version": "5.7.0",
4
4
  "description": "Extension Detail View Worker",
5
5
  "repository": {
6
6
  "type": "git",