@jupyterlab/inspector 0.17.2 → 0.18.4

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/inspector.js CHANGED
@@ -289,7 +289,7 @@ class InspectorItem extends widgets_1.Widget {
289
289
  return toolbar;
290
290
  }
291
291
  let clear = new apputils_1.ToolbarButton({
292
- className: CLEAR_CLASS,
292
+ iconClassName: CLEAR_CLASS + ' jp-Icon jp-Icon-16',
293
293
  onClick: () => {
294
294
  this._clear();
295
295
  },
@@ -297,7 +297,7 @@ class InspectorItem extends widgets_1.Widget {
297
297
  });
298
298
  toolbar.addItem('clear', clear);
299
299
  let back = new apputils_1.ToolbarButton({
300
- className: BACK_CLASS,
300
+ iconClassName: BACK_CLASS + ' jp-Icon jp-Icon-16',
301
301
  onClick: () => {
302
302
  this._back();
303
303
  },
@@ -305,7 +305,7 @@ class InspectorItem extends widgets_1.Widget {
305
305
  });
306
306
  toolbar.addItem('back', back);
307
307
  let forward = new apputils_1.ToolbarButton({
308
- className: FORWARD_CLASS,
308
+ iconClassName: FORWARD_CLASS + ' jp-Icon jp-Icon-16',
309
309
  onClick: () => {
310
310
  this._forward();
311
311
  },
@@ -1 +1 @@
1
- {"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../../../inspector/src/inspector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { Toolbar, ToolbarButton } from '@jupyterlab/apputils';\n\nimport { Token } from '@phosphor/coreutils';\n\nimport { DisposableDelegate, IDisposable } from '@phosphor/disposable';\n\nimport { ISignal } from '@phosphor/signaling';\n\nimport { PanelLayout, TabPanel, Widget } from '@phosphor/widgets';\n\n/**\n * The class name added to inspector panels.\n */\nconst PANEL_CLASS = 'jp-Inspector';\n\n/**\n * The class name added to inspector child item widgets.\n */\nconst ITEM_CLASS = 'jp-InspectorItem';\n\n/**\n * The class name added to inspector child item widgets' content.\n */\nconst CONTENT_CLASS = 'jp-InspectorItem-content';\n\n/**\n * The history clear button class name.\n */\nconst CLEAR_CLASS = 'jp-InspectorItem-clear';\n\n/**\n * The back button class name.\n */\nconst BACK_CLASS = 'jp-InspectorItem-back';\n\n/**\n * The forward button class name.\n */\nconst FORWARD_CLASS = 'jp-InspectorItem-forward';\n\n/* tslint:disable */\n/**\n * The inspector panel token.\n */\nexport const IInspector = new Token<IInspector>(\n '@jupyterlab/inspector:IInspector'\n);\n/* tslint:enable */\n\n/**\n * An interface for an inspector.\n */\nexport interface IInspector {\n /**\n * Create an inspector child item and return a disposable to remove it.\n *\n * @param item - The inspector child item being added to the inspector.\n *\n * @returns A disposable that removes the child item from the inspector.\n */\n add(item: IInspector.IInspectorItem): IDisposable;\n\n /**\n * The source of events the inspector listens for.\n */\n source: IInspector.IInspectable | null;\n}\n\n/**\n * A namespace for inspector interfaces.\n */\nexport namespace IInspector {\n /**\n * The definition of an inspectable source.\n */\n export interface IInspectable {\n /**\n * A signal emitted when the handler is disposed.\n */\n disposed: ISignal<any, void>;\n\n /**\n * A signal emitted when inspector should clear all items with no history.\n */\n ephemeralCleared: ISignal<any, void>;\n\n /**\n * A signal emitted when an inspector value is generated.\n */\n inspected: ISignal<any, IInspectorUpdate>;\n\n /**\n * Indicates whether the inspectable source emits signals.\n *\n * #### Notes\n * The use case for this attribute is to limit the API traffic when no\n * inspector is visible.\n */\n standby: boolean;\n }\n\n /**\n * The definition of a child item of an inspector.\n */\n export interface IInspectorItem {\n /**\n * The optional class name added to the inspector child widget.\n */\n className?: string;\n\n /**\n * The display name of the inspector child.\n */\n name: string;\n\n /**\n * The rank order of display priority for inspector updates. A lower rank\n * denotes a higher display priority.\n */\n rank: number;\n\n /**\n * A flag that indicates whether the inspector remembers history.\n *\n * The default value is `false`.\n */\n remembers?: boolean;\n\n /**\n * The type of the inspector.\n */\n type: string;\n }\n\n /**\n * An update value for code inspectors.\n */\n export interface IInspectorUpdate {\n /**\n * The content being sent to the inspector for display.\n */\n content: Widget | null;\n\n /**\n * The type of the inspector being updated.\n */\n type: string;\n }\n}\n\n/**\n * A panel which contains a set of inspectors.\n */\nexport class InspectorPanel extends TabPanel implements IInspector {\n /**\n * Construct an inspector.\n */\n constructor() {\n super();\n this.addClass(PANEL_CLASS);\n }\n\n /**\n * The source of events the inspector panel listens for.\n */\n get source(): IInspector.IInspectable | null {\n return this._source;\n }\n set source(source: IInspector.IInspectable | null) {\n if (this._source === source) {\n return;\n }\n\n // Disconnect old signal handler.\n if (this._source) {\n this._source.standby = true;\n this._source.inspected.disconnect(this.onInspectorUpdate, this);\n this._source.disposed.disconnect(this.onSourceDisposed, this);\n }\n\n // Clear the inspector child items (but maintain history) if necessary.\n Object.keys(this._items).forEach(i => {\n this._items[i].content = null;\n });\n\n this._source = source;\n\n // Connect new signal handler.\n if (this._source) {\n this._source.standby = false;\n this._source.inspected.connect(this.onInspectorUpdate, this);\n this._source.disposed.connect(this.onSourceDisposed, this);\n }\n }\n\n /**\n * Create an inspector child item and return a disposable to remove it.\n *\n * @param item - The inspector child item being added to the inspector.\n *\n * @returns A disposable that removes the child item from the inspector.\n */\n add(item: IInspector.IInspectorItem): IDisposable {\n const widget = new InspectorItem();\n\n widget.rank = item.rank;\n widget.remembers = !!item.remembers;\n widget.title.closable = false;\n widget.title.label = item.name;\n if (item.className) {\n widget.addClass(item.className);\n }\n this._items[item.type] = widget;\n this.addWidget(widget);\n\n if (Object.keys(this._items).length < 2) {\n this.tabBar.hide();\n } else {\n this.tabBar.show();\n }\n\n return new DisposableDelegate(() => {\n if (widget.isDisposed || this.isDisposed) {\n return;\n }\n\n widget.dispose();\n delete this._items[item.type];\n\n if (Object.keys(this._items).length < 2) {\n this.tabBar.hide();\n } else {\n this.tabBar.show();\n }\n });\n }\n\n /**\n * Dispose of the resources held by the widget.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n this.source = null;\n let items = this._items;\n\n // Dispose the inspector child items.\n Object.keys(items).forEach(i => {\n items[i].dispose();\n });\n super.dispose();\n }\n\n /**\n * Handle inspector update signals.\n */\n protected onInspectorUpdate(\n sender: any,\n args: IInspector.IInspectorUpdate\n ): void {\n let widget = this._items[args.type];\n if (!widget) {\n return;\n }\n\n // Update the content of the inspector widget.\n widget.content = args.content;\n\n let items = this._items;\n\n // If any inspector with a higher rank has content, do not change focus.\n if (args.content) {\n for (let type in items) {\n let inspector = this._items[type];\n if (inspector.rank < widget.rank && inspector.content) {\n return;\n }\n }\n this.currentWidget = widget;\n return;\n }\n\n // If the inspector was emptied, show the next best ranked inspector.\n let lowest = Infinity;\n let newWidget: Widget | null = null;\n for (let type in items) {\n let inspector = this._items[type];\n if (inspector.rank < lowest && inspector.content) {\n lowest = inspector.rank;\n newWidget = inspector;\n }\n }\n if (newWidget) {\n this.currentWidget = newWidget;\n }\n }\n\n /**\n * Handle source disposed signals.\n */\n protected onSourceDisposed(sender: any, args: void): void {\n this.source = null;\n }\n\n private _items: { [type: string]: InspectorItem } = Object.create(null);\n private _source: IInspector.IInspectable | null = null;\n}\n\n/**\n * A code inspector child widget.\n */\nclass InspectorItem extends Widget {\n /**\n * Construct an inspector widget.\n */\n constructor() {\n super();\n this.layout = new PanelLayout();\n this.addClass(ITEM_CLASS);\n this._toolbar = this._createToolbar();\n (this.layout as PanelLayout).addWidget(this._toolbar);\n }\n\n /**\n * The text of the inspector.\n */\n get content(): Widget | null {\n return this._content;\n }\n set content(newValue: Widget | null) {\n if (newValue === this._content) {\n return;\n }\n if (this._content) {\n if (this._remembers) {\n this._content.hide();\n } else {\n this._content.dispose();\n }\n }\n this._content = newValue;\n if (newValue) {\n newValue.addClass(CONTENT_CLASS);\n (this.layout as PanelLayout).addWidget(newValue);\n if (this.remembers) {\n this._history.push(newValue);\n this._index++;\n }\n }\n }\n\n /**\n * A flag that indicates whether the inspector remembers history.\n */\n get remembers(): boolean {\n return this._remembers;\n }\n set remembers(newValue: boolean) {\n if (newValue === this._remembers) {\n return;\n }\n this._remembers = newValue;\n if (!newValue) {\n this._clear();\n }\n this.update();\n }\n\n /**\n * The display rank of the inspector.\n */\n get rank(): number {\n return this._rank;\n }\n set rank(newValue: number) {\n this._rank = newValue;\n }\n\n /**\n * Dispose of the resources held by the widget.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n this._history.forEach(widget => widget.dispose());\n this._toolbar.dispose();\n super.dispose();\n }\n\n /**\n * Navigate back in history.\n */\n private _back(): void {\n if (this._history.length) {\n this._navigateTo(Math.max(this._index - 1, 0));\n }\n }\n\n /**\n * Clear history.\n */\n private _clear(): void {\n this._history.forEach(widget => widget.dispose());\n this._history = [];\n this._index = -1;\n }\n\n /**\n * Navigate forward in history.\n */\n private _forward(): void {\n if (this._history.length) {\n this._navigateTo(Math.min(this._index + 1, this._history.length - 1));\n }\n }\n\n /**\n * Create a history toolbar.\n */\n private _createToolbar(): Toolbar<Widget> {\n let toolbar = new Toolbar();\n\n if (!this._remembers) {\n return toolbar;\n }\n\n let clear = new ToolbarButton({\n className: CLEAR_CLASS,\n onClick: () => {\n this._clear();\n },\n tooltip: 'Clear history.'\n });\n toolbar.addItem('clear', clear);\n\n let back = new ToolbarButton({\n className: BACK_CLASS,\n onClick: () => {\n this._back();\n },\n tooltip: 'Navigate back in history.'\n });\n toolbar.addItem('back', back);\n\n let forward = new ToolbarButton({\n className: FORWARD_CLASS,\n onClick: () => {\n this._forward();\n },\n tooltip: 'Navigate forward in history.'\n });\n toolbar.addItem('forward', forward);\n\n return toolbar;\n }\n\n /**\n * Navigate to a known index in history.\n */\n private _navigateTo(index: number): void {\n if (this._content) {\n this._content.hide();\n }\n this._content = this._history[index];\n this._index = index;\n this._content.show();\n }\n\n private _content: Widget | null = null;\n private _history: Widget[] = [];\n private _index: number = -1;\n private _rank: number = Infinity;\n private _remembers: boolean = false;\n private _toolbar: Toolbar<Widget>;\n}\n"]}
1
+ {"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../../../inspector/src/inspector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { Toolbar, ToolbarButton } from '@jupyterlab/apputils';\n\nimport { Token } from '@phosphor/coreutils';\n\nimport { DisposableDelegate, IDisposable } from '@phosphor/disposable';\n\nimport { ISignal } from '@phosphor/signaling';\n\nimport { PanelLayout, TabPanel, Widget } from '@phosphor/widgets';\n\n/**\n * The class name added to inspector panels.\n */\nconst PANEL_CLASS = 'jp-Inspector';\n\n/**\n * The class name added to inspector child item widgets.\n */\nconst ITEM_CLASS = 'jp-InspectorItem';\n\n/**\n * The class name added to inspector child item widgets' content.\n */\nconst CONTENT_CLASS = 'jp-InspectorItem-content';\n\n/**\n * The history clear button class name.\n */\nconst CLEAR_CLASS = 'jp-InspectorItem-clear';\n\n/**\n * The back button class name.\n */\nconst BACK_CLASS = 'jp-InspectorItem-back';\n\n/**\n * The forward button class name.\n */\nconst FORWARD_CLASS = 'jp-InspectorItem-forward';\n\n/* tslint:disable */\n/**\n * The inspector panel token.\n */\nexport const IInspector = new Token<IInspector>(\n '@jupyterlab/inspector:IInspector'\n);\n/* tslint:enable */\n\n/**\n * An interface for an inspector.\n */\nexport interface IInspector {\n /**\n * Create an inspector child item and return a disposable to remove it.\n *\n * @param item - The inspector child item being added to the inspector.\n *\n * @returns A disposable that removes the child item from the inspector.\n */\n add(item: IInspector.IInspectorItem): IDisposable;\n\n /**\n * The source of events the inspector listens for.\n */\n source: IInspector.IInspectable | null;\n}\n\n/**\n * A namespace for inspector interfaces.\n */\nexport namespace IInspector {\n /**\n * The definition of an inspectable source.\n */\n export interface IInspectable {\n /**\n * A signal emitted when the handler is disposed.\n */\n disposed: ISignal<any, void>;\n\n /**\n * A signal emitted when inspector should clear all items with no history.\n */\n ephemeralCleared: ISignal<any, void>;\n\n /**\n * A signal emitted when an inspector value is generated.\n */\n inspected: ISignal<any, IInspectorUpdate>;\n\n /**\n * Indicates whether the inspectable source emits signals.\n *\n * #### Notes\n * The use case for this attribute is to limit the API traffic when no\n * inspector is visible.\n */\n standby: boolean;\n }\n\n /**\n * The definition of a child item of an inspector.\n */\n export interface IInspectorItem {\n /**\n * The optional class name added to the inspector child widget.\n */\n className?: string;\n\n /**\n * The display name of the inspector child.\n */\n name: string;\n\n /**\n * The rank order of display priority for inspector updates. A lower rank\n * denotes a higher display priority.\n */\n rank: number;\n\n /**\n * A flag that indicates whether the inspector remembers history.\n *\n * The default value is `false`.\n */\n remembers?: boolean;\n\n /**\n * The type of the inspector.\n */\n type: string;\n }\n\n /**\n * An update value for code inspectors.\n */\n export interface IInspectorUpdate {\n /**\n * The content being sent to the inspector for display.\n */\n content: Widget | null;\n\n /**\n * The type of the inspector being updated.\n */\n type: string;\n }\n}\n\n/**\n * A panel which contains a set of inspectors.\n */\nexport class InspectorPanel extends TabPanel implements IInspector {\n /**\n * Construct an inspector.\n */\n constructor() {\n super();\n this.addClass(PANEL_CLASS);\n }\n\n /**\n * The source of events the inspector panel listens for.\n */\n get source(): IInspector.IInspectable | null {\n return this._source;\n }\n set source(source: IInspector.IInspectable | null) {\n if (this._source === source) {\n return;\n }\n\n // Disconnect old signal handler.\n if (this._source) {\n this._source.standby = true;\n this._source.inspected.disconnect(this.onInspectorUpdate, this);\n this._source.disposed.disconnect(this.onSourceDisposed, this);\n }\n\n // Clear the inspector child items (but maintain history) if necessary.\n Object.keys(this._items).forEach(i => {\n this._items[i].content = null;\n });\n\n this._source = source;\n\n // Connect new signal handler.\n if (this._source) {\n this._source.standby = false;\n this._source.inspected.connect(this.onInspectorUpdate, this);\n this._source.disposed.connect(this.onSourceDisposed, this);\n }\n }\n\n /**\n * Create an inspector child item and return a disposable to remove it.\n *\n * @param item - The inspector child item being added to the inspector.\n *\n * @returns A disposable that removes the child item from the inspector.\n */\n add(item: IInspector.IInspectorItem): IDisposable {\n const widget = new InspectorItem();\n\n widget.rank = item.rank;\n widget.remembers = !!item.remembers;\n widget.title.closable = false;\n widget.title.label = item.name;\n if (item.className) {\n widget.addClass(item.className);\n }\n this._items[item.type] = widget;\n this.addWidget(widget);\n\n if (Object.keys(this._items).length < 2) {\n this.tabBar.hide();\n } else {\n this.tabBar.show();\n }\n\n return new DisposableDelegate(() => {\n if (widget.isDisposed || this.isDisposed) {\n return;\n }\n\n widget.dispose();\n delete this._items[item.type];\n\n if (Object.keys(this._items).length < 2) {\n this.tabBar.hide();\n } else {\n this.tabBar.show();\n }\n });\n }\n\n /**\n * Dispose of the resources held by the widget.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n this.source = null;\n let items = this._items;\n\n // Dispose the inspector child items.\n Object.keys(items).forEach(i => {\n items[i].dispose();\n });\n super.dispose();\n }\n\n /**\n * Handle inspector update signals.\n */\n protected onInspectorUpdate(\n sender: any,\n args: IInspector.IInspectorUpdate\n ): void {\n let widget = this._items[args.type];\n if (!widget) {\n return;\n }\n\n // Update the content of the inspector widget.\n widget.content = args.content;\n\n let items = this._items;\n\n // If any inspector with a higher rank has content, do not change focus.\n if (args.content) {\n for (let type in items) {\n let inspector = this._items[type];\n if (inspector.rank < widget.rank && inspector.content) {\n return;\n }\n }\n this.currentWidget = widget;\n return;\n }\n\n // If the inspector was emptied, show the next best ranked inspector.\n let lowest = Infinity;\n let newWidget: Widget | null = null;\n for (let type in items) {\n let inspector = this._items[type];\n if (inspector.rank < lowest && inspector.content) {\n lowest = inspector.rank;\n newWidget = inspector;\n }\n }\n if (newWidget) {\n this.currentWidget = newWidget;\n }\n }\n\n /**\n * Handle source disposed signals.\n */\n protected onSourceDisposed(sender: any, args: void): void {\n this.source = null;\n }\n\n private _items: { [type: string]: InspectorItem } = Object.create(null);\n private _source: IInspector.IInspectable | null = null;\n}\n\n/**\n * A code inspector child widget.\n */\nclass InspectorItem extends Widget {\n /**\n * Construct an inspector widget.\n */\n constructor() {\n super();\n this.layout = new PanelLayout();\n this.addClass(ITEM_CLASS);\n this._toolbar = this._createToolbar();\n (this.layout as PanelLayout).addWidget(this._toolbar);\n }\n\n /**\n * The text of the inspector.\n */\n get content(): Widget | null {\n return this._content;\n }\n set content(newValue: Widget | null) {\n if (newValue === this._content) {\n return;\n }\n if (this._content) {\n if (this._remembers) {\n this._content.hide();\n } else {\n this._content.dispose();\n }\n }\n this._content = newValue;\n if (newValue) {\n newValue.addClass(CONTENT_CLASS);\n (this.layout as PanelLayout).addWidget(newValue);\n if (this.remembers) {\n this._history.push(newValue);\n this._index++;\n }\n }\n }\n\n /**\n * A flag that indicates whether the inspector remembers history.\n */\n get remembers(): boolean {\n return this._remembers;\n }\n set remembers(newValue: boolean) {\n if (newValue === this._remembers) {\n return;\n }\n this._remembers = newValue;\n if (!newValue) {\n this._clear();\n }\n this.update();\n }\n\n /**\n * The display rank of the inspector.\n */\n get rank(): number {\n return this._rank;\n }\n set rank(newValue: number) {\n this._rank = newValue;\n }\n\n /**\n * Dispose of the resources held by the widget.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n this._history.forEach(widget => widget.dispose());\n this._toolbar.dispose();\n super.dispose();\n }\n\n /**\n * Navigate back in history.\n */\n private _back(): void {\n if (this._history.length) {\n this._navigateTo(Math.max(this._index - 1, 0));\n }\n }\n\n /**\n * Clear history.\n */\n private _clear(): void {\n this._history.forEach(widget => widget.dispose());\n this._history = [];\n this._index = -1;\n }\n\n /**\n * Navigate forward in history.\n */\n private _forward(): void {\n if (this._history.length) {\n this._navigateTo(Math.min(this._index + 1, this._history.length - 1));\n }\n }\n\n /**\n * Create a history toolbar.\n */\n private _createToolbar(): Toolbar<Widget> {\n let toolbar = new Toolbar();\n\n if (!this._remembers) {\n return toolbar;\n }\n\n let clear = new ToolbarButton({\n iconClassName: CLEAR_CLASS + ' jp-Icon jp-Icon-16',\n onClick: () => {\n this._clear();\n },\n tooltip: 'Clear history.'\n });\n toolbar.addItem('clear', clear);\n\n let back = new ToolbarButton({\n iconClassName: BACK_CLASS + ' jp-Icon jp-Icon-16',\n onClick: () => {\n this._back();\n },\n tooltip: 'Navigate back in history.'\n });\n toolbar.addItem('back', back);\n\n let forward = new ToolbarButton({\n iconClassName: FORWARD_CLASS + ' jp-Icon jp-Icon-16',\n onClick: () => {\n this._forward();\n },\n tooltip: 'Navigate forward in history.'\n });\n toolbar.addItem('forward', forward);\n\n return toolbar;\n }\n\n /**\n * Navigate to a known index in history.\n */\n private _navigateTo(index: number): void {\n if (this._content) {\n this._content.hide();\n }\n this._content = this._history[index];\n this._index = index;\n this._content.show();\n }\n\n private _content: Widget | null = null;\n private _history: Widget[] = [];\n private _index: number = -1;\n private _rank: number = Infinity;\n private _remembers: boolean = false;\n private _toolbar: Toolbar<Widget>;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/inspector",
3
- "version": "0.17.2",
3
+ "version": "0.18.4",
4
4
  "description": "JupyterLab - Code Inspector",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -30,11 +30,11 @@
30
30
  "watch": "tsc -w --listEmittedFiles"
31
31
  },
32
32
  "dependencies": {
33
- "@jupyterlab/apputils": "^0.17.2",
34
- "@jupyterlab/codeeditor": "^0.17.2",
35
- "@jupyterlab/coreutils": "^2.0.2",
36
- "@jupyterlab/rendermime": "^0.17.2",
37
- "@jupyterlab/services": "^3.0.3",
33
+ "@jupyterlab/apputils": "^0.18.4",
34
+ "@jupyterlab/codeeditor": "^0.18.4",
35
+ "@jupyterlab/coreutils": "^2.1.4",
36
+ "@jupyterlab/rendermime": "^0.18.4",
37
+ "@jupyterlab/services": "^3.1.4",
38
38
  "@phosphor/coreutils": "^1.3.0",
39
39
  "@phosphor/disposable": "^1.1.2",
40
40
  "@phosphor/signaling": "^1.2.2",