@jupyterlab/shortcuts-extension 4.1.0-rc.0 → 4.1.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/lib/index.js CHANGED
@@ -13,13 +13,13 @@ import { DisposableSet } from '@lumino/disposable';
13
13
  import { Platform } from '@lumino/domutils';
14
14
  import { Menu } from '@lumino/widgets';
15
15
  import { renderShortCut } from './renderer';
16
+ const SHORTCUT_PLUGIN_ID = '@jupyterlab/shortcuts-extension:shortcuts';
16
17
  function getExternalForJupyterLab(settingRegistry, app, translator) {
17
18
  const { commands } = app;
18
- const shortcutPluginLocation = '@jupyterlab/shortcuts-extension:shortcuts';
19
19
  return {
20
20
  translator,
21
- getAllShortCutSettings: () => settingRegistry.load(shortcutPluginLocation, true),
22
- removeShortCut: (key) => settingRegistry.remove(shortcutPluginLocation, key),
21
+ getAllShortCutSettings: () => settingRegistry.load(SHORTCUT_PLUGIN_ID, true),
22
+ removeShortCut: (key) => settingRegistry.remove(SHORTCUT_PLUGIN_ID, key),
23
23
  createMenu: () => new Menu({ commands }),
24
24
  hasCommand: (id) => commands.hasCommand(id),
25
25
  addCommand: (id, options) => commands.addCommand(id, options),
@@ -56,7 +56,7 @@ function getExternalForJupyterLab(settingRegistry, app, translator) {
56
56
  * required, using the `'body'` selector is more appropriate.
57
57
  */
58
58
  const shortcuts = {
59
- id: '@jupyterlab/shortcuts-extension:shortcuts',
59
+ id: SHORTCUT_PLUGIN_ID,
60
60
  description: 'Adds the keyboard shortcuts editor.',
61
61
  requires: [ISettingRegistry],
62
62
  optional: [ITranslator, IFormRendererRegistry],
@@ -65,6 +65,9 @@ const shortcuts = {
65
65
  const trans = translator_.load('jupyterlab');
66
66
  const { commands } = app;
67
67
  let canonical;
68
+ // Stores initial value of the shortcuts `default` value,
69
+ // which reflects the `overrides.json` contents.
70
+ let cannonicalOverrides;
68
71
  let loaded = {};
69
72
  if (editorRegistry) {
70
73
  const component = {
@@ -82,6 +85,9 @@ const shortcuts = {
82
85
  */
83
86
  function populate(schema) {
84
87
  const commands = app.commands.listCommands().join('\n');
88
+ if (!cannonicalOverrides) {
89
+ cannonicalOverrides = JSONExt.deepCopy(schema.properties.shortcuts.default);
90
+ }
85
91
  loaded = {};
86
92
  schema.properties.shortcuts.default = Object.keys(registry.plugins)
87
93
  .map(plugin => {
@@ -89,7 +95,7 @@ const shortcuts = {
89
95
  loaded[plugin] = shortcuts;
90
96
  return shortcuts;
91
97
  })
92
- .concat([schema.properties.shortcuts.default])
98
+ .concat([cannonicalOverrides])
93
99
  .reduce((acc, val) => {
94
100
  if (Platform.IS_MAC) {
95
101
  return acc.concat(val);
@@ -131,7 +137,7 @@ List of keyboard shortcuts:`, commands);
131
137
  // Empty the default values to avoid shortcut collisions.
132
138
  canonical = null;
133
139
  const schema = registry.plugins[shortcuts.id].schema;
134
- schema.properties.shortcuts.default = [];
140
+ schema.properties.shortcuts.default = cannonicalOverrides;
135
141
  // Reload the settings.
136
142
  await registry.load(shortcuts.id, true);
137
143
  }
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/shortcuts-extension",
3
- "version": "4.1.0-rc.0",
3
+ "version": "4.1.0",
4
4
  "description": "JupyterLab - Shortcuts Extension",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -41,10 +41,10 @@
41
41
  "watch": "tsc -b --watch"
42
42
  },
43
43
  "dependencies": {
44
- "@jupyterlab/application": "^4.1.0-rc.0",
45
- "@jupyterlab/settingregistry": "^4.1.0-rc.0",
46
- "@jupyterlab/translation": "^4.1.0-rc.0",
47
- "@jupyterlab/ui-components": "^4.1.0-rc.0",
44
+ "@jupyterlab/application": "^4.1.0",
45
+ "@jupyterlab/settingregistry": "^4.1.0",
46
+ "@jupyterlab/translation": "^4.1.0",
47
+ "@jupyterlab/ui-components": "^4.1.0",
48
48
  "@lumino/algorithm": "^2.0.1",
49
49
  "@lumino/commands": "^2.2.0",
50
50
  "@lumino/coreutils": "^2.1.2",
@@ -55,8 +55,9 @@
55
55
  "react": "^18.2.0"
56
56
  },
57
57
  "devDependencies": {
58
- "@jupyterlab/testing": "^4.1.0-rc.0",
58
+ "@jupyterlab/testing": "^4.1.0",
59
59
  "@types/jest": "^29.2.0",
60
+ "jest": "^29.2.0",
60
61
  "rimraf": "~5.0.5",
61
62
  "typedoc": "~0.24.7",
62
63
  "typescript": "~5.1.6"
package/src/index.ts CHANGED
@@ -18,6 +18,7 @@ import {
18
18
  import { CommandRegistry } from '@lumino/commands';
19
19
  import {
20
20
  JSONExt,
21
+ PartialJSONValue,
21
22
  ReadonlyPartialJSONObject,
22
23
  ReadonlyPartialJSONValue
23
24
  } from '@lumino/coreutils';
@@ -27,19 +28,20 @@ import { Menu } from '@lumino/widgets';
27
28
  import { IShortcutUIexternal } from './components';
28
29
  import { renderShortCut } from './renderer';
29
30
 
31
+ const SHORTCUT_PLUGIN_ID = '@jupyterlab/shortcuts-extension:shortcuts';
32
+
30
33
  function getExternalForJupyterLab(
31
34
  settingRegistry: ISettingRegistry,
32
35
  app: JupyterFrontEnd,
33
36
  translator: ITranslator
34
37
  ): IShortcutUIexternal {
35
38
  const { commands } = app;
36
- const shortcutPluginLocation = '@jupyterlab/shortcuts-extension:shortcuts';
37
39
  return {
38
40
  translator,
39
41
  getAllShortCutSettings: () =>
40
- settingRegistry.load(shortcutPluginLocation, true),
42
+ settingRegistry.load(SHORTCUT_PLUGIN_ID, true),
41
43
  removeShortCut: (key: string) =>
42
- settingRegistry.remove(shortcutPluginLocation, key),
44
+ settingRegistry.remove(SHORTCUT_PLUGIN_ID, key),
43
45
  createMenu: () => new Menu({ commands }),
44
46
  hasCommand: (id: string) => commands.hasCommand(id),
45
47
  addCommand: (id: string, options: CommandRegistry.ICommandOptions) =>
@@ -78,7 +80,7 @@ function getExternalForJupyterLab(
78
80
  * required, using the `'body'` selector is more appropriate.
79
81
  */
80
82
  const shortcuts: JupyterFrontEndPlugin<void> = {
81
- id: '@jupyterlab/shortcuts-extension:shortcuts',
83
+ id: SHORTCUT_PLUGIN_ID,
82
84
  description: 'Adds the keyboard shortcuts editor.',
83
85
  requires: [ISettingRegistry],
84
86
  optional: [ITranslator, IFormRendererRegistry],
@@ -92,6 +94,9 @@ const shortcuts: JupyterFrontEndPlugin<void> = {
92
94
  const trans = translator_.load('jupyterlab');
93
95
  const { commands } = app;
94
96
  let canonical: ISettingRegistry.ISchema | null;
97
+ // Stores initial value of the shortcuts `default` value,
98
+ // which reflects the `overrides.json` contents.
99
+ let cannonicalOverrides: PartialJSONValue | undefined;
95
100
  let loaded: { [name: string]: ISettingRegistry.IShortcut[] } = {};
96
101
 
97
102
  if (editorRegistry) {
@@ -111,7 +116,11 @@ const shortcuts: JupyterFrontEndPlugin<void> = {
111
116
  */
112
117
  function populate(schema: ISettingRegistry.ISchema) {
113
118
  const commands = app.commands.listCommands().join('\n');
114
-
119
+ if (!cannonicalOverrides) {
120
+ cannonicalOverrides = JSONExt.deepCopy(
121
+ schema.properties!.shortcuts.default!
122
+ );
123
+ }
115
124
  loaded = {};
116
125
  schema.properties!.shortcuts.default = Object.keys(registry.plugins)
117
126
  .map(plugin => {
@@ -120,7 +129,7 @@ const shortcuts: JupyterFrontEndPlugin<void> = {
120
129
  loaded[plugin] = shortcuts;
121
130
  return shortcuts;
122
131
  })
123
- .concat([schema.properties!.shortcuts.default as any[]])
132
+ .concat([cannonicalOverrides as any[]])
124
133
  .reduce((acc, val) => {
125
134
  if (Platform.IS_MAC) {
126
135
  return acc.concat(val);
@@ -174,7 +183,7 @@ List of keyboard shortcuts:`,
174
183
  // Empty the default values to avoid shortcut collisions.
175
184
  canonical = null;
176
185
  const schema = registry.plugins[shortcuts.id]!.schema;
177
- schema.properties!.shortcuts.default = [];
186
+ schema.properties!.shortcuts.default = cannonicalOverrides;
178
187
 
179
188
  // Reload the settings.
180
189
  await registry.load(shortcuts.id, true);