@lvce-editor/status-bar-worker 1.5.0 → 1.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/dist/statusBarWorkerMain.js +308 -142
- package/package.json +1 -1
|
@@ -411,9 +411,103 @@ const IpcChildWithModuleWorkerAndMessagePort$1 = {
|
|
|
411
411
|
listen: listen$6,
|
|
412
412
|
wrap: wrap$e
|
|
413
413
|
};
|
|
414
|
+
const addListener = (emitter, type, callback) => {
|
|
415
|
+
if ('addEventListener' in emitter) {
|
|
416
|
+
emitter.addEventListener(type, callback);
|
|
417
|
+
} else {
|
|
418
|
+
emitter.on(type, callback);
|
|
419
|
+
}
|
|
420
|
+
};
|
|
421
|
+
const removeListener = (emitter, type, callback) => {
|
|
422
|
+
if ('removeEventListener' in emitter) {
|
|
423
|
+
emitter.removeEventListener(type, callback);
|
|
424
|
+
} else {
|
|
425
|
+
emitter.off(type, callback);
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
const getFirstEvent = (eventEmitter, eventMap) => {
|
|
429
|
+
const {
|
|
430
|
+
resolve,
|
|
431
|
+
promise
|
|
432
|
+
} = Promise.withResolvers();
|
|
433
|
+
const listenerMap = Object.create(null);
|
|
434
|
+
const cleanup = value => {
|
|
435
|
+
for (const event of Object.keys(eventMap)) {
|
|
436
|
+
removeListener(eventEmitter, event, listenerMap[event]);
|
|
437
|
+
}
|
|
438
|
+
resolve(value);
|
|
439
|
+
};
|
|
440
|
+
for (const [event, type] of Object.entries(eventMap)) {
|
|
441
|
+
const listener = event => {
|
|
442
|
+
cleanup({
|
|
443
|
+
type,
|
|
444
|
+
event
|
|
445
|
+
});
|
|
446
|
+
};
|
|
447
|
+
addListener(eventEmitter, event, listener);
|
|
448
|
+
listenerMap[event] = listener;
|
|
449
|
+
}
|
|
450
|
+
return promise;
|
|
451
|
+
};
|
|
452
|
+
const Message$1 = 3;
|
|
453
|
+
const create$5$1 = async ({
|
|
454
|
+
messagePort,
|
|
455
|
+
isMessagePortOpen
|
|
456
|
+
}) => {
|
|
457
|
+
if (!isMessagePort(messagePort)) {
|
|
458
|
+
throw new IpcError('port must be of type MessagePort');
|
|
459
|
+
}
|
|
460
|
+
if (isMessagePortOpen) {
|
|
461
|
+
return messagePort;
|
|
462
|
+
}
|
|
463
|
+
const eventPromise = getFirstEvent(messagePort, {
|
|
464
|
+
message: Message$1
|
|
465
|
+
});
|
|
466
|
+
messagePort.start();
|
|
467
|
+
const {
|
|
468
|
+
type,
|
|
469
|
+
event
|
|
470
|
+
} = await eventPromise;
|
|
471
|
+
if (type !== Message$1) {
|
|
472
|
+
throw new IpcError('Failed to wait for ipc message');
|
|
473
|
+
}
|
|
474
|
+
if (event.data !== readyMessage) {
|
|
475
|
+
throw new IpcError('unexpected first message');
|
|
476
|
+
}
|
|
477
|
+
return messagePort;
|
|
478
|
+
};
|
|
479
|
+
const signal$1 = messagePort => {
|
|
480
|
+
messagePort.start();
|
|
481
|
+
};
|
|
482
|
+
class IpcParentWithMessagePort extends Ipc {
|
|
483
|
+
getData = getData$2;
|
|
484
|
+
send(message) {
|
|
485
|
+
this._rawIpc.postMessage(message);
|
|
486
|
+
}
|
|
487
|
+
sendAndTransfer(message) {
|
|
488
|
+
const transfer = getTransferrables(message);
|
|
489
|
+
this._rawIpc.postMessage(message, transfer);
|
|
490
|
+
}
|
|
491
|
+
dispose() {
|
|
492
|
+
this._rawIpc.close();
|
|
493
|
+
}
|
|
494
|
+
onMessage(callback) {
|
|
495
|
+
this._rawIpc.addEventListener('message', callback);
|
|
496
|
+
}
|
|
497
|
+
onClose(callback) {}
|
|
498
|
+
}
|
|
499
|
+
const wrap$5 = messagePort => {
|
|
500
|
+
return new IpcParentWithMessagePort(messagePort);
|
|
501
|
+
};
|
|
502
|
+
const IpcParentWithMessagePort$1 = {
|
|
503
|
+
__proto__: null,
|
|
504
|
+
create: create$5$1,
|
|
505
|
+
signal: signal$1,
|
|
506
|
+
wrap: wrap$5
|
|
507
|
+
};
|
|
414
508
|
|
|
415
509
|
const Two = '2.0';
|
|
416
|
-
const create$4 = (method, params) => {
|
|
510
|
+
const create$4$1 = (method, params) => {
|
|
417
511
|
return {
|
|
418
512
|
jsonrpc: Two,
|
|
419
513
|
method,
|
|
@@ -421,7 +515,7 @@ const create$4 = (method, params) => {
|
|
|
421
515
|
};
|
|
422
516
|
};
|
|
423
517
|
const callbacks = Object.create(null);
|
|
424
|
-
const set$
|
|
518
|
+
const set$4 = (id, fn) => {
|
|
425
519
|
callbacks[id] = fn;
|
|
426
520
|
};
|
|
427
521
|
const get$3 = id => {
|
|
@@ -440,7 +534,7 @@ const registerPromise = () => {
|
|
|
440
534
|
resolve,
|
|
441
535
|
promise
|
|
442
536
|
} = Promise.withResolvers();
|
|
443
|
-
set$
|
|
537
|
+
set$4(id, resolve);
|
|
444
538
|
return {
|
|
445
539
|
id,
|
|
446
540
|
promise
|
|
@@ -668,7 +762,7 @@ const getErrorResponse = (id, error, preparePrettyError, logError) => {
|
|
|
668
762
|
const errorProperty = getErrorProperty(error, prettyError);
|
|
669
763
|
return create$1$1(id, errorProperty);
|
|
670
764
|
};
|
|
671
|
-
const create$
|
|
765
|
+
const create$6 = (message, result) => {
|
|
672
766
|
return {
|
|
673
767
|
jsonrpc: Two,
|
|
674
768
|
id: message.id,
|
|
@@ -677,7 +771,7 @@ const create$5 = (message, result) => {
|
|
|
677
771
|
};
|
|
678
772
|
const getSuccessResponse = (message, result) => {
|
|
679
773
|
const resultProperty = result ?? null;
|
|
680
|
-
return create$
|
|
774
|
+
return create$6(message, resultProperty);
|
|
681
775
|
};
|
|
682
776
|
const getErrorResponseSimple = (id, error) => {
|
|
683
777
|
return {
|
|
@@ -782,13 +876,13 @@ const invokeHelper = async (ipc, method, params, useSendAndTransfer) => {
|
|
|
782
876
|
return unwrapJsonRpcResult(responseMessage);
|
|
783
877
|
};
|
|
784
878
|
const send = (transport, method, ...params) => {
|
|
785
|
-
const message = create$4(method, params);
|
|
879
|
+
const message = create$4$1(method, params);
|
|
786
880
|
transport.send(message);
|
|
787
881
|
};
|
|
788
882
|
const invoke$2 = (ipc, method, ...params) => {
|
|
789
883
|
return invokeHelper(ipc, method, params, false);
|
|
790
884
|
};
|
|
791
|
-
const invokeAndTransfer = (ipc, method, ...params) => {
|
|
885
|
+
const invokeAndTransfer$1 = (ipc, method, ...params) => {
|
|
792
886
|
return invokeHelper(ipc, method, params, true);
|
|
793
887
|
};
|
|
794
888
|
|
|
@@ -827,7 +921,7 @@ const createRpc = ipc => {
|
|
|
827
921
|
return invoke$2(ipc, method, ...params);
|
|
828
922
|
},
|
|
829
923
|
invokeAndTransfer(method, ...params) {
|
|
830
|
-
return invokeAndTransfer(ipc, method, ...params);
|
|
924
|
+
return invokeAndTransfer$1(ipc, method, ...params);
|
|
831
925
|
},
|
|
832
926
|
async dispose() {
|
|
833
927
|
await ipc?.dispose();
|
|
@@ -865,7 +959,41 @@ const listen$1 = async (module, options) => {
|
|
|
865
959
|
const ipc = module.wrap(rawIpc);
|
|
866
960
|
return ipc;
|
|
867
961
|
};
|
|
962
|
+
const create$5 = async ({
|
|
963
|
+
commandMap,
|
|
964
|
+
messagePort
|
|
965
|
+
}) => {
|
|
966
|
+
// TODO create a commandMap per rpc instance
|
|
967
|
+
register(commandMap);
|
|
968
|
+
const rawIpc = await IpcParentWithMessagePort$1.create({
|
|
969
|
+
messagePort,
|
|
970
|
+
isMessagePortOpen: true
|
|
971
|
+
});
|
|
972
|
+
const ipc = IpcParentWithMessagePort$1.wrap(rawIpc);
|
|
973
|
+
handleIpc(ipc);
|
|
974
|
+
const rpc = createRpc(ipc);
|
|
975
|
+
messagePort.start();
|
|
976
|
+
return rpc;
|
|
977
|
+
};
|
|
868
978
|
const create$3 = async ({
|
|
979
|
+
commandMap,
|
|
980
|
+
send
|
|
981
|
+
}) => {
|
|
982
|
+
const {
|
|
983
|
+
port1,
|
|
984
|
+
port2
|
|
985
|
+
} = new MessageChannel();
|
|
986
|
+
await send(port1);
|
|
987
|
+
return create$5({
|
|
988
|
+
commandMap,
|
|
989
|
+
messagePort: port2
|
|
990
|
+
});
|
|
991
|
+
};
|
|
992
|
+
const TransferMessagePortRpcParent = {
|
|
993
|
+
__proto__: null,
|
|
994
|
+
create: create$3
|
|
995
|
+
};
|
|
996
|
+
const create$4 = async ({
|
|
869
997
|
commandMap
|
|
870
998
|
}) => {
|
|
871
999
|
// TODO create a commandMap per rpc instance
|
|
@@ -877,14 +1005,78 @@ const create$3 = async ({
|
|
|
877
1005
|
};
|
|
878
1006
|
const WebWorkerRpcClient = {
|
|
879
1007
|
__proto__: null,
|
|
880
|
-
create: create$
|
|
1008
|
+
create: create$4
|
|
1009
|
+
};
|
|
1010
|
+
|
|
1011
|
+
const Button = 'button';
|
|
1012
|
+
|
|
1013
|
+
const Div = 4;
|
|
1014
|
+
const Text = 12;
|
|
1015
|
+
|
|
1016
|
+
const TargetName = 'event.target.name';
|
|
1017
|
+
|
|
1018
|
+
const ExtensionHostWorker = 44;
|
|
1019
|
+
const RendererWorker = 1;
|
|
1020
|
+
const SourceControlWorker = 66;
|
|
1021
|
+
|
|
1022
|
+
const SetDom2 = 'Viewlet.setDom2';
|
|
1023
|
+
|
|
1024
|
+
const rpcs = Object.create(null);
|
|
1025
|
+
const set$3 = (id, rpc) => {
|
|
1026
|
+
rpcs[id] = rpc;
|
|
1027
|
+
};
|
|
1028
|
+
const get$2 = id => {
|
|
1029
|
+
return rpcs[id];
|
|
1030
|
+
};
|
|
1031
|
+
|
|
1032
|
+
const create$2 = rpcId => {
|
|
1033
|
+
return {
|
|
1034
|
+
// @ts-ignore
|
|
1035
|
+
invoke(method, ...params) {
|
|
1036
|
+
const rpc = get$2(rpcId);
|
|
1037
|
+
// @ts-ignore
|
|
1038
|
+
return rpc.invoke(method, ...params);
|
|
1039
|
+
},
|
|
1040
|
+
// @ts-ignore
|
|
1041
|
+
invokeAndTransfer(method, ...params) {
|
|
1042
|
+
const rpc = get$2(rpcId);
|
|
1043
|
+
// @ts-ignore
|
|
1044
|
+
return rpc.invokeAndTransfer(method, ...params);
|
|
1045
|
+
},
|
|
1046
|
+
set(rpc) {
|
|
1047
|
+
set$3(rpcId, rpc);
|
|
1048
|
+
},
|
|
1049
|
+
async dispose() {
|
|
1050
|
+
const rpc = get$2(rpcId);
|
|
1051
|
+
await rpc.dispose();
|
|
1052
|
+
}
|
|
1053
|
+
};
|
|
1054
|
+
};
|
|
1055
|
+
|
|
1056
|
+
const {
|
|
1057
|
+
invoke: invoke$1,
|
|
1058
|
+
set: set$2} = create$2(ExtensionHostWorker);
|
|
1059
|
+
|
|
1060
|
+
const {
|
|
1061
|
+
invoke,
|
|
1062
|
+
invokeAndTransfer,
|
|
1063
|
+
set: set$1} = create$2(RendererWorker);
|
|
1064
|
+
const sendMessagePortToExtensionHostWorker$1 = async (port, rpcId = 0) => {
|
|
1065
|
+
const command = 'HandleMessagePort.handleMessagePort2';
|
|
1066
|
+
await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
|
|
1067
|
+
};
|
|
1068
|
+
const activateByEvent$1 = event => {
|
|
1069
|
+
return invoke('ExtensionHostManagement.activateByEvent', event);
|
|
1070
|
+
};
|
|
1071
|
+
const getPreference = async key => {
|
|
1072
|
+
return await invoke('Preferences.get', key);
|
|
881
1073
|
};
|
|
882
1074
|
|
|
883
1075
|
const toCommandId = key => {
|
|
884
1076
|
const dotIndex = key.indexOf('.');
|
|
885
1077
|
return key.slice(dotIndex + 1);
|
|
886
1078
|
};
|
|
887
|
-
const create$
|
|
1079
|
+
const create$1 = () => {
|
|
888
1080
|
const states = Object.create(null);
|
|
889
1081
|
const commandMapRef = {};
|
|
890
1082
|
return {
|
|
@@ -966,17 +1158,19 @@ const terminate = () => {
|
|
|
966
1158
|
};
|
|
967
1159
|
|
|
968
1160
|
const {
|
|
969
|
-
get: get$
|
|
970
|
-
|
|
971
|
-
|
|
1161
|
+
get: get$1,
|
|
1162
|
+
getCommandIds,
|
|
1163
|
+
registerCommands,
|
|
1164
|
+
set,
|
|
1165
|
+
wrapCommand} = create$1();
|
|
972
1166
|
|
|
973
|
-
const create
|
|
1167
|
+
const create = uid => {
|
|
974
1168
|
const state = {
|
|
975
1169
|
statusBarItemsLeft: [],
|
|
976
1170
|
statusBarItemsRight: [],
|
|
977
1171
|
uid
|
|
978
1172
|
};
|
|
979
|
-
set
|
|
1173
|
+
set(uid, state, state);
|
|
980
1174
|
};
|
|
981
1175
|
|
|
982
1176
|
const isEqual = (oldState, newState) => {
|
|
@@ -1003,21 +1197,68 @@ const diff2 = uid => {
|
|
|
1003
1197
|
const {
|
|
1004
1198
|
newState,
|
|
1005
1199
|
oldState
|
|
1006
|
-
} = get$
|
|
1200
|
+
} = get$1(uid);
|
|
1007
1201
|
const result = diff(oldState, newState);
|
|
1008
1202
|
return result;
|
|
1009
1203
|
};
|
|
1010
1204
|
|
|
1011
|
-
const
|
|
1205
|
+
const Notifications = 'Notifications';
|
|
1206
|
+
|
|
1207
|
+
const getMatchingItem = (itemsLeft, itemsRight, name) => {
|
|
1208
|
+
for (const item of itemsLeft) {
|
|
1209
|
+
if (item.name === name) {
|
|
1210
|
+
return item;
|
|
1211
|
+
}
|
|
1212
|
+
}
|
|
1213
|
+
for (const item of itemsRight) {
|
|
1214
|
+
if (item.name === name) {
|
|
1215
|
+
return item;
|
|
1216
|
+
}
|
|
1217
|
+
}
|
|
1218
|
+
return undefined;
|
|
1219
|
+
};
|
|
1220
|
+
const handleClickNotification = async () => {
|
|
1221
|
+
// TODO toggle notifications
|
|
1222
|
+
};
|
|
1223
|
+
const handleClick = async (state, name) => {
|
|
1224
|
+
if (!name) {
|
|
1225
|
+
return state;
|
|
1226
|
+
}
|
|
1227
|
+
const {
|
|
1228
|
+
statusBarItemsLeft,
|
|
1229
|
+
statusBarItemsRight
|
|
1230
|
+
} = state;
|
|
1231
|
+
const item = getMatchingItem(statusBarItemsLeft, statusBarItemsRight, name);
|
|
1232
|
+
if (!item) {
|
|
1233
|
+
return state;
|
|
1234
|
+
}
|
|
1235
|
+
if (item.name === Notifications) {
|
|
1236
|
+
await handleClickNotification();
|
|
1237
|
+
}
|
|
1012
1238
|
// TODO
|
|
1013
1239
|
// sendExtensionWorker([/* statusBarItemHandleClick */ 7657, /* name */ name])
|
|
1014
1240
|
return state;
|
|
1015
1241
|
};
|
|
1016
1242
|
|
|
1017
|
-
const
|
|
1243
|
+
const sendMessagePortToExtensionHostWorker = async port => {
|
|
1244
|
+
await sendMessagePortToExtensionHostWorker$1(port, SourceControlWorker);
|
|
1245
|
+
};
|
|
1246
|
+
|
|
1247
|
+
const createExtensionHostRpc = async () => {
|
|
1248
|
+
try {
|
|
1249
|
+
const rpc = await TransferMessagePortRpcParent.create({
|
|
1250
|
+
commandMap: {},
|
|
1251
|
+
send: sendMessagePortToExtensionHostWorker
|
|
1252
|
+
});
|
|
1253
|
+
return rpc;
|
|
1254
|
+
} catch (error) {
|
|
1255
|
+
throw new VError(error, `Failed to create extension host rpc`);
|
|
1256
|
+
}
|
|
1257
|
+
};
|
|
1018
1258
|
|
|
1019
1259
|
const initialize = async () => {
|
|
1020
|
-
await
|
|
1260
|
+
const rpc = await createExtensionHostRpc();
|
|
1261
|
+
set$2(rpc);
|
|
1021
1262
|
};
|
|
1022
1263
|
|
|
1023
1264
|
const getIndex = (items, item) => {
|
|
@@ -1068,68 +1309,6 @@ const OnStatusBarItem = 'onStatusBarItem';
|
|
|
1068
1309
|
|
|
1069
1310
|
const GetStatusBarItems = 'ExtensionHost.getStatusBarItems';
|
|
1070
1311
|
|
|
1071
|
-
const Button$1 = 'button';
|
|
1072
|
-
|
|
1073
|
-
const Div = 4;
|
|
1074
|
-
const Text = 12;
|
|
1075
|
-
|
|
1076
|
-
const Button = 'event.button';
|
|
1077
|
-
const ClientX = 'event.clientX';
|
|
1078
|
-
const ClientY = 'event.clientY';
|
|
1079
|
-
const DeltaMode = 'event.deltaMode';
|
|
1080
|
-
const DeltaY = 'event.deltaY';
|
|
1081
|
-
const TargetName = 'event.target.name';
|
|
1082
|
-
const TargetValue = 'event.target.value';
|
|
1083
|
-
|
|
1084
|
-
const ExtensionHostWorker = 44;
|
|
1085
|
-
const RendererWorker = 1;
|
|
1086
|
-
|
|
1087
|
-
const SetDom2 = 'Viewlet.setDom2';
|
|
1088
|
-
|
|
1089
|
-
const rpcs = Object.create(null);
|
|
1090
|
-
const set = (id, rpc) => {
|
|
1091
|
-
rpcs[id] = rpc;
|
|
1092
|
-
};
|
|
1093
|
-
const get$1 = id => {
|
|
1094
|
-
return rpcs[id];
|
|
1095
|
-
};
|
|
1096
|
-
|
|
1097
|
-
const create = rpcId => {
|
|
1098
|
-
return {
|
|
1099
|
-
// @ts-ignore
|
|
1100
|
-
invoke(method, ...params) {
|
|
1101
|
-
const rpc = get$1(rpcId);
|
|
1102
|
-
// @ts-ignore
|
|
1103
|
-
return rpc.invoke(method, ...params);
|
|
1104
|
-
},
|
|
1105
|
-
// @ts-ignore
|
|
1106
|
-
invokeAndTransfer(method, ...params) {
|
|
1107
|
-
const rpc = get$1(rpcId);
|
|
1108
|
-
// @ts-ignore
|
|
1109
|
-
return rpc.invokeAndTransfer(method, ...params);
|
|
1110
|
-
},
|
|
1111
|
-
set(rpc) {
|
|
1112
|
-
set(rpcId, rpc);
|
|
1113
|
-
},
|
|
1114
|
-
async dispose() {
|
|
1115
|
-
const rpc = get$1(rpcId);
|
|
1116
|
-
await rpc.dispose();
|
|
1117
|
-
}
|
|
1118
|
-
};
|
|
1119
|
-
};
|
|
1120
|
-
|
|
1121
|
-
const {
|
|
1122
|
-
invoke: invoke$1} = create(ExtensionHostWorker);
|
|
1123
|
-
|
|
1124
|
-
const {
|
|
1125
|
-
invoke} = create(RendererWorker);
|
|
1126
|
-
const activateByEvent$1 = event => {
|
|
1127
|
-
return invoke('ExtensionHostManagement.activateByEvent', event);
|
|
1128
|
-
};
|
|
1129
|
-
const getPreference = async key => {
|
|
1130
|
-
return await invoke('Preferences.get', key);
|
|
1131
|
-
};
|
|
1132
|
-
|
|
1133
1312
|
const activateByEvent = event => {
|
|
1134
1313
|
return activateByEvent$1(event);
|
|
1135
1314
|
};
|
|
@@ -1184,7 +1363,14 @@ const getStatusBarItems = async showItems => {
|
|
|
1184
1363
|
await activateByEvent('onSourceControl');
|
|
1185
1364
|
const extensionStatusBarItems = await getStatusBarItems$1();
|
|
1186
1365
|
const uiStatusBarItems = toUiStatusBarItems(extensionStatusBarItems);
|
|
1187
|
-
|
|
1366
|
+
const extraItems = [{
|
|
1367
|
+
command: '',
|
|
1368
|
+
icon: '',
|
|
1369
|
+
name: Notifications,
|
|
1370
|
+
text: 'Notifications',
|
|
1371
|
+
tooltip: ''
|
|
1372
|
+
}];
|
|
1373
|
+
return [...uiStatusBarItems, ...extraItems];
|
|
1188
1374
|
};
|
|
1189
1375
|
|
|
1190
1376
|
const get = async key => {
|
|
@@ -1192,7 +1378,7 @@ const get = async key => {
|
|
|
1192
1378
|
};
|
|
1193
1379
|
|
|
1194
1380
|
const itemsVisible = async () => {
|
|
1195
|
-
const statusBarItemsPreference = (await get('statusBar.itemsVisible')) ??
|
|
1381
|
+
const statusBarItemsPreference = (await get('statusBar.itemsVisible')) ?? true;
|
|
1196
1382
|
return statusBarItemsPreference;
|
|
1197
1383
|
};
|
|
1198
1384
|
|
|
@@ -1201,14 +1387,11 @@ const loadContent = async state => {
|
|
|
1201
1387
|
const statusBarItems = await getStatusBarItems(statusBarItemsPreference);
|
|
1202
1388
|
return {
|
|
1203
1389
|
...state,
|
|
1204
|
-
statusBarItemsLeft: [...statusBarItems]
|
|
1390
|
+
statusBarItemsLeft: [...statusBarItems],
|
|
1391
|
+
statusBarItemsRight: []
|
|
1205
1392
|
};
|
|
1206
1393
|
};
|
|
1207
1394
|
|
|
1208
|
-
const StatusBarItem = 'StatusBarItem';
|
|
1209
|
-
const StatusBarItemsLeft = 'StatusBarItemsLeft';
|
|
1210
|
-
const StatusBarItemsRight = 'StatusBarItemsRight';
|
|
1211
|
-
|
|
1212
1395
|
const text = data => {
|
|
1213
1396
|
return {
|
|
1214
1397
|
type: Text,
|
|
@@ -1217,14 +1400,22 @@ const text = data => {
|
|
|
1217
1400
|
};
|
|
1218
1401
|
};
|
|
1219
1402
|
|
|
1403
|
+
const StatusBarItem = 'StatusBarItem';
|
|
1404
|
+
const StatusBarItemsLeft = 'StatusBarItemsLeft';
|
|
1405
|
+
const StatusBarItemsRight = 'StatusBarItemsRight';
|
|
1406
|
+
|
|
1407
|
+
const HandleClick = 11;
|
|
1408
|
+
|
|
1220
1409
|
const getStatusBarItemVirtualDom = statusBarItem => {
|
|
1221
1410
|
const {
|
|
1411
|
+
name,
|
|
1222
1412
|
tooltip
|
|
1223
1413
|
} = statusBarItem;
|
|
1224
1414
|
return [{
|
|
1225
1415
|
childCount: 1,
|
|
1226
1416
|
className: StatusBarItem,
|
|
1227
|
-
|
|
1417
|
+
name,
|
|
1418
|
+
role: Button,
|
|
1228
1419
|
tabIndex: -1,
|
|
1229
1420
|
title: tooltip,
|
|
1230
1421
|
type: Div
|
|
@@ -1232,6 +1423,9 @@ const getStatusBarItemVirtualDom = statusBarItem => {
|
|
|
1232
1423
|
};
|
|
1233
1424
|
|
|
1234
1425
|
const getStatusBarItemsVirtualDom = (items, className) => {
|
|
1426
|
+
if (items.length === 0) {
|
|
1427
|
+
return [];
|
|
1428
|
+
}
|
|
1235
1429
|
return [{
|
|
1236
1430
|
childCount: items.length,
|
|
1237
1431
|
className,
|
|
@@ -1239,14 +1433,23 @@ const getStatusBarItemsVirtualDom = (items, className) => {
|
|
|
1239
1433
|
}, ...items.flatMap(getStatusBarItemVirtualDom)];
|
|
1240
1434
|
};
|
|
1241
1435
|
|
|
1242
|
-
const
|
|
1243
|
-
|
|
1244
|
-
if (
|
|
1245
|
-
|
|
1436
|
+
const getChildCount = (leftCount, rightCount) => {
|
|
1437
|
+
let count = 0;
|
|
1438
|
+
if (leftCount > 0) {
|
|
1439
|
+
count++;
|
|
1246
1440
|
}
|
|
1247
|
-
if (
|
|
1248
|
-
|
|
1441
|
+
if (rightCount > 0) {
|
|
1442
|
+
count++;
|
|
1249
1443
|
}
|
|
1444
|
+
return count;
|
|
1445
|
+
};
|
|
1446
|
+
const getStatusBarVirtualDom = (statusBarItemsLeft, statusBarItemsRight) => {
|
|
1447
|
+
const dom = [{
|
|
1448
|
+
childCount: getChildCount(statusBarItemsLeft.length, statusBarItemsRight.length),
|
|
1449
|
+
className: 'StatusBar',
|
|
1450
|
+
onClick: HandleClick,
|
|
1451
|
+
type: Div
|
|
1452
|
+
}, ...getStatusBarItemsVirtualDom(statusBarItemsLeft, StatusBarItemsLeft), ...getStatusBarItemsVirtualDom(statusBarItemsRight, StatusBarItemsRight)];
|
|
1250
1453
|
return dom;
|
|
1251
1454
|
};
|
|
1252
1455
|
|
|
@@ -1285,56 +1488,16 @@ const render2 = (uid, diffResult) => {
|
|
|
1285
1488
|
const {
|
|
1286
1489
|
newState,
|
|
1287
1490
|
oldState
|
|
1288
|
-
} = get$
|
|
1289
|
-
set
|
|
1491
|
+
} = get$1(uid);
|
|
1492
|
+
set(uid, newState, newState);
|
|
1290
1493
|
const commands = applyRender(oldState, newState, diffResult);
|
|
1291
1494
|
return commands;
|
|
1292
1495
|
};
|
|
1293
1496
|
|
|
1294
|
-
const HandleClickAt = 1;
|
|
1295
|
-
const HandleContextMenu = 2;
|
|
1296
|
-
const HandleFocus = 3;
|
|
1297
|
-
const HandleInput = 4;
|
|
1298
|
-
const HandleMouseOutAt = 6;
|
|
1299
|
-
const HandleMouseOver = 7;
|
|
1300
|
-
const HandleMouseOverAt = 8;
|
|
1301
|
-
const HandleWheel = 9;
|
|
1302
|
-
const HandleClickAction = 10;
|
|
1303
|
-
|
|
1304
1497
|
const renderEventListeners = () => {
|
|
1305
1498
|
return [{
|
|
1306
|
-
name:
|
|
1307
|
-
params: ['
|
|
1308
|
-
passive: true
|
|
1309
|
-
}, {
|
|
1310
|
-
name: HandleFocus,
|
|
1311
|
-
params: ['handleFocus']
|
|
1312
|
-
}, {
|
|
1313
|
-
name: HandleClickAt,
|
|
1314
|
-
params: ['handleClickAt', ClientX, ClientY, TargetName]
|
|
1315
|
-
}, {
|
|
1316
|
-
name: HandleMouseOverAt,
|
|
1317
|
-
params: ['handleMouseOverAt', ClientX, ClientY]
|
|
1318
|
-
}, {
|
|
1319
|
-
name: HandleMouseOver,
|
|
1320
|
-
params: ['handleMouseOver', ClientX, ClientY]
|
|
1321
|
-
}, {
|
|
1322
|
-
name: HandleMouseOutAt,
|
|
1323
|
-
params: ['handleMouseOutAt', ClientX, ClientY]
|
|
1324
|
-
}, {
|
|
1325
|
-
name: HandleInput,
|
|
1326
|
-
params: ['handleInput', TargetValue]
|
|
1327
|
-
}, {
|
|
1328
|
-
name: HandleContextMenu,
|
|
1329
|
-
params: ['handleContextMenu', Button, ClientX, ClientY],
|
|
1330
|
-
preventDefault: true
|
|
1331
|
-
}, {
|
|
1332
|
-
name: HandleWheel,
|
|
1333
|
-
params: ['handleWheel', DeltaMode, DeltaY],
|
|
1334
|
-
passive: true
|
|
1335
|
-
}, {
|
|
1336
|
-
name: HandleClickAction,
|
|
1337
|
-
params: ['handleActionClick', TargetName]
|
|
1499
|
+
name: HandleClick,
|
|
1500
|
+
params: ['handleClick', TargetName]
|
|
1338
1501
|
}];
|
|
1339
1502
|
};
|
|
1340
1503
|
|
|
@@ -1347,7 +1510,7 @@ const resize = (state, dimensions) => {
|
|
|
1347
1510
|
|
|
1348
1511
|
const saveState = uid => {
|
|
1349
1512
|
number(uid);
|
|
1350
|
-
const value = get$
|
|
1513
|
+
const value = get$1(uid);
|
|
1351
1514
|
const {
|
|
1352
1515
|
newState
|
|
1353
1516
|
} = value;
|
|
@@ -1362,8 +1525,9 @@ const saveState = uid => {
|
|
|
1362
1525
|
};
|
|
1363
1526
|
|
|
1364
1527
|
const commandMap = {
|
|
1365
|
-
'StatusBar.create': create
|
|
1528
|
+
'StatusBar.create': create,
|
|
1366
1529
|
'StatusBar.diff2': diff2,
|
|
1530
|
+
'StatusBar.getCommandIds': getCommandIds,
|
|
1367
1531
|
'StatusBar.handleClick': wrapCommand(handleClick),
|
|
1368
1532
|
'StatusBar.initialize': initialize,
|
|
1369
1533
|
'StatusBar.itemLeftUpdate': wrapCommand(itemLeftUpdate),
|
|
@@ -1378,9 +1542,11 @@ const commandMap = {
|
|
|
1378
1542
|
};
|
|
1379
1543
|
|
|
1380
1544
|
const listen = async () => {
|
|
1381
|
-
|
|
1545
|
+
registerCommands(commandMap);
|
|
1546
|
+
const rpc = await WebWorkerRpcClient.create({
|
|
1382
1547
|
commandMap: commandMap
|
|
1383
1548
|
});
|
|
1549
|
+
set$1(rpc);
|
|
1384
1550
|
};
|
|
1385
1551
|
|
|
1386
1552
|
const main = async () => {
|