@lvce-editor/renderer-process 30.57.0 → 30.57.2

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.
@@ -1,34 +1,38 @@
1
1
  const omitted = new Set(['SCRIPT', 'STYLE', 'LINK', 'META', 'BASE', 'NOSCRIPT']);
2
2
  const unsupported = new Set(['IFRAME', 'WEBVIEW', 'CANVAS', 'OBJECT', 'EMBED', 'VIDEO', 'AUDIO']);
3
+ // The allowlist covers HTML, SVG and accessibility attributes.
3
4
  const attributes$1 = /^(class|style|id|title|role|type|checked|disabled|selected|placeholder|width|height|viewBox|d|fill|stroke|cx|cy|r|x|y|x1|x2|y1|y2|points|transform|xmlns|aria-[\w-]+)$/i;
4
5
  const capture = document => {
5
- const visit = node => {
6
- if (node.nodeType === 3) return {
7
- text: node.textContent
6
+ const visit = original => {
7
+ if (original.nodeType === 3) return {
8
+ text: original.textContent
8
9
  };
9
- if (node.nodeType !== 1 || omitted.has(node.tagName)) return undefined;
10
+ if (original.nodeType !== 1) return undefined;
11
+ const node = original;
12
+ if (omitted.has(node.tagName)) return undefined;
13
+ // Attributes also work on XML elements without a dataset property.
10
14
  if (node.hasAttribute('data-session-replay-ignore')) return undefined;
11
15
  if (unsupported.has(node.tagName) || node.matches('.Terminal, .TerminalView, .xterm, [data-session-replay-placeholder]')) {
12
16
  const {
13
- width,
14
- height
17
+ height,
18
+ width
15
19
  } = node.getBoundingClientRect();
16
20
  return {
17
- tag: 'div',
18
21
  attrs: {
19
22
  class: 'SessionReplayPlaceholder',
20
23
  style: `background:#808080;color:white;width:${width}px;height:${height}px;overflow:hidden`
21
24
  },
22
25
  children: [{
23
26
  text: 'Content unavailable in replay'
24
- }]
27
+ }],
28
+ tag: 'div'
25
29
  };
26
30
  }
27
31
  if (node.matches('[data-session-replay-mask], input[type=password]')) return {
28
- tag: 'span',
29
32
  children: [{
30
33
  text: '••••••••'
31
- }]
34
+ }],
35
+ tag: 'span'
32
36
  };
33
37
  const attrs = Object.fromEntries([...node.attributes].filter(({
34
38
  name
@@ -36,23 +40,26 @@ const capture = document => {
36
40
  name,
37
41
  value
38
42
  }) => [name, value]));
39
- if (node.tagName === 'IMG' && node.src.startsWith('data:image/')) attrs.src = node.src;
43
+ if (node.tagName === 'IMG') {
44
+ const image = node;
45
+ if (image.src.startsWith('data:image/')) attrs.src = image.src;
46
+ }
40
47
  return {
41
- tag: node.localName,
42
48
  attrs,
43
- ...(node.namespaceURI === 'http://www.w3.org/2000/svg' ? {
49
+ tag: node.localName,
50
+ ...(node.namespaceURI === 'http://www.w3.org/2000/svg' && {
44
51
  svg: true
45
- } : {}),
46
- ...(typeof node.value === 'string' ? {
52
+ }),
53
+ ...('value' in node && typeof node.value === 'string' && {
47
54
  value: node.value
48
- } : {}),
49
- ...(typeof node.checked === 'boolean' ? {
55
+ }),
56
+ ...('checked' in node && typeof node.checked === 'boolean' && {
50
57
  checked: node.checked
51
- } : {}),
52
- ...(node.scrollTop || node.scrollLeft ? {
58
+ }),
59
+ ...((node.scrollTop || node.scrollLeft) && {
53
60
  scroll: [node.scrollLeft, node.scrollTop]
54
- } : {}),
55
- children: [...node.childNodes].map(visit).filter(Boolean)
61
+ }),
62
+ children: Array.from(node.childNodes, visit).filter(child => child !== undefined)
56
63
  };
57
64
  };
58
65
  const styles = [];
@@ -60,10 +67,11 @@ const capture = document => {
60
67
  if (!sheet || seen.has(sheet)) return '';
61
68
  seen.add(sheet);
62
69
  try {
63
- return [...sheet.cssRules].map(rule => {
64
- if (rule.type !== 3) return rule.cssText;
65
- const imported = visitSheet(rule.styleSheet, seen);
66
- return rule.media.mediaText ? `@media ${rule.media.mediaText} { ${imported} }` : imported;
70
+ return Array.from(sheet.cssRules, rule => {
71
+ if (!('styleSheet' in rule)) return rule.cssText;
72
+ const importRule = rule;
73
+ const imported = visitSheet(importRule.styleSheet, seen);
74
+ return importRule.media.mediaText ? `@media ${importRule.media.mediaText} { ${imported} }` : imported;
67
75
  }).join('\n');
68
76
  } catch {
69
77
  return '';
@@ -71,12 +79,12 @@ const capture = document => {
71
79
  };
72
80
  for (const sheet of [...document.styleSheets, ...document.adoptedStyleSheets]) styles.push(visitSheet(sheet));
73
81
  return {
74
- dom: visit(document.body),
75
- styles,
76
82
  documentElement: {
77
83
  className: document.documentElement.className,
78
84
  style: document.documentElement.style.cssText
79
85
  },
86
+ dom: visit(document.body),
87
+ styles,
80
88
  viewport: [document.defaultView.innerWidth, document.defaultView.innerHeight]
81
89
  };
82
90
  };
@@ -89,12 +97,14 @@ const observe = (document, record, onError) => {
89
97
  };
90
98
  const observer = new MutationObserver(mark);
91
99
  observer.observe(document.documentElement, {
92
- subtree: true,
93
- childList: true,
94
100
  attributes: true,
95
- characterData: true
101
+ characterData: true,
102
+ childList: true,
103
+ subtree: true
104
+ });
105
+ for (const type of ['input', 'change', 'scroll']) document.addEventListener(type, mark, {
106
+ capture: true
96
107
  });
97
- for (const type of ['input', 'change', 'scroll']) document.addEventListener(type, mark, true);
98
108
  document.defaultView.addEventListener('resize', mark);
99
109
  let lastStyles = '';
100
110
  const snapshot = async (force = false) => {
@@ -116,7 +126,9 @@ const observe = (document, record, onError) => {
116
126
  }
117
127
  };
118
128
  void snapshot(true);
119
- const timer = setInterval(snapshot, 100);
129
+ const timer = setInterval(() => {
130
+ void snapshot();
131
+ }, 100);
120
132
  return () => {
121
133
  stopped = true;
122
134
  clearInterval(timer);
@@ -134,13 +146,13 @@ const serializeMessage = message => {
134
146
  if (seen.has(value)) return '[circular]';
135
147
  seen.add(value);
136
148
  if (value instanceof Error) return {
137
- name: value.name,
138
149
  message: value.message,
150
+ name: value.name,
139
151
  stack: value.stack
140
152
  };
141
153
  if (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) return {
142
- type: value.constructor.name,
143
- byteLength: value.byteLength
154
+ byteLength: value.byteLength,
155
+ type: value.constructor.name
144
156
  };
145
157
  if (value.constructor?.name === 'MessagePort') return {
146
158
  type: 'MessagePort'
@@ -151,8 +163,8 @@ const serializeMessage = message => {
151
163
 
152
164
  const createClient = url => {
153
165
  const worker = new Worker(url, {
154
- type: 'module',
155
- name: 'Session Replay Worker'
166
+ name: 'Session Replay Worker',
167
+ type: 'module'
156
168
  });
157
169
  const callbacks = new Map();
158
170
  let nextId = 0;
@@ -177,13 +189,18 @@ const createClient = url => {
177
189
  fail(new Error('Session replay worker failed to load'));
178
190
  };
179
191
  return {
192
+ dispose() {
193
+ disposed = true;
194
+ worker.terminate();
195
+ fail(new Error('Session replay worker is closed'));
196
+ },
180
197
  invoke(method, ...params) {
181
198
  if (disposed) return Promise.reject(new Error('Session replay worker is closed'));
182
199
  return new Promise((resolve, reject) => {
183
200
  const id = nextId++;
184
201
  callbacks.set(id, {
185
- resolve,
186
- reject
202
+ reject,
203
+ resolve: value => resolve(value)
187
204
  });
188
205
  try {
189
206
  worker.postMessage({
@@ -193,35 +210,35 @@ const createClient = url => {
193
210
  });
194
211
  } catch (error) {
195
212
  callbacks.delete(id);
196
- reject(error);
213
+ reject(error instanceof Error ? error : new Error(String(error)));
197
214
  }
198
215
  });
199
- },
200
- dispose() {
201
- disposed = true;
202
- worker.terminate();
203
- fail(new Error('Session replay worker is closed'));
204
216
  }
205
217
  };
206
218
  };
207
219
 
208
220
  const tags = new Set('body div span p pre code main section article header footer nav aside h1 h2 h3 h4 h5 h6 ul ol li table thead tbody tr td th button input textarea select option label form fieldset legend a img br hr strong em b i u s small details summary svg path rect circle ellipse line polyline polygon g defs clipPath text tspan'.split(' '));
221
+ // The allowlist covers HTML, SVG and accessibility attributes.
209
222
  const attributes = /^(class|style|id|title|role|type|checked|disabled|selected|placeholder|width|height|viewBox|d|fill|stroke|cx|cy|r|x|y|x1|x2|y1|y2|points|transform|xmlns|aria-[\w-]+)$/i;
210
223
  const renderFrame = (document, frame) => {
211
224
  let count = 0;
212
225
  const scrolls = [];
226
+ // Keep the inert DOM reconstruction and its bounds together.
227
+ // eslint-disable-next-line sonarjs/cognitive-complexity
213
228
  const visit = (value, depth = 0) => {
214
229
  if (++count > 100_000 || depth > 150 || !value || typeof value !== 'object') throw new Error('Invalid replay DOM');
215
230
  if (typeof value.text === 'string') return document.createTextNode(value.text);
216
- const tag = tags.has(value.tag) ? value.tag : 'div';
231
+ const tag = value.tag && tags.has(value.tag) ? value.tag : 'div';
217
232
  const node = value.svg ? document.createElementNS('http://www.w3.org/2000/svg', tag) : document.createElement(tag);
218
- for (const [key, val] of Object.entries(value.attrs || {})) {
233
+ const entries = Object.entries(value.attrs || {});
234
+ for (const [key, val] of entries) {
219
235
  if (attributes.test(key) && typeof val === 'string') node.setAttribute(key, val);
220
236
  if (key === 'src' && tag === 'img' && typeof val === 'string' && /^data:image\/(png|jpeg|gif|webp);base64,/.test(val)) node.setAttribute(key, val);
221
237
  }
222
- if (typeof value.value === 'string' && 'value' in node && node.type !== 'file') node.value = value.value;
223
- if (typeof value.checked === 'boolean') node.checked = value.checked;
224
- for (const child of value.children || []) node.append(visit(child, depth + 1));
238
+ if (typeof value.value === 'string' && 'value' in node && (!('type' in node) || node.type !== 'file')) node.value = value.value;
239
+ if (typeof value.checked === 'boolean' && 'checked' in node) node.checked = value.checked;
240
+ const children = value.children || [];
241
+ for (const child of children) node.append(visit(child, depth + 1));
225
242
  if (Array.isArray(value.scroll)) scrolls.push([node, value.scroll]);
226
243
  return node;
227
244
  };
@@ -236,8 +253,8 @@ const renderFrame = (document, frame) => {
236
253
  for (const [node, [x, y]] of scrolls) node.scrollTo(x, y);
237
254
  };
238
255
  const mountPlayer = async (container, {
239
- workerUrl,
240
- source
256
+ source,
257
+ workerUrl
241
258
  }) => {
242
259
  const client = createClient(workerUrl);
243
260
  container.replaceChildren();
@@ -251,7 +268,7 @@ const mountPlayer = async (container, {
251
268
  iframe.setAttribute('sandbox', 'allow-same-origin');
252
269
  iframe.style.cssText = 'border:0;pointer-events:none;display:block';
253
270
  const loaded = new Promise(resolve => {
254
- iframe.onload = resolve;
271
+ iframe.onload = () => resolve();
255
272
  });
256
273
  // An opaque, inert visual document: recorded markup cannot run scripts, submit forms or fetch URLs.
257
274
  iframe.srcdoc = '<!doctype html><html><head><meta http-equiv="Content-Security-Policy" content="default-src &#39;none&#39;; style-src &#39;unsafe-inline&#39;; img-src data:; font-src data:"></head><body></body></html>';
@@ -278,14 +295,16 @@ const mountPlayer = async (container, {
278
295
  let position = 0;
279
296
  let duration = 0;
280
297
  const show = result => {
281
- position = result.position;
282
- duration = result.duration;
298
+ ({
299
+ duration,
300
+ position
301
+ } = result);
283
302
  slider.max = String(Math.ceil(duration));
284
303
  slider.value = String(Math.round(position));
285
304
  status.textContent = `${(position / 1000).toFixed(1)} / ${(duration / 1000).toFixed(1)} s`;
286
305
  const [width, height] = result.frame.viewport || [1280, 720];
287
- iframe.style.width = `${Math.max(1, Math.min(16384, width))}px`;
288
- iframe.style.height = `${Math.max(1, Math.min(16384, height))}px`;
306
+ iframe.style.width = `${Math.max(1, Math.min(16_384, width))}px`;
307
+ iframe.style.height = `${Math.max(1, Math.min(16_384, height))}px`;
289
308
  renderFrame(iframe.contentDocument, result.frame);
290
309
  };
291
310
  const pause = () => {
@@ -300,7 +319,7 @@ const mountPlayer = async (container, {
300
319
  };
301
320
  const report = error => {
302
321
  pause();
303
- status.textContent = error.message;
322
+ status.textContent = error instanceof Error ? error.message : String(error);
304
323
  };
305
324
  slider.oninput = () => {
306
325
  pause();
@@ -318,7 +337,9 @@ const mountPlayer = async (container, {
318
337
  if (!playing || disposed) return;
319
338
  try {
320
339
  await seek(performance.now() - origin);
321
- if (position >= duration) pause();else if (playing) timer = setTimeout(tick, 50);
340
+ if (position >= duration) pause();else if (playing) timer = setTimeout(() => {
341
+ void tick();
342
+ }, 50);
322
343
  } catch (error) {
323
344
  report(error);
324
345
  }
@@ -349,10 +370,11 @@ const state$h = {
349
370
  const attached = new WeakSet();
350
371
  const workerUrl = new URL('sessionReplayWorkerMain.js', import.meta.url);
351
372
  const report = error => {
352
- state$h.lastError = error.message;
373
+ const message = error instanceof Error ? error.message : String(error);
374
+ state$h.lastError = message;
353
375
  state$h.stopObserving?.();
354
376
  state$h.stopObserving = undefined;
355
- console.warn(`Session replay: ${error.message}`);
377
+ console.warn(`Session replay: ${message}`);
356
378
  };
357
379
  const record$1 = (direction, message) => {
358
380
  if (!state$h.client || state$h.lastError) return;
@@ -1374,87 +1396,87 @@ const Use$1 = 91;
1374
1396
  const Reference$1 = 100;
1375
1397
 
1376
1398
  const VirtualDomElements = {
1377
- __proto__: null,
1378
- A,
1379
- Article,
1380
- Aside,
1381
- Audio: Audio$2,
1382
- BlockQuote,
1383
- Br,
1384
- Button,
1385
- Canvas,
1386
- Circle: Circle$1,
1387
- Cite,
1388
- Code,
1389
- Col,
1390
- ColGroup,
1391
- Data,
1392
- Dd,
1393
- Defs: Defs$1,
1394
- Del,
1395
- Div,
1396
- Dl,
1397
- Dt,
1398
- Ellipse: Ellipse$1,
1399
- Em,
1400
- Figcaption,
1401
- Figure,
1402
- Footer,
1403
- Form,
1404
- G: G$1,
1405
- H1,
1406
- H2,
1407
- H3,
1408
- H4,
1409
- H5,
1410
- H6,
1411
- Head,
1412
- Header,
1413
- Hr,
1414
- Html,
1415
- I,
1416
- Iframe,
1417
- Img,
1418
- Input,
1419
- Ins,
1420
- Kbd,
1421
- Label,
1422
- Li,
1423
- Line: Line$1,
1424
- Main,
1425
- Meta,
1426
- Nav,
1427
- Ol,
1428
- Option,
1429
- P,
1430
- Path: Path$1,
1431
- Polygon: Polygon$1,
1432
- Polyline: Polyline$1,
1433
- Pre,
1434
- Quote: Quote$2,
1435
- Rect: Rect$1,
1436
- Reference: Reference$1,
1437
- Search,
1438
- Section,
1439
- Select,
1440
- Span,
1441
- Strong,
1442
- Style,
1443
- Svg: Svg$1,
1444
- TBody,
1445
- THead,
1446
- Table,
1447
- Td,
1448
- Text: Text$1,
1449
- TextArea,
1450
- Tfoot,
1451
- Th,
1452
- Time,
1453
- Title,
1454
- Tr,
1455
- Ul,
1456
- Use: Use$1,
1457
- Video: Video$1
1399
+ __proto__: null,
1400
+ A,
1401
+ Article,
1402
+ Aside,
1403
+ Audio: Audio$2,
1404
+ BlockQuote,
1405
+ Br,
1406
+ Button,
1407
+ Canvas,
1408
+ Circle: Circle$1,
1409
+ Cite,
1410
+ Code,
1411
+ Col,
1412
+ ColGroup,
1413
+ Data,
1414
+ Dd,
1415
+ Defs: Defs$1,
1416
+ Del,
1417
+ Div,
1418
+ Dl,
1419
+ Dt,
1420
+ Ellipse: Ellipse$1,
1421
+ Em,
1422
+ Figcaption,
1423
+ Figure,
1424
+ Footer,
1425
+ Form,
1426
+ G: G$1,
1427
+ H1,
1428
+ H2,
1429
+ H3,
1430
+ H4,
1431
+ H5,
1432
+ H6,
1433
+ Head,
1434
+ Header,
1435
+ Hr,
1436
+ Html,
1437
+ I,
1438
+ Iframe,
1439
+ Img,
1440
+ Input,
1441
+ Ins,
1442
+ Kbd,
1443
+ Label,
1444
+ Li,
1445
+ Line: Line$1,
1446
+ Main,
1447
+ Meta,
1448
+ Nav,
1449
+ Ol,
1450
+ Option,
1451
+ P,
1452
+ Path: Path$1,
1453
+ Polygon: Polygon$1,
1454
+ Polyline: Polyline$1,
1455
+ Pre,
1456
+ Quote: Quote$2,
1457
+ Rect: Rect$1,
1458
+ Reference: Reference$1,
1459
+ Search,
1460
+ Section,
1461
+ Select,
1462
+ Span,
1463
+ Strong,
1464
+ Style,
1465
+ Svg: Svg$1,
1466
+ TBody,
1467
+ THead,
1468
+ Table,
1469
+ Td,
1470
+ Text: Text$1,
1471
+ TextArea,
1472
+ Tfoot,
1473
+ Th,
1474
+ Time,
1475
+ Title,
1476
+ Tr,
1477
+ Ul,
1478
+ Use: Use$1,
1479
+ Video: Video$1
1458
1480
  };
1459
1481
 
1460
1482
  const elementTagMap = {
@@ -1546,8 +1568,8 @@ const getElementTag$1 = type => {
1546
1568
  };
1547
1569
 
1548
1570
  const ElementTagMap = {
1549
- __proto__: null,
1550
- getElementTag: getElementTag$1
1571
+ __proto__: null,
1572
+ getElementTag: getElementTag$1
1551
1573
  };
1552
1574
 
1553
1575
  const Backspace$1 = 'Backspace';
@@ -4490,9 +4512,9 @@ const wrap = worker => {
4490
4512
  };
4491
4513
 
4492
4514
  const IpcParentWithModuleWorker = {
4493
- __proto__: null,
4494
- create: create$z,
4495
- wrap
4515
+ __proto__: null,
4516
+ create: create$z,
4517
+ wrap
4496
4518
  };
4497
4519
 
4498
4520
  const isMessagePort = value => {
@@ -4522,8 +4544,8 @@ const create$y = async ({
4522
4544
  };
4523
4545
 
4524
4546
  const IpcParentWithMessagePort = {
4525
- __proto__: null,
4526
- create: create$y
4547
+ __proto__: null,
4548
+ create: create$y
4527
4549
  };
4528
4550
 
4529
4551
  const create$x = async url => {
@@ -4539,8 +4561,8 @@ const create$x = async url => {
4539
4561
  };
4540
4562
 
4541
4563
  const IpcParentWithReferencePort = {
4542
- __proto__: null,
4543
- create: create$x
4564
+ __proto__: null,
4565
+ create: create$x
4544
4566
  };
4545
4567
 
4546
4568
  const workers = Object.create(null);
@@ -4583,8 +4605,8 @@ const create$w = async ({
4583
4605
  };
4584
4606
 
4585
4607
  const IpcParentWithModuleWorkerWithMessagePort = {
4586
- __proto__: null,
4587
- create: create$w
4608
+ __proto__: null,
4609
+ create: create$w
4588
4610
  };
4589
4611
 
4590
4612
  const isElectron = platform === Electron$1;
@@ -4608,8 +4630,8 @@ const create$v = async ({
4608
4630
  };
4609
4631
 
4610
4632
  const IpcParentWithElectron = {
4611
- __proto__: null,
4612
- create: create$v
4633
+ __proto__: null,
4634
+ create: create$v
4613
4635
  };
4614
4636
 
4615
4637
  const getModule = method => {
@@ -5053,6 +5075,7 @@ const setHeight = ($Element, height) => {
5053
5075
 
5054
5076
  const FocusLocationList = 17;
5055
5077
  const FocusMenu = 18;
5078
+ const FocusSimpleBrowserInput = 23;
5056
5079
  const FocusOutput = 28;
5057
5080
 
5058
5081
  // TODO when pressing tab -> focus next element in tab order and close menu
@@ -5544,18 +5567,18 @@ const dispatchEvent = (element, options) => {
5544
5567
  };
5545
5568
 
5546
5569
  const ElementActions = {
5547
- __proto__: null,
5548
- click,
5549
- contextMenu,
5550
- dispatchEvent,
5551
- hover,
5552
- keyDown,
5553
- keyUp,
5554
- keyboardEvent,
5555
- mouseDown,
5556
- mouseEvent,
5557
- mouseUp,
5558
- type
5570
+ __proto__: null,
5571
+ click,
5572
+ contextMenu,
5573
+ dispatchEvent,
5574
+ hover,
5575
+ keyDown,
5576
+ keyUp,
5577
+ keyboardEvent,
5578
+ mouseDown,
5579
+ mouseEvent,
5580
+ mouseUp,
5581
+ type
5559
5582
  };
5560
5583
 
5561
5584
  const querySelectorByText = (root, text) => {
@@ -5802,16 +5825,16 @@ const toHaveJSProperty$1 = (locator, {
5802
5825
  };
5803
5826
 
5804
5827
  const ConditionValues = {
5805
- __proto__: null,
5806
- toBeFocused: toBeFocused$1,
5807
- toContainText: toContainText$1,
5808
- toHaveAttribute: toHaveAttribute$1,
5809
- toHaveClass: toHaveClass$1,
5810
- toHaveCount: toHaveCount$1,
5811
- toHaveCss: toHaveCss$1,
5812
- toHaveId: toHaveId$1,
5813
- toHaveJSProperty: toHaveJSProperty$1,
5814
- toHaveText: toHaveText$1
5828
+ __proto__: null,
5829
+ toBeFocused: toBeFocused$1,
5830
+ toContainText: toContainText$1,
5831
+ toHaveAttribute: toHaveAttribute$1,
5832
+ toHaveClass: toHaveClass$1,
5833
+ toHaveCount: toHaveCount$1,
5834
+ toHaveCss: toHaveCss$1,
5835
+ toHaveId: toHaveId$1,
5836
+ toHaveJSProperty: toHaveJSProperty$1,
5837
+ toHaveText: toHaveText$1
5815
5838
  };
5816
5839
 
5817
5840
  const keyCodeMap = {
@@ -5910,8 +5933,8 @@ const press = options => {
5910
5933
  };
5911
5934
 
5912
5935
  const KeyboardActions = {
5913
- __proto__: null,
5914
- press
5936
+ __proto__: null,
5937
+ press
5915
5938
  };
5916
5939
 
5917
5940
  const toHaveCount = (elements, {
@@ -5924,9 +5947,9 @@ const toBeHidden = elements => {
5924
5947
  };
5925
5948
 
5926
5949
  const MultiElementConditions = {
5927
- __proto__: null,
5928
- toBeHidden,
5929
- toHaveCount
5950
+ __proto__: null,
5951
+ toBeHidden,
5952
+ toHaveCount
5930
5953
  };
5931
5954
 
5932
5955
  const toBeVisible = element => {
@@ -5990,17 +6013,17 @@ const toHaveCss = (element, {
5990
6013
  };
5991
6014
 
5992
6015
  const SingleElementConditions = {
5993
- __proto__: null,
5994
- toBeFocused,
5995
- toBeVisible,
5996
- toContainText,
5997
- toHaveAttribute,
5998
- toHaveClass,
5999
- toHaveCss,
6000
- toHaveId,
6001
- toHaveJSProperty,
6002
- toHaveText,
6003
- toHaveValue
6016
+ __proto__: null,
6017
+ toBeFocused,
6018
+ toBeVisible,
6019
+ toContainText,
6020
+ toHaveAttribute,
6021
+ toHaveClass,
6022
+ toHaveCss,
6023
+ toHaveId,
6024
+ toHaveJSProperty,
6025
+ toHaveText,
6026
+ toHaveValue
6004
6027
  };
6005
6028
 
6006
6029
  const retainItem = (item, index) => {
@@ -6397,11 +6420,11 @@ const dispose$g = state => {
6397
6420
  };
6398
6421
 
6399
6422
  const ImagePreview$1 = {
6400
- __proto__: null,
6401
- create: create$q,
6402
- dispose: dispose$g,
6403
- showError,
6404
- update
6423
+ __proto__: null,
6424
+ create: create$q,
6425
+ dispose: dispose$g,
6426
+ showError,
6427
+ update
6405
6428
  };
6406
6429
 
6407
6430
  const getNodeIndex = $Node => {
@@ -6430,10 +6453,10 @@ const handleMouseDown$3 = event => {
6430
6453
  const index = getNodeIndex($Item);
6431
6454
  return ['handleClickIndex', button, index, clientX, clientY];
6432
6455
  };
6433
- const handleBlur$6 = () => {
6456
+ const handleBlur$7 = () => {
6434
6457
  return ['handleBlur'];
6435
6458
  };
6436
- const handleFocus$8 = () => {
6459
+ const handleFocus$9 = () => {
6437
6460
  return ['handleFocus'];
6438
6461
  };
6439
6462
 
@@ -6451,19 +6474,19 @@ const handleContextMenu$6 = event => {
6451
6474
  const returnValue$8 = true;
6452
6475
 
6453
6476
  const ViewletActivityBarEvents = {
6454
- __proto__: null,
6455
- handleBlur: handleBlur$6,
6456
- handleContextMenu: handleContextMenu$6,
6457
- handleFocus: handleFocus$8,
6458
- handleMouseDown: handleMouseDown$3,
6459
- returnValue: returnValue$8
6477
+ __proto__: null,
6478
+ handleBlur: handleBlur$7,
6479
+ handleContextMenu: handleContextMenu$6,
6480
+ handleFocus: handleFocus$9,
6481
+ handleMouseDown: handleMouseDown$3,
6482
+ returnValue: returnValue$8
6460
6483
  };
6461
6484
 
6462
6485
  const Events$6 = ViewletActivityBarEvents;
6463
6486
 
6464
6487
  const ViewletActivityBar = {
6465
- __proto__: null,
6466
- Events: Events$6
6488
+ __proto__: null,
6489
+ Events: Events$6
6467
6490
  };
6468
6491
 
6469
6492
  const executeViewletCommand$1 = 'Viewlet.executeViewletCommand';
@@ -6479,8 +6502,8 @@ const send = (method, uid, ...args) => {
6479
6502
  };
6480
6503
 
6481
6504
  const ViewletEventRouter = {
6482
- __proto__: null,
6483
- send
6505
+ __proto__: null,
6506
+ send
6484
6507
  };
6485
6508
 
6486
6509
  const executeViewletCommand = (uid, command, ...args) => {
@@ -6517,7 +6540,7 @@ forwardViewletCommand('focusPrevious');
6517
6540
  const handleAudioError$1 = forwardViewletCommand('handleAudioError');
6518
6541
  forwardViewletCommand('handleBeforeInput');
6519
6542
  forwardViewletCommand('handleBeforeInputFromContentEditable');
6520
- const handleBlur$5 = forwardViewletCommand('handleBlur');
6543
+ const handleBlur$6 = forwardViewletCommand('handleBlur');
6521
6544
  const handleButtonClick = forwardViewletCommand('handleButtonClick');
6522
6545
  const handleClick$6 = forwardViewletCommand('handleClick');
6523
6546
  const handleClickAction$2 = forwardViewletCommand('handleClickAction');
@@ -6545,11 +6568,11 @@ forwardViewletCommand('handleClickSize');
6545
6568
  forwardViewletCommand('handleClickDisable');
6546
6569
  forwardViewletCommand('handleClickUninstall');
6547
6570
  forwardViewletCommand('handleFilterInput');
6548
- const handleFocus$7 = forwardViewletCommand('handleFocus');
6571
+ const handleFocus$8 = forwardViewletCommand('handleFocus');
6549
6572
  const handleFocusIn$4 = forwardViewletCommand('handleFocusIn');
6550
6573
  forwardViewletCommand('handleIconError');
6551
6574
  const handleImageError = forwardViewletCommand('handleImageError');
6552
- const handleInput$4 = forwardViewletCommand('handleInput');
6575
+ const handleInput$6 = forwardViewletCommand('handleInput');
6553
6576
  const handleKeyDown$3 = forwardViewletCommand('handleKeyDown');
6554
6577
  const handleLink = forwardViewletCommand('handleLink');
6555
6578
  forwardViewletCommand('handleListBlur');
@@ -6624,15 +6647,15 @@ const handleAudioError = event => {
6624
6647
  };
6625
6648
 
6626
6649
  const ViewletAudioEvents = {
6627
- __proto__: null,
6628
- handleAudioError
6650
+ __proto__: null,
6651
+ handleAudioError
6629
6652
  };
6630
6653
 
6631
6654
  const Events$5 = ViewletAudioEvents;
6632
6655
 
6633
6656
  const ViewletAudio = {
6634
- __proto__: null,
6635
- Events: Events$5
6657
+ __proto__: null,
6658
+ Events: Events$5
6636
6659
  };
6637
6660
 
6638
6661
  const create$p = () => {
@@ -6651,11 +6674,11 @@ const setTime = (state, time) => {
6651
6674
  };
6652
6675
 
6653
6676
  const ViewletClock = {
6654
- __proto__: null,
6655
- create: create$p,
6656
- dispose: dispose$f,
6657
- refresh: refresh$3,
6658
- setTime
6677
+ __proto__: null,
6678
+ create: create$p,
6679
+ dispose: dispose$f,
6680
+ refresh: refresh$3,
6681
+ setTime
6659
6682
  };
6660
6683
 
6661
6684
  const applyUidWorkaround = element => {
@@ -6741,9 +6764,9 @@ const handlePointerDown$2 = event => {
6741
6764
  const returnValue$7 = true;
6742
6765
 
6743
6766
  const ViewletColorPickerEvents = {
6744
- __proto__: null,
6745
- handlePointerDown: handlePointerDown$2,
6746
- returnValue: returnValue$7
6767
+ __proto__: null,
6768
+ handlePointerDown: handlePointerDown$2,
6769
+ returnValue: returnValue$7
6747
6770
  };
6748
6771
 
6749
6772
  const setColor = (state, color) => {
@@ -6768,14 +6791,14 @@ const appendWidget$6 = state => {
6768
6791
  };
6769
6792
 
6770
6793
  const ViewletColorPicker = {
6771
- __proto__: null,
6772
- Events: ViewletColorPickerEvents,
6773
- appendWidget: appendWidget$6,
6774
- setColor,
6775
- setOffsetX
6794
+ __proto__: null,
6795
+ Events: ViewletColorPickerEvents,
6796
+ appendWidget: appendWidget$6,
6797
+ setColor,
6798
+ setOffsetX
6776
6799
  };
6777
6800
 
6778
- const handleInput$3 = event => {
6801
+ const handleInput$5 = event => {
6779
6802
  const uid = fromEvent(event);
6780
6803
  const {
6781
6804
  target
@@ -6783,17 +6806,17 @@ const handleInput$3 = event => {
6783
6806
  const {
6784
6807
  value
6785
6808
  } = target;
6786
- handleInput$4(uid, value);
6809
+ handleInput$6(uid, value);
6787
6810
  };
6788
- const handleFocus$6 = event => {
6811
+ const handleFocus$7 = event => {
6789
6812
  const uid = fromEvent(event);
6790
- handleFocus$7(uid);
6813
+ handleFocus$8(uid);
6791
6814
  };
6792
6815
 
6793
6816
  const ViewletDebugConsoleEvents = {
6794
- __proto__: null,
6795
- handleFocus: handleFocus$6,
6796
- handleInput: handleInput$3
6817
+ __proto__: null,
6818
+ handleFocus: handleFocus$7,
6819
+ handleInput: handleInput$5
6797
6820
  };
6798
6821
 
6799
6822
  const create$n = () => {
@@ -6811,9 +6834,9 @@ const setDom$9 = (state, dom) => {
6811
6834
  };
6812
6835
 
6813
6836
  const ViewletDebugConsole = {
6814
- __proto__: null,
6815
- create: create$n,
6816
- setDom: setDom$9
6837
+ __proto__: null,
6838
+ create: create$n,
6839
+ setDom: setDom$9
6817
6840
  };
6818
6841
 
6819
6842
  const handleKeyDown$2 = event => {
@@ -6829,15 +6852,15 @@ const handleKeyDown$2 = event => {
6829
6852
  } = event;
6830
6853
  handleKeyDown$3(uid, key, altKey, ctrlKey, shiftKey, metaKey);
6831
6854
  };
6832
- const handleBlur$4 = event => {
6855
+ const handleBlur$5 = event => {
6833
6856
  const uid = fromEvent(event);
6834
- handleBlur$5(uid);
6857
+ handleBlur$6(uid);
6835
6858
  };
6836
6859
 
6837
6860
  const ViewletDefineKeyBindingEvents = {
6838
- __proto__: null,
6839
- handleBlur: handleBlur$4,
6840
- handleKeyDown: handleKeyDown$2
6861
+ __proto__: null,
6862
+ handleBlur: handleBlur$5,
6863
+ handleKeyDown: handleKeyDown$2
6841
6864
  };
6842
6865
 
6843
6866
  const setValue$2 = (state, value) => {
@@ -6858,10 +6881,10 @@ const focus$d = state => {
6858
6881
  };
6859
6882
 
6860
6883
  const ViewletDefineKeyBinding = {
6861
- __proto__: null,
6862
- Events: ViewletDefineKeyBindingEvents,
6863
- focus: focus$d,
6864
- setValue: setValue$2
6884
+ __proto__: null,
6885
+ Events: ViewletDefineKeyBindingEvents,
6886
+ focus: focus$d,
6887
+ setValue: setValue$2
6865
6888
  };
6866
6889
 
6867
6890
  const handleClick$5 = index => {
@@ -6956,14 +6979,14 @@ const setErrorStack = (state, errorStack) => {
6956
6979
  };
6957
6980
 
6958
6981
  const ViewletDialog = {
6959
- __proto__: null,
6960
- create: create$m,
6961
- postAppend,
6962
- setButtons,
6963
- setCodeFrame,
6964
- setErrorMessage,
6965
- setErrorStack,
6966
- setHeader
6982
+ __proto__: null,
6983
+ create: create$m,
6984
+ postAppend,
6985
+ setButtons,
6986
+ setCodeFrame,
6987
+ setErrorMessage,
6988
+ setErrorStack,
6989
+ setHeader
6967
6990
  };
6968
6991
 
6969
6992
  const handleWheel$2 = event => {
@@ -6980,9 +7003,9 @@ const handleScrollBarPointerDown$2 = event => {
6980
7003
  };
6981
7004
 
6982
7005
  const ViewletDiffEditorEvents = {
6983
- __proto__: null,
6984
- handleScrollBarPointerDown: handleScrollBarPointerDown$2,
6985
- handleWheel: handleWheel$2
7006
+ __proto__: null,
7007
+ handleScrollBarPointerDown: handleScrollBarPointerDown$2,
7008
+ handleWheel: handleWheel$2
6986
7009
  };
6987
7010
 
6988
7011
  const setScrollBar = (state, scrollBarY, scrollBarHeight, scrollBarThumbClass) => {
@@ -6996,9 +7019,9 @@ const setScrollBar = (state, scrollBarY, scrollBarHeight, scrollBarThumbClass) =
6996
7019
  };
6997
7020
 
6998
7021
  const ViewletDiffEditor = {
6999
- __proto__: null,
7000
- Events: ViewletDiffEditorEvents,
7001
- setScrollBar
7022
+ __proto__: null,
7023
+ Events: ViewletDiffEditorEvents,
7024
+ setScrollBar
7002
7025
  };
7003
7026
 
7004
7027
  const handleClickAt$2 = event => {
@@ -7042,12 +7065,12 @@ const handleSashCornerPointerDown = create$o(event => {
7042
7065
  const returnValue$6 = true;
7043
7066
 
7044
7067
  const ViewletE2eTestEvents = {
7045
- __proto__: null,
7046
- handleClickAt: handleClickAt$2,
7047
- handleContextMenu: handleContextMenu$4,
7048
- handleLoad: handleLoad$3,
7049
- handleSashCornerPointerDown,
7050
- returnValue: returnValue$6
7068
+ __proto__: null,
7069
+ handleClickAt: handleClickAt$2,
7070
+ handleContextMenu: handleContextMenu$4,
7071
+ handleLoad: handleLoad$3,
7072
+ handleSashCornerPointerDown,
7073
+ returnValue: returnValue$6
7051
7074
  };
7052
7075
 
7053
7076
  // TODO could use browser view when running in electron
@@ -7092,10 +7115,10 @@ const setPreviewTransform = (state, transform) => {
7092
7115
  // }
7093
7116
 
7094
7117
  const ViewletE2eTest = {
7095
- __proto__: null,
7096
- Events: ViewletE2eTestEvents,
7097
- setIframe: setIframe$3,
7098
- setPreviewTransform
7118
+ __proto__: null,
7119
+ Events: ViewletE2eTestEvents,
7120
+ setIframe: setIframe$3,
7121
+ setPreviewTransform
7099
7122
  };
7100
7123
 
7101
7124
  const handleClickAt$1 = event => {
@@ -7120,11 +7143,11 @@ const handleContextMenu$3 = event => {
7120
7143
  const returnValue$5 = true;
7121
7144
 
7122
7145
  const ViewletE2eTestsEvents = {
7123
- __proto__: null,
7124
- handleClickAt: handleClickAt$1,
7125
- handleContextMenu: handleContextMenu$3,
7126
- handleLoad: handleLoad$2,
7127
- returnValue: returnValue$5
7146
+ __proto__: null,
7147
+ handleClickAt: handleClickAt$1,
7148
+ handleContextMenu: handleContextMenu$3,
7149
+ handleLoad: handleLoad$2,
7150
+ returnValue: returnValue$5
7128
7151
  };
7129
7152
 
7130
7153
  const sendToIframe = (contentWindow, message, origin, transfer) => {
@@ -7181,10 +7204,10 @@ const setPort$2 = (state, portId, origin) => {
7181
7204
  };
7182
7205
 
7183
7206
  const ViewletE2eTests = {
7184
- __proto__: null,
7185
- Events: ViewletE2eTestsEvents,
7186
- setIframe: setIframe$2,
7187
- setPort: setPort$2
7207
+ __proto__: null,
7208
+ Events: ViewletE2eTestsEvents,
7209
+ setIframe: setIframe$2,
7210
+ setPort: setPort$2
7188
7211
  };
7189
7212
 
7190
7213
  const Script = 2;
@@ -7194,16 +7217,16 @@ const handleFocusIn$3 = event => {
7194
7217
  const uid = fromEvent(event);
7195
7218
  handleFocusIn$4(uid);
7196
7219
  };
7197
- const handleBlur$3 = event => {
7220
+ const handleBlur$4 = event => {
7198
7221
  preventDefault(event);
7199
7222
  const uid = fromEvent(event);
7200
- handleBlur$5(uid);
7223
+ handleBlur$6(uid);
7201
7224
  };
7202
7225
 
7203
7226
  const ViewletEditorCodeGeneratorEvents = {
7204
- __proto__: null,
7205
- handleBlur: handleBlur$3,
7206
- handleFocusIn: handleFocusIn$3
7227
+ __proto__: null,
7228
+ handleBlur: handleBlur$4,
7229
+ handleFocusIn: handleFocusIn$3
7207
7230
  };
7208
7231
 
7209
7232
  const setBounds$9 = (state, x, y, width, height) => {
@@ -7242,12 +7265,12 @@ const focus$c = (state, key, source) => {
7242
7265
  };
7243
7266
 
7244
7267
  const ViewletEditorCodeGenerator = {
7245
- __proto__: null,
7246
- Events: ViewletEditorCodeGeneratorEvents,
7247
- appendWidget: appendWidget$5,
7248
- dispose: dispose$e,
7249
- focus: focus$c,
7250
- setBounds: setBounds$9
7268
+ __proto__: null,
7269
+ Events: ViewletEditorCodeGeneratorEvents,
7270
+ appendWidget: appendWidget$5,
7271
+ dispose: dispose$e,
7272
+ focus: focus$c,
7273
+ setBounds: setBounds$9
7251
7274
  };
7252
7275
 
7253
7276
  const Passive = {
@@ -7445,18 +7468,18 @@ const setBounds$8 = (state, x, y, width, height) => {
7445
7468
  };
7446
7469
 
7447
7470
  const ViewletEditorCompletion = {
7448
- __proto__: null,
7449
- attachEvents: attachEvents$6,
7450
- create: create$l,
7451
- dispose: dispose$d,
7452
- handleError: handleError$5,
7453
- setBounds: setBounds$8,
7454
- setContentHeight,
7455
- setDom: setDom$8,
7456
- setNegativeMargin,
7457
- setScrollBar,
7458
- setSize,
7459
- showLoading
7471
+ __proto__: null,
7472
+ attachEvents: attachEvents$6,
7473
+ create: create$l,
7474
+ dispose: dispose$d,
7475
+ handleError: handleError$5,
7476
+ setBounds: setBounds$8,
7477
+ setContentHeight,
7478
+ setDom: setDom$8,
7479
+ setNegativeMargin,
7480
+ setScrollBar,
7481
+ setSize,
7482
+ showLoading
7460
7483
  };
7461
7484
 
7462
7485
  const handleClose = () => {
@@ -7465,9 +7488,9 @@ const handleClose = () => {
7465
7488
  const returnValue$4 = true;
7466
7489
 
7467
7490
  const ViewletEditorCompletionDetailsEvents = {
7468
- __proto__: null,
7469
- handleClose,
7470
- returnValue: returnValue$4
7491
+ __proto__: null,
7492
+ handleClose,
7493
+ returnValue: returnValue$4
7471
7494
  };
7472
7495
 
7473
7496
  const create$k = () => {
@@ -7507,14 +7530,14 @@ const setBounds$7 = (state, x, y, width, height) => {
7507
7530
  };
7508
7531
 
7509
7532
  const ViewletEditorCompletionDetails = {
7510
- __proto__: null,
7511
- Events: ViewletEditorCompletionDetailsEvents,
7512
- appendWidget: appendWidget$4,
7513
- attachEvents: attachEvents$5,
7514
- create: create$k,
7515
- dispose: dispose$c,
7516
- setBounds: setBounds$7,
7517
- setDom: setDom$7
7533
+ __proto__: null,
7534
+ Events: ViewletEditorCompletionDetailsEvents,
7535
+ appendWidget: appendWidget$4,
7536
+ attachEvents: attachEvents$5,
7537
+ create: create$k,
7538
+ dispose: dispose$c,
7539
+ setBounds: setBounds$7,
7540
+ setDom: setDom$7
7518
7541
  };
7519
7542
 
7520
7543
  // TODO not sure whether created DOM node
@@ -7551,10 +7574,10 @@ const setBounds$6 = (state, x, y, width, height) => {
7551
7574
  };
7552
7575
 
7553
7576
  const ViewletEditorError = {
7554
- __proto__: null,
7555
- create: create$j,
7556
- setBounds: setBounds$6,
7557
- setDom: setDom$6
7577
+ __proto__: null,
7578
+ create: create$j,
7579
+ setBounds: setBounds$6,
7580
+ setDom: setDom$6
7558
7581
  };
7559
7582
 
7560
7583
  const returnValue$3 = true;
@@ -7579,9 +7602,9 @@ const handleSashPointerDown$2 = create$o(event => {
7579
7602
  });
7580
7603
 
7581
7604
  const ViewletEditorHoverEvents = {
7582
- __proto__: null,
7583
- handleSashPointerDown: handleSashPointerDown$2,
7584
- returnValue: returnValue$3
7605
+ __proto__: null,
7606
+ handleSashPointerDown: handleSashPointerDown$2,
7607
+ returnValue: returnValue$3
7585
7608
  };
7586
7609
 
7587
7610
  const setBounds$5 = (state, x, y, width, height) => {
@@ -7605,11 +7628,11 @@ const setDom$5 = (state, dom) => {
7605
7628
  };
7606
7629
 
7607
7630
  const ViewletEditorHover = {
7608
- __proto__: null,
7609
- Events: ViewletEditorHoverEvents,
7610
- appendWidget: appendWidget$3,
7611
- setBounds: setBounds$5,
7612
- setDom: setDom$5
7631
+ __proto__: null,
7632
+ Events: ViewletEditorHoverEvents,
7633
+ appendWidget: appendWidget$3,
7634
+ setBounds: setBounds$5,
7635
+ setDom: setDom$5
7613
7636
  };
7614
7637
 
7615
7638
  const LeftClick = 0;
@@ -7705,9 +7728,9 @@ const handleError$4 = event => {
7705
7728
  const uid = fromEvent(event);
7706
7729
  handleImageError(uid);
7707
7730
  };
7708
- const handleFocus$5 = event => {
7731
+ const handleFocus$6 = event => {
7709
7732
  const uid = fromEvent(event);
7710
- handleFocus$7(uid);
7733
+ handleFocus$8(uid);
7711
7734
  };
7712
7735
 
7713
7736
  const create$i = () => {
@@ -7723,7 +7746,7 @@ const attachEvents$4 = state => {
7723
7746
  } = state;
7724
7747
  attachEvents$7($Viewlet, {
7725
7748
  [ContextMenu]: handleContextMenu$2,
7726
- [FocusIn]: handleFocus$5,
7749
+ [FocusIn]: handleFocus$6,
7727
7750
  [PointerDown]: handlePointerDown$1,
7728
7751
  [PointerUp]: handlePointerUp
7729
7752
  });
@@ -7751,12 +7774,12 @@ const setDom$4 = (state, dom) => {
7751
7774
  };
7752
7775
 
7753
7776
  const ViewletEditorImage = {
7754
- __proto__: null,
7755
- attachEvents: attachEvents$4,
7756
- create: create$i,
7757
- setDom: setDom$4,
7758
- setDragging,
7759
- setTransform
7777
+ __proto__: null,
7778
+ attachEvents: attachEvents$4,
7779
+ create: create$i,
7780
+ setDom: setDom$4,
7781
+ setDragging,
7782
+ setTransform
7760
7783
  };
7761
7784
 
7762
7785
  const create$h = () => {
@@ -7775,10 +7798,10 @@ const refresh$2 = (state, context) => {
7775
7798
  };
7776
7799
 
7777
7800
  const ViewletEditorPlainText = {
7778
- __proto__: null,
7779
- create: create$h,
7780
- dispose: dispose$b,
7781
- refresh: refresh$2
7801
+ __proto__: null,
7802
+ create: create$h,
7803
+ dispose: dispose$b,
7804
+ refresh: refresh$2
7782
7805
  };
7783
7806
 
7784
7807
  const handleFocusIn$2 = event => {
@@ -7788,8 +7811,8 @@ const handleFocusIn$2 = event => {
7788
7811
  };
7789
7812
 
7790
7813
  const ViewletEditorSourceActionsEvents = {
7791
- __proto__: null,
7792
- handleFocusIn: handleFocusIn$2
7814
+ __proto__: null,
7815
+ handleFocusIn: handleFocusIn$2
7793
7816
  };
7794
7817
 
7795
7818
  const setBounds$4 = (state, x, y, width, height) => {
@@ -7810,11 +7833,11 @@ const dispose$a = state => {
7810
7833
  };
7811
7834
 
7812
7835
  const ViewletEditorSourceActions = {
7813
- __proto__: null,
7814
- Events: ViewletEditorSourceActionsEvents,
7815
- appendWidget: appendWidget$2,
7816
- dispose: dispose$a,
7817
- setBounds: setBounds$4
7836
+ __proto__: null,
7837
+ Events: ViewletEditorSourceActionsEvents,
7838
+ appendWidget: appendWidget$2,
7839
+ dispose: dispose$a,
7840
+ setBounds: setBounds$4
7818
7841
  };
7819
7842
 
7820
7843
  const create$g = () => {
@@ -7832,9 +7855,9 @@ const setMessage$3 = (state, message) => {
7832
7855
  };
7833
7856
 
7834
7857
  const ViewletEditorTextError = {
7835
- __proto__: null,
7836
- create: create$g,
7837
- setMessage: setMessage$3
7858
+ __proto__: null,
7859
+ create: create$g,
7860
+ setMessage: setMessage$3
7838
7861
  };
7839
7862
 
7840
7863
  const create$f = () => {
@@ -7859,10 +7882,10 @@ const setBounds$3 = (state, x, y, width, height) => {
7859
7882
  };
7860
7883
 
7861
7884
  const ViewletEditorWidgetError = {
7862
- __proto__: null,
7863
- create: create$f,
7864
- setBounds: setBounds$3,
7865
- setMessage: setMessage$2
7885
+ __proto__: null,
7886
+ create: create$f,
7887
+ setBounds: setBounds$3,
7888
+ setMessage: setMessage$2
7866
7889
  };
7867
7890
 
7868
7891
  const create$e = () => {
@@ -7878,11 +7901,11 @@ const focus$b = state => {};
7878
7901
  const dispose$9 = state => {};
7879
7902
 
7880
7903
  const ViewletEmpty = {
7881
- __proto__: null,
7882
- create: create$e,
7883
- dispose: dispose$9,
7884
- focus: focus$b,
7885
- refresh: refresh$1
7904
+ __proto__: null,
7905
+ create: create$e,
7906
+ dispose: dispose$9,
7907
+ focus: focus$b,
7908
+ refresh: refresh$1
7886
7909
  };
7887
7910
 
7888
7911
  const create$d = () => {
@@ -7894,8 +7917,8 @@ const create$d = () => {
7894
7917
  };
7895
7918
 
7896
7919
  const ViewletEmptyEditor = {
7897
- __proto__: null,
7898
- create: create$d
7920
+ __proto__: null,
7921
+ create: create$d
7899
7922
  };
7900
7923
 
7901
7924
  const create$c = () => {
@@ -7913,16 +7936,16 @@ const setMessage$1 = (state, message) => {
7913
7936
  };
7914
7937
 
7915
7938
  const ViewletError = {
7916
- __proto__: null,
7917
- create: create$c,
7918
- setMessage: setMessage$1
7939
+ __proto__: null,
7940
+ create: create$c,
7941
+ setMessage: setMessage$1
7919
7942
  };
7920
7943
 
7921
7944
  const commandMap$1 = {};
7922
7945
 
7923
7946
  const ViewletExtensionViewEvents = {
7924
- __proto__: null,
7925
- commandMap: commandMap$1
7947
+ __proto__: null,
7948
+ commandMap: commandMap$1
7926
7949
  };
7927
7950
 
7928
7951
  const setIframeCredentialless = ($Iframe, credentialless) => {
@@ -7976,13 +7999,13 @@ const setIframe$1 = (state, src, sandbox = [], srcDoc = '', csp = '', credential
7976
7999
  };
7977
8000
 
7978
8001
  const ViewletExtensionView = {
7979
- __proto__: null,
7980
- Events: ViewletExtensionViewEvents,
7981
- focus: focus$a,
7982
- setIframe: setIframe$1
8002
+ __proto__: null,
8003
+ Events: ViewletExtensionViewEvents,
8004
+ focus: focus$a,
8005
+ setIframe: setIframe$1
7983
8006
  };
7984
8007
 
7985
- const handleInput$2 = event => {
8008
+ const handleInput$4 = event => {
7986
8009
  const {
7987
8010
  target
7988
8011
  } = event;
@@ -8030,7 +8053,7 @@ const handleReplaceInput = event => {
8030
8053
  const handleReplaceFocus = event => {
8031
8054
  return ['FindWidget.handleReplaceFocus'];
8032
8055
  };
8033
- const handleFocus$4 = event => {
8056
+ const handleFocus$5 = event => {
8034
8057
  return ['FindWidget.handleFocus'];
8035
8058
  };
8036
8059
  const handleToggleReplaceFocus = event => {
@@ -8051,24 +8074,24 @@ const handleFocusReplaceAll = event => {
8051
8074
  const returnValue$2 = true;
8052
8075
 
8053
8076
  const ViewletFindWidgetEvents = {
8054
- __proto__: null,
8055
- handleClickClose: handleClickClose$1,
8056
- handleClickNextMatch,
8057
- handleClickPreviousMatch,
8058
- handleClickReplace,
8059
- handleClickReplaceAll,
8060
- handleClickToggleReplace,
8061
- handleFocus: handleFocus$4,
8062
- handleFocusClose,
8063
- handleFocusNext,
8064
- handleFocusPrevious,
8065
- handleFocusReplaceAll,
8066
- handleInput: handleInput$2,
8067
- handleInputBlur,
8068
- handleReplaceFocus,
8069
- handleReplaceInput,
8070
- handleToggleReplaceFocus,
8071
- returnValue: returnValue$2
8077
+ __proto__: null,
8078
+ handleClickClose: handleClickClose$1,
8079
+ handleClickNextMatch,
8080
+ handleClickPreviousMatch,
8081
+ handleClickReplace,
8082
+ handleClickReplaceAll,
8083
+ handleClickToggleReplace,
8084
+ handleFocus: handleFocus$5,
8085
+ handleFocusClose,
8086
+ handleFocusNext,
8087
+ handleFocusPrevious,
8088
+ handleFocusReplaceAll,
8089
+ handleInput: handleInput$4,
8090
+ handleInputBlur,
8091
+ handleReplaceFocus,
8092
+ handleReplaceInput,
8093
+ handleToggleReplaceFocus,
8094
+ returnValue: returnValue$2
8072
8095
  };
8073
8096
 
8074
8097
  const create$b = () => {
@@ -8131,15 +8154,15 @@ const dispose$8 = state => {
8131
8154
  const Events$4 = ViewletFindWidgetEvents;
8132
8155
 
8133
8156
  const ViewletFindWidget = {
8134
- __proto__: null,
8135
- Events: Events$4,
8136
- appendWidget: appendWidget$1,
8137
- create: create$b,
8138
- dispose: dispose$8,
8139
- focus: focus$9,
8140
- setBounds: setBounds$2,
8141
- setDom: setDom$3,
8142
- setValue: setValue$1
8157
+ __proto__: null,
8158
+ Events: Events$4,
8159
+ appendWidget: appendWidget$1,
8160
+ create: create$b,
8161
+ dispose: dispose$8,
8162
+ focus: focus$9,
8163
+ setBounds: setBounds$2,
8164
+ setDom: setDom$3,
8165
+ setValue: setValue$1
8143
8166
  };
8144
8167
 
8145
8168
  const handleLocationsMouseDown = event => {
@@ -8156,8 +8179,8 @@ const handleLocationsMouseDown = event => {
8156
8179
  };
8157
8180
 
8158
8181
  const ViewletLocationsEvents = {
8159
- __proto__: null,
8160
- handleLocationsMouseDown
8182
+ __proto__: null,
8183
+ handleLocationsMouseDown
8161
8184
  };
8162
8185
 
8163
8186
  const setFocusedIndex$1 = (state, oldFocusedIndex, newFocusedIndex) => {
@@ -8193,11 +8216,11 @@ const focus$8 = state => {
8193
8216
  };
8194
8217
 
8195
8218
  const ViewletImplementations = {
8196
- __proto__: null,
8197
- Events: ViewletLocationsEvents,
8198
- focus: focus$8,
8199
- handleError: handleError$3,
8200
- setFocusedIndex: setFocusedIndex$1
8219
+ __proto__: null,
8220
+ Events: ViewletLocationsEvents,
8221
+ focus: focus$8,
8222
+ handleError: handleError$3,
8223
+ setFocusedIndex: setFocusedIndex$1
8201
8224
  };
8202
8225
 
8203
8226
  const handleScrollBarPointerDown = event => {
@@ -8205,15 +8228,15 @@ const handleScrollBarPointerDown = event => {
8205
8228
  };
8206
8229
 
8207
8230
  const ViewletInlineDiffEditorEvents = {
8208
- __proto__: null,
8209
- handleScrollBarPointerDown,
8210
- handleWheel: handleWheel$2
8231
+ __proto__: null,
8232
+ handleScrollBarPointerDown,
8233
+ handleWheel: handleWheel$2
8211
8234
  };
8212
8235
 
8213
8236
  const ViewletInlineDiffEditor = {
8214
- __proto__: null,
8215
- Events: ViewletInlineDiffEditorEvents,
8216
- setScrollBar
8237
+ __proto__: null,
8238
+ Events: ViewletInlineDiffEditorEvents,
8239
+ setScrollBar
8217
8240
  };
8218
8241
 
8219
8242
  const handleResizerPointerMove = event => {
@@ -8263,11 +8286,11 @@ const handlePointerDown = event => {
8263
8286
  };
8264
8287
 
8265
8288
  const ViewletkeyBindingsEvents = {
8266
- __proto__: null,
8267
- handlePointerDown,
8268
- handleResizerPointerDown,
8269
- handleResizerPointerMove,
8270
- handleResizerPointerUp
8289
+ __proto__: null,
8290
+ handlePointerDown,
8291
+ handleResizerPointerDown,
8292
+ handleResizerPointerMove,
8293
+ handleResizerPointerUp
8271
8294
  };
8272
8295
 
8273
8296
  const setValue = (state, value) => {
@@ -8291,12 +8314,12 @@ const setColumnWidths = (state, columnWidth1, columnWidth2, columnWidth3) => {
8291
8314
  const Events$3 = ViewletkeyBindingsEvents;
8292
8315
 
8293
8316
  const ViewletKeyBindings = {
8294
- __proto__: null,
8295
- Events: Events$3,
8296
- setColumnWidths,
8297
- setScrollBar,
8298
- setSize,
8299
- setValue
8317
+ __proto__: null,
8318
+ Events: Events$3,
8319
+ setColumnWidths,
8320
+ setScrollBar,
8321
+ setSize,
8322
+ setValue
8300
8323
  };
8301
8324
 
8302
8325
  const getSashId = $Target => {
@@ -8403,10 +8426,10 @@ const handleSashDoubleClick$1 = id => {
8403
8426
  const handleResize$1 = (width, height) => {
8404
8427
  send$1('Layout.handleResize', width, height);
8405
8428
  };
8406
- const handleFocus$3 = () => {
8429
+ const handleFocus$4 = () => {
8407
8430
  send$1('Layout.handleFocus');
8408
8431
  };
8409
- const handleBlur$2 = () => {
8432
+ const handleBlur$3 = () => {
8410
8433
  send$1('Layout.handleBlur');
8411
8434
  };
8412
8435
 
@@ -8452,11 +8475,11 @@ const handleResize = () => {
8452
8475
  } = window;
8453
8476
  handleResize$1(innerWidth, innerHeight);
8454
8477
  };
8455
- const handleFocus$2 = () => {
8456
- handleFocus$3();
8478
+ const handleFocus$3 = () => {
8479
+ handleFocus$4();
8457
8480
  };
8458
- const handleBlur$1 = () => {
8459
- handleBlur$2();
8481
+ const handleBlur$2 = () => {
8482
+ handleBlur$3();
8460
8483
  };
8461
8484
  const handleKeyDown = handleKeyDown$1;
8462
8485
  const handleKeyUp = handleKeyUp$1;
@@ -8496,8 +8519,8 @@ const attachEvents$3 = state => {
8496
8519
  [PointerDown]: handleSashPointerDown
8497
8520
  });
8498
8521
  attachEvents$7(window, {
8499
- [Blur]: handleBlur$1,
8500
- [Focus]: handleFocus$2,
8522
+ [Blur]: handleBlur$2,
8523
+ [Focus]: handleFocus$3,
8501
8524
  [KeyDown]: handleKeyDown,
8502
8525
  [KeyUp]: handleKeyUp,
8503
8526
  [Resize]: handleResize
@@ -8515,10 +8538,10 @@ const setSashes = (state, sashSidebar, sashPanel) => {
8515
8538
  };
8516
8539
 
8517
8540
  const ViewletLayout = {
8518
- __proto__: null,
8519
- attachEvents: attachEvents$3,
8520
- create: create$a,
8521
- setSashes
8541
+ __proto__: null,
8542
+ attachEvents: attachEvents$3,
8543
+ create: create$a,
8544
+ setSashes
8522
8545
  };
8523
8546
 
8524
8547
  const ActivityBar = 'ActivityBar';
@@ -8623,15 +8646,15 @@ const disposeFindWidget = state => {
8623
8646
  const dispose$7 = state => {};
8624
8647
 
8625
8648
  const ViewletOutput = {
8626
- __proto__: null,
8627
- clear: clear$1,
8628
- create: create$9,
8629
- dispose: dispose$7,
8630
- disposeFindWidget,
8631
- focus: focus$7,
8632
- handleError: handleError$2,
8633
- openFindWidget,
8634
- setText
8649
+ __proto__: null,
8650
+ clear: clear$1,
8651
+ create: create$9,
8652
+ dispose: dispose$7,
8653
+ disposeFindWidget,
8654
+ focus: focus$7,
8655
+ handleError: handleError$2,
8656
+ openFindWidget,
8657
+ setText
8635
8658
  };
8636
8659
 
8637
8660
  const handleClickClose = event => {
@@ -8793,26 +8816,26 @@ const setActionsDom$1 = (state, actions, childUid) => {
8793
8816
  };
8794
8817
 
8795
8818
  const ViewletPanel = {
8796
- __proto__: null,
8797
- attachEvents: attachEvents$2,
8798
- create: create$8,
8799
- dispose: dispose$6,
8800
- focus: focus$6,
8801
- setActionsDom: setActionsDom$1,
8802
- setSelectedIndex,
8803
- setTabsDom: setTabsDom$1
8819
+ __proto__: null,
8820
+ attachEvents: attachEvents$2,
8821
+ create: create$8,
8822
+ dispose: dispose$6,
8823
+ focus: focus$6,
8824
+ setActionsDom: setActionsDom$1,
8825
+ setSelectedIndex,
8826
+ setTabsDom: setTabsDom$1
8804
8827
  };
8805
8828
 
8806
8829
  const ViewletReferences = {
8807
- __proto__: null,
8808
- Events: ViewletLocationsEvents,
8809
- focus: focus$8,
8810
- handleError: handleError$3,
8811
- setFocusedIndex: setFocusedIndex$1
8830
+ __proto__: null,
8831
+ Events: ViewletLocationsEvents,
8832
+ focus: focus$8,
8833
+ handleError: handleError$3,
8834
+ setFocusedIndex: setFocusedIndex$1
8812
8835
  };
8813
8836
 
8814
8837
  const ViewletRunAndDebug = {
8815
- __proto__: null
8838
+ __proto__: null
8816
8839
  };
8817
8840
 
8818
8841
  const handleLoadedMetadata = event => {
@@ -8842,9 +8865,9 @@ const setScreenCapture = (state, id) => {
8842
8865
  };
8843
8866
 
8844
8867
  const ViewletScreenCapture = {
8845
- __proto__: null,
8846
- create: create$7,
8847
- setScreenCapture
8868
+ __proto__: null,
8869
+ create: create$7,
8870
+ setScreenCapture
8848
8871
  };
8849
8872
 
8850
8873
  const Sidebar = 'Side Bar';
@@ -8929,21 +8952,199 @@ const focus$5 = async () => {
8929
8952
  };
8930
8953
 
8931
8954
  const ViewletSidebar = {
8932
- __proto__: null,
8933
- attachEvents: attachEvents$1,
8934
- create: create$6,
8935
- dispose: dispose$5,
8936
- focus: focus$5,
8937
- setActionsDom,
8938
- setTitle
8955
+ __proto__: null,
8956
+ attachEvents: attachEvents$1,
8957
+ create: create$6,
8958
+ dispose: dispose$5,
8959
+ focus: focus$5,
8960
+ setActionsDom,
8961
+ setTitle
8962
+ };
8963
+
8964
+ const pendingSelections = new WeakMap();
8965
+ const state$2 = {};
8966
+ const handleFocus$2 = event => {
8967
+ const target = event.target;
8968
+ if (target instanceof HTMLElement && !target.closest('.SimpleBrowser') && target.closest('.Main, .Panel, .Editor, .Terminal')) {
8969
+ state$2.codingFocus = new WeakRef(target);
8970
+ }
8971
+ };
8972
+ const listen = () => {
8973
+ document.addEventListener('focusin', handleFocus$2);
8974
+ };
8975
+ const restoreCodingFocus$1 = () => {
8976
+ const target = state$2.codingFocus?.deref();
8977
+ if (!target?.isConnected) {
8978
+ return false;
8979
+ }
8980
+ target.focus({
8981
+ preventScroll: true
8982
+ });
8983
+ return document.activeElement === target;
8984
+ };
8985
+ const getAddress = uid => {
8986
+ return get$a(uid)?.state.$Viewlet.querySelector('[name="simple-browser-address"]');
8987
+ };
8988
+ const captureBrowserAddress$1 = uid => {
8989
+ const address = getAddress(uid);
8990
+ return address && document.activeElement === address ? {
8991
+ end: address.selectionEnd,
8992
+ start: address.selectionStart
8993
+ } : undefined;
8994
+ };
8995
+ const queueBrowserAddressSelection = address => {
8996
+ clearTimeout(pendingSelections.get(address));
8997
+ const timer = setTimeout(() => {
8998
+ pendingSelections.delete(address);
8999
+ if (!address.isConnected) return;
9000
+ const suggestions = address.closest('.SimpleBrowser')?.querySelector('.SimpleBrowserSuggestions');
9001
+ if (suggestions) address.setSelectionRange(address.value.length, address.value.length);else address.select();
9002
+ });
9003
+ pendingSelections.set(address, timer);
9004
+ };
9005
+ const focusBrowserAddress$1 = (uid, selection) => {
9006
+ const address = getAddress(uid);
9007
+ if (!address) return;
9008
+ address.focus({
9009
+ preventScroll: true
9010
+ });
9011
+ clearTimeout(pendingSelections.get(address));
9012
+ pendingSelections.delete(address);
9013
+ if (selection) address.setSelectionRange(selection.start, selection.end);else address.select();
9014
+ };
9015
+ const revealBrowserTab$1 = uid => {
9016
+ const root = get$a(uid)?.state.$Viewlet;
9017
+ root?.querySelector('.SimpleBrowserTabSelected')?.scrollIntoView({
9018
+ block: 'nearest',
9019
+ inline: 'nearest'
9020
+ });
9021
+ };
9022
+ const browserParents = new Map();
9023
+ const rememberBrowserParent$1 = uid => {
9024
+ if (browserParents.has(uid)) return;
9025
+ const browser = get$a(uid)?.state.$Viewlet;
9026
+ if (!browser?.parentNode) return;
9027
+ const marker = document.createComment('browser workspace position');
9028
+ browser.before(marker);
9029
+ browserParents.set(uid, marker);
9030
+ };
9031
+ const restoreBrowserParent$1 = uid => {
9032
+ const marker = browserParents.get(uid);
9033
+ browserParents.delete(uid);
9034
+ if (!marker) return;
9035
+ const browser = get$a(uid)?.state.$Viewlet;
9036
+ if (browser && marker.isConnected) marker.replaceWith(browser);else marker.remove();
9037
+ };
9038
+
9039
+ const handleInput$3 = value => {
9040
+ send$1('SimpleBrowser.handleInput', value);
9041
+ };
9042
+ const acceptSuggestion = value => {
9043
+ send$1('SimpleBrowser.acceptSuggestion', value);
9044
+ };
9045
+ const closeSuggestions = () => {
9046
+ send$1('SimpleBrowser.closeSuggestions');
9047
+ };
9048
+ const forward = () => {
9049
+ send$1('SimpleBrowser.forward');
9050
+ };
9051
+ const backward = () => {
9052
+ send$1('SimpleBrowser.backward');
9053
+ };
9054
+ const reload$1 = () => {
9055
+ send$1('SimpleBrowser.reload');
9056
+ };
9057
+ const cancelNavigation = () => {
9058
+ send$1('SimpleBrowser.cancelNavigation');
9059
+ };
9060
+ const openExternal = () => {
9061
+ send$1('SimpleBrowser.openExternal');
9062
+ };
9063
+
9064
+ const simpleBrowserAddressName = 'simple-browser-address';
9065
+ const handleInput$2 = event => {
9066
+ const {
9067
+ target
9068
+ } = event;
9069
+ const {
9070
+ value
9071
+ } = target;
9072
+ handleInput$3(value);
9073
+ };
9074
+ const handleClickSuggestion = event => {
9075
+ const suggestion = event.target.closest?.('.SimpleBrowserSuggestion');
9076
+ const value = suggestion?.dataset.value;
9077
+ if (typeof value !== 'string') {
9078
+ return;
9079
+ }
9080
+ acceptSuggestion(value);
9081
+ };
9082
+ const handleFocus$1 = event => {
9083
+ const {
9084
+ target
9085
+ } = event;
9086
+ send$1('Focus.setFocus', FocusSimpleBrowserInput);
9087
+ queueBrowserAddressSelection(target);
9088
+ };
9089
+ const handleBlur$1 = event => {
9090
+ const {
9091
+ relatedTarget,
9092
+ target
9093
+ } = event;
9094
+ setTimeout(() => {
9095
+ if (!target.isConnected) {
9096
+ return;
9097
+ }
9098
+ if (target.ownerDocument.hasFocus() && target.ownerDocument.activeElement?.getAttribute('name') === simpleBrowserAddressName) {
9099
+ return;
9100
+ }
9101
+ target.setSelectionRange(0, 0);
9102
+ if (!relatedTarget?.closest?.('.SimpleBrowserSuggestions')) {
9103
+ closeSuggestions();
9104
+ }
9105
+ });
9106
+ };
9107
+ const handleClickForward = () => {
9108
+ forward();
9109
+ };
9110
+ const handleClickBackward = () => {
9111
+ backward();
9112
+ };
9113
+ const handleClickReload = event => {
9114
+ const {
9115
+ target
9116
+ } = event;
9117
+ // TODO maybe set data attribute to check if it is a cancel button
9118
+ // TODO do checks in renderer worker
9119
+ if (target.title === 'Cancel') {
9120
+ cancelNavigation();
9121
+ } else {
9122
+ reload$1();
9123
+ }
9124
+ };
9125
+ const handleClickOpenExternal = () => {
9126
+ openExternal();
9127
+ };
9128
+
9129
+ const ViewletSimpleBrowserEvents = {
9130
+ __proto__: null,
9131
+ handleBlur: handleBlur$1,
9132
+ handleClickBackward,
9133
+ handleClickForward,
9134
+ handleClickOpenExternal,
9135
+ handleClickReload,
9136
+ handleClickSuggestion,
9137
+ handleFocus: handleFocus$1,
9138
+ handleInput: handleInput$2
8939
9139
  };
8940
9140
 
8941
9141
  const ViewletSimpleBrowser = {
8942
- __proto__: null
9142
+ __proto__: null,
9143
+ Events: ViewletSimpleBrowserEvents
8943
9144
  };
8944
9145
 
8945
9146
  const ViewletSimpleBrowserHistory = {
8946
- __proto__: null
9147
+ __proto__: null
8947
9148
  };
8948
9149
 
8949
9150
  const handleContextMenu$1 = event => {
@@ -8957,9 +9158,9 @@ const handleContextMenu$1 = event => {
8957
9158
  handleContextMenu$5(uid, button, clientX, clientY);
8958
9159
  };
8959
9160
 
8960
- const handleFocus$1 = event => {
9161
+ const handleFocus = event => {
8961
9162
  const uid = fromEvent(event);
8962
- handleFocus$7(uid);
9163
+ handleFocus$8(uid);
8963
9164
  };
8964
9165
  const getButtonIndex = $Node => {
8965
9166
  let index = -1;
@@ -9027,18 +9228,18 @@ const handleInput$1 = event => {
9027
9228
  value
9028
9229
  } = target;
9029
9230
  const uid = fromEvent(event);
9030
- handleInput$4(uid, value);
9231
+ handleInput$6(uid, value);
9031
9232
  };
9032
9233
 
9033
9234
  const ViewletSourceControlEvents = {
9034
- __proto__: null,
9035
- handleClick: handleClick$3,
9036
- handleContextMenu: handleContextMenu$1,
9037
- handleFocus: handleFocus$1,
9038
- handleInput: handleInput$1,
9039
- handleMouseOut,
9040
- handleMouseOver,
9041
- handleWheel: handleWheel$2
9235
+ __proto__: null,
9236
+ handleClick: handleClick$3,
9237
+ handleContextMenu: handleContextMenu$1,
9238
+ handleFocus,
9239
+ handleInput: handleInput$1,
9240
+ handleMouseOut,
9241
+ handleMouseOver,
9242
+ handleWheel: handleWheel$2
9042
9243
  };
9043
9244
 
9044
9245
  const focus$4 = state => {
@@ -9049,9 +9250,9 @@ const focus$4 = state => {
9049
9250
  };
9050
9251
 
9051
9252
  const ViewletSourceControl = {
9052
- __proto__: null,
9053
- Events: ViewletSourceControlEvents,
9054
- focus: focus$4
9253
+ __proto__: null,
9254
+ Events: ViewletSourceControlEvents,
9255
+ focus: focus$4
9055
9256
  };
9056
9257
 
9057
9258
  const handleClick$2 = event => {
@@ -9064,8 +9265,8 @@ const handleClick$2 = event => {
9064
9265
  };
9065
9266
 
9066
9267
  const ViewletStatusBarEvents = {
9067
- __proto__: null,
9068
- handleClick: handleClick$2
9268
+ __proto__: null,
9269
+ handleClick: handleClick$2
9069
9270
  };
9070
9271
 
9071
9272
  const create$5 = () => {
@@ -9096,10 +9297,10 @@ const focus$3 = state => {
9096
9297
  };
9097
9298
 
9098
9299
  const ViewletStatusBar = {
9099
- __proto__: null,
9100
- create: create$5,
9101
- focus: focus$3,
9102
- setDom: setDom$2
9300
+ __proto__: null,
9301
+ create: create$5,
9302
+ focus: focus$3,
9303
+ setDom: setDom$2
9103
9304
  };
9104
9305
 
9105
9306
  const handleClick$1 = event => {
@@ -9108,15 +9309,15 @@ const handleClick$1 = event => {
9108
9309
  };
9109
9310
 
9110
9311
  const ViewletStorageEvents = {
9111
- __proto__: null,
9112
- handleClick: handleClick$1
9312
+ __proto__: null,
9313
+ handleClick: handleClick$1
9113
9314
  };
9114
9315
 
9115
9316
  const Events$2 = ViewletStorageEvents;
9116
9317
 
9117
9318
  const ViewletStorage = {
9118
- __proto__: null,
9119
- Events: Events$2
9319
+ __proto__: null,
9320
+ Events: Events$2
9120
9321
  };
9121
9322
 
9122
9323
  const handleClickTab = event => {
@@ -9149,9 +9350,9 @@ const handleMouseDown$1 = event => {
9149
9350
  };
9150
9351
 
9151
9352
  const ViewletTerminalsEvents = {
9152
- __proto__: null,
9153
- handleClickTab,
9154
- handleMouseDown: handleMouseDown$1
9353
+ __proto__: null,
9354
+ handleClickTab,
9355
+ handleMouseDown: handleMouseDown$1
9155
9356
  };
9156
9357
 
9157
9358
  const Events$1 = ViewletTerminalsEvents;
@@ -9181,10 +9382,10 @@ const setTabsDom = (state, dom) => {
9181
9382
  };
9182
9383
 
9183
9384
  const ViewletTerminals = {
9184
- __proto__: null,
9185
- Events: Events$1,
9186
- create: create$4,
9187
- setTabsDom
9385
+ __proto__: null,
9386
+ Events: Events$1,
9387
+ create: create$4,
9388
+ setTabsDom
9188
9389
  };
9189
9390
 
9190
9391
  const isInsideTitleBarMenu$1 = $Element => {
@@ -9277,18 +9478,18 @@ const handleMenuClick = event => {
9277
9478
  };
9278
9479
  const handleFocusIn$1 = event => {
9279
9480
  const uid = fromEvent(event);
9280
- handleFocus$7(uid);
9481
+ handleFocus$8(uid);
9281
9482
  };
9282
9483
 
9283
9484
  const ViewletTitleBarMenuBarEvents = {
9284
- __proto__: null,
9285
- handleClick,
9286
- handleFocusIn: handleFocusIn$1,
9287
- handleFocusOut,
9288
- handleMenuClick,
9289
- handleMenuMouseOver,
9290
- handlePointerOut,
9291
- handlePointerOver
9485
+ __proto__: null,
9486
+ handleClick,
9487
+ handleFocusIn: handleFocusIn$1,
9488
+ handleFocusOut,
9489
+ handleMenuClick,
9490
+ handleMenuMouseOver,
9491
+ handlePointerOut,
9492
+ handlePointerOver
9292
9493
  };
9293
9494
 
9294
9495
  const activeId = 'TitleBarEntryActive';
@@ -9565,14 +9766,14 @@ const setMenus = (state, changes, uid) => {
9565
9766
  };
9566
9767
 
9567
9768
  const ViewletTitleBarMenuBar = {
9568
- __proto__: null,
9569
- Events: ViewletTitleBarMenuBarEvents,
9570
- closeMenu,
9571
- dispose: dispose$4,
9572
- focus: focus$2,
9573
- openMenu,
9574
- setFocusedIndex,
9575
- setMenus
9769
+ __proto__: null,
9770
+ Events: ViewletTitleBarMenuBarEvents,
9771
+ closeMenu,
9772
+ dispose: dispose$4,
9773
+ focus: focus$2,
9774
+ openMenu,
9775
+ setFocusedIndex,
9776
+ setMenus
9576
9777
  };
9577
9778
 
9578
9779
  const activeClassName = 'TitleBarActive';
@@ -9584,15 +9785,15 @@ const setFocused = (state, isFocused) => {
9584
9785
  };
9585
9786
 
9586
9787
  const ViewletTitleBar = {
9587
- __proto__: null,
9588
- Events: ViewletTitleBarMenuBarEvents,
9589
- closeMenu,
9590
- dispose: dispose$4,
9591
- focus: focus$2,
9592
- openMenu,
9593
- setFocused,
9594
- setFocusedIndex,
9595
- setMenus
9788
+ __proto__: null,
9789
+ Events: ViewletTitleBarMenuBarEvents,
9790
+ closeMenu,
9791
+ dispose: dispose$4,
9792
+ focus: focus$2,
9793
+ openMenu,
9794
+ setFocused,
9795
+ setFocusedIndex,
9796
+ setMenus
9596
9797
  };
9597
9798
 
9598
9799
  /**
@@ -9608,21 +9809,21 @@ const handleTitleBarButtonsClick = event => {
9608
9809
  const returnValue$1 = true;
9609
9810
 
9610
9811
  const ViewletTitleBarButtonsEvents = {
9611
- __proto__: null,
9612
- handleTitleBarButtonsClick,
9613
- returnValue: returnValue$1
9812
+ __proto__: null,
9813
+ handleTitleBarButtonsClick,
9814
+ returnValue: returnValue$1
9614
9815
  };
9615
9816
 
9616
9817
  const ViewletTitleBarButtons = {
9617
- __proto__: null,
9618
- Events: ViewletTitleBarButtonsEvents
9818
+ __proto__: null,
9819
+ Events: ViewletTitleBarButtonsEvents
9619
9820
  };
9620
9821
 
9621
9822
  const Events = {};
9622
9823
 
9623
9824
  const ViewletTitleBarIcon = {
9624
- __proto__: null,
9625
- Events
9825
+ __proto__: null,
9826
+ Events
9626
9827
  };
9627
9828
 
9628
9829
  const create$3 = () => {
@@ -9640,9 +9841,9 @@ const setDom$1 = (state, dom) => {
9640
9841
  };
9641
9842
 
9642
9843
  const ViewletTitleBarTitle = {
9643
- __proto__: null,
9644
- create: create$3,
9645
- setDom: setDom$1
9844
+ __proto__: null,
9845
+ create: create$3,
9846
+ setDom: setDom$1
9646
9847
  };
9647
9848
 
9648
9849
  const handleVideoError$1 = (code, message) => {
@@ -9664,13 +9865,13 @@ const handleVideoError = event => {
9664
9865
  };
9665
9866
 
9666
9867
  const ViewletVideoEvents = {
9667
- __proto__: null,
9668
- handleVideoError
9868
+ __proto__: null,
9869
+ handleVideoError
9669
9870
  };
9670
9871
 
9671
9872
  const ViewletVideo = {
9672
- __proto__: null,
9673
- Events: ViewletVideoEvents
9873
+ __proto__: null,
9874
+ Events: ViewletVideoEvents
9674
9875
  };
9675
9876
 
9676
9877
  const handleClickAt = event => {
@@ -9695,11 +9896,11 @@ const handleContextMenu = event => {
9695
9896
  const returnValue = true;
9696
9897
 
9697
9898
  const ViewletWebViewEvents = {
9698
- __proto__: null,
9699
- handleClickAt,
9700
- handleContextMenu,
9701
- handleLoad,
9702
- returnValue
9899
+ __proto__: null,
9900
+ handleClickAt,
9901
+ handleContextMenu,
9902
+ handleLoad,
9903
+ returnValue
9703
9904
  };
9704
9905
 
9705
9906
  // TODO could use browser view when running in electron
@@ -9755,11 +9956,11 @@ const setPosition = (state, id, x, y, width, height) => {
9755
9956
  };
9756
9957
 
9757
9958
  const ViewletWebView = {
9758
- __proto__: null,
9759
- Events: ViewletWebViewEvents,
9760
- setIframe,
9761
- setPort: setPort$1,
9762
- setPosition
9959
+ __proto__: null,
9960
+ Events: ViewletWebViewEvents,
9961
+ setIframe,
9962
+ setPort: setPort$1,
9963
+ setPosition
9763
9964
  };
9764
9965
 
9765
9966
  const moduleLoaders = {
@@ -9822,14 +10023,14 @@ const load$1 = moduleId => {
9822
10023
  return loadModule();
9823
10024
  };
9824
10025
 
9825
- const state$2 = {
10026
+ const state$1 = {
9826
10027
  currentPanelView: undefined,
9827
10028
  currentSidebarView: undefined,
9828
10029
  modules: Object.create(null)
9829
10030
  };
9830
10031
 
9831
10032
  const create$2 = (id, uid = id) => {
9832
- const module = state$2.modules[id];
10033
+ const module = state$1.modules[id];
9833
10034
  if (!module) {
9834
10035
  throw new Error(`module not found: ${id}`);
9835
10036
  }
@@ -9848,7 +10049,7 @@ const create$2 = (id, uid = id) => {
9848
10049
  });
9849
10050
  };
9850
10051
  const createFunctionalRoot = (id, uid = id, hasFunctionalEvents, directEventRpcId) => {
9851
- let module = state$2.modules[id];
10052
+ let module = state$1.modules[id];
9852
10053
  if (hasFunctionalEvents) {
9853
10054
  module ||= {};
9854
10055
  }
@@ -9880,7 +10081,7 @@ const removeKeyBindings = id => {
9880
10081
  const loadModule = async id => {
9881
10082
  try {
9882
10083
  const module = await load$1(id);
9883
- state$2.modules[id] = module;
10084
+ state$1.modules[id] = module;
9884
10085
  } catch (error) {
9885
10086
  throw new VError(error, `Failed to load ${id}`);
9886
10087
  }
@@ -10035,7 +10236,7 @@ const refresh = (viewletId, viewletContext) => {
10035
10236
  instance.factory.refresh(instance.state, viewletContext);
10036
10237
  } else {
10037
10238
  // @ts-expect-error
10038
- state$2.refreshContext[viewletId] = viewletContext;
10239
+ state$1.refreshContext[viewletId] = viewletContext;
10039
10240
  }
10040
10241
  };
10041
10242
  const specialIds = new Set(['TitleBar', 'SideBar', 'Main', 'ActivityBar', 'StatusBar', 'Panel']);
@@ -10291,8 +10492,8 @@ const move = async (uid, selector, target) => {
10291
10492
  };
10292
10493
  const attachWindowEvents = () => {
10293
10494
  attachEvents$7(window, {
10294
- [Blur]: handleBlur$1,
10295
- [Focus]: handleFocus$2,
10495
+ [Blur]: handleBlur$2,
10496
+ [Focus]: handleFocus$3,
10296
10497
  [KeyDown]: handleKeyDown,
10297
10498
  [KeyUp]: handleKeyUp,
10298
10499
  [Resize]: handleResize
@@ -10664,68 +10865,6 @@ const clear = storageType => {
10664
10865
  storage.clear();
10665
10866
  };
10666
10867
 
10667
- const state$1 = {};
10668
- const handleFocus = event => {
10669
- const target = event.target;
10670
- if (target instanceof HTMLElement && !target.closest('.SimpleBrowser') && target.closest('.Main, .Panel, .Editor, .Terminal')) {
10671
- state$1.codingFocus = new WeakRef(target);
10672
- }
10673
- };
10674
- const listen = () => {
10675
- document.addEventListener('focusin', handleFocus);
10676
- };
10677
- const restoreCodingFocus$1 = () => {
10678
- const target = state$1.codingFocus?.deref();
10679
- if (!target?.isConnected) {
10680
- return false;
10681
- }
10682
- target.focus({
10683
- preventScroll: true
10684
- });
10685
- return document.activeElement === target;
10686
- };
10687
- const getAddress = uid => {
10688
- return get$a(uid)?.state.$Viewlet.querySelector('[name="simple-browser-address"]');
10689
- };
10690
- const captureBrowserAddress$1 = uid => {
10691
- const address = getAddress(uid);
10692
- return address && document.activeElement === address ? {
10693
- end: address.selectionEnd,
10694
- start: address.selectionStart
10695
- } : undefined;
10696
- };
10697
- const focusBrowserAddress$1 = (uid, selection) => {
10698
- const address = getAddress(uid);
10699
- if (!address) return;
10700
- address.focus({
10701
- preventScroll: true
10702
- });
10703
- if (selection) address.setSelectionRange(selection.start, selection.end);else address.select();
10704
- };
10705
- const revealBrowserTab$1 = uid => {
10706
- const root = get$a(uid)?.state.$Viewlet;
10707
- root?.querySelector('.SimpleBrowserTabSelected')?.scrollIntoView({
10708
- block: 'nearest',
10709
- inline: 'nearest'
10710
- });
10711
- };
10712
- const browserParents = new Map();
10713
- const rememberBrowserParent$1 = uid => {
10714
- if (browserParents.has(uid)) return;
10715
- const browser = get$a(uid)?.state.$Viewlet;
10716
- if (!browser?.parentNode) return;
10717
- const marker = document.createComment('browser workspace position');
10718
- browser.before(marker);
10719
- browserParents.set(uid, marker);
10720
- };
10721
- const restoreBrowserParent$1 = uid => {
10722
- const marker = browserParents.get(uid);
10723
- browserParents.delete(uid);
10724
- if (!marker) return;
10725
- const browser = get$a(uid)?.state.$Viewlet;
10726
- if (browser && marker.isConnected) marker.replaceWith(browser);else marker.remove();
10727
- };
10728
-
10729
10868
  const reload = () => {
10730
10869
  location.reload();
10731
10870
  };
@@ -11645,10 +11784,10 @@ const handleInput = event => {
11645
11784
  };
11646
11785
 
11647
11786
  const ViewletEditorRenameEvents = {
11648
- __proto__: null,
11649
- handleBlur,
11650
- handleFocusIn,
11651
- handleInput
11787
+ __proto__: null,
11788
+ handleBlur,
11789
+ handleFocusIn,
11790
+ handleInput
11652
11791
  };
11653
11792
 
11654
11793
  const setBounds = (state, x, y, width, height) => {
@@ -11669,11 +11808,11 @@ const dispose$1 = state => {
11669
11808
  };
11670
11809
 
11671
11810
  const ViewletEditorRename = {
11672
- __proto__: null,
11673
- Events: ViewletEditorRenameEvents,
11674
- appendWidget,
11675
- dispose: dispose$1,
11676
- setBounds
11811
+ __proto__: null,
11812
+ Events: ViewletEditorRenameEvents,
11813
+ appendWidget,
11814
+ dispose: dispose$1,
11815
+ setBounds
11677
11816
  };
11678
11817
 
11679
11818
  const handleContentSecurityPolicyViolation = event => {
@@ -11717,15 +11856,15 @@ const main = async () => {
11717
11856
  initialize(location.search);
11718
11857
  Object.assign(commandMapRef, commandMap);
11719
11858
  enable(window);
11720
- state$2.modules[ColorPicker] = ViewletColorPicker;
11721
- state$2.modules[EditorCodeGenerator] = ViewletEditorCodeGenerator;
11722
- state$2.modules[EditorCompletion] = ViewletEditorCompletion;
11723
- state$2.modules[EditorCompletionDetails] = ViewletEditorCompletionDetails;
11724
- state$2.modules[EditorHover] = ViewletEditorHover;
11725
- state$2.modules[EditorRename] = ViewletEditorRename;
11726
- state$2.modules[EditorSourceActions] = ViewletEditorSourceActions;
11727
- state$2.modules[FindWidget] = ViewletFindWidget;
11728
- state$2.modules[TitleBar] = ViewletTitleBar;
11859
+ state$1.modules[ColorPicker] = ViewletColorPicker;
11860
+ state$1.modules[EditorCodeGenerator] = ViewletEditorCodeGenerator;
11861
+ state$1.modules[EditorCompletion] = ViewletEditorCompletion;
11862
+ state$1.modules[EditorCompletionDetails] = ViewletEditorCompletionDetails;
11863
+ state$1.modules[EditorHover] = ViewletEditorHover;
11864
+ state$1.modules[EditorRename] = ViewletEditorRename;
11865
+ state$1.modules[EditorSourceActions] = ViewletEditorSourceActions;
11866
+ state$1.modules[FindWidget] = ViewletFindWidget;
11867
+ state$1.modules[TitleBar] = ViewletTitleBar;
11729
11868
  // TODO this is discovered very late
11730
11869
  const launchWorkersResult = await launchWorkers();
11731
11870
  if (isError(launchWorkersResult)) {
@@ -11800,7 +11939,7 @@ const mountTerminal = async (state, uid) => {
11800
11939
  return;
11801
11940
  }
11802
11941
  const inputDisposable = terminal.onData(data => {
11803
- handleInput$4(uid, data);
11942
+ handleInput$6(uid, data);
11804
11943
  });
11805
11944
  const resizeDisposable = terminal.onResize(({
11806
11945
  cols,
@@ -11905,14 +12044,14 @@ const dispose = state => {
11905
12044
  };
11906
12045
 
11907
12046
  const ViewletTerminal2 = {
11908
- __proto__: null,
11909
- attachEvents,
11910
- create,
11911
- dispose,
11912
- focus,
11913
- handleMouseDown,
11914
- setTerminal,
11915
- write
12047
+ __proto__: null,
12048
+ attachEvents,
12049
+ create,
12050
+ dispose,
12051
+ focus,
12052
+ handleMouseDown,
12053
+ setTerminal,
12054
+ write
11916
12055
  };
11917
12056
 
11918
12057
  // based on https://github.com/microsoft/vscode/blob/5f87632829dc3ac80203e2377727935184399431/src/vs/base/browser/ui/aria/aria.ts (License MIT)
@@ -11988,8 +12127,8 @@ const alert$1 = message => {
11988
12127
  };
11989
12128
 
11990
12129
  const AriaAlert = {
11991
- __proto__: null,
11992
- alert: alert$1
12130
+ __proto__: null,
12131
+ alert: alert$1
11993
12132
  };
11994
12133
 
11995
12134
  export { invoke$1 as executeCommand, ready };