@codingame/monaco-vscode-walkthrough-service-override 20.5.0 → 21.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 (25) hide show
  1. package/package.json +10 -10
  2. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.js +28 -39
  3. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.d.ts +1 -11
  4. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.js +49 -441
  5. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedAccessibleView.js +3 -3
  6. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js +7 -7
  7. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedDetailsRenderer.js +23 -1
  8. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.js +37 -37
  9. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedIcons.js +2 -2
  10. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput.js +1 -1
  11. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService._contribution.js +4 -4
  12. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.d.ts +1 -3
  13. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +5 -18
  14. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/media/gettingStarted.css +0 -456
  15. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.js +3 -10
  16. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.d.ts +0 -1
  17. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.js +157 -300
  18. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/notebookProfile.js +3 -3
  19. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker.js +5 -5
  20. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker_small.js +4 -4
  21. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/editorWalkThrough.js +3 -3
  22. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThrough.contribution.js +3 -3
  23. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.d.ts +1 -1
  24. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.js +6 -5
  25. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils.js +1 -1
@@ -15,7 +15,6 @@ import { onUnexpectedError } from '@codingame/monaco-vscode-api/vscode/vs/base/c
15
15
  import { KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
16
16
  import { splitRecentLabel } from '@codingame/monaco-vscode-api/vscode/vs/base/common/labels';
17
17
  import { DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
18
- import { parseLinkedText } from '@codingame/monaco-vscode-api/vscode/vs/base/common/linkedText';
19
18
  import { parse } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
20
19
  import { matchesScheme, Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
21
20
  import { OS } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
@@ -55,7 +54,7 @@ import { isRecentFolder, isRecentWorkspace } from '@codingame/monaco-vscode-158b
55
54
  import { IWorkspacesService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspaces/common/workspaces.service';
56
55
  import { OpenRecentAction } from '@codingame/monaco-vscode-158b9837-fc78-5d9c-86f5-9134e4358643-common/vscode/vs/workbench/browser/actions/windowActions';
57
56
  import { OpenFolderViaWorkspaceAction, OpenFileFolderAction, OpenFolderAction } from '@codingame/monaco-vscode-f24e325c-2ce0-5bba-8236-bfc4f53180ab-common/vscode/vs/workbench/browser/actions/workspaceActions';
58
- import { EditorPane } from '@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common/vscode/vs/workbench/browser/parts/editor/editorPane';
57
+ import { EditorPane } from '@codingame/monaco-vscode-5e2c24a1-3217-55e8-bc90-521eaf7df5a6-common/vscode/vs/workbench/browser/parts/editor/editorPane';
59
58
  import { WorkbenchStateContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
60
59
  import { IWebviewService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/webview/browser/webview.service';
61
60
  import './gettingStartedColors.js';
@@ -65,7 +64,7 @@ import { GettingStartedInput } from './gettingStartedInput.js';
65
64
  import { hiddenEntriesConfigurationKey, parseDescription } from './gettingStartedService.js';
66
65
  import { IWalkthroughsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.service';
67
66
  import { restoreWalkthroughsConfigurationKey } from './startupPage.js';
68
- import { startEntries, NEW_WELCOME_EXPERIENCE, copilotSettingsMessage } from '../common/gettingStartedContent.js';
67
+ import { startEntries } from '../common/gettingStartedContent.js';
69
68
  import { GroupDirection, GroupsOrder } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService';
70
69
  import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
71
70
  import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
@@ -76,7 +75,6 @@ import { AccessibilityVerbositySettingId } from '@codingame/monaco-vscode-api/vs
76
75
  import { AccessibleViewAction } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibleViewActions';
77
76
  import { KeybindingLabel } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/keybindingLabel/keybindingLabel';
78
77
  import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
79
- import { startupExpContext, StartupExperimentGroup } from '@codingame/monaco-vscode-f6f55824-df83-5ffc-ac26-50fd4df4fe0e-common/vscode/vs/workbench/services/coreExperimentation/common/coreExperimentationService';
80
78
 
81
79
  var GettingStartedPage_1;
82
80
  registerCss(gettingStarted);
@@ -126,14 +124,13 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
126
124
  this.detailsPageDisposables = ( new DisposableStore());
127
125
  this.mediaDisposables = ( new DisposableStore());
128
126
  this.buildSlideThrottle = ( new Throttler());
129
- this.hasScrolledToFirstCategory = false;
130
127
  this.showFeaturedWalkthrough = true;
131
128
  this.currentMediaComponent = undefined;
132
129
  this.currentMediaType = undefined;
133
130
  this.container = $('.gettingStartedContainer', {
134
131
  role: 'document',
135
132
  tabindex: 0,
136
- 'aria-label': ( localize(12310, "Overview of how to get up to speed with your editor."))
133
+ 'aria-label': ( localize(12528, "Overview of how to get up to speed with your editor."))
137
134
  });
138
135
  this.stepMediaComponent = $('.getting-started-media');
139
136
  this.stepMediaComponent.id = generateUuid();
@@ -183,8 +180,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
183
180
  this.container.querySelectorAll(`[x-category-description-for="${category.id}"]`).forEach(step => step.innerText = ourCategory.description);
184
181
  }));
185
182
  this._register(this.gettingStartedService.onDidProgressStep(step => {
186
- const category = step.category === NEW_WELCOME_EXPERIENCE ? this.gettingStartedService.getWalkthrough(step.category) :
187
- this.gettingStartedCategories.find(c => c.id === step.category);
183
+ const category = this.gettingStartedCategories.find(c => c.id === step.category);
188
184
  if (!category) {
189
185
  throw Error('Could not find category with ID: ' + step.category);
190
186
  }
@@ -210,14 +206,14 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
210
206
  badgeelement.parentElement?.setAttribute('aria-checked', 'true');
211
207
  badgeelement.classList.remove(...ThemeIcon.asClassNameArray(gettingStartedUncheckedCodicon));
212
208
  badgeelement.classList.add('complete', ...ThemeIcon.asClassNameArray(gettingStartedCheckedCodicon));
213
- badgeelement.setAttribute('aria-label', ( localize(12311, "Checkbox for Step {0}: Completed", step.title)));
209
+ badgeelement.setAttribute('aria-label', ( localize(12529, "Checkbox for Step {0}: Completed", step.title)));
214
210
  }
215
211
  else {
216
212
  badgeelement.setAttribute('aria-checked', 'false');
217
213
  badgeelement.parentElement?.setAttribute('aria-checked', 'false');
218
214
  badgeelement.classList.remove('complete', ...ThemeIcon.asClassNameArray(gettingStartedCheckedCodicon));
219
215
  badgeelement.classList.add(...ThemeIcon.asClassNameArray(gettingStartedUncheckedCodicon));
220
- badgeelement.setAttribute('aria-label', ( localize(12312, "Checkbox for Step {0}: Not completed", step.title)));
216
+ badgeelement.setAttribute('aria-label', ( localize(12530, "Checkbox for Step {0}: Not completed", step.title)));
221
217
  }
222
218
  });
223
219
  }
@@ -419,7 +415,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
419
415
  label: x.title,
420
416
  detail: x.description,
421
417
  description: x.source,
422
- }))), { canPickMany: false, matchOnDescription: true, matchOnDetail: true, title: ( localize(12313, "Open Walkthrough...")) });
418
+ }))), { canPickMany: false, matchOnDescription: true, matchOnDetail: true, title: ( localize(12531, "Open Walkthrough...")) });
423
419
  if (selection) {
424
420
  this.runDispatchCommand('selectCategory', selection.id);
425
421
  }
@@ -600,7 +596,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
600
596
  const themeType = this.themeService.getColorTheme().type;
601
597
  const videoPath = media.path[themeType];
602
598
  const videoPoster = media.poster ? media.poster[themeType] : undefined;
603
- const altText = media.altText ? media.altText : ( localize(12314, "Video for {0}", stepToExpand.title));
599
+ const altText = media.altText ? media.altText : ( localize(12532, "Video for {0}", stepToExpand.title));
604
600
  const rawHTML = await this.detailsRenderer.renderVideo(videoPath, videoPoster, altText);
605
601
  this.webview.setHtml(rawHTML);
606
602
  let isDisposed = false;
@@ -628,8 +624,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
628
624
  provideScreenReaderUpdate() {
629
625
  if (this.configurationService.getValue(AccessibilityVerbositySettingId.Walkthrough)) {
630
626
  const kbLabel = this.keybindingService.lookupKeybinding(AccessibleViewAction.id)?.getAriaLabel();
631
- return kbLabel ? ( localize(12315, "Inspect this in the accessible view ({0}).\n", kbLabel)) : ( localize(
632
- 12316,
627
+ return kbLabel ? ( localize(12533, "Inspect this in the accessible view ({0}).\n", kbLabel)) : ( localize(
628
+ 12534,
633
629
  "Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\n"
634
630
  ));
635
631
  }
@@ -689,7 +685,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
689
685
  this.categoriesPageScrollbar.dispose();
690
686
  }
691
687
  this.categoriesSlide = $('.gettingStartedSlideCategories.gettingStartedSlide');
692
- const prevButton = $('button.prev-button.button-link', { 'x-dispatch': 'scrollPrev' }, $('span.scroll-button.codicon.codicon-chevron-left'), $('span.moreText', {}, ( localize(12317, "Go Back"))));
688
+ const prevButton = $('button.prev-button.button-link', { 'x-dispatch': 'scrollPrev' }, $('span.scroll-button.codicon.codicon-chevron-left'), $('span.moreText', {}, ( localize(12535, "Go Back"))));
693
689
  this.stepsSlide = $('.gettingStartedSlideDetails.gettingStartedSlide', {}, prevButton);
694
690
  this.stepsContent = $('.gettingStartedDetailsContent', {});
695
691
  this.detailsPageScrollbar = this._register(( new DomScrollableElement(
@@ -713,11 +709,11 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
713
709
  icon: Codicon.check,
714
710
  actionClassName: 'getting-started-checkbox',
715
711
  isChecked: this.configurationService.getValue(configurationKey) === 'welcomePage',
716
- title: ( localize(12318, "When checked, this page will be shown on startup.")),
712
+ title: ( localize(12536, "When checked, this page will be shown on startup.")),
717
713
  ...defaultToggleStyles
718
714
  }));
719
715
  showOnStartupCheckbox.domNode.id = 'showOnStartup';
720
- const showOnStartupLabel = $('label.caption', { for: 'showOnStartup' }, ( localize(12319, "Show welcome page on startup")));
716
+ const showOnStartupLabel = $('label.caption', { for: 'showOnStartup' }, ( localize(12537, "Show welcome page on startup")));
721
717
  const onShowOnStartupChanged = () => {
722
718
  if (showOnStartupCheckbox.checked) {
723
719
  this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'showOnStartupChecked', argument: undefined, walkthroughId: this.currentWalkthrough?.id });
@@ -736,7 +732,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
736
732
  showOnStartupCheckbox.checked = !showOnStartupCheckbox.checked;
737
733
  onShowOnStartupChanged();
738
734
  }));
739
- const header = $('.header', {}, $('h1.product-name.caption', {}, this.productService.nameLong), $('p.subtitle.description', {}, ( localize(12320, "Editing evolved"))));
735
+ const header = $('.header', {}, $('h1.product-name.caption', {}, this.productService.nameLong), $('p.subtitle.description', {}, ( localize(12538, "Editing evolved"))));
740
736
  const leftColumn = $('.categories-column.categories-column-left', {});
741
737
  const rightColumn = $('.categories-column.categories-column-right', {});
742
738
  const startList = this.buildStartList();
@@ -773,57 +769,38 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
773
769
  this.updateCategoryProgress();
774
770
  this.registerDispatchListeners();
775
771
  if (this.editorInput.selectedCategory) {
776
- const showNewExperience = this.editorInput.selectedCategory === NEW_WELCOME_EXPERIENCE;
777
772
  this.currentWalkthrough = this.gettingStartedCategories.find(category => category.id === this.editorInput.selectedCategory);
778
773
  if (!this.currentWalkthrough) {
779
774
  this.gettingStartedCategories = this.gettingStartedService.getWalkthroughs();
780
- this.currentWalkthrough = showNewExperience ? this.gettingStartedService.getWalkthrough(this.editorInput.selectedCategory) : this.gettingStartedCategories.find(category => category.id === this.editorInput.selectedCategory);
775
+ this.currentWalkthrough = this.gettingStartedCategories.find(category => category.id === this.editorInput.selectedCategory);
781
776
  if (this.currentWalkthrough) {
782
- if (showNewExperience) {
783
- this.buildNewCategorySlide(this.editorInput.selectedCategory, this.editorInput.selectedStep);
784
- }
785
- else {
786
- this.buildCategorySlide(this.editorInput.selectedCategory, this.editorInput.selectedStep);
787
- }
777
+ this.buildCategorySlide(this.editorInput.selectedCategory, this.editorInput.selectedStep);
788
778
  this.setSlide('details');
789
779
  return;
790
780
  }
791
781
  }
792
782
  else {
793
- if (showNewExperience) {
794
- this.buildNewCategorySlide(this.editorInput.selectedCategory, this.editorInput.selectedStep);
795
- }
796
- else {
797
- this.buildCategorySlide(this.editorInput.selectedCategory, this.editorInput.selectedStep);
798
- }
783
+ this.buildCategorySlide(this.editorInput.selectedCategory, this.editorInput.selectedStep);
799
784
  this.setSlide('details');
800
785
  return;
801
786
  }
802
787
  }
803
- const someStepsComplete = ( this.gettingStartedCategories.some(category => category.steps.find(s => s.done)));
804
788
  if (this.editorInput.showTelemetryNotice && this.productService.openToWelcomeMainPage) {
805
789
  const telemetryNotice = $('p.telemetry-notice');
806
790
  this.buildTelemetryFooter(telemetryNotice);
807
791
  footer.appendChild(telemetryNotice);
808
792
  }
809
- else if (!this.productService.openToWelcomeMainPage && !someStepsComplete && !this.hasScrolledToFirstCategory && this.showFeaturedWalkthrough) {
793
+ else if (!this.productService.openToWelcomeMainPage && this.showFeaturedWalkthrough && this.storageService.isNew(StorageScope.APPLICATION)) {
810
794
  const firstSessionDateString = this.storageService.get(firstSessionDateStorageKey, StorageScope.APPLICATION) || ( new Date()).toUTCString();
811
795
  const daysSinceFirstSession = ((+( new Date())) - (+( new Date(firstSessionDateString)))) / 1000 / 60 / 60 / 24;
812
796
  const fistContentBehaviour = daysSinceFirstSession < 1 ? 'openToFirstCategory' : 'index';
813
- const startupExpValue = startupExpContext.getValue(this.contextService);
814
- if (fistContentBehaviour === 'openToFirstCategory' && ((!startupExpValue || startupExpValue === '' || startupExpValue === StartupExperimentGroup.Control))) {
797
+ if (fistContentBehaviour === 'openToFirstCategory') {
815
798
  const first = this.gettingStartedCategories.filter(c => !c.when || this.contextService.contextMatchesRules(c.when))[0];
816
799
  if (first) {
817
- this.hasScrolledToFirstCategory = true;
818
800
  this.currentWalkthrough = first;
819
801
  this.editorInput.selectedCategory = this.currentWalkthrough?.id;
820
802
  this.editorInput.walkthroughPageTitle = this.currentWalkthrough.walkthroughPageTitle;
821
- if (first.id === NEW_WELCOME_EXPERIENCE) {
822
- this.buildNewCategorySlide(this.editorInput.selectedCategory, undefined);
823
- }
824
- else {
825
- this.buildCategorySlide(this.editorInput.selectedCategory, undefined);
826
- }
803
+ this.buildCategorySlide(this.editorInput.selectedCategory, undefined);
827
804
  this.setSlide('details', true );
828
805
  return;
829
806
  }
@@ -848,7 +825,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
848
825
  const link = $('button.button-link');
849
826
  link.innerText = name;
850
827
  link.title = fullPath;
851
- link.setAttribute('aria-label', ( localize(12321, "Open folder {0} with path {1}", name, parentPath)));
828
+ link.setAttribute('aria-label', ( localize(12539, "Open folder {0} with path {1}", name, parentPath)));
852
829
  link.addEventListener('click', e => {
853
830
  this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'openRecent', argument: undefined, walkthroughId: this.currentWalkthrough?.id });
854
831
  this.hostService.openWindow([windowOpenable], {
@@ -871,18 +848,18 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
871
848
  this.recentlyOpenedList.dispose();
872
849
  }
873
850
  const recentlyOpenedList = this.recentlyOpenedList = ( new GettingStartedIndexList({
874
- title: ( localize(12322, "Recent")),
851
+ title: ( localize(12540, "Recent")),
875
852
  klass: 'recently-opened',
876
853
  limit: 5,
877
- empty: $('.empty-recent', {}, ( localize(12323, "You have no recent folders,")), $('button.button-link', { 'x-dispatch': 'openFolder' }, ( localize(12324, "open a folder"))), ( localize(12325, "to start."))),
854
+ empty: $('.empty-recent', {}, ( localize(12541, "You have no recent folders,")), $('button.button-link', { 'x-dispatch': 'openFolder' }, ( localize(12542, "open a folder"))), ( localize(12543, "to start."))),
878
855
  more: $('.more', {}, $('button.button-link', {
879
856
  'x-dispatch': 'showMoreRecents',
880
857
  title: ( localize(
881
- 12326,
858
+ 12544,
882
859
  "Show All Recent Folders {0}",
883
860
  this.getKeybindingLabel(OpenRecentAction.ID)
884
861
  ))
885
- }, ( localize(12327, "More...")))),
862
+ }, ( localize(12545, "More...")))),
886
863
  renderElement: renderRecent,
887
864
  contextService: this.contextService
888
865
  }));
@@ -910,7 +887,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
910
887
  this.startList.dispose();
911
888
  }
912
889
  const startList = this.startList = ( new GettingStartedIndexList({
913
- title: ( localize(12328, "Start")),
890
+ title: ( localize(12546, "Start")),
914
891
  klass: 'start-container',
915
892
  limit: 10,
916
893
  renderElement: renderStartEntry,
@@ -926,10 +903,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
926
903
  const renderNewBadge = (category.newItems || category.newEntry) && !category.isFeatured;
927
904
  const newBadge = $('.new-badge', {});
928
905
  if (category.newEntry) {
929
- reset(newBadge, $('.new-category', {}, ( localize(12329, "New"))));
906
+ reset(newBadge, $('.new-category', {}, ( localize(12547, "New"))));
930
907
  }
931
908
  else if (category.newItems) {
932
- reset(newBadge, $('.new-items', {}, ( localize(12330, "Updated"))));
909
+ reset(newBadge, $('.new-items', {}, ( localize(12548, "Updated"))));
933
910
  }
934
911
  const featuredBadge = $('.featured-badge', {});
935
912
  const descriptionContent = $('.description-content', {});
@@ -945,9 +922,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
945
922
  }, featuredBadge, $('.main-content', {}, this.iconWidgetFor(category), titleContent, renderNewBadge ? newBadge : $('.no-badge'), $('a.codicon.codicon-close.hide-category-button', {
946
923
  'tabindex': 0,
947
924
  'x-dispatch': 'hideCategory:' + category.id,
948
- 'title': ( localize(12331, "Hide")),
925
+ 'title': ( localize(12549, "Hide")),
949
926
  'role': 'button',
950
- 'aria-label': ( localize(12332, "Hide")),
927
+ 'aria-label': ( localize(12550, "Hide")),
951
928
  })), descriptionContent, $('.category-progress', { 'x-data-category-id': category.id, }, $('.progress-bar-outer', { 'role': 'progressbar' }, $('.progress-bar-inner'))));
952
929
  };
953
930
  if (this.gettingStartedList) {
@@ -973,10 +950,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
973
950
  return rank;
974
951
  };
975
952
  const gettingStartedList = this.gettingStartedList = ( new GettingStartedIndexList({
976
- title: ( localize(12333, "Walkthroughs")),
953
+ title: ( localize(12551, "Walkthroughs")),
977
954
  klass: 'getting-started',
978
955
  limit: 5,
979
- footer: $('span.button-link.see-all-walkthroughs', { 'x-dispatch': 'seeAllWalkthroughs', 'tabindex': 0 }, ( localize(12327, "More..."))),
956
+ footer: $('span.button-link.see-all-walkthroughs', { 'x-dispatch': 'seeAllWalkthroughs', 'tabindex': 0 }, ( localize(12545, "More..."))),
980
957
  renderElement: renderGetttingStaredWalkthrough,
981
958
  rankElement: rankWalkthrough,
982
959
  contextService: this.contextService,
@@ -1009,7 +986,6 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1009
986
  this.container.classList.toggle('height-constrained', size.height <= 600);
1010
987
  this.container.classList.toggle('width-constrained', size.width <= 400);
1011
988
  this.container.classList.toggle('width-semi-constrained', size.width <= 950);
1012
- this.container.classList.toggle('new-layout-width-constrained', size.width <= 800);
1013
989
  this.categoriesPageScrollbar?.scanDomNode();
1014
990
  this.detailsPageScrollbar?.scanDomNode();
1015
991
  this.detailsScrollbar?.scanDomNode();
@@ -1017,8 +993,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1017
993
  updateCategoryProgress() {
1018
994
  this.window.document.querySelectorAll('.category-progress').forEach(element => {
1019
995
  const categoryID = element.getAttribute('x-data-category-id');
1020
- const category = categoryID === NEW_WELCOME_EXPERIENCE ? this.gettingStartedService.getWalkthrough(categoryID) :
1021
- this.gettingStartedCategories.find(c => c.id === categoryID);
996
+ const category = this.gettingStartedCategories.find(c => c.id === categoryID);
1022
997
  if (!category) {
1023
998
  throw Error('Could not find category with ID ' + categoryID);
1024
999
  }
@@ -1031,10 +1006,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1031
1006
  bar.style.width = `${progress}%`;
1032
1007
  element.parentElement.classList.toggle('no-progress', stats.stepsComplete === 0);
1033
1008
  if (stats.stepsTotal === stats.stepsComplete) {
1034
- bar.title = ( localize(12334, "All {0} steps complete!", stats.stepsComplete));
1009
+ bar.title = ( localize(12552, "All {0} steps complete!", stats.stepsComplete));
1035
1010
  }
1036
1011
  else {
1037
- bar.title = ( localize(12335, "{0} of {1} steps complete", stats.stepsComplete, stats.stepsTotal));
1012
+ bar.title = ( localize(12553, "{0} of {1} steps complete", stats.stepsComplete, stats.stepsTotal));
1038
1013
  }
1039
1014
  });
1040
1015
  }
@@ -1042,8 +1017,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1042
1017
  if (!( this.gettingStartedCategories.some(c => c.id === categoryID))) {
1043
1018
  this.gettingStartedCategories = this.gettingStartedService.getWalkthroughs();
1044
1019
  }
1045
- const ourCategory = categoryID === NEW_WELCOME_EXPERIENCE ? this.gettingStartedService.getWalkthrough(categoryID) :
1046
- this.gettingStartedCategories.find(c => c.id === categoryID);
1020
+ const ourCategory = this.gettingStartedCategories.find(c => c.id === categoryID);
1047
1021
  if (!ourCategory) {
1048
1022
  throw Error('Could not find category with ID: ' + categoryID);
1049
1023
  }
@@ -1158,7 +1132,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1158
1132
  if (isCommand) {
1159
1133
  const keybinding = this.getKeyBinding(command);
1160
1134
  if (keybinding) {
1161
- const shortcutMessage = $('span.shortcut-message', {}, ( localize(12336, 'Tip: Use keyboard shortcut ')));
1135
+ const shortcutMessage = $('span.shortcut-message', {}, ( localize(12554, 'Tip: Use keyboard shortcut ')));
1162
1136
  container.appendChild(shortcutMessage);
1163
1137
  const label = ( new KeybindingLabel(shortcutMessage, OS, { ...defaultKeybindingLabelStyles }));
1164
1138
  label.set(keybinding);
@@ -1195,367 +1169,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1195
1169
  this.stepDisposables.clear();
1196
1170
  super.clearInput();
1197
1171
  }
1198
- selectStepByIndex(newIndex, steps, direction) {
1199
- this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'selectTask', argument: steps[newIndex].id, walkthroughId: this.currentWalkthrough?.id });
1200
- const currentIndex = steps.findIndex(step => step.id === this.editorInput.selectedStep);
1201
- this.selectSlide(steps[newIndex].id);
1202
- const footer = this.stepsContent.querySelector('.getting-started-footer');
1203
- if (footer && newIndex !== 0) {
1204
- footer.style.display = 'none';
1205
- }
1206
- else if (footer) {
1207
- footer.style.display = 'block';
1208
- }
1209
- this.updateNavButtons(newIndex, steps);
1210
- const dots = this.stepsContent.querySelectorAll('.step-dot');
1211
- dots.forEach((dot, index) => {
1212
- if (index === newIndex) {
1213
- dot.classList.add('active');
1214
- }
1215
- else {
1216
- dot.classList.remove('active');
1217
- }
1218
- });
1219
- if (currentIndex === newIndex) {
1220
- return;
1221
- }
1222
- const slidesContainer = this.stepsContent.querySelector('.step-slides-container');
1223
- if (slidesContainer) {
1224
- const slides = slidesContainer.querySelectorAll('.step-slide');
1225
- slides.forEach((slide, index) => {
1226
- const slideElement = slide;
1227
- if (index === currentIndex) {
1228
- slideElement.style.display = 'block';
1229
- slideElement.style.transform = 'translateX(0)';
1230
- }
1231
- else if (index === newIndex) {
1232
- slideElement.style.display = 'block';
1233
- slideElement.style.transform = `translateX(${direction < 0 ? '-100%' : '100%'})`;
1234
- }
1235
- else {
1236
- slideElement.style.display = 'none';
1237
- }
1238
- });
1239
- slidesContainer.getBoundingClientRect();
1240
- setTimeout(() => {
1241
- slides.forEach((slide, index) => {
1242
- const slideElement = slide;
1243
- if (index === currentIndex) {
1244
- slideElement.style.transform = `translateX(${direction > 0 ? '-100%' : '100%'})`;
1245
- setTimeout(() => {
1246
- slideElement.style.display = 'none';
1247
- }, SLIDE_TRANSITION_TIME_MS);
1248
- }
1249
- else if (index === newIndex) {
1250
- slideElement.style.transform = 'translateX(0)';
1251
- }
1252
- });
1253
- }, 20);
1254
- }
1255
- }
1256
- updateNavButtons(newIndex, steps) {
1257
- const prevButton = this.stepsContent.querySelector('.button-link.navigation.back');
1258
- if (newIndex === 0) {
1259
- if (prevButton) {
1260
- prevButton.classList.add('inactive');
1261
- prevButton.setAttribute('aria-hidden', 'true');
1262
- prevButton.setAttribute('tabindex', '-1');
1263
- }
1264
- }
1265
- else {
1266
- if (prevButton) {
1267
- prevButton.classList.remove('inactive');
1268
- prevButton.removeAttribute('aria-hidden');
1269
- prevButton.removeAttribute('tabindex');
1270
- }
1271
- }
1272
- if (this.nextButton) {
1273
- const isLastSlide = newIndex === steps.length - 1;
1274
- const textNode = this.nextButton.firstChild;
1275
- if (textNode && textNode.nodeType === Node.TEXT_NODE) {
1276
- textNode.textContent = isLastSlide
1277
- ? ( localize(12337, "Start coding"))
1278
- : ( localize(12338, "Next"));
1279
- }
1280
- this.nextButton.setAttribute('aria-label', isLastSlide
1281
- ? ( localize(12339, "Start coding"))
1282
- : ( localize(12340, "Next")));
1283
- }
1284
- }
1285
- buildNewCategorySlide(categoryID, selectedStep) {
1286
- this.container.classList.add('newSlide');
1287
- if (this.detailsScrollbar) {
1288
- this.detailsScrollbar.dispose();
1289
- }
1290
- this.detailsPageDisposables.clear();
1291
- this.mediaDisposables.clear();
1292
- const category = this.gettingStartedService.getWalkthrough(categoryID);
1293
- if (!category) {
1294
- throw Error('could not find category with ID ' + categoryID);
1295
- }
1296
- const steps = category.steps.filter(step => this.contextService.contextMatchesRules(step.when));
1297
- const groupedSteps = ( new Map());
1298
- steps.forEach(step => {
1299
- const prefixMatch = step.id.match(/^([^.]+)\./);
1300
- const prefix = prefixMatch ? prefixMatch[1] : step.id;
1301
- if (!( groupedSteps.has(prefix))) {
1302
- groupedSteps.set(prefix, []);
1303
- }
1304
- groupedSteps.get(prefix)?.push(step);
1305
- });
1306
- const slidesContainer = $('.step-slides-container');
1307
- const navigationContainer = $('.step-dots-container');
1308
- const prevButton = $('button.button-link.navigation.back', {
1309
- 'aria-label': ( localize(12341, "Previous Step")),
1310
- 'tabindex': '0'
1311
- }, $('span.codicon.codicon-arrow-left'), ( localize(12342, "Back")));
1312
- const dotsContainer = $('.dots-centered');
1313
- navigationContainer.appendChild(prevButton);
1314
- navigationContainer.appendChild(dotsContainer);
1315
- const allSlides = [];
1316
- groupedSteps.forEach((stepsInGroup, prefix) => {
1317
- if (stepsInGroup.length === 1) {
1318
- allSlides.push({ id: stepsInGroup[0].id, steps: [stepsInGroup[0]] });
1319
- }
1320
- else {
1321
- allSlides.push({ id: prefix, steps: stepsInGroup });
1322
- }
1323
- });
1324
- allSlides.forEach((slide, index) => {
1325
- const slideElement = $('.step-slide', { 'data-step': slide.id });
1326
- const slideContent = $('.step-slide-content');
1327
- const textContent = $('.step-text-content');
1328
- if (slide.steps.length === 1) {
1329
- const step = slide.steps[0];
1330
- const titleElement = $('h3.step-title', { 'x-step-title-for': step.id });
1331
- reset(titleElement, ...renderLabelWithIcons(step.title));
1332
- textContent.appendChild(titleElement);
1333
- const descriptionContainer = $('.step-description', { 'x-step-description-for': step.id });
1334
- this.buildMarkdownDescription(descriptionContainer, step.description);
1335
- textContent.appendChild(descriptionContainer);
1336
- }
1337
- else {
1338
- const multiStepContainer = $('.multi-step-container');
1339
- slide.steps.forEach((step, i) => {
1340
- const subStep = $('.sub-step', { 'data-sub-step-id': step.id });
1341
- this.detailsPageDisposables.add(addDisposableListener(subStep, 'click', () => {
1342
- this.selectSubStep(step.id);
1343
- }));
1344
- this.detailsPageDisposables.add(addDisposableListener(subStep, 'mouseenter', () => {
1345
- this.selectSubStep(step.id);
1346
- }));
1347
- const subStepTitleEl = $('.sub-step-title', {}, ...renderLabelWithIcons(step.title));
1348
- subStep.appendChild(subStepTitleEl);
1349
- const subStepDesc = $('.sub-step-description');
1350
- this.buildMarkdownDescription(subStepDesc, [step.description[0]]);
1351
- subStep.appendChild(subStepDesc);
1352
- if (i === 0 || step.id === this.editorInput.selectedStep) {
1353
- subStep.classList.add('active');
1354
- }
1355
- else {
1356
- subStep.classList.remove('active');
1357
- }
1358
- multiStepContainer.appendChild(subStep);
1359
- });
1360
- const lastStep = slide.steps[slide.steps.length - 1];
1361
- const linkedText = lastStep.description.length > 1 ? lastStep.description[1] : undefined;
1362
- if (linkedText) {
1363
- const descElement = $('.multi-step-action');
1364
- this.buildMarkdownDescription(descElement, [linkedText]);
1365
- multiStepContainer.appendChild(descElement);
1366
- const actionMessage = $('span.action-message');
1367
- const updatedText = parseLinkedText(copilotSettingsMessage);
1368
- this.buildMarkdownDescription(actionMessage, [updatedText]);
1369
- multiStepContainer.appendChild(actionMessage);
1370
- }
1371
- textContent.appendChild(multiStepContainer);
1372
- }
1373
- slideContent.appendChild(textContent);
1374
- slideElement.appendChild(slideContent);
1375
- slidesContainer.appendChild(slideElement);
1376
- const dot = $('button.step-dot', {
1377
- 'data-step-dot-index': `${index}`,
1378
- 'role': 'button'
1379
- });
1380
- if (index === 0) {
1381
- dot.classList.add('active');
1382
- }
1383
- dotsContainer.appendChild(dot);
1384
- this.detailsPageDisposables.add(addDisposableListener(dot, 'click', () => {
1385
- const currentIndex = this.getCurrentSlideIndex(allSlides);
1386
- if (currentIndex === index) {
1387
- return;
1388
- }
1389
- this.selectStepByIndex(index, ( allSlides.map(s => s.steps[0])), index > currentIndex ? 1 : -1);
1390
- }));
1391
- });
1392
- this.nextButton = $('button.button-link.navigation.next', {
1393
- 'aria-label': ( localize(12340, "Next")),
1394
- }, ( localize(12338, "Next")), $('span.codicon.codicon-arrow-right'));
1395
- navigationContainer.appendChild(this.nextButton);
1396
- this.detailsPageDisposables.add(addDisposableListener(prevButton, 'click', () => {
1397
- const currentIndex = this.getCurrentSlideIndex(allSlides);
1398
- if (currentIndex > 0) {
1399
- this.selectStepByIndex(currentIndex - 1, ( allSlides.map(s => s.steps[0])), -1);
1400
- }
1401
- }));
1402
- this.detailsPageDisposables.add(addDisposableListener(this.nextButton, 'click', () => {
1403
- const currentIndex = this.getCurrentSlideIndex(allSlides);
1404
- if (currentIndex < allSlides.length - 1) {
1405
- this.selectStepByIndex(currentIndex + 1, ( allSlides.map(s => s.steps[0])), 1);
1406
- }
1407
- else {
1408
- this.scrollPrev();
1409
- }
1410
- }));
1411
- this.currentWalkthrough = category;
1412
- this.editorInput.selectedCategory = categoryID;
1413
- this.editorInput.selectedStep = this.currentWalkthrough.steps[0].id;
1414
- const categoryHeader = $('.category-header');
1415
- const categoryTitle = $('h2.category-title', { 'x-category-title-for': category.id });
1416
- reset(categoryTitle, ...renderLabelWithIcons(category.title));
1417
- categoryHeader.appendChild(categoryTitle);
1418
- const descriptionContainer = $('.category-description.description.max-lines-3', { 'x-category-description-for': category.id });
1419
- this.buildMarkdownDescription(descriptionContainer, parseDescription(category.description));
1420
- reset(descriptionContainer, ...renderLabelWithIcons(category.description));
1421
- categoryHeader.appendChild(descriptionContainer);
1422
- const categoryFooter = $('.getting-started-footer');
1423
- if (this.editorInput.showTelemetryNotice && getTelemetryLevel(this.configurationService) !== TelemetryLevel.NONE && this.productService.enableTelemetry) {
1424
- this.buildTelemetryFooter(categoryFooter);
1425
- }
1426
- const stepsContainer = $('.getting-started-steps-container', {}, categoryHeader, slidesContainer, navigationContainer, categoryFooter);
1427
- this.detailsScrollbar = this._register(( new DomScrollableElement(stepsContainer, { className: 'steps-container' })));
1428
- const stepListComponent = this.detailsScrollbar.getDomNode();
1429
- reset(this.stepsContent, stepListComponent);
1430
- stepListComponent.tabIndex = 0;
1431
- stepListComponent.focus();
1432
- this.selectStepByIndex(0, this.currentWalkthrough.steps, 1);
1433
- this.detailsPageDisposables.add(addDisposableListener(stepListComponent, 'keydown', (e) => {
1434
- const event = ( new StandardKeyboardEvent(e));
1435
- if (event.keyCode === KeyCode.RightArrow) {
1436
- const currentIndex = this.getCurrentSlideIndex(allSlides);
1437
- if (currentIndex < allSlides.length - 1) {
1438
- this.selectStepByIndex(currentIndex + 1, ( allSlides.map(s => s.steps[0])), 1);
1439
- }
1440
- else {
1441
- this.scrollPrev();
1442
- }
1443
- }
1444
- else if (event.keyCode === KeyCode.LeftArrow) {
1445
- const currentIndex = this.getCurrentSlideIndex(allSlides);
1446
- if (currentIndex > 0) {
1447
- this.selectStepByIndex(currentIndex - 1, ( allSlides.map(s => s.steps[0])), -1);
1448
- }
1449
- }
1450
- else if (event.keyCode === KeyCode.UpArrow || event.keyCode === KeyCode.DownArrow) {
1451
- const currentIndex = this.getCurrentSlideIndex(allSlides);
1452
- if (currentIndex > 0) {
1453
- return;
1454
- }
1455
- this.navigateWithinMultiStepContainer(event.keyCode);
1456
- }
1457
- }));
1458
- this.registerDispatchListeners();
1459
- this.detailsScrollbar.scanDomNode();
1460
- this.detailsPageScrollbar?.scanDomNode();
1461
- }
1462
- navigateWithinMultiStepContainer(keyCode) {
1463
- const currentElement = this.container.querySelector(`.multi-step-container`);
1464
- if (!currentElement) {
1465
- return;
1466
- }
1467
- const currentSubStep = currentElement.querySelector('.sub-step.active');
1468
- const allElements = Array.from(this.container.querySelectorAll('.sub-step'));
1469
- const currentIndex = currentSubStep ? allElements.indexOf(currentSubStep) : -1;
1470
- let targetElement;
1471
- if (keyCode === KeyCode.UpArrow && currentIndex > 0) {
1472
- targetElement = allElements[currentIndex - 1];
1473
- }
1474
- else if (keyCode === KeyCode.DownArrow && currentIndex < allElements.length - 1) {
1475
- targetElement = allElements[currentIndex + 1];
1476
- }
1477
- if (targetElement) {
1478
- const stepId = targetElement.getAttribute('data-sub-step-id');
1479
- this.selectSubStep(stepId);
1480
- targetElement.focus();
1481
- }
1482
- }
1483
- selectSubStep(selectedStepId) {
1484
- this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'selectTask', argument: selectedStepId, walkthroughId: this.currentWalkthrough?.id });
1485
- if (this.editorInput.selectedStep === selectedStepId) {
1486
- return;
1487
- }
1488
- this.editorInput.selectedStep = selectedStepId;
1489
- const multiStepContainer = this.container.querySelector('.multi-step-container');
1490
- if (!multiStepContainer) {
1491
- return;
1492
- }
1493
- const subSteps = multiStepContainer.querySelectorAll('.sub-step');
1494
- subSteps.forEach(subStepEl => {
1495
- const stepId = subStepEl.getAttribute('data-sub-step-id');
1496
- if (stepId === selectedStepId) {
1497
- subStepEl.classList.add('active');
1498
- }
1499
- else {
1500
- subStepEl.classList.remove('active');
1501
- }
1502
- });
1503
- const prefixMatch = selectedStepId.match(/^([^.]+)\./);
1504
- const prefix = prefixMatch ? prefixMatch[1] : selectedStepId;
1505
- this.selectSlideWithPrefix(selectedStepId, prefix);
1506
- this.gettingStartedService.progressByEvent('stepSelected:' + selectedStepId);
1507
- }
1508
- selectSlideWithPrefix(stepId, prefix) {
1509
- this.editorInput.selectedStep = stepId;
1510
- const step = this.currentWalkthrough?.steps.find(step => step.id === stepId);
1511
- if (!step) {
1512
- return;
1513
- }
1514
- const selectedSlide = this.stepsContent.querySelector(`.step-slide[data-step="${prefix}"]`);
1515
- if (selectedSlide) {
1516
- const selectedSlideContent = selectedSlide.querySelector('.step-slide-content');
1517
- this.mediaDisposables.clear();
1518
- this.stepDisposables.clear();
1519
- this.buildMediaComponent(this.editorInput.selectedStep);
1520
- selectedSlideContent?.appendChild(this.stepMediaComponent);
1521
- setTimeout(() => selectedSlideContent.focus(), 0);
1522
- }
1523
- this.gettingStartedService.progressByEvent('stepSelected:' + stepId);
1524
- this.detailsPageScrollbar?.scanDomNode();
1525
- this.detailsScrollbar?.scanDomNode();
1526
- }
1527
- getCurrentSlideIndex(allSlides) {
1528
- if (!this.editorInput.selectedStep) {
1529
- return 0;
1530
- }
1531
- const directMatch = allSlides.findIndex(slide => slide.id === this.editorInput.selectedStep);
1532
- if (directMatch !== -1) {
1533
- return directMatch;
1534
- }
1535
- return allSlides.findIndex(slide => ( slide.steps.some(step => step.id === this.editorInput.selectedStep)));
1536
- }
1537
- selectSlide(stepId) {
1538
- this.editorInput.selectedStep = stepId;
1539
- const step = this.currentWalkthrough?.steps.find(step => step.id === stepId);
1540
- if (!step) {
1541
- return;
1542
- }
1543
- const effectiveStepId = stepId.match(/^([^.]+)\./)?.[1] ?? stepId;
1544
- const selectedSlide = this.stepsContent.querySelector(`.step-slide[data-step="${effectiveStepId}"]`);
1545
- if (selectedSlide) {
1546
- const selectedSlideContent = selectedSlide.querySelector('.step-slide-content');
1547
- this.mediaDisposables.clear();
1548
- this.stepDisposables.clear();
1549
- this.buildMediaComponent(this.editorInput.selectedStep);
1550
- selectedSlideContent?.appendChild(this.stepMediaComponent);
1551
- setTimeout(() => selectedSlideContent.focus(), 0);
1552
- }
1553
- this.gettingStartedService.progressByEvent('stepSelected:' + stepId);
1554
- this.detailsPageScrollbar?.scanDomNode();
1555
- this.detailsScrollbar?.scanDomNode();
1556
- }
1557
1172
  buildCategorySlide(categoryID, selectedStep) {
1558
- this.container.classList.remove('newSlide');
1559
1173
  if (this.detailsScrollbar) {
1560
1174
  this.detailsScrollbar.dispose();
1561
1175
  }
@@ -1564,8 +1178,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1564
1178
  });
1565
1179
  this.detailsPageDisposables.clear();
1566
1180
  this.mediaDisposables.clear();
1567
- const category = categoryID === NEW_WELCOME_EXPERIENCE ? this.gettingStartedService.getWalkthrough(categoryID) :
1568
- this.gettingStartedCategories.find(category => category.id === categoryID);
1181
+ const category = this.gettingStartedCategories.find(category => category.id === categoryID);
1569
1182
  if (!category) {
1570
1183
  throw Error('could not find category with ID ' + categoryID);
1571
1184
  }
@@ -1607,8 +1220,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1607
1220
  'role': 'checkbox',
1608
1221
  'aria-checked': step.done ? 'true' : 'false',
1609
1222
  'aria-label': step.done
1610
- ? ( localize(12311, "Checkbox for Step {0}: Completed", step.title))
1611
- : ( localize(12312, "Checkbox for Step {0}: Not completed", step.title)),
1223
+ ? ( localize(12529, "Checkbox for Step {0}: Completed", step.title))
1224
+ : ( localize(12530, "Checkbox for Step {0}: Not completed", step.title)),
1612
1225
  });
1613
1226
  const container = $('.step-description-container', { 'x-step-description-for': step.id });
1614
1227
  this.buildMarkdownDescription(container, step.description);
@@ -1616,10 +1229,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1616
1229
  reset(stepTitle, ...renderLabelWithIcons(step.title));
1617
1230
  const stepDescription = $('.step-container', {}, stepTitle, container);
1618
1231
  if (step.media.type === 'image') {
1619
- stepDescription.appendChild($('.image-description', { 'aria-label': ( localize(12343, "Image showing {0}", step.media.altText)) }));
1232
+ stepDescription.appendChild($('.image-description', { 'aria-label': ( localize(12555, "Image showing {0}", step.media.altText)) }));
1620
1233
  }
1621
1234
  else if (step.media.type === 'video') {
1622
- stepDescription.appendChild($('.video-description', { 'aria-label': ( localize(12344, "Video showing {0}", step.media.altText)) }));
1235
+ stepDescription.appendChild($('.video-description', { 'aria-label': ( localize(12556, "Video showing {0}", step.media.altText)) }));
1623
1236
  }
1624
1237
  return $('button.getting-started-step', {
1625
1238
  'x-dispatch': 'selectTask:' + step.id,
@@ -1639,8 +1252,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1639
1252
  }
1640
1253
  }));
1641
1254
  const showNextCategory = this.gettingStartedCategories.find(_category => _category.id === category.next);
1642
- 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(12345, "Mark Done"))), ...(showNextCategory
1643
- ? [$('button.button-link.next', { 'x-dispatch': 'nextSection' }, ( localize(12346, "Next Section")), $('span.codicon.codicon-arrow-right'))]
1255
+ 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(12557, "Mark Done"))), ...(showNextCategory
1256
+ ? [$('button.button-link.next', { 'x-dispatch': 'nextSection' }, ( localize(12558, "Next Section")), $('span.codicon.codicon-arrow-right'))]
1644
1257
  : [])));
1645
1258
  this.detailsScrollbar = this._register(( new DomScrollableElement(stepsContainer, { className: 'steps-container' })));
1646
1259
  const stepListComponent = this.detailsScrollbar.getDomNode();
@@ -1657,12 +1270,12 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1657
1270
  }
1658
1271
  buildTelemetryFooter(parent) {
1659
1272
  const mdRenderer = this.instantiationService.createInstance(MarkdownRenderer, {});
1660
- const privacyStatementCopy = ( localize(12347, "privacy statement"));
1273
+ const privacyStatementCopy = ( localize(12559, "privacy statement"));
1661
1274
  const privacyStatementButton = `[${privacyStatementCopy}](command:workbench.action.openPrivacyStatementUrl)`;
1662
- const optOutCopy = ( localize(12348, "opt out"));
1275
+ const optOutCopy = ( localize(12560, "opt out"));
1663
1276
  const optOutButton = `[${optOutCopy}](command:settings.filterByTelemetry)`;
1664
1277
  const text = ( localize(
1665
- 12349,
1278
+ 12561,
1666
1279
  "{0} collects usage data. Read our {1} and learn how to {2}.",
1667
1280
  this.productService.nameShort,
1668
1281
  privacyStatementButton,
@@ -1733,13 +1346,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
1733
1346
  slideManager.classList.remove('showCategories');
1734
1347
  const prevButton = this.container.querySelector('.prev-button.button-link');
1735
1348
  prevButton.style.display = this.editorInput.showWelcome || this.prevWalkthrough ? 'block' : 'none';
1736
- if (this.editorInput.selectedCategory === NEW_WELCOME_EXPERIENCE) {
1737
- prevButton.style.display = 'none';
1738
- }
1739
- else {
1740
- const moreTextElement = prevButton.querySelector('.moreText');
1741
- moreTextElement.textContent = firstLaunch ? ( localize(12350, "Welcome")) : ( localize(12317, "Go Back"));
1742
- }
1349
+ const moreTextElement = prevButton.querySelector('.moreText');
1350
+ moreTextElement.textContent = firstLaunch ? ( localize(12562, "Welcome")) : ( localize(12535, "Go Back"));
1743
1351
  this.container.querySelector('.gettingStartedSlideDetails').querySelectorAll('button').forEach(button => button.disabled = false);
1744
1352
  this.container.querySelector('.gettingStartedSlideCategories').querySelectorAll('button').forEach(button => button.disabled = true);
1745
1353
  this.container.querySelector('.gettingStartedSlideCategories').querySelectorAll('input').forEach(button => button.disabled = true);