@codingame/monaco-vscode-walkthrough-service-override 11.1.2 → 12.0.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.
Files changed (54) hide show
  1. package/assets/multi-file-edits.svg +513 -0
  2. package/index.d.ts +2 -1
  3. package/index.js +19 -1
  4. package/package.json +24 -8
  5. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.d.ts +3 -0
  6. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.js +67 -66
  7. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.d.ts +146 -0
  8. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.js +153 -150
  9. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedAccessibleView.d.ts +10 -0
  10. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedAccessibleView.js +84 -32
  11. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.d.ts +7 -0
  12. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js +8 -7
  13. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedDetailsRenderer.d.ts +19 -0
  14. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedDetailsRenderer.js +3 -2
  15. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.d.ts +2 -0
  16. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.js +41 -37
  17. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedIcons.d.ts +2 -0
  18. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedIcons.js +3 -2
  19. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput.d.ts +38 -0
  20. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput.js +3 -2
  21. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedList.d.ts +42 -0
  22. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedList.js +1 -0
  23. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService._contribution.d.ts +1 -0
  24. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService._contribution.js +10 -8
  25. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.d.ts +147 -0
  26. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +86 -83
  27. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/media/gettingStarted.css.js +1 -1
  28. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.d.ts +49 -0
  29. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.js +43 -38
  30. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.d.ts +66 -0
  31. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.js +208 -165
  32. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/all.svg.js +1 -0
  33. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/notebookProfile.d.ts +2 -0
  34. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/notebookProfile.js +4 -3
  35. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker.d.ts +2 -0
  36. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker.js +7 -6
  37. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/editorWalkThrough.d.ts +17 -0
  38. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/editorWalkThrough.js +7 -6
  39. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/vs_code_editor_walkthrough.d.ts +2 -0
  40. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/vs_code_editor_walkthrough.js +1 -0
  41. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/media/walkThroughPart.css.js +1 -1
  42. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThrough.contribution.d.ts +1 -0
  43. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThrough.contribution.js +6 -5
  44. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughActions.d.ts +5 -0
  45. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughActions.js +11 -8
  46. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughInput.d.ts +50 -0
  47. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughInput.js +6 -4
  48. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.d.ts +66 -0
  49. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.js +34 -31
  50. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.d.ts +29 -0
  51. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.js +5 -3
  52. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils.d.ts +1 -0
  53. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils.js +3 -2
  54. package/walkthrough.js +0 -18
@@ -1,4 +1,5 @@
1
- import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
1
+
2
+ import { __decorate, __param } from 'vscode/external/tslib/tslib.es6';
2
3
  import { $, addDisposableListener, clearNode, reset, append } from 'vscode/vscode/vs/base/browser/dom';
3
4
  import { renderFormattedText } from 'vscode/vscode/vs/base/browser/formattedTextRenderer';
4
5
  import { StandardKeyboardEvent } from 'vscode/vscode/vs/base/browser/keyboardEvent';
@@ -10,6 +11,7 @@ import { equals, coalesce } from 'vscode/vscode/vs/base/common/arrays';
10
11
  import { Throttler, Delayer } from 'vscode/vscode/vs/base/common/async';
11
12
  import { Codicon } from 'vscode/vscode/vs/base/common/codicons';
12
13
  import { onUnexpectedError } from 'vscode/vscode/vs/base/common/errors';
14
+ import { KeyCode } from 'vscode/vscode/vs/base/common/keyCodes';
13
15
  import { splitRecentLabel } from 'vscode/vscode/vs/base/common/labels';
14
16
  import { DisposableStore, toDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
15
17
  import { parse } from 'vscode/vscode/vs/base/common/marshalling';
@@ -25,31 +27,33 @@ import { MarkdownRenderer } from 'vscode/vscode/vs/editor/browser/widget/markdow
25
27
  import { localize } from 'vscode/vscode/vs/nls';
26
28
  import { IAccessibilityService } from 'vscode/vscode/vs/platform/accessibility/common/accessibility.service';
27
29
  import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
30
+ import { ConfigurationTarget } from 'vscode/vscode/vs/platform/configuration/common/configuration';
28
31
  import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
29
32
  import { RawContextKey, ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
30
33
  import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
31
34
  import { IFileService } from 'vscode/vscode/vs/platform/files/common/files.service';
32
35
  import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
33
36
  import { IKeybindingService } from 'vscode/vscode/vs/platform/keybinding/common/keybinding.service';
37
+ import { Verbosity } from '@codingame/monaco-vscode-82e231ca-6ed7-5920-b2b8-1874ccc0be07-common/vscode/vs/platform/label/common/label';
34
38
  import { ILabelService } from 'vscode/vscode/vs/platform/label/common/label.service';
35
39
  import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification.service';
36
40
  import { Link } from 'vscode/vscode/vs/platform/opener/browser/link';
37
41
  import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener.service';
38
42
  import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
39
43
  import { IQuickInputService } from 'vscode/vscode/vs/platform/quickinput/common/quickInput.service';
40
- import { WillSaveStateReason } from 'vscode/vscode/vs/platform/storage/common/storage';
44
+ import { WillSaveStateReason, StorageScope, StorageTarget } from 'vscode/vscode/vs/platform/storage/common/storage';
41
45
  import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
42
- import { firstSessionDateStorageKey } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
46
+ import { firstSessionDateStorageKey, TelemetryLevel } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
43
47
  import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry.service';
44
48
  import { getTelemetryLevel } from 'vscode/vscode/vs/platform/telemetry/common/telemetryUtils';
45
49
  import { defaultToggleStyles, defaultButtonStyles, defaultKeybindingLabelStyles } from 'vscode/vscode/vs/platform/theme/browser/defaultStyles';
46
50
  import { UNKNOWN_EMPTY_WINDOW_WORKSPACE } from 'vscode/vscode/vs/platform/workspace/common/workspace';
47
51
  import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace.service';
48
- import { isRecentFolder, isRecentWorkspace } from 'vscode/vscode/vs/platform/workspaces/common/workspaces';
52
+ import { isRecentFolder, isRecentWorkspace } from '@codingame/monaco-vscode-56402b83-4a60-5b15-86f9-71fe99c32744-common/vscode/vs/platform/workspaces/common/workspaces';
49
53
  import { IWorkspacesService } from 'vscode/vscode/vs/platform/workspaces/common/workspaces.service';
50
- import { OpenRecentAction } from 'vscode/vscode/vs/workbench/browser/actions/windowActions';
51
- import { OpenFolderViaWorkspaceAction, OpenFileFolderAction, OpenFolderAction } from 'vscode/vscode/vs/workbench/browser/actions/workspaceActions';
52
- import { EditorPane } from 'vscode/vscode/vs/workbench/browser/parts/editor/editorPane';
54
+ import { OpenRecentAction } from '@codingame/monaco-vscode-56402b83-4a60-5b15-86f9-71fe99c32744-common/vscode/vs/workbench/browser/actions/windowActions';
55
+ import { OpenFolderViaWorkspaceAction, OpenFileFolderAction, OpenFolderAction } from '@codingame/monaco-vscode-cc9ccbec-e2a1-599d-84ae-46f5efc666e3-common/vscode/vs/workbench/browser/actions/workspaceActions';
56
+ import { EditorPane } from '@codingame/monaco-vscode-9e888134-1a6f-58d9-b0e6-0fc047448366-common/vscode/vs/workbench/browser/parts/editor/editorPane';
53
57
  import { WorkbenchStateContext } from 'vscode/vscode/vs/workbench/common/contextkeys';
54
58
  import { IWebviewService } from 'vscode/vscode/vs/workbench/contrib/webview/browser/webview.service';
55
59
  import './gettingStartedColors.js';
@@ -60,20 +64,22 @@ import { hiddenEntriesConfigurationKey, parseDescription } from './gettingStarte
60
64
  import { IWalkthroughsService } from 'vscode/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.service';
61
65
  import { restoreWalkthroughsConfigurationKey } from './startupPage.js';
62
66
  import { startEntries } from '../common/gettingStartedContent.js';
67
+ import { GroupDirection, GroupsOrder } from 'vscode/vscode/vs/workbench/services/editor/common/editorGroupsService';
63
68
  import { IEditorGroupsService } from 'vscode/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
64
69
  import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions.service';
65
70
  import { IHostService } from 'vscode/vscode/vs/workbench/services/host/browser/host.service';
66
- import { IWorkbenchThemeService } from 'vscode/vscode/vs/workbench/services/themes/common/workbenchThemeService.service';
71
+ import { IWorkbenchThemeService } from '@codingame/monaco-vscode-3dd5b442-bfbc-5b1d-8f4a-7567530c75f5-common/vscode/vs/workbench/services/themes/common/workbenchThemeService.service';
67
72
  import { GettingStartedIndexList } from './gettingStartedList.js';
73
+ import { AccessibilityVerbositySettingId } from 'vscode/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
68
74
  import { AccessibleViewAction } from 'vscode/vscode/vs/workbench/contrib/accessibility/browser/accessibleViewActions';
69
75
  import { KeybindingLabel } from 'vscode/vscode/vs/base/browser/ui/keybindingLabel/keybindingLabel';
70
76
 
71
77
  var GettingStartedPage_1;
72
78
  const SLIDE_TRANSITION_TIME_MS = 250;
73
79
  const configurationKey = 'workbench.startupEditor';
74
- const allWalkthroughsHiddenContext = ( (new RawContextKey('allWalkthroughsHidden', false)));
75
- const inWelcomeContext = ( (new RawContextKey('inWelcome', false)));
76
- const parsedStartEntries = ( (startEntries.map((e, i) => ({
80
+ const allWalkthroughsHiddenContext = ( new RawContextKey('allWalkthroughsHidden', false));
81
+ const inWelcomeContext = ( new RawContextKey('inWelcome', false));
82
+ const parsedStartEntries = ( startEntries.map((e, i) => ({
77
83
  command: e.content.command,
78
84
  description: e.description,
79
85
  icon: { type: 'icon', icon: e.icon },
@@ -81,7 +87,7 @@ const parsedStartEntries = ( (startEntries.map((e, i) => ({
81
87
  order: i,
82
88
  title: e.title,
83
89
  when: ContextKeyExpr.deserialize(e.when) ?? ContextKeyExpr.true()
84
- }))));
90
+ })));
85
91
  const REDUCED_MOTION_KEY = 'workbench.welcomePage.preferReducedMotion';
86
92
  let GettingStartedPage = class GettingStartedPage extends EditorPane {
87
93
  static { GettingStartedPage_1 = this; }
@@ -110,11 +116,11 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
110
116
  this.workspaceContextService = workspaceContextService;
111
117
  this.accessibilityService = accessibilityService;
112
118
  this.inProgressScroll = Promise.resolve();
113
- this.dispatchListeners = ( (new DisposableStore()));
114
- this.stepDisposables = ( (new DisposableStore()));
115
- this.detailsPageDisposables = ( (new DisposableStore()));
116
- this.mediaDisposables = ( (new DisposableStore()));
117
- this.buildSlideThrottle = ( (new Throttler()));
119
+ this.dispatchListeners = ( new DisposableStore());
120
+ this.stepDisposables = ( new DisposableStore());
121
+ this.detailsPageDisposables = ( new DisposableStore());
122
+ this.mediaDisposables = ( new DisposableStore());
123
+ this.buildSlideThrottle = ( new Throttler());
118
124
  this.hasScrolledToFirstCategory = false;
119
125
  this.showFeaturedWalkthrough = true;
120
126
  this.currentMediaComponent = undefined;
@@ -122,29 +128,29 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
122
128
  this.container = $('.gettingStartedContainer', {
123
129
  role: 'document',
124
130
  tabindex: 0,
125
- 'aria-label': ( localize(7291, "Overview of how to get up to speed with your editor."))
131
+ 'aria-label': ( localize(10738, "Overview of how to get up to speed with your editor."))
126
132
  });
127
133
  this.stepMediaComponent = $('.getting-started-media');
128
134
  this.stepMediaComponent.id = generateUuid();
129
- this.categoriesSlideDisposables = this._register(( (new DisposableStore())));
130
- this.detailsRenderer = ( (new GettingStartedDetailsRenderer(
135
+ this.categoriesSlideDisposables = this._register(( new DisposableStore()));
136
+ this.detailsRenderer = ( new GettingStartedDetailsRenderer(
131
137
  this.fileService,
132
138
  this.notificationService,
133
139
  this.extensionService,
134
140
  this.languageService
135
- )));
141
+ ));
136
142
  this.contextService = this._register(contextService.createScoped(this.container));
137
143
  inWelcomeContext.bindTo(this.contextService).set(true);
138
144
  this.gettingStartedCategories = this.gettingStartedService.getWalkthroughs();
139
145
  this._register(this.dispatchListeners);
140
- this.buildSlideThrottle = ( (new Throttler()));
146
+ this.buildSlideThrottle = ( new Throttler());
141
147
  const rerender = () => {
142
148
  this.gettingStartedCategories = this.gettingStartedService.getWalkthroughs();
143
149
  if (this.currentWalkthrough) {
144
- const existingSteps = ( (this.currentWalkthrough.steps.map(step => step.id)));
150
+ const existingSteps = ( this.currentWalkthrough.steps.map(step => step.id));
145
151
  const newCategory = this.gettingStartedCategories.find(category => this.currentWalkthrough?.id === category.id);
146
152
  if (newCategory) {
147
- const newSteps = ( (newCategory.steps.map(step => step.id)));
153
+ const newSteps = ( newCategory.steps.map(step => step.id));
148
154
  if (!equals(newSteps, existingSteps)) {
149
155
  this.buildSlideThrottle.queue(() => this.buildCategoriesSlide());
150
156
  }
@@ -224,7 +230,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
224
230
  return;
225
231
  }
226
232
  const restoreData = { folder: UNKNOWN_EMPTY_WINDOW_WORKSPACE.id, category: this.editorInput.selectedCategory, step: this.editorInput.selectedStep };
227
- this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData), 0 , 1 );
233
+ this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData), StorageScope.PROFILE, StorageTarget.MACHINE);
228
234
  }));
229
235
  }
230
236
  shouldAnimate() {
@@ -272,11 +278,11 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
272
278
  this.runDispatchCommand(command, argument);
273
279
  }));
274
280
  this.dispatchListeners.add(addDisposableListener(element, 'keyup', (e) => {
275
- const keyboardEvent = ( (new StandardKeyboardEvent(e)));
281
+ const keyboardEvent = ( new StandardKeyboardEvent(e));
276
282
  e.stopPropagation();
277
283
  switch (keyboardEvent.keyCode) {
278
- case 3 :
279
- case 10 :
284
+ case KeyCode.Enter:
285
+ case KeyCode.Space:
280
286
  this.runDispatchCommand(command, argument);
281
287
  return;
282
288
  }
@@ -305,7 +311,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
305
311
  break;
306
312
  }
307
313
  case 'openFolder': {
308
- if (this.contextService.contextMatchesRules(( (ContextKeyExpr.and( (WorkbenchStateContext.isEqualTo('workspace'))))))) {
314
+ if (this.contextService.contextMatchesRules(( ContextKeyExpr.and(( WorkbenchStateContext.isEqualTo('workspace')))))) {
309
315
  this.commandService.executeCommand(OpenFolderViaWorkspaceAction.ID);
310
316
  }
311
317
  else {
@@ -397,27 +403,25 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
397
403
  }
398
404
  }
399
405
  async openWalkthroughSelector() {
400
- const selection = await this.quickInputService.pick(( (this.gettingStartedCategories
406
+ const selection = await this.quickInputService.pick(( this.gettingStartedCategories
401
407
  .filter(c => this.contextService.contextMatchesRules(c.when))
402
408
  .map(x => ({
403
409
  id: x.id,
404
410
  label: x.title,
405
411
  detail: x.description,
406
412
  description: x.source,
407
- })))), { canPickMany: false, matchOnDescription: true, matchOnDetail: true, title: ( localize(7292, "Open Walkthrough...")) });
413
+ }))), { canPickMany: false, matchOnDescription: true, matchOnDetail: true, title: ( localize(10739, "Open Walkthrough...")) });
408
414
  if (selection) {
409
415
  this.runDispatchCommand('selectCategory', selection.id);
410
416
  }
411
417
  }
412
418
  getHiddenCategories() {
413
- return (
414
- (new Set(
415
- JSON.parse(this.storageService.get(hiddenEntriesConfigurationKey, 0 , '[]'))
416
- ))
417
- );
419
+ return ( new Set(
420
+ JSON.parse(this.storageService.get(hiddenEntriesConfigurationKey, StorageScope.PROFILE, '[]'))
421
+ ));
418
422
  }
419
423
  setHiddenCategories(hidden) {
420
- this.storageService.store(hiddenEntriesConfigurationKey, JSON.stringify(hidden), 0 , 0 );
424
+ this.storageService.store(hiddenEntriesConfigurationKey, JSON.stringify(hidden), StorageScope.PROFILE, StorageTarget.USER);
421
425
  }
422
426
  async buildMediaComponent(stepId, forceRebuild = false) {
423
427
  if (!this.currentWalkthrough) {
@@ -459,9 +463,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
459
463
  mediaElement.setAttribute('alt', media.altText);
460
464
  this.updateMediaSourceForColorMode(mediaElement, media.path);
461
465
  this.stepDisposables.add(addDisposableListener(this.stepMediaComponent, 'click', () => {
462
- const hrefs = ( (stepToExpand.description.map(
463
- lt => ( (lt.nodes.filter((node) => typeof node !== 'string').map(node => node.href)))
464
- ))).flat();
466
+ const hrefs = ( stepToExpand.description.map(lt => ( lt.nodes.filter((node) => typeof node !== 'string').map(node => node.href)))).flat();
465
467
  if (hrefs.length === 1) {
466
468
  const href = hrefs[0];
467
469
  if (href.startsWith('http')) {
@@ -486,9 +488,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
486
488
  }
487
489
  }));
488
490
  this.stepDisposables.add(addDisposableListener(this.stepMediaComponent, 'click', () => {
489
- const hrefs = ( (stepToExpand.description.map(
490
- lt => ( (lt.nodes.filter((node) => typeof node !== 'string').map(node => node.href)))
491
- ))).flat();
491
+ const hrefs = ( stepToExpand.description.map(lt => ( lt.nodes.filter((node) => typeof node !== 'string').map(node => node.href)))).flat();
492
492
  if (hrefs.length === 1) {
493
493
  const href = hrefs[0];
494
494
  if (href.startsWith('http')) {
@@ -521,8 +521,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
521
521
  }
522
522
  };
523
523
  if (serializedContextKeyExprs) {
524
- const contextKeyExprs = coalesce(( (serializedContextKeyExprs.map(expr => ContextKeyExpr.deserialize(expr)))));
525
- const watchingKeys = ( (new Set(contextKeyExprs.flatMap(expr => ( (expr.keys()))))));
524
+ const contextKeyExprs = coalesce(( serializedContextKeyExprs.map(expr => ContextKeyExpr.deserialize(expr))));
525
+ const watchingKeys = ( new Set(contextKeyExprs.flatMap(expr => ( expr.keys()))));
526
526
  this.stepDisposables.add(this.contextService.onDidChangeContext(e => {
527
527
  if (e.affectsSome(watchingKeys)) {
528
528
  postTrueKeysMessage();
@@ -550,7 +550,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
550
550
  }
551
551
  }));
552
552
  }
553
- const layoutDelayer = ( (new Delayer(50)));
553
+ const layoutDelayer = ( new Delayer(50));
554
554
  this.layoutMarkdown = () => {
555
555
  layoutDelayer.trigger(() => {
556
556
  this.webview.postMessage({ layoutMeNow: true });
@@ -568,7 +568,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
568
568
  const themeId = message.slice('setTheme:'.length);
569
569
  const theme = (await this.themeService.getColorThemes()).find(theme => theme.settingsId === themeId);
570
570
  if (theme) {
571
- this.themeService.setColorTheme(theme.id, 2 );
571
+ this.themeService.setColorTheme(theme.id, ConfigurationTarget.USER);
572
572
  }
573
573
  }
574
574
  else {
@@ -587,10 +587,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
587
587
  }
588
588
  }
589
589
  provideScreenReaderUpdate() {
590
- if (this.configurationService.getValue("accessibility.verbosity.walkthrough" )) {
590
+ if (this.configurationService.getValue(AccessibilityVerbositySettingId.Walkthrough)) {
591
591
  const kbLabel = this.keybindingService.lookupKeybinding(AccessibleViewAction.id)?.getAriaLabel();
592
- return kbLabel ? ( localize(7293, "Inspect this in the accessible view ({0}).\n", kbLabel)) : ( localize(
593
- 7294,
592
+ return kbLabel ? ( localize(10740, "Inspect this in the accessible view ({0}).\n", kbLabel)) : ( localize(
593
+ 10741,
594
594
  "Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\n"
595
595
  ));
596
596
  }
@@ -610,6 +610,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
610
610
  if (node.getAttribute('data-step-id') !== id) {
611
611
  node.classList.remove('expanded');
612
612
  node.setAttribute('aria-expanded', 'false');
613
+ const codiconElement = node.querySelector('.codicon');
614
+ if (codiconElement) {
615
+ codiconElement.removeAttribute('tabindex');
616
+ }
613
617
  }
614
618
  });
615
619
  setTimeout(() => stepElement.focus(), delayFocus && this.shouldAnimate() ? SLIDE_TRANSITION_TIME_MS : 0);
@@ -617,6 +621,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
617
621
  stepElement.classList.add('expanded');
618
622
  stepElement.setAttribute('aria-expanded', 'true');
619
623
  this.buildMediaComponent(id, true);
624
+ const codiconElement = stepElement.querySelector('.codicon');
625
+ if (codiconElement) {
626
+ codiconElement.setAttribute('tabindex', '0');
627
+ }
620
628
  this.gettingStartedService.progressByEvent('stepSelected:' + id);
621
629
  const step = this.currentWalkthrough?.steps?.find(step => step.id === id);
622
630
  if (step) {
@@ -631,7 +639,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
631
639
  }
632
640
  updateMediaSourceForColorMode(element, sources) {
633
641
  const themeType = this.themeService.getColorTheme().type;
634
- const src = ( (sources[themeType].toString(true))).replace(/ /g, '%20');
642
+ const src = ( sources[themeType].toString(true)).replace(/ /g, '%20');
635
643
  element.srcset = src.toLowerCase().endsWith('.svg') ? src : (src + ' 1.5x');
636
644
  }
637
645
  createEditor(parent) {
@@ -642,14 +650,14 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
642
650
  this.categoriesPageScrollbar.dispose();
643
651
  }
644
652
  this.categoriesSlide = $('.gettingStartedSlideCategories.gettingStartedSlide');
645
- const prevButton = $('button.prev-button.button-link', { 'x-dispatch': 'scrollPrev' }, $('span.scroll-button.codicon.codicon-chevron-left'), $('span.moreText', {}, ( localize(7295, "Go Back"))));
653
+ const prevButton = $('button.prev-button.button-link', { 'x-dispatch': 'scrollPrev' }, $('span.scroll-button.codicon.codicon-chevron-left'), $('span.moreText', {}, ( localize(10742, "Go Back"))));
646
654
  this.stepsSlide = $('.gettingStartedSlideDetails.gettingStartedSlide', {}, prevButton);
647
655
  this.stepsContent = $('.gettingStartedDetailsContent', {});
648
- this.detailsPageScrollbar = this._register(( (new DomScrollableElement(this.stepsContent, { className: 'full-height-scrollable' }))));
649
- this.categoriesPageScrollbar = this._register(( (new DomScrollableElement(
656
+ this.detailsPageScrollbar = this._register(( new DomScrollableElement(this.stepsContent, { className: 'full-height-scrollable' })));
657
+ this.categoriesPageScrollbar = this._register(( new DomScrollableElement(
650
658
  this.categoriesSlide,
651
659
  { className: 'full-height-scrollable categoriesScrollbar' }
652
- ))));
660
+ )));
653
661
  this.stepsSlide.appendChild(this.detailsPageScrollbar.getDomNode());
654
662
  const gettingStartedPage = $('.gettingStarted', {}, this.categoriesPageScrollbar.getDomNode(), this.stepsSlide);
655
663
  this.container.appendChild(gettingStartedPage);
@@ -659,15 +667,15 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
659
667
  }
660
668
  async buildCategoriesSlide() {
661
669
  this.categoriesSlideDisposables.clear();
662
- const showOnStartupCheckbox = ( (new Toggle({
670
+ const showOnStartupCheckbox = ( new Toggle({
663
671
  icon: Codicon.check,
664
672
  actionClassName: 'getting-started-checkbox',
665
673
  isChecked: this.configurationService.getValue(configurationKey) === 'welcomePage',
666
- title: ( localize(7296, "When checked, this page will be shown on startup.")),
674
+ title: ( localize(10743, "When checked, this page will be shown on startup.")),
667
675
  ...defaultToggleStyles
668
- })));
676
+ }));
669
677
  showOnStartupCheckbox.domNode.id = 'showOnStartup';
670
- const showOnStartupLabel = $('label.caption', { for: 'showOnStartup' }, ( localize(7297, "Show welcome page on startup")));
678
+ const showOnStartupLabel = $('label.caption', { for: 'showOnStartup' }, ( localize(10744, "Show welcome page on startup")));
671
679
  const onShowOnStartupChanged = () => {
672
680
  if (showOnStartupCheckbox.checked) {
673
681
  this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'showOnStartupChecked', argument: undefined, walkthroughId: this.currentWalkthrough?.id });
@@ -686,7 +694,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
686
694
  showOnStartupCheckbox.checked = !showOnStartupCheckbox.checked;
687
695
  onShowOnStartupChanged();
688
696
  }));
689
- const header = $('.header', {}, $('h1.product-name.caption', {}, this.productService.nameLong), $('p.subtitle.description', {}, ( localize(7298, "Editing evolved"))));
697
+ const header = $('.header', {}, $('h1.product-name.caption', {}, this.productService.nameLong), $('p.subtitle.description', {}, ( localize(10745, "Editing evolved"))));
690
698
  const leftColumn = $('.categories-column.categories-column-left', {});
691
699
  const rightColumn = $('.categories-column.categories-column-right', {});
692
700
  const startList = this.buildStartList();
@@ -739,15 +747,15 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
739
747
  return;
740
748
  }
741
749
  }
742
- const someStepsComplete = ( (this.gettingStartedCategories.some(category => category.steps.find(s => s.done))));
750
+ const someStepsComplete = ( this.gettingStartedCategories.some(category => category.steps.find(s => s.done)));
743
751
  if (this.editorInput.showTelemetryNotice && this.productService.openToWelcomeMainPage) {
744
752
  const telemetryNotice = $('p.telemetry-notice');
745
753
  this.buildTelemetryFooter(telemetryNotice);
746
754
  footer.appendChild(telemetryNotice);
747
755
  }
748
756
  else if (!this.productService.openToWelcomeMainPage && !someStepsComplete && !this.hasScrolledToFirstCategory && this.showFeaturedWalkthrough) {
749
- const firstSessionDateString = this.storageService.get(firstSessionDateStorageKey, -1 ) || ( (new Date())).toUTCString();
750
- const daysSinceFirstSession = ((+( (new Date()))) - (+( (new Date(firstSessionDateString))))) / 1000 / 60 / 60 / 24;
757
+ const firstSessionDateString = this.storageService.get(firstSessionDateStorageKey, StorageScope.APPLICATION) || ( new Date()).toUTCString();
758
+ const daysSinceFirstSession = ((+( new Date())) - (+( new Date(firstSessionDateString)))) / 1000 / 60 / 60 / 24;
751
759
  const fistContentBehaviour = daysSinceFirstSession < 1 ? 'openToFirstCategory' : 'index';
752
760
  if (fistContentBehaviour === 'openToFirstCategory') {
753
761
  const first = this.gettingStartedCategories.filter(c => !c.when || this.contextService.contextMatchesRules(c.when))[0];
@@ -770,10 +778,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
770
778
  let windowOpenable;
771
779
  if (isRecentFolder(recent)) {
772
780
  windowOpenable = { folderUri: recent.folderUri };
773
- fullPath = recent.label || this.labelService.getWorkspaceLabel(recent.folderUri, { verbose: 2 });
781
+ fullPath = recent.label || this.labelService.getWorkspaceLabel(recent.folderUri, { verbose: Verbosity.LONG });
774
782
  }
775
783
  else {
776
- fullPath = recent.label || this.labelService.getWorkspaceLabel(recent.workspace, { verbose: 2 });
784
+ fullPath = recent.label || this.labelService.getWorkspaceLabel(recent.workspace, { verbose: Verbosity.LONG });
777
785
  windowOpenable = { workspaceUri: recent.workspace.configPath };
778
786
  }
779
787
  const { name, parentPath } = splitRecentLabel(fullPath);
@@ -781,7 +789,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
781
789
  const link = $('button.button-link');
782
790
  link.innerText = name;
783
791
  link.title = fullPath;
784
- link.setAttribute('aria-label', ( localize(7299, "Open folder {0} with path {1}", name, parentPath)));
792
+ link.setAttribute('aria-label', ( localize(10746, "Open folder {0} with path {1}", name, parentPath)));
785
793
  link.addEventListener('click', e => {
786
794
  this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'openRecent', argument: undefined, walkthroughId: this.currentWalkthrough?.id });
787
795
  this.hostService.openWindow([windowOpenable], {
@@ -803,29 +811,29 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
803
811
  if (this.recentlyOpenedList) {
804
812
  this.recentlyOpenedList.dispose();
805
813
  }
806
- const recentlyOpenedList = this.recentlyOpenedList = ( (new GettingStartedIndexList({
807
- title: ( localize(7300, "Recent")),
814
+ const recentlyOpenedList = this.recentlyOpenedList = ( new GettingStartedIndexList({
815
+ title: ( localize(10747, "Recent")),
808
816
  klass: 'recently-opened',
809
817
  limit: 5,
810
- empty: $('.empty-recent', {}, ( localize(7301, "You have no recent folders,")), $('button.button-link', { 'x-dispatch': 'openFolder' }, ( localize(7302, "open a folder"))), ( localize(7303, "to start."))),
818
+ empty: $('.empty-recent', {}, ( localize(10748, "You have no recent folders,")), $('button.button-link', { 'x-dispatch': 'openFolder' }, ( localize(10749, "open a folder"))), ( localize(10750, "to start."))),
811
819
  more: $('.more', {}, $('button.button-link', {
812
820
  'x-dispatch': 'showMoreRecents',
813
821
  title: ( localize(
814
- 7304,
822
+ 10751,
815
823
  "Show All Recent Folders {0}",
816
824
  this.getKeybindingLabel(OpenRecentAction.ID)
817
825
  ))
818
- }, ( localize(7305, "More...")))),
826
+ }, ( localize(10752, "More...")))),
819
827
  renderElement: renderRecent,
820
828
  contextService: this.contextService
821
- })));
829
+ }));
822
830
  recentlyOpenedList.onDidChange(() => this.registerDispatchListeners());
823
831
  this.recentlyOpened.then(({ workspaces }) => {
824
- const workspacesWithID = ( (workspaces
832
+ const workspacesWithID = ( workspaces
825
833
  .filter(recent => !this.workspaceContextService.isCurrentWorkspace(isRecentWorkspace(recent) ? recent.workspace : recent.folderUri))
826
834
  .map(
827
- recent => ({ ...recent, id: isRecentWorkspace(recent) ? recent.workspace.id : ( (recent.folderUri.toString())) })
828
- )));
835
+ recent => ({ ...recent, id: isRecentWorkspace(recent) ? recent.workspace.id : ( recent.folderUri.toString()) })
836
+ ));
829
837
  const updateEntries = () => {
830
838
  recentlyOpenedList.setEntries(workspacesWithID);
831
839
  };
@@ -842,14 +850,14 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
842
850
  if (this.startList) {
843
851
  this.startList.dispose();
844
852
  }
845
- const startList = this.startList = ( (new GettingStartedIndexList({
846
- title: ( localize(7306, "Start")),
853
+ const startList = this.startList = ( new GettingStartedIndexList({
854
+ title: ( localize(10753, "Start")),
847
855
  klass: 'start-container',
848
856
  limit: 10,
849
857
  renderElement: renderStartEntry,
850
858
  rankElement: e => -e.order,
851
859
  contextService: this.contextService
852
- })));
860
+ }));
853
861
  startList.setEntries(parsedStartEntries);
854
862
  startList.onDidChange(() => this.registerDispatchListeners());
855
863
  return startList;
@@ -859,10 +867,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
859
867
  const renderNewBadge = (category.newItems || category.newEntry) && !category.isFeatured;
860
868
  const newBadge = $('.new-badge', {});
861
869
  if (category.newEntry) {
862
- reset(newBadge, $('.new-category', {}, ( localize(7307, "New"))));
870
+ reset(newBadge, $('.new-category', {}, ( localize(10754, "New"))));
863
871
  }
864
872
  else if (category.newItems) {
865
- reset(newBadge, $('.new-items', {}, ( localize(7308, "Updated"))));
873
+ reset(newBadge, $('.new-items', {}, ( localize(10755, "Updated"))));
866
874
  }
867
875
  const featuredBadge = $('.featured-badge', {});
868
876
  const descriptionContent = $('.description-content', {});
@@ -878,9 +886,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
878
886
  }, featuredBadge, $('.main-content', {}, this.iconWidgetFor(category), titleContent, renderNewBadge ? newBadge : $('.no-badge'), $('a.codicon.codicon-close.hide-category-button', {
879
887
  'tabindex': 0,
880
888
  'x-dispatch': 'hideCategory:' + category.id,
881
- 'title': ( localize(7309, "Hide")),
889
+ 'title': ( localize(10756, "Hide")),
882
890
  'role': 'button',
883
- 'aria-label': ( localize(7310, "Hide")),
891
+ 'aria-label': ( localize(10757, "Hide")),
884
892
  })), descriptionContent, $('.category-progress', { 'x-data-category-id': category.id, }, $('.progress-bar-outer', { 'role': 'progressbar' }, $('.progress-bar-inner'))));
885
893
  };
886
894
  if (this.gettingStartedList) {
@@ -900,20 +908,20 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
900
908
  if (e.recencyBonus) {
901
909
  rank += 4 * e.recencyBonus;
902
910
  }
903
- if (( (this.getHiddenCategories().has(e.id)))) {
911
+ if (( this.getHiddenCategories().has(e.id))) {
904
912
  rank = null;
905
913
  }
906
914
  return rank;
907
915
  };
908
- const gettingStartedList = this.gettingStartedList = ( (new GettingStartedIndexList({
909
- title: ( localize(7311, "Walkthroughs")),
916
+ const gettingStartedList = this.gettingStartedList = ( new GettingStartedIndexList({
917
+ title: ( localize(10758, "Walkthroughs")),
910
918
  klass: 'getting-started',
911
919
  limit: 5,
912
- footer: $('span.button-link.see-all-walkthroughs', { 'x-dispatch': 'seeAllWalkthroughs', 'tabindex': 0 }, ( localize(7305, "More..."))),
920
+ footer: $('span.button-link.see-all-walkthroughs', { 'x-dispatch': 'seeAllWalkthroughs', 'tabindex': 0 }, ( localize(10752, "More..."))),
913
921
  renderElement: renderGetttingStaredWalkthrough,
914
922
  rankElement: rankWalkthrough,
915
923
  contextService: this.contextService,
916
- })));
924
+ }));
917
925
  gettingStartedList.onDidChange(() => {
918
926
  const hidden = this.getHiddenCategories();
919
927
  const someWalkthroughsHidden = hidden.size || gettingStartedList.itemCount < this.gettingStartedCategories.filter(c => this.contextService.contextMatchesRules(c.when)).length;
@@ -962,15 +970,15 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
962
970
  bar.style.width = `${progress}%`;
963
971
  element.parentElement.classList.toggle('no-progress', stats.stepsComplete === 0);
964
972
  if (stats.stepsTotal === stats.stepsComplete) {
965
- bar.title = ( localize(7312, "All {0} steps complete!", stats.stepsComplete));
973
+ bar.title = ( localize(10759, "All {0} steps complete!", stats.stepsComplete));
966
974
  }
967
975
  else {
968
- bar.title = ( localize(7313, "{0} of {1} steps complete", stats.stepsComplete, stats.stepsTotal));
976
+ bar.title = ( localize(10760, "{0} of {1} steps complete", stats.stepsComplete, stats.stepsTotal));
969
977
  }
970
978
  });
971
979
  }
972
980
  async scrollToCategory(categoryID, stepId) {
973
- if (!( (this.gettingStartedCategories.some(c => c.id === categoryID)))) {
981
+ if (!( this.gettingStartedCategories.some(c => c.id === categoryID))) {
974
982
  this.gettingStartedCategories = this.gettingStartedService.getWalkthroughs();
975
983
  }
976
984
  const ourCategory = this.gettingStartedCategories.find(c => c.id === categoryID);
@@ -998,13 +1006,13 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
998
1006
  return;
999
1007
  }
1000
1008
  if (this.groupsService.count === 1) {
1001
- const sideGroup = this.groupsService.addGroup(this.groupsService.groups[0], 3 );
1009
+ const sideGroup = this.groupsService.addGroup(this.groupsService.groups[0], GroupDirection.RIGHT);
1002
1010
  this.groupsService.activateGroup(sideGroup);
1003
1011
  const gettingStartedSize = Math.floor(fullSize.width / 2);
1004
- const gettingStartedGroup = this.groupsService.getGroups(1 ).find(group => (group.activeEditor instanceof GettingStartedInput));
1012
+ const gettingStartedGroup = this.groupsService.getGroups(GroupsOrder.MOST_RECENTLY_ACTIVE).find(group => (group.activeEditor instanceof GettingStartedInput));
1005
1013
  this.groupsService.setSize(assertIsDefined(gettingStartedGroup), { width: gettingStartedSize, height: fullSize.height });
1006
1014
  }
1007
- const nonGettingStartedGroup = this.groupsService.getGroups(1 ).find(group => !(group.activeEditor instanceof GettingStartedInput));
1015
+ const nonGettingStartedGroup = this.groupsService.getGroups(GroupsOrder.MOST_RECENTLY_ACTIVE).find(group => !(group.activeEditor instanceof GettingStartedInput));
1008
1016
  if (nonGettingStartedGroup) {
1009
1017
  this.groupsService.activateGroup(nonGettingStartedGroup);
1010
1018
  nonGettingStartedGroup.focus();
@@ -1019,7 +1027,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1019
1027
  this.focusSideEditorGroup();
1020
1028
  }
1021
1029
  if (isCommand) {
1022
- const commandURI = ( (URI.parse(command)));
1030
+ const commandURI = ( URI.parse(command));
1023
1031
  let args = [];
1024
1032
  try {
1025
1033
  args = parse(decodeURIComponent(commandURI.query));
@@ -1034,15 +1042,15 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1034
1042
  if (!Array.isArray(args)) {
1035
1043
  args = [args];
1036
1044
  }
1037
- if ((commandURI.path === ( (OpenFileFolderAction.ID.toString())) ||
1038
- commandURI.path === ( (OpenFolderAction.ID.toString()))) &&
1045
+ if ((commandURI.path === ( OpenFileFolderAction.ID.toString()) ||
1046
+ commandURI.path === ( OpenFolderAction.ID.toString())) &&
1039
1047
  this.workspaceContextService.getWorkspace().folders.length === 0) {
1040
1048
  const selectedStepIndex = this.currentWalkthrough?.steps.findIndex(step => step.id === this.editorInput.selectedStep);
1041
1049
  if (selectedStepIndex !== undefined &&
1042
1050
  selectedStepIndex > -1 &&
1043
1051
  this.currentWalkthrough?.steps.slice(selectedStepIndex + 1).some(step => !step.done)) {
1044
1052
  const restoreData = { folder: UNKNOWN_EMPTY_WINDOW_WORKSPACE.id, category: this.editorInput.selectedCategory, step: this.editorInput.selectedStep };
1045
- this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData), 0 , 1 );
1053
+ this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData), StorageScope.PROFILE, StorageTarget.MACHINE);
1046
1054
  }
1047
1055
  }
1048
1056
  this.commandService.executeCommand(commandURI.path, ...args).then(result => {
@@ -1052,8 +1060,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1052
1060
  console.warn('Warn: Running walkthrough command', href, 'yielded non-URI `openFolder` result', toOpen, '. It will be disregarded.');
1053
1061
  return;
1054
1062
  }
1055
- const restoreData = { folder: ( (toOpen.toString())), category: this.editorInput.selectedCategory, step: this.editorInput.selectedStep };
1056
- this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData), 0 , 1 );
1063
+ const restoreData = { folder: ( toOpen.toString()), category: this.editorInput.selectedCategory, step: this.editorInput.selectedStep };
1064
+ this.storageService.store(restoreWalkthroughsConfigurationKey, JSON.stringify(restoreData), StorageScope.PROFILE, StorageTarget.MACHINE);
1057
1065
  this.hostService.openWindow([{ folderUri: toOpen }]);
1058
1066
  }
1059
1067
  });
@@ -1073,10 +1081,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1073
1081
  if (linkedText.nodes.length === 1 && typeof linkedText.nodes[0] !== 'string') {
1074
1082
  const node = linkedText.nodes[0];
1075
1083
  const buttonContainer = append(container, $('.button-container'));
1076
- const button = ( (new Button(
1084
+ const button = ( new Button(
1077
1085
  buttonContainer,
1078
1086
  { title: node.title, supportIcons: true, ...defaultButtonStyles }
1079
- )));
1087
+ ));
1080
1088
  const isCommand = node.href.startsWith('command:');
1081
1089
  const command = node.href.replace(/command:(toSide:)?/, 'command:');
1082
1090
  button.label = node.label;
@@ -1088,9 +1096,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1088
1096
  if (isCommand) {
1089
1097
  const keybinding = this.getKeyBinding(command);
1090
1098
  if (keybinding) {
1091
- const shortcutMessage = $('span.shortcut-message', {}, ( localize(7314, 'Tip: Use keyboard shortcut ')));
1099
+ const shortcutMessage = $('span.shortcut-message', {}, ( localize(10761, 'Tip: Use keyboard shortcut ')));
1092
1100
  container.appendChild(shortcutMessage);
1093
- const label = ( (new KeybindingLabel(shortcutMessage, OS, { ...defaultKeybindingLabelStyles })));
1101
+ const label = ( new KeybindingLabel(shortcutMessage, OS, { ...defaultKeybindingLabelStyles }));
1094
1102
  label.set(keybinding);
1095
1103
  }
1096
1104
  }
@@ -1141,15 +1149,15 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1141
1149
  const categoryDescriptorComponent = $('.getting-started-category', {}, $('.category-description-container', {}, $('h2.category-title.max-lines-3', { 'x-category-title-for': category.id }, ...renderLabelWithIcons(category.title)), descriptionContainer));
1142
1150
  const stepListContainer = $('.step-list-container');
1143
1151
  this.detailsPageDisposables.add(addDisposableListener(stepListContainer, 'keydown', (e) => {
1144
- const event = ( (new StandardKeyboardEvent(e)));
1152
+ const event = ( new StandardKeyboardEvent(e));
1145
1153
  const currentStepIndex = () => category.steps.findIndex(e => e.id === this.editorInput.selectedStep);
1146
- if (event.keyCode === 16 ) {
1154
+ if (event.keyCode === KeyCode.UpArrow) {
1147
1155
  const toExpand = category.steps.filter((step, index) => index < currentStepIndex() && this.contextService.contextMatchesRules(step.when));
1148
1156
  if (toExpand.length) {
1149
1157
  this.selectStep(toExpand[toExpand.length - 1].id, false);
1150
1158
  }
1151
1159
  }
1152
- if (event.keyCode === 18 ) {
1160
+ if (event.keyCode === KeyCode.DownArrow) {
1153
1161
  const toExpand = category.steps.find((step, index) => index > currentStepIndex() && this.contextService.contextMatchesRules(step.when));
1154
1162
  if (toExpand) {
1155
1163
  this.selectStep(toExpand.id, false);
@@ -1157,7 +1165,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1157
1165
  }
1158
1166
  }));
1159
1167
  let renderedSteps = undefined;
1160
- const contextKeysToWatch = ( (new Set(category.steps.flatMap(step => ( (step.when.keys()))))));
1168
+ const contextKeysToWatch = ( new Set(category.steps.flatMap(step => ( step.when.keys()))));
1161
1169
  const buildStepList = () => {
1162
1170
  category.steps.sort((a, b) => a.order - b.order);
1163
1171
  const toRender = category.steps
@@ -1166,13 +1174,12 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1166
1174
  return;
1167
1175
  }
1168
1176
  renderedSteps = toRender;
1169
- reset(stepListContainer, ...( (renderedSteps
1177
+ reset(stepListContainer, ...( renderedSteps
1170
1178
  .map(step => {
1171
1179
  const codicon = $('.codicon' + (step.done ? '.complete' + ThemeIcon.asCSSSelector(gettingStartedCheckedCodicon) : ThemeIcon.asCSSSelector(gettingStartedUncheckedCodicon)), {
1172
1180
  'data-done-step-id': step.id,
1173
1181
  'x-dispatch': 'toggleStepCompletion:' + step.id,
1174
1182
  'role': 'checkbox',
1175
- 'tabindex': '0',
1176
1183
  'aria-checked': step.done ? 'true' : 'false'
1177
1184
  });
1178
1185
  const container = $('.step-description-container', { 'x-step-description-for': step.id });
@@ -1181,7 +1188,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1181
1188
  reset(stepTitle, ...renderLabelWithIcons(step.title));
1182
1189
  const stepDescription = $('.step-container', {}, stepTitle, container);
1183
1190
  if (step.media.type === 'image') {
1184
- stepDescription.appendChild($('.image-description', { 'aria-label': ( localize(7315, "Image showing {0}", step.media.altText)) }));
1191
+ stepDescription.appendChild($('.image-description', { 'aria-label': ( localize(10762, "Image showing {0}", step.media.altText)) }));
1185
1192
  }
1186
1193
  return $('button.getting-started-step', {
1187
1194
  'x-dispatch': 'selectTask:' + step.id,
@@ -1190,7 +1197,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1190
1197
  'aria-checked': step.done ? 'true' : 'false',
1191
1198
  'role': 'button',
1192
1199
  }, codicon, stepDescription);
1193
- }))));
1200
+ })));
1194
1201
  };
1195
1202
  buildStepList();
1196
1203
  this.detailsPageDisposables.add(this.contextService.onDidChangeContext(e => {
@@ -1201,13 +1208,13 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1201
1208
  }
1202
1209
  }));
1203
1210
  const showNextCategory = this.gettingStartedCategories.find(_category => _category.id === category.next);
1204
- const stepsContainer = $('.getting-started-detail-container', { 'role': 'list' }, stepListContainer, $('.done-next-container', {}, $('button.button-link.all-done', { 'x-dispatch': 'allDone' }, $('span.codicon.codicon-check-all'), ( localize(7316, "Mark Done"))), ...(showNextCategory
1205
- ? [$('button.button-link.next', { 'x-dispatch': 'nextSection' }, ( localize(7317, "Next Section")), $('span.codicon.codicon-arrow-right'))]
1211
+ const stepsContainer = $('.getting-started-detail-container', { 'role': 'list' }, stepListContainer, $('.done-next-container', {}, $('button.button-link.all-done', { 'x-dispatch': 'allDone' }, $('span.codicon.codicon-check-all'), ( localize(10763, "Mark Done"))), ...(showNextCategory
1212
+ ? [$('button.button-link.next', { 'x-dispatch': 'nextSection' }, ( localize(10764, "Next Section")), $('span.codicon.codicon-arrow-right'))]
1206
1213
  : [])));
1207
- this.detailsScrollbar = this._register(( (new DomScrollableElement(stepsContainer, { className: 'steps-container' }))));
1214
+ this.detailsScrollbar = this._register(( new DomScrollableElement(stepsContainer, { className: 'steps-container' })));
1208
1215
  const stepListComponent = this.detailsScrollbar.getDomNode();
1209
1216
  const categoryFooter = $('.getting-started-footer');
1210
- if (this.editorInput.showTelemetryNotice && getTelemetryLevel(this.configurationService) !== 0 && this.productService.enableTelemetry) {
1217
+ if (this.editorInput.showTelemetryNotice && getTelemetryLevel(this.configurationService) !== TelemetryLevel.NONE && this.productService.enableTelemetry) {
1211
1218
  this.buildTelemetryFooter(categoryFooter);
1212
1219
  }
1213
1220
  reset(this.stepsContent, categoryDescriptorComponent, stepListComponent, this.stepMediaComponent, categoryFooter);
@@ -1219,12 +1226,12 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1219
1226
  }
1220
1227
  buildTelemetryFooter(parent) {
1221
1228
  const mdRenderer = this.instantiationService.createInstance(MarkdownRenderer, {});
1222
- const privacyStatementCopy = ( localize(7318, "privacy statement"));
1229
+ const privacyStatementCopy = ( localize(10765, "privacy statement"));
1223
1230
  const privacyStatementButton = `[${privacyStatementCopy}](command:workbench.action.openPrivacyStatementUrl)`;
1224
- const optOutCopy = ( localize(7319, "opt out"));
1231
+ const optOutCopy = ( localize(10766, "opt out"));
1225
1232
  const optOutButton = `[${optOutCopy}](command:settings.filterByTelemetry)`;
1226
1233
  const text = ( localize(
1227
- 7320,
1234
+ 10767,
1228
1235
  "{0} collects usage data. Read our {1} and learn how to {2}.",
1229
1236
  this.productService.nameShort,
1230
1237
  privacyStatementButton,
@@ -1296,7 +1303,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1296
1303
  const prevButton = this.container.querySelector('.prev-button.button-link');
1297
1304
  prevButton.style.display = this.editorInput.showWelcome || this.prevWalkthrough ? 'block' : 'none';
1298
1305
  const moreTextElement = prevButton.querySelector('.moreText');
1299
- moreTextElement.textContent = firstLaunch ? ( localize(7321, "Welcome")) : ( localize(7295, "Go Back"));
1306
+ moreTextElement.textContent = firstLaunch ? ( localize(10768, "Welcome")) : ( localize(10742, "Go Back"));
1300
1307
  this.container.querySelector('.gettingStartedSlideDetails').querySelectorAll('button').forEach(button => button.disabled = false);
1301
1308
  this.container.querySelector('.gettingStartedSlideCategories').querySelectorAll('button').forEach(button => button.disabled = true);
1302
1309
  this.container.querySelector('.gettingStartedSlideCategories').querySelectorAll('input').forEach(button => button.disabled = true);
@@ -1314,31 +1321,31 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1314
1321
  }
1315
1322
  }
1316
1323
  };
1317
- GettingStartedPage = GettingStartedPage_1 = ( (__decorate([
1318
- ( (__param(1, ICommandService))),
1319
- ( (__param(2, IProductService))),
1320
- ( (__param(3, IKeybindingService))),
1321
- ( (__param(4, IWalkthroughsService))),
1322
- ( (__param(5, IConfigurationService))),
1323
- ( (__param(6, ITelemetryService))),
1324
- ( (__param(7, ILanguageService))),
1325
- ( (__param(8, IFileService))),
1326
- ( (__param(9, IOpenerService))),
1327
- ( (__param(10, IWorkbenchThemeService))),
1328
- ( (__param(11, IStorageService))),
1329
- ( (__param(12, IExtensionService))),
1330
- ( (__param(13, IInstantiationService))),
1331
- ( (__param(14, INotificationService))),
1332
- ( (__param(15, IEditorGroupsService))),
1333
- ( (__param(16, IContextKeyService))),
1334
- ( (__param(17, IQuickInputService))),
1335
- ( (__param(18, IWorkspacesService))),
1336
- ( (__param(19, ILabelService))),
1337
- ( (__param(20, IHostService))),
1338
- ( (__param(21, IWebviewService))),
1339
- ( (__param(22, IWorkspaceContextService))),
1340
- ( (__param(23, IAccessibilityService)))
1341
- ], GettingStartedPage)));
1324
+ GettingStartedPage = GettingStartedPage_1 = ( __decorate([
1325
+ ( __param(1, ICommandService)),
1326
+ ( __param(2, IProductService)),
1327
+ ( __param(3, IKeybindingService)),
1328
+ ( __param(4, IWalkthroughsService)),
1329
+ ( __param(5, IConfigurationService)),
1330
+ ( __param(6, ITelemetryService)),
1331
+ ( __param(7, ILanguageService)),
1332
+ ( __param(8, IFileService)),
1333
+ ( __param(9, IOpenerService)),
1334
+ ( __param(10, IWorkbenchThemeService)),
1335
+ ( __param(11, IStorageService)),
1336
+ ( __param(12, IExtensionService)),
1337
+ ( __param(13, IInstantiationService)),
1338
+ ( __param(14, INotificationService)),
1339
+ ( __param(15, IEditorGroupsService)),
1340
+ ( __param(16, IContextKeyService)),
1341
+ ( __param(17, IQuickInputService)),
1342
+ ( __param(18, IWorkspacesService)),
1343
+ ( __param(19, ILabelService)),
1344
+ ( __param(20, IHostService)),
1345
+ ( __param(21, IWebviewService)),
1346
+ ( __param(22, IWorkspaceContextService)),
1347
+ ( __param(23, IAccessibilityService))
1348
+ ], GettingStartedPage));
1342
1349
  class GettingStartedInputSerializer {
1343
1350
  canSerialize(editorInput) {
1344
1351
  return true;
@@ -1350,14 +1357,10 @@ class GettingStartedInputSerializer {
1350
1357
  return instantiationService.invokeFunction(accessor => {
1351
1358
  try {
1352
1359
  const { selectedCategory, selectedStep } = JSON.parse(serializedEditorInput);
1353
- return (
1354
- (new GettingStartedInput({ selectedCategory, selectedStep }))
1355
- );
1360
+ return ( new GettingStartedInput({ selectedCategory, selectedStep }));
1356
1361
  }
1357
1362
  catch { }
1358
- return (
1359
- (new GettingStartedInput({}))
1360
- );
1363
+ return ( new GettingStartedInput({}));
1361
1364
  });
1362
1365
  }
1363
1366
  }