@lvce-editor/status-bar-worker 3.26.2 → 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 +499 -470
- package/package.json +1 -1
|
@@ -315,6 +315,321 @@ const diff2 = uid => {
|
|
|
315
315
|
return result;
|
|
316
316
|
};
|
|
317
317
|
|
|
318
|
+
const getComponentState = uid => {
|
|
319
|
+
return get$5(uid).newState;
|
|
320
|
+
};
|
|
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
|
+
|
|
318
633
|
const getMatchingItemInternal = (items, name) => {
|
|
319
634
|
for (const item of items) {
|
|
320
635
|
if (item.name === name) {
|
|
@@ -1251,373 +1566,188 @@ const registerPromise = map => {
|
|
|
1251
1566
|
} = Promise.withResolvers();
|
|
1252
1567
|
map[id] = resolve;
|
|
1253
1568
|
return {
|
|
1254
|
-
id,
|
|
1255
|
-
promise
|
|
1256
|
-
};
|
|
1257
|
-
};
|
|
1258
|
-
|
|
1259
|
-
const invokeHelper = async (callbacks, ipc, method, params, useSendAndTransfer) => {
|
|
1260
|
-
const {
|
|
1261
|
-
id,
|
|
1262
|
-
promise
|
|
1263
|
-
} = registerPromise(callbacks);
|
|
1264
|
-
const message = create$4(id, method, params);
|
|
1265
|
-
if (useSendAndTransfer && ipc.sendAndTransfer) {
|
|
1266
|
-
ipc.sendAndTransfer(message);
|
|
1267
|
-
} else {
|
|
1268
|
-
ipc.send(message);
|
|
1269
|
-
}
|
|
1270
|
-
const responseMessage = await promise;
|
|
1271
|
-
return unwrapJsonRpcResult(responseMessage);
|
|
1272
|
-
};
|
|
1273
|
-
const createRpc = ipc => {
|
|
1274
|
-
const callbacks = Object.create(null);
|
|
1275
|
-
ipc._resolve = (id, response) => {
|
|
1276
|
-
const fn = callbacks[id];
|
|
1277
|
-
if (!fn) {
|
|
1278
|
-
console.warn(`callback ${id} may already be disposed`);
|
|
1279
|
-
return;
|
|
1280
|
-
}
|
|
1281
|
-
fn(response);
|
|
1282
|
-
delete callbacks[id];
|
|
1283
|
-
};
|
|
1284
|
-
const rpc = {
|
|
1285
|
-
async dispose() {
|
|
1286
|
-
await ipc?.dispose();
|
|
1287
|
-
},
|
|
1288
|
-
invoke(method, ...params) {
|
|
1289
|
-
return invokeHelper(callbacks, ipc, method, params, false);
|
|
1290
|
-
},
|
|
1291
|
-
invokeAndTransfer(method, ...params) {
|
|
1292
|
-
return invokeHelper(callbacks, ipc, method, params, true);
|
|
1293
|
-
},
|
|
1294
|
-
// @ts-ignore
|
|
1295
|
-
ipc,
|
|
1296
|
-
/**
|
|
1297
|
-
* @deprecated
|
|
1298
|
-
*/
|
|
1299
|
-
send(method, ...params) {
|
|
1300
|
-
const message = create$5(method, params);
|
|
1301
|
-
ipc.send(message);
|
|
1302
|
-
}
|
|
1303
|
-
};
|
|
1304
|
-
return rpc;
|
|
1305
|
-
};
|
|
1306
|
-
|
|
1307
|
-
const requiresSocket = () => {
|
|
1308
|
-
return false;
|
|
1309
|
-
};
|
|
1310
|
-
const preparePrettyError = error => {
|
|
1311
|
-
return error;
|
|
1312
|
-
};
|
|
1313
|
-
const logError = () => {
|
|
1314
|
-
// handled by renderer worker
|
|
1315
|
-
};
|
|
1316
|
-
const handleMessage = event => {
|
|
1317
|
-
const actualRequiresSocket = event?.target?.requiresSocket || requiresSocket;
|
|
1318
|
-
const actualExecute = event?.target?.execute || execute;
|
|
1319
|
-
return handleJsonRpcMessage(event.target, event.data, actualExecute, event.target._resolve, preparePrettyError, logError, actualRequiresSocket);
|
|
1320
|
-
};
|
|
1321
|
-
|
|
1322
|
-
const handleIpc = ipc => {
|
|
1323
|
-
if ('addEventListener' in ipc) {
|
|
1324
|
-
ipc.addEventListener('message', handleMessage);
|
|
1325
|
-
} else if ('on' in ipc) {
|
|
1326
|
-
// deprecated
|
|
1327
|
-
ipc.on('message', handleMessage);
|
|
1328
|
-
}
|
|
1329
|
-
};
|
|
1330
|
-
|
|
1331
|
-
const listen$1 = async (module, options) => {
|
|
1332
|
-
const rawIpc = await module.listen(options);
|
|
1333
|
-
if (module.signal) {
|
|
1334
|
-
module.signal(rawIpc);
|
|
1335
|
-
}
|
|
1336
|
-
const ipc = module.wrap(rawIpc);
|
|
1337
|
-
return ipc;
|
|
1338
|
-
};
|
|
1339
|
-
|
|
1340
|
-
const create$2 = async ({
|
|
1341
|
-
commandMap,
|
|
1342
|
-
isMessagePortOpen = true,
|
|
1343
|
-
messagePort
|
|
1344
|
-
}) => {
|
|
1345
|
-
// TODO create a commandMap per rpc instance
|
|
1346
|
-
register(commandMap);
|
|
1347
|
-
const rawIpc = await IpcParentWithMessagePort$1.create({
|
|
1348
|
-
isMessagePortOpen,
|
|
1349
|
-
messagePort
|
|
1350
|
-
});
|
|
1351
|
-
const ipc = IpcParentWithMessagePort$1.wrap(rawIpc);
|
|
1352
|
-
handleIpc(ipc);
|
|
1353
|
-
const rpc = createRpc(ipc);
|
|
1354
|
-
messagePort.start();
|
|
1355
|
-
return rpc;
|
|
1356
|
-
};
|
|
1357
|
-
|
|
1358
|
-
const create$1 = async ({
|
|
1359
|
-
commandMap
|
|
1360
|
-
}) => {
|
|
1361
|
-
// TODO create a commandMap per rpc instance
|
|
1362
|
-
register(commandMap);
|
|
1363
|
-
const ipc = await listen$1(IpcChildWithModuleWorkerAndMessagePort$1);
|
|
1364
|
-
handleIpc(ipc);
|
|
1365
|
-
const rpc = createRpc(ipc);
|
|
1366
|
-
return rpc;
|
|
1367
|
-
};
|
|
1368
|
-
|
|
1369
|
-
const createMockRpc = ({
|
|
1370
|
-
commandMap
|
|
1371
|
-
}) => {
|
|
1372
|
-
const invocations = [];
|
|
1373
|
-
const invoke = (method, ...params) => {
|
|
1374
|
-
invocations.push([method, ...params]);
|
|
1375
|
-
const command = commandMap[method];
|
|
1376
|
-
if (!command) {
|
|
1377
|
-
throw new Error(`command ${method} not found`);
|
|
1378
|
-
}
|
|
1379
|
-
return command(...params);
|
|
1380
|
-
};
|
|
1381
|
-
const mockRpc = {
|
|
1382
|
-
invocations,
|
|
1383
|
-
invoke,
|
|
1384
|
-
invokeAndTransfer: invoke
|
|
1569
|
+
id,
|
|
1570
|
+
promise
|
|
1385
1571
|
};
|
|
1386
|
-
return mockRpc;
|
|
1387
1572
|
};
|
|
1388
1573
|
|
|
1389
|
-
const
|
|
1390
|
-
const
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
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);
|
|
1398
1587
|
};
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
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 = {
|
|
1403
1600
|
async dispose() {
|
|
1404
|
-
|
|
1405
|
-
await rpc.dispose();
|
|
1601
|
+
await ipc?.dispose();
|
|
1406
1602
|
},
|
|
1407
|
-
// @ts-ignore
|
|
1408
1603
|
invoke(method, ...params) {
|
|
1409
|
-
|
|
1410
|
-
// @ts-ignore
|
|
1411
|
-
return rpc.invoke(method, ...params);
|
|
1604
|
+
return invokeHelper(callbacks, ipc, method, params, false);
|
|
1412
1605
|
},
|
|
1413
|
-
// @ts-ignore
|
|
1414
1606
|
invokeAndTransfer(method, ...params) {
|
|
1415
|
-
|
|
1416
|
-
// @ts-ignore
|
|
1417
|
-
return rpc.invokeAndTransfer(method, ...params);
|
|
1418
|
-
},
|
|
1419
|
-
registerMockRpc(commandMap) {
|
|
1420
|
-
const mockRpc = createMockRpc({
|
|
1421
|
-
commandMap
|
|
1422
|
-
});
|
|
1423
|
-
set$6(rpcId, mockRpc);
|
|
1424
|
-
// @ts-ignore
|
|
1425
|
-
mockRpc[Symbol.dispose] = () => {
|
|
1426
|
-
remove(rpcId);
|
|
1427
|
-
};
|
|
1428
|
-
// @ts-ignore
|
|
1429
|
-
return mockRpc;
|
|
1607
|
+
return invokeHelper(callbacks, ipc, method, params, true);
|
|
1430
1608
|
},
|
|
1431
|
-
|
|
1432
|
-
|
|
1609
|
+
// @ts-ignore
|
|
1610
|
+
ipc,
|
|
1611
|
+
/**
|
|
1612
|
+
* @deprecated
|
|
1613
|
+
*/
|
|
1614
|
+
send(method, ...params) {
|
|
1615
|
+
const message = create$5(method, params);
|
|
1616
|
+
ipc.send(message);
|
|
1433
1617
|
}
|
|
1434
1618
|
};
|
|
1619
|
+
return rpc;
|
|
1435
1620
|
};
|
|
1436
1621
|
|
|
1437
|
-
const
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
const
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
const
|
|
1447
|
-
const
|
|
1448
|
-
const
|
|
1449
|
-
|
|
1450
|
-
const Table = 9;
|
|
1451
|
-
const TBody = 10;
|
|
1452
|
-
const Td = 11;
|
|
1453
|
-
const Text = 12;
|
|
1454
|
-
const Th = 13;
|
|
1455
|
-
const THead = 14;
|
|
1456
|
-
const Tr = 15;
|
|
1457
|
-
const I = 16;
|
|
1458
|
-
const Img = 17;
|
|
1459
|
-
const Root = 0;
|
|
1460
|
-
const Ins = 20;
|
|
1461
|
-
const Del = 21;
|
|
1462
|
-
const H2 = 22;
|
|
1463
|
-
const H3 = 23;
|
|
1464
|
-
const H4 = 24;
|
|
1465
|
-
const H5 = 25;
|
|
1466
|
-
const H6 = 26;
|
|
1467
|
-
const Article = 27;
|
|
1468
|
-
const Aside = 28;
|
|
1469
|
-
const Footer = 29;
|
|
1470
|
-
const Header = 30;
|
|
1471
|
-
const Nav = 40;
|
|
1472
|
-
const Section = 41;
|
|
1473
|
-
const Search = 42;
|
|
1474
|
-
const Dd = 43;
|
|
1475
|
-
const Dl = 44;
|
|
1476
|
-
const Figcaption = 45;
|
|
1477
|
-
const Figure = 46;
|
|
1478
|
-
const Hr = 47;
|
|
1479
|
-
const Li = 48;
|
|
1480
|
-
const Ol = 49;
|
|
1481
|
-
const P = 50;
|
|
1482
|
-
const Pre = 51;
|
|
1483
|
-
const A = 53;
|
|
1484
|
-
const Abbr = 54;
|
|
1485
|
-
const Br = 55;
|
|
1486
|
-
const Cite = 56;
|
|
1487
|
-
const Data = 57;
|
|
1488
|
-
const Time = 58;
|
|
1489
|
-
const Tfoot = 59;
|
|
1490
|
-
const Ul = 60;
|
|
1491
|
-
const Video = 61;
|
|
1492
|
-
const TextArea = 62;
|
|
1493
|
-
const Select = 63;
|
|
1494
|
-
const Option = 64;
|
|
1495
|
-
const Code = 65;
|
|
1496
|
-
const Label = 66;
|
|
1497
|
-
const Dt = 67;
|
|
1498
|
-
const Iframe = 68;
|
|
1499
|
-
const Main = 69;
|
|
1500
|
-
const Strong = 70;
|
|
1501
|
-
const Em = 71;
|
|
1502
|
-
const Style = 72;
|
|
1503
|
-
const Html = 73;
|
|
1504
|
-
const Head = 74;
|
|
1505
|
-
const Title = 75;
|
|
1506
|
-
const Meta = 76;
|
|
1507
|
-
const Canvas = 77;
|
|
1508
|
-
const Form = 78;
|
|
1509
|
-
const BlockQuote = 79;
|
|
1510
|
-
const Quote = 80;
|
|
1511
|
-
const Circle = 81;
|
|
1512
|
-
const Defs = 82;
|
|
1513
|
-
const Ellipse = 83;
|
|
1514
|
-
const G = 84;
|
|
1515
|
-
const Line = 85;
|
|
1516
|
-
const Path = 86;
|
|
1517
|
-
const Polygon = 87;
|
|
1518
|
-
const Polyline = 88;
|
|
1519
|
-
const Rect = 89;
|
|
1520
|
-
const Svg = 90;
|
|
1521
|
-
const Use = 91;
|
|
1522
|
-
const Reference = 100;
|
|
1523
|
-
|
|
1524
|
-
const VirtualDomElements = {
|
|
1525
|
-
__proto__: null,
|
|
1526
|
-
A,
|
|
1527
|
-
Abbr,
|
|
1528
|
-
Article,
|
|
1529
|
-
Aside,
|
|
1530
|
-
Audio,
|
|
1531
|
-
BlockQuote,
|
|
1532
|
-
Br,
|
|
1533
|
-
Button: Button$1,
|
|
1534
|
-
Canvas,
|
|
1535
|
-
Circle,
|
|
1536
|
-
Cite,
|
|
1537
|
-
Code,
|
|
1538
|
-
Col,
|
|
1539
|
-
ColGroup,
|
|
1540
|
-
Data,
|
|
1541
|
-
Dd,
|
|
1542
|
-
Defs,
|
|
1543
|
-
Del,
|
|
1544
|
-
Div,
|
|
1545
|
-
Dl,
|
|
1546
|
-
Dt,
|
|
1547
|
-
Ellipse,
|
|
1548
|
-
Em,
|
|
1549
|
-
Figcaption,
|
|
1550
|
-
Figure,
|
|
1551
|
-
Footer,
|
|
1552
|
-
Form,
|
|
1553
|
-
G,
|
|
1554
|
-
H1,
|
|
1555
|
-
H2,
|
|
1556
|
-
H3,
|
|
1557
|
-
H4,
|
|
1558
|
-
H5,
|
|
1559
|
-
H6,
|
|
1560
|
-
Head,
|
|
1561
|
-
Header,
|
|
1562
|
-
Hr,
|
|
1563
|
-
Html,
|
|
1564
|
-
I,
|
|
1565
|
-
Iframe,
|
|
1566
|
-
Img,
|
|
1567
|
-
Input,
|
|
1568
|
-
Ins,
|
|
1569
|
-
Kbd,
|
|
1570
|
-
Label,
|
|
1571
|
-
Li,
|
|
1572
|
-
Line,
|
|
1573
|
-
Main,
|
|
1574
|
-
Meta,
|
|
1575
|
-
Nav,
|
|
1576
|
-
Ol,
|
|
1577
|
-
Option,
|
|
1578
|
-
P,
|
|
1579
|
-
Path,
|
|
1580
|
-
Polygon,
|
|
1581
|
-
Polyline,
|
|
1582
|
-
Pre,
|
|
1583
|
-
Quote,
|
|
1584
|
-
Rect,
|
|
1585
|
-
Reference,
|
|
1586
|
-
Root,
|
|
1587
|
-
Search,
|
|
1588
|
-
Section,
|
|
1589
|
-
Select,
|
|
1590
|
-
Span,
|
|
1591
|
-
Strong,
|
|
1592
|
-
Style,
|
|
1593
|
-
Svg,
|
|
1594
|
-
TBody,
|
|
1595
|
-
THead,
|
|
1596
|
-
Table,
|
|
1597
|
-
Td,
|
|
1598
|
-
Text,
|
|
1599
|
-
TextArea,
|
|
1600
|
-
Tfoot,
|
|
1601
|
-
Th,
|
|
1602
|
-
Time,
|
|
1603
|
-
Title,
|
|
1604
|
-
Tr,
|
|
1605
|
-
Ul,
|
|
1606
|
-
Use,
|
|
1607
|
-
Video
|
|
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);
|
|
1608
1635
|
};
|
|
1609
1636
|
|
|
1610
|
-
const
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
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
|
+
};
|
|
1614
1645
|
|
|
1615
|
-
const
|
|
1616
|
-
const
|
|
1617
|
-
|
|
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
|
+
};
|
|
1618
1654
|
|
|
1619
|
-
const
|
|
1620
|
-
|
|
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
|
+
};
|
|
1621
1751
|
|
|
1622
1752
|
const {
|
|
1623
1753
|
invoke: invoke$3,
|
|
@@ -1794,12 +1924,6 @@ const getNotificationsStatusBarItem = (enabled, count = 0) => {
|
|
|
1794
1924
|
}];
|
|
1795
1925
|
};
|
|
1796
1926
|
|
|
1797
|
-
const ProblemsErrorIcon = 'ProblemsErrorIcon';
|
|
1798
|
-
const ProblemsWarningIcon = 'ProblemsWarningIcon';
|
|
1799
|
-
const StatusBarItem = 'StatusBarItem';
|
|
1800
|
-
const StatusBarItemsLeft = 'StatusBarItemsLeft';
|
|
1801
|
-
const StatusBarItemsRight = 'StatusBarItemsRight';
|
|
1802
|
-
|
|
1803
1927
|
const getProblemsAriaLabel = (errorCount, warningCount) => {
|
|
1804
1928
|
const parts = [];
|
|
1805
1929
|
if (errorCount > 0) {
|
|
@@ -1981,121 +2105,6 @@ const handleItemsChanged = async state => {
|
|
|
1981
2105
|
return handleExtensionsChanged(state);
|
|
1982
2106
|
};
|
|
1983
2107
|
|
|
1984
|
-
const mergeClassNames = (...classNames) => {
|
|
1985
|
-
return classNames.filter(Boolean).join(' ');
|
|
1986
|
-
};
|
|
1987
|
-
|
|
1988
|
-
const text = data => {
|
|
1989
|
-
return {
|
|
1990
|
-
childCount: 0,
|
|
1991
|
-
text: data,
|
|
1992
|
-
type: Text
|
|
1993
|
-
};
|
|
1994
|
-
};
|
|
1995
|
-
|
|
1996
|
-
new Set(Object.values(VirtualDomElements));
|
|
1997
|
-
|
|
1998
|
-
const HandleContextMenu = 2;
|
|
1999
|
-
const HandleClick = 11;
|
|
2000
|
-
|
|
2001
|
-
const getTextVirtualDom = (element, name) => {
|
|
2002
|
-
return [{
|
|
2003
|
-
childCount: 1,
|
|
2004
|
-
className: 'StatusBarItemLabel',
|
|
2005
|
-
name,
|
|
2006
|
-
type: Span
|
|
2007
|
-
}, text(element.value)];
|
|
2008
|
-
};
|
|
2009
|
-
const getIconVirtualDom = (element, name) => {
|
|
2010
|
-
return [{
|
|
2011
|
-
childCount: 0,
|
|
2012
|
-
className: mergeClassNames(MaskIcon, 'StatusBarIcon', element.value, element.spinning ? 'Spinning' : ''),
|
|
2013
|
-
name,
|
|
2014
|
-
type: Div
|
|
2015
|
-
}];
|
|
2016
|
-
};
|
|
2017
|
-
const getStatusBarItemElementVirtualDom = (element, name) => {
|
|
2018
|
-
if (element.type === 'text') {
|
|
2019
|
-
return getTextVirtualDom(element, name);
|
|
2020
|
-
}
|
|
2021
|
-
if (element.type === 'icon') {
|
|
2022
|
-
return getIconVirtualDom(element, name);
|
|
2023
|
-
}
|
|
2024
|
-
return [];
|
|
2025
|
-
};
|
|
2026
|
-
|
|
2027
|
-
const getStatusBarItemVirtualDom = statusBarItem => {
|
|
2028
|
-
const {
|
|
2029
|
-
ariaLabel,
|
|
2030
|
-
elements,
|
|
2031
|
-
name,
|
|
2032
|
-
tooltip
|
|
2033
|
-
} = statusBarItem;
|
|
2034
|
-
const elementNodes = elements.flatMap(element => getStatusBarItemElementVirtualDom(element, name));
|
|
2035
|
-
const buttonNode = {
|
|
2036
|
-
ariaLabel,
|
|
2037
|
-
childCount: elements.length,
|
|
2038
|
-
className: StatusBarItem,
|
|
2039
|
-
name,
|
|
2040
|
-
tabIndex: -1,
|
|
2041
|
-
title: tooltip,
|
|
2042
|
-
type: Button$1
|
|
2043
|
-
};
|
|
2044
|
-
return [buttonNode, ...elementNodes];
|
|
2045
|
-
};
|
|
2046
|
-
|
|
2047
|
-
const getStatusBarItemsVirtualDom = (items, className) => {
|
|
2048
|
-
if (items.length === 0) {
|
|
2049
|
-
return [];
|
|
2050
|
-
}
|
|
2051
|
-
return [{
|
|
2052
|
-
childCount: items.length,
|
|
2053
|
-
className,
|
|
2054
|
-
type: Div
|
|
2055
|
-
}, ...items.flatMap(getStatusBarItemVirtualDom)];
|
|
2056
|
-
};
|
|
2057
|
-
|
|
2058
|
-
const emptyStatusBarItemsLeftDom = [{
|
|
2059
|
-
childCount: 0,
|
|
2060
|
-
className: StatusBarItemsLeft,
|
|
2061
|
-
type: Div
|
|
2062
|
-
}];
|
|
2063
|
-
const getStatusBarItemsLeftDom = statusBarItemsLeft => {
|
|
2064
|
-
if (statusBarItemsLeft.length === 0) {
|
|
2065
|
-
return emptyStatusBarItemsLeftDom;
|
|
2066
|
-
}
|
|
2067
|
-
return getStatusBarItemsVirtualDom(statusBarItemsLeft, StatusBarItemsLeft);
|
|
2068
|
-
};
|
|
2069
|
-
|
|
2070
|
-
const getStatusBarItemsRightDom = statusBarItemsRight => {
|
|
2071
|
-
return getStatusBarItemsVirtualDom(statusBarItemsRight, StatusBarItemsRight);
|
|
2072
|
-
};
|
|
2073
|
-
|
|
2074
|
-
const getChildCount = rightCount => {
|
|
2075
|
-
return rightCount > 0 ? 2 : 1;
|
|
2076
|
-
};
|
|
2077
|
-
const getStatusBarVirtualDom = (statusBarItemsLeft, statusBarItemsRight) => {
|
|
2078
|
-
const dom = [{
|
|
2079
|
-
childCount: getChildCount(statusBarItemsRight.length),
|
|
2080
|
-
className: 'StatusBar',
|
|
2081
|
-
onClick: HandleClick,
|
|
2082
|
-
onContextMenu: HandleContextMenu,
|
|
2083
|
-
role: Status,
|
|
2084
|
-
type: Div
|
|
2085
|
-
}, ...getStatusBarItemsLeftDom(statusBarItemsLeft), ...getStatusBarItemsRightDom(statusBarItemsRight)];
|
|
2086
|
-
return dom;
|
|
2087
|
-
};
|
|
2088
|
-
|
|
2089
|
-
const renderItems = (oldState, newState) => {
|
|
2090
|
-
const {
|
|
2091
|
-
statusBarItemsLeft,
|
|
2092
|
-
statusBarItemsRight,
|
|
2093
|
-
uid
|
|
2094
|
-
} = newState;
|
|
2095
|
-
const dom = getStatusBarVirtualDom(statusBarItemsLeft, statusBarItemsRight);
|
|
2096
|
-
return [SetDom2, uid, dom];
|
|
2097
|
-
};
|
|
2098
|
-
|
|
2099
2108
|
const renderIncremental = (oldState, newState) => {
|
|
2100
2109
|
return renderItems(oldState, newState);
|
|
2101
2110
|
};
|
|
@@ -2489,6 +2498,23 @@ const saveState = state => {
|
|
|
2489
2498
|
};
|
|
2490
2499
|
};
|
|
2491
2500
|
|
|
2501
|
+
const applyComponentState = (currentState, state) => {
|
|
2502
|
+
if (!state || typeof state !== 'object' || Array.isArray(state)) {
|
|
2503
|
+
throw new TypeError('Status Bar state must be an object');
|
|
2504
|
+
}
|
|
2505
|
+
const {
|
|
2506
|
+
uid
|
|
2507
|
+
} = state;
|
|
2508
|
+
const {
|
|
2509
|
+
uid: currentUid
|
|
2510
|
+
} = currentState;
|
|
2511
|
+
if (uid !== currentUid) {
|
|
2512
|
+
throw new Error(`Status Bar state uid must remain ${currentUid}`);
|
|
2513
|
+
}
|
|
2514
|
+
return state;
|
|
2515
|
+
};
|
|
2516
|
+
const setComponentState = wrapCommand(applyComponentState);
|
|
2517
|
+
|
|
2492
2518
|
const handleDirectMessagePort = (port, setAsRendererProcess = true) => handleMessagePort(port, commandMap, setAsRendererProcess);
|
|
2493
2519
|
const activateOnWorkspaceChange = wrapCommand(handleWorkspaceChange);
|
|
2494
2520
|
const refreshExtensionItems = wrapSerialCommand(handleItemsChanged);
|
|
@@ -2500,6 +2526,8 @@ const commandMap = {
|
|
|
2500
2526
|
'StatusBar.create': create$7,
|
|
2501
2527
|
'StatusBar.diff2': diff2,
|
|
2502
2528
|
'StatusBar.getCommandIds': getCommandIds,
|
|
2529
|
+
'StatusBar.getComponentDom': getComponentDom,
|
|
2530
|
+
'StatusBar.getComponentState': getComponentState,
|
|
2503
2531
|
'StatusBar.handleChange': wrapSerialCommand(handleItemsChanged),
|
|
2504
2532
|
'StatusBar.handleClick': wrapCommand(handleClick),
|
|
2505
2533
|
'StatusBar.handleContextMenu': wrapCommand(handleContextMenu),
|
|
@@ -2519,6 +2547,7 @@ const commandMap = {
|
|
|
2519
2547
|
'StatusBar.renderEventListeners': renderEventListeners,
|
|
2520
2548
|
'StatusBar.resize': wrapCommand(resize),
|
|
2521
2549
|
'StatusBar.saveState': wrapGetter(saveState),
|
|
2550
|
+
'StatusBar.setComponentState': setComponentState,
|
|
2522
2551
|
'StatusBar.terminate': terminate
|
|
2523
2552
|
};
|
|
2524
2553
|
|