@codingame/monaco-vscode-walkthrough-service-override 37.2.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.
Files changed (23) hide show
  1. package/index.js +2 -2
  2. package/package.json +6 -2
  3. package/session.d.ts +1 -0
  4. package/session.js +3 -0
  5. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.js +25 -25
  6. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.js +70 -63
  7. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedAccessibleView.js +5 -5
  8. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js +7 -7
  9. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.js +37 -37
  10. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedIcons.js +2 -2
  11. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedList.js +1 -1
  12. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService._contribution.js +3 -3
  13. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +33 -29
  14. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.js +17 -15
  15. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.js +151 -151
  16. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/notebookProfile.js +3 -3
  17. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker.js +5 -5
  18. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker_small.js +4 -4
  19. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/editorWalkThrough.js +3 -3
  20. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThrough.contribution.js +2 -2
  21. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughInput.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.js +4 -4
  23. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils.js +1 -1
@@ -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(18831, "Background color for the Welcome page.")));
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(18832, "Background color for the tiles on the Welcome page.")));
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(18833, "Hover background color for the tiles on the Welcome.")));
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(18834, "Border color for the tiles on the Welcome page.")));
34
- registerColor("welcomePage.progress.background", inputBackground, ( localize(18835, "Foreground color for the Welcome page progress bars.")));
35
- registerColor("welcomePage.progress.foreground", textLinkForeground, ( localize(18836, "Background color for the Welcome page progress bars.")));
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(18837, "Foreground color of the heading of each walkthrough step")));
41
+ }, ( localize(20980, "Foreground color of the heading of each walkthrough step")));
@@ -2,12 +2,12 @@
2
2
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
3
3
  import { ExtensionsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
4
4
 
5
- const titleTranslated = ( localize(18838, "Title"));
5
+ const titleTranslated = ( localize(20981, "Title"));
6
6
  const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
7
7
  extensionPoint: "walkthroughs",
8
8
  jsonSchema: {
9
9
  description: ( localize(
10
- 18839,
10
+ 20982,
11
11
  "Contribute walkthroughs to help users getting started with your extension."
12
12
  )),
13
13
  type: "array",
@@ -25,27 +25,27 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
25
25
  properties: {
26
26
  id: {
27
27
  type: "string",
28
- description: ( localize(18840, "Unique identifier for this walkthrough."))
28
+ description: ( localize(20983, "Unique identifier for this walkthrough."))
29
29
  },
30
30
  title: {
31
31
  type: "string",
32
- description: ( localize(18841, "Title of walkthrough."))
32
+ description: ( localize(20984, "Title of walkthrough."))
33
33
  },
34
34
  icon: {
35
35
  type: "string",
36
36
  description: ( localize(
37
- 18842,
37
+ 20985,
38
38
  "Relative path to the icon of the walkthrough. The path is relative to the extension location. If not specified, the icon defaults to the extension icon if available."
39
39
  ))
40
40
  },
41
41
  description: {
42
42
  type: "string",
43
- description: ( localize(18843, "Description of walkthrough."))
43
+ description: ( localize(20986, "Description of walkthrough."))
44
44
  },
45
45
  featuredFor: {
46
46
  type: "array",
47
47
  description: ( localize(
48
- 18844,
48
+ 20987,
49
49
  "Walkthroughs that match one of these glob patterns appear as 'featured' in workspaces with the specified files. For example, a walkthrough for TypeScript projects might specify `tsconfig.json` here."
50
50
  )),
51
51
  items: {
@@ -55,13 +55,13 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
55
55
  when: {
56
56
  type: "string",
57
57
  description: ( localize(
58
- 18845,
58
+ 20988,
59
59
  "Context key expression to control the visibility of this walkthrough."
60
60
  ))
61
61
  },
62
62
  steps: {
63
63
  type: "array",
64
- description: ( localize(18846, "Steps to complete as part of this walkthrough.")),
64
+ description: ( localize(20989, "Steps to complete as part of this walkthrough.")),
65
65
  items: {
66
66
  type: "object",
67
67
  required: ["id", "title", "media"],
@@ -78,18 +78,18 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
78
78
  id: {
79
79
  type: "string",
80
80
  description: ( localize(
81
- 18847,
81
+ 20990,
82
82
  "Unique identifier for this step. This is used to keep track of which steps have been completed."
83
83
  ))
84
84
  },
85
85
  title: {
86
86
  type: "string",
87
- description: ( localize(18848, "Title of step."))
87
+ description: ( localize(20991, "Title of step."))
88
88
  },
89
89
  description: {
90
90
  type: "string",
91
91
  description: ( localize(
92
- 18849,
92
+ 20992,
93
93
  "Description of step. Supports ``preformatted``, __italic__, and **bold** text. Use markdown-style links for commands or external links: {0}, {1}, or {2}. Links on their own line will be rendered as buttons.",
94
94
  `[${titleTranslated}](command:myext.command)`,
95
95
  `[${titleTranslated}](command:toSide:myext.command)`,
@@ -98,7 +98,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
98
98
  },
99
99
  button: {
100
100
  deprecationMessage: ( localize(
101
- 18850,
101
+ 20993,
102
102
  "Deprecated. Use markdown links in the description instead, i.e. {0}, {1}, or {2}",
103
103
  `[${titleTranslated}](command:myext.command)`,
104
104
  `[${titleTranslated}](command:toSide:myext.command)`,
@@ -108,7 +108,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
108
108
  media: {
109
109
  type: "object",
110
110
  description: ( localize(
111
- 18851,
111
+ 20994,
112
112
  "Media to show alongside this step, either an image or markdown content."
113
113
  )),
114
114
  oneOf: [{
@@ -116,11 +116,11 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
116
116
  additionalProperties: false,
117
117
  properties: {
118
118
  path: {
119
- deprecationMessage: ( localize(18852, "Deprecated. Please use `image` or `markdown` instead"))
119
+ deprecationMessage: ( localize(20995, "Deprecated. Please use `image` or `markdown` instead"))
120
120
  },
121
121
  image: {
122
122
  description: ( localize(
123
- 18853,
123
+ 20996,
124
124
  "Path to an image - or object consisting of paths to light, dark, and hc images - relative to extension directory. Depending on context, the image will be displayed from 400px to 800px wide, with similar bounds on height. To support HIDPI displays, the image will be rendered at 1.5x scaling, for example a 900 physical pixels wide image will be displayed as 600 logical pixels wide."
125
125
  )),
126
126
  oneOf: [{
@@ -131,25 +131,25 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
131
131
  properties: {
132
132
  dark: {
133
133
  description: ( localize(
134
- 18854,
134
+ 20997,
135
135
  "Path to the image for dark themes, relative to extension directory."
136
136
  )),
137
137
  type: "string"
138
138
  },
139
139
  light: {
140
140
  description: ( localize(
141
- 18855,
141
+ 20998,
142
142
  "Path to the image for light themes, relative to extension directory."
143
143
  )),
144
144
  type: "string"
145
145
  },
146
146
  hc: {
147
- description: ( localize(18856, "Path to the image for hc themes, relative to extension directory.")),
147
+ description: ( localize(20999, "Path to the image for hc themes, relative to extension directory.")),
148
148
  type: "string"
149
149
  },
150
150
  hcLight: {
151
151
  description: ( localize(
152
- 18857,
152
+ 21000,
153
153
  "Path to the image for hc light themes, relative to extension directory."
154
154
  )),
155
155
  type: "string"
@@ -160,7 +160,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
160
160
  altText: {
161
161
  type: "string",
162
162
  description: ( localize(
163
- 18858,
163
+ 21001,
164
164
  "Alternate text to display when the image cannot be loaded or in screen readers."
165
165
  ))
166
166
  }
@@ -171,7 +171,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
171
171
  properties: {
172
172
  svg: {
173
173
  description: ( localize(
174
- 18859,
174
+ 21002,
175
175
  "Path to an svg, color tokens are supported in variables to support theming to match the workbench."
176
176
  )),
177
177
  type: "string"
@@ -179,7 +179,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
179
179
  altText: {
180
180
  type: "string",
181
181
  description: ( localize(
182
- 18858,
182
+ 21001,
183
183
  "Alternate text to display when the image cannot be loaded or in screen readers."
184
184
  ))
185
185
  }
@@ -189,10 +189,10 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
189
189
  additionalProperties: false,
190
190
  properties: {
191
191
  path: {
192
- deprecationMessage: ( localize(18852, "Deprecated. Please use `image` or `markdown` instead"))
192
+ deprecationMessage: ( localize(20995, "Deprecated. Please use `image` or `markdown` instead"))
193
193
  },
194
194
  markdown: {
195
- description: ( localize(18860, "Path to the markdown document, relative to extension directory.")),
195
+ description: ( localize(21003, "Path to the markdown document, relative to extension directory.")),
196
196
  type: "string"
197
197
  }
198
198
  }
@@ -200,7 +200,7 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
200
200
  },
201
201
  completionEvents: {
202
202
  description: ( localize(
203
- 18861,
203
+ 21004,
204
204
  "Events that should trigger this step to become checked off. If empty or not defined, the step will check off when any of the step's buttons or links are clicked; if the step has no buttons or links it will check on when it is selected."
205
205
  )),
206
206
  type: "array",
@@ -209,47 +209,47 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
209
209
  defaultSnippets: [{
210
210
  label: "onCommand",
211
211
  description: ( localize(
212
- 18862,
212
+ 21005,
213
213
  "Check off step when a given command is executed anywhere in VS Code."
214
214
  )),
215
215
  body: "onCommand:${1:commandId}"
216
216
  }, {
217
217
  label: "onLink",
218
218
  description: ( localize(
219
- 18863,
219
+ 21006,
220
220
  "Check off step when a given link is opened via a walkthrough step."
221
221
  )),
222
222
  body: "onLink:${2:linkId}"
223
223
  }, {
224
224
  label: "onView",
225
- description: ( localize(18864, "Check off step when a given view is opened")),
225
+ description: ( localize(21007, "Check off step when a given view is opened")),
226
226
  body: "onView:${2:viewId}"
227
227
  }, {
228
228
  label: "onSettingChanged",
229
- description: ( localize(18865, "Check off step when a given setting is changed")),
229
+ description: ( localize(21008, "Check off step when a given setting is changed")),
230
230
  body: "onSettingChanged:${2:settingName}"
231
231
  }, {
232
232
  label: "onContext",
233
- description: ( localize(18866, "Check off step when a context key expression is true.")),
233
+ description: ( localize(21009, "Check off step when a context key expression is true.")),
234
234
  body: "onContext:${2:key}"
235
235
  }, {
236
236
  label: "onExtensionInstalled",
237
237
  description: ( localize(
238
- 18867,
238
+ 21010,
239
239
  "Check off step when an extension with the given id is installed. If the extension is already installed, the step will start off checked."
240
240
  )),
241
241
  body: "onExtensionInstalled:${3:extensionId}"
242
242
  }, {
243
243
  label: "onStepSelected",
244
- description: ( localize(18868, "Check off step as soon as it is selected.")),
244
+ description: ( localize(21011, "Check off step as soon as it is selected.")),
245
245
  body: "onStepSelected"
246
246
  }]
247
247
  }
248
248
  },
249
249
  doneOn: {
250
- description: ( localize(18869, "Signal to mark step as complete.")),
250
+ description: ( localize(21012, "Signal to mark step as complete.")),
251
251
  deprecationMessage: ( localize(
252
- 18870,
252
+ 21013,
253
253
  "doneOn is deprecated. By default steps will be checked off when their buttons are clicked, to configure further use completionEvents"
254
254
  )),
255
255
  type: "object",
@@ -261,14 +261,14 @@ const walkthroughsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
261
261
  }],
262
262
  properties: {
263
263
  "command": {
264
- description: ( localize(18871, "Mark step done when the specified command is executed.")),
264
+ description: ( localize(21014, "Mark step done when the specified command is executed.")),
265
265
  type: "string"
266
266
  }
267
267
  }
268
268
  },
269
269
  when: {
270
270
  type: "string",
271
- description: ( localize(18872, "Context key expression to control the visibility of this step."))
271
+ description: ( localize(21015, "Context key expression to control the visibility of this step."))
272
272
  }
273
273
  }
274
274
  }
@@ -6,8 +6,8 @@ import { registerIcon } from '@codingame/monaco-vscode-api/vscode/vs/platform/th
6
6
  const gettingStartedUncheckedCodicon = registerIcon(
7
7
  "getting-started-step-unchecked",
8
8
  Codicon.circleLargeOutline,
9
- ( localize(18873, "Used to represent walkthrough steps which have not been completed"))
9
+ ( localize(21016, "Used to represent walkthrough steps which have not been completed"))
10
10
  );
11
- const gettingStartedCheckedCodicon = registerIcon("getting-started-step-checked", Codicon.passFilled, ( localize(18874, "Used to represent walkthrough steps which have been completed")));
11
+ const gettingStartedCheckedCodicon = registerIcon("getting-started-step-checked", Codicon.passFilled, ( localize(21017, "Used to represent walkthrough steps which have been completed")));
12
12
 
13
13
  export { gettingStartedCheckedCodicon, gettingStartedUncheckedCodicon };
@@ -68,7 +68,7 @@ class GettingStartedIndexList extends Disposable {
68
68
  }
69
69
  const activeEntries = entryList.filter(e => !e.when || this.contextService.contextMatchesRules(e.when));
70
70
  const limitedEntries = activeEntries.slice(0, this.options.limit);
71
- const toRender = ( limitedEntries.map(e => e.id));
71
+ const toRender = limitedEntries.map(e => e.id);
72
72
  if (this.entries === entries && equals(toRender, this.lastRendered)) {
73
73
  return;
74
74
  }
@@ -11,12 +11,12 @@ registerAction2(class extends Action2 {
11
11
  constructor() {
12
12
  super({
13
13
  id: "resetGettingStartedProgress",
14
- category: ( localize2(18877, "Developer")),
15
- title: ( localize2(18878, "Reset Welcome Page Walkthrough Progress")),
14
+ category: ( localize2(21020, "Developer")),
15
+ title: ( localize2(21021, "Reset Welcome Page Walkthrough Progress")),
16
16
  f1: true,
17
17
  metadata: {
18
18
  description: ( localize2(
19
- 18879,
19
+ 21022,
20
20
  "Reset the progress of all Walkthrough steps on the Welcome Page to make them appear as if they are being viewed for the first time, providing a fresh start to the getting started experience."
21
21
  ))
22
22
  }
@@ -37,10 +37,10 @@ import { extensionDefaultIcon } from '@codingame/monaco-vscode-api/vscode/vs/wor
37
37
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
38
38
  import { GettingStartedInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput';
39
39
 
40
- const HasMultipleNewFileEntries = ( new RawContextKey("hasMultipleNewFileEntries", false));
40
+ const HasMultipleNewFileEntries = new RawContextKey("hasMultipleNewFileEntries", false);
41
41
  const hiddenEntriesConfigurationKey = "workbench.welcomePage.hiddenCategories";
42
42
  const walkthroughMetadataConfigurationKey = "workbench.welcomePage.walkthroughMetadata";
43
- const BUILT_IN_SOURCE = ( localize(18880, "Built-In"));
43
+ const BUILT_IN_SOURCE = ( localize(21023, "Built-In"));
44
44
  const DAYS = 24 * 60 * 60 * 1000;
45
45
  const NEW_WALKTHROUGH_TIME = 7 * DAYS;
46
46
  let WalkthroughsService = class WalkthroughsService extends Disposable {
@@ -111,7 +111,7 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
111
111
  order: walkthroughs.length - index,
112
112
  source: BUILT_IN_SOURCE,
113
113
  when: ContextKeyExpr.deserialize(category.when) ?? ContextKeyExpr.true(),
114
- steps: ( category.content.steps.map((step, index) => {
114
+ steps: category.content.steps.map((step, index) => {
115
115
  return ({
116
116
  ...step,
117
117
  completionEvents: step.completionEvents ?? [],
@@ -148,7 +148,7 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
148
148
  poster: step.media.poster ? convertRelativeMediaPathsToWebviewURIs(( FileAccess.asFileUri("vs/workbench/contrib/welcomeGettingStarted/common/media/")), step.media.poster) : undefined
149
149
  }
150
150
  });
151
- }))
151
+ })
152
152
  });
153
153
  });
154
154
  walkthroughsExtensionPoint.setHandler((
@@ -158,6 +158,8 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
158
158
  removed
159
159
  }
160
160
  ) => {
161
+ added.map(e => this.registerExtensionWalkthroughContributions(e.description));
162
+ removed.map(e => this.unregisterExtensionWalkthroughContributions(e.description));
161
163
  });
162
164
  }
163
165
  initCompletionEventListeners() {
@@ -213,7 +215,7 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
213
215
  this.metadata.set(id, {
214
216
  ...prior,
215
217
  manaullyOpened: true,
216
- stepIDs: ( walkthrough.steps.map(s => s.id))
218
+ stepIDs: walkthrough.steps.map(s => s.id)
217
219
  });
218
220
  }
219
221
  this.storageService.store(
@@ -271,7 +273,7 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
271
273
  sectionToOpenIndex = index;
272
274
  }
273
275
  }
274
- const steps = ( (walkthrough.steps ?? []).map((step, index) => {
276
+ const steps = (walkthrough.steps ?? []).map((step, index) => {
275
277
  const description = parseDescription(step.description || "");
276
278
  const fullyQualifiedID = extension.identifier.value + "#" + walkthrough.id + "#" + step.id;
277
279
  let media;
@@ -328,10 +330,10 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
328
330
  category: categoryID,
329
331
  order: index
330
332
  });
331
- }));
333
+ });
332
334
  let isFeatured = false;
333
335
  if (walkthrough.featuredFor) {
334
- const folders = ( this.workspaceContextService.getWorkspace().folders.map(f => f.uri));
336
+ const folders = this.workspaceContextService.getWorkspace().folders.map(f => f.uri);
335
337
  const token = ( new CancellationTokenSource());
336
338
  setTimeout(() => token.cancel(), 2000);
337
339
  isFeatured = await this.instantiationService.invokeFunction(a => checkGlobFileExists(a, folders, walkthrough.featuredFor, token.token));
@@ -402,7 +404,7 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
402
404
  }
403
405
  getWalkthroughs() {
404
406
  const registeredCategories = [...( this.gettingStartedContributions.values())];
405
- const categoriesWithCompletion = ( ( registeredCategories.map(category => {
407
+ const categoriesWithCompletion = registeredCategories.map(category => {
406
408
  return {
407
409
  ...category,
408
410
  content: {
@@ -410,13 +412,13 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
410
412
  steps: category.steps
411
413
  }
412
414
  };
413
- })).filter(
415
+ }).filter(
414
416
  category => category.content.type !== "steps" || category.content.steps.length
415
- ).filter(category => category.id !== "NewWelcomeExperience").map(category => this.resolveWalkthrough(category)));
417
+ ).filter(category => category.id !== "NewWelcomeExperience").map(category => this.resolveWalkthrough(category));
416
418
  return categoriesWithCompletion;
417
419
  }
418
420
  resolveWalkthrough(category) {
419
- const stepsWithProgress = ( category.steps.map(step => this.getStepProgress(step)));
421
+ const stepsWithProgress = category.steps.map(step => this.getStepProgress(step));
420
422
  const hasOpened = this.metadata.get(category.id)?.manaullyOpened;
421
423
  const firstSeenDate = this.metadata.get(category.id)?.firstSeen;
422
424
  const isNew = firstSeenDate && firstSeenDate > (+( new Date()) - NEW_WALKTHROUGH_TIME);
@@ -425,7 +427,7 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
425
427
  if (!rawCategory) {
426
428
  throw Error("Could not find walkthrough with id " + category.id);
427
429
  }
428
- const currentStepIds = ( rawCategory.steps.map(s => s.id));
430
+ const currentStepIds = rawCategory.steps.map(s => s.id);
429
431
  const hasNewSteps = lastStepIDs && (currentStepIds.length !== lastStepIDs.length || ( currentStepIds.some((id, index) => id !== lastStepIDs[index])));
430
432
  let recencyBonus = 0;
431
433
  if (firstSeenDate) {
@@ -478,10 +480,10 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
478
480
  registerWalkthrough(walkthoughDescriptor) {
479
481
  this._registerWalkthrough({
480
482
  ...walkthoughDescriptor,
481
- steps: ( walkthoughDescriptor.steps.map(step => ({
483
+ steps: walkthoughDescriptor.steps.map(step => ({
482
484
  ...step,
483
485
  description: parseDescription(step.description)
484
- })))
486
+ }))
485
487
  });
486
488
  }
487
489
  _registerWalkthrough(walkthroughDescriptor) {
@@ -514,19 +516,21 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
514
516
  }
515
517
  if (!step.completionEvents.length) {
516
518
  step.completionEvents = coalesce(
517
- step.description.filter(linkedText => linkedText.nodes.length === 1).flatMap(linkedText => ( linkedText.nodes.filter((node => typeof node !== "string")).map((
518
- {
519
- href
520
- }
521
- ) => {
522
- if (href.startsWith("command:")) {
523
- return "onCommand:" + href.slice("command:".length, href.includes("?") ? href.indexOf("?") : undefined);
524
- }
525
- if (href.startsWith("https://") || href.startsWith("http://")) {
526
- return "onLink:" + href;
527
- }
528
- return undefined;
529
- }))));
519
+ step.description.filter(linkedText => linkedText.nodes.length === 1).flatMap(
520
+ linkedText => linkedText.nodes.filter((node => typeof node !== "string")).map((
521
+ {
522
+ href
523
+ }
524
+ ) => {
525
+ if (href.startsWith("command:")) {
526
+ return "onCommand:" + href.slice("command:".length, href.includes("?") ? href.indexOf("?") : undefined);
527
+ }
528
+ if (href.startsWith("https://") || href.startsWith("http://")) {
529
+ return "onLink:" + href;
530
+ }
531
+ return undefined;
532
+ })
533
+ ));
530
534
  }
531
535
  if (!step.completionEvents.length) {
532
536
  step.completionEvents.push("stepSelected");
@@ -596,7 +600,7 @@ let WalkthroughsService = class WalkthroughsService extends Disposable {
596
600
  }
597
601
  };
598
602
  WalkthroughsService = ( __decorate([( __param(0, IStorageService)), ( __param(1, ICommandService)), ( __param(2, IInstantiationService)), ( __param(3, IWorkspaceContextService)), ( __param(4, IContextKeyService)), ( __param(5, IUserDataSyncEnablementService)), ( __param(6, IConfigurationService)), ( __param(7, IExtensionManagementService)), ( __param(8, IHostService)), ( __param(9, IViewsService)), ( __param(10, ITelemetryService)), ( __param(11, IWorkbenchAssignmentService)), ( __param(12, IWorkbenchLayoutService)), ( __param(13, IEditorService))], WalkthroughsService));
599
- const parseDescription = desc => ( desc.split("\n").filter(x => x).map(text => parseLinkedText(text)));
603
+ const parseDescription = desc => desc.split("\n").filter(x => x).map(text => parseLinkedText(text));
600
604
  const convertInternalMediaPathToFileURI = path => path.startsWith("https://") ? ( URI.parse(path, true)) : ( FileAccess.asFileUri(`vs/workbench/contrib/welcomeGettingStarted/common/media/${path}`));
601
605
  const convertInternalMediaPathToBrowserURI = path => path.startsWith("https://") ? ( URI.parse(path, true)) : ( FileAccess.asBrowserUri(`vs/workbench/contrib/welcomeGettingStarted/common/media/${path}`));
602
606
  const convertInternalMediaPathsToBrowserURIs = path => {
@@ -50,7 +50,7 @@ let StartupPageEditorResolverContribution = class StartupPageEditorResolverContr
50
50
  this._register(
51
51
  editorResolverService.registerEditor(`${GettingStartedInput.RESOURCE.scheme}:/**`, {
52
52
  id: GettingStartedInput.ID,
53
- label: ( localize(18881, "Welcome Page")),
53
+ label: ( localize(21024, "Welcome Page")),
54
54
  priority: RegisteredEditorPriority.builtin
55
55
  }, {
56
56
  singlePerResource: true,
@@ -168,17 +168,19 @@ let StartupPageRunnerContribution = class StartupPageRunnerContribution extends
168
168
  return false;
169
169
  }
170
170
  async openReadme() {
171
- const readmes = coalesce(await Promise.all(( this.contextService.getWorkspace().folders.map(async folder => {
172
- const folderUri = folder.uri;
173
- const folderStat = await this.fileService.resolve(folderUri).catch(onUnexpectedError);
174
- const files = folderStat?.children ? ( folderStat.children.map(child => child.name)).sort() : [];
175
- const file = files.find(file => file.toLowerCase() === "readme.md") || files.find(file => file.toLowerCase().startsWith("readme"));
176
- if (file) {
177
- return joinPath(folderUri, file);
178
- } else {
179
- return undefined;
180
- }
181
- }))));
171
+ const readmes = coalesce(
172
+ await Promise.all(this.contextService.getWorkspace().folders.map(async folder => {
173
+ const folderUri = folder.uri;
174
+ const folderStat = await this.fileService.resolve(folderUri).catch(onUnexpectedError);
175
+ const files = folderStat?.children ? folderStat.children.map(child => child.name).sort() : [];
176
+ const file = files.find(file => file.toLowerCase() === "readme.md") || files.find(file => file.toLowerCase().startsWith("readme"));
177
+ if (file) {
178
+ return joinPath(folderUri, file);
179
+ } else {
180
+ return undefined;
181
+ }
182
+ }))
183
+ );
182
184
  if (!this.editorService.activeEditor) {
183
185
  if (readmes.length) {
184
186
  const isMarkDown = readme => readme.path.toLowerCase().endsWith(".md");
@@ -187,17 +189,17 @@ let StartupPageRunnerContribution = class StartupPageRunnerContribution extends
187
189
  locked: true
188
190
  }).catch(error => {
189
191
  this.notificationService.error(( localize(
190
- 18882,
192
+ 21025,
191
193
  "Could not open markdown preview: {0}.\n\nPlease make sure the markdown extension is enabled.",
192
194
  error.message
193
195
  )));
194
196
  }),
195
- this.editorService.openEditors(( readmes.filter(readme => !isMarkDown(readme)).map(readme => ({
197
+ this.editorService.openEditors(readmes.filter(readme => !isMarkDown(readme)).map(readme => ({
196
198
  resource: readme,
197
199
  options: {
198
200
  preserveFocus: this.shouldPreserveFocus()
199
201
  }
200
- }))))
202
+ })))
201
203
  ]);
202
204
  } else {
203
205
  await this.openGettingStarted();