@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.
@@ -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
- const remove = id => {
1401
- delete rpcs[id];
1555
+
1556
+ let id = 0;
1557
+ const create$3 = () => {
1558
+ return ++id;
1402
1559
  };
1403
1560
 
1404
- /* eslint-disable @typescript-eslint/explicit-function-return-type */
1405
- const create = rpcId => {
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
- const rpc = get$3(rpcId);
1409
- await rpc.dispose();
1601
+ await ipc?.dispose();
1410
1602
  },
1411
- // @ts-ignore
1412
1603
  invoke(method, ...params) {
1413
- const rpc = get$3(rpcId);
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
- const rpc = get$3(rpcId);
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
- set(rpc) {
1436
- set$6(rpcId, rpc);
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 Status = 'status';
1442
-
1443
- const MaskIcon = 'MaskIcon';
1444
-
1445
- const Audio = 0;
1446
- const Button$1 = 1;
1447
- const Col = 2;
1448
- const ColGroup = 3;
1449
- const Div = 4;
1450
- const H1 = 5;
1451
- const Input = 6;
1452
- const Kbd = 7;
1453
- const Span = 8;
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 Button = 'event.button';
1615
- const ClientX = 'event.clientX';
1616
- const ClientY = 'event.clientY';
1617
- const TargetName = 'event.target.name';
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 ExtensionManagementWorker = 9006;
1620
- const RendererProcess = 1670;
1621
- const RendererWorker = 1;
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 SetDom2 = 'Viewlet.setDom2';
1624
- const SetFocusContext = 'Viewlet.setFocusContext';
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),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/status-bar-worker",
3
- "version": "3.27.0",
3
+ "version": "3.28.0",
4
4
  "description": "Status Bar Worker",
5
5
  "repository": {
6
6
  "type": "git",