@jupytergis/jupytergis-core 0.1.6 → 0.1.7

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/factory.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ConsolePanel, IConsoleTracker } from '@jupyterlab/console';
2
- import { ICollaborativeDrive } from '@jupyter/docprovider';
2
+ import { ICollaborativeDrive } from '@jupyter/collaborative-drive';
3
3
  import { JupyterGISModel, IJupyterGISTracker, IJGISExternalCommandRegistry } from '@jupytergis/schema';
4
4
  import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
5
5
  import { IEditorMimeTypeService } from '@jupyterlab/codeeditor';
@@ -8,7 +8,7 @@ export declare class JupyterGISModelFactory implements DocumentRegistry.IModelFa
8
8
  /**
9
9
  * Whether the model is collaborative or not.
10
10
  */
11
- readonly collaborative = true;
11
+ readonly collaborative: boolean;
12
12
  /**
13
13
  * The name of the model.
14
14
  *
@@ -7,7 +7,7 @@ export class JupyterGISModelFactory {
7
7
  /**
8
8
  * Whether the model is collaborative or not.
9
9
  */
10
- this.collaborative = true;
10
+ this.collaborative = document.querySelectorAll('[data-jupyter-lite-root]')[0] === undefined;
11
11
  this._disposed = false;
12
12
  }
13
13
  /**
@@ -1,22 +1,29 @@
1
- import { ICollaborativeDrive } from '@jupyter/docprovider';
1
+ import { ICollaborativeDrive } from '@jupyter/collaborative-drive';
2
2
  import { IJGISExternalCommandRegistryToken, IJupyterGISDocTracker, JupyterGISDoc } from '@jupytergis/schema';
3
3
  import { ICommandPalette, IThemeManager } from '@jupyterlab/apputils';
4
4
  import { IEditorServices } from '@jupyterlab/codeeditor';
5
5
  import { ConsolePanel, IConsoleTracker } from '@jupyterlab/console';
6
+ import { PageConfig } from '@jupyterlab/coreutils';
6
7
  import { IFileBrowserFactory } from '@jupyterlab/filebrowser';
7
8
  import { ILauncher } from '@jupyterlab/launcher';
8
9
  import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
9
10
  import { CommandIDs, logoIcon, logoMiniIcon } from '@jupytergis/base';
10
11
  import { JupyterGISWidgetFactory } from '../factory';
11
12
  import { JupyterGISModelFactory } from './modelfactory';
13
+ import { MimeDocumentFactory } from '@jupyterlab/docregistry';
12
14
  const FACTORY = 'JupyterGIS .jgis Viewer';
15
+ const CONTENT_TYPE = 'jgis';
13
16
  const PALETTE_CATEGORY = 'JupyterGIS';
17
+ const MODEL_NAME = 'jupytergis-jgismodel';
14
18
  const activate = (app, tracker, themeManager, browserFactory, externalCommandRegistry, contentFactory, editorServices, rendermime, consoleTracker, launcher, palette, drive) => {
19
+ if (PageConfig.getOption('jgis_expose_maps')) {
20
+ window.jupytergisMaps = {};
21
+ }
15
22
  const widgetFactory = new JupyterGISWidgetFactory({
16
23
  name: FACTORY,
17
- modelName: 'jupytergis-jgismodel',
18
- fileTypes: ['jgis'],
19
- defaultFor: ['jgis'],
24
+ modelName: MODEL_NAME,
25
+ fileTypes: [CONTENT_TYPE],
26
+ defaultFor: [CONTENT_TYPE],
20
27
  tracker,
21
28
  commands: app.commands,
22
29
  externalCommandRegistry,
@@ -29,24 +36,33 @@ const activate = (app, tracker, themeManager, browserFactory, externalCommandReg
29
36
  });
30
37
  // Registering the widget factory
31
38
  app.docRegistry.addWidgetFactory(widgetFactory);
39
+ const mimeDocumentFactory = new MimeDocumentFactory({
40
+ dataType: 'json',
41
+ rendermime,
42
+ modelName: MODEL_NAME,
43
+ name: 'JSON Editor',
44
+ primaryFileType: app.docRegistry.getFileType('json'),
45
+ fileTypes: [CONTENT_TYPE]
46
+ });
47
+ app.docRegistry.addWidgetFactory(mimeDocumentFactory);
32
48
  // Creating and registering the model factory for our custom DocumentModel
33
49
  const modelFactory = new JupyterGISModelFactory();
34
50
  app.docRegistry.addModelFactory(modelFactory);
35
51
  // register the filetype
36
52
  app.docRegistry.addFileType({
37
- name: 'jgis',
53
+ name: CONTENT_TYPE,
38
54
  displayName: 'JGIS',
39
55
  mimeTypes: ['text/json'],
40
56
  extensions: ['.jgis', '.JGIS'],
41
57
  fileFormat: 'text',
42
- contentType: 'jgis',
58
+ contentType: CONTENT_TYPE,
43
59
  icon: logoMiniIcon
44
60
  });
45
61
  const jGISSharedModelFactory = () => {
46
62
  return new JupyterGISDoc();
47
63
  };
48
64
  if (drive) {
49
- drive.sharedModelFactory.registerDocumentFactory('jgis', jGISSharedModelFactory);
65
+ drive.sharedModelFactory.registerDocumentFactory(CONTENT_TYPE, jGISSharedModelFactory);
50
66
  }
51
67
  widgetFactory.widgetCreated.connect((sender, widget) => {
52
68
  widget.title.icon = logoIcon;
@@ -54,9 +70,20 @@ const activate = (app, tracker, themeManager, browserFactory, externalCommandReg
54
70
  tracker.save(widget);
55
71
  });
56
72
  themeManager.themeChanged.connect((_, changes) => widget.context.model.themeChanged.emit(changes));
57
- tracker.add(widget);
58
73
  app.shell.activateById('jupytergis::leftControlPanel');
59
74
  app.shell.activateById('jupytergis::rightControlPanel');
75
+ tracker
76
+ .add(widget)
77
+ .then(() => {
78
+ Object.values(CommandIDs).forEach(id => {
79
+ if (app.commands.hasCommand(id)) {
80
+ app.commands.notifyCommandChanged(id);
81
+ }
82
+ });
83
+ })
84
+ .catch(e => {
85
+ console.error('Cannot update JupyterGIS commands', e);
86
+ });
60
87
  });
61
88
  app.commands.addCommand(CommandIDs.createNew, {
62
89
  label: args => 'GIS File',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupytergis/jupytergis-core",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "JupyterGIS core extension",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -52,23 +52,23 @@
52
52
  "watch:labextension": "jupyter labextension watch ."
53
53
  },
54
54
  "dependencies": {
55
- "@jupyter/docprovider": "^2.0.0",
56
- "@jupytergis/base": "^0.1.6",
57
- "@jupytergis/schema": "^0.1.6",
58
- "@jupyterlab/application": "^4.0.0",
59
- "@jupyterlab/apputils": "^4.0.0",
60
- "@jupyterlab/docregistry": "^4.0.0",
61
- "@jupyterlab/filebrowser": "^4.0.0",
62
- "@jupyterlab/launcher": "^4.0.0",
63
- "@jupyterlab/mainmenu": "^4.0.0",
64
- "@jupyterlab/services": "^7.0.0",
65
- "@jupyterlab/translation": "^4.0.0",
66
- "@jupyterlab/ui-components": "^4.0.0",
55
+ "@jupyter/collaborative-drive": "^3.0.0",
56
+ "@jupytergis/base": "^0.1.7",
57
+ "@jupytergis/schema": "^0.1.7",
58
+ "@jupyterlab/application": "^4.3.0",
59
+ "@jupyterlab/apputils": "^4.3.0",
60
+ "@jupyterlab/docregistry": "^4.3.0",
61
+ "@jupyterlab/filebrowser": "^4.3.0",
62
+ "@jupyterlab/launcher": "^4.3.0",
63
+ "@jupyterlab/mainmenu": "^4.3.0",
64
+ "@jupyterlab/services": "^7.3.0",
65
+ "@jupyterlab/translation": "^4.3.0",
66
+ "@jupyterlab/ui-components": "^4.3.0",
67
67
  "@lumino/commands": "^2.0.0",
68
68
  "util": "^0.12.5"
69
69
  },
70
70
  "devDependencies": {
71
- "@jupyterlab/builder": "^4.0.0",
71
+ "@jupyterlab/builder": "^4.3.0",
72
72
  "@types/json-schema": "^7.0.11",
73
73
  "@types/react": "^18.0.26",
74
74
  "@types/react-addons-linked-state-mixin": "^0.14.22",