UNPKG

1.36 kBJavaScriptView Raw
1import { DisposableDelegate } from '@lumino/disposable';
2import { Signal } from '@lumino/signaling';
3import { ToolbarButton } from '@jupyterlab/apputils';
4import { PACKAGE_NAME, CONFIGURED_CLASS } from '.';
5import { ICONS } from './icons';
6/**
7 * A notebook widget extension that adds a button to the toolbar.
8 */
9export class NotebookFontsButton {
10 constructor() {
11 this.widgetRequested = new Signal(this);
12 }
13 /**
14 * Create a new extension object.
15 */
16 createNew(panel, context) {
17 let button = new ToolbarButton({
18 icon: ICONS.fonts,
19 onClick: () => {
20 this.widgetRequested.emit(void 0);
21 },
22 tooltip: 'Customize Notebook Fonts'
23 });
24 const metaUpdated = (metadata) => {
25 const hasMeta = !!metadata.get(PACKAGE_NAME);
26 if (hasMeta) {
27 button.addClass(CONFIGURED_CLASS);
28 }
29 else {
30 button.removeClass(CONFIGURED_CLASS);
31 }
32 };
33 if (panel.model) {
34 panel.model.metadata.changed.connect(metaUpdated);
35 metaUpdated(panel.model.metadata);
36 }
37 panel.toolbar.insertItem(9, 'fonts', button);
38 return new DisposableDelegate(() => {
39 button.dispose();
40 });
41 }
42}
43//# sourceMappingURL=button.js.map
\No newline at end of file