jupytergis-lab 0.1.1__py3-none-any.whl → 0.1.2__py3-none-any.whl

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 (35) hide show
  1. jupytergis_lab/_version.py +1 -1
  2. jupytergis_lab/notebook/gis_document.py +107 -11
  3. jupytergis_lab/notebook/objects/__init__.py +1 -0
  4. jupytergis_lab/notebook/objects/_schema/__init__.py +1 -1
  5. jupytergis_lab/notebook/objects/_schema/geoTiffSource.py +1 -1
  6. jupytergis_lab/notebook/objects/_schema/geojsonsource.py +1 -1
  7. jupytergis_lab/notebook/objects/_schema/hillshadeLayer.py +1 -1
  8. jupytergis_lab/notebook/objects/_schema/imageLayer.py +1 -1
  9. jupytergis_lab/notebook/objects/_schema/imageSource.py +1 -1
  10. jupytergis_lab/notebook/objects/_schema/jgis.py +1 -1
  11. jupytergis_lab/notebook/objects/_schema/rasterDemSource.py +1 -1
  12. jupytergis_lab/notebook/objects/_schema/rasterlayer.py +1 -1
  13. jupytergis_lab/notebook/objects/_schema/rastersource.py +1 -1
  14. jupytergis_lab/notebook/objects/_schema/shapefileSource.py +1 -1
  15. jupytergis_lab/notebook/objects/_schema/vectorTileLayer.py +1 -1
  16. jupytergis_lab/notebook/objects/_schema/vectorlayer.py +1 -1
  17. jupytergis_lab/notebook/objects/_schema/vectortilesource.py +1 -1
  18. jupytergis_lab/notebook/objects/_schema/videoSource.py +1 -1
  19. jupytergis_lab/notebook/objects/_schema/webGlLayer.py +8 -4
  20. jupytergis_lab/notebook/tests/test_api.py +45 -1
  21. {jupytergis_lab-0.1.1.data → jupytergis_lab-0.1.2.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/package.json +5 -5
  22. jupytergis_lab-0.1.2.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/484.bfbeec299fb2543b6a74.js +1 -0
  23. jupytergis_lab-0.1.2.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/remoteEntry.cd623e659dc416320248.js +1 -0
  24. {jupytergis_lab-0.1.1.data → jupytergis_lab-0.1.2.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/third-party-licenses.json +1 -1
  25. {jupytergis_lab-0.1.1.dist-info → jupytergis_lab-0.1.2.dist-info}/METADATA +1 -1
  26. jupytergis_lab-0.1.2.dist-info/RECORD +37 -0
  27. jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/484.7cd11c502baf51c3285e.js +0 -1
  28. jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/remoteEntry.15c6baaafaa709cc98c0.js +0 -1
  29. jupytergis_lab-0.1.1.dist-info/RECORD +0 -37
  30. {jupytergis_lab-0.1.1.data → jupytergis_lab-0.1.2.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/install.json +0 -0
  31. {jupytergis_lab-0.1.1.data → jupytergis_lab-0.1.2.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/373.1c3d89f9ed56880711bd.js +0 -0
  32. {jupytergis_lab-0.1.1.data → jupytergis_lab-0.1.2.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/432.28aaec36233a73d1589c.js +0 -0
  33. {jupytergis_lab-0.1.1.data → jupytergis_lab-0.1.2.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/style.js +0 -0
  34. {jupytergis_lab-0.1.1.dist-info → jupytergis_lab-0.1.2.dist-info}/WHEEL +0 -0
  35. {jupytergis_lab-0.1.1.dist-info → jupytergis_lab-0.1.2.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
1
1
  # This file is auto-generated by Hatchling. As such, do not:
2
2
  # - modify
3
3
  # - track in version control e.g. be sure to add to .gitignore
4
- __version__ = VERSION = '0.1.1'
4
+ __version__ = VERSION = '0.1.2'
@@ -4,30 +4,29 @@ import json
4
4
  import logging
5
5
  from pathlib import Path
6
6
  from typing import Any, Dict, List, Literal, Optional, Union
7
+ from uuid import uuid4
7
8
 
8
9
  from pycrdt import Array, Doc, Map
9
10
  from pydantic import BaseModel
10
11
  from ypywidgets.comm import CommWidget
11
12
 
12
- from uuid import uuid4
13
-
14
- from .utils import normalize_path, get_source_layer_names
15
-
16
13
  from .objects import (
17
- LayerType,
18
- SourceType,
14
+ IGeoJSONSource,
19
15
  IHillshadeLayer,
20
16
  IImageLayer,
17
+ IImageSource,
21
18
  IRasterLayer,
22
19
  IRasterSource,
23
- IVectorTileSource,
24
20
  IVectorLayer,
25
21
  IVectorTileLayer,
26
- IGeoJSONSource,
27
- IImageSource,
22
+ IVectorTileSource,
28
23
  IVideoSource,
29
- IWebGlLayer
24
+ IGeoTiffSource,
25
+ IWebGlLayer,
26
+ LayerType,
27
+ SourceType,
30
28
  )
29
+ from .utils import get_source_layer_names, normalize_path
31
30
 
32
31
  logger = logging.getLogger(__file__)
33
32
 
@@ -360,7 +359,102 @@ class GISDocument(CommWidget):
360
359
  }
361
360
 
362
361
  return self._add_layer(OBJECT_FACTORY.create_layer(layer, self))
362
+
363
+ def add_tiff_layer(
364
+ self,
365
+ url: str,
366
+ min: int = None,
367
+ max: int = None,
368
+ name: str = "Tiff Layer",
369
+ normalize: bool = True,
370
+ wrapX: bool = False,
371
+ attribution: str = "",
372
+ opacity: float = 1.0,
373
+ color_expr = None
374
+ ):
375
+ """
376
+ Add a tiff layer
377
+
378
+ :param str url: URL of the tif
379
+ :param int min: Minimum pixel value to be displayed, defaults to letting the map display set the value
380
+ :param int max: Maximum pixel value to be displayed, defaults to letting the map display set the value
381
+ :param str name: The name that will be used for the object in the document, defaults to "Tiff Layer"
382
+ :param bool normalize: Select whether to normalize values between 0..1, if false than min/max have no effect, defaults to True
383
+ :param bool wrapX: Render tiles beyond the tile grid extent, defaults to False
384
+ :param float opacity: The opacity, between 0 and 1, defaults to 1.0
385
+ :param _type_ color_expr: The style expression used to style the layer, defaults to None
386
+ """
387
+
388
+ source = {
389
+ "type": SourceType.GeoTiffSource,
390
+ "name": f"{name} Source",
391
+ "parameters": {
392
+ "urls": [{
393
+ "url": url,
394
+ "min": min,
395
+ "max": max
396
+ }],
397
+ "normalize": normalize,
398
+ "wrapX": wrapX,
399
+ },
400
+ }
401
+ source_id = self._add_source(OBJECT_FACTORY.create_source(source, self))
402
+
403
+ layer = {
404
+ "type": LayerType.WebGlLayer,
405
+ "name": name,
406
+ "visible": True,
407
+ "parameters": {"source": source_id, "opacity": opacity, "color": color_expr},
408
+ }
363
409
 
410
+ return self._add_layer(OBJECT_FACTORY.create_layer(layer, self))
411
+
412
+ def create_color_expr(self, color_stops: Dict, band: float = 1.0, interpolation_type: str = 'linear', ):
413
+ """
414
+ Create a color expression used to style the layer
415
+
416
+ :param Dict color_stops: Dictionary of stop values to [r, g, b, a] colors
417
+ :param float band: The band to be colored, defaults to 1.0
418
+ :param str interpolation_type: The interpolation function. Can be linear, discrete, or exact, defaults to 'linear'
419
+ """
420
+
421
+ if interpolation_type not in ["linear", "discrete", "exact"]:
422
+ raise ValueError("Interpolation type must be one of linear, discrete, or exact")
423
+
424
+ color = []
425
+ if interpolation_type == 'linear':
426
+ color = ['interpolate',['linear']]
427
+ color.append(['band', band])
428
+ # Transparency for nodata
429
+ color.append(0.0)
430
+ color.append([0.0, 0.0, 0.0, 0.0])
431
+
432
+ for value, colorVal in color_stops.items():
433
+ color.append(value)
434
+ color.append(colorVal)
435
+
436
+ return color
437
+
438
+ if interpolation_type == 'discrete':
439
+ operator = '<='
440
+
441
+ if interpolation_type == 'exact':
442
+ operator = '=='
443
+
444
+ color = ['case']
445
+ # Transparency for nodata
446
+ color.append(["==", ["band", band], 0.0])
447
+ color.append([0.0, 0.0, 0.0, 0.0])
448
+
449
+ for value, colorVal in color_stops.items():
450
+ color.append([operator, ["band", band], value])
451
+ color.append(colorVal)
452
+
453
+ # Fallback color
454
+ color.append([0.0, 0.0, 0.0, 1.0])
455
+
456
+ return color
457
+
364
458
  def add_filter(self, layer_id: str, logical_op:str, feature:str, operator:str, value:Union[str, number, float]):
365
459
  """
366
460
  Add a filter to a layer
@@ -529,7 +623,8 @@ class JGISSource(BaseModel):
529
623
  IVectorTileSource,
530
624
  IGeoJSONSource,
531
625
  IImageSource,
532
- IVideoSource
626
+ IVideoSource,
627
+ IGeoTiffSource
533
628
  ]
534
629
  _parent = Optional[GISDocument]
535
630
 
@@ -614,3 +709,4 @@ OBJECT_FACTORY.register_factory(SourceType.RasterSource, IRasterSource)
614
709
  OBJECT_FACTORY.register_factory(SourceType.GeoJSONSource, IGeoJSONSource)
615
710
  OBJECT_FACTORY.register_factory(SourceType.ImageSource, IImageSource)
616
711
  OBJECT_FACTORY.register_factory(SourceType.VideoSource, IVideoSource)
712
+ OBJECT_FACTORY.register_factory(SourceType.GeoTiffSource, IGeoTiffSource)
@@ -12,3 +12,4 @@ from ._schema.rastersource import IRasterSource # noqa
12
12
  from ._schema.geojsonsource import IGeoJSONSource # noqa
13
13
  from ._schema.videoSource import IVideoSource # noqa
14
14
  from ._schema.imageSource import IImageSource # noqa
15
+ from ._schema.geoTiffSource import IGeoTiffSource # noqa
@@ -1,3 +1,3 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: schema
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: geoTiffSource.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: geojsonsource.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: hillshadeLayer.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: imageLayer.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: imageSource.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: jgis.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: rasterDemSource.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: rasterlayer.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: rastersource.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: shapefileSource.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: vectorTileLayer.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: vectorlayer.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: vectortilesource.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: videoSource.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: webGlLayer.json
3
- # timestamp: 2024-09-13T09:04:30+00:00
3
+ # timestamp: 2024-09-18T06:52:59+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -17,6 +17,10 @@ class IWebGlLayer(BaseModel):
17
17
  opacity: Optional[confloat(ge=0.0, le=1.0, multiple_of=0.1)] = Field(
18
18
  1, description='The opacity of the source'
19
19
  )
20
- color: Optional[Union[str, List[Union[str, float, List[str]]]]] = Field(
21
- '#FF0000', description='The color of the the object'
22
- )
20
+ color: Optional[
21
+ Union[
22
+ str,
23
+ float,
24
+ List[Union[str, float, List[Union[float, str, List[Union[float, str]]]]]],
25
+ ]
26
+ ] = Field(None, description='The color of the the object')
@@ -2,7 +2,6 @@ import unittest
2
2
 
3
3
  from jupytergis_lab import GISDocument
4
4
 
5
-
6
5
  class VectorTileTests(unittest.TestCase):
7
6
 
8
7
  def setUp(self):
@@ -16,3 +15,48 @@ class VectorTileTests(unittest.TestCase):
16
15
  # If there is on source layer available and none specified we select it
17
16
  vector_tile = self.doc.add_vectortile_layer("https://planetarycomputer.microsoft.com/api/data/v1/vector/collections/ms-buildings/tilesets/global-footprints/tiles/{z}/{x}/{y}")
18
17
  assert self.doc.layers[vector_tile]["parameters"]["sourceLayer"] == "bingmlbuildings"
18
+
19
+
20
+ class TiffLayerTests(unittest.TestCase):
21
+
22
+ def setUp(self):
23
+ self.doc = GISDocument()
24
+
25
+ def test_sourcelayer(self):
26
+
27
+ color = self.doc.create_color_expr(
28
+ interpolation_type='linear',
29
+ band=1,
30
+ color_stops={0.1:[246.0,97.0,81.0,1.0],0.25:
31
+ [
32
+ 248.0,
33
+ 228.0,
34
+ 92.0,
35
+ 1.0
36
+ ],
37
+ 0.5:
38
+ [
39
+ 255.0,
40
+ 190.0,
41
+ 111.0,
42
+ 1.0
43
+ ],
44
+ 0.75:
45
+ [
46
+ 143.0,
47
+ 240.0,
48
+ 164.0,
49
+ 1.0
50
+ ],
51
+ 1.0:
52
+ [
53
+ 153.0,
54
+ 193.0,
55
+ 241.0,
56
+ 1.0
57
+ ]})
58
+
59
+ tif_layer = self.doc.add_tiff_layer(url="https://s2downloads.eox.at/demo/EOxCloudless/2020/rgbnir/s2cloudless2020-16bits_sinlge-file_z0-4.tif", color_expr=color)
60
+ assert self.doc.layers[tif_layer]["parameters"]["color"] == color
61
+
62
+
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupytergis/jupytergis-lab",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "JupyterGIS Lab extension.",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -53,9 +53,9 @@
53
53
  },
54
54
  "dependencies": {
55
55
  "@jupyter/docprovider": "^2.0.0",
56
- "@jupytergis/base": "^0.1.1",
57
- "@jupytergis/jupytergis-core": "^0.1.1",
58
- "@jupytergis/schema": "^0.1.1",
56
+ "@jupytergis/base": "^0.1.2",
57
+ "@jupytergis/jupytergis-core": "^0.1.2",
58
+ "@jupytergis/schema": "^0.1.2",
59
59
  "@jupyterlab/application": "^4.0.0",
60
60
  "@jupyterlab/apputils": "^4.0.0",
61
61
  "@jupyterlab/coreutils": "^6.0.0",
@@ -124,7 +124,7 @@
124
124
  }
125
125
  },
126
126
  "_build": {
127
- "load": "static/remoteEntry.15c6baaafaa709cc98c0.js",
127
+ "load": "static/remoteEntry.cd623e659dc416320248.js",
128
128
  "extension": "./extension",
129
129
  "style": "./style"
130
130
  }
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_jupytergis_jupytergis_lab=self.webpackChunk_jupytergis_jupytergis_lab||[]).push([[484],{484:(e,o,t)=>{t.r(o),t.d(o,{default:()=>M});var n=t(390),a=t(40),r=t(909),d=t(314),s=t(241),m=t(818),c=t(678),i=t(256),l=t(796),u=t(230),p=t(677);class g extends p.JupyterYModel{}class y extends i.Panel{constructor(e){super(),this.onResize=()=>{this._jgisWidget&&u.MessageLoop.sendMessage(this._jgisWidget,i.Widget.ResizeMessage.UnknownSize)},this.addClass("jupytergis-notebook-widget"),this._jgisWidget=new n.JupyterGISPanel(e),this.addWidget(this._jgisWidget)}}const I={id:"jupytergis:yjswidget-plugin",autoStart:!0,optional:[p.IJupyterYWidgetManager,l.ICollaborativeDrive],activate:(e,o,t)=>{o?t?o.registerWidget("@jupytergis:widget",class extends g{ydocFactory(e){const{path:o,format:n,contentType:r}=e,d=n,s=t.sharedModelFactory.createNew({path:o,format:d,contentType:r,collaborative:!0});return this.jupyterGISModel=new a.JupyterGISModel({sharedModel:s}),this.jupyterGISModel.sharedModel.ydoc}},class{constructor(e,o){this.yModel=e,this.node=o;const t=new y({model:e.jupyterGISModel});u.MessageLoop.sendMessage(t,i.Widget.Msg.BeforeAttach),o.appendChild(t.node),u.MessageLoop.sendMessage(t,i.Widget.Msg.AfterAttach)}}):console.error("Cannot setup JupyterGIS Python API without a collaborative drive"):console.error("Missing IJupyterYWidgetManager token!")}},j="jupytergis",M=[{id:"jupytergis:lab:main-menu",autoStart:!0,requires:[a.IJupyterGISDocTracker,a.IJGISFormSchemaRegistryToken,a.IJGISLayerBrowserRegistryToken,m.IStateDB],optional:[s.IMainMenu,c.ITranslator,d.ICompletionProviderManager],activate:(e,o,t,a,r,d,s,m)=>{console.log("jupytergis:lab:main-menu is activated!"),s=null!=s?s:c.nullTranslator;(0,n.createDefaultLayerRegistry)(a),(0,n.addCommands)(e,o,s,t,a,r,m);const l=new i.Menu({commands:e.commands});l.title.label=s.load("jupyterlab").__("Add Source"),l.id="jp-gis-contextmenu-addSource",e.contextMenu.addItem({type:"submenu",selector:".jp-gis-sourcePanel",rank:3,submenu:l}),l.addItem({command:n.CommandIDs.newRasterSource,args:{from:"contextMenu"}}),l.addItem({command:n.CommandIDs.newVectorSource,args:{from:"contextMenu"}}),l.addItem({command:n.CommandIDs.newGeoJSONSource,args:{from:"contextMenu"}}),l.addItem({command:n.CommandIDs.newRasterDemSource,args:{from:"contextMenu"}}),l.addItem({command:n.CommandIDs.newImageSource,args:{from:"contextMenu"}}),e.contextMenu.addItem({type:"separator",selector:".jp-gis-sourcePanel",rank:2}),e.contextMenu.addItem({selector:".jp-gis-source.jp-gis-sourceUnused",rank:1,command:n.CommandIDs.removeSource}),e.commands.addKeyBinding({command:n.CommandIDs.removeSource,keys:["Delete"],selector:".jp-gis-source.jp-gis-sourceUnused"}),e.contextMenu.addItem({selector:".jp-gis-source",rank:1,command:n.CommandIDs.renameSource}),e.commands.addKeyBinding({command:n.CommandIDs.renameSource,keys:["F2"],selector:".jp-gis-sourceItem"}),e.contextMenu.addItem({command:n.CommandIDs.symbology,selector:".jp-gis-layerItem",rank:1}),e.contextMenu.addItem({type:"separator",selector:".jp-gis-layerPanel",rank:1}),e.contextMenu.addItem({command:n.CommandIDs.removeLayer,selector:".jp-gis-layerItem",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.removeLayer,keys:["Delete"],selector:".jp-gis-layerItem"}),e.contextMenu.addItem({command:n.CommandIDs.renameLayer,selector:".jp-gis-layerItem",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.renameLayer,keys:["F2"],selector:".jp-gis-layerItem"});const u=new i.Menu({commands:e.commands});u.title.label=s.load("jupyterlab").__("Move Selected Layers to Group"),u.id="jp-gis-contextmenu-movelayer",e.contextMenu.addItem({type:"submenu",selector:".jp-gis-layerItem",rank:2,submenu:u}),e.contextMenu.opened.connect((()=>function(e,o){var t,a,r,d;if(!(null===(t=o.currentWidget)||void 0===t?void 0:t.context.model))return;const s=null===(a=o.currentWidget)||void 0===a?void 0:a.context.model,m=null!==(d=null===(r=e.menu.items.find((e=>{var o;return"submenu"===e.type&&"jp-gis-contextmenu-movelayer"===(null===(o=e.submenu)||void 0===o?void 0:o.id)})))||void 0===r?void 0:r.submenu)&&void 0!==d?d:null;if(!m)return;m.clearItems();const c=function e(o){const t=[];for(const n of o)if("string"!=typeof n&&n.layers){t.push(n.name);const o=e(n.layers);t.push(...o)}return t}(s.getLayerTree());m.addItem({command:n.CommandIDs.moveLayersToGroup,args:{label:""}}),c.forEach((e=>{m.addItem({command:n.CommandIDs.moveLayersToGroup,args:{label:e}})})),m.addItem({command:n.CommandIDs.moveLayerToNewGroup})}(e.contextMenu,o))),e.contextMenu.addItem({command:n.CommandIDs.removeGroup,selector:".jp-gis-layerGroupHeader",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.removeGroup,keys:["Delete"],selector:".jp-gis-layerGroupHeader"}),e.contextMenu.addItem({command:n.CommandIDs.renameGroup,selector:".jp-gis-layerGroupHeader",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.renameGroup,keys:["F2"],selector:".jp-gis-layerGroupHeader"}),e.contextMenu.addItem({type:"separator",selector:".jp-gis-layerPanel",rank:2});const p=new i.Menu({commands:e.commands});p.title.label=s.load("jupyterlab").__("Add Layer"),p.id="jp-gis-contextmenu-addLayer",e.contextMenu.addItem({type:"submenu",selector:".jp-gis-layerPanel",rank:3,submenu:p}),p.addItem({command:n.CommandIDs.newRasterLayer,args:{from:"contextMenu"}}),p.addItem({command:n.CommandIDs.newVectorLayer,args:{from:"contextMenu"}}),p.addItem({command:n.CommandIDs.newHillshadeLayer,args:{from:"contextMenu"}}),p.addItem({command:n.CommandIDs.newImageLayer,args:{from:"contextMenu"}}),d&&function(e,o){e.editMenu.undoers.redo.add({id:n.CommandIDs.redo,isEnabled:o}),e.editMenu.undoers.undo.add({id:n.CommandIDs.undo,isEnabled:o})}(d,(()=>null!==o.currentWidget&&o.currentWidget===e.shell.currentWidget)),e.commands.addKeyBinding({command:n.CommandIDs.executeConsole,keys:["Shift Enter"],selector:".jpgis-console .jp-CodeConsole[data-jp-interaction-mode='notebook'] .jp-CodeConsole-promptCell"}),e.commands.addKeyBinding({command:n.CommandIDs.invokeCompleter,keys:["Tab"],selector:".jpgis-console .jp-CodeConsole-promptCell .jp-mod-completer-enabled"}),e.commands.addKeyBinding({command:n.CommandIDs.selectCompleter,keys:["Enter"],selector:".jpgis-console .jp-ConsolePanel .jp-mod-completer-active"})}},{id:"jupytergis:lab:controlpanel",autoStart:!0,requires:[r.ILayoutRestorer,a.IJupyterGISDocTracker,a.IJGISFormSchemaRegistryToken,m.IStateDB],activate:(e,o,t,a,r)=>{const d=new n.ControlPanelModel({tracker:t}),s=new n.LeftPanelWidget({model:d,tracker:t,state:r});s.id="jupytergis::leftControlPanel",s.title.caption="JupyterGIS Control Panel",s.title.icon=n.logoMiniIcon;const m=new n.RightPanelWidget({model:d,tracker:t,formSchemaRegistry:a});m.id="jupytergis::rightControlPanel",m.title.caption="JupyterGIS Control Panel",m.title.icon=n.logoMiniIcon,o&&(o.add(s,j),o.add(m,j)),e.shell.add(s,"left",{rank:2e3}),e.shell.add(m,"right",{rank:2e3})}},I]}}]);
@@ -0,0 +1 @@
1
+ var _JUPYTERLAB;(()=>{"use strict";var e,r,t,n,a,o,i,u,l,s,f,d,p,c,h,g,v,b,y,m={450:(e,r,t)=>{var n={"./index":()=>t.e(484).then((()=>()=>t(484))),"./extension":()=>t.e(484).then((()=>()=>t(484))),"./style":()=>Promise.all([t.e(373),t.e(432)]).then((()=>()=>t(432)))},a=(e,r)=>(t.R=r,r=t.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),o=(e,r)=>{if(t.S){var n="default",a=t.S[n];if(a&&a!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[n]=e,t.I(n,r)}};t.d(r,{get:()=>a,init:()=>o})}},j={};function w(e){var r=j[e];if(void 0!==r)return r.exports;var t=j[e]={id:e,exports:{}};return m[e](t,t.exports,w),t.exports}w.m=m,w.c=j,w.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return w.d(r,{a:r}),r},w.d=(e,r)=>{for(var t in r)w.o(r,t)&&!w.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},w.f={},w.e=e=>Promise.all(Object.keys(w.f).reduce(((r,t)=>(w.f[t](e,r),r)),[])),w.u=e=>e+"."+{373:"1c3d89f9ed56880711bd",432:"28aaec36233a73d1589c",484:"bfbeec299fb2543b6a74"}[e]+".js?v="+{373:"1c3d89f9ed56880711bd",432:"28aaec36233a73d1589c",484:"bfbeec299fb2543b6a74"}[e],w.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),w.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@jupytergis/jupytergis-lab:",w.l=(t,n,a,o)=>{if(e[t])e[t].push(n);else{var i,u;if(void 0!==a)for(var l=document.getElementsByTagName("script"),s=0;s<l.length;s++){var f=l[s];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==r+a){i=f;break}}i||(u=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,w.nc&&i.setAttribute("nonce",w.nc),i.setAttribute("data-webpack",r+a),i.src=t),e[t]=[n];var d=(r,n)=>{i.onerror=i.onload=null,clearTimeout(p);var a=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((e=>e(n))),r)return r(n)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),u&&document.head.appendChild(i)}},w.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{w.S={};var e={},r={};w.I=(t,n)=>{n||(n=[]);var a=r[t];if(a||(a=r[t]={}),!(n.indexOf(a)>=0)){if(n.push(a),e[t])return e[t];w.o(w.S,t)||(w.S[t]={});var o=w.S[t],i="@jupytergis/jupytergis-lab",u=[];return"default"===t&&((e,r,t,n)=>{var a=o[e]=o[e]||{},u=a[r];(!u||!u.loaded&&(1!=!u.eager?n:i>u.from))&&(a[r]={get:()=>w.e(484).then((()=>()=>w(484))),from:i,eager:!1})})("@jupytergis/jupytergis-lab","0.1.2"),e[t]=u.length?Promise.all(u).then((()=>e[t]=1)):1}}})(),(()=>{var e;w.g.importScripts&&(e=w.g.location+"");var r=w.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),w.p=e})(),t=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=t[1]?r(t[1]):[];return t[2]&&(n.length++,n.push.apply(n,r(t[2]))),t[3]&&(n.push([]),n.push.apply(n,r(t[3]))),n},n=(e,r)=>{e=t(e),r=t(r);for(var n=0;;){if(n>=e.length)return n<r.length&&"u"!=(typeof r[n])[0];var a=e[n],o=(typeof a)[0];if(n>=r.length)return"u"==o;var i=r[n],u=(typeof i)[0];if(o!=u)return"o"==o&&"n"==u||"s"==u||"u"==o;if("o"!=o&&"u"!=o&&a!=i)return a<i;n++}},a=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var n=1,o=1;o<e.length;o++)n--,t+="u"==(typeof(u=e[o]))[0]?"-":(n>0?".":"")+(n=2,u);return t}var i=[];for(o=1;o<e.length;o++){var u=e[o];i.push(0===u?"not("+l()+")":1===u?"("+l()+" || "+l()+")":2===u?i.pop()+" "+i.pop():a(u))}return l();function l(){return i.pop().replace(/^\((.+)\)$/,"$1")}},o=(e,r)=>{if(0 in e){r=t(r);var n=e[0],a=n<0;a&&(n=-n-1);for(var i=0,u=1,l=!0;;u++,i++){var s,f,d=u<e.length?(typeof e[u])[0]:"";if(i>=r.length||"o"==(f=(typeof(s=r[i]))[0]))return!l||("u"==d?u>n&&!a:""==d!=a);if("u"==f){if(!l||"u"!=d)return!1}else if(l)if(d==f)if(u<=n){if(s!=e[u])return!1}else{if(a?s>e[u]:s<e[u])return!1;s!=e[u]&&(l=!1)}else if("s"!=d&&"n"!=d){if(a||u<=n)return!1;l=!1,u--}else{if(u<=n||f<d!=a)return!1;l=!1}else"s"!=d&&"n"!=d&&(l=!1,u--)}}var p=[],c=p.pop.bind(p);for(i=1;i<e.length;i++){var h=e[i];p.push(1==h?c()|c():2==h?c()&c():h?o(h,r):!c())}return!!c()},i=(e,r)=>e&&w.o(e,r),u=e=>(e.loaded=1,e.get()),l=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),s=(e,r,t)=>{var a=t?l(e[r]):e[r];return Object.keys(a).reduce(((e,r)=>!e||!a[e].loaded&&n(e,r)?r:e),0)},f=(e,r,t,n)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+a(n)+")",d=e=>{throw new Error(e)},p=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},c=(e,r,t)=>t?t():((e,r)=>d("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),h=(e=>function(r,t,n,a,o){var i=w.I(r);return i&&i.then&&!n?i.then(e.bind(e,r,w.S[r],t,!1,a,o)):e(r,w.S[r],t,n,a,o)})(((e,r,t,n,a,l)=>{if(!i(r,t))return c(e,t,l);var d=s(r,t,n);return o(a,d)||p(f(r,t,d,a)),u(r[t][d])})),g={},v={40:()=>h("default","@jupytergis/schema",!1,[2,0,1,2]),230:()=>h("default","@lumino/messaging",!1,[1,2,0,0]),241:()=>h("default","@jupyterlab/mainmenu",!1,[1,4,2,5]),256:()=>h("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",0]),314:()=>h("default","@jupyterlab/completer",!1,[1,4,2,5]),390:()=>h("default","@jupytergis/base",!1,[2,0,1,2]),677:()=>h("default","yjs-widgets",!1,[2,0,3,5]),678:()=>h("default","@jupyterlab/translation",!1,[1,4,2,5]),796:()=>h("default","@jupyter/docprovider",!1,[1,2,0,0]),818:()=>h("default","@jupyterlab/statedb",!1,[1,4,2,5]),909:()=>h("default","@jupyterlab/application",!1,[1,4,2,5])},b={484:[40,230,241,256,314,390,677,678,796,818,909]},y={},w.f.consumes=(e,r)=>{w.o(b,e)&&b[e].forEach((e=>{if(w.o(g,e))return r.push(g[e]);if(!y[e]){var t=r=>{g[e]=0,w.m[e]=t=>{delete w.c[e],t.exports=r()}};y[e]=!0;var n=r=>{delete g[e],w.m[e]=t=>{throw delete w.c[e],r}};try{var a=v[e]();a.then?r.push(g[e]=a.then(t).catch(n)):t(a)}catch(e){n(e)}}}))},(()=>{w.b=document.baseURI||self.location.href;var e={738:0};w.f.j=(r,t)=>{var n=w.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else{var a=new Promise(((t,a)=>n=e[r]=[t,a]));t.push(n[2]=a);var o=w.p+w.u(r),i=new Error;w.l(o,(t=>{if(w.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var a=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+a+": "+o+")",i.name="ChunkLoadError",i.type=a,i.request=o,n[1](i)}}),"chunk-"+r,r)}};var r=(r,t)=>{var n,a,[o,i,u]=t,l=0;if(o.some((r=>0!==e[r]))){for(n in i)w.o(i,n)&&(w.m[n]=i[n]);u&&u(w)}for(r&&r(t);l<o.length;l++)a=o[l],w.o(e,a)&&e[a]&&e[a][0](),e[a]=0},t=self.webpackChunk_jupytergis_jupytergis_lab=self.webpackChunk_jupytergis_jupytergis_lab||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),w.nc=void 0;var S=w(450);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["@jupytergis/jupytergis-lab"]=S})();
@@ -8,7 +8,7 @@
8
8
  },
9
9
  {
10
10
  "name": "@jupytergis/base",
11
- "versionInfo": "0.1.1",
11
+ "versionInfo": "0.1.2",
12
12
  "licenseId": "BSD-3-Clause",
13
13
  "extractedText": ""
14
14
  },
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: jupytergis_lab
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Dynamic: Keywords
5
5
  Summary: JupyterGIS Lab extension.
6
6
  Project-URL: Homepage, https://github.com/geojupyter/jupytergis
@@ -0,0 +1,37 @@
1
+ jupytergis_lab/__init__.py,sha256=7JnaPOma8FOJ_1vkd_cELf4y89mgCNxQMSbVChJ4p04,540
2
+ jupytergis_lab/_version.py,sha256=vYZ6rLVUw05xbWIGie5W7cVk18sWwVN72cGSZ2ngSYU,171
3
+ jupytergis_lab/notebook/__init__.py,sha256=YFLWhp-9CMd5HIXVEVlFwzBiS7sZKvHUArEEz8xhP6I,46
4
+ jupytergis_lab/notebook/gis_document.py,sha256=GubK9MAE0jsy_lB3pe6W8anfxIPXgZ4nVwkMTmVH3AU,23534
5
+ jupytergis_lab/notebook/utils.py,sha256=z_qGt6mEyBNqVx9WYASeBB15qTfLozCLLU2L4YH5Ats,1006
6
+ jupytergis_lab/notebook/y_connector.py,sha256=5D0ctt8oojfVXCxCMLpIrDlNIrQWEoeMr4Q7jtQQQMY,944
7
+ jupytergis_lab/notebook/objects/__init__.py,sha256=U5JpTtYIgnjzk27clL0zEAXbrY619cWUJFiTV5peujg,716
8
+ jupytergis_lab/notebook/objects/_schema/__init__.py,sha256=nowiGeYtPZ4FwGGLs0w8eYqzZTFjYCTKuTDn2Teqy90,97
9
+ jupytergis_lab/notebook/objects/_schema/geoTiffSource.py,sha256=hvpdme2IK2ogpVp8DAEezCv9s_1mv8GOjbv0s8fIcgo,583
10
+ jupytergis_lab/notebook/objects/_schema/geojsonsource.py,sha256=WgmXqeALkOTbG-MbcpwT4THEYGNdbf8DUiM6ro-4H6I,10710
11
+ jupytergis_lab/notebook/objects/_schema/hillshadeLayer.py,sha256=8d1grWcHcnTs-Di8pVRUJzPD6n8NrY10nMTSIRJKeLA,496
12
+ jupytergis_lab/notebook/objects/_schema/imageLayer.py,sha256=T77O1n1NHdXG84Y2QcEqzmJ0v-OCt3QWHhWODt26S1g,521
13
+ jupytergis_lab/notebook/objects/_schema/imageSource.py,sha256=214b5YvwU6H5srkO6xpnik6_nDe9oQxkaJcMp_ly-RU,644
14
+ jupytergis_lab/notebook/objects/_schema/jgis.py,sha256=ZCvKEtiktUTVwN5-j0LeeKx-tw-3fu37jKpgjGKYpzk,3253
15
+ jupytergis_lab/notebook/objects/_schema/rasterDemSource.py,sha256=H0XlMvdHTaDCTMa2yd_AIJevHyJZ3Nw4wx0eF-VeM_0,781
16
+ jupytergis_lab/notebook/objects/_schema/rasterlayer.py,sha256=reKV-rwE89EY-ZPudvpWXxFHRQ-gchMB5lqT3-T__ZM,523
17
+ jupytergis_lab/notebook/objects/_schema/rastersource.py,sha256=no6gTqGNRIwqcHNNJ701siy2mmhiRxSv_NAByiApf8U,1119
18
+ jupytergis_lab/notebook/objects/_schema/shapefileSource.py,sha256=dDIK7bs5V6_IAj4iXPpOVEjuc9079YwqY2h9XquN1v0,986
19
+ jupytergis_lab/notebook/objects/_schema/vectorTileLayer.py,sha256=31TOZn-DIrHB4HAl53R-qYPKD86-LxUE_tzfkmVZdG4,874
20
+ jupytergis_lab/notebook/objects/_schema/vectorlayer.py,sha256=huL9-jG_1NNraQS47e_3MV01za7MSWch2CrFgD_7tJk,866
21
+ jupytergis_lab/notebook/objects/_schema/vectortilesource.py,sha256=30ZBODB7R4fbtmJAq2BmBIdUXvnyU4whY5ZsEhnwAUc,902
22
+ jupytergis_lab/notebook/objects/_schema/videoSource.py,sha256=FaV12LNDbLACvAJiYJthiUdnshnNTaV9Czvlt9QFw8k,719
23
+ jupytergis_lab/notebook/objects/_schema/webGlLayer.py,sha256=9vtQwt4DDm4kon7GzZhi9WIKrUTRv8de8unUMW6STJE,766
24
+ jupytergis_lab/notebook/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ jupytergis_lab/notebook/tests/test_api.py,sha256=nrn8UD_Djka3k0P1BmOsErOXVrt0vbYNR659mOGb1QI,1898
26
+ jupytergis_lab-0.1.2.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/package.json,sha256=c5-IB9Ezaft15JA-rOxb_4tSuT_lrnudeYmA3unnW_s,4122
27
+ jupytergis_lab-0.1.2.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/373.1c3d89f9ed56880711bd.js,sha256=HD2J-e1WiAcRvbCCEUUOMoY6EFn-IGyXhNPkJ2fDRLk,20030
28
+ jupytergis_lab-0.1.2.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/432.28aaec36233a73d1589c.js,sha256=KKrsNiM6c9FYnMYB00D8HLg7Am5-MGVvZMw-k9W2Dkg,22004
29
+ jupytergis_lab-0.1.2.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/484.bfbeec299fb2543b6a74.js,sha256=v77sKZ-yVDtqdEf5lpHMj451rhXStXmxylN9JHHKSno,6938
30
+ jupytergis_lab-0.1.2.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/remoteEntry.cd623e659dc416320248.js,sha256=zWI-ZZ3EFjICSLMduNcaho4ZfUWy0LTV3ZuCO9i5OZ8,7385
31
+ jupytergis_lab-0.1.2.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/style.js,sha256=pog22wM5nCMkQO0YWJ94eDKAF1OlO1ZvCDGi_rO335U,169
32
+ jupytergis_lab-0.1.2.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/third-party-licenses.json,sha256=gX0w_0zxK7qF9PI99HVzowAWN85AAGGXJNJampG8ToA,5928
33
+ jupytergis_lab-0.1.2.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/install.json,sha256=t_TWPC6MDZMygRm9ujZ63nap014Sb5htaW5QEOjrmgI,189
34
+ jupytergis_lab-0.1.2.dist-info/METADATA,sha256=tJOjyAgPVPuZtgfFYMMXKU7t0aP8RWFcmzx2cfMTsSY,3271
35
+ jupytergis_lab-0.1.2.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
36
+ jupytergis_lab-0.1.2.dist-info/licenses/LICENSE,sha256=VblFgHMsSan_kg15lNsI-YHIqUOUNXGptcoaX2yDDhU,1531
37
+ jupytergis_lab-0.1.2.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_jupytergis_jupytergis_lab=self.webpackChunk_jupytergis_jupytergis_lab||[]).push([[484],{484:(e,o,t)=>{t.r(o),t.d(o,{default:()=>h});var n=t(323),a=t(33),r=t(909),s=t(314),d=t(241),m=t(818),c=t(678),l=t(256),i=t(796),u=t(473),p=t(354),g=t(230),y=t(677);class I extends y.JupyterYModel{}class j extends l.Panel{constructor(e){super(),this.onResize=()=>{this._jgisWidget&&g.MessageLoop.sendMessage(this._jgisWidget,l.Widget.ResizeMessage.UnknownSize)},this.addClass("jupytergis-notebook-widget"),this._jgisWidget=new n.JupyterGISPanel(e),this.addWidget(this._jgisWidget)}}const M={id:"jupytergis:yjswidget-plugin",autoStart:!0,optional:[y.IJupyterYWidgetManager,c.ITranslator],activate:(e,o,t)=>{if(!o)return void console.error("Missing IJupyterYWidgetManager token!");const n=null!=t?t:c.nullTranslator;o.registerWidget("@jupytergis:widget",class extends I{ydocFactory(o){const{path:t,format:r,contentType:s}=o;this.jupyterGISModel=new a.JupyterGISModel({});const d=e.serviceManager.user;if(t&&r&&s){const e=p.ServerConnection.makeSettings(),o=u.URLExt.join(e.wsUrl,"api/collaboration/room"),a=new i.WebSocketProvider({url:o,path:t,format:r,contentType:s,model:this.jupyterGISModel.sharedModel,user:d,translator:n.load("jupyterlab")});this.jupyterGISModel.disposed.connect((()=>{a.dispose()}))}else{const e=this.jupyterGISModel.sharedModel.awareness,o=o=>{e.setLocalStateField("user",o.identity)};d.ready.then((()=>{o(d)})).catch((e=>console.error(e))),d.userChanged.connect(o,this)}return this.jupyterGISModel.sharedModel.ydoc}},class{constructor(e,o){this.yModel=e,this.node=o;const t=new j({model:e.jupyterGISModel});g.MessageLoop.sendMessage(t,l.Widget.Msg.BeforeAttach),o.appendChild(t.node),g.MessageLoop.sendMessage(t,l.Widget.Msg.AfterAttach)}})}},C="jupytergis",h=[{id:"jupytergis:lab:main-menu",autoStart:!0,requires:[a.IJupyterGISDocTracker,a.IJGISFormSchemaRegistryToken,a.IJGISLayerBrowserRegistryToken,m.IStateDB],optional:[d.IMainMenu,c.ITranslator,s.ICompletionProviderManager],activate:(e,o,t,a,r,s,d,m)=>{console.log("jupytergis:lab:main-menu is activated!"),d=null!=d?d:c.nullTranslator;(0,n.createDefaultLayerRegistry)(a),(0,n.addCommands)(e,o,d,t,a,r,m);const i=new l.Menu({commands:e.commands});i.title.label=d.load("jupyterlab").__("Add Source"),i.id="jp-gis-contextmenu-addSource",e.contextMenu.addItem({type:"submenu",selector:".jp-gis-sourcePanel",rank:3,submenu:i}),i.addItem({command:n.CommandIDs.newRasterSource,args:{from:"contextMenu"}}),i.addItem({command:n.CommandIDs.newVectorSource,args:{from:"contextMenu"}}),i.addItem({command:n.CommandIDs.newGeoJSONSource,args:{from:"contextMenu"}}),i.addItem({command:n.CommandIDs.newRasterDemSource,args:{from:"contextMenu"}}),i.addItem({command:n.CommandIDs.newImageSource,args:{from:"contextMenu"}}),e.contextMenu.addItem({type:"separator",selector:".jp-gis-sourcePanel",rank:2}),e.contextMenu.addItem({selector:".jp-gis-source.jp-gis-sourceUnused",rank:1,command:n.CommandIDs.removeSource}),e.commands.addKeyBinding({command:n.CommandIDs.removeSource,keys:["Delete"],selector:".jp-gis-source.jp-gis-sourceUnused"}),e.contextMenu.addItem({selector:".jp-gis-source",rank:1,command:n.CommandIDs.renameSource}),e.commands.addKeyBinding({command:n.CommandIDs.renameSource,keys:["F2"],selector:".jp-gis-sourceItem"}),e.contextMenu.addItem({command:n.CommandIDs.symbology,selector:".jp-gis-layerItem",rank:1}),e.contextMenu.addItem({type:"separator",selector:".jp-gis-layerPanel",rank:1}),e.contextMenu.addItem({command:n.CommandIDs.removeLayer,selector:".jp-gis-layerItem",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.removeLayer,keys:["Delete"],selector:".jp-gis-layerItem"}),e.contextMenu.addItem({command:n.CommandIDs.renameLayer,selector:".jp-gis-layerItem",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.renameLayer,keys:["F2"],selector:".jp-gis-layerItem"});const u=new l.Menu({commands:e.commands});u.title.label=d.load("jupyterlab").__("Move Selected Layers to Group"),u.id="jp-gis-contextmenu-movelayer",e.contextMenu.addItem({type:"submenu",selector:".jp-gis-layerItem",rank:2,submenu:u}),e.contextMenu.opened.connect((()=>function(e,o){var t,a,r,s;if(!(null===(t=o.currentWidget)||void 0===t?void 0:t.context.model))return;const d=null===(a=o.currentWidget)||void 0===a?void 0:a.context.model,m=null!==(s=null===(r=e.menu.items.find((e=>{var o;return"submenu"===e.type&&"jp-gis-contextmenu-movelayer"===(null===(o=e.submenu)||void 0===o?void 0:o.id)})))||void 0===r?void 0:r.submenu)&&void 0!==s?s:null;if(!m)return;m.clearItems();const c=function e(o){const t=[];for(const n of o)if("string"!=typeof n&&n.layers){t.push(n.name);const o=e(n.layers);t.push(...o)}return t}(d.getLayerTree());m.addItem({command:n.CommandIDs.moveLayersToGroup,args:{label:""}}),c.forEach((e=>{m.addItem({command:n.CommandIDs.moveLayersToGroup,args:{label:e}})})),m.addItem({command:n.CommandIDs.moveLayerToNewGroup})}(e.contextMenu,o))),e.contextMenu.addItem({command:n.CommandIDs.removeGroup,selector:".jp-gis-layerGroupHeader",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.removeGroup,keys:["Delete"],selector:".jp-gis-layerGroupHeader"}),e.contextMenu.addItem({command:n.CommandIDs.renameGroup,selector:".jp-gis-layerGroupHeader",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.renameGroup,keys:["F2"],selector:".jp-gis-layerGroupHeader"}),e.contextMenu.addItem({type:"separator",selector:".jp-gis-layerPanel",rank:2});const p=new l.Menu({commands:e.commands});p.title.label=d.load("jupyterlab").__("Add Layer"),p.id="jp-gis-contextmenu-addLayer",e.contextMenu.addItem({type:"submenu",selector:".jp-gis-layerPanel",rank:3,submenu:p}),p.addItem({command:n.CommandIDs.newRasterLayer,args:{from:"contextMenu"}}),p.addItem({command:n.CommandIDs.newVectorLayer,args:{from:"contextMenu"}}),p.addItem({command:n.CommandIDs.newHillshadeLayer,args:{from:"contextMenu"}}),p.addItem({command:n.CommandIDs.newImageLayer,args:{from:"contextMenu"}}),s&&function(e,o){e.editMenu.undoers.redo.add({id:n.CommandIDs.redo,isEnabled:o}),e.editMenu.undoers.undo.add({id:n.CommandIDs.undo,isEnabled:o})}(s,(()=>null!==o.currentWidget&&o.currentWidget===e.shell.currentWidget)),e.commands.addKeyBinding({command:n.CommandIDs.executeConsole,keys:["Shift Enter"],selector:".jpgis-console .jp-CodeConsole[data-jp-interaction-mode='notebook'] .jp-CodeConsole-promptCell"}),e.commands.addKeyBinding({command:n.CommandIDs.invokeCompleter,keys:["Tab"],selector:".jpgis-console .jp-CodeConsole-promptCell .jp-mod-completer-enabled"}),e.commands.addKeyBinding({command:n.CommandIDs.selectCompleter,keys:["Enter"],selector:".jpgis-console .jp-ConsolePanel .jp-mod-completer-active"})}},{id:"jupytergis:lab:controlpanel",autoStart:!0,requires:[r.ILayoutRestorer,a.IJupyterGISDocTracker,a.IJGISFormSchemaRegistryToken,m.IStateDB],activate:(e,o,t,a,r)=>{const s=new n.ControlPanelModel({tracker:t}),d=new n.LeftPanelWidget({model:s,tracker:t,state:r});d.id="jupytergis::leftControlPanel",d.title.caption="JupyterGIS Control Panel";const m=new n.RightPanelWidget({model:s,tracker:t,formSchemaRegistry:a});m.id="jupytergis::rightControlPanel",m.title.caption="JupyterGIS Control Panel",o&&(o.add(d,C),o.add(m,C)),e.shell.add(d,"left",{rank:2e3}),e.shell.add(m,"right",{rank:2e3})}},M]}}]);
@@ -1 +0,0 @@
1
- var _JUPYTERLAB;(()=>{"use strict";var e,r,t,a,n,o,i,u,l,s,f,p,d,c,h,g,v,b,y,m={450:(e,r,t)=>{var a={"./index":()=>t.e(484).then((()=>()=>t(484))),"./extension":()=>t.e(484).then((()=>()=>t(484))),"./style":()=>Promise.all([t.e(373),t.e(432)]).then((()=>()=>t(432)))},n=(e,r)=>(t.R=r,r=t.o(a,e)?a[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),o=(e,r)=>{if(t.S){var a="default",n=t.S[a];if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[a]=e,t.I(a,r)}};t.d(r,{get:()=>n,init:()=>o})}},j={};function w(e){var r=j[e];if(void 0!==r)return r.exports;var t=j[e]={id:e,exports:{}};return m[e](t,t.exports,w),t.exports}w.m=m,w.c=j,w.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return w.d(r,{a:r}),r},w.d=(e,r)=>{for(var t in r)w.o(r,t)&&!w.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},w.f={},w.e=e=>Promise.all(Object.keys(w.f).reduce(((r,t)=>(w.f[t](e,r),r)),[])),w.u=e=>e+"."+{373:"1c3d89f9ed56880711bd",432:"28aaec36233a73d1589c",484:"7cd11c502baf51c3285e"}[e]+".js?v="+{373:"1c3d89f9ed56880711bd",432:"28aaec36233a73d1589c",484:"7cd11c502baf51c3285e"}[e],w.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),w.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@jupytergis/jupytergis-lab:",w.l=(t,a,n,o)=>{if(e[t])e[t].push(a);else{var i,u;if(void 0!==n)for(var l=document.getElementsByTagName("script"),s=0;s<l.length;s++){var f=l[s];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==r+n){i=f;break}}i||(u=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,w.nc&&i.setAttribute("nonce",w.nc),i.setAttribute("data-webpack",r+n),i.src=t),e[t]=[a];var p=(r,a)=>{i.onerror=i.onload=null,clearTimeout(d);var n=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach((e=>e(a))),r)return r(a)},d=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),u&&document.head.appendChild(i)}},w.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{w.S={};var e={},r={};w.I=(t,a)=>{a||(a=[]);var n=r[t];if(n||(n=r[t]={}),!(a.indexOf(n)>=0)){if(a.push(n),e[t])return e[t];w.o(w.S,t)||(w.S[t]={});var o=w.S[t],i="@jupytergis/jupytergis-lab",u=[];return"default"===t&&((e,r,t,a)=>{var n=o[e]=o[e]||{},u=n[r];(!u||!u.loaded&&(1!=!u.eager?a:i>u.from))&&(n[r]={get:()=>w.e(484).then((()=>()=>w(484))),from:i,eager:!1})})("@jupytergis/jupytergis-lab","0.1.1"),e[t]=u.length?Promise.all(u).then((()=>e[t]=1)):1}}})(),(()=>{var e;w.g.importScripts&&(e=w.g.location+"");var r=w.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var a=t.length-1;a>-1&&(!e||!/^http(s?):/.test(e));)e=t[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),w.p=e})(),t=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),a=t[1]?r(t[1]):[];return t[2]&&(a.length++,a.push.apply(a,r(t[2]))),t[3]&&(a.push([]),a.push.apply(a,r(t[3]))),a},a=(e,r)=>{e=t(e),r=t(r);for(var a=0;;){if(a>=e.length)return a<r.length&&"u"!=(typeof r[a])[0];var n=e[a],o=(typeof n)[0];if(a>=r.length)return"u"==o;var i=r[a],u=(typeof i)[0];if(o!=u)return"o"==o&&"n"==u||"s"==u||"u"==o;if("o"!=o&&"u"!=o&&n!=i)return n<i;a++}},n=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var a=1,o=1;o<e.length;o++)a--,t+="u"==(typeof(u=e[o]))[0]?"-":(a>0?".":"")+(a=2,u);return t}var i=[];for(o=1;o<e.length;o++){var u=e[o];i.push(0===u?"not("+l()+")":1===u?"("+l()+" || "+l()+")":2===u?i.pop()+" "+i.pop():n(u))}return l();function l(){return i.pop().replace(/^\((.+)\)$/,"$1")}},o=(e,r)=>{if(0 in e){r=t(r);var a=e[0],n=a<0;n&&(a=-a-1);for(var i=0,u=1,l=!0;;u++,i++){var s,f,p=u<e.length?(typeof e[u])[0]:"";if(i>=r.length||"o"==(f=(typeof(s=r[i]))[0]))return!l||("u"==p?u>a&&!n:""==p!=n);if("u"==f){if(!l||"u"!=p)return!1}else if(l)if(p==f)if(u<=a){if(s!=e[u])return!1}else{if(n?s>e[u]:s<e[u])return!1;s!=e[u]&&(l=!1)}else if("s"!=p&&"n"!=p){if(n||u<=a)return!1;l=!1,u--}else{if(u<=a||f<p!=n)return!1;l=!1}else"s"!=p&&"n"!=p&&(l=!1,u--)}}var d=[],c=d.pop.bind(d);for(i=1;i<e.length;i++){var h=e[i];d.push(1==h?c()|c():2==h?c()&c():h?o(h,r):!c())}return!!c()},i=(e,r)=>e&&w.o(e,r),u=e=>(e.loaded=1,e.get()),l=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),s=(e,r,t)=>{var n=t?l(e[r]):e[r];return Object.keys(n).reduce(((e,r)=>!e||!n[e].loaded&&a(e,r)?r:e),0)},f=(e,r,t,a)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+n(a)+")",p=e=>{throw new Error(e)},d=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},c=(e,r,t)=>t?t():((e,r)=>p("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),h=(e=>function(r,t,a,n,o){var i=w.I(r);return i&&i.then&&!a?i.then(e.bind(e,r,w.S[r],t,!1,n,o)):e(r,w.S[r],t,a,n,o)})(((e,r,t,a,n,l)=>{if(!i(r,t))return c(e,t,l);var p=s(r,t,a);return o(n,p)||d(f(r,t,p,n)),u(r[t][p])})),g={},v={33:()=>h("default","@jupytergis/schema",!1,[2,0,1,1]),230:()=>h("default","@lumino/messaging",!1,[1,2,0,0]),241:()=>h("default","@jupyterlab/mainmenu",!1,[1,4,2,5]),256:()=>h("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",0]),314:()=>h("default","@jupyterlab/completer",!1,[1,4,2,5]),323:()=>h("default","@jupytergis/base",!1,[2,0,1,1]),354:()=>h("default","@jupyterlab/services",!1,[1,7,2,5]),473:()=>h("default","@jupyterlab/coreutils",!1,[1,6,2,5]),677:()=>h("default","yjs-widgets",!1,[2,0,3,5]),678:()=>h("default","@jupyterlab/translation",!1,[1,4,2,5]),796:()=>h("default","@jupyter/docprovider",!1,[1,2,0,0]),818:()=>h("default","@jupyterlab/statedb",!1,[1,4,2,5]),909:()=>h("default","@jupyterlab/application",!1,[1,4,2,5])},b={484:[33,230,241,256,314,323,354,473,677,678,796,818,909]},y={},w.f.consumes=(e,r)=>{w.o(b,e)&&b[e].forEach((e=>{if(w.o(g,e))return r.push(g[e]);if(!y[e]){var t=r=>{g[e]=0,w.m[e]=t=>{delete w.c[e],t.exports=r()}};y[e]=!0;var a=r=>{delete g[e],w.m[e]=t=>{throw delete w.c[e],r}};try{var n=v[e]();n.then?r.push(g[e]=n.then(t).catch(a)):t(n)}catch(e){a(e)}}}))},(()=>{w.b=document.baseURI||self.location.href;var e={738:0};w.f.j=(r,t)=>{var a=w.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else{var n=new Promise(((t,n)=>a=e[r]=[t,n]));t.push(a[2]=n);var o=w.p+w.u(r),i=new Error;w.l(o,(t=>{if(w.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+n+": "+o+")",i.name="ChunkLoadError",i.type=n,i.request=o,a[1](i)}}),"chunk-"+r,r)}};var r=(r,t)=>{var a,n,[o,i,u]=t,l=0;if(o.some((r=>0!==e[r]))){for(a in i)w.o(i,a)&&(w.m[a]=i[a]);u&&u(w)}for(r&&r(t);l<o.length;l++)n=o[l],w.o(e,n)&&e[n]&&e[n][0](),e[n]=0},t=self.webpackChunk_jupytergis_jupytergis_lab=self.webpackChunk_jupytergis_jupytergis_lab||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),w.nc=void 0;var S=w(450);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["@jupytergis/jupytergis-lab"]=S})();
@@ -1,37 +0,0 @@
1
- jupytergis_lab/__init__.py,sha256=7JnaPOma8FOJ_1vkd_cELf4y89mgCNxQMSbVChJ4p04,540
2
- jupytergis_lab/_version.py,sha256=lFB9nR4WN0iXcp5UpfmTfw1Z2jWBDmClLEWF046NHmc,171
3
- jupytergis_lab/notebook/__init__.py,sha256=YFLWhp-9CMd5HIXVEVlFwzBiS7sZKvHUArEEz8xhP6I,46
4
- jupytergis_lab/notebook/gis_document.py,sha256=Vr4TqzhFsMiC0Tt9mVbSIKoxwerJJfJ5xKeRsD14_34,19809
5
- jupytergis_lab/notebook/utils.py,sha256=z_qGt6mEyBNqVx9WYASeBB15qTfLozCLLU2L4YH5Ats,1006
6
- jupytergis_lab/notebook/y_connector.py,sha256=5D0ctt8oojfVXCxCMLpIrDlNIrQWEoeMr4Q7jtQQQMY,944
7
- jupytergis_lab/notebook/objects/__init__.py,sha256=PY-_YvkLVZ9IZbqBfaImOiHuOL8_NgSCsAFaa64nf_U,658
8
- jupytergis_lab/notebook/objects/_schema/__init__.py,sha256=VnSvnnZHALX7VBFofeljYzfMRbSwk7NgQ0uTfIHrAZ8,97
9
- jupytergis_lab/notebook/objects/_schema/geoTiffSource.py,sha256=fUKP0XbEGzYkczTKTSbarGi-_iIPY_b5XA66ptTrSjk,583
10
- jupytergis_lab/notebook/objects/_schema/geojsonsource.py,sha256=xmLSPaDpNSopMGzEx9uM4fIqJGM0tAMcelxrQosp2io,10710
11
- jupytergis_lab/notebook/objects/_schema/hillshadeLayer.py,sha256=BulXyYRURQiViDhxXqNx29J7VT1wNbmci8C_i4I8SWY,496
12
- jupytergis_lab/notebook/objects/_schema/imageLayer.py,sha256=H8hpGXcL3VsiPngByRDl4ZEU2j4D3oAw9343hztFvlE,521
13
- jupytergis_lab/notebook/objects/_schema/imageSource.py,sha256=gB7nkovfl5dsuhePMPkb4u5NU90-OdtNZjlSdxonTmc,644
14
- jupytergis_lab/notebook/objects/_schema/jgis.py,sha256=NBFmU4LY_lz4XtrjDES_QmLzMaWeCzRNKqbKqPGaSeU,3253
15
- jupytergis_lab/notebook/objects/_schema/rasterDemSource.py,sha256=B19KlgXkplHDE6qI1epApS_F1tYSpLyEd90jwLiL6z0,781
16
- jupytergis_lab/notebook/objects/_schema/rasterlayer.py,sha256=Nyb-VbXT_KbDfOArf7ZRb_RSCmn94D886gdCleEzQDE,523
17
- jupytergis_lab/notebook/objects/_schema/rastersource.py,sha256=uITpD707LyV1qK2ozU4vtZnfN7Q2bpo2kI7Btj6O5D0,1119
18
- jupytergis_lab/notebook/objects/_schema/shapefileSource.py,sha256=X2_3D0Oj1yzpSAWPqkazucFpggFJtKaJPjHIiPNMfuM,986
19
- jupytergis_lab/notebook/objects/_schema/vectorTileLayer.py,sha256=2fCuLoR5v1ARg2i-6thahrPRwSEc1khfiPO2Lo7VQvg,874
20
- jupytergis_lab/notebook/objects/_schema/vectorlayer.py,sha256=yK8yQNbGbgdP5jDz7t4Gu3SnwwDTGr9Y2G13obBhSEs,866
21
- jupytergis_lab/notebook/objects/_schema/vectortilesource.py,sha256=qb1VzAKBGL8qRUOg69Aoz_qeHMRCCeBXr6SZ7zFHArY,902
22
- jupytergis_lab/notebook/objects/_schema/videoSource.py,sha256=2HKIIZWPh9yXR67-FhyjKOsAdHs4QJTgF0cKDGIYYl8,719
23
- jupytergis_lab/notebook/objects/_schema/webGlLayer.py,sha256=JPhR_mKalQL-SRZtLHIKL8MzA9FUSevULtwSHfIYx3E,678
24
- jupytergis_lab/notebook/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- jupytergis_lab/notebook/tests/test_api.py,sha256=TSEcErPG3PntQ3TgUDATd8hh1qXhGoTFMhw6InqTa3Y,824
26
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/package.json,sha256=KkM8W9VOd85MH8olHyvnWQkIOGbfFB7buuhh2pncKvw,4122
27
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/373.1c3d89f9ed56880711bd.js,sha256=HD2J-e1WiAcRvbCCEUUOMoY6EFn-IGyXhNPkJ2fDRLk,20030
28
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/432.28aaec36233a73d1589c.js,sha256=KKrsNiM6c9FYnMYB00D8HLg7Am5-MGVvZMw-k9W2Dkg,22004
29
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/484.7cd11c502baf51c3285e.js,sha256=fNEcUCuvUcMoXu7_LKSg3dWN2N81ZA9yMlz669PYK-o,7284
30
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/remoteEntry.15c6baaafaa709cc98c0.js,sha256=Fca6qvqnCcyYwIpiEnr4hBomGqHmnFhcphN69PvQ9yQ,7508
31
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/style.js,sha256=pog22wM5nCMkQO0YWJ94eDKAF1OlO1ZvCDGi_rO335U,169
32
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/third-party-licenses.json,sha256=XKWugoT43Ob--NHXpd7UPIlq0nvH97MaYW0ATu-hbmI,5928
33
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/install.json,sha256=t_TWPC6MDZMygRm9ujZ63nap014Sb5htaW5QEOjrmgI,189
34
- jupytergis_lab-0.1.1.dist-info/METADATA,sha256=Lod6OLpScMoo37BnSWhpYlyLsfvXhCzyaMDFOMqOFKg,3271
35
- jupytergis_lab-0.1.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
36
- jupytergis_lab-0.1.1.dist-info/licenses/LICENSE,sha256=VblFgHMsSan_kg15lNsI-YHIqUOUNXGptcoaX2yDDhU,1531
37
- jupytergis_lab-0.1.1.dist-info/RECORD,,