@jupyterlab/settingeditor 4.0.0-alpha.2 → 4.0.0-alpha.20

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 (47) hide show
  1. package/lib/SettingsFormEditor.d.ts +101 -0
  2. package/lib/SettingsFormEditor.js +151 -0
  3. package/lib/SettingsFormEditor.js.map +1 -0
  4. package/lib/index.d.ts +2 -1
  5. package/lib/index.js +2 -1
  6. package/lib/index.js.map +1 -1
  7. package/lib/inspector.js +24 -30
  8. package/lib/inspector.js.map +1 -1
  9. package/lib/{settingeditor.d.ts → jsonsettingeditor.d.ts} +5 -6
  10. package/lib/{settingeditor.js → jsonsettingeditor.js} +25 -43
  11. package/lib/jsonsettingeditor.js.map +1 -0
  12. package/lib/plugineditor.d.ts +3 -3
  13. package/lib/plugineditor.js +2 -6
  14. package/lib/plugineditor.js.map +1 -1
  15. package/lib/pluginlist.d.ts +58 -22
  16. package/lib/pluginlist.js +246 -109
  17. package/lib/pluginlist.js.map +1 -1
  18. package/lib/raweditor.d.ts +2 -6
  19. package/lib/raweditor.js +22 -33
  20. package/lib/raweditor.js.map +1 -1
  21. package/lib/settingseditor.d.ts +81 -0
  22. package/lib/settingseditor.js +121 -0
  23. package/lib/settingseditor.js.map +1 -0
  24. package/lib/settingspanel.d.ts +54 -0
  25. package/lib/settingspanel.js +102 -0
  26. package/lib/settingspanel.js.map +1 -0
  27. package/lib/tokens.d.ts +12 -2
  28. package/lib/tokens.js +4 -1
  29. package/lib/tokens.js.map +1 -1
  30. package/package.json +28 -21
  31. package/src/SettingsFormEditor.tsx +306 -0
  32. package/src/index.ts +10 -0
  33. package/src/inspector.ts +144 -0
  34. package/src/jsonsettingeditor.tsx +482 -0
  35. package/src/plugineditor.ts +257 -0
  36. package/src/pluginlist.tsx +538 -0
  37. package/src/raweditor.ts +422 -0
  38. package/src/settingseditor.tsx +210 -0
  39. package/src/settingspanel.tsx +218 -0
  40. package/src/tokens.ts +33 -0
  41. package/style/base.css +213 -89
  42. package/style/index.css +1 -0
  43. package/style/index.js +1 -0
  44. package/lib/settingeditor.js.map +0 -1
  45. package/lib/splitpanel.d.ts +0 -13
  46. package/lib/splitpanel.js +0 -26
  47. package/lib/splitpanel.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
  | Copyright (c) Jupyter Development Team.
3
3
  | Distributed under the terms of the Modified BSD License.
4
4
  |----------------------------------------------------------------------------*/
5
- import { Dialog, showDialog } from '@jupyterlab/apputils';
5
+ import { Dialog, showDialog, showErrorMessage } from '@jupyterlab/apputils';
6
6
  import { nullTranslator } from '@jupyterlab/translation';
7
7
  import { JSONExt } from '@lumino/coreutils';
8
8
  import { Signal } from '@lumino/signaling';
@@ -155,11 +155,7 @@ var Private;
155
155
  translator = translator || nullTranslator;
156
156
  const trans = translator.load('jupyterlab');
157
157
  console.error(`Saving setting editor value failed: ${reason.message}`);
158
- void showDialog({
159
- title: trans.__('Your changes were not saved.'),
160
- body: reason.message,
161
- buttons: [Dialog.okButton({ label: trans.__('Ok') })]
162
- });
158
+ void showErrorMessage(trans.__('Your changes were not saved.'), reason);
163
159
  }
164
160
  Private.onSaveError = onSaveError;
165
161
  })(Private || (Private = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"plugineditor.js","sourceRoot":"","sources":["../src/plugineditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugineditor.js","sourceRoot":"","sources":["../src/plugineditor.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
+ import { ReactWidget } from '@jupyterlab/apputils';
1
2
  import { ISettingRegistry } from '@jupyterlab/settingregistry';
2
3
  import { ITranslator } from '@jupyterlab/translation';
4
+ import { IScore } from '@jupyterlab/ui-components';
3
5
  import { Message } from '@lumino/messaging';
4
6
  import { ISignal } from '@lumino/signaling';
5
- import { Widget } from '@lumino/widgets';
6
7
  /**
7
8
  * A list of plugins with editable settings.
8
9
  */
9
- export declare class PluginList extends Widget {
10
+ export declare class PluginList extends ReactWidget {
10
11
  /**
11
12
  * Create a new plugin list.
12
13
  */
@@ -23,30 +24,18 @@ export declare class PluginList extends Widget {
23
24
  * The selection value of the plugin list.
24
25
  */
25
26
  get scrollTop(): number | undefined;
27
+ get hasErrors(): boolean;
28
+ get filter(): (item: ISettingRegistry.IPlugin) => string[] | null;
26
29
  /**
27
30
  * The selection value of the plugin list.
28
31
  */
29
32
  get selection(): string;
30
33
  set selection(selection: string);
31
34
  /**
32
- * Handle the DOM events for the widget.
33
- *
34
- * @param event - The DOM event sent to the widget.
35
- *
36
- * #### Notes
37
- * This method implements the DOM `EventListener` interface and is
38
- * called in response to events on the plugin list's node. It should
39
- * not be called directly by user code.
35
+ * Signal that fires when search filter is updated so that settings panel can filter results.
40
36
  */
41
- handleEvent(event: Event): void;
42
- /**
43
- * Handle `'after-attach'` messages.
44
- */
45
- protected onAfterAttach(msg: Message): void;
46
- /**
47
- * Handle `before-detach` messages for the widget.
48
- */
49
- protected onBeforeDetach(msg: Message): void;
37
+ get updateFilterSignal(): ISignal<this, (plugin: ISettingRegistry.IPlugin) => string[] | null>;
38
+ get handleSelectSignal(): ISignal<this, string>;
50
39
  /**
51
40
  * Handle `'update-request'` messages.
52
41
  */
@@ -57,9 +46,44 @@ export declare class PluginList extends Widget {
57
46
  * @param event - The DOM event sent to the widget
58
47
  */
59
48
  private _evtMousedown;
49
+ /**
50
+ * Check the plugin for a rendering hint's value.
51
+ *
52
+ * #### Notes
53
+ * The order of priority for overridden hints is as follows, from most
54
+ * important to least:
55
+ * 1. Data set by the end user in a settings file.
56
+ * 2. Data set by the plugin author as a schema default.
57
+ * 3. Data set by the plugin author as a top-level key of the schema.
58
+ */
59
+ getHint(key: string, registry: ISettingRegistry, plugin: ISettingRegistry.IPlugin): string;
60
+ /**
61
+ * Function to recursively filter properties that match search results.
62
+ * @param filter - Function to filter based on search results
63
+ * @param props - Schema properties being filtered
64
+ * @param definitions - Definitions to use for filling in references in properties
65
+ * @param ref - Reference to a definition
66
+ * @returns - String array of properties that match the search results.
67
+ */
68
+ getFilterString(filter: (item: string) => Partial<IScore> | null, props: ISettingRegistry.IProperty, definitions?: any, ref?: string): string[];
69
+ /**
70
+ * Updates the filter when the search bar value changes.
71
+ * @param filter Filter function passed by search bar based on search value.
72
+ */
73
+ setFilter(filter: (item: string) => Partial<IScore> | null, query?: string): void;
74
+ setError(id: string, error: boolean): void;
75
+ mapPlugins(plugin: ISettingRegistry.IPlugin): JSX.Element;
76
+ render(): JSX.Element;
60
77
  protected translator: ITranslator;
61
78
  private _changed;
62
- private _confirm;
79
+ private _errors;
80
+ private _filter;
81
+ private _query;
82
+ private _handleSelectSignal;
83
+ private _updateFilterSignal;
84
+ private _allPlugins;
85
+ private _settings;
86
+ private _confirm?;
63
87
  private _scrollTop;
64
88
  private _selection;
65
89
  }
@@ -74,19 +98,31 @@ export declare namespace PluginList {
74
98
  /**
75
99
  * A function that allows for asynchronously confirming a selection.
76
100
  *
77
- * #### Notest
101
+ * #### Notes
78
102
  * If the promise returned by the function resolves, then the selection will
79
103
  * succeed and emit an event. If the promise rejects, the selection is not
80
104
  * made.
81
105
  */
82
- confirm: () => Promise<void>;
106
+ confirm?: (id: string) => Promise<void>;
83
107
  /**
84
108
  * The setting registry for the plugin list.
85
109
  */
86
110
  registry: ISettingRegistry;
111
+ /**
112
+ * List of plugins to skip
113
+ */
114
+ toSkip?: string[];
87
115
  /**
88
116
  * The setting registry for the plugin list.
89
117
  */
90
118
  translator?: ITranslator;
119
+ /**
120
+ * An optional initial query so the plugin list can filter on start.
121
+ */
122
+ query?: string;
91
123
  }
124
+ /**
125
+ * Sort a list of plugins by title and ID.
126
+ */
127
+ function sortPlugins(registry: ISettingRegistry): ISettingRegistry.IPlugin[];
92
128
  }
package/lib/pluginlist.js CHANGED
@@ -2,22 +2,42 @@
2
2
  | Copyright (c) Jupyter Development Team.
3
3
  | Distributed under the terms of the Modified BSD License.
4
4
  |----------------------------------------------------------------------------*/
5
+ import { ReactWidget } from '@jupyterlab/apputils';
5
6
  import { nullTranslator } from '@jupyterlab/translation';
6
- import { classes, LabIcon, settingsIcon } from '@jupyterlab/ui-components';
7
+ import { classes, FilterBox, LabIcon, settingsIcon, updateFilterFunction } from '@jupyterlab/ui-components';
8
+ import { StringExt } from '@lumino/algorithm';
7
9
  import { Signal } from '@lumino/signaling';
8
- import { Widget } from '@lumino/widgets';
9
- import * as React from 'react';
10
- import * as ReactDOM from 'react-dom';
10
+ import React from 'react';
11
+ /**
12
+ * The JupyterLab plugin schema key for the setting editor
13
+ * icon class of a plugin.
14
+ */
15
+ const ICON_KEY = 'jupyter.lab.setting-icon';
16
+ /**
17
+ * The JupyterLab plugin schema key for the setting editor
18
+ * icon class of a plugin.
19
+ */
20
+ const ICON_CLASS_KEY = 'jupyter.lab.setting-icon-class';
21
+ /**
22
+ * The JupyterLab plugin schema key for the setting editor
23
+ * icon label of a plugin.
24
+ */
25
+ const ICON_LABEL_KEY = 'jupyter.lab.setting-icon-label';
11
26
  /**
12
27
  * A list of plugins with editable settings.
13
28
  */
14
- export class PluginList extends Widget {
29
+ export class PluginList extends ReactWidget {
15
30
  /**
16
31
  * Create a new plugin list.
17
32
  */
18
33
  constructor(options) {
34
+ var _a;
19
35
  super();
20
36
  this._changed = new Signal(this);
37
+ this._handleSelectSignal = new Signal(this);
38
+ this._updateFilterSignal = new Signal(this);
39
+ this._allPlugins = [];
40
+ this._settings = {};
21
41
  this._scrollTop = 0;
22
42
  this._selection = '';
23
43
  this.registry = options.registry;
@@ -27,6 +47,39 @@ export class PluginList extends Widget {
27
47
  this.registry.pluginChanged.connect(() => {
28
48
  this.update();
29
49
  }, this);
50
+ this.mapPlugins = this.mapPlugins.bind(this);
51
+ this.setFilter = this.setFilter.bind(this);
52
+ this.setFilter(updateFilterFunction((_a = options.query) !== null && _a !== void 0 ? _a : '', false, false));
53
+ this.setError = this.setError.bind(this);
54
+ this._evtMousedown = this._evtMousedown.bind(this);
55
+ this._query = options.query;
56
+ this._allPlugins = PluginList.sortPlugins(this.registry).filter(plugin => {
57
+ var _a;
58
+ const { schema } = plugin;
59
+ const deprecated = schema['jupyter.lab.setting-deprecated'] === true;
60
+ const editable = Object.keys(schema.properties || {}).length > 0;
61
+ const extensible = schema.additionalProperties !== false;
62
+ // Filters out a couple of plugins that take too long to load in the new settings editor.
63
+ const correctEditor =
64
+ // If this is the json settings editor, anything is fine
65
+ this._confirm ||
66
+ // If this is the new settings editor, remove context menu / main menu settings.
67
+ (!this._confirm && !((_a = options.toSkip) !== null && _a !== void 0 ? _a : []).includes(plugin.id));
68
+ return !deprecated && correctEditor && (editable || extensible);
69
+ });
70
+ /**
71
+ * Loads all settings and stores them for easy access when displaying search results.
72
+ */
73
+ const loadSettings = async () => {
74
+ for (const plugin of this._allPlugins) {
75
+ const pluginSettings = (await this.registry.load(plugin.id));
76
+ this._settings[plugin.id] = pluginSettings;
77
+ }
78
+ this.update();
79
+ };
80
+ void loadSettings();
81
+ this._errors = {};
82
+ this.selection = this._allPlugins[0].id;
30
83
  }
31
84
  /**
32
85
  * A signal emitted when a list user interaction happens.
@@ -41,6 +94,17 @@ export class PluginList extends Widget {
41
94
  var _a;
42
95
  return (_a = this.node.querySelector('ul')) === null || _a === void 0 ? void 0 : _a.scrollTop;
43
96
  }
97
+ get hasErrors() {
98
+ for (const id in this._errors) {
99
+ if (this._errors[id]) {
100
+ return true;
101
+ }
102
+ }
103
+ return false;
104
+ }
105
+ get filter() {
106
+ return this._filter;
107
+ }
44
108
  /**
45
109
  * The selection value of the plugin list.
46
110
  */
@@ -48,56 +112,27 @@ export class PluginList extends Widget {
48
112
  return this._selection;
49
113
  }
50
114
  set selection(selection) {
51
- if (this._selection === selection) {
52
- return;
53
- }
54
115
  this._selection = selection;
55
116
  this.update();
56
117
  }
57
118
  /**
58
- * Handle the DOM events for the widget.
59
- *
60
- * @param event - The DOM event sent to the widget.
61
- *
62
- * #### Notes
63
- * This method implements the DOM `EventListener` interface and is
64
- * called in response to events on the plugin list's node. It should
65
- * not be called directly by user code.
66
- */
67
- handleEvent(event) {
68
- switch (event.type) {
69
- case 'mousedown':
70
- this._evtMousedown(event);
71
- break;
72
- default:
73
- break;
74
- }
75
- }
76
- /**
77
- * Handle `'after-attach'` messages.
119
+ * Signal that fires when search filter is updated so that settings panel can filter results.
78
120
  */
79
- onAfterAttach(msg) {
80
- this.node.addEventListener('mousedown', this);
81
- this.update();
121
+ get updateFilterSignal() {
122
+ return this._updateFilterSignal;
82
123
  }
83
- /**
84
- * Handle `before-detach` messages for the widget.
85
- */
86
- onBeforeDetach(msg) {
87
- this.node.removeEventListener('mousedown', this);
124
+ get handleSelectSignal() {
125
+ return this._handleSelectSignal;
88
126
  }
89
127
  /**
90
128
  * Handle `'update-request'` messages.
91
129
  */
92
130
  onUpdateRequest(msg) {
93
- const { node, registry } = this;
94
- const selection = this._selection;
95
- const translation = this.translator;
96
- Private.populateList(registry, selection, node, translation);
97
- const ul = node.querySelector('ul');
131
+ const ul = this.node.querySelector('ul');
98
132
  if (ul && this._scrollTop !== undefined) {
99
133
  ul.scrollTop = this._scrollTop;
100
134
  }
135
+ super.onUpdateRequest(msg);
101
136
  }
102
137
  /**
103
138
  * Handle the `'mousedown'` event for the plugin list.
@@ -105,53 +140,30 @@ export class PluginList extends Widget {
105
140
  * @param event - The DOM event sent to the widget
106
141
  */
107
142
  _evtMousedown(event) {
108
- event.preventDefault();
109
- let target = event.target;
110
- let id = target.getAttribute('data-id');
111
- if (id === this._selection) {
112
- return;
113
- }
114
- if (!id) {
115
- while (!id && target !== this.node) {
116
- target = target.parentElement;
117
- id = target.getAttribute('data-id');
118
- }
119
- }
143
+ const target = event.currentTarget;
144
+ const id = target.getAttribute('data-id');
120
145
  if (!id) {
121
146
  return;
122
147
  }
123
- this._confirm()
124
- .then(() => {
148
+ if (this._confirm) {
149
+ this._confirm(id)
150
+ .then(() => {
151
+ this.selection = id;
152
+ this._changed.emit(undefined);
153
+ this.update();
154
+ })
155
+ .catch(() => {
156
+ /* no op */
157
+ });
158
+ }
159
+ else {
125
160
  this._scrollTop = this.scrollTop;
126
161
  this._selection = id;
162
+ this._handleSelectSignal.emit(id);
127
163
  this._changed.emit(undefined);
128
164
  this.update();
129
- })
130
- .catch(() => {
131
- /* no op */
132
- });
165
+ }
133
166
  }
134
- }
135
- /**
136
- * A namespace for private module data.
137
- */
138
- var Private;
139
- (function (Private) {
140
- /**
141
- * The JupyterLab plugin schema key for the setting editor
142
- * icon class of a plugin.
143
- */
144
- const ICON_KEY = 'jupyter.lab.setting-icon';
145
- /**
146
- * The JupyterLab plugin schema key for the setting editor
147
- * icon class of a plugin.
148
- */
149
- const ICON_CLASS_KEY = 'jupyter.lab.setting-icon-class';
150
- /**
151
- * The JupyterLab plugin schema key for the setting editor
152
- * icon label of a plugin.
153
- */
154
- const ICON_LABEL_KEY = 'jupyter.lab.setting-icon-label';
155
167
  /**
156
168
  * Check the plugin for a rendering hint's value.
157
169
  *
@@ -162,7 +174,7 @@ var Private;
162
174
  * 2. Data set by the plugin author as a schema default.
163
175
  * 3. Data set by the plugin author as a top-level key of the schema.
164
176
  */
165
- function getHint(key, registry, plugin) {
177
+ getHint(key, registry, plugin) {
166
178
  // First, give priority to checking if the hint exists in the user data.
167
179
  let hint = plugin.data.user[key];
168
180
  // Second, check to see if the hint exists in composite data, which folds
@@ -182,38 +194,162 @@ var Private;
182
194
  return typeof hint === 'string' ? hint : '';
183
195
  }
184
196
  /**
185
- * Populate the plugin list.
197
+ * Function to recursively filter properties that match search results.
198
+ * @param filter - Function to filter based on search results
199
+ * @param props - Schema properties being filtered
200
+ * @param definitions - Definitions to use for filling in references in properties
201
+ * @param ref - Reference to a definition
202
+ * @returns - String array of properties that match the search results.
186
203
  */
187
- function populateList(registry, selection, node, translator) {
188
- translator = translator || nullTranslator;
189
- const trans = translator.load('jupyterlab');
190
- const plugins = sortPlugins(registry).filter(plugin => {
191
- const { schema } = plugin;
192
- const deprecated = schema['jupyter.lab.setting-deprecated'] === true;
193
- const editable = Object.keys(schema.properties || {}).length > 0;
194
- const extensible = schema.additionalProperties !== false;
195
- return !deprecated && (editable || extensible);
204
+ getFilterString(filter, props, definitions, ref) {
205
+ var _a;
206
+ // If properties given are references, populate properties
207
+ // with corresponding definition.
208
+ if (ref && definitions) {
209
+ ref = ref.replace('#/definitions/', '');
210
+ props = (_a = definitions[ref]) !== null && _a !== void 0 ? _a : {};
211
+ }
212
+ // If given properties are an object, advance into the properties
213
+ // for that object instead.
214
+ if (props.properties) {
215
+ props = props.properties;
216
+ // If given properties are an array, advance into the properties
217
+ // for the items instead.
218
+ }
219
+ else if (props.items) {
220
+ props = props.items;
221
+ // Otherwise, you've reached the base case and don't need to check for matching properties
222
+ }
223
+ else {
224
+ return [];
225
+ }
226
+ // If reference found, recurse
227
+ if (props['$ref']) {
228
+ return this.getFilterString(filter, props, definitions, props['$ref']);
229
+ }
230
+ // Make sure props is non-empty before calling reduce
231
+ if (Object.keys(props).length === 0) {
232
+ return [];
233
+ }
234
+ // Iterate through the properties and check for titles / descriptions that match search.
235
+ return Object.keys(props).reduce((acc, value) => {
236
+ var _a, _b;
237
+ // If this is the base case, check for matching title / description
238
+ const subProps = props[value];
239
+ if (!subProps) {
240
+ if (filter((_a = props.title) !== null && _a !== void 0 ? _a : '')) {
241
+ return props.title;
242
+ }
243
+ if (filter(value)) {
244
+ return value;
245
+ }
246
+ }
247
+ // If there are properties in the object, check for title / description
248
+ if (filter((_b = subProps.title) !== null && _b !== void 0 ? _b : '')) {
249
+ acc.push(subProps.title);
250
+ }
251
+ if (filter(value)) {
252
+ acc.push(value);
253
+ }
254
+ // Finally, recurse on the properties left.
255
+ acc.concat(this.getFilterString(filter, subProps, definitions, subProps['$ref']));
256
+ return acc;
257
+ }, []);
258
+ }
259
+ /**
260
+ * Updates the filter when the search bar value changes.
261
+ * @param filter Filter function passed by search bar based on search value.
262
+ */
263
+ setFilter(filter, query) {
264
+ this._filter = (plugin) => {
265
+ var _a, _b;
266
+ if (filter((_a = plugin.schema.title) !== null && _a !== void 0 ? _a : '')) {
267
+ return null;
268
+ }
269
+ const filtered = this.getFilterString(filter, (_b = plugin.schema) !== null && _b !== void 0 ? _b : {}, plugin.schema.definitions);
270
+ return filtered;
271
+ };
272
+ this._query = query;
273
+ this._updateFilterSignal.emit(this._filter);
274
+ this.update();
275
+ }
276
+ setError(id, error) {
277
+ if (this._errors[id] !== error) {
278
+ this._errors[id] = error;
279
+ this.update();
280
+ }
281
+ else {
282
+ this._errors[id] = error;
283
+ }
284
+ }
285
+ mapPlugins(plugin) {
286
+ var _a, _b, _c, _d;
287
+ const { id, schema, version } = plugin;
288
+ const trans = this.translator.load('jupyterlab');
289
+ const title = typeof schema.title === 'string' ? trans._p('schema', schema.title) : id;
290
+ const highlightedTitleIndices = StringExt.matchSumOfSquares(title.toLocaleLowerCase(), (_b = (_a = this._query) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) !== null && _b !== void 0 ? _b : '');
291
+ const hightlightedTitle = StringExt.highlight(title, (_c = highlightedTitleIndices === null || highlightedTitleIndices === void 0 ? void 0 : highlightedTitleIndices.indices) !== null && _c !== void 0 ? _c : [], chunk => {
292
+ return React.createElement("mark", null, chunk);
293
+ });
294
+ const description = typeof schema.description === 'string'
295
+ ? trans._p('schema', schema.description)
296
+ : '';
297
+ const itemTitle = `${description}\n${id}\n${version}`;
298
+ const icon = this.getHint(ICON_KEY, this.registry, plugin);
299
+ const iconClass = this.getHint(ICON_CLASS_KEY, this.registry, plugin);
300
+ const iconTitle = this.getHint(ICON_LABEL_KEY, this.registry, plugin);
301
+ const filteredProperties = (_d = this._filter(plugin)) === null || _d === void 0 ? void 0 : _d.map(fieldValue => {
302
+ var _a, _b, _c;
303
+ const highlightedIndices = StringExt.matchSumOfSquares(fieldValue.toLocaleLowerCase(), (_b = (_a = this._query) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) !== null && _b !== void 0 ? _b : '');
304
+ const highlighted = StringExt.highlight(fieldValue, (_c = highlightedIndices === null || highlightedIndices === void 0 ? void 0 : highlightedIndices.indices) !== null && _c !== void 0 ? _c : [], chunk => {
305
+ return React.createElement("mark", null, chunk);
306
+ });
307
+ return React.createElement("li", { key: `${id}-${fieldValue}` },
308
+ " ",
309
+ highlighted,
310
+ " ");
196
311
  });
197
- const items = plugins.map(plugin => {
198
- const { id, schema, version } = plugin;
199
- const title = typeof schema.title === 'string'
200
- ? trans._p('schema', schema.title)
201
- : id;
202
- const description = typeof schema.description === 'string'
203
- ? trans._p('schema', schema.description)
204
- : '';
205
- const itemTitle = `${description}\n${id}\n${version}`;
206
- const icon = getHint(ICON_KEY, registry, plugin);
207
- const iconClass = getHint(ICON_CLASS_KEY, registry, plugin);
208
- const iconTitle = getHint(ICON_LABEL_KEY, registry, plugin);
209
- return (React.createElement("li", { className: id === selection ? 'jp-mod-selected' : '', "data-id": id, key: id, title: itemTitle },
312
+ return (React.createElement("div", { onClick: this._evtMousedown, className: `${id === this.selection
313
+ ? 'jp-mod-selected jp-PluginList-entry'
314
+ : 'jp-PluginList-entry'} ${this._errors[id] ? 'jp-ErrorPlugin' : ''}`, "data-id": id, key: id, title: itemTitle },
315
+ React.createElement("div", { className: "jp-PluginList-entry-label", role: "tab" },
316
+ React.createElement("div", { className: "jp-SelectedIndicator" }),
210
317
  React.createElement(LabIcon.resolveReact, { icon: icon || (iconClass ? undefined : settingsIcon), iconClass: classes(iconClass, 'jp-Icon'), title: iconTitle, tag: "span", stylesheet: "settingsEditor" }),
211
- React.createElement("span", null, title)));
318
+ React.createElement("span", { className: "jp-PluginList-entry-label-text" }, hightlightedTitle)),
319
+ React.createElement("ul", null, filteredProperties)));
320
+ }
321
+ render() {
322
+ const trans = this.translator.load('jupyterlab');
323
+ // Filter all plugins based on search value before displaying list.
324
+ const allPlugins = this._allPlugins.filter(plugin => {
325
+ const filtered = this._filter(plugin);
326
+ return filtered === null || filtered.length > 0;
327
+ });
328
+ const modifiedPlugins = allPlugins.filter(plugin => {
329
+ var _a;
330
+ return (_a = this._settings[plugin.id]) === null || _a === void 0 ? void 0 : _a.isModified;
212
331
  });
213
- ReactDOM.unmountComponentAtNode(node);
214
- ReactDOM.render(React.createElement("ul", null, items), node);
332
+ const modifiedItems = modifiedPlugins.map(this.mapPlugins);
333
+ const otherItems = allPlugins
334
+ .filter(plugin => {
335
+ return !modifiedPlugins.includes(plugin);
336
+ })
337
+ .map(this.mapPlugins);
338
+ return (React.createElement("div", { className: "jp-PluginList-wrapper" },
339
+ React.createElement(FilterBox, { updateFilter: this.setFilter, useFuzzyFilter: false, placeholder: trans.__('Search…'), forceRefresh: false, caseSensitive: false, initialQuery: this._query }),
340
+ modifiedItems.length > 0 && (React.createElement("div", null,
341
+ React.createElement("h1", { className: "jp-PluginList-header" }, trans.__('Modified')),
342
+ React.createElement("ul", null, modifiedItems))),
343
+ otherItems.length > 0 && (React.createElement("div", null,
344
+ React.createElement("h1", { className: "jp-PluginList-header" }, trans.__('Settings')),
345
+ React.createElement("ul", null, otherItems))),
346
+ modifiedItems.length === 0 && otherItems.length === 0 && (React.createElement("p", { className: "jp-PluginList-noResults" }, trans.__('No items match your search.')))));
215
347
  }
216
- Private.populateList = populateList;
348
+ }
349
+ /**
350
+ * A namespace for `PluginList` statics.
351
+ */
352
+ (function (PluginList) {
217
353
  /**
218
354
  * Sort a list of plugins by title and ID.
219
355
  */
@@ -224,5 +360,6 @@ var Private;
224
360
  return (a.schema.title || a.id).localeCompare(b.schema.title || b.id);
225
361
  });
226
362
  }
227
- })(Private || (Private = {}));
363
+ PluginList.sortPlugins = sortPlugins;
364
+ })(PluginList || (PluginList = {}));
228
365
  //# sourceMappingURL=pluginlist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pluginlist.js","sourceRoot":"","sources":["../src/pluginlist.tsx"],"names":[],"mappings":"AAAA;;;+EAG+E;AAG/E,OAAO,EAAe,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAW,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,MAAM;IACpC;;OAEG;IACH,YAAY,OAA4B;QACtC,KAAK,EAAE,CAAC;QAoIF,aAAQ,GAAG,IAAI,MAAM,CAAa,IAAI,CAAC,CAAC;QAExC,eAAU,GAAuB,CAAC,CAAC;QACnC,eAAU,GAAG,EAAE,CAAC;QAtItB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAOD;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;;QACX,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,0CAAE,SAAS,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,SAAS,CAAC,SAAiB;QAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,OAAO;SACR;QACD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED;;;;;;;;;OASG;IACH,WAAW,CAAC,KAAY;QACtB,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,WAAW;gBACd,IAAI,CAAC,aAAa,CAAC,KAAmB,CAAC,CAAC;gBACxC,MAAM;YACR;gBACE,MAAM;SACT;IACH,CAAC;IAED;;OAEG;IACO,aAAa,CAAC,GAAY;QAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED;;OAEG;IACO,cAAc,CAAC,GAAY;QACnC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACO,eAAe,CAAC,GAAY;QACpC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QAEpC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACvC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;SAChC;IACH,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,KAAiB;QACrC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QACzC,IAAI,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAExC,IAAI,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE;YAC1B,OAAO;SACR;QAED,IAAI,CAAC,EAAE,EAAE;YACP,OAAO,CAAC,EAAE,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE;gBAClC,MAAM,GAAG,MAAM,CAAC,aAA4B,CAAC;gBAC7C,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;aACrC;SACF;QAED,IAAI,CAAC,EAAE,EAAE;YACP,OAAO;SACR;QAED,IAAI,CAAC,QAAQ,EAAE;aACZ,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,EAAG,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,WAAW;QACb,CAAC,CAAC,CAAC;IACP,CAAC;CAOF;AAgCD;;GAEG;AACH,IAAU,OAAO,CA6HhB;AA7HD,WAAU,OAAO;IACf;;;OAGG;IACH,MAAM,QAAQ,GAAG,0BAA0B,CAAC;IAE5C;;;OAGG;IACH,MAAM,cAAc,GAAG,gCAAgC,CAAC;IAExD;;;OAGG;IACH,MAAM,cAAc,GAAG,gCAAgC,CAAC;IAExD;;;;;;;;;OASG;IACH,SAAS,OAAO,CACd,GAAW,EACX,QAA0B,EAC1B,MAAgC;QAEhC,wEAAwE;QACxE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjC,yEAAyE;QACzE,qCAAqC;QACrC,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SACnC;QAED,iEAAiE;QACjE,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3B;QAED,sDAAsD;QACtD,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAEvC,IAAI,GAAG,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;SACjE;QAED,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,SAAgB,YAAY,CAC1B,QAA0B,EAC1B,SAAiB,EACjB,IAAiB,EACjB,UAAwB;QAExB,UAAU,GAAG,UAAU,IAAI,cAAc,CAAC;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACpD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;YAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,gCAAgC,CAAC,KAAK,IAAI,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,KAAK,KAAK,CAAC;YAEzD,OAAO,CAAC,UAAU,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACjC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YACvC,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;gBAC9B,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;gBAClC,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,WAAW,GACf,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;gBACpC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC;gBACxC,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,SAAS,GAAG,GAAG,WAAW,KAAK,EAAE,KAAK,OAAO,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE5D,OAAO,CACL,4BACE,SAAS,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,aAC3C,EAAE,EACX,GAAG,EAAE,EAAE,EACP,KAAK,EAAE,SAAS;gBAEhB,oBAAC,OAAO,CAAC,YAAY,IACnB,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EACpD,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EACxC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAC,MAAM,EACV,UAAU,EAAC,gBAAgB,GAC3B;gBACF,kCAAO,KAAK,CAAQ,CACjB,CACN,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACtC,QAAQ,CAAC,MAAM,CAAC,gCAAK,KAAK,CAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IApDe,oBAAY,eAoD3B,CAAA;IAED;;OAEG;IACH,SAAS,WAAW,CAAC,QAA0B;QAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;aACjC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC;aACxC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACP,CAAC;AACH,CAAC,EA7HS,OAAO,KAAP,OAAO,QA6HhB"}
1
+ {"version":3,"file":"pluginlist.js","sourceRoot":"","sources":["../src/pluginlist.tsx"],"names":[],"mappings":"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"}