@codingame/monaco-vscode-walkthrough-service-override 37.1.0 → 37.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +2 -2
- package/package.json +6 -3
- package/session.d.ts +1 -0
- package/session.js +3 -0
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.js +28 -28
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.js +73 -66
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedAccessibleView.js +6 -6
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js +7 -7
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.js +37 -37
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedIcons.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedList.js +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService._contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +34 -30
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.js +19 -17
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.js +151 -151
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/notebookProfile.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker.js +5 -5
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker_small.js +4 -4
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/editorWalkThrough.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThrough.contribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils.js +1 -1
|
@@ -23,7 +23,7 @@ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/th
|
|
|
23
23
|
import { assertReturnsDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
24
24
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
25
25
|
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
26
|
-
import * as gettingStarted from '@codingame/monaco-vscode-
|
|
26
|
+
import * as gettingStarted from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/media/gettingStarted.css';
|
|
27
27
|
import { ILanguageService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service';
|
|
28
28
|
import { IMarkdownRendererService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer.service';
|
|
29
29
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
@@ -61,7 +61,7 @@ import { IWebviewService } from '@codingame/monaco-vscode-api/vscode/vs/workbenc
|
|
|
61
61
|
import './gettingStartedColors.js';
|
|
62
62
|
import { GettingStartedDetailsRenderer } from './gettingStartedDetailsRenderer.js';
|
|
63
63
|
import { gettingStartedUncheckedCodicon, gettingStartedCheckedCodicon } from './gettingStartedIcons.js';
|
|
64
|
-
import { GettingStartedInput } from '@codingame/monaco-vscode-
|
|
64
|
+
import { GettingStartedInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput';
|
|
65
65
|
import { hiddenEntriesConfigurationKey, parseDescription } from './gettingStartedService.js';
|
|
66
66
|
import { IWalkthroughsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.service';
|
|
67
67
|
import { restoreWalkthroughsConfigurationKey } from './startupPage.js';
|
|
@@ -72,7 +72,7 @@ import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
72
72
|
import { IHostService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service';
|
|
73
73
|
import { IWorkbenchThemeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/themes/common/workbenchThemeService.service';
|
|
74
74
|
import { GettingStartedIndexList } from './gettingStartedList.js';
|
|
75
|
-
import { canShowAgentsBanner, createAgentsBanner } from '@codingame/monaco-vscode-
|
|
75
|
+
import { canShowAgentsBanner, createAgentsBanner } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsBanner';
|
|
76
76
|
import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
|
|
77
77
|
import { AccessibilityVerbositySettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
78
78
|
import { AccessibleViewAction } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibleViewActions';
|
|
@@ -80,12 +80,12 @@ import { KeybindingLabel } from '@codingame/monaco-vscode-api/vscode/vs/base/bro
|
|
|
80
80
|
import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
|
|
81
81
|
|
|
82
82
|
var GettingStartedPage_1;
|
|
83
|
-
registerCss(gettingStarted);
|
|
83
|
+
registerCss(gettingStarted, 1);
|
|
84
84
|
const SLIDE_TRANSITION_TIME_MS = 250;
|
|
85
85
|
const configurationKey = "workbench.startupEditor";
|
|
86
|
-
const allWalkthroughsHiddenContext =
|
|
87
|
-
const inWelcomeContext =
|
|
88
|
-
const parsedStartEntries =
|
|
86
|
+
const allWalkthroughsHiddenContext = new RawContextKey("allWalkthroughsHidden", false);
|
|
87
|
+
const inWelcomeContext = new RawContextKey("inWelcome", false);
|
|
88
|
+
const parsedStartEntries = startEntries.map((e, i) => ({
|
|
89
89
|
command: e.content.command,
|
|
90
90
|
description: e.description,
|
|
91
91
|
icon: {
|
|
@@ -96,7 +96,7 @@ const parsedStartEntries = ( startEntries.map((e, i) => ({
|
|
|
96
96
|
order: i,
|
|
97
97
|
title: e.title,
|
|
98
98
|
when: ContextKeyExpr.deserialize(e.when) ?? ContextKeyExpr.true()
|
|
99
|
-
}))
|
|
99
|
+
}));
|
|
100
100
|
const REDUCED_MOTION_KEY = "workbench.welcomePage.preferReducedMotion";
|
|
101
101
|
let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
102
102
|
static {
|
|
@@ -182,7 +182,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
182
182
|
this.container = $(".gettingStartedContainer", {
|
|
183
183
|
role: "document",
|
|
184
184
|
tabindex: 0,
|
|
185
|
-
"aria-label": ( localize(
|
|
185
|
+
"aria-label": ( localize(20933, "Overview of how to get up to speed with your editor."))
|
|
186
186
|
});
|
|
187
187
|
this.stepMediaComponent = $(".getting-started-media");
|
|
188
188
|
this.stepMediaComponent.id = generateUuid();
|
|
@@ -200,10 +200,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
200
200
|
const rerender = () => {
|
|
201
201
|
this.gettingStartedCategories = this.gettingStartedService.getWalkthroughs();
|
|
202
202
|
if (this.currentWalkthrough) {
|
|
203
|
-
const existingSteps =
|
|
203
|
+
const existingSteps = this.currentWalkthrough.steps.map(step => step.id);
|
|
204
204
|
const newCategory = this.gettingStartedCategories.find(category => this.currentWalkthrough?.id === category.id);
|
|
205
205
|
if (newCategory) {
|
|
206
|
-
const newSteps =
|
|
206
|
+
const newSteps = newCategory.steps.map(step => step.id);
|
|
207
207
|
if (!equals(newSteps, existingSteps)) {
|
|
208
208
|
this.buildSlideThrottle.queue(() => this.buildCategoriesSlide());
|
|
209
209
|
}
|
|
@@ -256,17 +256,17 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
256
256
|
badgeelement.parentElement?.setAttribute("aria-checked", "true");
|
|
257
257
|
badgeelement.classList.remove(...ThemeIcon.asClassNameArray(gettingStartedUncheckedCodicon));
|
|
258
258
|
badgeelement.classList.add("complete", ...ThemeIcon.asClassNameArray(gettingStartedCheckedCodicon));
|
|
259
|
-
badgeelement.setAttribute("aria-label", ( localize(
|
|
259
|
+
badgeelement.setAttribute("aria-label", ( localize(20934, "{0}: Completed", step.title)));
|
|
260
260
|
} else {
|
|
261
261
|
badgeelement.setAttribute("aria-checked", "false");
|
|
262
262
|
badgeelement.parentElement?.setAttribute("aria-checked", "false");
|
|
263
263
|
badgeelement.classList.remove("complete", ...ThemeIcon.asClassNameArray(gettingStartedCheckedCodicon));
|
|
264
264
|
badgeelement.classList.add(...ThemeIcon.asClassNameArray(gettingStartedUncheckedCodicon));
|
|
265
|
-
badgeelement.setAttribute("aria-label", ( localize(
|
|
265
|
+
badgeelement.setAttribute("aria-label", ( localize(20935, "{0}: Not completed", step.title)));
|
|
266
266
|
}
|
|
267
267
|
});
|
|
268
268
|
if (step.done) {
|
|
269
|
-
status(( localize(
|
|
269
|
+
status(( localize(20936, "Step {0} completed", step.title)));
|
|
270
270
|
}
|
|
271
271
|
}
|
|
272
272
|
this.updateCategoryProgress();
|
|
@@ -514,17 +514,20 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
514
514
|
}
|
|
515
515
|
}
|
|
516
516
|
async openWalkthroughSelector() {
|
|
517
|
-
const selection = await this.quickInputService.pick(
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
517
|
+
const selection = await this.quickInputService.pick(
|
|
518
|
+
this.gettingStartedCategories.filter(c => this.contextService.contextMatchesRules(c.when)).map(x => ({
|
|
519
|
+
id: x.id,
|
|
520
|
+
label: x.title,
|
|
521
|
+
detail: x.description,
|
|
522
|
+
description: x.source
|
|
523
|
+
})),
|
|
524
|
+
{
|
|
525
|
+
canPickMany: false,
|
|
526
|
+
matchOnDescription: true,
|
|
527
|
+
matchOnDetail: true,
|
|
528
|
+
title: ( localize(20937, "Open Walkthrough..."))
|
|
529
|
+
}
|
|
530
|
+
);
|
|
528
531
|
if (selection) {
|
|
529
532
|
this.runDispatchCommand("selectCategory", selection.id);
|
|
530
533
|
}
|
|
@@ -609,7 +612,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
609
612
|
mediaElement.setAttribute("alt", media.altText);
|
|
610
613
|
this.updateMediaSourceForColorMode(mediaElement, media.path);
|
|
611
614
|
this.stepDisposables.add(addDisposableListener(this.stepMediaComponent, "click", () => {
|
|
612
|
-
const hrefs =
|
|
615
|
+
const hrefs = stepToExpand.description.map(
|
|
616
|
+
lt => lt.nodes.filter(node => typeof node !== "string").map(node => node.href)
|
|
617
|
+
).flat();
|
|
613
618
|
if (hrefs.length === 1) {
|
|
614
619
|
const href = hrefs[0];
|
|
615
620
|
if (href.startsWith("http")) {
|
|
@@ -642,7 +647,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
642
647
|
}
|
|
643
648
|
}));
|
|
644
649
|
this.stepDisposables.add(addDisposableListener(this.stepMediaComponent, "click", () => {
|
|
645
|
-
const hrefs =
|
|
650
|
+
const hrefs = stepToExpand.description.map(
|
|
651
|
+
lt => lt.nodes.filter(node => typeof node !== "string").map(node => node.href)
|
|
652
|
+
).flat();
|
|
646
653
|
if (hrefs.length === 1) {
|
|
647
654
|
const href = hrefs[0];
|
|
648
655
|
if (href.startsWith("http")) {
|
|
@@ -683,7 +690,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
683
690
|
}
|
|
684
691
|
};
|
|
685
692
|
if (serializedContextKeyExprs) {
|
|
686
|
-
const contextKeyExprs = coalesce(
|
|
693
|
+
const contextKeyExprs = coalesce(serializedContextKeyExprs.map(expr => ContextKeyExpr.deserialize(expr)));
|
|
687
694
|
const watchingKeys = ( new Set(contextKeyExprs.flatMap(expr => ( expr.keys()))));
|
|
688
695
|
this.stepDisposables.add(this.contextService.onDidChangeContext(e => {
|
|
689
696
|
if (e.affectsSome(watchingKeys)) {
|
|
@@ -754,7 +761,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
754
761
|
const themeType = this.themeService.getColorTheme().type;
|
|
755
762
|
const videoPath = media.path[themeType];
|
|
756
763
|
const videoPoster = media.poster ? media.poster[themeType] : undefined;
|
|
757
|
-
const altText = media.altText ? media.altText : ( localize(
|
|
764
|
+
const altText = media.altText ? media.altText : ( localize(20938, "Video for {0}", stepToExpand.title));
|
|
758
765
|
const rawHTML = await this.detailsRenderer.renderVideo(videoPath, videoPoster, altText);
|
|
759
766
|
this.webview.setHtml(rawHTML);
|
|
760
767
|
let isDisposed = false;
|
|
@@ -786,8 +793,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
786
793
|
provideScreenReaderUpdate() {
|
|
787
794
|
if (this.configurationService.getValue(AccessibilityVerbositySettingId.Walkthrough)) {
|
|
788
795
|
const kbLabel = this.keybindingService.lookupKeybinding(AccessibleViewAction.id)?.getAriaLabel();
|
|
789
|
-
return kbLabel ? ( localize(
|
|
790
|
-
|
|
796
|
+
return kbLabel ? ( localize(20939, "Inspect this in the accessible view ({0}).\n", kbLabel)) : ( localize(
|
|
797
|
+
20940,
|
|
791
798
|
"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\n"
|
|
792
799
|
));
|
|
793
800
|
}
|
|
@@ -856,7 +863,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
856
863
|
this.categoriesSlide = $(".gettingStartedSlideCategories.gettingStartedSlide");
|
|
857
864
|
const prevButton = $("button.prev-button.button-link", {
|
|
858
865
|
"x-dispatch": "scrollPrev"
|
|
859
|
-
}, $("span.scroll-button.codicon.codicon-chevron-left"), $("span.moreText", {}, ( localize(
|
|
866
|
+
}, $("span.scroll-button.codicon.codicon-chevron-left"), $("span.moreText", {}, ( localize(20941, "Go Back"))));
|
|
860
867
|
this.stepsSlide = $(".gettingStartedSlideDetails.gettingStartedSlide", {}, prevButton);
|
|
861
868
|
this.stepsContent = $(".gettingStartedDetailsContent", {});
|
|
862
869
|
this.detailsPageScrollbar = this._register(( new DomScrollableElement(this.stepsContent, {
|
|
@@ -885,13 +892,13 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
885
892
|
icon: Codicon.check,
|
|
886
893
|
actionClassName: "getting-started-checkbox",
|
|
887
894
|
isChecked: this.configurationService.getValue(configurationKey) === "welcomePage",
|
|
888
|
-
title: ( localize(
|
|
895
|
+
title: ( localize(20942, "When checked, this page will be shown on startup.")),
|
|
889
896
|
...defaultToggleStyles
|
|
890
897
|
}));
|
|
891
898
|
showOnStartupCheckbox.domNode.id = "showOnStartup";
|
|
892
899
|
const showOnStartupLabel = $("label.caption", {
|
|
893
900
|
for: "showOnStartup"
|
|
894
|
-
}, ( localize(
|
|
901
|
+
}, ( localize(20943, "Show welcome page on startup")));
|
|
895
902
|
const onShowOnStartupChanged = () => {
|
|
896
903
|
if (showOnStartupCheckbox.checked) {
|
|
897
904
|
this.telemetryService.publicLog2("gettingStarted.ActionExecuted", {
|
|
@@ -921,7 +928,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
921
928
|
".header",
|
|
922
929
|
{},
|
|
923
930
|
$("h1.product-name.caption", {}, this.productService.nameLong),
|
|
924
|
-
$("p.subtitle.description", {}, ( localize(
|
|
931
|
+
$("p.subtitle.description", {}, ( localize(20944, "Editing evolved")))
|
|
925
932
|
);
|
|
926
933
|
const leftColumn = $(".categories-column.categories-column-left", {});
|
|
927
934
|
const rightColumn = $(".categories-column.categories-column-right", {});
|
|
@@ -1044,7 +1051,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1044
1051
|
const link = $("button.button-link");
|
|
1045
1052
|
link.innerText = name;
|
|
1046
1053
|
link.title = fullPath;
|
|
1047
|
-
link.setAttribute("aria-label", ( localize(
|
|
1054
|
+
link.setAttribute("aria-label", ( localize(20945, "Open folder {0} with path {1}", name, parentPath)));
|
|
1048
1055
|
link.addEventListener("click", e => {
|
|
1049
1056
|
this.telemetryService.publicLog2("gettingStarted.ActionExecuted", {
|
|
1050
1057
|
command: "openRecent",
|
|
@@ -1070,8 +1077,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1070
1077
|
{
|
|
1071
1078
|
"tabindex": 0,
|
|
1072
1079
|
"role": "button",
|
|
1073
|
-
"title": ( localize(
|
|
1074
|
-
"aria-label": ( localize(
|
|
1080
|
+
"title": ( localize(20946, "Remove from Recently Opened")),
|
|
1081
|
+
"aria-label": ( localize(20947, "Remove {0} from Recently Opened", name))
|
|
1075
1082
|
}
|
|
1076
1083
|
);
|
|
1077
1084
|
const handleDelete = async e => {
|
|
@@ -1090,20 +1097,20 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1090
1097
|
return li;
|
|
1091
1098
|
};
|
|
1092
1099
|
const recentlyOpenedList = this.recentlyOpenedList.value = ( new GettingStartedIndexList({
|
|
1093
|
-
title: ( localize(
|
|
1100
|
+
title: ( localize(20948, "Recent")),
|
|
1094
1101
|
klass: "recently-opened",
|
|
1095
1102
|
limit: 5,
|
|
1096
|
-
empty: $(".empty-recent", {}, ( localize(
|
|
1103
|
+
empty: $(".empty-recent", {}, ( localize(20949, "You have no recent folders,")), $("button.button-link", {
|
|
1097
1104
|
"x-dispatch": "openFolder"
|
|
1098
|
-
}, ( localize(
|
|
1105
|
+
}, ( localize(20950, "open a folder"))), ( localize(20951, "to start."))),
|
|
1099
1106
|
more: $(".more", {}, $("button.button-link", {
|
|
1100
1107
|
"x-dispatch": "showMoreRecents",
|
|
1101
1108
|
title: ( localize(
|
|
1102
|
-
|
|
1109
|
+
20952,
|
|
1103
1110
|
"Show All Recent Folders {0}",
|
|
1104
1111
|
this.getKeybindingLabel(OpenRecentAction.ID)
|
|
1105
1112
|
))
|
|
1106
|
-
}, ( localize(
|
|
1113
|
+
}, ( localize(20953, "More...")))),
|
|
1107
1114
|
renderElement: renderRecent,
|
|
1108
1115
|
contextService: this.contextService
|
|
1109
1116
|
}));
|
|
@@ -1123,12 +1130,12 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1123
1130
|
return recentlyOpenedList;
|
|
1124
1131
|
}
|
|
1125
1132
|
filterRecentlyOpened(workspaces) {
|
|
1126
|
-
return
|
|
1133
|
+
return workspaces.filter(
|
|
1127
1134
|
recent => !this.workspaceContextService.isCurrentWorkspace(isRecentWorkspace(recent) ? recent.workspace : recent.folderUri)
|
|
1128
1135
|
).map(recent => ({
|
|
1129
1136
|
...recent,
|
|
1130
1137
|
id: isRecentWorkspace(recent) ? recent.workspace.id : ( recent.folderUri.toString())
|
|
1131
|
-
}))
|
|
1138
|
+
}));
|
|
1132
1139
|
}
|
|
1133
1140
|
refreshRecentlyOpened() {
|
|
1134
1141
|
if (!this.recentlyOpenedList.value) {
|
|
@@ -1149,7 +1156,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1149
1156
|
title: entry.description + " " + this.getKeybindingLabel(entry.command)
|
|
1150
1157
|
}, this.iconWidgetFor(entry), $("span", {}, entry.title)));
|
|
1151
1158
|
const startList = this.startList.value = ( new GettingStartedIndexList({
|
|
1152
|
-
title: ( localize(
|
|
1159
|
+
title: ( localize(20954, "Start")),
|
|
1153
1160
|
klass: "start-container",
|
|
1154
1161
|
limit: 10,
|
|
1155
1162
|
renderElement: renderStartEntry,
|
|
@@ -1165,9 +1172,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1165
1172
|
const renderNewBadge = (category.newItems || category.newEntry) && !category.isFeatured;
|
|
1166
1173
|
const newBadge = $(".new-badge", {});
|
|
1167
1174
|
if (category.newEntry) {
|
|
1168
|
-
reset(newBadge, $(".new-category", {}, ( localize(
|
|
1175
|
+
reset(newBadge, $(".new-category", {}, ( localize(20955, "New"))));
|
|
1169
1176
|
} else if (category.newItems) {
|
|
1170
|
-
reset(newBadge, $(".new-items", {}, ( localize(
|
|
1177
|
+
reset(newBadge, $(".new-items", {}, ( localize(20956, "Updated"))));
|
|
1171
1178
|
}
|
|
1172
1179
|
const featuredBadge = $(".featured-badge", {});
|
|
1173
1180
|
const descriptionContent = $(".description-content", {});
|
|
@@ -1198,9 +1205,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1198
1205
|
$("a.codicon.codicon-close.hide-category-button", {
|
|
1199
1206
|
"tabindex": 0,
|
|
1200
1207
|
"x-dispatch": "hideCategory:" + category.id,
|
|
1201
|
-
"title": ( localize(
|
|
1208
|
+
"title": ( localize(20957, "Hide")),
|
|
1202
1209
|
"role": "button",
|
|
1203
|
-
"aria-label": ( localize(
|
|
1210
|
+
"aria-label": ( localize(20958, "Hide"))
|
|
1204
1211
|
})
|
|
1205
1212
|
),
|
|
1206
1213
|
descriptionContent,
|
|
@@ -1231,13 +1238,13 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1231
1238
|
return rank;
|
|
1232
1239
|
};
|
|
1233
1240
|
const gettingStartedList = this.gettingStartedList.value = ( new GettingStartedIndexList({
|
|
1234
|
-
title: ( localize(
|
|
1241
|
+
title: ( localize(20959, "Walkthroughs")),
|
|
1235
1242
|
klass: "getting-started",
|
|
1236
1243
|
limit: 5,
|
|
1237
1244
|
footer: $("span.button-link.see-all-walkthroughs", {
|
|
1238
1245
|
"x-dispatch": "seeAllWalkthroughs",
|
|
1239
1246
|
"tabindex": 0
|
|
1240
|
-
}, ( localize(
|
|
1247
|
+
}, ( localize(20953, "More..."))),
|
|
1241
1248
|
renderElement: renderGetttingStaredWalkthrough,
|
|
1242
1249
|
rankElement: rankWalkthrough,
|
|
1243
1250
|
contextService: this.contextService
|
|
@@ -1290,9 +1297,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1290
1297
|
bar.style.width = `${progress}%`;
|
|
1291
1298
|
element.parentElement.classList.toggle("no-progress", stats.stepsComplete === 0);
|
|
1292
1299
|
if (stats.stepsTotal === stats.stepsComplete) {
|
|
1293
|
-
bar.title = ( localize(
|
|
1300
|
+
bar.title = ( localize(20960, "All {0} steps complete!", stats.stepsComplete));
|
|
1294
1301
|
} else {
|
|
1295
|
-
bar.title = ( localize(
|
|
1302
|
+
bar.title = ( localize(20961, "{0} of {1} steps complete", stats.stepsComplete, stats.stepsTotal));
|
|
1296
1303
|
}
|
|
1297
1304
|
});
|
|
1298
1305
|
}
|
|
@@ -1443,7 +1450,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1443
1450
|
if (isCommand) {
|
|
1444
1451
|
const keybinding = this.getKeyBinding(command);
|
|
1445
1452
|
if (keybinding) {
|
|
1446
|
-
const shortcutMessage = $("span.shortcut-message", {}, ( localize(
|
|
1453
|
+
const shortcutMessage = $("span.shortcut-message", {}, ( localize(20962, "Tip: Use keyboard shortcut ")));
|
|
1447
1454
|
container.appendChild(shortcutMessage);
|
|
1448
1455
|
const label = ( new KeybindingLabel(shortcutMessage, OS, {
|
|
1449
1456
|
...defaultKeybindingLabelStyles
|
|
@@ -1541,7 +1548,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1541
1548
|
return;
|
|
1542
1549
|
}
|
|
1543
1550
|
renderedSteps = toRender;
|
|
1544
|
-
reset(stepListContainer, ...
|
|
1551
|
+
reset(stepListContainer, ...renderedSteps.map(step => {
|
|
1545
1552
|
const codicon = $(
|
|
1546
1553
|
".codicon" + (step.done ? ".complete" + ThemeIcon.asCSSSelector(gettingStartedCheckedCodicon) : ThemeIcon.asCSSSelector(gettingStartedUncheckedCodicon)),
|
|
1547
1554
|
{
|
|
@@ -1549,7 +1556,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1549
1556
|
"x-dispatch": "toggleStepCompletion:" + step.id,
|
|
1550
1557
|
"role": "checkbox",
|
|
1551
1558
|
"aria-checked": step.done ? "true" : "false",
|
|
1552
|
-
"aria-label": step.done ? ( localize(
|
|
1559
|
+
"aria-label": step.done ? ( localize(20934, "{0}: Completed", step.title)) : ( localize(20935, "{0}: Not completed", step.title))
|
|
1553
1560
|
}
|
|
1554
1561
|
);
|
|
1555
1562
|
const container = $(".step-description-container", {
|
|
@@ -1563,11 +1570,11 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1563
1570
|
const stepDescription = $(".step-container", {}, stepTitle, container);
|
|
1564
1571
|
if (step.media.type === "image") {
|
|
1565
1572
|
stepDescription.appendChild($(".image-description", {
|
|
1566
|
-
"aria-label": ( localize(
|
|
1573
|
+
"aria-label": ( localize(20963, "Image showing {0}", step.media.altText))
|
|
1567
1574
|
}));
|
|
1568
1575
|
} else if (step.media.type === "video") {
|
|
1569
1576
|
stepDescription.appendChild($(".video-description", {
|
|
1570
|
-
"aria-label": ( localize(
|
|
1577
|
+
"aria-label": ( localize(20964, "Video showing {0}", step.media.altText))
|
|
1571
1578
|
}));
|
|
1572
1579
|
}
|
|
1573
1580
|
return $("button.getting-started-step", {
|
|
@@ -1577,7 +1584,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1577
1584
|
"aria-checked": step.done ? "true" : "false",
|
|
1578
1585
|
"role": "button"
|
|
1579
1586
|
}, codicon, stepDescription);
|
|
1580
|
-
}))
|
|
1587
|
+
}));
|
|
1581
1588
|
};
|
|
1582
1589
|
buildStepList();
|
|
1583
1590
|
this.detailsPageDisposables.add(this.contextService.onDidChangeContext(e => {
|
|
@@ -1592,9 +1599,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1592
1599
|
"role": "list"
|
|
1593
1600
|
}, stepListContainer, $(".done-next-container", {}, $("button.button-link.all-done", {
|
|
1594
1601
|
"x-dispatch": "allDone"
|
|
1595
|
-
}, $("span.codicon.codicon-check-all"), ( localize(
|
|
1602
|
+
}, $("span.codicon.codicon-check-all"), ( localize(20965, "Mark Done"))), ...(showNextCategory ? [$("button.button-link.next", {
|
|
1596
1603
|
"x-dispatch": "nextSection"
|
|
1597
|
-
}, ( localize(
|
|
1604
|
+
}, ( localize(20966, "Next Section")), $("span.codicon.codicon-arrow-right"))] : [])));
|
|
1598
1605
|
this.detailsScrollbar.value = ( new DomScrollableElement(stepsContainer, {
|
|
1599
1606
|
className: "steps-container"
|
|
1600
1607
|
}));
|
|
@@ -1617,12 +1624,12 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1617
1624
|
this.registerDispatchListeners();
|
|
1618
1625
|
}
|
|
1619
1626
|
buildTelemetryFooter(parent) {
|
|
1620
|
-
const privacyStatementCopy = ( localize(
|
|
1627
|
+
const privacyStatementCopy = ( localize(20967, "privacy statement"));
|
|
1621
1628
|
const privacyStatementButton = `[${privacyStatementCopy}](command:workbench.action.openPrivacyStatementUrl)`;
|
|
1622
|
-
const optOutCopy = ( localize(
|
|
1629
|
+
const optOutCopy = ( localize(20968, "opt out"));
|
|
1623
1630
|
const optOutButton = `[${optOutCopy}](command:settings.filterByTelemetry)`;
|
|
1624
1631
|
const text = ( localize(
|
|
1625
|
-
|
|
1632
|
+
20969,
|
|
1626
1633
|
"{0} collects usage data. Read our {1} and learn how to {2}.",
|
|
1627
1634
|
this.productService.nameShort,
|
|
1628
1635
|
privacyStatementButton,
|
|
@@ -1697,7 +1704,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1697
1704
|
const prevButton = this.container.querySelector(".prev-button.button-link");
|
|
1698
1705
|
prevButton.style.display = this.editorInput?.showWelcome || this.editorInput?.returnToCommand || this.prevWalkthrough ? "block" : "none";
|
|
1699
1706
|
const moreTextElement = prevButton.querySelector(".moreText");
|
|
1700
|
-
moreTextElement.textContent = firstLaunch ? ( localize(
|
|
1707
|
+
moreTextElement.textContent = firstLaunch ? ( localize(20970, "Welcome")) : ( localize(20941, "Go Back"));
|
|
1701
1708
|
this.container.querySelector(".gettingStartedSlideDetails").querySelectorAll("button").forEach(button => button.disabled = false);
|
|
1702
1709
|
this.container.querySelector(".gettingStartedSlideCategories").querySelectorAll("button").forEach(button => button.disabled = true);
|
|
1703
1710
|
this.container.querySelector(".gettingStartedSlideCategories").querySelectorAll("input").forEach(button => button.disabled = true);
|
|
@@ -6,7 +6,7 @@ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/l
|
|
|
6
6
|
import { IWalkthroughsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.service';
|
|
7
7
|
import { AccessibilityVerbositySettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
8
8
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
9
|
-
import { GettingStartedInput } from '@codingame/monaco-vscode-
|
|
9
|
+
import { GettingStartedInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput';
|
|
10
10
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
11
11
|
import { Action } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
|
|
12
12
|
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
@@ -77,10 +77,10 @@ class GettingStartedAccessibleProvider extends Disposable {
|
|
|
77
77
|
get actions() {
|
|
78
78
|
const actions = [];
|
|
79
79
|
const step = this._activeWalkthroughSteps[this._currentStepIndex];
|
|
80
|
-
const nodes =
|
|
80
|
+
const nodes = step.description.map(lt => lt.nodes.filter(node => typeof node !== "string").map(node => ({
|
|
81
81
|
href: node.href,
|
|
82
82
|
label: node.label
|
|
83
|
-
})))
|
|
83
|
+
}))).flat();
|
|
84
84
|
if (nodes.length === 1) {
|
|
85
85
|
const node = nodes[0];
|
|
86
86
|
actions.push(( new Action(
|
|
@@ -129,10 +129,10 @@ class GettingStartedAccessibleProvider extends Disposable {
|
|
|
129
129
|
);
|
|
130
130
|
}
|
|
131
131
|
_getContent(waltkrough, step, includeTitle) {
|
|
132
|
-
const description =
|
|
133
|
-
const stepsContent = ( localize(
|
|
132
|
+
const description = step.description.map(lt => lt.nodes.filter(node => typeof node === "string")).join("\n");
|
|
133
|
+
const stepsContent = ( localize(20971, "{0}\n{1}", step.title, description));
|
|
134
134
|
if (includeTitle) {
|
|
135
|
-
return [( localize(
|
|
135
|
+
return [( localize(20972, "Title: {0}", waltkrough.title)), ( localize(20973, "Description: {0}", waltkrough.description)), stepsContent].join("\n");
|
|
136
136
|
} else {
|
|
137
137
|
return stepsContent;
|
|
138
138
|
}
|
package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js
CHANGED
|
@@ -12,30 +12,30 @@ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quic
|
|
|
12
12
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
|
|
13
13
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
14
14
|
|
|
15
|
-
registerColor("welcomePage.background", null, ( localize(
|
|
15
|
+
registerColor("welcomePage.background", null, ( localize(20974, "Background color for the Welcome page.")));
|
|
16
16
|
registerColor("welcomePage.tileBackground", {
|
|
17
17
|
dark: editorWidgetBackground,
|
|
18
18
|
light: editorWidgetBackground,
|
|
19
19
|
hcDark: "#000",
|
|
20
20
|
hcLight: editorWidgetBackground
|
|
21
|
-
}, ( localize(
|
|
21
|
+
}, ( localize(20975, "Background color for the tiles on the Welcome page.")));
|
|
22
22
|
registerColor("welcomePage.tileHoverBackground", {
|
|
23
23
|
dark: ( lighten(editorWidgetBackground, .2)),
|
|
24
24
|
light: ( darken(editorWidgetBackground, .1)),
|
|
25
25
|
hcDark: null,
|
|
26
26
|
hcLight: null
|
|
27
|
-
}, ( localize(
|
|
27
|
+
}, ( localize(20976, "Hover background color for the tiles on the Welcome.")));
|
|
28
28
|
registerColor("welcomePage.tileBorder", {
|
|
29
29
|
dark: "#ffffff1a",
|
|
30
30
|
light: "#0000001a",
|
|
31
31
|
hcDark: contrastBorder,
|
|
32
32
|
hcLight: contrastBorder
|
|
33
|
-
}, ( localize(
|
|
34
|
-
registerColor("welcomePage.progress.background", inputBackground, ( localize(
|
|
35
|
-
registerColor("welcomePage.progress.foreground", textLinkForeground, ( localize(
|
|
33
|
+
}, ( localize(20977, "Border color for the tiles on the Welcome page.")));
|
|
34
|
+
registerColor("welcomePage.progress.background", inputBackground, ( localize(20978, "Foreground color for the Welcome page progress bars.")));
|
|
35
|
+
registerColor("welcomePage.progress.foreground", textLinkForeground, ( localize(20979, "Background color for the Welcome page progress bars.")));
|
|
36
36
|
registerColor("walkthrough.stepTitle.foreground", {
|
|
37
37
|
light: "#000000",
|
|
38
38
|
dark: "#ffffff",
|
|
39
39
|
hcDark: null,
|
|
40
40
|
hcLight: null
|
|
41
|
-
}, ( localize(
|
|
41
|
+
}, ( localize(20980, "Foreground color of the heading of each walkthrough step")));
|