@lvce-editor/renderer-process 10.27.0 → 10.29.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.
@@ -19,7 +19,6 @@ const Download = 5;
19
19
  const EditorController = 6;
20
20
  const EditorError$1 = 7;
21
21
  const EditorHover$1 = 8;
22
- const EditorRename$1 = 9;
23
22
  const ImagePreview$2 = 10;
24
23
  const InitData = 11;
25
24
  const Layout$1 = 12;
@@ -91,10 +90,6 @@ const getModuleId = commandId => {
91
90
  return EditorError$1;
92
91
  case 'EditorHover.create':
93
92
  return EditorHover$1;
94
- case 'EditorRename.create':
95
- case 'EditorRename.dispose':
96
- case 'EditorRename.finish':
97
- return EditorRename$1;
98
93
  case 'FilePicker.showDirectoryPicker':
99
94
  case 'FilePicker.showFilePicker':
100
95
  case 'FilePicker.showSaveFilePicker':
@@ -179,6 +174,7 @@ const getModuleId = commandId => {
179
174
  case 'Viewlet.send':
180
175
  case 'Viewlet.sendMultiple':
181
176
  case 'Viewlet.setBounds':
177
+ case 'Viewlet.registerEventListeners':
182
178
  return Viewlet;
183
179
  case 549:
184
180
  case 550:
@@ -349,16 +345,16 @@ const setLoad = load => {
349
345
  };
350
346
 
351
347
  const ipcs = Object.create(null);
352
- const set$7 = (name, ipc) => {
348
+ const set$8 = (name, ipc) => {
353
349
  ipcs[name] = ipc;
354
350
  };
355
- const get$8 = name => {
351
+ const get$9 = name => {
356
352
  return ipcs[name];
357
353
  };
358
354
  const remove$4 = name => {
359
355
  delete ipcs[name];
360
356
  };
361
- const has = name => {
357
+ const has$1 = name => {
362
358
  return ipcs[name];
363
359
  };
364
360
 
@@ -461,10 +457,10 @@ const create$4$1 = (method, params) => {
461
457
  const state$a = {
462
458
  callbacks: Object.create(null)
463
459
  };
464
- const set$6 = (id, fn) => {
460
+ const set$7 = (id, fn) => {
465
461
  state$a.callbacks[id] = fn;
466
462
  };
467
- const get$7 = id => {
463
+ const get$8 = id => {
468
464
  return state$a.callbacks[id];
469
465
  };
470
466
  const remove$3 = id => {
@@ -483,14 +479,14 @@ const registerPromise = () => {
483
479
  resolve,
484
480
  promise
485
481
  } = Promise.withResolvers();
486
- set$6(id, resolve);
482
+ set$7(id, resolve);
487
483
  return {
488
484
  id,
489
485
  promise
490
486
  };
491
487
  };
492
488
  const resolve = (id, response) => {
493
- const fn = get$7(id);
489
+ const fn = get$8(id);
494
490
  if (!fn) {
495
491
  console.log(response);
496
492
  warn$1(`callback ${id} may already be disposed`);
@@ -689,7 +685,7 @@ const getErrorResponse = (message, error, preparePrettyError, logError) => {
689
685
  const errorProperty = getErrorProperty(error, prettyError);
690
686
  return create$1$1(message, errorProperty);
691
687
  };
692
- const create$N = (message, result) => {
688
+ const create$M = (message, result) => {
693
689
  return {
694
690
  jsonrpc: Two,
695
691
  id: message.id,
@@ -698,7 +694,7 @@ const create$N = (message, result) => {
698
694
  };
699
695
  const getSuccessResponse = (message, result) => {
700
696
  const resultProperty = result ?? null;
701
- return create$N(message, resultProperty);
697
+ return create$M(message, resultProperty);
702
698
  };
703
699
  const getResponse = async (message, ipc, execute, preparePrettyError, logError, requiresSocket) => {
704
700
  try {
@@ -882,7 +878,7 @@ const launchWorker = async ({
882
878
  name,
883
879
  url
884
880
  }) => {
885
- const worker = await create$M({
881
+ const worker = await create$L({
886
882
  method: Auto,
887
883
  url,
888
884
  name
@@ -957,7 +953,7 @@ const hydrate$4 = async () => {
957
953
  };
958
954
 
959
955
  // TODO needed?
960
- const dispose$p = () => {
956
+ const dispose$o = () => {
961
957
  // @ts-expect-error
962
958
  if (state$9.rendererWorker) {
963
959
  // @ts-expect-error
@@ -980,7 +976,7 @@ const invokeAndTransfer = (method, ...params) => {
980
976
 
981
977
  const RendererWorker = {
982
978
  __proto__: null,
983
- dispose: dispose$p,
979
+ dispose: dispose$o,
984
980
  hydrate: hydrate$4,
985
981
  invoke: invoke$1,
986
982
  invokeAndTransfer,
@@ -989,17 +985,17 @@ const RendererWorker = {
989
985
  state: state$9
990
986
  };
991
987
 
992
- const create$M = async ({
988
+ const create$L = async ({
993
989
  method,
994
990
  ...options
995
991
  }) => {
996
- if (options.name && has(options.name)) {
992
+ if (options.name && has$1(options.name)) {
997
993
  if (!options.id) {
998
994
  throw new Error('id is required');
999
995
  }
1000
996
  // TODO rename method
1001
997
  // TODO avoid cyclic dependency
1002
- const port = get$8(options.name);
998
+ const port = get$9(options.name);
1003
999
  remove$4(options.name);
1004
1000
  await invokeAndTransfer('Transferrable.transfer', options.id, port);
1005
1001
  return;
@@ -1010,7 +1006,7 @@ const create$M = async ({
1010
1006
  };
1011
1007
 
1012
1008
  const launchEditorWorker = async port => {
1013
- const ipc = await create$M({
1009
+ const ipc = await create$L({
1014
1010
  name: 'Editor Worker',
1015
1011
  url: editorWorkerUrl,
1016
1012
  method: ModuleWorkerWithMessagePort,
@@ -1026,7 +1022,7 @@ const hydrate$3 = async () => {
1026
1022
  } = new MessageChannel();
1027
1023
  // TODO only launch port and send to renderer worker
1028
1024
  const promise = launchEditorWorker(port1);
1029
- set$7('Editor Worker', port2);
1025
+ set$8('Editor Worker', port2);
1030
1026
  await promise;
1031
1027
  };
1032
1028
 
@@ -1040,7 +1036,7 @@ const extensionHostWorkerUrl = getConfiguredExtensionHostWorkerUrl() || `${asset
1040
1036
 
1041
1037
  const launchExtensionHostWorker = async port => {
1042
1038
  const name = isElectron ? 'Extension Host (Electron)' : 'Extension Host';
1043
- const ipc = await create$M({
1039
+ const ipc = await create$L({
1044
1040
  name,
1045
1041
  url: extensionHostWorkerUrl,
1046
1042
  method: ModuleWorkerWithMessagePort,
@@ -1057,14 +1053,14 @@ const hydrate$2 = async () => {
1057
1053
  // TODO only launch port and send to renderer worker
1058
1054
  const promise = launchExtensionHostWorker(port1);
1059
1055
  const name = isElectron ? 'Extension Host (Electron)' : 'Extension Host';
1060
- set$7(name, port2);
1056
+ set$8(name, port2);
1061
1057
  await promise;
1062
1058
  };
1063
1059
 
1064
1060
  const syntaxHighlightingWorkerUrl = `${assetDir}/packages/renderer-worker/node_modules/@lvce-editor/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js`;
1065
1061
 
1066
1062
  const launchSyntaxHighlightingWorker = async port => {
1067
- const ipc = await create$M({
1063
+ const ipc = await create$L({
1068
1064
  name: 'Syntax Highlighting Worker',
1069
1065
  url: syntaxHighlightingWorkerUrl,
1070
1066
  method: ModuleWorkerWithMessagePort,
@@ -1080,7 +1076,7 @@ const hydrate$1 = async () => {
1080
1076
  } = new MessageChannel();
1081
1077
  // TODO only launch port and send to renderer worker
1082
1078
  const promise = launchSyntaxHighlightingWorker(port1);
1083
- set$7('Syntax Highlighting Worker', port2);
1079
+ set$8('Syntax Highlighting Worker', port2);
1084
1080
  await promise;
1085
1081
  };
1086
1082
 
@@ -1106,8 +1102,6 @@ const load$2 = moduleId => {
1106
1102
  return Promise.resolve().then(function () { return Download_ipc; });
1107
1103
  case EditorError$1:
1108
1104
  return Promise.resolve().then(function () { return EditorError_ipc; });
1109
- case EditorRename$1:
1110
- return Promise.resolve().then(function () { return EditorRename_ipc; });
1111
1105
  case FilePicker:
1112
1106
  return Promise.resolve().then(function () { return FilePicker_ipc; });
1113
1107
  case FileSystemHandle:
@@ -1169,11 +1163,10 @@ const load$2 = moduleId => {
1169
1163
  }
1170
1164
  };
1171
1165
 
1172
- // src/parts/ComponentUid/ComponentUid.ts
1166
+ // src/parts/UidSymbol/UidSymbol.ts
1173
1167
  var uidSymbol = Symbol("uid");
1174
- var setComponentUid = ($Element, uid) => {
1175
- $Element[uidSymbol] = uid;
1176
- };
1168
+
1169
+ // src/parts/GetUidTarget/GetUidTarget.ts
1177
1170
  var getUidTarget = $Element => {
1178
1171
  while ($Element) {
1179
1172
  if ($Element[uidSymbol]) {
@@ -1183,6 +1176,11 @@ var getUidTarget = $Element => {
1183
1176
  }
1184
1177
  return void 0;
1185
1178
  };
1179
+
1180
+ // src/parts/ComponentUid/ComponentUid.ts
1181
+ var setComponentUid = ($Element, uid) => {
1182
+ $Element[uidSymbol] = uid;
1183
+ };
1186
1184
  var getComponentUid = $Element => {
1187
1185
  const $Target = getUidTarget($Element);
1188
1186
  if (!$Target) {
@@ -1209,6 +1207,47 @@ var setIpc = value => {
1209
1207
  state$8.ipc = value;
1210
1208
  };
1211
1209
 
1210
+ // src/parts/NameAnonymousFunction/NameAnonymousFunction.ts
1211
+ var nameAnonymousFunction$1 = (fn, name) => {
1212
+ Object.defineProperty(fn, "name", {
1213
+ value: name
1214
+ });
1215
+ };
1216
+
1217
+ // src/parts/RegisterEventListeners/RegisterEventListeners.ts
1218
+ var listeners = /* @__PURE__ */Object.create(null);
1219
+ var getArgs = (params, event) => {
1220
+ return [...params];
1221
+ };
1222
+ var createFn = info => {
1223
+ const fn = event => {
1224
+ if (info.preventDefault) {
1225
+ event.preventDefault(event);
1226
+ }
1227
+ const uid = getComponentUidFromEvent(event);
1228
+ const args = getArgs(info.params);
1229
+ if (args.length === 0) {
1230
+ return;
1231
+ }
1232
+ const ipc = getIpc();
1233
+ ipc.send("Viewlet.executeViewletCommand", uid, ...args);
1234
+ };
1235
+ nameAnonymousFunction$1(fn, info.name);
1236
+ return fn;
1237
+ };
1238
+ var registerEventListeners = (id, eventListeners) => {
1239
+ const map = /* @__PURE__ */Object.create(null);
1240
+ for (const info of eventListeners) {
1241
+ const fn = createFn(info);
1242
+ map[info.name] = fn;
1243
+ }
1244
+ listeners[id] = map;
1245
+ };
1246
+ var getEventListenerMap = id => {
1247
+ const map = listeners[id];
1248
+ return map;
1249
+ };
1250
+
1212
1251
  // src/parts/ClearNode/ClearNode.ts
1213
1252
  var clearNode = $Node => {
1214
1253
  $Node.textContent = "";
@@ -1443,20 +1482,24 @@ var getEventListenerOptions$1 = eventName => {
1443
1482
  }
1444
1483
  };
1445
1484
 
1446
- // src/parts/NameAnonymousFunction/NameAnonymousFunction.ts
1447
- var nameAnonymousFunction$1 = (fn, name) => {
1448
- Object.defineProperty(fn, "name", {
1449
- value: name
1450
- });
1485
+ // src/parts/ListenerCache/ListenerCache.ts
1486
+ var cache$1 = /* @__PURE__ */new Map();
1487
+ var has = listener => {
1488
+ return cache$1.has(listener);
1489
+ };
1490
+ var set$6 = (listener, value) => {
1491
+ cache$1.set(listener, value);
1492
+ };
1493
+ var get$7 = listener => {
1494
+ return cache$1.get(listener);
1451
1495
  };
1452
1496
 
1453
1497
  // src/parts/GetWrappedListener/GetWrappedListener.ts
1454
- var cache$1 = /* @__PURE__ */new Map();
1455
1498
  var getWrappedListener$1 = (listener, returnValue) => {
1456
1499
  if (!returnValue) {
1457
1500
  return listener;
1458
1501
  }
1459
- if (!cache$1.has(listener)) {
1502
+ if (!has(listener)) {
1460
1503
  const wrapped = event => {
1461
1504
  const uid = getComponentUidFromEvent(event);
1462
1505
  const result = listener(event);
@@ -1467,13 +1510,17 @@ var getWrappedListener$1 = (listener, returnValue) => {
1467
1510
  ipc.send("Viewlet.executeViewletCommand", uid, ...result);
1468
1511
  };
1469
1512
  nameAnonymousFunction$1(wrapped, listener.name);
1470
- cache$1.set(listener, wrapped);
1513
+ set$6(listener, wrapped);
1471
1514
  }
1472
- return cache$1.get(listener);
1515
+ return get$7(listener);
1473
1516
  };
1474
1517
 
1475
1518
  // src/parts/AttachEvent/AttachEvent.ts
1476
- var attachEvent$1 = ($Node, eventMap, key, value) => {
1519
+ var attachEvent$1 = ($Node, eventMap, key, value, newEventMap) => {
1520
+ if (newEventMap && newEventMap[value]) {
1521
+ $Node.addEventListener(key, newEventMap[value]);
1522
+ return;
1523
+ }
1477
1524
  const listener = eventMap[value];
1478
1525
  if (!listener) {
1479
1526
  console.warn("listener not found", value);
@@ -1485,7 +1532,7 @@ var attachEvent$1 = ($Node, eventMap, key, value) => {
1485
1532
  };
1486
1533
 
1487
1534
  // src/parts/VirtualDomElementProp/VirtualDomElementProp.ts
1488
- var setProp = ($Element, key, value, eventMap) => {
1535
+ var setProp = ($Element, key, value, eventMap, newEventMap) => {
1489
1536
  switch (key) {
1490
1537
  case "maskImage":
1491
1538
  $Element.style.maskImage = `url('${value}')`;
@@ -1549,7 +1596,7 @@ var setProp = ($Element, key, value, eventMap) => {
1549
1596
  if (!eventMap || !value) {
1550
1597
  return;
1551
1598
  }
1552
- attachEvent$1($Element, eventMap, eventName, value);
1599
+ attachEvent$1($Element, eventMap, eventName, value, newEventMap);
1553
1600
  break;
1554
1601
  default:
1555
1602
  if (key.startsWith("data-")) {
@@ -1561,9 +1608,9 @@ var setProp = ($Element, key, value, eventMap) => {
1561
1608
  };
1562
1609
 
1563
1610
  // src/parts/VirtualDomElementProps/VirtualDomElementProps.ts
1564
- var setProps = ($Element, props, eventMap) => {
1611
+ var setProps = ($Element, props, eventMap, newEventMap) => {
1565
1612
  for (const key in props) {
1566
- setProp($Element, key, props[key], eventMap);
1613
+ setProp($Element, key, props[key], eventMap, newEventMap);
1567
1614
  }
1568
1615
  };
1569
1616
 
@@ -1571,28 +1618,28 @@ var setProps = ($Element, props, eventMap) => {
1571
1618
  var renderDomTextNode = element => {
1572
1619
  return document.createTextNode(element.text);
1573
1620
  };
1574
- var renderDomElement = (element, eventMap) => {
1621
+ var renderDomElement = (element, eventMap, newEventMap) => {
1575
1622
  const tag = getElementTag(element.type);
1576
1623
  const $Element = document.createElement(tag);
1577
- setProps($Element, element, eventMap);
1624
+ setProps($Element, element, eventMap, newEventMap);
1578
1625
  return $Element;
1579
1626
  };
1580
- var render = (element, eventMap) => {
1627
+ var render = (element, eventMap, newEventMap) => {
1581
1628
  switch (element.type) {
1582
1629
  case Text$2:
1583
1630
  return renderDomTextNode(element);
1584
1631
  default:
1585
- return renderDomElement(element, eventMap);
1632
+ return renderDomElement(element, eventMap, newEventMap);
1586
1633
  }
1587
1634
  };
1588
1635
 
1589
1636
  // src/parts/RenderInternal/RenderInternal.ts
1590
- var renderInternal2 = ($Parent, elements, eventMap) => {
1637
+ var renderInternal2 = ($Parent, elements, eventMap, newEventMap) => {
1591
1638
  const max = elements.length - 1;
1592
1639
  let stack = [];
1593
1640
  for (let i = max; i >= 0; i--) {
1594
1641
  const element = elements[i];
1595
- const $Element = render(element, eventMap);
1642
+ const $Element = render(element, eventMap, newEventMap);
1596
1643
  if (element.childCount > 0) {
1597
1644
  $Element.append(...stack.slice(0, element.childCount));
1598
1645
  stack = stack.slice(element.childCount);
@@ -1607,9 +1654,9 @@ var renderInto = ($Parent, dom, eventMap = {}) => {
1607
1654
  clearNode($Parent);
1608
1655
  renderInternal2($Parent, dom, eventMap);
1609
1656
  };
1610
- var render2 = (elements, eventMap = {}) => {
1657
+ var render2 = (elements, eventMap = {}, newEventMap = {}) => {
1611
1658
  const $Root = document.createElement("div");
1612
- renderInternal2($Root, elements, eventMap);
1659
+ renderInternal2($Root, elements, eventMap, newEventMap);
1613
1660
  return $Root;
1614
1661
  };
1615
1662
 
@@ -1629,7 +1676,8 @@ var rememberFocus$1 = ($Viewlet, dom, eventMap, uid = 0) => {
1629
1676
  inputMap[$Input.name] = $Input.value;
1630
1677
  }
1631
1678
  if (uid) {
1632
- const $New = render2(dom, eventMap).firstChild;
1679
+ const newEventMap = getEventListenerMap(uid);
1680
+ const $New = render2(dom, eventMap, newEventMap).firstChild;
1633
1681
  setComponentUid($New, uid);
1634
1682
  $Viewlet.replaceWith($New);
1635
1683
  $Viewlet = $New;
@@ -1804,7 +1852,7 @@ const stopTracking$1 = ($Target, pointerId, handlePointerMove, handlePointerUp)
1804
1852
  // TODO use pointerlost event instead
1805
1853
  $Target.removeEventListener(PointerUp, handlePointerUp);
1806
1854
  };
1807
- const create$L = (pointerDown, pointerMove, pointerUp) => {
1855
+ const create$K = (pointerDown, pointerMove, pointerUp) => {
1808
1856
  const shared = (fn, event) => {
1809
1857
  const message = fn(event);
1810
1858
  if (!message || message.length === 0) {
@@ -1837,7 +1885,7 @@ const create$L = (pointerDown, pointerMove, pointerUp) => {
1837
1885
  };
1838
1886
 
1839
1887
  const handleOffset = 20;
1840
- const handleSliderPointerDown = create$L(event => {
1888
+ const handleSliderPointerDown = create$K(event => {
1841
1889
  const {
1842
1890
  clientX,
1843
1891
  clientY
@@ -1861,12 +1909,12 @@ const handlePointerDown$7 = event => {
1861
1909
  }
1862
1910
  return [];
1863
1911
  };
1864
- const returnValue$b = true;
1912
+ const returnValue$a = true;
1865
1913
 
1866
1914
  const ViewletColorPickerEvents = {
1867
1915
  __proto__: null,
1868
1916
  handlePointerDown: handlePointerDown$7,
1869
- returnValue: returnValue$b
1917
+ returnValue: returnValue$a
1870
1918
  };
1871
1919
 
1872
1920
  const setColor = (state, color) => {
@@ -2022,7 +2070,7 @@ forwardViewletCommand('handleClickOpenFile');
2022
2070
  forwardViewletCommand('handleClickRestore');
2023
2071
  const handleClickTab$2 = forwardViewletCommand('handleClickTab');
2024
2072
  forwardViewletCommand('handleClickToggleMaximize');
2025
- const handleContextMenu$d = forwardViewletCommand('handleContextMenu');
2073
+ const handleContextMenu$c = forwardViewletCommand('handleContextMenu');
2026
2074
  const handleDoubleClick = forwardViewletCommand('handleDoubleClick');
2027
2075
  const handleDragEnd$1 = forwardViewletCommand('handleDragEnd');
2028
2076
  const handleDragLeave$1 = forwardViewletCommand('handleDragLeave');
@@ -2032,7 +2080,7 @@ const handleDropFilePath = forwardViewletCommand('handleDropFilePath');
2032
2080
  const handleDropFiles = forwardViewletCommand('handleDrop');
2033
2081
  forwardViewletCommand('handleFilterInput');
2034
2082
  const handleFocus$c = forwardViewletCommand('handleFocus');
2035
- const handleFocusIn$5 = forwardViewletCommand('handleFocusIn');
2083
+ const handleFocusIn$4 = forwardViewletCommand('handleFocusIn');
2036
2084
  const handleIconError$1 = forwardViewletCommand('handleIconError');
2037
2085
  const handleImageError$1 = forwardViewletCommand('handleImageError');
2038
2086
  const handleInput$9 = forwardViewletCommand('handleInput');
@@ -2089,15 +2137,21 @@ forwardViewletCommand('type');
2089
2137
  forwardViewletCommand('typeWithAutoClosing');
2090
2138
  const updateEditingValue = forwardViewletCommand('updateEditingValue');
2091
2139
 
2092
- const handleFocusIn$4 = event => {
2140
+ const handleFocusIn$3 = event => {
2093
2141
  preventDefault(event);
2094
2142
  const uid = fromEvent(event);
2095
- handleFocusIn$5(uid);
2143
+ handleFocusIn$4(uid);
2144
+ };
2145
+ const handleBlur$a = event => {
2146
+ preventDefault(event);
2147
+ const uid = fromEvent(event);
2148
+ handleBlur$b(uid);
2096
2149
  };
2097
2150
 
2098
2151
  const ViewletEditorCodeGeneratorEvents = {
2099
2152
  __proto__: null,
2100
- handleFocusIn: handleFocusIn$4
2153
+ handleBlur: handleBlur$a,
2154
+ handleFocusIn: handleFocusIn$3
2101
2155
  };
2102
2156
 
2103
2157
  const setBounds$9 = (state, x, y, width, height) => {
@@ -2113,7 +2167,7 @@ const appendWidget$5 = state => {
2113
2167
  } = state;
2114
2168
  append$1($Viewlet);
2115
2169
  };
2116
- const dispose$o = state => {
2170
+ const dispose$n = state => {
2117
2171
  remove$2(state.$Viewlet);
2118
2172
  };
2119
2173
  const focus$j = (state, key, source) => {
@@ -2139,7 +2193,7 @@ const ViewletEditorCodeGenerator = {
2139
2193
  __proto__: null,
2140
2194
  Events: ViewletEditorCodeGeneratorEvents,
2141
2195
  appendWidget: appendWidget$5,
2142
- dispose: dispose$o,
2196
+ dispose: dispose$n,
2143
2197
  focus: focus$j,
2144
2198
  setBounds: setBounds$9
2145
2199
  };
@@ -2292,7 +2346,7 @@ const setNegativeMargin = (state, negativeMargin) => {
2292
2346
  setTop($ListItems, negativeMargin);
2293
2347
  };
2294
2348
 
2295
- const create$K = () => {
2349
+ const create$J = () => {
2296
2350
  const $ListItems = document.createElement('div');
2297
2351
  $ListItems.className = 'ListItems';
2298
2352
  $ListItems.role = ListBox;
@@ -2345,7 +2399,7 @@ const setDom$b = (state, dom) => {
2345
2399
  // TODO recycle nodes
2346
2400
  // TODO set right aria attributes on $EditorInput
2347
2401
  };
2348
- const dispose$n = state => {
2402
+ const dispose$m = state => {
2349
2403
  remove$2(state.$Viewlet);
2350
2404
  // state.$EditorInput.removeAttribute('aria-activedescendant')
2351
2405
  };
@@ -2376,8 +2430,8 @@ const setBounds$8 = (state, x, y, width, height) => {
2376
2430
  const ViewletEditorCompletion = {
2377
2431
  __proto__: null,
2378
2432
  attachEvents: attachEvents$b,
2379
- create: create$K,
2380
- dispose: dispose$n,
2433
+ create: create$J,
2434
+ dispose: dispose$m,
2381
2435
  handleError: handleError$8,
2382
2436
  setBounds: setBounds$8,
2383
2437
  setContentHeight,
@@ -2391,15 +2445,15 @@ const ViewletEditorCompletion = {
2391
2445
  const handleClose = () => {
2392
2446
  return ['closeDetails'];
2393
2447
  };
2394
- const returnValue$a = true;
2448
+ const returnValue$9 = true;
2395
2449
 
2396
2450
  const ViewletEditorCompletionDetailsEvents = {
2397
2451
  __proto__: null,
2398
2452
  handleClose,
2399
- returnValue: returnValue$a
2453
+ returnValue: returnValue$9
2400
2454
  };
2401
2455
 
2402
- const create$J = () => {
2456
+ const create$I = () => {
2403
2457
  const $Viewlet = document.createElement('div');
2404
2458
  $Viewlet.className = 'Viewlet EditorCompletionDetails';
2405
2459
  $Viewlet.id = 'CompletionsDetails';
@@ -2425,7 +2479,7 @@ const appendWidget$4 = state => {
2425
2479
  } = state;
2426
2480
  append$1($Viewlet);
2427
2481
  };
2428
- const dispose$m = state => {
2482
+ const dispose$l = state => {
2429
2483
  remove$2(state.$Viewlet);
2430
2484
  };
2431
2485
  const setBounds$7 = (state, x, y, width, height) => {
@@ -2440,16 +2494,16 @@ const ViewletEditorCompletionDetails = {
2440
2494
  Events: ViewletEditorCompletionDetailsEvents,
2441
2495
  appendWidget: appendWidget$4,
2442
2496
  attachEvents: attachEvents$a,
2443
- create: create$J,
2444
- dispose: dispose$m,
2497
+ create: create$I,
2498
+ dispose: dispose$l,
2445
2499
  setBounds: setBounds$7,
2446
2500
  setDom: setDom$a
2447
2501
  };
2448
2502
 
2449
2503
  const rememberFocus = rememberFocus$1;
2450
2504
 
2451
- const returnValue$9 = true;
2452
- const handleSashPointerDown$2 = create$L(event => {
2505
+ const returnValue$8 = true;
2506
+ const handleSashPointerDown$2 = create$K(event => {
2453
2507
  const {
2454
2508
  clientX,
2455
2509
  clientY
@@ -2472,7 +2526,7 @@ const handleSashPointerDown$2 = create$L(event => {
2472
2526
  const ViewletEditorHoverEvents = {
2473
2527
  __proto__: null,
2474
2528
  handleSashPointerDown: handleSashPointerDown$2,
2475
- returnValue: returnValue$9
2529
+ returnValue: returnValue$8
2476
2530
  };
2477
2531
 
2478
2532
  const setBounds$6 = (state, x, y, width, height) => {
@@ -2503,12 +2557,12 @@ const ViewletEditorHover = {
2503
2557
  setDom: setDom$9
2504
2558
  };
2505
2559
 
2506
- const handleFocusIn$3 = event => {
2560
+ const handleFocusIn$2 = event => {
2507
2561
  preventDefault(event);
2508
2562
  const uid = fromEvent(event);
2509
- handleFocusIn$5(uid);
2563
+ handleFocusIn$4(uid);
2510
2564
  };
2511
- const handleBlur$a = event => {
2565
+ const handleBlur$9 = event => {
2512
2566
  const uid = fromEvent(event);
2513
2567
  executeViewletCommand(uid, 'EditorRename.handleBlur');
2514
2568
  };
@@ -2525,8 +2579,8 @@ const handleInput$8 = event => {
2525
2579
 
2526
2580
  const ViewletEditorRenameEvents = {
2527
2581
  __proto__: null,
2528
- handleBlur: handleBlur$a,
2529
- handleFocusIn: handleFocusIn$3,
2582
+ handleBlur: handleBlur$9,
2583
+ handleFocusIn: handleFocusIn$2,
2530
2584
  handleInput: handleInput$8
2531
2585
  };
2532
2586
 
@@ -2543,7 +2597,7 @@ const appendWidget$2 = state => {
2543
2597
  } = state;
2544
2598
  append$1($Viewlet);
2545
2599
  };
2546
- const dispose$l = state => {
2600
+ const dispose$k = state => {
2547
2601
  remove$2(state.$Viewlet);
2548
2602
  };
2549
2603
 
@@ -2551,19 +2605,19 @@ const ViewletEditorRename = {
2551
2605
  __proto__: null,
2552
2606
  Events: ViewletEditorRenameEvents,
2553
2607
  appendWidget: appendWidget$2,
2554
- dispose: dispose$l,
2608
+ dispose: dispose$k,
2555
2609
  setBounds: setBounds$5
2556
2610
  };
2557
2611
 
2558
- const handleFocusIn$2 = event => {
2612
+ const handleFocusIn$1 = event => {
2559
2613
  preventDefault(event);
2560
2614
  const uid = fromEvent(event);
2561
- handleFocusIn$5(uid);
2615
+ handleFocusIn$4(uid);
2562
2616
  };
2563
2617
 
2564
2618
  const ViewletEditorSourceActionsEvents = {
2565
2619
  __proto__: null,
2566
- handleFocusIn: handleFocusIn$2
2620
+ handleFocusIn: handleFocusIn$1
2567
2621
  };
2568
2622
 
2569
2623
  const setBounds$4 = (state, x, y, width, height) => {
@@ -2579,7 +2633,7 @@ const appendWidget$1 = state => {
2579
2633
  } = state;
2580
2634
  append$1($Viewlet);
2581
2635
  };
2582
- const dispose$k = state => {
2636
+ const dispose$j = state => {
2583
2637
  remove$2(state.$Viewlet);
2584
2638
  };
2585
2639
 
@@ -2587,7 +2641,7 @@ const ViewletEditorSourceActions = {
2587
2641
  __proto__: null,
2588
2642
  Events: ViewletEditorSourceActionsEvents,
2589
2643
  appendWidget: appendWidget$1,
2590
- dispose: dispose$k,
2644
+ dispose: dispose$j,
2591
2645
  setBounds: setBounds$4
2592
2646
  };
2593
2647
 
@@ -2600,7 +2654,7 @@ const handleInput$7 = event => {
2600
2654
  } = target;
2601
2655
  return ['FindWidget.handleInput', value];
2602
2656
  };
2603
- const handleClickClose$2 = event => {
2657
+ const handleClickClose$1 = event => {
2604
2658
  preventDefault(event);
2605
2659
  return ['FindWidget.close'];
2606
2660
  };
@@ -2657,11 +2711,11 @@ const handleFocusClose = event => {
2657
2711
  const handleFocusReplaceAll = event => {
2658
2712
  return ['FindWidget.handleFocusReplaceAll'];
2659
2713
  };
2660
- const returnValue$8 = true;
2714
+ const returnValue$7 = true;
2661
2715
 
2662
2716
  const ViewletFindWidgetEvents = {
2663
2717
  __proto__: null,
2664
- handleClickClose: handleClickClose$2,
2718
+ handleClickClose: handleClickClose$1,
2665
2719
  handleClickNextMatch,
2666
2720
  handleClickPreviousMatch,
2667
2721
  handleClickReplace,
@@ -2677,10 +2731,10 @@ const ViewletFindWidgetEvents = {
2677
2731
  handleReplaceFocus,
2678
2732
  handleReplaceInput: handleReplaceInput$1,
2679
2733
  handleToggleReplaceFocus,
2680
- returnValue: returnValue$8
2734
+ returnValue: returnValue$7
2681
2735
  };
2682
2736
 
2683
- const create$I = () => {
2737
+ const create$H = () => {
2684
2738
  const $Viewlet = document.createElement('div');
2685
2739
  $Viewlet.className = 'Viewlet FindWidget';
2686
2740
  $Viewlet.role = Group;
@@ -2734,17 +2788,17 @@ const setBounds$3 = (state, x, y, width, height) => {
2734
2788
  } = state;
2735
2789
  setBounds$a($Viewlet, x, y, width, height);
2736
2790
  };
2737
- const dispose$j = state => {
2791
+ const dispose$i = state => {
2738
2792
  remove$2(state.$Viewlet);
2739
2793
  };
2740
- const Events$c = ViewletFindWidgetEvents;
2794
+ const Events$d = ViewletFindWidgetEvents;
2741
2795
 
2742
2796
  const ViewletFindWidget = {
2743
2797
  __proto__: null,
2744
- Events: Events$c,
2798
+ Events: Events$d,
2745
2799
  appendWidget,
2746
- create: create$I,
2747
- dispose: dispose$j,
2800
+ create: create$H,
2801
+ dispose: dispose$i,
2748
2802
  focus: focus$i,
2749
2803
  setBounds: setBounds$3,
2750
2804
  setDom: setDom$8,
@@ -3254,7 +3308,7 @@ ${relevant}`;
3254
3308
 
3255
3309
  const Module = 'module';
3256
3310
 
3257
- const create$H = async ({
3311
+ const create$G = async ({
3258
3312
  url,
3259
3313
  name
3260
3314
  }) => {
@@ -3320,7 +3374,7 @@ const wrap = worker => {
3320
3374
 
3321
3375
  const IpcParentWithModuleWorker = {
3322
3376
  __proto__: null,
3323
- create: create$H,
3377
+ create: create$G,
3324
3378
  wrap
3325
3379
  };
3326
3380
 
@@ -3328,7 +3382,7 @@ const isMessagePort$1 = value => {
3328
3382
  return value instanceof MessagePort;
3329
3383
  };
3330
3384
 
3331
- const create$G = async ({
3385
+ const create$F = async ({
3332
3386
  url
3333
3387
  }) => {
3334
3388
  string(url);
@@ -3349,10 +3403,10 @@ const create$G = async ({
3349
3403
 
3350
3404
  const IpcParentWithMessagePort = {
3351
3405
  __proto__: null,
3352
- create: create$G
3406
+ create: create$F
3353
3407
  };
3354
3408
 
3355
- const create$F = async url => {
3409
+ const create$E = async url => {
3356
3410
  const referencePort = await new Promise(resolve => {
3357
3411
  globalThis.acceptReferencePort = resolve;
3358
3412
  import(url);
@@ -3363,7 +3417,7 @@ const create$F = async url => {
3363
3417
 
3364
3418
  const IpcParentWithReferencePort = {
3365
3419
  __proto__: null,
3366
- create: create$F
3420
+ create: create$E
3367
3421
  };
3368
3422
 
3369
3423
  const isWorker = value => {
@@ -3371,12 +3425,12 @@ const isWorker = value => {
3371
3425
  };
3372
3426
 
3373
3427
  // TODO add test
3374
- const create$E = async ({
3428
+ const create$D = async ({
3375
3429
  url,
3376
3430
  name,
3377
3431
  port
3378
3432
  }) => {
3379
- const worker = await create$H({
3433
+ const worker = await create$G({
3380
3434
  url,
3381
3435
  name
3382
3436
  });
@@ -3395,7 +3449,7 @@ const create$E = async ({
3395
3449
 
3396
3450
  const IpcParentWithModuleWorkerWithMessagePort = {
3397
3451
  __proto__: null,
3398
- create: create$E
3452
+ create: create$D
3399
3453
  };
3400
3454
 
3401
3455
  const handleIpcOnce = ipc => {
@@ -3926,7 +3980,7 @@ const IpcChildWithModuleWorkerAndMessagePort$1 = {
3926
3980
  };
3927
3981
 
3928
3982
  // TODO use handleIncomingIpc function
3929
- const create$D = async ({
3983
+ const create$C = async ({
3930
3984
  port,
3931
3985
  ipcId
3932
3986
  }) => {
@@ -3942,7 +3996,7 @@ const create$D = async ({
3942
3996
 
3943
3997
  const IpcParentWithElectron = {
3944
3998
  __proto__: null,
3945
- create: create$D
3999
+ create: create$C
3946
4000
  };
3947
4001
 
3948
4002
  const play = async src => {
@@ -3950,15 +4004,15 @@ const play = async src => {
3950
4004
  await audio.play();
3951
4005
  };
3952
4006
 
3953
- const name$z = 'Audio';
3954
- const Commands$A = {
4007
+ const name$y = 'Audio';
4008
+ const Commands$z = {
3955
4009
  play: play
3956
4010
  };
3957
4011
 
3958
4012
  const Audio_ipc = {
3959
4013
  __proto__: null,
3960
- Commands: Commands$A,
3961
- name: name$z
4014
+ Commands: Commands$z,
4015
+ name: name$y
3962
4016
  };
3963
4017
 
3964
4018
  const readText = async () => {
@@ -3979,8 +4033,8 @@ const execCopy = async () => {
3979
4033
  await writeText(text);
3980
4034
  };
3981
4035
 
3982
- const name$y = 'ClipBoard';
3983
- const Commands$z = {
4036
+ const name$x = 'ClipBoard';
4037
+ const Commands$y = {
3984
4038
  execCopy: execCopy,
3985
4039
  readText: readText,
3986
4040
  writeImage: writeImage,
@@ -3989,23 +4043,23 @@ const Commands$z = {
3989
4043
 
3990
4044
  const ClipBoard_ipc = {
3991
4045
  __proto__: null,
3992
- Commands: Commands$z,
3993
- name: name$y
4046
+ Commands: Commands$y,
4047
+ name: name$x
3994
4048
  };
3995
4049
 
3996
4050
  const prompt$1 = message => {
3997
4051
  return confirm(message);
3998
4052
  };
3999
4053
 
4000
- const name$x = 'ConfirmPrompt';
4001
- const Commands$y = {
4054
+ const name$w = 'ConfirmPrompt';
4055
+ const Commands$x = {
4002
4056
  prompt: prompt$1
4003
4057
  };
4004
4058
 
4005
4059
  const ConfirmPrompt_ipc = {
4006
4060
  __proto__: null,
4007
- Commands: Commands$y,
4008
- name: name$x
4061
+ Commands: Commands$x,
4062
+ name: name$w
4009
4063
  };
4010
4064
 
4011
4065
  const state$5 = {
@@ -4030,15 +4084,15 @@ const addCssStyleSheet = async (id, text) => {
4030
4084
  document.adoptedStyleSheets.push(sheet);
4031
4085
  };
4032
4086
 
4033
- const name$w = 'Css';
4034
- const Commands$x = {
4087
+ const name$v = 'Css';
4088
+ const Commands$w = {
4035
4089
  addCssStyleSheet: addCssStyleSheet
4036
4090
  };
4037
4091
 
4038
4092
  const Css_ipc = {
4039
4093
  __proto__: null,
4040
- Commands: Commands$x,
4041
- name: name$w
4094
+ Commands: Commands$w,
4095
+ name: name$v
4042
4096
  };
4043
4097
 
4044
4098
  const modules = ['ActivityBar', 'Ajax', 'Allocator', 'Callback', 'Command', 'Context', 'ContextMenu', 'Delay', 'Developer', 'DomPool', 'Editor', 'Exec', 'ExtensionHost', 'FileSystem', 'KeyBindings', 'Layout', 'Main', 'Notification', 'Panel', 'Parts', 'QuickPick', 'Renderer', 'RendererWorker', 'Search', 'SharedProcess', 'SideBar', 'StatusBar', 'TitleBar', 'Viewlet', 'ViewletController', 'ViewService', 'Vscode', 'Window', 'Workbench', 'Worker', 'Workspace'];
@@ -4058,15 +4112,15 @@ const showState = async () => {
4058
4112
  info(state);
4059
4113
  };
4060
4114
 
4061
- const name$v = 'Developer';
4062
- const Commands$w = {
4115
+ const name$u = 'Developer';
4116
+ const Commands$v = {
4063
4117
  showState: showState
4064
4118
  };
4065
4119
 
4066
4120
  const Developer_ipc = {
4067
4121
  __proto__: null,
4068
- Commands: Commands$w,
4069
- name: name$v
4122
+ Commands: Commands$v,
4123
+ name: name$u
4070
4124
  };
4071
4125
 
4072
4126
  const downloadFile = (fileName, url) => {
@@ -4076,15 +4130,15 @@ const downloadFile = (fileName, url) => {
4076
4130
  a.click();
4077
4131
  };
4078
4132
 
4079
- const name$u = 'Download';
4080
- const Commands$v = {
4133
+ const name$t = 'Download';
4134
+ const Commands$u = {
4081
4135
  downloadFile: downloadFile
4082
4136
  };
4083
4137
 
4084
4138
  const Download_ipc = {
4085
4139
  __proto__: null,
4086
- Commands: Commands$v,
4087
- name: name$u
4140
+ Commands: Commands$u,
4141
+ name: name$t
4088
4142
  };
4089
4143
 
4090
4144
  // based on https://github.com/microsoft/vscode/blob/5f87632829dc3ac80203e2377727935184399431/src/vs/base/browser/ui/aria/aria.ts (License MIT)
@@ -4173,7 +4227,7 @@ const AriaAlert = {
4173
4227
  // but that's difficult to know
4174
4228
 
4175
4229
  // TODO hide widget after timeout or mousemove
4176
- const create$C = (message, x, y) => {
4230
+ const create$B = (message, x, y) => {
4177
4231
  const $EditorError = document.createElement('div');
4178
4232
  $EditorError.className = 'EditorWidgetError';
4179
4233
  $EditorError.textContent = message;
@@ -4186,110 +4240,12 @@ const create$C = (message, x, y) => {
4186
4240
  };
4187
4241
  };
4188
4242
 
4189
- const name$t = 'EditorError';
4190
- const Commands$u = {
4191
- create: create$C
4192
- };
4193
-
4194
- const EditorError_ipc = {
4195
- __proto__: null,
4196
- Commands: Commands$u,
4197
- name: name$t
4198
- };
4199
-
4200
- const state$3 = {
4201
- /**
4202
- * @type {HTMLElement|undefined}
4203
- */
4204
- $PreviousFocusElement: undefined,
4205
- currentFocus: ''
4206
- };
4207
- const setElement = $Element => {
4208
- state$3.$PreviousFocusElement = $Element;
4209
- };
4210
- const getElement = () => {
4211
- return state$3.$PreviousFocusElement;
4212
- };
4213
-
4214
- const focus$h = $Element => {
4215
- if ($Element === document.activeElement) {
4216
- return;
4217
- }
4218
- setElement(document.activeElement);
4219
- $Element.focus({
4220
- preventScroll: true
4221
- });
4222
- };
4223
- const focusPrevious = () => {
4224
- const $Element = getElement();
4225
- if ($Element) {
4226
- // @ts-expect-error
4227
- $Element.focus();
4228
- }
4229
- };
4230
-
4231
- const create$B = () => {
4232
- const $InputBox = document.createElement('input');
4233
- $InputBox.className = 'InputBox';
4234
- $InputBox.spellcheck = false;
4235
- $InputBox.autocapitalize = 'off';
4236
- // $InputBox.autocomplete = 'off' // TODO needed?
4237
- $InputBox.type = 'text';
4238
- $InputBox.setAttribute('autocorrect', 'off'); // for ios
4239
- return $InputBox;
4240
- };
4241
-
4242
- const FocusDebugInput = 6;
4243
- const FocusEditorRename = 11;
4244
- const FocusExplorerEditBox = 14;
4245
- const FocusLocationList = 17;
4246
- const FocusMenu = 18;
4247
- const FocusQuickPickInput = 20;
4248
- const FocusSearchInput = 21;
4249
- const FocusSimpleBrowserInput = 23;
4250
- const FocusOutput = 28;
4251
-
4252
- const handleBlur$9 = () => {
4253
- send(/* EditorRename.abort */'EditorRename.abort');
4254
- };
4255
- const create$A = (x, y) => {
4256
- const $RenameWidgetInputBox = create$B();
4257
- $RenameWidgetInputBox.className = 'RenameWidgetInputBox';
4258
- $RenameWidgetInputBox.onblur = handleBlur$9;
4259
- const $RenameWidget = document.createElement('div');
4260
- $RenameWidget.className = 'RenameWidget';
4261
- $RenameWidget.append($RenameWidgetInputBox);
4262
- setXAndY($RenameWidget, x, y);
4263
- append$1($RenameWidget);
4264
- focus$h($RenameWidgetInputBox);
4265
- send('Focus.setFocus', FocusEditorRename);
4266
- return {
4267
- $RenameWidget,
4268
- $RenameWidgetInputBox
4269
- };
4270
- };
4271
- const dispose$i = state => {
4272
- // TODO focus editor
4273
- remove$2(state.$RenameWidget);
4274
- };
4275
-
4276
- // TODO could also be event based
4277
- // finish -> finish -> finishWithValue
4278
-
4279
- const finish = state => {
4280
- const value = state.$RenameWidgetInputBox.value;
4281
- // TODO don't like side effect here
4282
- return value;
4283
- };
4284
-
4285
- const name$s = 'EditorRename';
4243
+ const name$s = 'EditorError';
4286
4244
  const Commands$t = {
4287
- create: create$A,
4288
- dispose: dispose$i,
4289
- finish: finish
4245
+ create: create$B
4290
4246
  };
4291
4247
 
4292
- const EditorRename_ipc = {
4248
+ const EditorError_ipc = {
4293
4249
  __proto__: null,
4294
4250
  Commands: Commands$t,
4295
4251
  name: name$s
@@ -4370,7 +4326,7 @@ const showError = (message, y, x) => {
4370
4326
  $ImagePreviewImage
4371
4327
  };
4372
4328
  };
4373
- const create$z = (uri, top, left) => {
4329
+ const create$A = (uri, top, left) => {
4374
4330
  const $ImagePreviewImage = document.createElement('img');
4375
4331
  $ImagePreviewImage.className = 'ImagePreviewImage';
4376
4332
  $ImagePreviewImage.src = uri;
@@ -4401,7 +4357,7 @@ const dispose$h = state => {
4401
4357
 
4402
4358
  const ImagePreview = {
4403
4359
  __proto__: null,
4404
- create: create$z,
4360
+ create: create$A,
4405
4361
  dispose: dispose$h,
4406
4362
  showError,
4407
4363
  update
@@ -4409,7 +4365,7 @@ const ImagePreview = {
4409
4365
 
4410
4366
  const name$p = 'ImagePreview';
4411
4367
  const Commands$q = {
4412
- create: create$z,
4368
+ create: create$A,
4413
4369
  dispose: dispose$h,
4414
4370
  showError: showError,
4415
4371
  update: update
@@ -4487,7 +4443,7 @@ const InitData_ipc = {
4487
4443
 
4488
4444
  const name$n = 'IpcParent';
4489
4445
  const Commands$o = {
4490
- create: create$M
4446
+ create: create$L
4491
4447
  };
4492
4448
 
4493
4449
  const IpcParent_ipc = {
@@ -4607,7 +4563,7 @@ const create$Notification = message => {
4607
4563
  $Notification.textContent = message;
4608
4564
  return $Notification;
4609
4565
  };
4610
- const create$y = (type, message) => {
4566
+ const create$z = (type, message) => {
4611
4567
  // TODO this pattern might be also useful for activitybar, sidebar etc., creating elements as late as possible, only when actually needed
4612
4568
  const $Notification = create$Notification(message);
4613
4569
  append$1($Notification);
@@ -4660,7 +4616,7 @@ const name$h = 'Notification';
4660
4616
 
4661
4617
  // prettier-ignore
4662
4618
  const Commands$i = {
4663
- create: create$y,
4619
+ create: create$z,
4664
4620
  createWithOptions: createWithOptions,
4665
4621
  dispose: dispose$g
4666
4622
  };
@@ -4671,20 +4627,20 @@ const Notification_ipc = {
4671
4627
  name: name$h
4672
4628
  };
4673
4629
 
4674
- const state$2 = {
4630
+ const state$3 = {
4675
4631
  canvasObjects: Object.create(null)
4676
4632
  };
4677
4633
  const get$4 = id => {
4678
- return state$2.canvasObjects[id];
4634
+ return state$3.canvasObjects[id];
4679
4635
  };
4680
4636
  const set$3 = (canvasId, canvas) => {
4681
- state$2.canvasObjects[canvasId] = canvas;
4637
+ state$3.canvasObjects[canvasId] = canvas;
4682
4638
  };
4683
4639
 
4684
4640
  const get$3 = id => {
4685
4641
  return get$4(id);
4686
4642
  };
4687
- const create$x = async (canvasId, objectId) => {
4643
+ const create$y = async (canvasId, objectId) => {
4688
4644
  const canvas = document.createElement('canvas');
4689
4645
  const offscreenCanvas = canvas.transferControlToOffscreen();
4690
4646
  set$3(canvasId, canvas);
@@ -4695,7 +4651,7 @@ const name$g = 'OffscreenCanvas';
4695
4651
 
4696
4652
  // prettier-ignore
4697
4653
  const Commands$h = {
4698
- create: create$x
4654
+ create: create$y
4699
4655
  };
4700
4656
 
4701
4657
  const OffscreenCanvas_ipc = {
@@ -4730,6 +4686,46 @@ const create$BackDrop = () => {
4730
4686
  return $BackDrop;
4731
4687
  };
4732
4688
 
4689
+ const state$2 = {
4690
+ /**
4691
+ * @type {HTMLElement|undefined}
4692
+ */
4693
+ $PreviousFocusElement: undefined,
4694
+ currentFocus: ''
4695
+ };
4696
+ const setElement = $Element => {
4697
+ state$2.$PreviousFocusElement = $Element;
4698
+ };
4699
+ const getElement = () => {
4700
+ return state$2.$PreviousFocusElement;
4701
+ };
4702
+
4703
+ const focus$h = $Element => {
4704
+ if ($Element === document.activeElement) {
4705
+ return;
4706
+ }
4707
+ setElement(document.activeElement);
4708
+ $Element.focus({
4709
+ preventScroll: true
4710
+ });
4711
+ };
4712
+ const focusPrevious = () => {
4713
+ const $Element = getElement();
4714
+ if ($Element) {
4715
+ // @ts-expect-error
4716
+ $Element.focus();
4717
+ }
4718
+ };
4719
+
4720
+ const FocusDebugInput = 6;
4721
+ const FocusExplorerEditBox = 14;
4722
+ const FocusLocationList = 17;
4723
+ const FocusMenu = 18;
4724
+ const FocusQuickPickInput = 20;
4725
+ const FocusSearchInput = 21;
4726
+ const FocusSimpleBrowserInput = 23;
4727
+ const FocusOutput = 28;
4728
+
4733
4729
  // TODO when pressing tab -> focus next element in tab order and close menu
4734
4730
 
4735
4731
  // TODO menu and contextmenu should have own keybinding logic
@@ -4859,7 +4855,7 @@ const create$Menu$1 = () => {
4859
4855
  // })
4860
4856
  $Menu.onkeydown = handleKeyDown$4;
4861
4857
  $Menu.addEventListener(FocusOut, handleFocusOut$1);
4862
- $Menu.oncontextmenu = handleContextMenu$c;
4858
+ $Menu.oncontextmenu = handleContextMenu$b;
4863
4859
  // $ContextMenu.onfocus = handleFocus
4864
4860
  // $ContextMenu.onblur = handleBlur
4865
4861
  return $Menu;
@@ -4888,14 +4884,14 @@ const handleBackDropMouseDown = event => {
4888
4884
  stopPropagation(event);
4889
4885
  send(/* Menu.hide */'Menu.hide');
4890
4886
  };
4891
- const handleContextMenu$c = event => {
4887
+ const handleContextMenu$b = event => {
4892
4888
  preventDefault(event);
4893
4889
  };
4894
4890
  const showMenu = (x, y, width, height, items, level, parentIndex = -1, dom, mouseBlocking = false) => {
4895
4891
  if (mouseBlocking) {
4896
4892
  const $BackDrop = create$BackDrop();
4897
4893
  $BackDrop.onmousedown = handleBackDropMouseDown;
4898
- $BackDrop.oncontextmenu = handleContextMenu$c;
4894
+ $BackDrop.oncontextmenu = handleContextMenu$b;
4899
4895
  // @ts-expect-error
4900
4896
  state$1.$BackDrop = $BackDrop;
4901
4897
  append$1($BackDrop);
@@ -5867,7 +5863,7 @@ const load$1 = moduleId => {
5867
5863
  }
5868
5864
  };
5869
5865
 
5870
- const create$w = (id, uid = id) => {
5866
+ const create$x = (id, uid = id) => {
5871
5867
  const module = state$6.modules[id];
5872
5868
  if (!module) {
5873
5869
  throw new Error(`module not found: ${id}`);
@@ -5940,6 +5936,21 @@ const focus$g = viewletId => {
5940
5936
  instance.factory.focus(instance.state);
5941
5937
  } else ;
5942
5938
  };
5939
+ const focusElementByName = (viewletId, name) => {
5940
+ const selector = `[name="${name}"]`;
5941
+ const instance = state$6.instances[viewletId];
5942
+ if (!instance) {
5943
+ return;
5944
+ }
5945
+ const {
5946
+ $Viewlet
5947
+ } = instance.state;
5948
+ const $Element = $Viewlet.querySelector(selector);
5949
+ if (!$Element) {
5950
+ return;
5951
+ }
5952
+ $Element.focus();
5953
+ };
5943
5954
  const focusSelector = (viewletId, selector) => {
5944
5955
  const instance = state$6.instances[viewletId];
5945
5956
  if (!instance) {
@@ -6044,7 +6055,7 @@ const sendMultiple = commands => {
6044
6055
  }
6045
6056
  case 'Viewlet.create':
6046
6057
  {
6047
- create$w(viewletId, method);
6058
+ create$x(viewletId, method);
6048
6059
  break;
6049
6060
  }
6050
6061
  case 'Viewlet.createFunctionalRoot':
@@ -6107,6 +6118,12 @@ const sendMultiple = commands => {
6107
6118
  case 'Viewlet.focusSelector':
6108
6119
  // @ts-ignore
6109
6120
  return focusSelector(viewletId, method, ...args);
6121
+ case 'Viewlet.focusSelector':
6122
+ // @ts-ignore
6123
+ return focusSelector(viewletId, method, ...args);
6124
+ case 'Viewlet.focusElementByName':
6125
+ // @ts-ignore
6126
+ return focusElementByName(viewletId, method, ...args);
6110
6127
  default:
6111
6128
  {
6112
6129
  invoke(viewletId, method, ...args);
@@ -6239,7 +6256,7 @@ const appendToBody = childId => {
6239
6256
  const getFn = command => {
6240
6257
  switch (command) {
6241
6258
  case 'Viewlet.create':
6242
- return create$w;
6259
+ return create$x;
6243
6260
  case 'Viewlet.send':
6244
6261
  return invoke;
6245
6262
  case 'Viewlet.show':
@@ -6268,6 +6285,8 @@ const getFn = command => {
6268
6285
  return setDom$7;
6269
6286
  case 'Viewlet.createFunctionalRoot':
6270
6287
  return createFunctionalRoot;
6288
+ case 'Viewlet.focusElementByName':
6289
+ return focusElementByName;
6271
6290
  default:
6272
6291
  throw new Error(`unknown command ${command}`);
6273
6292
  }
@@ -6305,11 +6324,13 @@ const Commands$9 = {
6305
6324
  dispose: dispose$e,
6306
6325
  executeCommands: executeCommands,
6307
6326
  focus: focus$g,
6327
+ focusElementByName: focusElementByName,
6308
6328
  focusSelector: focusSelector,
6309
6329
  handleError: handleError$6,
6310
6330
  invoke: invoke,
6311
6331
  loadModule: loadModule,
6312
6332
  refresh: refresh$4,
6333
+ registerEventListeners: registerEventListeners,
6313
6334
  removeKeyBindings: removeKeyBindings,
6314
6335
  send: invoke,
6315
6336
  sendMultiple: sendMultiple,
@@ -6585,7 +6606,7 @@ const waitForFrameToLoad = $Frame => {
6585
6606
  };
6586
6607
 
6587
6608
  // TODO could use browser view when running in electron
6588
- const create$v = async (uid, src, sandbox, csp, credentialless) => {
6609
+ const create$w = async (uid, src, sandbox, csp, credentialless) => {
6589
6610
  const $Iframe = document.createElement('iframe');
6590
6611
  setIframeCredentialless($Iframe, credentialless);
6591
6612
  setIframeCsp($Iframe, csp);
@@ -6627,7 +6648,7 @@ const dispose$d = uid => {
6627
6648
 
6628
6649
  const name = 'WebView';
6629
6650
  const Commands$1 = {
6630
- create: create$v,
6651
+ create: create$w,
6631
6652
  load: load,
6632
6653
  setPort: setPort$2,
6633
6654
  dispose: dispose$d
@@ -6681,7 +6702,7 @@ const handleFocus$a = () => {
6681
6702
 
6682
6703
  // TODO use context menu events function again
6683
6704
 
6684
- const handleContextMenu$b = event => {
6705
+ const handleContextMenu$a = event => {
6685
6706
  preventDefault(event);
6686
6707
  const {
6687
6708
  button,
@@ -6690,22 +6711,22 @@ const handleContextMenu$b = event => {
6690
6711
  } = event;
6691
6712
  return ['handleContextMenu', button, clientX, clientY];
6692
6713
  };
6693
- const returnValue$7 = true;
6714
+ const returnValue$6 = true;
6694
6715
 
6695
6716
  const ViewletActivityBarEvents = {
6696
6717
  __proto__: null,
6697
6718
  handleBlur: handleBlur$8,
6698
- handleContextMenu: handleContextMenu$b,
6719
+ handleContextMenu: handleContextMenu$a,
6699
6720
  handleFocus: handleFocus$a,
6700
6721
  handleMouseDown: handleMouseDown$2,
6701
- returnValue: returnValue$7
6722
+ returnValue: returnValue$6
6702
6723
  };
6703
6724
 
6704
- const Events$b = ViewletActivityBarEvents;
6725
+ const Events$c = ViewletActivityBarEvents;
6705
6726
 
6706
6727
  const ViewletActivityBar = {
6707
6728
  __proto__: null,
6708
- Events: Events$b
6729
+ Events: Events$c
6709
6730
  };
6710
6731
 
6711
6732
  const handleAudioError = event => {
@@ -6728,14 +6749,14 @@ const ViewletAudioEvents = {
6728
6749
  handleAudioError
6729
6750
  };
6730
6751
 
6731
- const Events$a = ViewletAudioEvents;
6752
+ const Events$b = ViewletAudioEvents;
6732
6753
 
6733
6754
  const ViewletAudio = {
6734
6755
  __proto__: null,
6735
- Events: Events$a
6756
+ Events: Events$b
6736
6757
  };
6737
6758
 
6738
- const create$u = () => {
6759
+ const create$v = () => {
6739
6760
  const $Viewlet = document.createElement('div');
6740
6761
  $Viewlet.className = 'Viewlet BrowserViewOverview';
6741
6762
  return {
@@ -6751,11 +6772,11 @@ const setDom$6 = (state, dom) => {
6751
6772
 
6752
6773
  const ViewletBrowserViewOverview = {
6753
6774
  __proto__: null,
6754
- create: create$u,
6775
+ create: create$v,
6755
6776
  setDom: setDom$6
6756
6777
  };
6757
6778
 
6758
- const create$t = () => {
6779
+ const create$u = () => {
6759
6780
  const $Viewlet = document.createElement('div');
6760
6781
  $Viewlet.className = 'Viewlet Clock';
6761
6782
  return {
@@ -6772,7 +6793,7 @@ const setTime = (state, time) => {
6772
6793
 
6773
6794
  const ViewletClock = {
6774
6795
  __proto__: null,
6775
- create: create$t,
6796
+ create: create$u,
6776
6797
  dispose: dispose$c,
6777
6798
  refresh: refresh$3,
6778
6799
  setTime
@@ -6799,7 +6820,7 @@ const ViewletDebugConsoleEvents = {
6799
6820
  handleInput: handleInput$6
6800
6821
  };
6801
6822
 
6802
- const create$s = () => {
6823
+ const create$t = () => {
6803
6824
  const $Viewlet = document.createElement('div');
6804
6825
  $Viewlet.className = 'Viewlet DebugConsole';
6805
6826
  return {
@@ -6815,7 +6836,7 @@ const setDom$5 = (state, dom) => {
6815
6836
 
6816
6837
  const ViewletDebugConsole = {
6817
6838
  __proto__: null,
6818
- create: create$s,
6839
+ create: create$t,
6819
6840
  setDom: setDom$5
6820
6841
  };
6821
6842
 
@@ -6876,7 +6897,7 @@ const setMaskImage = ($Element, icon) => {
6876
6897
  }
6877
6898
  };
6878
6899
 
6879
- const create$r = icon => {
6900
+ const create$s = icon => {
6880
6901
  const $Icon = document.createElement('div');
6881
6902
  $Icon.className = 'MaskIcon';
6882
6903
  setMaskImage($Icon, icon);
@@ -6886,7 +6907,7 @@ const create$r = icon => {
6886
6907
 
6887
6908
  const create$Button = (label, icon) => {
6888
6909
  // TODO icon div might not be needed (unnecessary html element)
6889
- const $Icon = create$r(icon);
6910
+ const $Icon = create$s(icon);
6890
6911
  const $Button = document.createElement('button');
6891
6912
  $Button.className = 'IconButton';
6892
6913
  $Button.title = label;
@@ -6907,7 +6928,7 @@ const handleClick$6 = event => {
6907
6928
  handleClick$7(index);
6908
6929
  };
6909
6930
 
6910
- const create$q = () => {
6931
+ const create$r = () => {
6911
6932
  const $DialogTitle = document.createElement('h2');
6912
6933
  $DialogTitle.id = 'DialogTitle';
6913
6934
  const $DialogCloseButton = create$Button('Close', 'Close');
@@ -6988,7 +7009,7 @@ const setErrorStack = (state, errorStack) => {
6988
7009
 
6989
7010
  const ViewletDialog = {
6990
7011
  __proto__: null,
6991
- create: create$q,
7012
+ create: create$r,
6992
7013
  postAppend,
6993
7014
  setButtons,
6994
7015
  setCodeFrame,
@@ -7035,7 +7056,7 @@ const ViewletDiffEditor = {
7035
7056
 
7036
7057
  // TODO aria alert
7037
7058
 
7038
- const create$p = () => {
7059
+ const create$q = () => {
7039
7060
  const $Viewlet = document.createElement('div');
7040
7061
  $Viewlet.className = 'Viewlet EditorError';
7041
7062
  return {
@@ -7057,7 +7078,7 @@ const setBounds$1 = (state, x, y, width, height) => {
7057
7078
 
7058
7079
  const ViewletEditorError = {
7059
7080
  __proto__: null,
7060
- create: create$p,
7081
+ create: create$q,
7061
7082
  setBounds: setBounds$1,
7062
7083
  setDom: setDom$4
7063
7084
  };
@@ -7142,7 +7163,7 @@ const handleWheel$2 = event => {
7142
7163
  *
7143
7164
  * @param {MouseEvent} event
7144
7165
  */
7145
- const handleContextMenu$a = event => {
7166
+ const handleContextMenu$9 = event => {
7146
7167
  preventDefault(event);
7147
7168
  const {
7148
7169
  button,
@@ -7150,7 +7171,7 @@ const handleContextMenu$a = event => {
7150
7171
  clientY
7151
7172
  } = event;
7152
7173
  const uid = fromEvent(event);
7153
- handleContextMenu$d(uid, button, clientX, clientY);
7174
+ handleContextMenu$c(uid, button, clientX, clientY);
7154
7175
  };
7155
7176
  const handleError$5 = event => {
7156
7177
  const uid = fromEvent(event);
@@ -7161,7 +7182,7 @@ const handleFocus$8 = event => {
7161
7182
  handleFocus$c(uid);
7162
7183
  };
7163
7184
 
7164
- const create$o = () => {
7185
+ const create$p = () => {
7165
7186
  const $Viewlet = document.createElement('div');
7166
7187
  $Viewlet.className = 'Viewlet EditorImage';
7167
7188
  return {
@@ -7175,7 +7196,7 @@ const attachEvents$8 = state => {
7175
7196
  attachEvents$c($Viewlet, {
7176
7197
  [PointerDown]: handlePointerDown$5,
7177
7198
  [PointerUp]: handlePointerUp,
7178
- [ContextMenu]: handleContextMenu$a,
7199
+ [ContextMenu]: handleContextMenu$9,
7179
7200
  [FocusIn]: handleFocus$8
7180
7201
  });
7181
7202
  $Viewlet.addEventListener(Error$3, handleError$5, Capture);
@@ -7204,13 +7225,13 @@ const setDom$3 = (state, dom) => {
7204
7225
  const ViewletEditorImage = {
7205
7226
  __proto__: null,
7206
7227
  attachEvents: attachEvents$8,
7207
- create: create$o,
7228
+ create: create$p,
7208
7229
  setDom: setDom$3,
7209
7230
  setDragging,
7210
7231
  setTransform
7211
7232
  };
7212
7233
 
7213
- const create$n = () => {
7234
+ const create$o = () => {
7214
7235
  const $Viewlet = document.createElement('div');
7215
7236
  $Viewlet.className = 'Viewlet EditorText';
7216
7237
  $Viewlet.textContent = 'loading...';
@@ -7227,7 +7248,7 @@ const refresh$2 = (state, context) => {
7227
7248
 
7228
7249
  const ViewletEditorPlainText = {
7229
7250
  __proto__: null,
7230
- create: create$n,
7251
+ create: create$o,
7231
7252
  dispose: dispose$b,
7232
7253
  refresh: refresh$2
7233
7254
  };
@@ -7486,7 +7507,7 @@ const handlePaste = event => {
7486
7507
  const text = getText(clipboardData);
7487
7508
  return ['paste', text];
7488
7509
  };
7489
- const handleScrollBarVerticalPointerDown = create$L(event => {
7510
+ const handleScrollBarVerticalPointerDown = create$K(event => {
7490
7511
  const {
7491
7512
  clientY
7492
7513
  } = event;
@@ -7541,7 +7562,7 @@ const handleScrollBarContextMenu = event => {
7541
7562
  preventDefault(event);
7542
7563
  stopPropagation(event);
7543
7564
  };
7544
- const handleContextMenu$9 = event => {
7565
+ const handleContextMenu$8 = event => {
7545
7566
  preventDefault(event);
7546
7567
  const {
7547
7568
  button,
@@ -7609,7 +7630,7 @@ const setLineInfos = (state, dom) => {
7609
7630
  // 1. create -> only create dom elements
7610
7631
  // 2. render -> fill elements with attributes and data
7611
7632
  // that way all dom nodes can be recycled
7612
- const create$m = () => {
7633
+ const create$n = () => {
7613
7634
  const $EditorInput = document.createElement('textarea');
7614
7635
  $EditorInput.className = 'EditorInput';
7615
7636
  $EditorInput.ariaAutoComplete = List;
@@ -7697,7 +7718,7 @@ const create$m = () => {
7697
7718
  $Editor.role = Code;
7698
7719
  $Editor.append($LayerGutter, $EditorContent);
7699
7720
  attachEventsFunctional($Editor, {
7700
- [ContextMenu]: handleContextMenu$9,
7721
+ [ContextMenu]: handleContextMenu$8,
7701
7722
  [Wheel]: handleWheel$1,
7702
7723
  returnValue: true
7703
7724
  });
@@ -7776,7 +7797,7 @@ const setDecorationsDom$1 = (state, decorations) => {
7776
7797
  setDecorationsDom$2(state, decorations);
7777
7798
  };
7778
7799
 
7779
- const create$l = create$m;
7800
+ const create$m = create$n;
7780
7801
  const setText$1 = setText$2;
7781
7802
  const setSelections = setSelections$1;
7782
7803
  const setIncrementalEdits = setIncrementalEdits$1;
@@ -7818,7 +7839,7 @@ const setDecorationsDom = setDecorationsDom$1;
7818
7839
 
7819
7840
  const ViewletEditorText = {
7820
7841
  __proto__: null,
7821
- create: create$l,
7842
+ create: create$m,
7822
7843
  focus: focus$e,
7823
7844
  handleError: handleError$4,
7824
7845
  hideOverlayMessage,
@@ -7834,7 +7855,7 @@ const ViewletEditorText = {
7834
7855
  showOverlayMessage
7835
7856
  };
7836
7857
 
7837
- const create$k = () => {
7858
+ const create$l = () => {
7838
7859
  const $Viewlet = document.createElement('div');
7839
7860
  $Viewlet.className = 'Viewlet EditorWidgetError EditorOverlayMessage';
7840
7861
  return {
@@ -7857,12 +7878,12 @@ const setBounds = (state, x, y, width, height) => {
7857
7878
 
7858
7879
  const ViewletEditorWidgetError = {
7859
7880
  __proto__: null,
7860
- create: create$k,
7881
+ create: create$l,
7861
7882
  setBounds,
7862
7883
  setMessage: setMessage$3
7863
7884
  };
7864
7885
 
7865
- const create$j = () => {
7886
+ const create$k = () => {
7866
7887
  const $Viewlet = document.createElement('div');
7867
7888
  $Viewlet.dataset.viewlet = 'Empty';
7868
7889
  $Viewlet.className = 'Viewlet';
@@ -7876,13 +7897,13 @@ const dispose$a = state => {};
7876
7897
 
7877
7898
  const ViewletEmpty = {
7878
7899
  __proto__: null,
7879
- create: create$j,
7900
+ create: create$k,
7880
7901
  dispose: dispose$a,
7881
7902
  focus: focus$d,
7882
7903
  refresh: refresh$1
7883
7904
  };
7884
7905
 
7885
- const create$i = () => {
7906
+ const create$j = () => {
7886
7907
  const $Viewlet = document.createElement('div');
7887
7908
  $Viewlet.className = 'Viewlet Error';
7888
7909
  return {
@@ -7898,11 +7919,11 @@ const setMessage$2 = (state, message) => {
7898
7919
 
7899
7920
  const ViewletError = {
7900
7921
  __proto__: null,
7901
- create: create$i,
7922
+ create: create$j,
7902
7923
  setMessage: setMessage$2
7903
7924
  };
7904
7925
 
7905
- const handleContextMenu$8 = event => {
7926
+ const handleContextMenu$7 = event => {
7906
7927
  preventDefault(event);
7907
7928
  const {
7908
7929
  button,
@@ -7910,7 +7931,7 @@ const handleContextMenu$8 = event => {
7910
7931
  clientY
7911
7932
  } = event;
7912
7933
  const uid = fromEvent(event);
7913
- handleContextMenu$d(uid, button, clientX, clientY);
7934
+ handleContextMenu$c(uid, button, clientX, clientY);
7914
7935
  };
7915
7936
 
7916
7937
  const CopyMove = 'copyMove';
@@ -8101,7 +8122,7 @@ const ViewletExplorerEvents = {
8101
8122
  handleBlur: handleBlur$5,
8102
8123
  handleClick: handleClick$5,
8103
8124
  handleClickOpenFolder,
8104
- handleContextMenu: handleContextMenu$8,
8125
+ handleContextMenu: handleContextMenu$7,
8105
8126
  handleDragEnd,
8106
8127
  handleDragLeave,
8107
8128
  handleDragOver,
@@ -8115,7 +8136,7 @@ const ViewletExplorerEvents = {
8115
8136
  handleWheel: handleWheel$3
8116
8137
  };
8117
8138
 
8118
- const create$h = () => {
8139
+ const create$i = () => {
8119
8140
  const $Viewlet = document.createElement('div');
8120
8141
  $Viewlet.className = 'Viewlet Explorer';
8121
8142
  $Viewlet.tabIndex = 0;
@@ -8125,7 +8146,7 @@ const create$h = () => {
8125
8146
  $Viewlet
8126
8147
  };
8127
8148
  };
8128
- const Events$9 = ViewletExplorerEvents;
8149
+ const Events$a = ViewletExplorerEvents;
8129
8150
  const handleError$3 = (state, message) => {
8130
8151
  object(state);
8131
8152
  string(message);
@@ -8172,8 +8193,8 @@ const setDom$2 = (state, dom) => {
8172
8193
 
8173
8194
  const ViewletExplorer = {
8174
8195
  __proto__: null,
8175
- Events: Events$9,
8176
- create: create$h,
8196
+ Events: Events$a,
8197
+ create: create$i,
8177
8198
  dispose: dispose$9,
8178
8199
  focusInput,
8179
8200
  handleError: handleError$3,
@@ -8216,11 +8237,11 @@ const ViewletExtensionDetailEvents = {
8216
8237
  handleReadmeContextMenu
8217
8238
  };
8218
8239
 
8219
- const Events$8 = ViewletExtensionDetailEvents;
8240
+ const Events$9 = ViewletExtensionDetailEvents;
8220
8241
 
8221
8242
  const ViewletExtensionDetail = {
8222
8243
  __proto__: null,
8223
- Events: Events$8,
8244
+ Events: Events$9,
8224
8245
  setSize
8225
8246
  };
8226
8247
 
@@ -8321,7 +8342,7 @@ const handleTouchEnd = event => {
8321
8342
 
8322
8343
  // based on https://github.com/microsoft/vscode/blob/main/src/vs/workbench/contrib/extensions/browser/extensionsList.ts (License MIT)
8323
8344
 
8324
- const create$g = () => {
8345
+ const create$h = () => {
8325
8346
  const $ExtensionHeader = document.createElement('div');
8326
8347
  $ExtensionHeader.className = 'ExtensionHeader';
8327
8348
 
@@ -8366,7 +8387,7 @@ const attachEvents$7 = state => {
8366
8387
  // @ts-expect-error
8367
8388
  $ExtensionHeader.addEventListener(Click, undefined);
8368
8389
  attachEvents$c($ListItems, {
8369
- [ContextMenu]: handleContextMenu$8,
8390
+ [ContextMenu]: handleContextMenu$7,
8370
8391
  [PointerDown]: handlePointerDown$3,
8371
8392
  [Focus]: handleFocus$5,
8372
8393
  [Scroll]: handleScroll
@@ -8466,7 +8487,7 @@ const ViewletExtensions = {
8466
8487
  __proto__: null,
8467
8488
  attachEvents: attachEvents$7,
8468
8489
  closeSuggest,
8469
- create: create$g,
8490
+ create: create$h,
8470
8491
  dispose: dispose$8,
8471
8492
  focus: focus$c,
8472
8493
  handleError: handleError$2,
@@ -8500,7 +8521,7 @@ const ViewletLocationsEvents = {
8500
8521
  handleLocationsMouseDown
8501
8522
  };
8502
8523
 
8503
- const Events$7 = ViewletLocationsEvents;
8524
+ const Events$8 = ViewletLocationsEvents;
8504
8525
  const setFocusedIndex$3 = (state, oldFocusedIndex, newFocusedIndex) => {
8505
8526
  const {
8506
8527
  $Viewlet
@@ -8535,7 +8556,7 @@ const focus$b = state => {
8535
8556
 
8536
8557
  const ViewletImplementations = {
8537
8558
  __proto__: null,
8538
- Events: Events$7,
8559
+ Events: Events$8,
8539
8560
  focus: focus$b,
8540
8561
  handleError: handleError$1,
8541
8562
  setFocusedIndex: setFocusedIndex$3
@@ -8617,7 +8638,7 @@ const handlePointerDown$2 = event => {
8617
8638
 
8618
8639
  const ViewletkeyBindingsEvents = {
8619
8640
  __proto__: null,
8620
- handleContextMenu: handleContextMenu$8,
8641
+ handleContextMenu: handleContextMenu$7,
8621
8642
  handleInput: handleInput$4,
8622
8643
  handlePointerDown: handlePointerDown$2,
8623
8644
  handleResizerPointerDown,
@@ -8646,11 +8667,11 @@ const setColumnWidths = (state, columnWidth1, columnWidth2, columnWidth3) => {
8646
8667
  $Resizer1.style.left = `${paddingLeft + columnWidth1}px`;
8647
8668
  $Resizer2.style.left = `${paddingLeft + columnWidth1 + columnWidth2}px`;
8648
8669
  };
8649
- const Events$6 = ViewletkeyBindingsEvents;
8670
+ const Events$7 = ViewletkeyBindingsEvents;
8650
8671
 
8651
8672
  const ViewletKeyBindings = {
8652
8673
  __proto__: null,
8653
- Events: Events$6,
8674
+ Events: Events$7,
8654
8675
  setColumnWidths,
8655
8676
  setScrollBar: setScrollBar$2,
8656
8677
  setSize,
@@ -9147,7 +9168,7 @@ const handleBlur$3 = () => {
9147
9168
  const handleKeyDown$1 = handleKeyDown$2;
9148
9169
  const handleKeyUp = handleKeyUp$1;
9149
9170
 
9150
- const create$f = () => {
9171
+ const create$g = () => {
9151
9172
  // TODO use aria role splitter once supported https://github.com/w3c/aria/issues/1348
9152
9173
  const $SashSideBar = document.createElement('div');
9153
9174
  $SashSideBar.className = 'Viewlet Sash SashVertical';
@@ -9203,11 +9224,11 @@ const setSashes = (state, sashSideBar, sashPanel) => {
9203
9224
  const ViewletLayout = {
9204
9225
  __proto__: null,
9205
9226
  attachEvents: attachEvents$6,
9206
- create: create$f,
9227
+ create: create$g,
9207
9228
  setSashes
9208
9229
  };
9209
9230
 
9210
- const handleContextMenu$7 = event => {
9231
+ const handleContextMenu$6 = event => {
9211
9232
  if (event.defaultPrevented) {
9212
9233
  return;
9213
9234
  }
@@ -9217,11 +9238,11 @@ const handleContextMenu$7 = event => {
9217
9238
  clientY
9218
9239
  } = event;
9219
9240
  const uid = fromEvent(event);
9220
- handleContextMenu$d(uid, clientX, clientY);
9241
+ handleContextMenu$c(uid, clientX, clientY);
9221
9242
  };
9222
9243
 
9223
9244
  // TODO Main should not be bound to Editor -> Lazy load Editor
9224
- const create$e = () => {
9245
+ const create$f = () => {
9225
9246
  const $Viewlet = document.createElement('div');
9226
9247
  $Viewlet.id = 'Main';
9227
9248
  $Viewlet.className = 'Viewlet Main';
@@ -9251,7 +9272,7 @@ const attachEvents$5 = state => {
9251
9272
  [DragOver]: handleDragOver,
9252
9273
  [DragEnd]: handleDragEnd,
9253
9274
  [DragLeave]: handleDragLeave,
9254
- [ContextMenu]: handleContextMenu$7
9275
+ [ContextMenu]: handleContextMenu$6
9255
9276
  });
9256
9277
  };
9257
9278
  const dispose$7 = state => {};
@@ -9321,7 +9342,7 @@ const ViewletMain = {
9321
9342
  attachEvents: attachEvents$5,
9322
9343
  closeAllViewlets,
9323
9344
  closeViewletAndTab,
9324
- create: create$e,
9345
+ create: create$f,
9325
9346
  dispose: dispose$7,
9326
9347
  focus: focus$a,
9327
9348
  highlightDragOver,
@@ -9348,8 +9369,7 @@ const handleTabsWheel = event => {
9348
9369
  handleTabsWheel$1(uid, deltaX, deltaY);
9349
9370
  };
9350
9371
  const handleDragStart = event => {
9351
- // @ts-expect-error
9352
- setEffectAllowed(CopyMove);
9372
+ setEffectAllowed(event.dataTransfer, CopyMove);
9353
9373
  };
9354
9374
  const handleTabsMouseDown = event => {
9355
9375
  const {
@@ -9370,7 +9390,7 @@ const handleTabsContextMenu = event => {
9370
9390
  handleTabContextMenu(uid, clientX, clientY);
9371
9391
  };
9372
9392
 
9373
- const create$d = () => {
9393
+ const create$e = () => {
9374
9394
  const $MainTabs = document.createElement('div');
9375
9395
  $MainTabs.className = 'Viewlet MainTabs';
9376
9396
  $MainTabs.role = TabList;
@@ -9407,12 +9427,12 @@ const setScrollLeft = (state, scrollLeft) => {
9407
9427
  const ViewletMainTabs = {
9408
9428
  __proto__: null,
9409
9429
  attachEvents: attachEvents$4,
9410
- create: create$d,
9430
+ create: create$e,
9411
9431
  setScrollLeft,
9412
9432
  setTabsDom: setTabsDom$2
9413
9433
  };
9414
9434
 
9415
- const create$c = () => {
9435
+ const create$d = () => {
9416
9436
  const $ViewletOutputContent = document.createElement('div');
9417
9437
  $ViewletOutputContent.className = 'OutputContent';
9418
9438
  $ViewletOutputContent.role = Log;
@@ -9464,7 +9484,7 @@ const dispose$6 = state => {};
9464
9484
  const ViewletOutput = {
9465
9485
  __proto__: null,
9466
9486
  clear,
9467
- create: create$c,
9487
+ create: create$d,
9468
9488
  dispose: dispose$6,
9469
9489
  disposeFindWidget,
9470
9490
  focus: focus$9,
@@ -9473,7 +9493,7 @@ const ViewletOutput = {
9473
9493
  setText
9474
9494
  };
9475
9495
 
9476
- const handleClickClose$1 = event => {
9496
+ const handleClickClose = event => {
9477
9497
  const uid = fromEvent(event);
9478
9498
  hidePanel(uid);
9479
9499
  };
@@ -9517,7 +9537,7 @@ const UiStrings = {
9517
9537
  Close: 'Close',
9518
9538
  Maximize: 'Maximize'
9519
9539
  };
9520
- const create$b = () => {
9540
+ const create$c = () => {
9521
9541
  const $PanelTabs = document.createElement('div');
9522
9542
  $PanelTabs.className = 'PanelTabs';
9523
9543
  $PanelTabs.role = TabList;
@@ -9568,7 +9588,7 @@ const attachEvents$3 = state => {
9568
9588
  [Click]: handleClickMaximize
9569
9589
  });
9570
9590
  attachEvents$c($ButtonClose, {
9571
- [Click]: handleClickClose$1
9591
+ [Click]: handleClickClose
9572
9592
  });
9573
9593
  };
9574
9594
  const setTabsDom$1 = (state, dom) => {
@@ -9630,7 +9650,7 @@ const setActionsDom$1 = (state, actions, childUid) => {
9630
9650
  const ViewletPanel = {
9631
9651
  __proto__: null,
9632
9652
  attachEvents: attachEvents$3,
9633
- create: create$b,
9653
+ create: create$c,
9634
9654
  dispose: dispose$5,
9635
9655
  focus: focus$8,
9636
9656
  setActionsDom: setActionsDom$1,
@@ -9646,7 +9666,7 @@ const handlePointerDown$1 = event => {
9646
9666
  } = event;
9647
9667
  return ['handleClickAt', clientX, clientY];
9648
9668
  };
9649
- const handleContextMenu$6 = event => {
9669
+ const handleContextMenu$5 = event => {
9650
9670
  preventDefault(event);
9651
9671
  const {
9652
9672
  clientX,
@@ -9666,15 +9686,15 @@ const handleFilterInput = event => {
9666
9686
  const handleClearFilterClick = event => {
9667
9687
  return ['clearFilter'];
9668
9688
  };
9669
- const returnValue$6 = true;
9689
+ const returnValue$5 = true;
9670
9690
 
9671
9691
  const ViewletProblemsEvents = {
9672
9692
  __proto__: null,
9673
9693
  handleClearFilterClick,
9674
- handleContextMenu: handleContextMenu$6,
9694
+ handleContextMenu: handleContextMenu$5,
9675
9695
  handleFilterInput,
9676
9696
  handlePointerDown: handlePointerDown$1,
9677
- returnValue: returnValue$6
9697
+ returnValue: returnValue$5
9678
9698
  };
9679
9699
 
9680
9700
  const setFocusedIndex$2 = (state, focusedIndex) => {
@@ -9701,6 +9721,17 @@ const ViewletProblems = {
9701
9721
  setFocusedIndex: setFocusedIndex$2
9702
9722
  };
9703
9723
 
9724
+ const create$b = () => {
9725
+ const $InputBox = document.createElement('input');
9726
+ $InputBox.className = 'InputBox';
9727
+ $InputBox.spellcheck = false;
9728
+ $InputBox.autocapitalize = 'off';
9729
+ // $InputBox.autocomplete = 'off' // TODO needed?
9730
+ $InputBox.type = 'text';
9731
+ $InputBox.setAttribute('autocorrect', 'off'); // for ios
9732
+ return $InputBox;
9733
+ };
9734
+
9704
9735
  const getIsMobile = () => {
9705
9736
  // @ts-ignore
9706
9737
  if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') {
@@ -9846,7 +9877,7 @@ const focus$6 = state => {
9846
9877
  // - for nvda ariaRoleDescription works better
9847
9878
 
9848
9879
  const create$a = () => {
9849
- const $QuickPickInput = create$B();
9880
+ const $QuickPickInput = create$b();
9850
9881
  $QuickPickInput.setAttribute(AriaControls, Ids.QuickPickItems); // TODO use idl once supported
9851
9882
  $QuickPickInput.role = ComboBox;
9852
9883
  $QuickPickInput.ariaLabel = 'Type the name of a command to run.';
@@ -9971,7 +10002,7 @@ const ViewletQuickPick = {
9971
10002
 
9972
10003
  const ViewletReferences = {
9973
10004
  __proto__: null,
9974
- Events: Events$7,
10005
+ Events: Events$8,
9975
10006
  focus: focus$b,
9976
10007
  handleError: handleError$1,
9977
10008
  setFocusedIndex: setFocusedIndex$3
@@ -10225,6 +10256,10 @@ const handleHeaderClick$1 = event => {
10225
10256
  return ['togglePreserveCase'];
10226
10257
  case 'Toggle Search Details':
10227
10258
  return ['toggleSearchDetails'];
10259
+ case 'Search Only Open Editors':
10260
+ return ['toggleOpenEditors'];
10261
+ case 'Use Exclude Settings':
10262
+ return ['toggleUseIgnoreFiles'];
10228
10263
  default:
10229
10264
  return [];
10230
10265
  }
@@ -10283,7 +10318,7 @@ const handleHeaderFocusIn = event => {
10283
10318
  }
10284
10319
  return ['handleFocusIn', key];
10285
10320
  };
10286
- const handleContextMenu$5 = event => {
10321
+ const handleContextMenu$4 = event => {
10287
10322
  preventDefault(event);
10288
10323
  const {
10289
10324
  button,
@@ -10299,12 +10334,12 @@ const handleWheel = event => {
10299
10334
  } = event;
10300
10335
  return ['handleWheel', deltaMode, deltaY];
10301
10336
  };
10302
- const returnValue$5 = true;
10337
+ const returnValue$4 = true;
10303
10338
 
10304
10339
  const ViewletSearchEvents = {
10305
10340
  __proto__: null,
10306
10341
  handleClick: handleClick$4,
10307
- handleContextMenu: handleContextMenu$5,
10342
+ handleContextMenu: handleContextMenu$4,
10308
10343
  handleExcludeInput,
10309
10344
  handleFocus: handleFocus$2,
10310
10345
  handleHeaderClick: handleHeaderClick$1,
@@ -10320,7 +10355,7 @@ const ViewletSearchEvents = {
10320
10355
  handleSharedInput,
10321
10356
  handleToggleButtonClick,
10322
10357
  handleWheel,
10323
- returnValue: returnValue$5
10358
+ returnValue: returnValue$4
10324
10359
  };
10325
10360
 
10326
10361
  const focus$5 = state => {
@@ -10353,11 +10388,11 @@ const setFocus = (state, selector) => {
10353
10388
  }
10354
10389
  };
10355
10390
  const dispose$3 = () => {};
10356
- const Events$5 = ViewletSearchEvents;
10391
+ const Events$6 = ViewletSearchEvents;
10357
10392
 
10358
10393
  const ViewletSearch = {
10359
10394
  __proto__: null,
10360
- Events: Events$5,
10395
+ Events: Events$6,
10361
10396
  dispose: dispose$3,
10362
10397
  focus: focus$5,
10363
10398
  setFocus,
@@ -10609,7 +10644,7 @@ const handleInput = event => {
10609
10644
  const ViewletSourceControlEvents = {
10610
10645
  __proto__: null,
10611
10646
  handleClick: handleClick$3,
10612
- handleContextMenu: handleContextMenu$8,
10647
+ handleContextMenu: handleContextMenu$7,
10613
10648
  handleFocus,
10614
10649
  handleInput,
10615
10650
  handleMouseOut,
@@ -10688,11 +10723,11 @@ const ViewletStorageEvents = {
10688
10723
  handleClick: handleClick$1
10689
10724
  };
10690
10725
 
10691
- const Events$4 = ViewletStorageEvents;
10726
+ const Events$5 = ViewletStorageEvents;
10692
10727
 
10693
10728
  const ViewletStorage = {
10694
10729
  __proto__: null,
10695
- Events: Events$4
10730
+ Events: Events$5
10696
10731
  };
10697
10732
 
10698
10733
  const isUint8Array = value => {
@@ -10935,7 +10970,7 @@ const ViewletTerminals = {
10935
10970
  setTabsDom
10936
10971
  };
10937
10972
 
10938
- const handleContextMenu$4 = event => {
10973
+ const handleContextMenu$3 = event => {
10939
10974
  preventDefault(event);
10940
10975
  const {
10941
10976
  button,
@@ -10963,7 +10998,7 @@ const attachEvents = state => {
10963
10998
  $Viewlet
10964
10999
  } = state;
10965
11000
  attachEvents$c($Viewlet, {
10966
- [ContextMenu]: handleContextMenu$4
11001
+ [ContextMenu]: handleContextMenu$3
10967
11002
  });
10968
11003
  };
10969
11004
  const activeClassName = 'TitleBarActive';
@@ -10995,26 +11030,26 @@ const handleTitleBarButtonsClick = event => {
10995
11030
  } = event;
10996
11031
  return ['handleClick', target.className];
10997
11032
  };
10998
- const returnValue$4 = true;
11033
+ const returnValue$3 = true;
10999
11034
 
11000
11035
  const ViewletTitleBarButtonEvents = {
11001
11036
  __proto__: null,
11002
11037
  handleTitleBarButtonsClick,
11003
- returnValue: returnValue$4
11038
+ returnValue: returnValue$3
11004
11039
  };
11005
11040
 
11006
- const Events$3 = ViewletTitleBarButtonEvents;
11041
+ const Events$4 = ViewletTitleBarButtonEvents;
11007
11042
 
11008
11043
  const ViewletTitleBarButtons = {
11009
11044
  __proto__: null,
11010
- Events: Events$3
11045
+ Events: Events$4
11011
11046
  };
11012
11047
 
11013
- const Events$2 = {};
11048
+ const Events$3 = {};
11014
11049
 
11015
11050
  const ViewletTitleBarIcon = {
11016
11051
  __proto__: null,
11017
- Events: Events$2
11052
+ Events: Events$3
11018
11053
  };
11019
11054
 
11020
11055
  const isInsideTitleBarMenu = $Element => {
@@ -11097,7 +11132,7 @@ const handleMenuClick = event => {
11097
11132
  const uid = fromEvent(event);
11098
11133
  handleMenuClick$1(uid, level, index);
11099
11134
  };
11100
- const handleFocusIn$1 = event => {
11135
+ const handleFocusIn = event => {
11101
11136
  const uid = fromEvent(event);
11102
11137
  handleFocus$c(uid);
11103
11138
  };
@@ -11105,7 +11140,7 @@ const handleFocusIn$1 = event => {
11105
11140
  const ViewletTitleBarMenuBarEvents = {
11106
11141
  __proto__: null,
11107
11142
  handleClick,
11108
- handleFocusIn: handleFocusIn$1,
11143
+ handleFocusIn,
11109
11144
  handleFocusOut,
11110
11145
  handleMenuClick,
11111
11146
  handleMenuMouseOver,
@@ -11346,11 +11381,11 @@ const setMenus = (state, changes, uid) => {
11346
11381
  }
11347
11382
  }
11348
11383
  };
11349
- const Events$1 = ViewletTitleBarMenuBarEvents;
11384
+ const Events$2 = ViewletTitleBarMenuBarEvents;
11350
11385
 
11351
11386
  const ViewletTitleBarMenuBar = {
11352
11387
  __proto__: null,
11353
- Events: Events$1,
11388
+ Events: Events$2,
11354
11389
  closeMenu,
11355
11390
  dispose,
11356
11391
  focus,
@@ -11382,11 +11417,11 @@ const ViewletVideoEvents = {
11382
11417
  handleVideoError
11383
11418
  };
11384
11419
 
11385
- const Events = ViewletVideoEvents;
11420
+ const Events$1 = ViewletVideoEvents;
11386
11421
 
11387
11422
  const ViewletVideo = {
11388
11423
  __proto__: null,
11389
- Events
11424
+ Events: Events$1
11390
11425
  };
11391
11426
 
11392
11427
  const create$2 = () => {
@@ -11409,34 +11444,6 @@ const ViewletTitleBarTitle = {
11409
11444
  setDom
11410
11445
  };
11411
11446
 
11412
- const handleClickOk = event => {
11413
- return ['handleClickOk'];
11414
- };
11415
- const handleClickClose = event => {
11416
- return ['handleClickClose'];
11417
- };
11418
- const handleClickCopy = event => {
11419
- return ['handleClickCopy'];
11420
- };
11421
- const handleFocusIn = event => {
11422
- return ['handleFocusIn'];
11423
- };
11424
- const handleContextMenu$3 = event => {
11425
- preventDefault(event);
11426
- return [];
11427
- };
11428
- const returnValue$3 = true;
11429
-
11430
- const ViewletAboutEvents = {
11431
- __proto__: null,
11432
- handleClickClose,
11433
- handleClickCopy,
11434
- handleClickOk,
11435
- handleContextMenu: handleContextMenu$3,
11436
- handleFocusIn,
11437
- returnValue: returnValue$3
11438
- };
11439
-
11440
11447
  const setFocused = (state, selector) => {
11441
11448
  if (selector === true) {
11442
11449
  selector = 'button';
@@ -11450,10 +11457,11 @@ const setFocused = (state, selector) => {
11450
11457
  const $Focusable = $Viewlet.querySelector(selector);
11451
11458
  $Focusable.focus();
11452
11459
  };
11460
+ const Events = {};
11453
11461
 
11454
11462
  const ViewletAbout = {
11455
11463
  __proto__: null,
11456
- Events: ViewletAboutEvents,
11464
+ Events,
11457
11465
  setFocused
11458
11466
  };
11459
11467
 
@@ -11592,7 +11600,7 @@ const handleContextMenu$1 = event => {
11592
11600
  } = event;
11593
11601
  return ['handleContextMenu', button, clientX, clientY];
11594
11602
  };
11595
- const handleSashCornerPointerDown = create$L(event => {
11603
+ const handleSashCornerPointerDown = create$K(event => {
11596
11604
  const {
11597
11605
  clientX,
11598
11606
  clientY