@lvce-editor/status-bar-worker 3.27.0 → 3.28.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/dist/statusBarWorkerMain.js +494 -488
- package/package.json +1 -1
|
@@ -319,6 +319,317 @@ const getComponentState = uid => {
|
|
|
319
319
|
return get$5(uid).newState;
|
|
320
320
|
};
|
|
321
321
|
|
|
322
|
+
const Status = 'status';
|
|
323
|
+
|
|
324
|
+
const MaskIcon = 'MaskIcon';
|
|
325
|
+
|
|
326
|
+
const Audio = 0;
|
|
327
|
+
const Button$1 = 1;
|
|
328
|
+
const Col = 2;
|
|
329
|
+
const ColGroup = 3;
|
|
330
|
+
const Div = 4;
|
|
331
|
+
const H1 = 5;
|
|
332
|
+
const Input = 6;
|
|
333
|
+
const Kbd = 7;
|
|
334
|
+
const Span = 8;
|
|
335
|
+
const Table = 9;
|
|
336
|
+
const TBody = 10;
|
|
337
|
+
const Td = 11;
|
|
338
|
+
const Text = 12;
|
|
339
|
+
const Th = 13;
|
|
340
|
+
const THead = 14;
|
|
341
|
+
const Tr = 15;
|
|
342
|
+
const I = 16;
|
|
343
|
+
const Img = 17;
|
|
344
|
+
const Root = 0;
|
|
345
|
+
const Ins = 20;
|
|
346
|
+
const Del = 21;
|
|
347
|
+
const H2 = 22;
|
|
348
|
+
const H3 = 23;
|
|
349
|
+
const H4 = 24;
|
|
350
|
+
const H5 = 25;
|
|
351
|
+
const H6 = 26;
|
|
352
|
+
const Article = 27;
|
|
353
|
+
const Aside = 28;
|
|
354
|
+
const Footer = 29;
|
|
355
|
+
const Header = 30;
|
|
356
|
+
const Nav = 40;
|
|
357
|
+
const Section = 41;
|
|
358
|
+
const Search = 42;
|
|
359
|
+
const Dd = 43;
|
|
360
|
+
const Dl = 44;
|
|
361
|
+
const Figcaption = 45;
|
|
362
|
+
const Figure = 46;
|
|
363
|
+
const Hr = 47;
|
|
364
|
+
const Li = 48;
|
|
365
|
+
const Ol = 49;
|
|
366
|
+
const P = 50;
|
|
367
|
+
const Pre = 51;
|
|
368
|
+
const A = 53;
|
|
369
|
+
const Abbr = 54;
|
|
370
|
+
const Br = 55;
|
|
371
|
+
const Cite = 56;
|
|
372
|
+
const Data = 57;
|
|
373
|
+
const Time = 58;
|
|
374
|
+
const Tfoot = 59;
|
|
375
|
+
const Ul = 60;
|
|
376
|
+
const Video = 61;
|
|
377
|
+
const TextArea = 62;
|
|
378
|
+
const Select = 63;
|
|
379
|
+
const Option = 64;
|
|
380
|
+
const Code = 65;
|
|
381
|
+
const Label = 66;
|
|
382
|
+
const Dt = 67;
|
|
383
|
+
const Iframe = 68;
|
|
384
|
+
const Main = 69;
|
|
385
|
+
const Strong = 70;
|
|
386
|
+
const Em = 71;
|
|
387
|
+
const Style = 72;
|
|
388
|
+
const Html = 73;
|
|
389
|
+
const Head = 74;
|
|
390
|
+
const Title = 75;
|
|
391
|
+
const Meta = 76;
|
|
392
|
+
const Canvas = 77;
|
|
393
|
+
const Form = 78;
|
|
394
|
+
const BlockQuote = 79;
|
|
395
|
+
const Quote = 80;
|
|
396
|
+
const Circle = 81;
|
|
397
|
+
const Defs = 82;
|
|
398
|
+
const Ellipse = 83;
|
|
399
|
+
const G = 84;
|
|
400
|
+
const Line = 85;
|
|
401
|
+
const Path = 86;
|
|
402
|
+
const Polygon = 87;
|
|
403
|
+
const Polyline = 88;
|
|
404
|
+
const Rect = 89;
|
|
405
|
+
const Svg = 90;
|
|
406
|
+
const Use = 91;
|
|
407
|
+
const Reference = 100;
|
|
408
|
+
|
|
409
|
+
const VirtualDomElements = {
|
|
410
|
+
__proto__: null,
|
|
411
|
+
A,
|
|
412
|
+
Abbr,
|
|
413
|
+
Article,
|
|
414
|
+
Aside,
|
|
415
|
+
Audio,
|
|
416
|
+
BlockQuote,
|
|
417
|
+
Br,
|
|
418
|
+
Button: Button$1,
|
|
419
|
+
Canvas,
|
|
420
|
+
Circle,
|
|
421
|
+
Cite,
|
|
422
|
+
Code,
|
|
423
|
+
Col,
|
|
424
|
+
ColGroup,
|
|
425
|
+
Data,
|
|
426
|
+
Dd,
|
|
427
|
+
Defs,
|
|
428
|
+
Del,
|
|
429
|
+
Div,
|
|
430
|
+
Dl,
|
|
431
|
+
Dt,
|
|
432
|
+
Ellipse,
|
|
433
|
+
Em,
|
|
434
|
+
Figcaption,
|
|
435
|
+
Figure,
|
|
436
|
+
Footer,
|
|
437
|
+
Form,
|
|
438
|
+
G,
|
|
439
|
+
H1,
|
|
440
|
+
H2,
|
|
441
|
+
H3,
|
|
442
|
+
H4,
|
|
443
|
+
H5,
|
|
444
|
+
H6,
|
|
445
|
+
Head,
|
|
446
|
+
Header,
|
|
447
|
+
Hr,
|
|
448
|
+
Html,
|
|
449
|
+
I,
|
|
450
|
+
Iframe,
|
|
451
|
+
Img,
|
|
452
|
+
Input,
|
|
453
|
+
Ins,
|
|
454
|
+
Kbd,
|
|
455
|
+
Label,
|
|
456
|
+
Li,
|
|
457
|
+
Line,
|
|
458
|
+
Main,
|
|
459
|
+
Meta,
|
|
460
|
+
Nav,
|
|
461
|
+
Ol,
|
|
462
|
+
Option,
|
|
463
|
+
P,
|
|
464
|
+
Path,
|
|
465
|
+
Polygon,
|
|
466
|
+
Polyline,
|
|
467
|
+
Pre,
|
|
468
|
+
Quote,
|
|
469
|
+
Rect,
|
|
470
|
+
Reference,
|
|
471
|
+
Root,
|
|
472
|
+
Search,
|
|
473
|
+
Section,
|
|
474
|
+
Select,
|
|
475
|
+
Span,
|
|
476
|
+
Strong,
|
|
477
|
+
Style,
|
|
478
|
+
Svg,
|
|
479
|
+
TBody,
|
|
480
|
+
THead,
|
|
481
|
+
Table,
|
|
482
|
+
Td,
|
|
483
|
+
Text,
|
|
484
|
+
TextArea,
|
|
485
|
+
Tfoot,
|
|
486
|
+
Th,
|
|
487
|
+
Time,
|
|
488
|
+
Title,
|
|
489
|
+
Tr,
|
|
490
|
+
Ul,
|
|
491
|
+
Use,
|
|
492
|
+
Video
|
|
493
|
+
};
|
|
494
|
+
|
|
495
|
+
const Button = 'event.button';
|
|
496
|
+
const ClientX = 'event.clientX';
|
|
497
|
+
const ClientY = 'event.clientY';
|
|
498
|
+
const TargetName = 'event.target.name';
|
|
499
|
+
|
|
500
|
+
const ExtensionManagementWorker = 9006;
|
|
501
|
+
const RendererProcess = 1670;
|
|
502
|
+
const RendererWorker = 1;
|
|
503
|
+
|
|
504
|
+
const SetDom2 = 'Viewlet.setDom2';
|
|
505
|
+
const SetFocusContext = 'Viewlet.setFocusContext';
|
|
506
|
+
|
|
507
|
+
const mergeClassNames = (...classNames) => {
|
|
508
|
+
return classNames.filter(Boolean).join(' ');
|
|
509
|
+
};
|
|
510
|
+
|
|
511
|
+
const text = data => {
|
|
512
|
+
return {
|
|
513
|
+
childCount: 0,
|
|
514
|
+
text: data,
|
|
515
|
+
type: Text
|
|
516
|
+
};
|
|
517
|
+
};
|
|
518
|
+
|
|
519
|
+
new Set(Object.values(VirtualDomElements));
|
|
520
|
+
|
|
521
|
+
const HandleContextMenu = 2;
|
|
522
|
+
const HandleClick = 11;
|
|
523
|
+
|
|
524
|
+
const ProblemsErrorIcon = 'ProblemsErrorIcon';
|
|
525
|
+
const ProblemsWarningIcon = 'ProblemsWarningIcon';
|
|
526
|
+
const StatusBarItem = 'StatusBarItem';
|
|
527
|
+
const StatusBarItemsLeft = 'StatusBarItemsLeft';
|
|
528
|
+
const StatusBarItemsRight = 'StatusBarItemsRight';
|
|
529
|
+
|
|
530
|
+
const getTextVirtualDom = (element, name) => {
|
|
531
|
+
return [{
|
|
532
|
+
childCount: 1,
|
|
533
|
+
className: 'StatusBarItemLabel',
|
|
534
|
+
name,
|
|
535
|
+
type: Span
|
|
536
|
+
}, text(element.value)];
|
|
537
|
+
};
|
|
538
|
+
const getIconVirtualDom = (element, name) => {
|
|
539
|
+
return [{
|
|
540
|
+
childCount: 0,
|
|
541
|
+
className: mergeClassNames(MaskIcon, 'StatusBarIcon', element.value, element.spinning ? 'Spinning' : ''),
|
|
542
|
+
name,
|
|
543
|
+
type: Div
|
|
544
|
+
}];
|
|
545
|
+
};
|
|
546
|
+
const getStatusBarItemElementVirtualDom = (element, name) => {
|
|
547
|
+
if (element.type === 'text') {
|
|
548
|
+
return getTextVirtualDom(element, name);
|
|
549
|
+
}
|
|
550
|
+
if (element.type === 'icon') {
|
|
551
|
+
return getIconVirtualDom(element, name);
|
|
552
|
+
}
|
|
553
|
+
return [];
|
|
554
|
+
};
|
|
555
|
+
|
|
556
|
+
const getStatusBarItemVirtualDom = statusBarItem => {
|
|
557
|
+
const {
|
|
558
|
+
ariaLabel,
|
|
559
|
+
elements,
|
|
560
|
+
name,
|
|
561
|
+
tooltip
|
|
562
|
+
} = statusBarItem;
|
|
563
|
+
const elementNodes = elements.flatMap(element => getStatusBarItemElementVirtualDom(element, name));
|
|
564
|
+
const buttonNode = {
|
|
565
|
+
ariaLabel,
|
|
566
|
+
childCount: elements.length,
|
|
567
|
+
className: StatusBarItem,
|
|
568
|
+
name,
|
|
569
|
+
tabIndex: -1,
|
|
570
|
+
title: tooltip,
|
|
571
|
+
type: Button$1
|
|
572
|
+
};
|
|
573
|
+
return [buttonNode, ...elementNodes];
|
|
574
|
+
};
|
|
575
|
+
|
|
576
|
+
const getStatusBarItemsVirtualDom = (items, className) => {
|
|
577
|
+
if (items.length === 0) {
|
|
578
|
+
return [];
|
|
579
|
+
}
|
|
580
|
+
return [{
|
|
581
|
+
childCount: items.length,
|
|
582
|
+
className,
|
|
583
|
+
type: Div
|
|
584
|
+
}, ...items.flatMap(getStatusBarItemVirtualDom)];
|
|
585
|
+
};
|
|
586
|
+
|
|
587
|
+
const emptyStatusBarItemsLeftDom = [{
|
|
588
|
+
childCount: 0,
|
|
589
|
+
className: StatusBarItemsLeft,
|
|
590
|
+
type: Div
|
|
591
|
+
}];
|
|
592
|
+
const getStatusBarItemsLeftDom = statusBarItemsLeft => {
|
|
593
|
+
if (statusBarItemsLeft.length === 0) {
|
|
594
|
+
return emptyStatusBarItemsLeftDom;
|
|
595
|
+
}
|
|
596
|
+
return getStatusBarItemsVirtualDom(statusBarItemsLeft, StatusBarItemsLeft);
|
|
597
|
+
};
|
|
598
|
+
|
|
599
|
+
const getStatusBarItemsRightDom = statusBarItemsRight => {
|
|
600
|
+
return getStatusBarItemsVirtualDom(statusBarItemsRight, StatusBarItemsRight);
|
|
601
|
+
};
|
|
602
|
+
|
|
603
|
+
const getChildCount = rightCount => {
|
|
604
|
+
return rightCount > 0 ? 2 : 1;
|
|
605
|
+
};
|
|
606
|
+
const getStatusBarVirtualDom = (statusBarItemsLeft, statusBarItemsRight) => {
|
|
607
|
+
const dom = [{
|
|
608
|
+
childCount: getChildCount(statusBarItemsRight.length),
|
|
609
|
+
className: 'StatusBar',
|
|
610
|
+
onClick: HandleClick,
|
|
611
|
+
onContextMenu: HandleContextMenu,
|
|
612
|
+
role: Status,
|
|
613
|
+
type: Div
|
|
614
|
+
}, ...getStatusBarItemsLeftDom(statusBarItemsLeft), ...getStatusBarItemsRightDom(statusBarItemsRight)];
|
|
615
|
+
return dom;
|
|
616
|
+
};
|
|
617
|
+
|
|
618
|
+
const renderItems = (oldState, newState) => {
|
|
619
|
+
const {
|
|
620
|
+
statusBarItemsLeft,
|
|
621
|
+
statusBarItemsRight,
|
|
622
|
+
uid
|
|
623
|
+
} = newState;
|
|
624
|
+
const dom = getStatusBarVirtualDom(statusBarItemsLeft, statusBarItemsRight);
|
|
625
|
+
return [SetDom2, uid, dom];
|
|
626
|
+
};
|
|
627
|
+
|
|
628
|
+
const getComponentDom = uid => {
|
|
629
|
+
const state = getComponentState(uid);
|
|
630
|
+
return renderItems(state, state)[2];
|
|
631
|
+
};
|
|
632
|
+
|
|
322
633
|
const getMatchingItemInternal = (items, name) => {
|
|
323
634
|
for (const item of items) {
|
|
324
635
|
if (item.name === name) {
|
|
@@ -1238,390 +1549,205 @@ const create$4 = (id, method, params) => {
|
|
|
1238
1549
|
jsonrpc: Two,
|
|
1239
1550
|
method,
|
|
1240
1551
|
params
|
|
1241
|
-
};
|
|
1242
|
-
return message;
|
|
1243
|
-
};
|
|
1244
|
-
|
|
1245
|
-
let id = 0;
|
|
1246
|
-
const create$3 = () => {
|
|
1247
|
-
return ++id;
|
|
1248
|
-
};
|
|
1249
|
-
|
|
1250
|
-
const registerPromise = map => {
|
|
1251
|
-
const id = create$3();
|
|
1252
|
-
const {
|
|
1253
|
-
promise,
|
|
1254
|
-
resolve
|
|
1255
|
-
} = Promise.withResolvers();
|
|
1256
|
-
map[id] = resolve;
|
|
1257
|
-
return {
|
|
1258
|
-
id,
|
|
1259
|
-
promise
|
|
1260
|
-
};
|
|
1261
|
-
};
|
|
1262
|
-
|
|
1263
|
-
const invokeHelper = async (callbacks, ipc, method, params, useSendAndTransfer) => {
|
|
1264
|
-
const {
|
|
1265
|
-
id,
|
|
1266
|
-
promise
|
|
1267
|
-
} = registerPromise(callbacks);
|
|
1268
|
-
const message = create$4(id, method, params);
|
|
1269
|
-
if (useSendAndTransfer && ipc.sendAndTransfer) {
|
|
1270
|
-
ipc.sendAndTransfer(message);
|
|
1271
|
-
} else {
|
|
1272
|
-
ipc.send(message);
|
|
1273
|
-
}
|
|
1274
|
-
const responseMessage = await promise;
|
|
1275
|
-
return unwrapJsonRpcResult(responseMessage);
|
|
1276
|
-
};
|
|
1277
|
-
const createRpc = ipc => {
|
|
1278
|
-
const callbacks = Object.create(null);
|
|
1279
|
-
ipc._resolve = (id, response) => {
|
|
1280
|
-
const fn = callbacks[id];
|
|
1281
|
-
if (!fn) {
|
|
1282
|
-
console.warn(`callback ${id} may already be disposed`);
|
|
1283
|
-
return;
|
|
1284
|
-
}
|
|
1285
|
-
fn(response);
|
|
1286
|
-
delete callbacks[id];
|
|
1287
|
-
};
|
|
1288
|
-
const rpc = {
|
|
1289
|
-
async dispose() {
|
|
1290
|
-
await ipc?.dispose();
|
|
1291
|
-
},
|
|
1292
|
-
invoke(method, ...params) {
|
|
1293
|
-
return invokeHelper(callbacks, ipc, method, params, false);
|
|
1294
|
-
},
|
|
1295
|
-
invokeAndTransfer(method, ...params) {
|
|
1296
|
-
return invokeHelper(callbacks, ipc, method, params, true);
|
|
1297
|
-
},
|
|
1298
|
-
// @ts-ignore
|
|
1299
|
-
ipc,
|
|
1300
|
-
/**
|
|
1301
|
-
* @deprecated
|
|
1302
|
-
*/
|
|
1303
|
-
send(method, ...params) {
|
|
1304
|
-
const message = create$5(method, params);
|
|
1305
|
-
ipc.send(message);
|
|
1306
|
-
}
|
|
1307
|
-
};
|
|
1308
|
-
return rpc;
|
|
1309
|
-
};
|
|
1310
|
-
|
|
1311
|
-
const requiresSocket = () => {
|
|
1312
|
-
return false;
|
|
1313
|
-
};
|
|
1314
|
-
const preparePrettyError = error => {
|
|
1315
|
-
return error;
|
|
1316
|
-
};
|
|
1317
|
-
const logError = () => {
|
|
1318
|
-
// handled by renderer worker
|
|
1319
|
-
};
|
|
1320
|
-
const handleMessage = event => {
|
|
1321
|
-
const actualRequiresSocket = event?.target?.requiresSocket || requiresSocket;
|
|
1322
|
-
const actualExecute = event?.target?.execute || execute;
|
|
1323
|
-
return handleJsonRpcMessage(event.target, event.data, actualExecute, event.target._resolve, preparePrettyError, logError, actualRequiresSocket);
|
|
1324
|
-
};
|
|
1325
|
-
|
|
1326
|
-
const handleIpc = ipc => {
|
|
1327
|
-
if ('addEventListener' in ipc) {
|
|
1328
|
-
ipc.addEventListener('message', handleMessage);
|
|
1329
|
-
} else if ('on' in ipc) {
|
|
1330
|
-
// deprecated
|
|
1331
|
-
ipc.on('message', handleMessage);
|
|
1332
|
-
}
|
|
1333
|
-
};
|
|
1334
|
-
|
|
1335
|
-
const listen$1 = async (module, options) => {
|
|
1336
|
-
const rawIpc = await module.listen(options);
|
|
1337
|
-
if (module.signal) {
|
|
1338
|
-
module.signal(rawIpc);
|
|
1339
|
-
}
|
|
1340
|
-
const ipc = module.wrap(rawIpc);
|
|
1341
|
-
return ipc;
|
|
1342
|
-
};
|
|
1343
|
-
|
|
1344
|
-
const create$2 = async ({
|
|
1345
|
-
commandMap,
|
|
1346
|
-
isMessagePortOpen = true,
|
|
1347
|
-
messagePort
|
|
1348
|
-
}) => {
|
|
1349
|
-
// TODO create a commandMap per rpc instance
|
|
1350
|
-
register(commandMap);
|
|
1351
|
-
const rawIpc = await IpcParentWithMessagePort$1.create({
|
|
1352
|
-
isMessagePortOpen,
|
|
1353
|
-
messagePort
|
|
1354
|
-
});
|
|
1355
|
-
const ipc = IpcParentWithMessagePort$1.wrap(rawIpc);
|
|
1356
|
-
handleIpc(ipc);
|
|
1357
|
-
const rpc = createRpc(ipc);
|
|
1358
|
-
messagePort.start();
|
|
1359
|
-
return rpc;
|
|
1360
|
-
};
|
|
1361
|
-
|
|
1362
|
-
const create$1 = async ({
|
|
1363
|
-
commandMap
|
|
1364
|
-
}) => {
|
|
1365
|
-
// TODO create a commandMap per rpc instance
|
|
1366
|
-
register(commandMap);
|
|
1367
|
-
const ipc = await listen$1(IpcChildWithModuleWorkerAndMessagePort$1);
|
|
1368
|
-
handleIpc(ipc);
|
|
1369
|
-
const rpc = createRpc(ipc);
|
|
1370
|
-
return rpc;
|
|
1371
|
-
};
|
|
1372
|
-
|
|
1373
|
-
const createMockRpc = ({
|
|
1374
|
-
commandMap
|
|
1375
|
-
}) => {
|
|
1376
|
-
const invocations = [];
|
|
1377
|
-
const invoke = (method, ...params) => {
|
|
1378
|
-
invocations.push([method, ...params]);
|
|
1379
|
-
const command = commandMap[method];
|
|
1380
|
-
if (!command) {
|
|
1381
|
-
throw new Error(`command ${method} not found`);
|
|
1382
|
-
}
|
|
1383
|
-
return command(...params);
|
|
1384
|
-
};
|
|
1385
|
-
const mockRpc = {
|
|
1386
|
-
invocations,
|
|
1387
|
-
invoke,
|
|
1388
|
-
invokeAndTransfer: invoke
|
|
1389
|
-
};
|
|
1390
|
-
return mockRpc;
|
|
1391
|
-
};
|
|
1392
|
-
|
|
1393
|
-
const rpcs = Object.create(null);
|
|
1394
|
-
const set$6 = (id, rpc) => {
|
|
1395
|
-
rpcs[id] = rpc;
|
|
1396
|
-
};
|
|
1397
|
-
const get$3 = id => {
|
|
1398
|
-
return rpcs[id];
|
|
1552
|
+
};
|
|
1553
|
+
return message;
|
|
1399
1554
|
};
|
|
1400
|
-
|
|
1401
|
-
|
|
1555
|
+
|
|
1556
|
+
let id = 0;
|
|
1557
|
+
const create$3 = () => {
|
|
1558
|
+
return ++id;
|
|
1402
1559
|
};
|
|
1403
1560
|
|
|
1404
|
-
|
|
1405
|
-
const
|
|
1561
|
+
const registerPromise = map => {
|
|
1562
|
+
const id = create$3();
|
|
1563
|
+
const {
|
|
1564
|
+
promise,
|
|
1565
|
+
resolve
|
|
1566
|
+
} = Promise.withResolvers();
|
|
1567
|
+
map[id] = resolve;
|
|
1406
1568
|
return {
|
|
1569
|
+
id,
|
|
1570
|
+
promise
|
|
1571
|
+
};
|
|
1572
|
+
};
|
|
1573
|
+
|
|
1574
|
+
const invokeHelper = async (callbacks, ipc, method, params, useSendAndTransfer) => {
|
|
1575
|
+
const {
|
|
1576
|
+
id,
|
|
1577
|
+
promise
|
|
1578
|
+
} = registerPromise(callbacks);
|
|
1579
|
+
const message = create$4(id, method, params);
|
|
1580
|
+
if (useSendAndTransfer && ipc.sendAndTransfer) {
|
|
1581
|
+
ipc.sendAndTransfer(message);
|
|
1582
|
+
} else {
|
|
1583
|
+
ipc.send(message);
|
|
1584
|
+
}
|
|
1585
|
+
const responseMessage = await promise;
|
|
1586
|
+
return unwrapJsonRpcResult(responseMessage);
|
|
1587
|
+
};
|
|
1588
|
+
const createRpc = ipc => {
|
|
1589
|
+
const callbacks = Object.create(null);
|
|
1590
|
+
ipc._resolve = (id, response) => {
|
|
1591
|
+
const fn = callbacks[id];
|
|
1592
|
+
if (!fn) {
|
|
1593
|
+
console.warn(`callback ${id} may already be disposed`);
|
|
1594
|
+
return;
|
|
1595
|
+
}
|
|
1596
|
+
fn(response);
|
|
1597
|
+
delete callbacks[id];
|
|
1598
|
+
};
|
|
1599
|
+
const rpc = {
|
|
1407
1600
|
async dispose() {
|
|
1408
|
-
|
|
1409
|
-
await rpc.dispose();
|
|
1601
|
+
await ipc?.dispose();
|
|
1410
1602
|
},
|
|
1411
|
-
// @ts-ignore
|
|
1412
1603
|
invoke(method, ...params) {
|
|
1413
|
-
|
|
1414
|
-
// @ts-ignore
|
|
1415
|
-
return rpc.invoke(method, ...params);
|
|
1604
|
+
return invokeHelper(callbacks, ipc, method, params, false);
|
|
1416
1605
|
},
|
|
1417
|
-
// @ts-ignore
|
|
1418
1606
|
invokeAndTransfer(method, ...params) {
|
|
1419
|
-
|
|
1420
|
-
// @ts-ignore
|
|
1421
|
-
return rpc.invokeAndTransfer(method, ...params);
|
|
1422
|
-
},
|
|
1423
|
-
registerMockRpc(commandMap) {
|
|
1424
|
-
const mockRpc = createMockRpc({
|
|
1425
|
-
commandMap
|
|
1426
|
-
});
|
|
1427
|
-
set$6(rpcId, mockRpc);
|
|
1428
|
-
// @ts-ignore
|
|
1429
|
-
mockRpc[Symbol.dispose] = () => {
|
|
1430
|
-
remove(rpcId);
|
|
1431
|
-
};
|
|
1432
|
-
// @ts-ignore
|
|
1433
|
-
return mockRpc;
|
|
1607
|
+
return invokeHelper(callbacks, ipc, method, params, true);
|
|
1434
1608
|
},
|
|
1435
|
-
|
|
1436
|
-
|
|
1609
|
+
// @ts-ignore
|
|
1610
|
+
ipc,
|
|
1611
|
+
/**
|
|
1612
|
+
* @deprecated
|
|
1613
|
+
*/
|
|
1614
|
+
send(method, ...params) {
|
|
1615
|
+
const message = create$5(method, params);
|
|
1616
|
+
ipc.send(message);
|
|
1437
1617
|
}
|
|
1438
1618
|
};
|
|
1619
|
+
return rpc;
|
|
1439
1620
|
};
|
|
1440
|
-
|
|
1441
|
-
const
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
const
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
const
|
|
1451
|
-
const
|
|
1452
|
-
const
|
|
1453
|
-
|
|
1454
|
-
const Table = 9;
|
|
1455
|
-
const TBody = 10;
|
|
1456
|
-
const Td = 11;
|
|
1457
|
-
const Text = 12;
|
|
1458
|
-
const Th = 13;
|
|
1459
|
-
const THead = 14;
|
|
1460
|
-
const Tr = 15;
|
|
1461
|
-
const I = 16;
|
|
1462
|
-
const Img = 17;
|
|
1463
|
-
const Root = 0;
|
|
1464
|
-
const Ins = 20;
|
|
1465
|
-
const Del = 21;
|
|
1466
|
-
const H2 = 22;
|
|
1467
|
-
const H3 = 23;
|
|
1468
|
-
const H4 = 24;
|
|
1469
|
-
const H5 = 25;
|
|
1470
|
-
const H6 = 26;
|
|
1471
|
-
const Article = 27;
|
|
1472
|
-
const Aside = 28;
|
|
1473
|
-
const Footer = 29;
|
|
1474
|
-
const Header = 30;
|
|
1475
|
-
const Nav = 40;
|
|
1476
|
-
const Section = 41;
|
|
1477
|
-
const Search = 42;
|
|
1478
|
-
const Dd = 43;
|
|
1479
|
-
const Dl = 44;
|
|
1480
|
-
const Figcaption = 45;
|
|
1481
|
-
const Figure = 46;
|
|
1482
|
-
const Hr = 47;
|
|
1483
|
-
const Li = 48;
|
|
1484
|
-
const Ol = 49;
|
|
1485
|
-
const P = 50;
|
|
1486
|
-
const Pre = 51;
|
|
1487
|
-
const A = 53;
|
|
1488
|
-
const Abbr = 54;
|
|
1489
|
-
const Br = 55;
|
|
1490
|
-
const Cite = 56;
|
|
1491
|
-
const Data = 57;
|
|
1492
|
-
const Time = 58;
|
|
1493
|
-
const Tfoot = 59;
|
|
1494
|
-
const Ul = 60;
|
|
1495
|
-
const Video = 61;
|
|
1496
|
-
const TextArea = 62;
|
|
1497
|
-
const Select = 63;
|
|
1498
|
-
const Option = 64;
|
|
1499
|
-
const Code = 65;
|
|
1500
|
-
const Label = 66;
|
|
1501
|
-
const Dt = 67;
|
|
1502
|
-
const Iframe = 68;
|
|
1503
|
-
const Main = 69;
|
|
1504
|
-
const Strong = 70;
|
|
1505
|
-
const Em = 71;
|
|
1506
|
-
const Style = 72;
|
|
1507
|
-
const Html = 73;
|
|
1508
|
-
const Head = 74;
|
|
1509
|
-
const Title = 75;
|
|
1510
|
-
const Meta = 76;
|
|
1511
|
-
const Canvas = 77;
|
|
1512
|
-
const Form = 78;
|
|
1513
|
-
const BlockQuote = 79;
|
|
1514
|
-
const Quote = 80;
|
|
1515
|
-
const Circle = 81;
|
|
1516
|
-
const Defs = 82;
|
|
1517
|
-
const Ellipse = 83;
|
|
1518
|
-
const G = 84;
|
|
1519
|
-
const Line = 85;
|
|
1520
|
-
const Path = 86;
|
|
1521
|
-
const Polygon = 87;
|
|
1522
|
-
const Polyline = 88;
|
|
1523
|
-
const Rect = 89;
|
|
1524
|
-
const Svg = 90;
|
|
1525
|
-
const Use = 91;
|
|
1526
|
-
const Reference = 100;
|
|
1527
|
-
|
|
1528
|
-
const VirtualDomElements = {
|
|
1529
|
-
__proto__: null,
|
|
1530
|
-
A,
|
|
1531
|
-
Abbr,
|
|
1532
|
-
Article,
|
|
1533
|
-
Aside,
|
|
1534
|
-
Audio,
|
|
1535
|
-
BlockQuote,
|
|
1536
|
-
Br,
|
|
1537
|
-
Button: Button$1,
|
|
1538
|
-
Canvas,
|
|
1539
|
-
Circle,
|
|
1540
|
-
Cite,
|
|
1541
|
-
Code,
|
|
1542
|
-
Col,
|
|
1543
|
-
ColGroup,
|
|
1544
|
-
Data,
|
|
1545
|
-
Dd,
|
|
1546
|
-
Defs,
|
|
1547
|
-
Del,
|
|
1548
|
-
Div,
|
|
1549
|
-
Dl,
|
|
1550
|
-
Dt,
|
|
1551
|
-
Ellipse,
|
|
1552
|
-
Em,
|
|
1553
|
-
Figcaption,
|
|
1554
|
-
Figure,
|
|
1555
|
-
Footer,
|
|
1556
|
-
Form,
|
|
1557
|
-
G,
|
|
1558
|
-
H1,
|
|
1559
|
-
H2,
|
|
1560
|
-
H3,
|
|
1561
|
-
H4,
|
|
1562
|
-
H5,
|
|
1563
|
-
H6,
|
|
1564
|
-
Head,
|
|
1565
|
-
Header,
|
|
1566
|
-
Hr,
|
|
1567
|
-
Html,
|
|
1568
|
-
I,
|
|
1569
|
-
Iframe,
|
|
1570
|
-
Img,
|
|
1571
|
-
Input,
|
|
1572
|
-
Ins,
|
|
1573
|
-
Kbd,
|
|
1574
|
-
Label,
|
|
1575
|
-
Li,
|
|
1576
|
-
Line,
|
|
1577
|
-
Main,
|
|
1578
|
-
Meta,
|
|
1579
|
-
Nav,
|
|
1580
|
-
Ol,
|
|
1581
|
-
Option,
|
|
1582
|
-
P,
|
|
1583
|
-
Path,
|
|
1584
|
-
Polygon,
|
|
1585
|
-
Polyline,
|
|
1586
|
-
Pre,
|
|
1587
|
-
Quote,
|
|
1588
|
-
Rect,
|
|
1589
|
-
Reference,
|
|
1590
|
-
Root,
|
|
1591
|
-
Search,
|
|
1592
|
-
Section,
|
|
1593
|
-
Select,
|
|
1594
|
-
Span,
|
|
1595
|
-
Strong,
|
|
1596
|
-
Style,
|
|
1597
|
-
Svg,
|
|
1598
|
-
TBody,
|
|
1599
|
-
THead,
|
|
1600
|
-
Table,
|
|
1601
|
-
Td,
|
|
1602
|
-
Text,
|
|
1603
|
-
TextArea,
|
|
1604
|
-
Tfoot,
|
|
1605
|
-
Th,
|
|
1606
|
-
Time,
|
|
1607
|
-
Title,
|
|
1608
|
-
Tr,
|
|
1609
|
-
Ul,
|
|
1610
|
-
Use,
|
|
1611
|
-
Video
|
|
1621
|
+
|
|
1622
|
+
const requiresSocket = () => {
|
|
1623
|
+
return false;
|
|
1624
|
+
};
|
|
1625
|
+
const preparePrettyError = error => {
|
|
1626
|
+
return error;
|
|
1627
|
+
};
|
|
1628
|
+
const logError = () => {
|
|
1629
|
+
// handled by renderer worker
|
|
1630
|
+
};
|
|
1631
|
+
const handleMessage = event => {
|
|
1632
|
+
const actualRequiresSocket = event?.target?.requiresSocket || requiresSocket;
|
|
1633
|
+
const actualExecute = event?.target?.execute || execute;
|
|
1634
|
+
return handleJsonRpcMessage(event.target, event.data, actualExecute, event.target._resolve, preparePrettyError, logError, actualRequiresSocket);
|
|
1612
1635
|
};
|
|
1613
1636
|
|
|
1614
|
-
const
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1637
|
+
const handleIpc = ipc => {
|
|
1638
|
+
if ('addEventListener' in ipc) {
|
|
1639
|
+
ipc.addEventListener('message', handleMessage);
|
|
1640
|
+
} else if ('on' in ipc) {
|
|
1641
|
+
// deprecated
|
|
1642
|
+
ipc.on('message', handleMessage);
|
|
1643
|
+
}
|
|
1644
|
+
};
|
|
1618
1645
|
|
|
1619
|
-
const
|
|
1620
|
-
const
|
|
1621
|
-
|
|
1646
|
+
const listen$1 = async (module, options) => {
|
|
1647
|
+
const rawIpc = await module.listen(options);
|
|
1648
|
+
if (module.signal) {
|
|
1649
|
+
module.signal(rawIpc);
|
|
1650
|
+
}
|
|
1651
|
+
const ipc = module.wrap(rawIpc);
|
|
1652
|
+
return ipc;
|
|
1653
|
+
};
|
|
1622
1654
|
|
|
1623
|
-
const
|
|
1624
|
-
|
|
1655
|
+
const create$2 = async ({
|
|
1656
|
+
commandMap,
|
|
1657
|
+
isMessagePortOpen = true,
|
|
1658
|
+
messagePort
|
|
1659
|
+
}) => {
|
|
1660
|
+
// TODO create a commandMap per rpc instance
|
|
1661
|
+
register(commandMap);
|
|
1662
|
+
const rawIpc = await IpcParentWithMessagePort$1.create({
|
|
1663
|
+
isMessagePortOpen,
|
|
1664
|
+
messagePort
|
|
1665
|
+
});
|
|
1666
|
+
const ipc = IpcParentWithMessagePort$1.wrap(rawIpc);
|
|
1667
|
+
handleIpc(ipc);
|
|
1668
|
+
const rpc = createRpc(ipc);
|
|
1669
|
+
messagePort.start();
|
|
1670
|
+
return rpc;
|
|
1671
|
+
};
|
|
1672
|
+
|
|
1673
|
+
const create$1 = async ({
|
|
1674
|
+
commandMap
|
|
1675
|
+
}) => {
|
|
1676
|
+
// TODO create a commandMap per rpc instance
|
|
1677
|
+
register(commandMap);
|
|
1678
|
+
const ipc = await listen$1(IpcChildWithModuleWorkerAndMessagePort$1);
|
|
1679
|
+
handleIpc(ipc);
|
|
1680
|
+
const rpc = createRpc(ipc);
|
|
1681
|
+
return rpc;
|
|
1682
|
+
};
|
|
1683
|
+
|
|
1684
|
+
const createMockRpc = ({
|
|
1685
|
+
commandMap
|
|
1686
|
+
}) => {
|
|
1687
|
+
const invocations = [];
|
|
1688
|
+
const invoke = (method, ...params) => {
|
|
1689
|
+
invocations.push([method, ...params]);
|
|
1690
|
+
const command = commandMap[method];
|
|
1691
|
+
if (!command) {
|
|
1692
|
+
throw new Error(`command ${method} not found`);
|
|
1693
|
+
}
|
|
1694
|
+
return command(...params);
|
|
1695
|
+
};
|
|
1696
|
+
const mockRpc = {
|
|
1697
|
+
invocations,
|
|
1698
|
+
invoke,
|
|
1699
|
+
invokeAndTransfer: invoke
|
|
1700
|
+
};
|
|
1701
|
+
return mockRpc;
|
|
1702
|
+
};
|
|
1703
|
+
|
|
1704
|
+
const rpcs = Object.create(null);
|
|
1705
|
+
const set$6 = (id, rpc) => {
|
|
1706
|
+
rpcs[id] = rpc;
|
|
1707
|
+
};
|
|
1708
|
+
const get$3 = id => {
|
|
1709
|
+
return rpcs[id];
|
|
1710
|
+
};
|
|
1711
|
+
const remove = id => {
|
|
1712
|
+
delete rpcs[id];
|
|
1713
|
+
};
|
|
1714
|
+
|
|
1715
|
+
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
1716
|
+
const create = rpcId => {
|
|
1717
|
+
return {
|
|
1718
|
+
async dispose() {
|
|
1719
|
+
const rpc = get$3(rpcId);
|
|
1720
|
+
await rpc.dispose();
|
|
1721
|
+
},
|
|
1722
|
+
// @ts-ignore
|
|
1723
|
+
invoke(method, ...params) {
|
|
1724
|
+
const rpc = get$3(rpcId);
|
|
1725
|
+
// @ts-ignore
|
|
1726
|
+
return rpc.invoke(method, ...params);
|
|
1727
|
+
},
|
|
1728
|
+
// @ts-ignore
|
|
1729
|
+
invokeAndTransfer(method, ...params) {
|
|
1730
|
+
const rpc = get$3(rpcId);
|
|
1731
|
+
// @ts-ignore
|
|
1732
|
+
return rpc.invokeAndTransfer(method, ...params);
|
|
1733
|
+
},
|
|
1734
|
+
registerMockRpc(commandMap) {
|
|
1735
|
+
const mockRpc = createMockRpc({
|
|
1736
|
+
commandMap
|
|
1737
|
+
});
|
|
1738
|
+
set$6(rpcId, mockRpc);
|
|
1739
|
+
// @ts-ignore
|
|
1740
|
+
mockRpc[Symbol.dispose] = () => {
|
|
1741
|
+
remove(rpcId);
|
|
1742
|
+
};
|
|
1743
|
+
// @ts-ignore
|
|
1744
|
+
return mockRpc;
|
|
1745
|
+
},
|
|
1746
|
+
set(rpc) {
|
|
1747
|
+
set$6(rpcId, rpc);
|
|
1748
|
+
}
|
|
1749
|
+
};
|
|
1750
|
+
};
|
|
1625
1751
|
|
|
1626
1752
|
const {
|
|
1627
1753
|
invoke: invoke$3,
|
|
@@ -1798,12 +1924,6 @@ const getNotificationsStatusBarItem = (enabled, count = 0) => {
|
|
|
1798
1924
|
}];
|
|
1799
1925
|
};
|
|
1800
1926
|
|
|
1801
|
-
const ProblemsErrorIcon = 'ProblemsErrorIcon';
|
|
1802
|
-
const ProblemsWarningIcon = 'ProblemsWarningIcon';
|
|
1803
|
-
const StatusBarItem = 'StatusBarItem';
|
|
1804
|
-
const StatusBarItemsLeft = 'StatusBarItemsLeft';
|
|
1805
|
-
const StatusBarItemsRight = 'StatusBarItemsRight';
|
|
1806
|
-
|
|
1807
1927
|
const getProblemsAriaLabel = (errorCount, warningCount) => {
|
|
1808
1928
|
const parts = [];
|
|
1809
1929
|
if (errorCount > 0) {
|
|
@@ -1985,121 +2105,6 @@ const handleItemsChanged = async state => {
|
|
|
1985
2105
|
return handleExtensionsChanged(state);
|
|
1986
2106
|
};
|
|
1987
2107
|
|
|
1988
|
-
const mergeClassNames = (...classNames) => {
|
|
1989
|
-
return classNames.filter(Boolean).join(' ');
|
|
1990
|
-
};
|
|
1991
|
-
|
|
1992
|
-
const text = data => {
|
|
1993
|
-
return {
|
|
1994
|
-
childCount: 0,
|
|
1995
|
-
text: data,
|
|
1996
|
-
type: Text
|
|
1997
|
-
};
|
|
1998
|
-
};
|
|
1999
|
-
|
|
2000
|
-
new Set(Object.values(VirtualDomElements));
|
|
2001
|
-
|
|
2002
|
-
const HandleContextMenu = 2;
|
|
2003
|
-
const HandleClick = 11;
|
|
2004
|
-
|
|
2005
|
-
const getTextVirtualDom = (element, name) => {
|
|
2006
|
-
return [{
|
|
2007
|
-
childCount: 1,
|
|
2008
|
-
className: 'StatusBarItemLabel',
|
|
2009
|
-
name,
|
|
2010
|
-
type: Span
|
|
2011
|
-
}, text(element.value)];
|
|
2012
|
-
};
|
|
2013
|
-
const getIconVirtualDom = (element, name) => {
|
|
2014
|
-
return [{
|
|
2015
|
-
childCount: 0,
|
|
2016
|
-
className: mergeClassNames(MaskIcon, 'StatusBarIcon', element.value, element.spinning ? 'Spinning' : ''),
|
|
2017
|
-
name,
|
|
2018
|
-
type: Div
|
|
2019
|
-
}];
|
|
2020
|
-
};
|
|
2021
|
-
const getStatusBarItemElementVirtualDom = (element, name) => {
|
|
2022
|
-
if (element.type === 'text') {
|
|
2023
|
-
return getTextVirtualDom(element, name);
|
|
2024
|
-
}
|
|
2025
|
-
if (element.type === 'icon') {
|
|
2026
|
-
return getIconVirtualDom(element, name);
|
|
2027
|
-
}
|
|
2028
|
-
return [];
|
|
2029
|
-
};
|
|
2030
|
-
|
|
2031
|
-
const getStatusBarItemVirtualDom = statusBarItem => {
|
|
2032
|
-
const {
|
|
2033
|
-
ariaLabel,
|
|
2034
|
-
elements,
|
|
2035
|
-
name,
|
|
2036
|
-
tooltip
|
|
2037
|
-
} = statusBarItem;
|
|
2038
|
-
const elementNodes = elements.flatMap(element => getStatusBarItemElementVirtualDom(element, name));
|
|
2039
|
-
const buttonNode = {
|
|
2040
|
-
ariaLabel,
|
|
2041
|
-
childCount: elements.length,
|
|
2042
|
-
className: StatusBarItem,
|
|
2043
|
-
name,
|
|
2044
|
-
tabIndex: -1,
|
|
2045
|
-
title: tooltip,
|
|
2046
|
-
type: Button$1
|
|
2047
|
-
};
|
|
2048
|
-
return [buttonNode, ...elementNodes];
|
|
2049
|
-
};
|
|
2050
|
-
|
|
2051
|
-
const getStatusBarItemsVirtualDom = (items, className) => {
|
|
2052
|
-
if (items.length === 0) {
|
|
2053
|
-
return [];
|
|
2054
|
-
}
|
|
2055
|
-
return [{
|
|
2056
|
-
childCount: items.length,
|
|
2057
|
-
className,
|
|
2058
|
-
type: Div
|
|
2059
|
-
}, ...items.flatMap(getStatusBarItemVirtualDom)];
|
|
2060
|
-
};
|
|
2061
|
-
|
|
2062
|
-
const emptyStatusBarItemsLeftDom = [{
|
|
2063
|
-
childCount: 0,
|
|
2064
|
-
className: StatusBarItemsLeft,
|
|
2065
|
-
type: Div
|
|
2066
|
-
}];
|
|
2067
|
-
const getStatusBarItemsLeftDom = statusBarItemsLeft => {
|
|
2068
|
-
if (statusBarItemsLeft.length === 0) {
|
|
2069
|
-
return emptyStatusBarItemsLeftDom;
|
|
2070
|
-
}
|
|
2071
|
-
return getStatusBarItemsVirtualDom(statusBarItemsLeft, StatusBarItemsLeft);
|
|
2072
|
-
};
|
|
2073
|
-
|
|
2074
|
-
const getStatusBarItemsRightDom = statusBarItemsRight => {
|
|
2075
|
-
return getStatusBarItemsVirtualDom(statusBarItemsRight, StatusBarItemsRight);
|
|
2076
|
-
};
|
|
2077
|
-
|
|
2078
|
-
const getChildCount = rightCount => {
|
|
2079
|
-
return rightCount > 0 ? 2 : 1;
|
|
2080
|
-
};
|
|
2081
|
-
const getStatusBarVirtualDom = (statusBarItemsLeft, statusBarItemsRight) => {
|
|
2082
|
-
const dom = [{
|
|
2083
|
-
childCount: getChildCount(statusBarItemsRight.length),
|
|
2084
|
-
className: 'StatusBar',
|
|
2085
|
-
onClick: HandleClick,
|
|
2086
|
-
onContextMenu: HandleContextMenu,
|
|
2087
|
-
role: Status,
|
|
2088
|
-
type: Div
|
|
2089
|
-
}, ...getStatusBarItemsLeftDom(statusBarItemsLeft), ...getStatusBarItemsRightDom(statusBarItemsRight)];
|
|
2090
|
-
return dom;
|
|
2091
|
-
};
|
|
2092
|
-
|
|
2093
|
-
const renderItems = (oldState, newState) => {
|
|
2094
|
-
const {
|
|
2095
|
-
statusBarItemsLeft,
|
|
2096
|
-
statusBarItemsRight,
|
|
2097
|
-
uid
|
|
2098
|
-
} = newState;
|
|
2099
|
-
const dom = getStatusBarVirtualDom(statusBarItemsLeft, statusBarItemsRight);
|
|
2100
|
-
return [SetDom2, uid, dom];
|
|
2101
|
-
};
|
|
2102
|
-
|
|
2103
2108
|
const renderIncremental = (oldState, newState) => {
|
|
2104
2109
|
return renderItems(oldState, newState);
|
|
2105
2110
|
};
|
|
@@ -2521,6 +2526,7 @@ const commandMap = {
|
|
|
2521
2526
|
'StatusBar.create': create$7,
|
|
2522
2527
|
'StatusBar.diff2': diff2,
|
|
2523
2528
|
'StatusBar.getCommandIds': getCommandIds,
|
|
2529
|
+
'StatusBar.getComponentDom': getComponentDom,
|
|
2524
2530
|
'StatusBar.getComponentState': getComponentState,
|
|
2525
2531
|
'StatusBar.handleChange': wrapSerialCommand(handleItemsChanged),
|
|
2526
2532
|
'StatusBar.handleClick': wrapCommand(handleClick),
|